-- Copyright (c) 2024 - Ognjen 'xolatile' Milan Robovic -- -- GNU General Public Licence (version 3 or later) with core, ui; package body skill is ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ icon : array (enumeration) of core.sprite; ------------------------------------------------------------------------------------------ procedure configure is structure : ui.structure; begin core.echo (core.comment, "Configuring skill components..."); -- structure.title := "Skill Menu "; structure.toggle := core.signal_s; structure.show := false; structure.center := true; structure.resize := true; structure.x := 80; structure.y := (core.window_height - 320) / 2; structure.gui_n := count + 1; -- ui.add_structure (structure); -- for index in enumeration loop icon (index) := core.import_sprite (core.folder & "/icon/skill/" & core.lowercase (enumeration'image (index)) & ".png", 1, 1); -- 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; ------------------------------------------------------------------------------------------ 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); 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; ------------------------------------------------------------------------------------------ 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; ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ end skill;