xhads/source/skill.adb

87 lines
3.1 KiB
Ada
Raw Normal View History

-- Copyright (c) 2024 - Ognjen 'xolatile' Milan Robovic
--
-- GNU General Public Licence (version 3 or later)
with core, ui;
2024-02-15 21:03:09 -05:00
package body skill is
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
icon : array (enumeration) of core.sprite;
2024-04-23 16:19:29 -04:00
------------------------------------------------------------------------------------------
procedure configure is
structure : ui.structure;
begin
2024-03-11 08:42:25 -04:00
core.echo (core.comment, "Configuring skill components...");
--
structure.title := "Skill Menu ";
structure.toggle := core.signal_s;
structure.show := false;
2024-05-04 09:29:48 -04:00
structure.center := true;
structure.resize := true;
structure.x := 80;
structure.y := (core.window_height - 320) / 2;
2024-05-07 09:06:08 -04:00
structure.gui_n := count + 1;
--
ui.add_structure (structure);
2024-05-01 09:15:38 -04:00
--
for index in enumeration loop
icon (index) := core.import_sprite (core.folder & "/icon/skill/" & core.lowercase (enumeration'image (index)) & ".png", 1, 1);
--
2024-05-07 09:06:08 -04:00
if enumeration'pos (index) = 9 then
ui.add_structure_orient;
end if;
--
ui.add_structure_button (icon (index), trait (index).name, trait (index).text);
end loop;
end configure;
------------------------------------------------------------------------------------------
2024-05-23 04:44:43 -04:00
procedure draw_points (data : in points := (others => (0, 0));
x : in integer := 0;
y : in integer := 0) is
move_x : integer := x;
move_y : integer := y;
begin
for index in enumeration loop
if (enumeration'pos (index) + 1) mod (count / 2 + 1) = 0 then
move_x := x + 2 * core.icon + 120;
move_y := y;
end if;
--
ui.draw_icon (icon (index), trait (index).text, move_x, move_y);
ui.draw_text_box (move_x + core.icon, move_y, core.icon, core.icon);
2024-05-23 04:44:43 -04:00
ui.write (data (index).value'image, move_x + core.icon + 4, move_y + 8, (255, 255, 255, 255), 15, true);
--
ui.write (trait (index).name, move_x + 2 * core.icon + 4, move_y + 8, (255, 255, 255, 255), 15, true);
--
move_y := move_y + core.icon;
end loop;
end draw_points;
2024-05-25 03:19:58 -04:00
------------------------------------------------------------------------------------------
procedure save_points (here : in core.io.file_type; data : in points) is
begin
for index in enumeration loop
core.save_point (here, data (index));
end loop;
end save_points;
------------------------------------------------------------------------------------------
procedure load_points (here : in core.io.file_type; data : out points) is
begin
for index in enumeration loop
core.load_point (here, data (index));
end loop;
end load_points;
2024-02-15 21:03:09 -05:00
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
end skill;