Browse Source

Core ammunition implementation...

master
Ognjen Milan Robovic 8 months ago
parent
commit
fede5c4bbf
1 changed files with 46 additions and 0 deletions
  1. +46
    -0
      xabina.adb

+ 46
- 0
xabina.adb View File

@@ -257,6 +257,40 @@ function xabina return integer is
-- Ammunition
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

type ammunition_list is (
ARROWS, BOLTS, SLINGSHOTS, JARIDS
);

type ammunition_mark is mod 72;

type ammunition_constant_type is new entity_constant_type with
record
value : natural := 0;
weight : natural := 0;
dual_wield : boolean := false;
amount_limit : natural := 0;
attack_range : natural_subrange := (0, 0);
distance_range : natural_subrange := (0, 0);
end record;

type ammunition_variable_type is new entity_variable_type with
record
amount : natural_subrange := (0, 0);
enchantment : natural := 0;
end record;

type ammunition_constant_list is array (ammunition_list) of ammunition_constant_type;
type ammunition_variable_list is array (ammunition_mark) of ammunition_variable_type;

ammunition_constant_data : constant ammunition_constant_list := (
(ENTITY_AMMUNITION, to_unbounded_string ("Arrows"), '^', COLOUR_RED, EFFECT_NORMAL, 11, 13, false, 23, (0, 7), (17, 67)),
(ENTITY_AMMUNITION, to_unbounded_string ("Bolts"), '^', COLOUR_RED, EFFECT_NORMAL, 13, 23, false, 29, (0, 5), (17, 67)),
(ENTITY_AMMUNITION, to_unbounded_string ("Slingshots"), '^', COLOUR_RED, EFFECT_NORMAL, 5, 7, true, 43, (0, 7), (17, 67)),
(ENTITY_AMMUNITION, to_unbounded_string ("Jarids"), '^', COLOUR_RED, EFFECT_NORMAL, 29, 37, true, 7, (0, 7), (17, 67))
);

ammunition_variable_data : ammunition_variable_list;

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- Weapon
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
@@ -407,12 +441,24 @@ function xabina return integer is

begin

for this in magic_list
loop
x := x + render_character (magic_constant_data (this).symbol, magic_constant_data (this).colour, magic_constant_data (this).effect);
put_line (" " & to_string (magic_constant_data (this).name));
end loop;

for this in item_list
loop
x := x + render_character (item_constant_data (this).symbol, item_constant_data (this).colour, item_constant_data (this).effect);
put_line (" " & to_string (item_constant_data (this).name));
end loop;

for this in ammunition_list
loop
x := x + render_character (ammunition_constant_data (this).symbol, ammunition_constant_data (this).colour, ammunition_constant_data (this).effect);
put_line (" " & to_string (ammunition_constant_data (this).name));
end loop;

for this in weapon_list
loop
x := x + render_character (weapon_constant_data (this).symbol, weapon_constant_data (this).colour, weapon_constant_data (this).effect);


Loading…
Cancel
Save