Ver código fonte

Removed a lot of dead code, stupid stuff, and bot-unique AI...

master
Ognjen Milan Robovic 1 semana atrás
pai
commit
42806f33c5
22 arquivos alterados com 19 adições e 427 exclusões
  1. +1
    -73
      source/ai.adb
  2. +0
    -168
      source/ai.ads
  3. +1
    -1
      source/attribute.adb
  4. +1
    -1
      source/chad.adb
  5. +1
    -1
      source/construction.adb
  6. +1
    -1
      source/core.adb
  7. +1
    -1
      source/deity.adb
  8. +0
    -14
      source/deity.ads
  9. +1
    -1
      source/effect.adb
  10. +1
    -1
      source/faction.adb
  11. +1
    -1
      source/item.adb
  12. +1
    -23
      source/magic.adb
  13. +0
    -2
      source/magic.ads
  14. +3
    -2
      source/main.adb
  15. +1
    -23
      source/might.adb
  16. +0
    -86
      source/might.ads
  17. +1
    -1
      source/resource.adb
  18. +1
    -1
      source/skill.adb
  19. +1
    -1
      source/ui.adb
  20. +1
    -22
      source/unit.adb
  21. +0
    -2
      source/unit.ads
  22. +1
    -1
      source/world.adb

+ 1
- 73
source/ai.adb Ver arquivo

@@ -2,7 +2,7 @@
--
-- GNU General Public Licence (version 3 or later)

with core, ui, ai;
with core, ui;

package body ai is

@@ -30,78 +30,6 @@ package body ai is
procedure action_talk is begin null; end action_talk;
procedure action_find is begin null; end action_find;

------------------------------------------------------------------------------------------

procedure serialize (i : in natural) is
begin
--~if actor_is_bored (i) and actor_is_healthy (i) and not actor_is_hungry (i) then
null;
--~end if;
end serialize;

------------------------------------------------------------------------------------------

procedure configure is
begin
core.echo (core.failure, "No AI yet folk!");
end configure;

------------------------------------------------------------------------------------------

procedure synchronize is
begin
null;
end synchronize;

------------------------------------------------------------------------------------------

procedure review is
--~width : integer := 600;
--~height : integer := 300;
--~offset : integer := 32;
--~x : integer := (core.window_width - width) / 2;
--~y : integer := (core.window_height - height) / 2;
begin
--~ui.draw_tiny_menu (x, y, width, height);
--~for index in 1 .. actor_count loop
--~core.write ("Bot" & index'image, x + offset + 0, y * index + offset, ui.glyphs (ui.active));
--~core.write ("T =" & actor_is_thirsty (index)'image, x + offset + 120, y * index + offset, ui.glyphs (ui.active));
--~core.write ("H =" & actor_is_hungry (index)'image, x + offset + 240, y * index + offset, ui.glyphs (ui.active));
--~end loop;
null;
end review;

------------------------------------------------------------------------------------------

procedure view_actor_state (index : in integer) is
width : integer := 320;
height : integer := 544;
offset : integer := 32;
x : integer := (core.window_width - width) / 2;
y : integer := (core.window_height - height) / 2;
begin
ui.draw_tiny_menu (x, y, width, height);
--
active := index;
--
ui.write (male_name_array (actor (index).name), x + offset, y + offset);
--
ui.write ("Envious = " & actor_is_envious'image, x + offset, y + offset + 32);
ui.write ("Glutton = " & actor_is_glutton'image, x + offset, y + offset + 64);
ui.write ("Greedy = " & actor_is_greedy'image, x + offset, y + offset + 96);
ui.write ("Slutty = " & actor_is_slutty'image, x + offset, y + offset + 128);
ui.write ("Proud = " & actor_is_proud'image, x + offset, y + offset + 160);
ui.write ("Lazy = " & actor_is_lazy'image, x + offset, y + offset + 192);
ui.write ("Angry = " & actor_is_angry'image, x + offset, y + offset + 224);
ui.write ("Thirsty = " & actor_is_thirsty'image, x + offset, y + offset + 256);
ui.write ("Hungry = " & actor_is_hungry'image, x + offset, y + offset + 288);
ui.write ("Tired = " & actor_is_tired'image, x + offset, y + offset + 320);
ui.write ("Lonely = " & actor_is_lonely'image, x + offset, y + offset + 352);
ui.write ("Healthy = " & actor_is_healthy'image, x + offset, y + offset + 384);
ui.write ("Happy = " & actor_is_happy'image, x + offset, y + offset + 416);
ui.write ("Bored = " & actor_is_bored'image, x + offset, y + offset + 448);
end view_actor_state;

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

end ai;

+ 0
- 168
source/ai.ads Ver arquivo

@@ -12,42 +12,6 @@ package ai is
none, walk, talk, find
);

subtype string_16 is string (1 .. 16);

type name_limit is mod 400;
type clan_limit is mod 120;
type data_limit is mod 256;

-- CONCIOUSNESS
-- UNCONCIOUSNESS
-- COLLECTIVE UNCONCIOUSNESS
--
-- somatic / psychic
--
-- leave legacy
-- -- outlaw - liberation
-- -- magician - power
-- -- hero - mastery
-- pursue connection
-- -- lover - intimacy
-- -- jester - enjoyment
-- -- everyman - belonging
-- provide structure
-- -- caregiver - service
-- -- ruler - control
-- -- creator - innovation
-- explore spirituality
-- -- innocent - safety
-- -- sage - understanding
-- -- explorer - freedom
--
-- I
-- Anima/Animus
-- Shadow
-- Persona
--
-- Trickster ?

type action_data is record
base : data_limit;
data : core.pointer;
@@ -71,132 +35,6 @@ package ai is
procedure action_talk;
procedure action_find;

------------------------------------------------------------------------------------------

male_name_array : constant array (name_limit) of string_16 := (
"Unumis ", "Aardappel ", "Aaron ", "Abel ", "Abgar ", "Abiathar ", "Abijah ", "Abraham ",
"Abram ", "Absolom ", "Adam ", "Adonijah ", "Ael ", "Aghasi ", "Aidan ", "Ajnak ",
"Aknunbi ", "Alexan ", "Alishan ", "Alvedos ", "Aman ", "Amaras ", "Amariah ", "Amoz ",
"Amozthel ", "Amurin ", "Amuu ", "Anairiah ", "Anak ", "Andranik ", "Andro ", "Anushavan ",
"Ara ", "Arakel ", "Aram ", "Aramagd ", "Arayik ", "Ardelico ", "Armen ", "Arsen ",
"Artem ", "Arthur ", "Asa ", "Asaph ", "Asher ", "Asnio ", "Aspet ", "Atrushan ",
"Ava ", "Avag ", "Aygek ", "Azariah ", "Azat ", "Aznavur ", "Babken ", "Baelos ",
"Barak ", "Barsegh ", "Baruch ", "Barunak ", "Bashkhi ", "Benaiah ", "Bildad ", "Cain ",
"Calah ", "Caleb ", "Camon ", "Chenon ", "Dan ", "Daniel ", "David ", "Davtak ",
"Delayahu ", "Derenik ", "Dnei ", "Dovin ", "Drastamat ", "Eahenos ", "Ebenezer ", "Eihrul ",
"Elah ", "Eleazar ", "Eli ", "Eliah ", "Elihu ", "Elijah ", "Eliphaz ", "Elisha ",
"Elkanah ", "Elnathan ", "Emmanuel ", "Enoch ", "Ephraim ", "Esau ", "Ethan ", "Ezekiel ",
"Ezubesh ", "Faegal ", "Fairhim ", "Famnah ", "Faneon ", "Farathen ", "Feanel ", "Gabriel ",
"Gale ", "Galust ", "Gamar ", "Garegin ", "Garnik ", "Geanos ", "Gegham ", "Gera ",
"Gerena ", "Gershon ", "Gevorg ", "Gharip ", "Ghazaros ", "Ghevond ", "Ghukas ", "Gideon ",
"Gind ", "Glak ", "Gnel ", "Gor ", "Grigor ", "Haan ", "Hacob ", "Haeden ",
"Haegor ", "Haefel ", "Haffthel ", "Haffroht ", "Haggai ", "Haman ", "Hamazasp ", "Hamlik ",
"Hayastan ", "Haydug ", "Hayk ", "Haykashen ", "Haykazn ", "Hazdan ", "Helden ", "Helg ",
"Helnor ", "Hetum ", "Heviathan ", "Hosea ", "Hovakim ", "Hovik ", "Hovnel ", "Hovsep ",
"Hrand ", "Hrayr ", "Hushai ", "Ira ", "Iradon ", "Ireanok ", "Irenadal ", "Irinei ",
"Irodes ", "Isaac ", "Isaiah ", "Ishmael ", "Ishnil ", "Jacob ", "Jair ", "Janes ",
"Japheth ", "Jason ", "Javan ", "Jeremiah ", "Jesiah ", "Jethera ", "Joab ", "Joash ",
"Job ", "Jogunel ", "Johuna ", "Jonah ", "Jonathan ", "Jordan ", "Joseph ", "Joshua ",
"Judas ", "Kaggen ", "Kagion ", "Kain ", "Kamo ", "Karapet ", "Karen ", "Karin ",
"Kasas ", "Kastag ", "Kattenion ", "Kaytsak ", "Kearni ", "Kemuel ", "Kenan ", "Kenaz ",
"Kerioth ", "Khacheres ", "Khad ", "Khajak ", "Khoren ", "Khosrov ", "Konstandin ", "Koryun ",
"Layin ", "Lazarus ", "Leishin ", "Lemuel ", "Lenoch ", "Lenumin ", "Leon ", "Lepranik ",
"Lernik ", "Levi ", "Levon ", "Liparit ", "Loris ", "Lot ", "Lucian ", "Lynth ",
"Makar ", "Manasseh ", "Margar ", "Martik ", "Mashtots ", "Matthew ", "Matthias ", "Mekhak ",
"Melkon ", "Mesrop ", "Michael ", "Mihran ", "Milrad ", "Minas ", "Mkhitar ", "Movses ",
"Mushegh ", "Myne ", "Nadab ", "Nahum ", "Naphtali ", "Nar ", "Narek ", "Narinth ",
"Nathan ", "Nathanael ", "Natten ", "Naumen ", "Navasard ", "Nazaret ", "Nehemiah ", "Nekoda ",
"Nekudin ", "Neldenah ", "Nelh ", "Nepria ", "Nerses ", "Nev ", "Neven ", "Nevosh ",
"Nikoghos ", "Nimuo ", "Noah ", "Norayr ", "Norik ", "Obadiah ", "Obed ", "Ogsen ",
"Olaph ", "Omar ", "Onnip ", "Ornhul ", "Oshakan ", "Paghtazar ", "Oshin ", "Othniel ",
"Pargev ", "Paruyr ", "Paul ", "Peto ", "Phinehas ", "Raamah ", "Renael ", "Reuben ",
"Rhaman ", "Roderich ", "Rott ", "Sago ", "Sahak ", "Samson ", "Samuel ", "Sanasar ",
"Sargis ", "Saro ", "Sasun ", "Saul ", "Saurkano ", "Sava ", "Savashin ", "Sedah ",
"Sedrak ", "Seth ", "Sevak ", "Shaden ", "Shadrach ", "Shahan ", "Shant ", "Shara ",
"Shem ", "Shnorhali ", "Simeon ", "Sion ", "Sirakan ", "Slak ", "Slaven ", "Slein ",
"Solomon ", "Sora ", "Sukias ", "Tadeos ", "Tagavor ", "Tamnuhl ", "Taron ", "Tatev ",
"Teneshel ", "Tenian ", "Thaddeus ", "Thomas ", "Tiamath ", "Tirayr ", "Tirazan ", "Tirit ",
"Tobiah ", "Tobias ", "Tonapet ", "Tork ", "Tornik ", "Trdat ", "Tukhayr ", "Ulukai ",
"Uldrel ", "Umenok ", "Umiyen ", "Unakan ", "Unearo ", "Uri ", "Uria ", "Uriah ",
"Uriel ", "Uzziah ", "Vagharshak ", "Vahagn ", "Vahan ", "Vahe ", "Vahram ", "Vakhtang ",
"Van ", "Vanakan ", "Vanand ", "Varag ", "Vardan ", "Vardges ", "Vareos ", "Vash ",
"Vazgen ", "Vazrik ", "Veleon ", "Veleshin ", "Vigen ", "Vordi ", "Vorotan ", "Voskan ",
"Vostan ", "Vrej ", "Yaan ", "Yaruga ", "Yashal ", "Ydelen ", "Yeghia ", "Yeghivard ",
"Yenovk ", "Yeprem ", "Yeremia ", "Yerjanik ", "Yeznik ", "Yezr ", "Yiin ", "Zacchaeus ",
"Zachariah ", "Zahn ", "Zareh ", "Zarmayr ", "Zaven ", "Zebadiah ", "Zedekiah ", "Zinthel "
);

female_name_array : constant array (name_limit) of string_16 := (
"Haen ", "Abigail ", "Abishai ", "Adah ", "Adina ", "Adriel ", "Aednat ", "Aelena ",
"Aghavni ", "Aghvor ", "Ai ", "Ailish ", "Alik ", "Alin ", "Amanor ", "Amanthia ",
"Amaroch ", "Amenora ", "Anahit ", "Anea ", "Anelia ", "Angela ", "Angine ", "Ani ",
"Anka ", "Antaram ", "Aoma ", "Aorire ", "Araksi ", "Araz ", "Arevik ", "Ariel ",
"Arman ", "Armenuhi ", "Arpi ", "Arta ", "Arya ", "Atarah ", "Ayovina ", "Azatuhi ",
"Azganush ", "Azniv ", "Bari ", "Bathsheba ", "Bavakan ", "Bekah ", "Beleni ", "Bersare ",
"Bethel ", "Beulah ", "Byurakan ", "Calah ", "Carmel ", "Cenlea ", "Chloe ", "Clement ",
"Cynthia ", "Dalar ", "Damaris ", "Daniela ", "Dapni ", "Daruhi ", "Dayana ", "Deborah ",
"Delilah ", "Devana ", "Dilijan ", "Dosa ", "Ea ", "Eamara ", "Eano ", "Eden ",
"Edna ", "Elint ", "Elisha ", "Eliza ", "Elizabeth ", "Elena ", "Emma ", "Erebuni ",
"Esther ", "Eunice ", "Eva ", "Eve ", "Evelyn ", "Freiya ", "Gadelin ", "Garik ",
"Gayane ", "Geghani ", "Gethetsik ", "Hadassah ", "Hagar ", "Hannah ", "Hasmik ", "Heghine ",
"Heinon ", "Hel ", "Hermine ", "Hia ", "Hian ", "Hieshen ", "Hiina ", "Hiva ",
"Hrut ", "Huldah ", "Ibel ", "Idaa ", "Idena ", "Ignath ", "Igni ", "Inatani ",
"Inaa ", "Inastuni ", "Iskuhi ", "Iskuk ", "Itiona ", "Jaab ", "Jael ", "Java ",
"Javshelin ", "Joanna ", "Jodi ", "Jordan ", "Jovana ", "Judeash ", "Judith ", "Juna ",
"Junith ", "Juno ", "Kabvenia ", "Kac ", "Kadith ", "Kadeash ", "Kaghruhi ", "Kaiga ",
"Kaigashel ", "Kaliya ", "Kami ", "Karen ", "Karine ", "Karun ", "Kasadya ", "Katarina ",
"Katerine ", "Katelia ", "Kathleen ", "Kayona ", "Kerath ", "Khatun ", "Knar ", "Kora ",
"Kristine ", "Labial ", "Lada ", "Lakera ", "Lala ", "Lalik ", "Lasia ", "Lea ",
"Leah ", "Lekshea ", "Lelkja ", "Lena ", "Lerinael ", "Levontin ", "Lila ", "Lili ",
"Lilith ", "Loashin ", "Lois ", "Lorik ", "Luna ", "Lusatsin ", "Luseres ", "Lusine ",
"Lusnak ", "Lusvard ", "Lydia ", "Lyrana ", "Mane ", "Mara ", "Marah ", "Margarit ",
"Mari ", "Maria ", "Mariam ", "Marine ", "Marta ", "Martha ", "Mary ", "Matlen ",
"Meghedi ", "Meline ", "Menik ", "Merina ", "Michal ", "Mina ", "Miriam ", "Mishael ",
"Mod ", "Molhui ", "Morava ", "Morghana ", "Mothai ", "Myra ", "Nada ", "Nain ",
"Naira ", "Nane ", "Naomi ", "Narduhi ", "Narine ", "Nazani ", "Nazeli ", "Nazuk ",
"Nektar ", "Nena ", "Neriah ", "Nevena ", "Nina ", "Nodelia ", "Nonein ", "Nora ",
"Norinai ", "Nova ", "Nouthi ", "Nuritsa ", "Nushik ", "Obea ", "Ocaere ", "Oda ",
"Odnesha ", "Odlish ", "Olia ", "Omniya ", "Oneraa ", "Ophrah ", "Orpah ", "Ovha ",
"Rachel ", "Rebeshi ", "Rebekah ", "Rei ", "Reitheli ", "Rera ", "Rershia ", "Rev ",
"Revesha ", "Rhei ", "Rhoda ", "Rita ", "Rorail ", "Rubel ", "Runa ", "Rupina ",
"Ruth ", "Ruzan ", "Sabbash ", "Sade ", "Sadyush ", "Sai ", "Saigon ", "Saisha ",
"Sanahin ", "Sanan ", "Sara ", "Sarah ", "Sarai ", "Sarine ", "Satenik ", "Seda ",
"Seki ", "Selena ", "Seniya ", "Senkaya ", "Ser ", "Sevan ", "Shahanik ", "Shake ",
"Shamam ", "Sharin ", "Sharmagh ", "Sharon ", "Shev ", "Shina ", "Shoghakat ", "Shoghik ",
"Shonah ", "Shushan ", "Shusho ", "Silva ", "Siranush ", "Siruhi ", "Sokhak ", "Sonia ",
"Sose ", "Spera ", "Sui ", "Suisei ", "Susannah ", "Tabeth ", "Tad ", "Tadeonia ",
"Talin ", "Talita ", "Talitha ", "Tama ", "Tamara ", "Tamashi ", "Tamnuh ", "Tanyuha ",
"Tanyushia ", "Tankagin ", "Taorin ", "Teana ", "Tenchali ", "Terah ", "Tereza ", "Tesil ",
"Tharin ", "Thabetal ", "Thea ", "Theresha ", "Tiruhi ", "Tirzah ", "Titer ", "Tiubahni ",
"Uahara ", "Uani ", "Ubeana ", "Udurin ", "Udeano ", "Uinhel ", "Uknia ", "Ulna ",
"Uniya ", "Unoshea ", "Uriel ", "Urna ", "Usha ", "Uzenia ", "Vabash ", "Vadeni ",
"Valantin ", "Vane ", "Vanuhi ", "Vaoshi ", "Vardanush ", "Vardeni ", "Varderes ", "Vehuhi ",
"Veneanna ", "Venlia ", "Vera ", "Verjin ", "Voguhi ", "Voskeher ", "Vosketel ", "Voski ",
"Xana ", "Xare ", "Xashana ", "Xera ", "Xereanai ", "Xev ", "Xila ", "Xunshi ",
"Yb ", "Ydama ", "Yebeshia ", "Yeda ", "Yeghisabet ", "Yeghnik ", "Yeranik ", "Yeranuhi ",
"Yeraz ", "Yerjanik ", "Yeva ", "Yevgine ", "Yldha ", "Yra ", "Yves ", "Zanath ",
"Zanazan ", "Zapel ", "Zarah ", "Zardar ", "Zarik ", "Zaruhi ", "Zebb ", "Zemira ",
"Zepyur ", "Zilpah ", "Zina ", "Zipporah ", "Zod ", "Zophea ", "Zora ", "Zuanai "
);

clan_array : constant array (clan_limit) of string_16 := (
"Aldheln ", "Abedol ", "Adonis ", "Amelin ", "Ankonih ", "Aoshin ", "Ariel ", "Arma ",
"Arthel ", "Ashal ", "Astrid ", "Avdotiya ", "Barkur ", "Bavakiel ", "Bednudan ", "Calarian ",
"Chleayan ", "Cinnkhan ", "Dairin ", "Daok ", "Daudroht ", "Deakan ", "Degerynn ", "Demenokt ",
"Diihakin ", "Dmitriya ", "Dnakad ", "Dnen ", "Duviel ", "Duychand ", "Eahara ", "Echinon ",
"Eighelen ", "Eikyan ", "Enrichnel ", "Erenth ", "Farathenian ", "Fedonakash ", "Fendal ", "Frostgen ",
"Gaelin ", "Garean ", "Greyvor ", "Gvozden ", "Hadaelio ", "Haeril ", "Haetten ", "Hein ",
"Hnael ", "Hnan ", "Iakara ", "Idho ", "Imayno ", "Inroth ", "Ipolith ", "Jablan ",
"Kalev ", "Kanaen ", "Karamin ", "Karthal ", "Kasidh ", "Kathal ", "Keonrynn ", "Koen ",
"Korda ", "Koveln ", "Ledo ", "Lenhan ", "Levanon ", "Liyan ", "Manailo ", "Megalokhan ",
"Michaelin ", "Mnerea ", "Naankiel ", "Narren ", "Naruhel ", "Nerarynn ", "Obstin ", "Odrahast ",
"Oighast ", "Okad ", "Onaadhan ", "Oudhin ", "Paunkiel ", "Pavelin ", "Rashin ", "Ravinon ",
"Reinan ", "Reives ", "Sauerden ", "Shanan ", "Shaymal ", "Sivinon ", "Sneath ", "Sonithel ",
"Steinen ", "Svidrigail ", "Tamokhan ", "Tedeya ", "Temian ", "Tessianik ", "Tettnoch ", "Therea ",
"Uathanel ", "Uberichel ", "Udun ", "Umenoran ", "Uphria ", "Vanashel ", "Varya ", "Velarynn ",
"Velian ", "Verlon ", "Volash ", "Yaad ", "Yarren ", "Zeanash ", "Ziinyakh ", "Zuno "
);

actor_digit : constant natural := 8;
actor_state : constant natural := 2;
actor_count : constant natural := 4;
@@ -248,12 +86,6 @@ package ai is
function actor_is_happy return boolean; -- wtf
function actor_is_bored return boolean; -- wtf

procedure configure;
procedure synchronize;
procedure review;

procedure view_actor_state (index : in integer);

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

end ai;

+ 1
- 1
source/attribute.adb Ver arquivo

@@ -2,7 +2,7 @@
--
-- GNU General Public Licence (version 3 or later)

with core, ui, attribute;
with core, ui;

package body attribute is



+ 1
- 1
source/chad.adb Ver arquivo

@@ -2,7 +2,7 @@
--
-- GNU General Public Licence (version 3 or later)

with core, ui, faction, chad;
with core, ui, faction;

package body chad is



+ 1
- 1
source/construction.adb Ver arquivo

@@ -2,7 +2,7 @@
--
-- GNU General Public Licence (version 3 or later)

with core, effect, resource, faction, construction;
with core, effect, resource, faction;

package body construction is



+ 1
- 1
source/core.adb Ver arquivo

@@ -2,7 +2,7 @@
--
-- GNU General Public Licence (version 3 or later)

with core, ray;
with ray;

package body core is



+ 1
- 1
source/deity.adb Ver arquivo

@@ -2,7 +2,7 @@
--
-- GNU General Public Licence (version 3 or later)

with core, deity;
with core;

package body deity is



+ 0
- 14
source/deity.ads Ver arquivo

@@ -9,8 +9,6 @@ package deity is
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

type enumeration is (
svarog, dabog, svetovid, gozag, ru, xom,
sheigarath, ornhul, khuganagoth, vel_sheina, deigehen, geazhul
);

------------------------------------------------------------------------------------------
@@ -25,18 +23,6 @@ package deity is
count : constant natural := enumeration'pos (enumeration'last) + 1;

trait : constant array (enumeration) of information := (
("Svarog the Lawful ", 3), -- Serbia
("Dabog the Lonely ", -3),
("Svetovid the Awakened ", 0),
("Gozag the Impoverished ", 0), -- DCSS
("Ru the Forgotten ", -3),
("Xom the Chaotical ", 3),
("Sheigarath the Dark ", -3), -- Gea
("Ornhul the Frozen ", 0),
("Khuganagoth the Hungry ", -3),
("Vel-Sheina the Joyful ", 3),
("Deigehen the Chained ", 0),
("Geazhul the Awakened ", 3)
);

------------------------------------------------------------------------------------------


+ 1
- 1
source/effect.adb Ver arquivo

@@ -2,7 +2,7 @@
--
-- GNU General Public Licence (version 3 or later)

with core, effect;
with core;

package body effect is



+ 1
- 1
source/faction.adb Ver arquivo

@@ -2,7 +2,7 @@
--
-- GNU General Public Licence (version 3 or later)

with core, attribute, skill, resource, faction;
with core, attribute, skill, resource;

package body faction is



+ 1
- 1
source/item.adb Ver arquivo

@@ -2,7 +2,7 @@
--
-- GNU General Public Licence (version 3 or later)

with core, item;
with core;

package body item is



+ 1
- 23
source/magic.adb Ver arquivo

@@ -2,7 +2,7 @@
--
-- GNU General Public Licence (version 3 or later)

with core, ui, effect, magic;
with core, ui, effect;

package body magic is

@@ -46,28 +46,6 @@ package body magic is
ui.draw_icon_menu (trait (index).text, x, y, view_width + 2 * offset, view_height + 2 * offset);
end view;

------------------------------------------------------------------------------------------

procedure menu (x, y : in integer; center : in boolean) is
offset : constant integer := 16;
width : constant integer := 168 * 8 + 2 * offset;
height : constant integer := 12 * core.icon + 2 * offset;
move_x : constant integer := (if center then (core.window_width - width) / 2 else x);
move_y : constant integer := (if center then (core.window_height - height) / 2 else y);
--
next : array (0 .. 7) of integer := (others => 0);
begin
ui.draw_tiny_menu (move_x, move_y, width, height);
ui.draw_title_bar (move_x, move_y, width, "Magic Abilities");
--
for index in enumeration loop
icon (index, move_x + offset + school'pos (trait (index).kind) * 168, move_y + offset + next (school'pos (trait (index).kind)) * core.icon);
ui.write (trait (index).name, move_x + offset + school'pos (trait (index).kind) * 168 + core.icon, move_y + offset + next (school'pos (trait (index).kind)) * core.icon);
--
next (school'pos (trait (index).kind)) := next (school'pos (trait (index).kind)) + 1;
end loop;
end menu;

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

end magic;

+ 0
- 2
source/magic.ads Ver arquivo

@@ -59,8 +59,6 @@ package magic is
procedure icon (index : in enumeration; x, y : in integer);
procedure view (index : in enumeration; x, y : in integer);

procedure menu (x, y : in integer; center : in boolean);

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

end magic;

+ 3
- 2
source/main.adb Ver arquivo

@@ -4,7 +4,8 @@

pragma ada_2012;

with core, ui, effect, attribute, skill, resource, faction, might, magic, item, unit, construction, chad, world, ai;
--~with core, ui, effect, attribute, skill, resource, faction, might, magic, item, unit, construction, chad, deity, world, ai;
with core, ui, effect, attribute, skill, resource, faction, item, unit, construction, chad, world;

procedure main is

@@ -125,7 +126,7 @@ begin
construction.configure;
chad.configure;
world.configure;
ai.configure;
--~ai.configure;

world.make (world.swamp, 120, 60);



+ 1
- 23
source/might.adb Ver arquivo

@@ -2,7 +2,7 @@
--
-- GNU General Public Licence (version 3 or later)

with core, ui, effect, might;
with core, ui, effect;

package body might is

@@ -46,28 +46,6 @@ package body might is
ui.draw_icon_menu (trait (index).text, x, y, view_width + 2 * offset, view_height + 2 * offset);
end view;

------------------------------------------------------------------------------------------

procedure menu (x, y : in integer; center : in boolean) is
offset : constant integer := 16;
width : constant integer := 168 * 8 + 2 * offset;
height : constant integer := 12 * core.icon + 2 * offset;
move_x : constant integer := (if center then (core.window_width - width) / 2 else x);
move_y : constant integer := (if center then (core.window_height - height) / 2 else y);
--
next : array (0 .. 7) of integer := (others => 0);
begin
ui.draw_tiny_menu (move_x, move_y, width, height);
ui.draw_title_bar (move_x, move_y, width, "Might Abilities");
--
for index in enumeration loop
icon (index, move_x + offset + school'pos (trait (index).kind) * 168, move_y + offset + next (school'pos (trait (index).kind)) * core.icon);
ui.write (trait (index).name, move_x + offset + school'pos (trait (index).kind) * 168 + core.icon, move_y + offset + next (school'pos (trait (index).kind)) * core.icon);
--
next (school'pos (trait (index).kind)) := next (school'pos (trait (index).kind)) + 1;
end loop;
end menu;

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

end might;

+ 0
- 86
source/might.ads Ver arquivo

@@ -9,33 +9,9 @@ package might is
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

type school is (
neutral, archery, defense, economy, education, logistics,
offense, tactics
);

type enumeration is (
-- Neutral
-- Archery
cover, evasive_maneuvers, focused_fire, magic_ammunition, piercing_bolt, precision,
retreat, taunt,
-- Defense
charismatic_leader, counterstrike, double_counterstrike, resilience, revenge, shield_of_the_virtue,
stand_your_ground_mass, stand_your_ground, toughness,
-- Economy
banker, destroyer, leadership, lumber, manager, merchant,
miner, plunderer, snatch,
-- Education
alchemist, architect, ballistics, chosen_one, diplomacy, economist,
general, mentor, siege_master,
-- Logistics
explorer, navigation, observer, orientation, pathfinder, scout,
spy, trust_the_plan,
-- Offense
assailant, battle_march, cleave, flawless_attack, giant_slayer, heroic_charge,
parry, pressed_attack, rampage,
-- Tactics
ambush, commander, crippling_traps, diving_attack, heroism_mass, heroism,
intimidation, reinforcements
);

------------------------------------------------------------------------------------------
@@ -55,66 +31,6 @@ package might is
count : constant natural := enumeration'pos (enumeration'last) + 1;

trait : constant array (enumeration) of information := (
("Cover ", archery, 0, effect.none, "Provides temporary protection from enemy attacks. "),
("Evasive Maneuvers ", archery, 0, effect.none, "Allows the user to dodge and avoid incoming attacks more effectively. "),
("Focused Fire ", archery, 0, effect.none, "Increases accuracy and damage output towards a single target. "),
("Magic Ammunition ", archery, 0, effect.none, "Enchants projectiles with magical properties for more effectiveness. "),
("Piercing Bolt ", archery, 0, effect.none, "Ability to penetrate enemy defenses and deal damage directly. "),
("Precision ", archery, 0, effect.none, "Enhances accuracy and critical hit chance. "),
("Retreat ", archery, 0, effect.none, "Allows the user to disengage from combat safely. "),
("Taunt ", archery, 0, effect.none, "Draws enemy aggression towards the user, redirecting their attacks. "),
("Charismatic Leader ", defense, 0, effect.none, "Boosts the morale and efficiency of allies in the vicinity. "),
("Counterstrike ", defense, 0, effect.none, "Automatically retaliates against incoming attacks with a counter-attack."),
("Double Counterstrike ", defense, 0, effect.none, "Further enhances the counter-attacking ability, allowing for more hits. "),
("Resilience ", defense, 0, effect.none, "Provides increased resistance to status effects and damage. "),
("Revenge ", defense, 0, effect.none, "Empowers the user after taking damage, increasing their offense. "),
("Shield Of The Virtue ", defense, 0, effect.none, "Provides a powerful defensive barrier to protect the user and allies. "),
("Stand Your Ground Mass ", defense, 0, effect.none, "Grants a defensive buff to multiple allied units within a large radius. "),
("Stand Your Ground ", defense, 0, effect.none, "Enhances the user's defenses and resilience against incoming attacks. "),
("Toughness ", defense, 0, effect.none, "Increases overall durability and reduces incoming damage. "),
("Banker ", economy, 0, effect.none, "Generates additional in-game currency or resources over time. "),
("Destroyer ", economy, 0, effect.none, "Deals massive damage to enemies or structures. "),
("Leadership ", economy, 0, effect.none, "Boosts the effectiveness and performance of allied units. "),
("Lumber ", economy, 0, effect.none, "Increases resource gathering efficiency for wood or similar materials. "),
("Manager ", economy, 0, effect.none, "Improves resource management and production within the user's faction. "),
("Merchant ", economy, 0, effect.none, "Enables better trading opportunities and increased profit from commerce."),
("Miner ", economy, 0, effect.none, "Enhances resource gathering efficiency for minerals or ore. "),
("Plunderer ", economy, 0, effect.none, "Steals resources or valuable items from enemies upon defeating them. "),
("Snatch ", economy, 0, effect.none, "Allows the user to quickly grab and steal an item or resource. "),
("Alchemist ", education, 0, effect.none, "Enables the user to create and utilize powerful potions or poisons. "),
("Architect ", education, 0, effect.none, "Improves construction speed and efficiency for buildings and structures."),
("Ballistics ", education, 0, effect.none, "Enhances ranged attacks and projectile-based abilities. "),
("Chosen One ", education, 0, effect.none, "Empowers the user with random unique and potent abilities. "),
("Diplomacy ", education, 0, effect.none, "Strengthens diplomatic relations and opportunities with other factions. "),
("Economist ", education, 0, effect.none, "Boosts resource management and economic prowess within the domain. "),
("General ", education, 0, effect.none, "Provides strategic advantages and boosts the effectiveness of troops. "),
("Mentor ", education, 0, effect.none, "Offers guidance to allied units, enhancing their performance. "),
("Siege Master ", education, 0, effect.none, "Specializes in siege warfare, increasing the range of siege machines. "),
("Explorer ", logistics, 0, effect.none, "Improves scouting abilities and grants bonuses to discovering. "),
("Navigation ", logistics, 0, effect.none, "Enhances movement speed or efficiency across different terrains. "),
("Observer ", logistics, 0, effect.none, "Grants vision over specific areas or units, providing information. "),
("Orientation ", logistics, 0, effect.none, "Improves unit positioning and formation effectiveness in battle. "),
("Pathfinder ", logistics, 0, effect.none, "Provides bonuses to traversing difficult terrain or finding paths. "),
("Scout ", logistics, 0, effect.none, "Excels at reconnaissance and gathering intelligence on enemy movements. "),
("Spy ", logistics, 0, effect.none, "Infiltrates enemy territory to perform sabotage operations. "),
("Trust The Plan ", logistics, 0, effect.none, "Grants advantages when following predetermined strategies or tactics. "),
("Assailant ", offense, 0, effect.none, "Enhances offensive capabilities and increases damage dealt in fighting. "),
("Battle March ", offense, 0, effect.none, "Boosts movement speed and combat prowess for the troops on the front. "),
("Cleave ", offense, 0, effect.none, "Allows attacks to hit multiple foes or deal area-of-effect damage. "),
("Flawless Attack ", offense, 0, effect.none, "Enhances precision and accuracy of attacks, maximizing damage output. "),
("Giant Slayer ", offense, 0, effect.none, "Provides bonuses and advantages when engaging larger or stronger foes. "),
("Heroic Charge ", offense, 0, effect.none, "Allows for a powerful and impactful offensive maneuver against enemies. "),
("Parry ", offense, 0, effect.none, "Enables the user to block or deflect incoming attacks, reducing damage. "),
("Pressed Attack ", offense, 0, effect.none, "Boosts the intensity and frequency of offensive strikes during combat. "),
("Rampage ", offense, 0, effect.none, "Triggers a frenzied state, increasing attack power and speed shortly. "),
("Ambush ", tactics, 0, effect.none, "Enables surprise attacks on enemy units for increased effectiveness. "),
("Commander ", tactics, 0, effect.none, "Enhances leadership abilities and buffs allied units under the command. "),
("Crippling Traps ", tactics, 0, effect.none, "Utilizes various traps and devices to hinder or debilitate enemies. "),
("Diving Attack ", tactics, 0, effect.none, "Initiates a swift and decisive aerial assault from above. "),
("Heroism Mass ", tactics, 0, effect.none, "Inspires and empowers multiple units simultaneously with a morale boost."),
("Heroism ", tactics, 0, effect.none, "Bolsters morale and combat effectiveness of individual units. "),
("Intimidation ", tactics, 0, effect.none, "Strikes fear into enemies, reducing their morale and courage. "),
("Reinforcements ", tactics, 0, effect.none, "Calls in additional troops or support units to bolster the forces. ")
);

------------------------------------------------------------------------------------------
@@ -124,8 +40,6 @@ package might is
procedure icon (index : in enumeration; x, y : in integer);
procedure view (index : in enumeration; x, y : in integer);

procedure menu (x, y : in integer; center : in boolean);

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

end might;

+ 1
- 1
source/resource.adb Ver arquivo

@@ -2,7 +2,7 @@
--
-- GNU General Public Licence (version 3 or later)

with core, ui, resource;
with core, ui;

package body resource is



+ 1
- 1
source/skill.adb Ver arquivo

@@ -2,7 +2,7 @@
--
-- GNU General Public Licence (version 3 or later)

with core, ui, skill;
with core, ui;

package body skill is



+ 1
- 1
source/ui.adb Ver arquivo

@@ -2,7 +2,7 @@
--
-- GNU General Public Licence (version 3 or later)

with core, ui;
with core;

package body ui is



+ 1
- 22
source/unit.adb Ver arquivo

@@ -2,7 +2,7 @@
--
-- GNU General Public Licence (version 3 or later)

with core, ui, effect, attribute, faction, unit;
with core, ui, effect, attribute, faction;

package body unit is

@@ -57,27 +57,6 @@ package body unit is

------------------------------------------------------------------------------------------

procedure menu (x, y : in integer; center : in boolean) is
offset : constant integer := 16;
width : constant integer := 168 * faction.count + 2 * offset;
height : constant integer := 14 * core.icon + 2 * offset;
move_x : constant integer := (if center then (core.window_width - width) / 2 else x);
move_y : constant integer := (if center then (core.window_height - height) / 2 else y);
move : integer := 0;
begin
ui.draw_tiny_menu (move_x, move_y, width, height);
ui.draw_title_bar (move_x, move_y, width, "Units");
--
for index in enumeration loop
move := faction.enumeration'pos (trait (index).kind) * 168;
--
icon (index, move_x + offset + move, move_y + offset + (enumeration'pos (index) mod 14) * core.icon);
ui.write (trait (index).name, move_x + offset + move + core.icon, move_y + offset + (enumeration'pos (index) mod 14) * core.icon);
end loop;
end menu;

------------------------------------------------------------------------------------------

procedure stat (index : in enumeration; x, y : in integer; center : in boolean) is
offset : constant integer := 16;
width : constant integer := 10 + offset + 6 * (sprite (index).width + 8);


+ 0
- 2
source/unit.ads Ver arquivo

@@ -47,8 +47,6 @@ package unit is
procedure icon (index : in enumeration; x, y : in integer);
procedure view (index : in enumeration; x, y : in integer);

procedure menu (x, y : in integer; center : in boolean);

procedure stat (index : in enumeration; x, y : in integer; center : in boolean);

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


+ 1
- 1
source/world.adb Ver arquivo

@@ -2,7 +2,7 @@
--
-- GNU General Public Licence (version 3 or later)

with core, ui, resource, item, unit, construction, world;
with core, ui, resource, item, unit, construction;

package body world is



Carregando…
Cancelar
Salvar