2024-04-25 00:27:13 -04:00
|
|
|
-- Copyright (c) 2024 - Ognjen 'xolatile' Milan Robovic
|
|
|
|
--
|
|
|
|
-- GNU General Public Licence (version 3 or later)
|
|
|
|
|
2024-05-08 15:43:44 -04:00
|
|
|
with core, ui;
|
2024-02-15 21:03:09 -05:00
|
|
|
|
|
|
|
package body attribute is
|
|
|
|
|
|
|
|
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
|
2024-02-16 06:24:49 -05:00
|
|
|
procedure configure is
|
2024-06-01 11:46:17 -04:00
|
|
|
procedure define (index : in enumeration; minimum, maximum : in integer; name, text : in string) is
|
2024-05-31 07:14:00 -04:00
|
|
|
begin
|
2024-06-01 11:27:59 -04:00
|
|
|
description (index).base := (minimum, maximum);
|
|
|
|
description (index).name := core.unbound (name);
|
|
|
|
description (index).text := core.unbound (text);
|
2024-06-01 11:46:17 -04:00
|
|
|
end define;
|
2024-05-31 07:14:00 -04:00
|
|
|
--
|
2024-05-04 07:12:00 -04:00
|
|
|
structure : ui.structure;
|
2024-02-16 06:24:49 -05:00
|
|
|
begin
|
2024-06-01 11:46:17 -04:00
|
|
|
define (offense, 1, 12, "Offense", "Offense attribute determines your damage modifier when attacking.");
|
|
|
|
define (defense, 1, 12, "Defense", "D-FENS attribute determines how much damage your reflect and receive.");
|
|
|
|
define (wisdom, 1, 12, "Wisdom", "Wisdom attribute determines how much mana your chad has.");
|
|
|
|
define (stamina, 1, 12, "Stamina", "Stamina attribute determines how fast you recover from being wounded.");
|
|
|
|
define (speed, 1, 12, "Speed", "Speed attribute determines how far you can walk per turn.");
|
|
|
|
define (reach, 1, 12, "Reach", "Reach attribute determines your range modifier when shooting or casting.");
|
2024-05-31 07:14:00 -04:00
|
|
|
--
|
2024-03-11 08:42:25 -04:00
|
|
|
core.echo (core.comment, "Configuring attribute components...");
|
|
|
|
--
|
2024-05-04 07:12:00 -04:00
|
|
|
structure.title := "Attribute Menu ";
|
|
|
|
structure.toggle := core.signal_a;
|
|
|
|
structure.show := false;
|
2024-05-07 09:59:26 -04:00
|
|
|
structure.center := false;
|
2024-05-04 07:12:00 -04:00
|
|
|
structure.resize := true;
|
2024-05-07 09:59:26 -04:00
|
|
|
structure.x := 60;
|
2024-05-20 15:30:40 -04:00
|
|
|
structure.y := 100;
|
2024-05-04 07:12:00 -04:00
|
|
|
structure.gui_n := count;
|
|
|
|
--
|
2024-05-13 09:55:14 -04:00
|
|
|
ui.add_structure (data => structure);
|
2024-05-03 10:13:49 -04:00
|
|
|
--
|
2024-04-27 10:01:54 -04:00
|
|
|
for index in enumeration loop
|
2024-05-18 15:16:09 -04:00
|
|
|
icon (index) := core.import_sprite (core.folder & "/icon/attribute/" & core.lowercase (enumeration'image (index)) & ".png", 1, 1);
|
2024-05-03 10:13:49 -04:00
|
|
|
--
|
2024-06-01 11:27:59 -04:00
|
|
|
ui.add_structure_button (icon (index), description (index).name, description (index).text);
|
2024-02-16 06:24:49 -05:00
|
|
|
end loop;
|
|
|
|
end configure;
|
|
|
|
|
2024-05-11 00:28:50 -04:00
|
|
|
------------------------------------------------------------------------------------------
|
|
|
|
|
2024-05-31 07:14:00 -04:00
|
|
|
procedure draw_points (data : in points; x, y : in integer) is
|
2024-05-17 21:00:50 -04:00
|
|
|
move_x : integer := x;
|
2024-05-11 00:28:50 -04:00
|
|
|
begin
|
|
|
|
for index in enumeration loop
|
2024-06-01 11:27:59 -04:00
|
|
|
ui.draw_icon (icon (index), core.bound (description (index).text), move_x, y);
|
2024-05-17 21:00:50 -04:00
|
|
|
ui.draw_text_box (move_x, y + core.icon, core.icon, core.icon);
|
2024-05-23 03:34:45 -04:00
|
|
|
ui.write (data (index).value'image, move_x + 4, y + core.icon + 8, (255, 255, 255, 255), 15, true);
|
2024-05-11 00:28:50 -04:00
|
|
|
--
|
2024-05-17 21:00:50 -04:00
|
|
|
move_x := move_x + core.icon;
|
2024-05-11 00:28:50 -04:00
|
|
|
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;
|
|
|
|
|
2024-05-25 03:53:53 -04:00
|
|
|
------------------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
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 attribute;
|