@@ -0,0 +1,47 @@ | |||
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | |||
-- Copyright (c) 2023 - Ognjen 'xolatile' Milan Robovic | |||
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | |||
-- Xabina is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either | |||
-- version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the | |||
-- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. | |||
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | |||
with core, map; | |||
package body ammunition is | |||
------------------------------------------------------------------------------------------ | |||
procedure generate is | |||
y : natural := 0; | |||
x : natural := 0; | |||
identifier : natural := 0; | |||
begin | |||
for this in map.mark | |||
loop | |||
y := core.randomize (0, natural (map.height'last)); | |||
x := core.randomize (0, natural (map.width'last)); | |||
identifier := core.randomize (0, natural (list'size)); | |||
map.variable_data (this) := (integer (y), integer (x), core.ammunition, identifier); | |||
end loop; | |||
end generate; | |||
procedure render is | |||
symbol : character := ' '; | |||
colour : character := core.colour.white; | |||
effect : character := core.effect.normal; | |||
begin | |||
for this in map.mark | |||
loop | |||
symbol := constant_data (list'val (map.variable_data (this).identifier)).symbol; | |||
colour := constant_data (list'val (map.variable_data (this).identifier)).colour; | |||
effect := constant_data (list'val (map.variable_data (this).identifier)).effect; | |||
core.render_character (symbol, colour, effect, core.screen_height (map.variable_data (this).y), core.screen_width (map.variable_data (this).x)); | |||
end loop; | |||
end render; | |||
------------------------------------------------------------------------------------------ | |||
------------------------------------------------------------------------------------------ | |||
end ammunition; |
@@ -52,4 +52,9 @@ package ammunition is | |||
------------------------------------------------------------------------------------------ | |||
procedure generate; | |||
procedure render; | |||
------------------------------------------------------------------------------------------ | |||
end ammunition; |
@@ -0,0 +1,45 @@ | |||
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | |||
-- Copyright (c) 2023 - Ognjen 'xolatile' Milan Robovic | |||
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | |||
-- Xabina is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either | |||
-- version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the | |||
-- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. | |||
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | |||
with core, map; | |||
package body animal is | |||
------------------------------------------------------------------------------------------ | |||
procedure generate is | |||
y : natural := 0; | |||
x : natural := 0; | |||
identifier : natural := 0; | |||
begin | |||
for this in map.mark | |||
loop | |||
y := core.randomize (0, natural (map.height'last)); | |||
x := core.randomize (0, natural (map.width'last)); | |||
identifier := core.randomize (0, natural (list'size)); | |||
map.variable_data (this) := (integer (y), integer (x), core.animal, identifier); | |||
end loop; | |||
end generate; | |||
procedure render is | |||
symbol : character := ' '; | |||
colour : character := core.colour.white; | |||
effect : character := core.effect.normal; | |||
begin | |||
for this in map.mark | |||
loop | |||
symbol := constant_data (list'val (map.variable_data (this).identifier)).symbol; | |||
colour := constant_data (list'val (map.variable_data (this).identifier)).colour; | |||
effect := constant_data (list'val (map.variable_data (this).identifier)).effect; | |||
core.render_character (symbol, colour, effect, core.screen_height (map.variable_data (this).y), core.screen_width (map.variable_data (this).x)); | |||
end loop; | |||
end render; | |||
------------------------------------------------------------------------------------------ | |||
end animal; |
@@ -134,4 +134,9 @@ package animal is | |||
------------------------------------------------------------------------------------------ | |||
procedure generate; | |||
procedure render; | |||
------------------------------------------------------------------------------------------ | |||
end animal; |
@@ -0,0 +1,45 @@ | |||
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | |||
-- Copyright (c) 2023 - Ognjen 'xolatile' Milan Robovic | |||
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | |||
-- Xabina is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either | |||
-- version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the | |||
-- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. | |||
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | |||
with core, map; | |||
package body armour is | |||
------------------------------------------------------------------------------------------ | |||
procedure generate is | |||
y : natural := 0; | |||
x : natural := 0; | |||
identifier : natural := 0; | |||
begin | |||
for this in map.mark | |||
loop | |||
y := core.randomize (0, natural (map.height'last)); | |||
x := core.randomize (0, natural (map.width'last)); | |||
identifier := core.randomize (0, natural (list'size)); | |||
map.variable_data (this) := (integer (y), integer (x), core.armour, identifier); | |||
end loop; | |||
end generate; | |||
procedure render is | |||
symbol : character := ' '; | |||
colour : character := core.colour.white; | |||
effect : character := core.effect.normal; | |||
begin | |||
for this in map.mark | |||
loop | |||
symbol := constant_data (list'val (map.variable_data (this).identifier)).symbol; | |||
colour := constant_data (list'val (map.variable_data (this).identifier)).colour; | |||
effect := constant_data (list'val (map.variable_data (this).identifier)).effect; | |||
core.render_character (symbol, colour, effect, core.screen_height (map.variable_data (this).y), core.screen_width (map.variable_data (this).x)); | |||
end loop; | |||
end render; | |||
------------------------------------------------------------------------------------------ | |||
end armour; |
@@ -53,4 +53,9 @@ package armour is | |||
------------------------------------------------------------------------------------------ | |||
procedure generate; | |||
procedure render; | |||
------------------------------------------------------------------------------------------ | |||
end armour; |
@@ -2,6 +2,8 @@ | |||
set -xe | |||
# WIP | |||
rm -rf *.o *.ali | |||
gnatmake -o xabina main.adb | |||
@@ -0,0 +1,45 @@ | |||
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | |||
-- Copyright (c) 2023 - Ognjen 'xolatile' Milan Robovic | |||
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | |||
-- Xabina is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either | |||
-- version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the | |||
-- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. | |||
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | |||
with core, map; | |||
package body magic is | |||
------------------------------------------------------------------------------------------ | |||
procedure generate is | |||
y : natural := 0; | |||
x : natural := 0; | |||
identifier : natural := 0; | |||
begin | |||
for this in map.mark | |||
loop | |||
y := core.randomize (0, natural (map.height'last)); | |||
x := core.randomize (0, natural (map.width'last)); | |||
identifier := core.randomize (0, natural (list'size)); | |||
map.variable_data (this) := (integer (y), integer (x), core.magic, identifier); | |||
end loop; | |||
end generate; | |||
procedure render is | |||
symbol : character := ' '; | |||
colour : character := core.colour.white; | |||
effect : character := core.effect.normal; | |||
begin | |||
for this in map.mark | |||
loop | |||
symbol := constant_data (list'val (map.variable_data (this).identifier)).symbol; | |||
colour := constant_data (list'val (map.variable_data (this).identifier)).colour; | |||
effect := constant_data (list'val (map.variable_data (this).identifier)).effect; | |||
core.render_character (symbol, colour, effect, core.screen_height (map.variable_data (this).y), core.screen_width (map.variable_data (this).x)); | |||
end loop; | |||
end render; | |||
------------------------------------------------------------------------------------------ | |||
end magic; |
@@ -52,4 +52,9 @@ package magic is | |||
------------------------------------------------------------------------------------------ | |||
procedure generate; | |||
procedure render; | |||
------------------------------------------------------------------------------------------ | |||
end magic; |
@@ -0,0 +1,45 @@ | |||
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | |||
-- Copyright (c) 2023 - Ognjen 'xolatile' Milan Robovic | |||
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | |||
-- Xabina is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either | |||
-- version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the | |||
-- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. | |||
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | |||
with core, map; | |||
package body monster is | |||
------------------------------------------------------------------------------------------ | |||
procedure generate is | |||
y : natural := 0; | |||
x : natural := 0; | |||
identifier : natural := 0; | |||
begin | |||
for this in map.mark | |||
loop | |||
y := core.randomize (0, natural (map.height'last)); | |||
x := core.randomize (0, natural (map.width'last)); | |||
identifier := core.randomize (0, natural (list'size)); | |||
map.variable_data (this) := (integer (y), integer (x), core.monster, identifier); | |||
end loop; | |||
end generate; | |||
procedure render is | |||
symbol : character := ' '; | |||
colour : character := core.colour.white; | |||
effect : character := core.effect.normal; | |||
begin | |||
for this in map.mark | |||
loop | |||
symbol := constant_data (list'val (map.variable_data (this).identifier)).symbol; | |||
colour := constant_data (list'val (map.variable_data (this).identifier)).colour; | |||
effect := constant_data (list'val (map.variable_data (this).identifier)).effect; | |||
core.render_character (symbol, colour, effect, core.screen_height (map.variable_data (this).y), core.screen_width (map.variable_data (this).x)); | |||
end loop; | |||
end render; | |||
------------------------------------------------------------------------------------------ | |||
end monster; |
@@ -52,4 +52,9 @@ package monster is | |||
------------------------------------------------------------------------------------------ | |||
procedure generate; | |||
procedure render; | |||
------------------------------------------------------------------------------------------ | |||
end monster; |
@@ -0,0 +1,45 @@ | |||
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | |||
-- Copyright (c) 2023 - Ognjen 'xolatile' Milan Robovic | |||
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | |||
-- Xabina is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either | |||
-- version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the | |||
-- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. | |||
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | |||
with core, map; | |||
package body plant is | |||
------------------------------------------------------------------------------------------ | |||
procedure generate is | |||
y : natural := 0; | |||
x : natural := 0; | |||
identifier : natural := 0; | |||
begin | |||
for this in map.mark | |||
loop | |||
y := core.randomize (0, natural (map.height'last)); | |||
x := core.randomize (0, natural (map.width'last)); | |||
identifier := core.randomize (0, natural (list'size)); | |||
map.variable_data (this) := (integer (y), integer (x), core.plant, identifier); | |||
end loop; | |||
end generate; | |||
procedure render is | |||
symbol : character := ' '; | |||
colour : character := core.colour.white; | |||
effect : character := core.effect.normal; | |||
begin | |||
for this in map.mark | |||
loop | |||
symbol := constant_data (list'val (map.variable_data (this).identifier)).symbol; | |||
colour := constant_data (list'val (map.variable_data (this).identifier)).colour; | |||
effect := constant_data (list'val (map.variable_data (this).identifier)).effect; | |||
core.render_character (symbol, colour, effect, core.screen_height (map.variable_data (this).y), core.screen_width (map.variable_data (this).x)); | |||
end loop; | |||
end render; | |||
------------------------------------------------------------------------------------------ | |||
end plant; |
@@ -55,4 +55,9 @@ package plant is | |||
------------------------------------------------------------------------------------------ | |||
procedure generate; | |||
procedure render; | |||
------------------------------------------------------------------------------------------ | |||
end plant; |