Everything works now, less content, placeholders...
This commit is contained in:
parent
3750a8727b
commit
206bd28fa8
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,5 +1,4 @@
|
||||
source/*.o
|
||||
source/*.ali
|
||||
xhads
|
||||
sprite/*
|
||||
song/*
|
||||
|
@ -9,49 +9,15 @@ package construction is
|
||||
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
type codex is (
|
||||
boar_glen, enchanters_hollow, hovel, nomad_tent, rogue_cavern, thatched_hut,
|
||||
trolls_bridge, crystalized_cave, frozen_cliffs, magic_forest, pyramid, sulfurous_lair,
|
||||
treetop_tower,
|
||||
--
|
||||
guardhouse, watchtower, griffin_tower, barracks, monastery, training_grounds,
|
||||
holy_portal,
|
||||
--
|
||||
goblin_shed, wolf_pen, orc_tower, ogre_fort, cliff_nest, cyclops_cave,
|
||||
behemoth_lair,
|
||||
--
|
||||
imp_crucible, hall_of_sins, kennels, demon_gate, hell_hole, fire_lake,
|
||||
forsaken_palace,
|
||||
--
|
||||
workshop, parapet, golem_factory, mage_tower, altar_of_wishes, golden_pavilion,
|
||||
cloud_temple,
|
||||
--
|
||||
little_lantern, air_shrine, water_shrine, fire_shrine, earth_shrine, magic_shrine,
|
||||
flamewhirl,
|
||||
--
|
||||
cursed_shrine, graveyard, tomb_of_souls, estate, mausoleum, hall_of_darkness,
|
||||
bone_vault,
|
||||
--
|
||||
centaur_stables, dwarf_cottage, homestead, enchanted_spring, dendroid_arches, unicorn_glades,
|
||||
dragon_cliffs,
|
||||
--
|
||||
gnoll_hut, lizard_den, dragonfly_hive, basilisk_pit, gorgon_lair, wyvern_nest,
|
||||
hydra_pond,
|
||||
--
|
||||
warren, harpy_loft, pillar_of_eyes, chappel_of_voice, labyrinth, manticore_lair,
|
||||
dragon_cave
|
||||
a, b, c, d, e, f
|
||||
);
|
||||
|
||||
------------------------------------------------------------------------------------------
|
||||
|
||||
subtype grade_limit is natural range 0 .. 3;
|
||||
subtype level_limit is natural range 0 .. 6;
|
||||
|
||||
type information is
|
||||
record
|
||||
name : core.short_string;
|
||||
kind : faction.codex;
|
||||
level : level_limit;
|
||||
grade : grade_limit;
|
||||
price : resource.points;
|
||||
frames : integer;
|
||||
evoke : effect.codex;
|
||||
@ -62,91 +28,12 @@ package construction is
|
||||
count : constant natural := codex'pos (codex'last) + 1;
|
||||
|
||||
trait : constant array (codex) of information := (
|
||||
("Boar Glen ", faction.neutral, 1, 1, ( 90, others => 0), 1, effect.none),
|
||||
("Enchanter's Hollow ", faction.neutral, 1, 1, (120, others => 0), 1, effect.none),
|
||||
("Hovel ", faction.neutral, 2, 1, (180, others => 0), 1, effect.none),
|
||||
("Nomad Tent ", faction.neutral, 3, 1, (240, others => 0), 1, effect.none),
|
||||
("Rogue Cavern ", faction.neutral, 3, 1, (180, others => 0), 1, effect.none),
|
||||
("Thatched Hut ", faction.neutral, 4, 1, (300, others => 0), 3, effect.none),
|
||||
("Troll's Bridge ", faction.neutral, 5, 1, (360, others => 0), 1, effect.none),
|
||||
("Crystalized Cave ", faction.neutral, 1, 1, ( 90, others => 0), 1, effect.none),
|
||||
("Frozen Cliffs ", faction.neutral, 1, 1, (120, others => 0), 1, effect.none),
|
||||
("Magic Forest ", faction.neutral, 2, 1, (180, others => 0), 3, effect.none),
|
||||
("Pyramid ", faction.neutral, 3, 1, (240, others => 0), 1, effect.none),
|
||||
("Sulfurous Lair ", faction.neutral, 3, 1, (180, others => 0), 1, effect.none),
|
||||
("Treetop Tower ", faction.neutral, 4, 1, (300, others => 0), 1, effect.none),
|
||||
--
|
||||
("Guardhouse ", faction.castle, 1, 1, ( 90, others => 0), 1, effect.none),
|
||||
("Watchtower ", faction.castle, 1, 1, (120, others => 0), 1, effect.none),
|
||||
("Griffin Tower ", faction.castle, 2, 1, (180, others => 0), 1, effect.none),
|
||||
("Barracks ", faction.castle, 3, 1, (240, others => 0), 1, effect.none),
|
||||
("Monastery ", faction.castle, 3, 1, (180, others => 0), 1, effect.none),
|
||||
("Training Grounds ", faction.castle, 4, 1, (300, others => 0), 1, effect.none),
|
||||
("Holy Portal ", faction.castle, 5, 1, (360, others => 0), 1, effect.none),
|
||||
--
|
||||
("Goblin Shed ", faction.stronghold, 1, 1, ( 90, others => 0), 1, effect.none),
|
||||
("Wolf Pen ", faction.stronghold, 1, 1, (120, others => 0), 1, effect.none),
|
||||
("Orc Tower ", faction.stronghold, 2, 1, (180, others => 0), 1, effect.none),
|
||||
("Ogre Fort ", faction.stronghold, 3, 1, (240, others => 0), 1, effect.none),
|
||||
("Cliff Nest ", faction.stronghold, 3, 1, (180, others => 0), 1, effect.none),
|
||||
("Cyclops Cave ", faction.stronghold, 4, 1, (300, others => 0), 1, effect.none),
|
||||
("Behemoth Lair ", faction.stronghold, 5, 1, (360, others => 0), 3, effect.none),
|
||||
--
|
||||
("Imp Crucible ", faction.inferno, 5, 1, (360, others => 0), 3, effect.none),
|
||||
("Hall of Sins ", faction.inferno, 5, 1, (360, others => 0), 3, effect.none),
|
||||
("Kennels ", faction.inferno, 5, 1, (360, others => 0), 1, effect.none),
|
||||
("Demon Gate ", faction.inferno, 5, 1, (360, others => 0), 1, effect.none),
|
||||
("Hell Hole ", faction.inferno, 5, 1, (360, others => 0), 3, effect.none),
|
||||
("Fire Lake ", faction.inferno, 5, 1, (360, others => 0), 3, effect.none),
|
||||
("Forsaken Palace ", faction.inferno, 5, 1, (360, others => 0), 1, effect.none),
|
||||
--
|
||||
("Workshop ", faction.tower, 5, 1, (360, others => 0), 3, effect.none),
|
||||
("Parapet ", faction.tower, 5, 1, (360, others => 0), 1, effect.none),
|
||||
("Golem Factory ", faction.tower, 5, 1, (360, others => 0), 3, effect.none),
|
||||
("Mage Tower ", faction.tower, 5, 1, (360, others => 0), 1, effect.none),
|
||||
("Altar of Wishes ", faction.tower, 5, 1, (360, others => 0), 1, effect.none),
|
||||
("Golden Pavilion ", faction.tower, 5, 1, (360, others => 0), 1, effect.none),
|
||||
("Cloud Temple ", faction.tower, 5, 1, (360, others => 0), 1, effect.none),
|
||||
--
|
||||
("Little Lantern ", faction.conflux, 5, 1, (360, others => 0), 3, effect.none),
|
||||
("Air Shrine ", faction.conflux, 5, 1, (360, others => 0), 3, effect.none),
|
||||
("Water Shrine ", faction.conflux, 5, 1, (360, others => 0), 3, effect.none),
|
||||
("Fire Shrine ", faction.conflux, 5, 1, (360, others => 0), 3, effect.none),
|
||||
("Earth Shrine ", faction.conflux, 5, 1, (360, others => 0), 3, effect.none),
|
||||
("Magic Shrine ", faction.conflux, 5, 1, (360, others => 0), 1, effect.none),
|
||||
("Flamewhirl ", faction.conflux, 5, 1, (360, others => 0), 3, effect.none),
|
||||
--
|
||||
("Cursed Shrine ", faction.necropolis, 1, 1, ( 90, others => 0), 1, effect.none),
|
||||
("Graveyard ", faction.necropolis, 1, 1, (120, others => 0), 1, effect.none),
|
||||
("Tomb of Souls ", faction.necropolis, 2, 1, (180, others => 0), 1, effect.none),
|
||||
("Estate ", faction.necropolis, 3, 1, (240, others => 0), 1, effect.none),
|
||||
("Mausoleum ", faction.necropolis, 3, 1, (180, others => 0), 1, effect.none),
|
||||
("Hall of Darkness ", faction.necropolis, 4, 1, (300, others => 0), 1, effect.none),
|
||||
("Bone Vault ", faction.necropolis, 5, 1, (360, others => 0), 1, effect.none),
|
||||
--
|
||||
("Centaur Stables ", faction.rampart, 5, 1, (360, others => 0), 1, effect.none),
|
||||
("Dwarf Cottage ", faction.rampart, 5, 1, (360, others => 0), 1, effect.none),
|
||||
("Homestead ", faction.rampart, 5, 1, (360, others => 0), 1, effect.none),
|
||||
("Enchanted Spring ", faction.rampart, 5, 1, (360, others => 0), 3, effect.none),
|
||||
("Dendroid Arches ", faction.rampart, 5, 1, (360, others => 0), 1, effect.none),
|
||||
("Unicorn Glades ", faction.rampart, 5, 1, (360, others => 0), 1, effect.none),
|
||||
("Dragon Cliffs ", faction.rampart, 5, 1, (360, others => 0), 1, effect.none),
|
||||
--
|
||||
("Gnoll Hut ", faction.fortress, 5, 1, (360, others => 0), 1, effect.none),
|
||||
("Lizard Den ", faction.fortress, 5, 1, (360, others => 0), 1, effect.none),
|
||||
("Dragonfly Hive ", faction.fortress, 5, 1, (360, others => 0), 3, effect.none),
|
||||
("Basilisk Pit ", faction.fortress, 5, 1, (360, others => 0), 1, effect.none),
|
||||
("Gorgon Lair ", faction.fortress, 5, 1, (360, others => 0), 1, effect.none),
|
||||
("Wyvern Next ", faction.fortress, 5, 1, (360, others => 0), 1, effect.none),
|
||||
("Hydra Pond ", faction.fortress, 5, 1, (360, others => 0), 1, effect.none),
|
||||
--
|
||||
("Warren ", faction.dungeon, 5, 1, (360, others => 0), 1, effect.none),
|
||||
("Harpy Loft ", faction.dungeon, 5, 1, (360, others => 0), 1, effect.none),
|
||||
("Pillar of Eyes ", faction.dungeon, 5, 1, (360, others => 0), 1, effect.none),
|
||||
("Chappel of Voice ", faction.dungeon, 5, 1, (360, others => 0), 1, effect.none),
|
||||
("Labyrinth ", faction.dungeon, 5, 1, (360, others => 0), 1, effect.none),
|
||||
("Manticore Lair ", faction.dungeon, 5, 1, (360, others => 0), 1, effect.none),
|
||||
("Dragon Cave ", faction.dungeon, 5, 1, (360, others => 0), 1, effect.none)
|
||||
("A ", faction.dwarf, (others => 0), 1, effect.none),
|
||||
("B ", faction.fairy, (others => 0), 1, effect.none),
|
||||
("C ", faction.gnoll, (others => 0), 1, effect.none),
|
||||
("D ", faction.goblin, (others => 0), 1, effect.none),
|
||||
("E ", faction.imp, (others => 0), 1, effect.none),
|
||||
("F ", faction.kobold, (others => 0), 1, effect.none)
|
||||
);
|
||||
|
||||
------------------------------------------------------------------------------------------
|
||||
|
@ -210,6 +210,10 @@ package body core is
|
||||
this.frames := frames;
|
||||
this.states := states;
|
||||
--
|
||||
if this.width = 0 or this.height = 0 then
|
||||
echo (failure, "./" & file_path);
|
||||
end if;
|
||||
--
|
||||
return this;
|
||||
end import_sprite;
|
||||
|
||||
@ -285,7 +289,7 @@ package body core is
|
||||
|
||||
procedure move (data : in sprite; x, y, frame, state : in integer) is
|
||||
begin
|
||||
render_sprite (data.index, x, y, state * data.width, (animation_time mod frame) * data.height, data.width, data.height);
|
||||
render_sprite (data.index, x, y, (animation_time mod frame) * data.width, state * data.height, data.width, data.height);
|
||||
end move;
|
||||
|
||||
------------------------------------------------------------------------------------------
|
||||
|
@ -69,7 +69,7 @@ package core is
|
||||
------------------------------------------------------------------------------------------
|
||||
|
||||
icon : constant natural := 32;
|
||||
base : constant natural := 32;
|
||||
base : constant natural := 16;
|
||||
gameplay_framerate : constant natural := 60;
|
||||
animation_framerate : constant natural := 6;
|
||||
|
||||
@ -94,11 +94,13 @@ package core is
|
||||
gameplay_time : natural := 0;
|
||||
animation_time : natural := 0;
|
||||
|
||||
camera : vector := (0, 0);
|
||||
|
||||
zoom : boolean := false;
|
||||
|
||||
hexagon_grid_sprite : sprite;
|
||||
hexagon_fill_sprite : sprite;
|
||||
|
||||
camera : vector := (0, 0);
|
||||
|
||||
text_box : volatile;
|
||||
|
||||
------------------------------------------------------------------------------------------
|
||||
|
160
source/item.ads
160
source/item.ads
@ -14,29 +14,7 @@ package item is
|
||||
);
|
||||
|
||||
type codex is (
|
||||
admirals_hat, ambassadors_sash, undertakers_amulet, angel_feather_arrows, angelic_alliance, angel_wings,
|
||||
armageddons_blade, armor_of_the_damned, armor_of_wonder, arms_of_legion, badge_of_courage, bird_of_perception,
|
||||
blackshard, boots_of_levitation, boots_of_polarity, boots_of_speed, elven_bow, sharpshooters_bow,
|
||||
unicorns_string, brimstone_armour, wooden_breastplate, gnolls_buckler, cape_of_conjuring, cape_of_velocity,
|
||||
cards_of_prophecy, celestial_necklace, centaurs_axe, charm_of_mana, balanced_cloak, clover_of_fortune,
|
||||
collar_of_conjuring, cornucopia, crest_of_valor, crown_of_dragontooth, crown_of_magician, dead_mans_boots,
|
||||
diplomats_ring, dragonbone_greaves, dragon_scale_armor, dragon_scale_shield, dragon_wing_tabard, elixir_of_life,
|
||||
emblem_of_cognizance, endless_bag_of_gold, endless_purse_of_gold, endless_sack_of_gold, equestrians_gloves, everflowing_crystal,
|
||||
vial_of_mercury, ring_of_sulfur, interference_choker, glyph_of_gallantry, golden_bow, greater_gnolls_flail,
|
||||
head_of_legion, hellstorm_helmet, helm_of_chaos, helm_of_heavens, helm_of_the_alabaster, evil_hour,
|
||||
cart_of_lumber, cart_of_ore, ladybird_of_luck, legs_of_legion, shield_of_courage, loins_of_legion,
|
||||
mystic_orb_of_mana, dragonteeth_necklace, ocean_guidance, necklace_of_swiftness, ogres_club_of_havoc, orb_of_driving_rain,
|
||||
orb_of_inhibition, orb_of_silt, orb_of_hell_tempest, orb_of_the_firmament, orb_of_vulnerability, pendant_of_courage,
|
||||
pendant_of_death, pendant_of_dispassion, pendant_of_free_will, pendant_of_holiness, pendant_of_life, pendant_of_negativity,
|
||||
pendant_of_renderer, pendant_of_memory, dragon_father_armour, quiet_eye, recanters_cloak, flammenwerfer,
|
||||
rib_cage, ring_of_conjuring, ring_of_infinite_gems, ring_of_life, ring_of_the_magi, ring_of_the_wayfarer,
|
||||
ring_of_vitality, sandals_of_the_saint, basilisk_chestplate, sea_captains_hat, sentinels_shield, shackles_of_war,
|
||||
fortrans_shield, oakenshield, undead_shield, skull_helmet, speculum, spellbinders_hat,
|
||||
sphere_of_permanence, spirit_of_oppression, spyglass, statesmans_medal, statue_of_legion, cs_ring,
|
||||
stoic_watchman, counterpoise, sword_of_hellfire, adas_claymore, talisman_of_mana, targ,
|
||||
thunder_helmet, titans_cuirass, titans_gladius, titans_thunder, tome_of_air, tome_of_earth,
|
||||
tome_of_fire, tome_of_water, torso_of_legion, cyclops_tunic, vampires_cowl, vial_of_dragon_blood,
|
||||
vial_of_lifeblood, wizards_well
|
||||
a, b
|
||||
);
|
||||
|
||||
------------------------------------------------------------------------------------------
|
||||
@ -56,140 +34,8 @@ package item is
|
||||
count : constant natural := codex'pos (codex'last) + 1;
|
||||
|
||||
trait : constant array (codex) of information := (
|
||||
("Admiral's Hat ", head, 0, effect.none),
|
||||
("Ambassador's Sash ", full_body, 0, effect.none),
|
||||
("Undertaker's Amulet ", neck, 1, effect.none),
|
||||
("Angel Feather Arrows ", bag, 1, effect.none),
|
||||
("Angelic Alliance ", main_hand, 2, effect.none),
|
||||
("Angel Wings ", full_body, 2, effect.none),
|
||||
("Armageddon's Blade ", main_hand, 3, effect.none),
|
||||
("Armor of The Damned ", chest, 3, effect.none),
|
||||
("Armor of Wonder ", chest, 0, effect.none),
|
||||
("Arms of Legion ", bag, 0, effect.none),
|
||||
("Badge of Courage ", bag, 1, effect.none),
|
||||
("Bird of Perception ", bag, 1, effect.none),
|
||||
("Blackshard ", main_hand, 2, effect.none),
|
||||
("Boot's of Levitation ", feet, 2, effect.none),
|
||||
("Boot's of Polarity ", feet, 3, effect.none),
|
||||
("Boot's of Speed ", feet, 3, effect.none),
|
||||
("Elven Bow ", off_hand, 0, effect.none),
|
||||
("Sharpshooter's Bow ", off_hand, 0, effect.none),
|
||||
("Unicorn's String ", bag, 1, effect.none),
|
||||
("Brimstone Armour ", chest, 1, effect.none),
|
||||
("Wooden Breastplate ", chest, 2, effect.none),
|
||||
("Gnoll's Buckler ", off_hand, 2, effect.none),
|
||||
("Cape of Conjuring ", full_body, 3, effect.none),
|
||||
("Cape of Velocity ", full_body, 3, effect.none),
|
||||
("Card's of Prophecy ", bag, 0, effect.none),
|
||||
("Celestial Necklace ", neck, 0, effect.none),
|
||||
("Centaur's Axe ", main_hand, 1, effect.none),
|
||||
("Charm of Mana ", neck, 1, effect.none),
|
||||
("Balanced Cloak ", full_body, 2, effect.none),
|
||||
("Clover of Fortune ", bag, 2, effect.none),
|
||||
("Collar of Conjuring ", neck, 3, effect.none),
|
||||
("Cornucopia ", bag, 3, effect.none),
|
||||
("Crest of Valor ", bag, 0, effect.none),
|
||||
("Crown of Dragontooth ", head, 0, effect.none),
|
||||
("Crown of Magician ", head, 1, effect.none),
|
||||
("Dead Man's Boots ", feet, 1, effect.none),
|
||||
("Diplomat's Ring ", finger, 2, effect.none),
|
||||
("Dragonbone Greaves ", feet, 2, effect.none),
|
||||
("Dragon Scale Armor ", chest, 3, effect.none),
|
||||
("Dragon Scale Shield ", off_hand, 3, effect.none),
|
||||
("Dragon Wing Tabard ", full_body, 0, effect.none),
|
||||
("Elixir of Life ", bag, 0, effect.none),
|
||||
("Emblem of Cognizance ", neck, 1, effect.none),
|
||||
("Endles's Bag of Gold ", bag, 1, effect.none),
|
||||
("Endles's Purse of Gold ", bag, 2, effect.none),
|
||||
("Endles's Sack of Gold ", bag, 2, effect.none),
|
||||
("Equestrian's Gloves ", hands, 3, effect.none),
|
||||
("Everflowing Crystal ", full_body, 3, effect.none),
|
||||
("Vial of Mercury ", bag, 0, effect.none),
|
||||
("Ring of Sulfur ", finger, 0, effect.none),
|
||||
("Interference Choker ", neck, 1, effect.none),
|
||||
("Glyph of Gallantry ", bag, 1, effect.none),
|
||||
("Golden Bow ", off_hand, 2, effect.none),
|
||||
("Greater Gnoll's Flail ", main_hand, 2, effect.none),
|
||||
("Head of Legion ", bag, 3, effect.none),
|
||||
("Hellstorm Helmet ", head, 3, effect.none),
|
||||
("Helm of Chaos ", head, 0, effect.none),
|
||||
("Helm of Heavens ", head, 0, effect.none),
|
||||
("Helm of The Alabaster ", head, 1, effect.none),
|
||||
("Evil Hour ", bag, 1, effect.none),
|
||||
("Cart of Lumber ", bag, 2, effect.none),
|
||||
("Cart of Ore ", bag, 2, effect.none),
|
||||
("Ladybird of Luck ", bag, 3, effect.none),
|
||||
("Leg's of Legion ", bag, 3, effect.none),
|
||||
("Shield of Courage ", off_hand, 0, effect.none),
|
||||
("Loin's of Legion ", bag, 0, effect.none),
|
||||
("Mystic Orb of Mana ", neck, 0, effect.none),
|
||||
("Dragonteeth Necklace ", neck, 0, effect.none),
|
||||
("Ocean Guidance ", neck, 0, effect.none),
|
||||
("Necklace of Swiftness ", neck, 0, effect.none),
|
||||
("Ogre's Club of Havoc ", main_hand, 0, effect.none),
|
||||
("Orb of Driving Rain ", bag, 0, effect.none),
|
||||
("Orb of Inhibition ", bag, 1, effect.none),
|
||||
("Orb of Silt ", bag, 1, effect.none),
|
||||
("Orb of Hell Tempest ", bag, 1, effect.none),
|
||||
("Orb of The Firmament ", bag, 1, effect.none),
|
||||
("Orb of Vulnerability ", bag, 1, effect.none),
|
||||
("Pendant of Courage ", neck, 1, effect.none),
|
||||
("Pendant of Death ", neck, 1, effect.none),
|
||||
("Pendant of Dispassion ", neck, 1, effect.none),
|
||||
("Pendant of Free Will ", neck, 2, effect.none),
|
||||
("Pendant of Holiness ", neck, 2, effect.none),
|
||||
("Pendant of Life ", neck, 2, effect.none),
|
||||
("Pendant of Negativity ", neck, 2, effect.none),
|
||||
("Pendant of Renderer ", neck, 2, effect.none),
|
||||
("Pendant of Memory ", neck, 2, effect.none),
|
||||
("Dragon Father Armour ", chest, 2, effect.none),
|
||||
("Quiet Eye ", finger, 2, effect.none),
|
||||
("Recanter's Cloak ", full_body, 3, effect.none),
|
||||
("Flammenwerfer ", main_hand, 3, effect.none),
|
||||
("Rib Cage ", chest, 3, effect.none),
|
||||
("Ring of Conjuring ", finger, 3, effect.none),
|
||||
("Ring of Infinite Gems ", finger, 3, effect.none),
|
||||
("Ring of Life ", finger, 3, effect.none),
|
||||
("Ring of The Magi ", finger, 3, effect.none),
|
||||
("Ring of The Wayfarer ", finger, 3, effect.none),
|
||||
("Ring of Vitality ", finger, 3, effect.none),
|
||||
("Sandal's of The Saint ", feet, 3, effect.none),
|
||||
("Basilisk Chestplate ", chest, 3, effect.none),
|
||||
("Sea Captain's Hat ", head, 3, effect.none),
|
||||
("Sentinel's Shield ", off_hand, 3, effect.none),
|
||||
("Shackle's of War ", hands, 3, effect.none),
|
||||
("Fortran's Shield ", off_hand, 3, effect.none),
|
||||
("Oakenshield ", off_hand, 3, effect.none),
|
||||
("Undead Shield ", off_hand, 3, effect.none),
|
||||
("Skull Helmet ", head, 3, effect.none),
|
||||
("Speculum ", bag, 3, effect.none),
|
||||
("Spellbinder's Hat ", head, 3, effect.none),
|
||||
("Sphere of Permanence ", bag, 3, effect.none),
|
||||
("Spirit of Oppression ", bag, 3, effect.none),
|
||||
("Spyglass ", bag, 3, effect.none),
|
||||
("Statesman's Medal ", neck, 3, effect.none),
|
||||
("Statue of Legion ", bag, 3, effect.none),
|
||||
("C's Ring ", finger, 3, effect.none),
|
||||
("Stoic Watchman ", bag, 3, effect.none),
|
||||
("Counterpoise ", full_body, 3, effect.none),
|
||||
("Sword of Hellfire ", main_hand, 3, effect.none),
|
||||
("Ada's Claymore ", main_hand, 3, effect.none),
|
||||
("Talisman of Mana ", bag, 3, effect.none),
|
||||
("Targ ", off_hand, 3, effect.none),
|
||||
("Thunder Helmet ", head, 3, effect.none),
|
||||
("Titan's Cuirass ", chest, 3, effect.none),
|
||||
("Titan's Gladius ", main_hand, 3, effect.none),
|
||||
("Titan's Thunder ", main_hand, 3, effect.none),
|
||||
("Tome of Air ", off_hand, 3, effect.none),
|
||||
("Tome of Earth ", off_hand, 3, effect.none),
|
||||
("Tome of Fire ", off_hand, 3, effect.none),
|
||||
("Tome of Water ", off_hand, 3, effect.none),
|
||||
("Torso of Legion ", bag, 3, effect.none),
|
||||
("Cyclop's Tunic ", chest, 3, effect.none),
|
||||
("Vampire's Cowl ", full_body, 3, effect.none),
|
||||
("Vial of Dragon Blood ", bag, 3, effect.none),
|
||||
("Vial of Lifeblood ", bag, 3, effect.none),
|
||||
("Wizard's Well ", bag, 3, effect.none)
|
||||
("A ", head, 0, effect.none),
|
||||
("B ", full_body, 0, effect.none)
|
||||
);
|
||||
|
||||
------------------------------------------------------------------------------------------
|
||||
|
143
source/main.adb
143
source/main.adb
@ -4,8 +4,7 @@
|
||||
|
||||
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, chad, ai;
|
||||
with core, ui, effect, attribute, skill, resource, faction, might, magic, item, unit, construction, chad, world, ai;
|
||||
|
||||
procedure main is
|
||||
|
||||
@ -21,52 +20,52 @@ procedure main is
|
||||
|
||||
------------------------------------------------------------------------------------------
|
||||
|
||||
--~type menu_index is (
|
||||
--~menu_none, menu_attribute, menu_skill, menu_resource, menu_unit, menu_might, menu_magic
|
||||
--~);
|
||||
type menu_index is (
|
||||
menu_none, menu_attribute, menu_skill, menu_resource, menu_unit, menu_might, menu_magic
|
||||
);
|
||||
|
||||
--~menu_limit : constant integer := 3;
|
||||
--~menu_count : integer := 0;
|
||||
menu_limit : constant integer := 3;
|
||||
menu_count : integer := 0;
|
||||
|
||||
--~menu_stack : array (1 .. menu_limit) of menu_index := (others => menu_none);
|
||||
menu_stack : array (1 .. menu_limit) of menu_index := (others => menu_none);
|
||||
|
||||
--~procedure menu_insert (index : in menu_index) is
|
||||
--~begin
|
||||
--~if menu_count = menu_limit then return; end if;
|
||||
--~--
|
||||
--~menu_count := menu_count mod menu_limit + 1;
|
||||
--~--
|
||||
--~menu_stack (menu_count) := index;
|
||||
--~end menu_insert;
|
||||
procedure menu_insert (index : in menu_index) is
|
||||
begin
|
||||
if menu_count = menu_limit then return; end if;
|
||||
--
|
||||
menu_count := menu_count mod menu_limit + 1;
|
||||
--
|
||||
menu_stack (menu_count) := index;
|
||||
end menu_insert;
|
||||
|
||||
--~procedure menu_remove is
|
||||
--~begin
|
||||
--~if menu_count = 0 then return; end if;
|
||||
--~--
|
||||
--~menu_stack (menu_count) := menu_none;
|
||||
--~--
|
||||
--~menu_count := menu_count - 1;
|
||||
--~end menu_remove;
|
||||
procedure menu_remove is
|
||||
begin
|
||||
if menu_count = 0 then return; end if;
|
||||
--
|
||||
menu_stack (menu_count) := menu_none;
|
||||
--
|
||||
menu_count := menu_count - 1;
|
||||
end menu_remove;
|
||||
|
||||
--~procedure menu_render is
|
||||
--~begin
|
||||
--~if menu_count > 0 then
|
||||
--~core.overlay;
|
||||
--~end if;
|
||||
--~--
|
||||
--~for index in 1 .. menu_limit
|
||||
--~loop
|
||||
--~case menu_stack (index) is
|
||||
--~when menu_none => null;
|
||||
--~when menu_attribute => attribute.menu (100, 100, false);
|
||||
--~when menu_skill => skill.menu (200, 200, false);
|
||||
--~when menu_resource => resource.menu (300, 300, false);
|
||||
--~when menu_unit => unit.menu (0, 0, true);
|
||||
--~when menu_might => might.menu (0, 0, true);
|
||||
--~when menu_magic => magic.menu (0, 0, true);
|
||||
--~end case;
|
||||
--~end loop;
|
||||
--~end menu_render;
|
||||
procedure menu_render is
|
||||
begin
|
||||
if menu_count > 0 then
|
||||
core.overlay;
|
||||
end if;
|
||||
--
|
||||
for index in 1 .. menu_limit
|
||||
loop
|
||||
case menu_stack (index) is
|
||||
when menu_none => null;
|
||||
when menu_attribute => attribute.menu (100, 100, false);
|
||||
when menu_skill => skill.menu (200, 200, false);
|
||||
when menu_resource => resource.menu (300, 300, false);
|
||||
when menu_unit => unit.menu (0, 0, true);
|
||||
when menu_might => might.menu (0, 0, true);
|
||||
when menu_magic => magic.menu (0, 0, true);
|
||||
end case;
|
||||
end loop;
|
||||
end menu_render;
|
||||
|
||||
------------------------------------------------------------------------------------------
|
||||
|
||||
@ -75,26 +74,26 @@ procedure main is
|
||||
procedure move_camera_down is begin core.camera.y := core.camera.y + 1; end move_camera_down;
|
||||
procedure move_camera_left is begin core.camera.x := core.camera.x - 1; end move_camera_left;
|
||||
procedure move_camera_right is begin core.camera.x := core.camera.x + 1; end move_camera_right;
|
||||
--~procedure show_attribute_menu is begin menu_insert (menu_attribute); end show_attribute_menu;
|
||||
--~procedure show_skill_menu is begin menu_insert (menu_skill); end show_skill_menu;
|
||||
--~procedure show_resource_menu is begin menu_insert (menu_resource); end show_resource_menu;
|
||||
--~procedure show_unit_menu is begin menu_insert (menu_unit); end show_unit_menu;
|
||||
--~procedure show_might_menu is begin menu_insert (menu_might); end show_might_menu;
|
||||
--~procedure show_magic_menu is begin menu_insert (menu_magic); end show_magic_menu;
|
||||
--~procedure hide_top_menu is begin menu_remove; end hide_top_menu;
|
||||
procedure show_attribute_menu is begin menu_insert (menu_attribute); end show_attribute_menu;
|
||||
procedure show_skill_menu is begin menu_insert (menu_skill); end show_skill_menu;
|
||||
procedure show_resource_menu is begin menu_insert (menu_resource); end show_resource_menu;
|
||||
procedure show_unit_menu is begin menu_insert (menu_unit); end show_unit_menu;
|
||||
procedure show_might_menu is begin menu_insert (menu_might); end show_might_menu;
|
||||
procedure show_magic_menu is begin menu_insert (menu_magic); end show_magic_menu;
|
||||
procedure hide_top_menu is begin menu_remove; end hide_top_menu;
|
||||
|
||||
signal_list : constant array (core.signal_code) of access procedure := (
|
||||
core.signal_up => move_camera_up'access,
|
||||
core.signal_down => move_camera_down'access,
|
||||
core.signal_left => move_camera_left'access,
|
||||
core.signal_right => move_camera_right'access,
|
||||
--~core.signal_a => show_attribute_menu'access,
|
||||
--~core.signal_s => show_skill_menu'access,
|
||||
--~core.signal_r => show_resource_menu'access,
|
||||
--~core.signal_u => show_unit_menu'access,
|
||||
--~core.signal_m => show_might_menu'access,
|
||||
--~core.signal_n => show_magic_menu'access,
|
||||
--~core.signal_grave => hide_top_menu'access,
|
||||
core.signal_a => show_attribute_menu'access,
|
||||
core.signal_s => show_skill_menu'access,
|
||||
core.signal_r => show_resource_menu'access,
|
||||
core.signal_u => show_unit_menu'access,
|
||||
core.signal_m => show_might_menu'access,
|
||||
core.signal_n => show_magic_menu'access,
|
||||
core.signal_grave => hide_top_menu'access,
|
||||
others => idle'access
|
||||
);
|
||||
|
||||
@ -118,16 +117,16 @@ begin
|
||||
attribute.configure;
|
||||
skill.configure;
|
||||
resource.configure;
|
||||
--~might.configure;
|
||||
--~magic.configure;
|
||||
--~item.configure;
|
||||
--~unit.configure;
|
||||
--~construction.configure;
|
||||
might.configure;
|
||||
magic.configure;
|
||||
item.configure;
|
||||
unit.configure;
|
||||
construction.configure;
|
||||
chad.configure;
|
||||
--~world.configure;
|
||||
world.configure;
|
||||
ai.configure;
|
||||
|
||||
--~world.make (world.rough, 120, 100);
|
||||
world.make (world.grass, 120, 100);
|
||||
|
||||
preview_width := core.window_width - side_panel;
|
||||
preview_height := core.window_height;
|
||||
@ -145,13 +144,10 @@ begin
|
||||
--
|
||||
ui.active := (if core.cursor_mode = 3 then ui.default else ui.steam);
|
||||
--
|
||||
--~core.draw (core.hexagon_fill_sprite, 0, 0);
|
||||
--~core.draw (core.hexagon_grid_sprite, 0, 0);
|
||||
core.camera.x := core.clip (core.camera.x, 0, world.map.width - preview_width / core.base);
|
||||
core.camera.y := core.clip (core.camera.y, 0, world.map.height - preview_height / core.base);
|
||||
--
|
||||
--~core.camera.x := core.clip (core.camera.x, 0, world.map.width - preview_width / core.base);
|
||||
--~core.camera.y := core.clip (core.camera.y, 0, world.map.height - preview_height / core.base);
|
||||
--
|
||||
--~world.draw (preview_x, preview_y, preview_width - 2 * preview_x, preview_height - 2 * preview_y - 32, core.signal_mode = core.signal_code'pos (core.signal_g));
|
||||
world.draw (preview_x, preview_y, preview_width - 2 * preview_x, preview_height - 2 * preview_y - 32, core.signal_mode = core.signal_code'pos (core.signal_g));
|
||||
--
|
||||
--~core.draw_central_grid (preview_x, preview_y, preview_width - 2 * preview_x, preview_height - 2 * preview_y);
|
||||
--~core.draw_squared_grid (preview_x, preview_y, preview_width - 2 * preview_x, preview_height - 2 * preview_y);
|
||||
@ -164,15 +160,12 @@ begin
|
||||
--
|
||||
signal_list (core.signal_code'val (core.signal_mode)).all;
|
||||
--
|
||||
--~ai.review;
|
||||
--~ai.view_actor_state (1);
|
||||
--
|
||||
--~magic.menu (0, 0, true);
|
||||
--~might.menu (0, 0, true);
|
||||
--
|
||||
--~menu_render;
|
||||
menu_render;
|
||||
--
|
||||
--~ui.write (menu_count'image, 16, 16);
|
||||
ui.write (menu_count'image, 16, 16);
|
||||
--
|
||||
ui.draw_text_box (0, core.window_height - 32, core.window_width, 32);
|
||||
end loop gameplay;
|
||||
|
@ -29,7 +29,7 @@ package body unit is
|
||||
folder : constant string := core.lowercase (faction.codex'image (trait (index).kind));
|
||||
file : constant string := core.lowercase (codex'image (index));
|
||||
begin
|
||||
sprite (index) := core.import_sprite ("./sprite/unit/" & folder & "/" & file & ".png", 6, 6);
|
||||
sprite (index) := core.import_sprite ("./sprite/unit/" & folder & "/" & file & ".png", 4, 6);
|
||||
icon_sprite (index) := core.import_sprite ("./sprite/unit/icon/" & file & ".png", 1, 1);
|
||||
view_sprite (index) := core.import_sprite ("./sprite/unit/view/" & file & ".png", 1, 1);
|
||||
end;
|
||||
|
197
source/unit.ads
197
source/unit.ads
@ -9,49 +9,11 @@ package unit is
|
||||
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
type animation is (
|
||||
idle, wounded, dead, moving, toggle_moving, attack
|
||||
idle, walk, melee, shoot, wounded, dead
|
||||
);
|
||||
|
||||
type codex is (
|
||||
azure_dragon, boar, crystal_dragon, enchanter, faerie_dragon, gold_golem,
|
||||
halfing, mummy, nomad, peasant, rogue, rust_dragon,
|
||||
sharpshooter, troll,
|
||||
--
|
||||
pikeman, halberdier, archer, marksman, griffin, royal_griffin,
|
||||
swordsman, crusader, monk, zealot, cavalier, champion,
|
||||
angel, arch_angel,
|
||||
--
|
||||
goblin, hobgoblin, wolf_rider, wolf_raider, orc, orc_chieftain,
|
||||
ogre, ogre_magi, roc, thunderbird, cyclops, cyclops_king,
|
||||
behemoth, ancient_behemoth,
|
||||
--
|
||||
imp, familiar, gog, magog, hell_hound, cerberus,
|
||||
demon, horned_demon, pit_fiend, pit_lord, efreet, efreet_sultan,
|
||||
devil, arch_devil,
|
||||
--
|
||||
gremlin, master_gremlin, stone_gargoyle, obsidian_gargoyle, stone_golem, iron_golem,
|
||||
mage, arch_mage, geany, master_geany, naga, naga_queen,
|
||||
giant, titan,
|
||||
--
|
||||
pixie, spirit, air_elemental, storm_elemental, water_elemental, ice_elemental,
|
||||
fire_elemental, energy_elemental, earth_elemental, magma_elemental, psychic_elemental, magic_elemental,
|
||||
fire_bird, phoenix,
|
||||
--
|
||||
skeleton, skeleton_warrior, walking_dead, zombie, wight, wraith,
|
||||
vampire, vampire_lord, lich, power_lich, black_knight, dread_knight,
|
||||
bone_dragon, ghost_dragon,
|
||||
--
|
||||
centaur, centaur_captain, dwarf, battle_dwarf, wood_elf, grand_elf,
|
||||
pegasus, silver_pegasus, dendroid_guard, dendroid_soldier, unicorn, war_unicorn,
|
||||
green_dragon, gold_dragon,
|
||||
--
|
||||
gnoll, gnoll_marauder, lizardman, lizard_warrior, serpentfly, dragonfly,
|
||||
basilisk, greater_basilisk, gorgon, mighty_gorgon, wyvern, wyvern_monarch,
|
||||
hydra, chaos_hydra,
|
||||
--
|
||||
troglodyte, infernal_troglodyte, harpy, harpy_hag, evil_eye, beholder,
|
||||
medusa, medusa_queen, minotaur, minotaur_king, manticore, scorpicore,
|
||||
red_dragon, black_dragon
|
||||
dwarf_male, fairy_male, gnoll_male, goblin_male, imp_male, kobold_male
|
||||
);
|
||||
|
||||
------------------------------------------------------------------------------------------
|
||||
@ -70,155 +32,12 @@ package unit is
|
||||
count : constant natural := codex'pos (codex'last) + 1;
|
||||
|
||||
trait : constant array (codex) of information := (
|
||||
("Azure Dragon ", faction.neutral, (others => 1), effect.none, "Powerful and majestic dragon known for its devastating attacks. "),
|
||||
("Boar ", faction.neutral, (others => 1), effect.none, "Wild animal with tusks, often used as frontline warriors. "),
|
||||
("Crystal Dragon ", faction.neutral, (others => 1), effect.none, "Crystal-encrusted dragon with powerful magical abilities. "),
|
||||
("Enchanter ", faction.neutral, (others => 1), effect.none, "Spellcaster specializing in enchantments and buffs. "),
|
||||
("Faerie Dragon ", faction.neutral, (others => 1), effect.none, "Mischievous creature with potent magical abilities. "),
|
||||
("Gold Golem ", faction.neutral, (others => 1), effect.none, "Construct made of pure gold, resistant to magic. "),
|
||||
("Halfing ", faction.neutral, (others => 1), effect.none, "Small, nimble creature with stealth and ranged abilities. "),
|
||||
("Mummy ", faction.neutral, (others => 1), effect.none, "Undead creature wrapped in bandages, capable of curses. "),
|
||||
("Nomad ", faction.neutral, (others => 1), effect.none, "Skilled ranged fighter from the desert with high mobility. "),
|
||||
("Peasant ", faction.neutral, (others => 1), effect.none, "Basic unit, typically low-cost and expendable. "),
|
||||
("Rogue ", faction.neutral, (others => 1), effect.none, "Sneaky unit specialized in stealth and surprise attacks. "),
|
||||
("Rust Dragon ", faction.neutral, (others => 1), effect.none, "Dragon with corrosive breath, capable of weakening enemies. "),
|
||||
("Sharpshooter ", faction.neutral, (others => 1), effect.none, "Highly skilled ranged unit with exceptional accuracy. "),
|
||||
("Troll ", faction.neutral, (others => 1), effect.none, "Regenerating and powerful brute, often used as a tank. "),
|
||||
--
|
||||
("Pikeman ", faction.castle, (others => 1), effect.none, "Basic spear-wielding infantry unit with a defensive stance. "),
|
||||
("Halberdier ", faction.castle, (others => 1), effect.none, "Advanced infantry unit armed with a versatile halberd. "),
|
||||
("Archer ", faction.castle, (others => 1), effect.none, "Ranged unit proficient in shooting arrows at enemies. "),
|
||||
("Crossbowman ", faction.castle, (others => 1), effect.none, "Highly skilled archer with superior accuracy and damage. "),
|
||||
("Griffin ", faction.castle, (others => 1), effect.none, "Majestic creature with flying capabilities and swift attacks. "),
|
||||
("Royal Griffin ", faction.castle, (others => 1), effect.none, "Upgraded version of the Griffin with enhanced stats and abilities. "),
|
||||
("Swordsman ", faction.castle, (others => 1), effect.none, "Skillful melee fighter equipped with a sharp blade. "),
|
||||
("Crusader ", faction.castle, (others => 1), effect.none, "Holy warrior with strong offensive and defensive capabilities. "),
|
||||
("Monk ", faction.castle, (others => 1), effect.none, "Mystic unit with healing and support spells. "),
|
||||
("Zealot ", faction.castle, (others => 1), effect.none, "Fanatic warrior dedicated to their cause, often infused with magic. "),
|
||||
("Cavalier ", faction.castle, (others => 1), effect.none, "Mounted knight unit with speed and impact in battle. "),
|
||||
("Champion ", faction.castle, (others => 1), effect.none, "Elite warrior with exceptional combat skills and resilience. "),
|
||||
("Angel ", faction.castle, (others => 1), effect.none, "Divine being with powerful healing and offensive abilities. "),
|
||||
("Arch-Angel ", faction.castle, (others => 1), effect.none, "Superior celestial being with extraordinary powers and influence. "),
|
||||
--
|
||||
("Goblin ", faction.stronghold, (others => 1), effect.none, "Small and mischievous creature known for its cunning and traps. "),
|
||||
("Hobgoblin ", faction.stronghold, (others => 1), effect.none, "Stronger and more vicious version of the goblin, often brave warriors. "),
|
||||
("Wolf Rider ", faction.stronghold, (others => 1), effect.none, "Fast-moving unit mounted on wolves for quick strikes. "),
|
||||
("Wolf Raider ", faction.stronghold, (others => 1), effect.none, "Upgraded version of the Wolf Rider with enhanced strength and ferocity. "),
|
||||
("Orc ", faction.stronghold, (others => 1), effect.none, "Brutal and fierce humanoid warrior with a penchant for melee combat. "),
|
||||
("Orc Chieftain ", faction.stronghold, (others => 1), effect.none, "Leader of orcish tribes, commanding respect and fear among his folk. "),
|
||||
("Orge ", faction.stronghold, (others => 1), effect.none, "Huge and powerful creature capable of crushing foes with its strength. "),
|
||||
("Ogre Magi ", faction.stronghold, (others => 1), effect.none, "Magical variant of the ogre, using berserk spell in addition to mace. "),
|
||||
("Roc ", faction.stronghold, (others => 1), effect.none, "Gigantic bird of prey with the ability to carry friendly units. "),
|
||||
("Thunderbird ", faction.stronghold, (others => 1), effect.none, "Mythical bird with control over lightning and thunder. "),
|
||||
("Cyclops ", faction.stronghold, (others => 1), effect.none, "One-eyed giant wielding massive clubs for devastating blows. "),
|
||||
("Cyclops King ", faction.stronghold, (others => 1), effect.none, "Sovereign ruler among the cyclops race, commanding great respect. "),
|
||||
("Behemoth ", faction.stronghold, (others => 1), effect.none, "Enormous and unstoppable monster wreaking havoc on the battlefield. "),
|
||||
("Ancient Behemoth ", faction.stronghold, (others => 1), effect.none, "Legendary and exceptionally powerful behemoth with devastating attacks. "),
|
||||
--
|
||||
("Imp ", faction.inferno, (others => 1), effect.none, "Small, agile demon known for its cunning and mischief. "),
|
||||
("Familiar ", faction.inferno, (others => 1), effect.none, "Devilish creature bound to a sorcerer, aiding in magic and combat. "),
|
||||
("Gog ", faction.inferno, (others => 1), effect.none, "Mighty and brutish humanoid warrior wielding a massive club. "),
|
||||
("Magog ", faction.inferno, (others => 1), effect.none, "Elite version of the Gog, boasting enhanced strength and aggression. "),
|
||||
("Hell Hound ", faction.inferno, (others => 1), effect.none, "Fiery canine creature with a fierce bite and burning breath. "),
|
||||
("Cerberus ", faction.inferno, (others => 1), effect.none, "Three-headed dog guarding the gates of the underworld with ferocity. "),
|
||||
("Demon ", faction.inferno, (others => 1), effect.none, "Malevolent creature from the abyss, wielding dark powers and strength. "),
|
||||
("Horned Demon ", faction.inferno, (others => 1), effect.none, "Upgraded demon with greater power and enhanced abilities. "),
|
||||
("Pit Fiend ", faction.inferno, (others => 1), effect.none, "Terrifying demon lord commanding legions of infernal forces. "),
|
||||
("Pit Lord ", faction.inferno, (others => 1), effect.none, "Ruthless ruler of demonic realms, instilling fear in all who oppose. "),
|
||||
("Efreeti ", faction.inferno, (others => 1), effect.none, "Fiery elemental being capable of unleashing inferno upon enemies. "),
|
||||
("Efreet Sultan ", faction.inferno, (others => 1), effect.none, "Powerful and regal efreet lord commanding fire and magic. "),
|
||||
("Devil ", faction.inferno, (others => 1), effect.none, "Cunning and manipulative fiend striking deals for souls and power. "),
|
||||
("Arch Devil ", faction.inferno, (others => 1), effect.none, "Ultimate demon lord embodying darkness and corruption. "),
|
||||
--
|
||||
("Gremlin ", faction.tower, (others => 1), effect.none, "Small, mischievous creature known for its trickery and cunning. "),
|
||||
("Master Gremlin ", faction.tower, (others => 1), effect.none, "A more powerful version of the Gremlin with enhanced abilities. "),
|
||||
("Stone Gargoyle ", faction.tower, (others => 1), effect.none, "Stone creature resembling a grotesque statue, often found in ruins. "),
|
||||
("Obisidian Gargoyle ", faction.tower, (others => 1), effect.none, "Stronger variant of the Stone Gargoyle, with increased durability. "),
|
||||
("Stone Golem ", faction.tower, (others => 1), effect.none, "Humanoid construct made entirely of stone, animated through magic. "),
|
||||
("Iron Golem ", faction.tower, (others => 1), effect.none, "Stronger and more resilient golem crafted from iron and alloys. "),
|
||||
("Mage ", faction.tower, (others => 1), effect.none, "Spellcaster wielding elemental magic and arcane powers in battles. "),
|
||||
("Arch Mage ", faction.tower, (others => 1), effect.none, "Masterful mage with unparalleled mastery over various schools of magic. "),
|
||||
("Geany ", faction.tower, (others => 1), effect.none, "Mystical creature capable of granting wishes, blessing his friends. "),
|
||||
("Master Geany ", faction.tower, (others => 1), effect.none, "Higher-ranking Geany possessing greater magical prowess and wisdom. "),
|
||||
("Naga ", faction.tower, (others => 1), effect.none, "Serpentine creature with a humanoid upper body, wielding deadly poison. "),
|
||||
("Naga Queen ", faction.tower, (others => 1), effect.none, "Powerful matriarch among the Naga, ruling with pride and confidence. "),
|
||||
("Giant ", faction.tower, (others => 1), effect.none, "Enormous humanoid known for its immense strength and sheer size. "),
|
||||
("Titan ", faction.tower, (others => 1), effect.none, "Colossal and ancient being of immense power throwing lightning. "),
|
||||
--
|
||||
("Pixie ", faction.conflux, (others => 1), effect.none, "Tiny, sprite-like creature known for its magical abilities. "),
|
||||
("Spirit ", faction.conflux, (others => 1), effect.none, "An actual sprite, but I used that name for image data sadly. "),
|
||||
("Air Elemental ", faction.conflux, (others => 1), effect.none, "Elemental creature using the power of air, controling winds and storms. "),
|
||||
("Storm Elemental ", faction.conflux, (others => 1), effect.none, "Powerful entity of turbulent weather, commanding lightning and thunder. "),
|
||||
("Water Elemental ", faction.conflux, (others => 1), effect.none, "Entity formed of pure water, capable of manipulating rivers and rain. "),
|
||||
("Ice Elemental ", faction.conflux, (others => 1), effect.none, "Elemental creature embodying the chilling power of ice and frost. "),
|
||||
("Fire Elemental ", faction.conflux, (others => 1), effect.none, "Being of living flames and intense heat, wreaking havoc with its fire. "),
|
||||
("Energy Elemental ", faction.conflux, (others => 1), effect.none, "Elemental entity representing raw energy in its most potent form. "),
|
||||
("Earth Elemental ", faction.conflux, (others => 1), effect.none, "Elemental creature tied to the earth itself, possessing great strength. "),
|
||||
("Magma Elemental ", faction.conflux, (others => 1), effect.none, "Fusion of fire and earth elements, embodying molten rock. "),
|
||||
("Psychic Elemental ", faction.conflux, (others => 1), effect.none, "Entity harnessing the power of the mind, capable of psionic attacks. "),
|
||||
("Magic Elemental ", faction.conflux, (others => 1), effect.none, "An elemental creature infused with pure arcane energy. "),
|
||||
("Fire Bird ", faction.conflux, (others => 1), effect.none, "A mythical avian creature with feathers of flame, embodying the flames. "),
|
||||
("Phoenix ", faction.conflux, (others => 1), effect.none, "Legendary bird of rebirth and renewal, reborn from its ashes. "),
|
||||
--
|
||||
("Skeleton ", faction.necropolis, (others => 1), effect.none, "Animated pile of bones, devoid of flesh or soul, controlled by magic. "),
|
||||
("Skeleton Warrior ", faction.necropolis, (others => 1), effect.none, "Reanimated skeletal being armed for battle, serving as undead soldiers. "),
|
||||
("Walking Dead ", faction.necropolis, (others => 1), effect.none, "Reanimated corpses stumbling aimlessly, driven by dark magic or curses. "),
|
||||
("Zombie ", faction.necropolis, (others => 1), effect.none, "Flesh-eating undead creatures, reanimated through necromantic rituals. "),
|
||||
("Wight ", faction.necropolis, (others => 1), effect.none, "Undead creature with malevolent powers, often draining life energy. "),
|
||||
("Wraith ", faction.necropolis, (others => 1), effect.none, "Spectral entity dwelling in darkness, feeding on fear and despair. "),
|
||||
("Vampire ", faction.necropolis, (others => 1), effect.none, "Immortal creature of the night, sustained by blood and flesh. "),
|
||||
("Vampire Lord ", faction.necropolis, (others => 1), effect.none, "Powerful vampire noble with enhanced abilities and commanding undead. "),
|
||||
("Lich ", faction.necropolis, (others => 1), effect.none, "Undead sorcerer achieving immortality through dark magic. "),
|
||||
("Power Lich ", faction.necropolis, (others => 1), effect.none, "Elite lich with heightened magical prowess and devastating spells. "),
|
||||
("Black Knight ", faction.necropolis, (others => 1), effect.none, "Undead warrior clad in dark armor, serving dark lords to spread terror. "),
|
||||
("Dread Knight ", faction.necropolis, (others => 1), effect.none, "Elite black knight of immense power and skill, feared on the front. "),
|
||||
("Bone Dragon ", faction.necropolis, (others => 1), effect.none, "Undead dragon reanimated from ancient bones, breathing death and decay. "),
|
||||
("Ghost Dragon ", faction.necropolis, (others => 1), effect.none, "Spectral dragon of ethereal essence, haunting the living beings. "),
|
||||
--
|
||||
("Centaur ", faction.rampart, (others => 1), effect.none, "Half-human, half-horse creature known for archery and speed in combat. "),
|
||||
("Centaur Captain ", faction.rampart, (others => 1), effect.none, "Distinguished centaur leader commanding troops with precision. "),
|
||||
("Dwarf ", faction.rampart, (others => 1), effect.none, "Stout and sturdy underground-dwelling beings skilled in craftsmanship. "),
|
||||
("Battle Dwarf ", faction.rampart, (others => 1), effect.none, "Ferocious dwarf warrior renowned for their combat prowess. "),
|
||||
("Wood Elf ", faction.rampart, (others => 1), effect.none, "Graceful forest-dwelling elves attuned to nature and archery. "),
|
||||
("Grand Elf ", faction.rampart, (others => 1), effect.none, "Elite wood elf warrior with exceptional skills in marksmanship. "),
|
||||
("Pegasus ", faction.rampart, (others => 1), effect.none, "Majestic winged horse revered for its speed and grace in battle. "),
|
||||
("Silver Pegasus ", faction.rampart, (others => 1), effect.none, "Rare and ethereal pegasus with shimmering silver wings and light aura. "),
|
||||
("Dendroid Guard ", faction.rampart, (others => 1), effect.none, "Towering tree-like creature standing as a guardian of the forest. "),
|
||||
("Dendroid Soldier ", faction.rampart, (others => 1), effect.none, "Animated tree warrior fiercely protecting nature with its wooden might. "),
|
||||
("Unicorn ", faction.rampart, (others => 1), effect.none, "Magical horse-like creature with a spiraling horn, symbolizing grace. "),
|
||||
("War Unicorn ", faction.rampart, (others => 1), effect.none, "Armored unicorn charging into battle with unmatched strength and valor. "),
|
||||
("Green Dragon ", faction.rampart, (others => 1), effect.none, "Powerful dragon associated with nature and known for fire breath. "),
|
||||
("Gold Dragon ", faction.rampart, (others => 1), effect.none, "Noble and majestic dragon of great wisdom and power. "),
|
||||
--
|
||||
("Gnoll ", faction.fortress, (others => 1), effect.none, "Agile and aggressive hyena-like humanoid known for their savagery. "),
|
||||
("Gnoll Marauder ", faction.fortress, (others => 1), effect.none, "Ruthless and cunning gnoll leader skilled in hit-and-run tactics. "),
|
||||
("Lizardman ", faction.fortress, (others => 1), effect.none, "Reptilian humanoid proficient in swamp and jungle environments. "),
|
||||
("Lizard Warrior ", faction.fortress, (others => 1), effect.none, "Strong and resilient lizardman warrior with great archery skills. "),
|
||||
("Serpentfly ", faction.fortress, (others => 1), effect.none, "Agile flying creature with a venomous sting, hunting prey from the air. "),
|
||||
("Dragonfly ", faction.fortress, (others => 1), effect.none, "Swift flying insect-like creature known for its large wings. "),
|
||||
("Basilisk ", faction.fortress, (others => 1), effect.none, "Terrifying creature capable of petrifying its victims. "),
|
||||
("Greater Basilisk ", faction.fortress, (others => 1), effect.none, "Larger and more deadly variant of the basilisk, feared for its gaze. "),
|
||||
("Gorgon ", faction.fortress, (others => 1), effect.none, "Mythical creature with the ability to turn foes to stone with a glance. "),
|
||||
("Mighty Gorgon ", faction.fortress, (others => 1), effect.none, "Enhanced and formidable Gorgon, striking fear into enemies. "),
|
||||
("Wyvern ", faction.fortress, (others => 1), effect.none, "Winged dragon-like creature with a barbed tail and a fierce nature. "),
|
||||
("Wyvern Monarch ", faction.fortress, (others => 1), effect.none, "Sovereign wyvern of colossal size and power with its venomous breath. "),
|
||||
("Hydra ", faction.fortress, (others => 1), effect.none, "Mythical multi-headed serpent known for its regenerative abilities. "),
|
||||
("Chaos Hydra ", faction.fortress, (others => 1), effect.none, "Chaotic variant of the hydra with devastating attacks. "),
|
||||
--
|
||||
("Troglodyte ", faction.dungeon, (others => 1), effect.none, "Primitive subterranean humanoid with a keen sense of smell. "),
|
||||
("Infernal Troglodyte ", faction.dungeon, (others => 1), effect.none, "Corrupted troglodyte infused with infernal power and dark magic. "),
|
||||
("Harpy ", faction.dungeon, (others => 1), effect.none, "Half-bird, half-human creature known for its aerial attacks. "),
|
||||
("Harpy Hag ", faction.dungeon, (others => 1), effect.none, "Malevolent and powerful harpy matriarch capable of casting curses. "),
|
||||
("Evil Eye ", faction.dungeon, (others => 1), effect.none, "Floating creature with a deadly gaze that can weaken its victims. "),
|
||||
("Beholder ", faction.dungeon, (others => 1), effect.none, "Floating abomination with multiple eye stalks that shoot venom. "),
|
||||
("Medusa ", faction.dungeon, (others => 1), effect.none, "Mythical creature with a gaze that turns beings to stone. "),
|
||||
("Medusa Queen ", faction.dungeon, (others => 1), effect.none, "Powerful and regal medusa with a deadly gaze, ruling over medusas. "),
|
||||
("Minotaur ", faction.dungeon, (others => 1), effect.none, "Bull-headed humanoid known for its brute strength. "),
|
||||
("Minotaur King ", faction.dungeon, (others => 1), effect.none, "Majestic and formidable minotaur leader with combat prowess. "),
|
||||
("Manticore ", faction.dungeon, (others => 1), effect.none, "Mythical creature with a lion's body, bat-like wings, and a spiky tail. "),
|
||||
("Scorpicore ", faction.dungeon, (others => 1), effect.none, "Hybrid creature combining traits of a manticore and a scorpion. "),
|
||||
("Red Dragon ", faction.dungeon, (others => 1), effect.none, "Massive fire-breathing dragon with a fearsome reputation. "),
|
||||
("Black Dragon ", faction.dungeon, (others => 1), effect.none, "Scheming and malevolent beast boasting fire breath and a cruel demeanor.")
|
||||
("Dwarf ", faction.dwarf, (others => 1), effect.none, " "),
|
||||
("Fairy ", faction.fairy, (others => 1), effect.none, " "),
|
||||
("Gnoll ", faction.gnoll, (others => 1), effect.none, " "),
|
||||
("Goblin ", faction.goblin, (others => 1), effect.none, " "),
|
||||
("Imp ", faction.imp, (others => 1), effect.none, " "),
|
||||
("Kobold ", faction.kobold, (others => 1), effect.none, " ")
|
||||
);
|
||||
|
||||
------------------------------------------------------------------------------------------
|
||||
|
@ -2,7 +2,7 @@
|
||||
--
|
||||
-- GNU General Public Licence (version 3 or later)
|
||||
|
||||
with ada.strings.fixed;
|
||||
--~with ada.strings.fixed;
|
||||
with core, resource, item, unit, construction, world;
|
||||
|
||||
use world;
|
||||
@ -24,7 +24,7 @@ package body world is
|
||||
blocks : core.sprite;
|
||||
landmarks : landmark_sprite_array := (others => null);
|
||||
|
||||
limit : constant limit_array := (29, 64, 70, 94, 51, 94);
|
||||
limit : constant limit_array := (2, 2, 2, 2, 2, 2);
|
||||
|
||||
landmark_limit : constant integer := 140;
|
||||
construction_limit : constant integer := 40;
|
||||
@ -45,7 +45,8 @@ package body world is
|
||||
loop
|
||||
declare
|
||||
folder : constant string := core.lowercase (codex'image (index));
|
||||
file : constant string := ada.strings.fixed.trim (value'image, ada.strings.left);
|
||||
--~file : constant string := ada.strings.fixed.trim (value'image, ada.strings.left);
|
||||
file : constant string := value'image;
|
||||
begin
|
||||
landmarks (index) (value) := core.import_sprite ("./sprite/world/landmark/" & folder & "/" & file & ".png", 1, 1);
|
||||
end;
|
||||
|
Loading…
Reference in New Issue
Block a user