Akroma GUI Pack [Abandoned]

Ask for help about creating mods and scripts for Grimrock 2 or share your tips, scripts, tools and assets with other modders here. Warning: forum contains spoilers!
andyroosta
Posts: 142
Joined: Wed May 30, 2012 11:11 pm

Re: [WIP] Akromas GUI - Rune Panel

Post by andyroosta »

looks good!
Pompidom
Posts: 497
Joined: Sun May 06, 2018 9:42 pm

Re: [WIP] Akromas GUI - Rune Panel

Post by Pompidom »

Heartwarming to see it in action :)
User avatar
akroma222
Posts: 1029
Joined: Thu Oct 04, 2012 10:08 am

Re: [WIP] Akromas GUI - Rune Panel

Post by akroma222 »

Ok, a bit more detail about this RunePanel
** Sorry if this should be posted in the Creative Corner - it's relevant and there are coding questions to follow**

Initially I had thought of redoing the runepanel, but for no real reason or necessity - so the idea was shelved

Unfortunately (I think) by creating custom Attack Panels -and growing quite attached to them and the cooldown bar-
I set in motion one hell of a detour. As I was drawing over the top of all of the vanilla attack panels, all the hard coded
jazz I took for granted wasnt even there anymore - well it was, just hidden underneath the result of my blundering gui
initiation. So, attack results needed re-implementation , combat plumbing rewritten etc etc ....And having to re implement
the gui and functioning for a custom runepanel become a distant but concerning issue (because I had no idea how to)

I was then inspired by .rhavin's custom runepanel, which introduced a new much larger rune selection, however,
still only allowed the player to select from 9 runes at a time (each time a rune is selected - the 9 runes available
for the next selection change). I had planned to use .rhavin's code and definitions as a template to create my
own runepanel (one which would not have shifting selections of runes taken from a larger pool). Im sure also,
.rhavins runes have had some immediate influence in the development of my runes, particularly the Balance rune.
Im unsure if .rhavin borrowed runes or ideas for them from elsewhere... or whether it they are purely original - but
I really admire the choices in designs - consistent style and (to me anyway), quite interesting

Keeping a consistent style (even if it was slightly un-grimrocky) was a main priority ..
So I looked to the trap_rune_dif texture from the log2 asset pack. The original runes
are inscribed along the transmutation circle's contour lines ... Along with a bunch of
other runes not seen anywhere else in the game (afaik)
SpoilerShow
Image
In this image, the other unused but original runes are drawn from the rune trap texture
SpoilerShow
Image
Basically, I didn't like them, their shape, style etc. (Wouldnt it have been easy to just include these
as they were to boost the number of runes to my satisfaction) .... they did, however, represent a
sound and intuitive place to start experimenting w designs

I began brainstorming rune ideas and making slight alterations to some well known classic runes
I kept my brain storm scribbling and have posted it below (as evidence of my own process)
SpoilerShow
Image
Image
Image
Image
Image
Image
Image
Image
Image
Ultima Underworlds runic magic system has probably played a huge part in the shaping of the runepanel... I most certainly consulted my tattered original copies of the player guides & manuals as my first port of call for new rune ideas... I wanted to expand on the numbers of runes and possibly even change them around or alter their meaning or application. But obviously expanding to 24 runes, as UW1 & 2 had is just out of the question (for real time, pressure combat, 4 champs and limited space to work within ie attack panels). But I wanted to expand to more than 9 runes.
SpoilerShow
Image

Eventually I decided upon:
1. A total number of runes / new runes (15 and 6, respsectively)
2. Their positions within the grid and,
3. Each position's corresponding force, law or element.
SpoilerShow
"FIRE", "HARM", "CHANGE", "PROTECT", "AIR",
"SPIRIT", "DEATH", "BALANCE", "LIFE", "BODY",
"EARTH", "MIND", "NEGATE", "TIME", "WATER"
And started the initial draft (chosen runes stacked in 3 rows / 5 columns as theyd appear in the runepanel I had in mind)
SpoilerShow
Image
Minor changes were made to the Air, Water & Time runes, but the Negate rune (3rd row, 3rd across)
was tweaked by far the most (first version seen above, 2nd ....)
SpoilerShow
Image
SpoilerShow
Image
.... and the 3rd and final version is included in the most recent update....
Odly... despite my wanting to change the Fire rune to be slightly different from the original, I couldnt
seem to come up with a design I liked more than the original :P
I felt it looked better left as is ... but Im open to suggestion...

A(n almost) final draft of the 15 runes !!! (with some alternate art / colour variations)
SpoilerShow
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
The current final draft clearly shows Ive drawn (no pun intended) from the aforementioned influences, as starting points
Rune Trap 'other' Grimrock 2 runes:
SpoilerShow
Image
....to be continued ....
Last edited by akroma222 on Tue Aug 20, 2019 1:14 am, edited 3 times in total.
kelly1111
Posts: 349
Joined: Sun Jan 20, 2013 6:28 pm

Re: [WIP] Akromas GUI - Rune Panel

Post by kelly1111 »

Arkoma: what I was wondering. If your mod legacy of lies is out and is complete and your systems (characters, traits, spells, etc..) are complete. Are you going to share them with the community to use in their mods ?
And if so. Will they be easy to implement ?

Just curious, becouse I really, really like what I see. And I think it will make for a whole new gaming experiance for new and upcoming mods if you would share it with us.
User avatar
akroma222
Posts: 1029
Joined: Thu Oct 04, 2012 10:08 am

Re: [WIP] Akromas GUI - Rune Panel

Post by akroma222 »

kelly1111 wrote: Sat Aug 10, 2019 8:15 pm Arkoma: what I was wondering. If your mod legacy of lies is out and is complete and your systems (characters, traits, spells, etc..) are complete. Are you going to share them with the community to use in their mods ?
And if so. Will they be easy to implement ?
Just curious, becouse I really, really like what I see. And I think it will make for a whole new gaming experiance for new and upcoming mods if you would share it with us.
Hey kelly1111 :)
Sure, absolutely I will be sharing my work. Let me describe where the project is at....
It's definitely by no means near being 'out' or 'complete' :|
As a playable mod with actual levels and stuff - I have not even started building anything.
The dungeon I open in the editor is only just for testing new things myself and others have created.
So - As far as a playable mod like Labyrinth of Lies goes, im wont be publishing another any time soon

What I believe is a simple, fun and fast solution to this dilemma is I publish an assets file
Something that people can plug and play would be the goal in that case, however,
as to how flexible the asset file could be if you wanted only certain assets or systems and not others... :? :oops:
Im fairly certain due to type of customizations included, it is likely that the asset file will not be easily or painlessly dissected or repurposed. I could be wrong though, im saying this based on what I know about integrating mods together (which
really isnt a great deal), but this asset file will likely require the player to accept the way I have set everything up

Some good news at least, I have already integrated / assimilated into my files, all the community mods that I had
originally planned to use in a Legacy of Lies mod -and- have been building my systems and assets, for the most part,
harmoniously with other mods. For example, these are all the import calls taken from my init.lua
(pls excuse the excessive commenting & scroll definitions ):
SpoilerShow

Code: Select all

--------------------------------------------------------------------------------- CLONE stuff
import "mod_assets/scripts/cloneObject.lua"
import "mod_assets/scripts/party/cloneSkill.lua"
-------------------------------------------------------------------------------- BASE FILES for Mega pack
import "assets/scripts/objects/base.lua"
import "assets/scripts/objects/generic.lua"
import "assets/scripts/spells/blob.lua"
import "assets/scripts/monsters/skeleton_knight_trooper.lua"
import "assets/scripts/monsters/uggardian.lua"
-------------------------------------------------------------------------------- TILESET SELECT
G1_TILESETS_USED = {
	dungeon=false,
	deep_dungeon=false,
	northern_dungeon=false,
	temple=false,
	dark_temple=false,
	darkelf_temple=true,
	deep_temple=true,
	frozen_temple=true,
	high_temple=true,
	highelf_temple=true,
	southern_temple=true,
	-- Module height (find it in Map Properties) should be set to 4 for the prison tilesets.
	prison=true,
	solaris_prison=true,
	mine=true,				--mine --???
	town=true,
}
-------------------------------------------------------------------------------- GLOBAL OPTIONS --set these options BEFORE importing g1.lua!
-- The dungeon, prison, and temple tilesets have some basic support for Grimrock 2's multiple elevations added in. This results in some slight visual differences between Grimrock 1 and Grimrock 2. Disabling this option will
-- remove SOME of these visual differences, but will eliminate elevation support (the tilesets will only be compatible with single elevations like in Grimrock 1). You probably don't want to disable it. This only affects the dungeon, temple, and prison wallsets (the others always support elevation).
G1_ELEVATION = true
-- Use new, fancier particle systems/lights on some objects. Remove this line to use the original Grimrock 1 particle systems/lights. This is mainly relevant for light sources, water, and tomes.
-- Changing this setting will NOT have a significant effect on performance. Only turn it off if you actively prefer the old effects.
G1_ENHANCED_FX = true
-- In Grimrock 2, items cannot be thrown over or onto altars. In Grimrock 1, altars do not have projectile collision, and any item that lands on an altar's square is placed on the altar. If G1_OLD_ALTARS is not nil or false when standard_objects.lua is
-- imported, then Grimrock 1 altars will have similar behaviour: spells and thrown items can fly right over them, any item that lands on their square or collides with them will be placed on the altar, and burst spells and ice
-- shards can be cast on them without hitting yourself. If you want the Grimrock 2 altar behaviour, just remove this line; Grimrock 1 altars will then behave just like Grimrock 2 altars.
G1_OLD_ALTARS = true
-------------------------------------------------------------------------------- OBJECTS
-- Include Phitt's Cozy Dungeons assets (bookshelves, tables, chairs). If you remove this line, you can delete the Cozy folder.
G1_COZY = true
-- Include germanny and Buzzj's desk. If you remove this line, you can delete the Desk folder.
G1_DESK = true
-- Include Merethif's extra tapestries. If you remove this line, you can delete the Tapestries folder.
G1_MERETHIF_TAPESTRIES = true
-- Include John Wordsworth's wall plaques (walltext objects suitable for catacombs). If you remove this line, you can delete the Plaques folder.
G1_PLAQUES = true
-- Include Skuggasveinn's extra secret doors. If you remove this line, you can delete the Extra_Secret_Doors folder.
G1_EXTRA_SECRET_DOORS = true
-- Include Skuggasveinn's extra statues. If you remove this line, you can delete the Extra_Statues folder.
G1_EXTRA_STATUES = true
-- Incude Skuggasveinn's extra lanterns and the cup-holding Goromorg. If you remove this line, you can delete the Extra_Lanterns folder.
G1_EXTRA_LANTERNS = true
-- Include Skuggasveinn's fountains. If you remove this line, you can delete the Fountains folder.
G1_FOUNTAINS = true
-- Include LordYig's glass windows. If you remove this line, you can delete the Windows folder.
G1_WINDOWS = true
-- Include Isaac's catwalks. If you remove this line, you can delete the Catwalks folder.
G1_CATWALKS = true
-- Include Isaac's ornamental pillar. If you remove this line, you can delete the Ornamental_Pillar folder.
G1_ORNAMENTAL_PILLAR = true
-------------------------------------------------------------------------------- ITEMS
-- Include the standard Grimrock 1 items like the Dismantler, Sword of Nex, Icefall Hammer... If you remove this line, you can delete the items/Standard folder.
G1_STANDARD_ITEMS = true
-- Include Radar6590's Chitin Gloves and Lurker Gloves. If you remove this line, you can delete the items/Extra_Gloves folder.
G1_GLOVES = false
-- Include Mutman's books. If you remove this line, you can delete the items/Books folder.
G1_BOOKS = true
-- Include Phitt's weapons from The Mine of Malan Vael. If you remove this line, you can delete the items/Mine folder.
G1_MINE_WEAPONS = false
-- Include John Wordsworth's Oriental Weapons Pack. If you remove this line, you can delete the items/Oriental folder.
G1_ORIENTAL = true
-- Include some equipment from the One Room Round Robin 2. If you remove this line, you can delete the items/ORRR2 folder.
G1_ORRR2_ITEMS = true
-- Include Merethif's extra shields. If you remove this line, you can delete the items/Shields folder.
G1_SHIELDS = true
-- Include LordYig's keys, locks, and gems. If you remove this line, you can delete the Keys_Gems folder.
G1_KEYS_GEMS = true
-- Gives LordYig's gems a translucent outer layer and opaque inner layer (identical to the Grimrock 1 versions). This generally makes the gems look better in bright lighting but can look bad in low lighting. If you remove this line, the gems will only use the opaque material.
G1_TRANSLUCENT_GEMS = true
-- If you removed ALL of the above lines (or set them to nil or false), you can delete the entire items folder.
---------------------------------------------------------------------------------- MONSTERS
-- Standard Grimrock 1 monsters that already have working Grimrock 2 definitions, but aren't included by default.
G1_OGRE = true
G1_SKELETON_WARRIOR = true -- note: g1.lua changes this monster a bit (makes it drop its weapon and shield, 0 attack cooldown to match Grimrock 1)
G1_SNAIL = true
G1_TENTACLES = true
G1_WARDEN = true
-- Include Tursas' cultist (Goromorg modification). If you remove this line, you can delete the monsters/Cultist folder.
G1_CULTIST = true
-- Include the goromorg monster.
G1_GOROMORG = true
-- Give turn attacks to high-level cultists and all goromorg.
G1_GOROMORG_TURNATTACKS = true
-- Include the redesigned Molt (magma slime) monster.
G1_MOLT = true
-- Include the scavenger monster.
G1_SCAVENGER = true
-- Include the Grimrock 1 spider monster.
G1_SPIDER = true
-- Include the ice lizard monster.
G1_ICE_LIZARD = true
-- Include Neikun's Laguardian (water Uggardian) monster.
G1_LAGUARDIAN = true
-- Include the companion Water Bolt as a player-castable spell. Note: this option does nothing if the Laguardian is not included.
G1_WATER_BOLT = true
-- Include Neikun's Urgardian (earth Uggardian) monster.
G1_URGARDIAN = true
-- Include my Storm Guardian monster. THIS MONSTER IS NOT FINISHED IN ALPHA 1. DO NOT USE IT YET.
G1_STORM_GUARDIAN = false
-- Add turn attacks to Uggardians, Urgardians, and Laguardians. Storm guardians always have turn attacks. This does NOT add turn attacks to ice guardians; they're already distinguished
-- by having a super strong melee attack. If this is true, you must import assets/scripts/monsters/uggardian.lua before g1.lua.
G1_GUARDIAN_TURNATTACKS = true
-- Include ghostly versions of various monsters.
G1_GHOSTS = true
-- Include the Slugomorg monster.
G1_SLUGOMORG = true
------------------------------------------------------------------------------- HEALING CRYSTAL
-- If G1_OLD_CRYSTAL_MATERIAL is not nil or false, the "healing_crystal" material will be replaced with the Grimrock 1 version. This provides more accurate Grimrock 1 crystals (because CrystalComponent only works properly on materials
-- named "healing_crystal") at the cost of messing up all the standard Grimrock 2 objects that use the material: Essence of Water, blue gems, blue and green crystal shards, castle wall buttons,
-- mine pillars with crystals in them, the lindworm, the wizard, and, obviously, the standard healing_crystal_object itself.
-- Therefore, most mods will probably want to remove that line. healing_crystal.lua will then define a crystal that tries to imitate Grimrock 1 visuals, but is not quite as accurate as the version that replaces the "healing_crystal" material.
-- The biggest visual difference is that with the version that replaces the "healing_crystal" material, the shadeTexAngle will not move while the crystal is dormant. In the other version, it will continue moving.
-- Note: If you are using G1_OLD_CRYSTAL_MATERIAL, you must not import assets/materials/generic.lua after importing g1.lua, otherwise the standard material definition will just overwrite the custom one. Import it BEFORE healing_crystal.lua instead.
-- Alternatively, you could just not import the Grimrock 1 healing crystal at all, then you can delete the Healing_Crystal folder to save space. It's completely identical to the standard healing_crystal object except for its visuals.
G1_HEALING_CRYSTAL = false
G1_OLD_CRYSTAL_MATERIAL = false
--import "assets/scripts/materials/generic.lua" 
-- make sure you import this before g1.lua if using G1_OLD_CRYSTAL_MATERIAL!
-----------------------------------------------------
---------------------------------getHookFramework()
hook_framework = true 
function getHookFramework()
	return hook_framework
end
-------------------------------------------------fw_hooks
import "mod_assets/scripts/fw_hooks.lua"
-----------------------------------------------------EXTRA BASE 
import "mod_assets/scripts/objects/base_objects.lua"
import "mod_assets/scripts/items/base.lua"
import "mod_assets/dmcsb_pack/scripts/objects/base.lua"
-----------------------------------------------------GrimTK
import "mod_assets/grimtk/init.lua"
import "mod_assets/grimtk/gtk_notebook/init.lua"
-----------------------------------------------------G1
import "mod_assets/g1/g1.lua"
----------------------------------------------------
----------------------------------------------------Assets MAIN BASE
import "assets/scripts/tiles.lua"
import "assets/scripts/sounds.lua"
import "assets/scripts/ambient_tracks.lua"
-----------------------------------------------------
----------------------------------------------------OBJECTS
import "assets/scripts/objects/dungeon.lua"
import "assets/scripts/objects/tomb.lua"
import "assets/scripts/objects/mine.lua"
import "assets/scripts/objects/forest.lua"
import "assets/scripts/objects/beach.lua"
import "assets/scripts/objects/castle.lua"
import "assets/scripts/objects/swamp.lua"
import "assets/scripts/objects/cemetery.lua"
import "assets/scripts/objects/breakable.lua"
import "assets/scripts/objects/portal.lua"
import "assets/scripts/objects/beacon_tower.lua"
import "assets/scripts/objects/pushable_block.lua"
import "assets/scripts/objects/water.lua"
import "assets/scripts/objects/sky.lua"
import "assets/scripts/objects/magic_bridge.lua"
import "assets/scripts/objects/stone_philosophers.lua"
----------------------------------------------------MONSTERS
import "assets/scripts/monsters/crowern.lua"
import "assets/scripts/monsters/wyvern.lua"
import "assets/scripts/monsters/herder.lua"
import "assets/scripts/monsters/herder_small.lua"
import "assets/scripts/monsters/herder_big.lua"
import "assets/scripts/monsters/spider.lua"
import "assets/scripts/monsters/skeleton_archer.lua"
import "assets/scripts/monsters/cave_crab.lua"
import "assets/scripts/monsters/shrakk_torr.lua"
import "assets/scripts/monsters/green_slime.lua"
import "assets/scripts/monsters/forest_ogre.lua"
import "assets/scripts/monsters/mummy.lua"
import "assets/scripts/monsters/giant_snake.lua"
import "assets/scripts/monsters/rat_swarm.lua"
import "assets/scripts/monsters/medusa.lua"
import "assets/scripts/monsters/sand_warg.lua"
import "assets/scripts/monsters/fjeld_warg.lua"
import "assets/scripts/monsters/dark_acolyte.lua"
import "assets/scripts/monsters/turtle.lua"
import "assets/scripts/monsters/zarchton.lua"
import "assets/scripts/monsters/eyctopus.lua"
import "assets/scripts/monsters/mosquito_swarm.lua"
--import "assets/scripts/monsters/skeleton_knight_trooper.lua"
import "assets/scripts/monsters/skeleton_knight_commander.lua"
import "assets/scripts/monsters/undead.lua"
import "assets/scripts/monsters/twigroot.lua"
import "assets/scripts/monsters/air_elemental.lua"
import "assets/scripts/monsters/fire_elemental.lua"
import "assets/scripts/monsters/magma_golem.lua"
import "assets/scripts/monsters/swamp_toad.lua"
import "assets/scripts/monsters/ice_guardian.lua"
--import "assets/scripts/monsters/uggardian.lua"
import "assets/scripts/monsters/trickster.lua"
import "assets/scripts/monsters/wizard.lua"
import "assets/scripts/monsters/summon_stone.lua"
import "assets/scripts/monsters/viper_root.lua"
import "assets/scripts/monsters/turtle_diving.lua"
import "assets/scripts/monsters/zarchton_diving.lua"
import "assets/scripts/monsters/mimic.lua"
import "assets/scripts/monsters/ratling.lua"
import "assets/scripts/monsters/ratling_boss.lua"
import "assets/scripts/monsters/xeloroid.lua"
import "assets/scripts/monsters/lindworm.lua"
import "assets/scripts/monsters/spore_mushroom.lua"
------------------------------------------------------asset MATERIALS
import "assets/scripts/materials/generic.lua"
import "assets/scripts/materials/dungeon.lua"
import "assets/scripts/materials/tomb.lua"
import "assets/scripts/materials/mine.lua"
import "assets/scripts/materials/forest.lua"
import "assets/scripts/materials/castle.lua"
import "assets/scripts/materials/beach.lua"
import "assets/scripts/materials/items.lua"
import "assets/scripts/materials/monsters.lua"
import "assets/scripts/materials/swamp.lua"
import "assets/scripts/materials/cemetery.lua"
-----------------------------------------------------asset PARTICLES
import "assets/scripts/particles/crystal.lua"
import "assets/scripts/particles/cube.lua"
import "assets/scripts/particles/damage_screen.lua"
import "assets/scripts/particles/death.lua"
import "assets/scripts/particles/death_icy.lua"
import "assets/scripts/particles/earthquake_dust.lua"
import "assets/scripts/particles/frost_arrow.lua"
import "assets/scripts/particles/glitter.lua"
import "assets/scripts/particles/hit_wood.lua"
import "assets/scripts/particles/hit_blood.lua"
import "assets/scripts/particles/hit_blood_black.lua"
import "assets/scripts/particles/hit_dust.lua"
import "assets/scripts/particles/hit_flame.lua"
import "assets/scripts/particles/hit_goo.lua"
import "assets/scripts/particles/hit_slime.lua"
import "assets/scripts/particles/hit_firearm.lua"
import "assets/scripts/particles/hit_ice.lua"
import "assets/scripts/particles/party_crush.lua"
import "assets/scripts/particles/prison_ceiling_lamp.lua"
import "assets/scripts/particles/teleporter.lua"
import "assets/scripts/particles/torch.lua"
import "assets/scripts/particles/dungeon_wall_lantern.lua"
import "assets/scripts/particles/tomb_wall_lantern.lua"
import "assets/scripts/particles/portal_effect.lua"
import "assets/scripts/particles/hit_terracotta_jar.lua"
import "assets/scripts/particles/meteor_hammer.lua"
import "assets/scripts/particles/mine_support_lantern.lua"
import "assets/scripts/particles/mine_ceiling_pit_light.lua"
import "assets/scripts/particles/mine_support_ceiling_lantern.lua"
import "assets/scripts/particles/mine_crystal.lua"
import "assets/scripts/particles/forest_falling_leaves.lua"
import "assets/scripts/particles/forest_pit_fog.lua"
import "assets/scripts/particles/forest_fireflies.lua"
import "assets/scripts/particles/forest_lantern.lua"
import "assets/scripts/particles/castle_window_dust.lua"
import "assets/scripts/particles/castle_pillar_candles.lua"
import "assets/scripts/particles/floor_vent_steam.lua"
import "assets/scripts/particles/damage_fire.lua"
import "assets/scripts/particles/damage_shock.lua"
import "assets/scripts/particles/uggardian_flames.lua"
import "assets/scripts/particles/poisoned_monster.lua"
import "assets/scripts/particles/blinded_monster.lua"
import "assets/scripts/particles/stunned_monster.lua"
import "assets/scripts/particles/power_gem.lua"
import "assets/scripts/particles/power_gem_item.lua"
import "assets/scripts/particles/forest_underwater_bubbles.lua"
import "assets/scripts/particles/forest_underwater_plankton.lua"
import "assets/scripts/particles/witch_lantern.lua"
import "assets/scripts/particles/castle_wall_text.lua"
import "assets/scripts/particles/castle_wall_text_long.lua"
import "assets/scripts/particles/castle_button.lua"
import "assets/scripts/particles/beacon_crystal.lua"
import "assets/scripts/particles/beacon_furnace_text_glow.lua"
import "assets/scripts/particles/essence_water.lua"
import "assets/scripts/particles/essence_fire.lua"
import "assets/scripts/particles/essence_earth.lua"
import "assets/scripts/particles/essence_air.lua"
import "assets/scripts/particles/essence_balance.lua"
import "assets/scripts/particles/swamp_fume.lua"
import "assets/scripts/particles/dungeon_fire_pit.lua"
import "assets/scripts/particles/catacomb_alcove_candles_01.lua"
import "assets/scripts/particles/catacomb_alcove_candles_02.lua"
import "assets/scripts/particles/potion_of_vitality.lua"
import "assets/scripts/particles/potion_of_strength.lua"
import "assets/scripts/particles/potion_of_willpower.lua"
import "assets/scripts/particles/potion_of_dexterity.lua"
import "assets/scripts/particles/dummy_light.lua"
import "assets/scripts/particles/ethereal_blade.lua"
import "assets/scripts/particles/etherweed.lua"
import "assets/scripts/particles/castle_ceiling_light.lua"
-----------------------------------------------------
----------------------------------------------------asset SPELLS
--import "assets/scripts/spells/wasp_swarm.lua"					--missing FlyingSwarmComponent
import "assets/scripts/spells/poison_bolt.lua"					
import "assets/scripts/spells/thorn_wall.lua"
import "assets/scripts/spells/dispel.lua"
import "assets/scripts/spells/runes.lua"
import "assets/scripts/spells/wall_fire.lua"
import "assets/scripts/spells/open_door.lua"
import "assets/scripts/spells/force_field.lua"
import "assets/scripts/spells/dark_bolt.lua"
-----------------------------------------------------------------------------------CUSTOM FILES
-----------------------------------------------------MOD LUA files
import "mod_assets/scripts/animations.lua"
import "mod_assets/scripts/sounds/sounds.lua"
----------------------------------------------------------
import "mod_assets/scripts/party/traits.lua"
for _, def in ipairs(defTraitOrdered) do 
	defineTrait(def) 
end
----------------------------------------------------------	
import "mod_assets/scripts/party/skills.lua"	
for _,def in ipairs(defSkillOrdered) do 
	defineSkill(def) 
end
---------------------------------------------------------
import "mod_assets/scripts/conditions/conditions2.lua"
import "mod_assets/scripts/conditions/conditions.lua"	--/akromaConditionScripts.lua"
for _,def in ipairs(defConditionOrdered) do 
	defineCondition(def) 
end
------------------------------------------------------------
import "mod_assets/scripts/party/races.lua"
for _,def in ipairs(defRaceOrdered) do 
	defineRace(def) 
	defineTrait(def) 
end
-------------------------------------------------------------
import "mod_assets/scripts/party/classes.lua"
for _,def in ipairs(defClassOrdered) do 
	defineCharClass(def) 
	defineTrait(def) 
end

------------------------------------------------------------
----------------------------------------------------SOCKET SYSTEM
import "mod_assets/socketSystem/scripts/socketBaseItems.lua"
import "mod_assets/socketSystem/scripts/socketSystemScripts.lua"
import "mod_assets/socketSystem/scripts/socketSystemStatGems.lua"
------------------------------------------------------MATERIALS
--import "mod_assets/scripts/References/materials_ALL.lua"
--import "mod_assets/scripts/materials/XX_materials_REF.lua"
import "mod_assets/scripts/materials/item_materials.lua"
import "mod_assets/scripts/materials/misc_materials.lua"
import "mod_assets/scripts/materials/monster_materials.lua"
import "mod_assets/scripts/materials/object_materials.lua"
import "mod_assets/scripts/materials/alchemy_materials.lua"
import "mod_assets/scripts/materials/corrupt_materials.lua"
------------------------------------------------------OBJECTS
--import "mod_assets/scripts/References/objects_ALL.lua"
--import "mod_assets/scripts/objects/XX_objects_REF.lua"
import "mod_assets/scripts/objects/alcoves_sockets.lua"
import "mod_assets/scripts/objects/andakObjects.lua"
import "mod_assets/scripts/objects/breakable.lua"
import "mod_assets/scripts/objects/buttons_levers.lua"
import "mod_assets/scripts/objects/camera_objects.lua"
import "mod_assets/scripts/objects/camp_site.lua"
import "mod_assets/scripts/objects/ceilings_floors.lua"
import "mod_assets/scripts/objects/critters_entities.lua"
import "mod_assets/scripts/objects/deco_statues.lua"
import "mod_assets/scripts/objects/doors_walls.lua"
import "mod_assets/scripts/objects/enviro_props.lua"
import "mod_assets/scripts/objects/fountains_water.lua"
import "mod_assets/scripts/objects/healing_crystals.lua"
import "mod_assets/scripts/objects/lava.lua"
import "mod_assets/scripts/objects/lights_lanterns.lua"
import "mod_assets/scripts/objects/locks_mechanisms.lua"
import "mod_assets/scripts/objects/misc_objects.lua"
import "mod_assets/scripts/objects/pillars_pedestals.lua"
import "mod_assets/scripts/objects/secrets_illusions.lua"
import "mod_assets/scripts/objects/sky_background.lua"
import "mod_assets/scripts/objects/surfaces.lua"
import "mod_assets/scripts/objects/traps_hazards.lua"
import "mod_assets/scripts/objects/treasure_chests.lua"
import "mod_assets/scripts/objects/XX_new_test_objects.lua"
------------------------------------------------------PARTICLES
--import "mod_assets/scripts/References/particles_ALL.lua"
--import "mod_assets/scripts/particles/XX_particles_REF.lua"
import "mod_assets/scripts/particles/animated_particles.lua"
import "mod_assets/scripts/particles/enviro_particles.lua"
import "mod_assets/scripts/particles/generic_particles.lua"
import "mod_assets/scripts/particles/generic_particles2.lua"
import "mod_assets/scripts/particles/generic_particles3.lua"
import "mod_assets/scripts/particles/item_particles.lua"	
import "mod_assets/scripts/particles/monster_particles.lua"	
import "mod_assets/scripts/particles/screen_fx_particles.lua"
import "mod_assets/scripts/particles/standard_particles.lua"
import "mod_assets/scripts/particles/alchemy_particles.lua"
import "mod_assets/scripts/particles/zim_particles.lua"
--------------------------------------------------ITEMS
--import "mod_assets/scripts/References/items_ALL.lua"
--import "mod_assets/scripts/items/XX_items_REF.lua"
import "mod_assets/scripts/items/accessories.lua"
import "mod_assets/scripts/items/armors.lua"
import "mod_assets/scripts/items/axes.lua"
import "mod_assets/scripts/items/base.lua"
import "mod_assets/scripts/items/bonecraft.lua"
import "mod_assets/scripts/items/cheats.lua"
import "mod_assets/scripts/items/clothes.lua"
import "mod_assets/scripts/items/containers.lua"
import "mod_assets/scripts/items/crafting.lua"
import "mod_assets/scripts/items/daggers.lua"
import "mod_assets/scripts/items/firearms.lua"
import "mod_assets/scripts/items/fistclaws.lua"
import "mod_assets/scripts/items/food.lua"
import "mod_assets/scripts/items/keys.lua"
import "mod_assets/scripts/items/maces.lua"
import "mod_assets/scripts/items/misc.lua"
import "mod_assets/scripts/items/missile.lua"
import "mod_assets/scripts/items/polearms.lua"
import "mod_assets/scripts/items/runewands.lua"
import "mod_assets/scripts/items/scrolls.lua"
import "mod_assets/scripts/items/shields.lua"
import "mod_assets/scripts/items/staves.lua"
import "mod_assets/scripts/items/swords.lua"
import "mod_assets/scripts/items/throwing.lua"
import "mod_assets/scripts/items/tomes.lua"
import "mod_assets/scripts/items/traps.lua"
import "mod_assets/scripts/items/treasure.lua"

import "mod_assets/scripts/items/components.lua"	
import "mod_assets/scripts/items/ingredients.lua"
import "mod_assets/scripts/items/potions.lua"
import "mod_assets/scripts/items/tools.lua"
import "mod_assets/scripts/items/explosives.lua"
import "mod_assets/scripts/items/ammunition.lua"

--import "mod_assets/scripts/items/XX_andakItems_REF.lua"
import "mod_assets/scripts/items/XX_testing_REF.lua"
import "mod_assets/scripts/items/XX_zimber_REF.lua"	
-----------------------------------------------------CRAFTING SYSTEMS

---------------------------------------import patch system
--import "mod_assets/scripts/patch/init.lua"
--------------------------------------Crafting
--import "mod_assets/utils/utils_init.lua" 											
import "mod_assets/forge/cauldron.lua"
import "mod_assets/forge/camp_fire.lua"												
import "mod_assets/mdNPC/monsters.lua"												
import "mod_assets/jkosRPC/init_champions.lua"
--import "mod_assets/toolbox/toolbox.lua"	


----------------------------------------------ALCHEMY
import "mod_assets/scripts/crafting/alchemy.lua"
for _,v in ipairs(defRecipeOrdered) do 
	defineObject{
		name = "unlearned_recipe_"..v.potion,
		tags = {"item","scroll","alchemy","recipe"},	--"level_"..v.level, "readable",
		baseObject = "scroll_recipe",
		components = {
			{
				class = "Model",
				model = "assets/models/items/scroll_recipe.fbx",
			},
			{
				class = "Item",
				uiName =  "<> Recipe ~ "..string.underscoreToCamelCase(v.potion).." <>\nLevel "..v.level.." - "..string.underscoreToCamelCase(v.itemType).." ~ <>",
				gfxAtlas = "mod_assets/textures/gui/akromaIconAtlasITEMS_3.tga",
				gfxIndex = 54,
				--gfxIndexInHand = 55,
				weight = 0.0,
				gameEffect = "\n...gameEffect...\n",
				description = "\n...description...\n",
				traits = {"item", "scroll", "alchemy", "recipe",},		--"level_"..v.level, "readable",
			},
			{
				class = "UsableItem",
				name = "learnrecipe",
				requirements = v.requirements,
				emptyItem = "learned_recipe_"..v.potion,
				sound = "null",								---playSound("book_page_short_02")
				canBeUsedByDeadChampion = false,
				onUseItem = function(self) 
					return use(self, champion) 
				end,
			},
			{
				class = "ScrollItem",
				scrollText = "\n...scrollText....\n.....scrollTextEnd..",
				textAlignment = "center",
			},
		},
	}		
end
-------------------------------------------FORGECRAFT
import "mod_assets/scripts/crafting/forgecraft.lua"	
for _,v in ipairs(defPlansOrdered) do 
	defineObject{
		name = "unlearned_plan_"..v.forgeditem,
		tags = {"item","scroll","forgecraft","forgeplan"},	--"level_"..v.level, "readable",
		baseObject = "scroll_recipe",
		components = {
			{
				class = "Model",
				model = "assets/models/items/scroll_recipe.fbx",
				material = "spellbook",
			},
			{
				class = "Item",
				uiName =  "<> Forge Plans ~ "..string.underscoreToCamelCase(v.forgeditem).." <>\nLevel "..v.level.." - "..string.underscoreToCamelCase(v.itemType).." ~ <>",
				gfxAtlas = "mod_assets/textures/gui/akromaIconAtlasITEMS_3.tga",
				gfxIndex = 56,
				--gfxIndexInHand = 57,
				weight = 0.0,
				gameEffect = "\n...gameEffect...\n",
				description = "\n...description...\n",
				traits = {"item", "scroll", "forgecraft","forgeplan",},		--"level_"..v.level, "readable",
			},
			{
				class = "UsableItem",
				name = "learnplan",
				requirements = v.requirements,
				emptyItem = "learned_plan_"..v.forgeditem,
				sound = "null",								---playSound("book_page_short_02")
				canBeUsedByDeadChampion = false,
				onUseItem = function(self) 
					return use(self, champion) 
				end,
			},
			{
				class = "ScrollItem",
				scrollText = "\n...scrollText....\n.....scrollTextEnd..",
				textAlignment = "center",
			},
		},
	}		
end
-------------------------------------SPELLS
import "mod_assets/scripts/spells/spellSystems/akromaSpellsFunctions.lua"
--import "mod_assets/spells_pack/init.lua"
----------------------------------------------------------------
import "mod_assets/scripts/spells/spellBooksAndScrolls/scrolls_lvl_1.lua"
import "mod_assets/scripts/spells/spellBooksAndScrolls/journal.lua"
import "mod_assets/scripts/spells/spellBooksAndScrolls/spellbook.lua"
--import "mod_assets/scripts/spells/spellBooksAndScrolls/spellbook.lua"
--import "mod_assets/scripts/spells/spellBooksAndScrolls/spellbookScripts.lua"	
--import "mod_assets/scripts/spells/spellBooksAndScrolls/min_spellbook.lua"
--import "mod_assets/scripts/spells/spellBooksAndScrolls/spellbooks.lua"
------------------------------------------------------------------
for _,def in pairs(defSpellByName) do
	for k,v in pairs(def) do	--print(k, v)
		defineObject{
			name = "learned_scroll_"..def.name,
			baseObject = "base_item",
			components = {
				{
					class = "Model",
					model = "assets/models/items/scroll_spell.fbx",
				},
				{
					class = "Item",
					uiName = "Scroll of "..def.uiName,
					gfxAtlas = "mod_assets/textures/gui/akromaIconAtlasITEMS_3.tga",
					gfxIndex = 53,
					weight = 0.1,
					traits = { "item", "epic", "readable", "spell_scroll", },
					gameEffect = "\n\n"..def.description.."\n",
				},
			},
		}
	end
	defineSpell(def)
	defineTrait(def)
end
---------------------------------------------------------------------
--------------------------------------------------------MOD SPELLS
import "mod_assets/scripts/spells/spellComponents/spells_particles.lua"
import "mod_assets/scripts/spells/spellComponents/spells_particles1.lua"
import "mod_assets/scripts/spells/spellComponents/spells_particles2.lua"
import "mod_assets/scripts/spells/spellComponents/spells_materials.lua"
import "mod_assets/scripts/spells/spellComponents/spells_objects.lua"
--import "mod_assets/scripts/spells/spellComponents/damageObjects.lua"
import "mod_assets/scripts/spells/spellComponents/spells_blobs.lua"
import "mod_assets/scripts/spells/spellComponents/spells_test_objects.lua"
----------------------------------------------------------------
--import "mod_assets/scripts/spells/fire_magic/fire_spells.lua"
--import "mod_assets/scripts/spells/fire_magic/fireburst.lua"
--import "mod_assets/scripts/spells/fire_magic/wall_fire.lua"
--import "mod_assets/scripts/spells/fire_magic/flashflare.lua"
--import "mod_assets/scripts/spells/fire_magic/ignition_sphere.lua"
import "mod_assets/scripts/spells/spellComponents/fire_magic/fireball.lua"
import "mod_assets/scripts/spells/spellComponents/fire_magic/meteor_strike.lua"
import "mod_assets/scripts/spells/spellComponents/fire_magic/blazing_ward.lua"
import "mod_assets/scripts/spells/spellComponents/fire_magic/fiery_blast.lua"
import "mod_assets/scripts/spells/spellComponents/fire_magic/vaporize.lua"
import "mod_assets/scripts/spells/spellComponents/fire_magic/jg_puzzle_spell.lua"
----------------------------------------------------------------
--import "mod_assets/scripts/spells/water_magic/water_spells.lua"
--import "mod_assets/scripts/spells/water_magic/ice_shards.lua"
import "mod_assets/scripts/spells/spellComponents/water_magic/freeze_ward.lua"
import "mod_assets/scripts/spells/spellComponents/water_magic/acidic.lua"
import "mod_assets/scripts/spells/spellComponents/water_magic/frostbolt.lua"
import "mod_assets/scripts/spells/spellComponents/water_magic/freezeburst.lua"
import "mod_assets/scripts/spells/spellComponents/water_magic/extinguish.lua"
import "mod_assets/scripts/spells/spellComponents/water_magic/deep_freeze.lua"
----------------------------------------------------------------
--import "mod_assets/scripts/spells/earth_magic/earth_spells.lua"
import "mod_assets/scripts/spells/spellComponents/earth_magic/stone_howling.lua"
import "mod_assets/scripts/spells/spellComponents/earth_magic/poison_cloud.lua"
import "mod_assets/scripts/spells/spellComponents/earth_magic/poison_bolt.lua"
import "mod_assets/scripts/spells/spellComponents/earth_magic/tangle_ward.lua"
import "mod_assets/scripts/spells/spellComponents/earth_magic/flourish.lua"		
import "mod_assets/scripts/spells/spellComponents/earth_magic/blades.lua"
import "mod_assets/scripts/spells/spellComponents/earth_magic/consuming_vapors.lua"
-------------------------------------------------------------------
--import "mod_assets/scripts/spells/air_magic/air_spells.lua"
--import "mod_assets/scripts/spells/spellComponents/air_magic/shockburst.lua"
import "mod_assets/scripts/spells/spellComponents/air_magic/squallburst.lua"
import "mod_assets/scripts/spells/spellComponents/air_magic/lightning_bolt.lua"
import "mod_assets/scripts/spells/spellComponents/air_magic/levitation_blink.lua"
import "mod_assets/scripts/spells/spellComponents/air_magic/purity_field.lua"
----------------------------------------------------------------------
--import "mod_assets/scripts/spells/staff_wand/staff_wand_spells.lua"
--import "mod_assets/scripts/spells/spellComponents/staff_wand/spirit_lash.lua"
--import "mod_assets/scripts/spells/spellComponents/staff_wand/draining_cloud.lua"
--import "mod_assets/scripts/spells/spellComponents/staff_wand/magic_arrow.lua"	--
--import "mod_assets/scripts/spells/spellComponents/staff_wand/sleep_ward.lua"	--
import "mod_assets/scripts/spells/spellComponents/staff_wand/force_field.lua"
import "mod_assets/scripts/spells/spellComponents/staff_wand/ethereal_spells.lua"
import "mod_assets/scripts/spells/spellComponents/staff_wand/counter_magic.lua"
import "mod_assets/scripts/spells/spellComponents/staff_wand/psionic_assault.lua"
import "mod_assets/scripts/spells/spellComponents/staff_wand/essence_channel.lua"
------------------------------------------------------------------
--import "mod_assets/scripts/spells/shadowlight/shadowlight_spells.lua"
--import "mod_assets/scripts/spells/spellComponents/shadowlight/darkburst.lua"
--import "mod_assets/scripts/spells/spellComponents/shadowlight/illuminate_darkness.lua"
import "mod_assets/scripts/spells/spellComponents/shadowlight/dark_bolt.lua"
import "mod_assets/scripts/spells/spellComponents/shadowlight/whitefire_smite.lua"
import "mod_assets/scripts/spells/spellComponents/shadowlight/shadowlight_ward.lua"
import "mod_assets/scripts/spells/spellComponents/shadowlight/bloodcurse_ritual.lua"
import "mod_assets/scripts/spells/spellComponents/shadowlight/sacredhalo.lua"
------------------------------------------------------------------
--------------------------------------------------------MOD PACKAGES
--------------------------ASIAN STYLE
import "mod_assets/Ctomb/scripts/asian_tileset_init.lua"
--------------------------SX WINTER
import "mod_assets/sx_winter_tileset/scripts/sx_winter_tileset_init.lua"
-------------------------mhLARK
import "mod_assets/mh_pack/mh_define.lua"
-------------------------MAM
import "mod_assets/mam/scripts/mam_init.lua"
-------------------------SX TOWN
import "mod_assets/sx_urban_town/scripts/sx_urban_town_init.lua"
-------------------------GRIM ASSETS
import "mod_assets/grim_assets/grim_assets.lua"			
-------------------------ZIMBER ASSETS	
import "mod_assets/zim_assets/zim_assets/zim_init.lua"
-------------------------DMCSB resource	
import "mod_assets/dmcsb_pack/scripts/dmcsb_pack_init.lua"
-------------------------MinAssets
import "mod_assets/MinAssets/MinAssets_init.lua"
------------------------bongoAssets
import "mod_assets/bongoAssets/bongo_init.lua"
------------------------VANBLAM Assets
import "mod_assets/Vb_assets/util_s1/vb_scripts/scripts_util_s1/init.lua"
import "mod_assets/Vb_assets/under_d/vb_scripts/scripts_under_d/init.lua"
-----------------------TILES
import "mod_assets/scripts/tiles/tiles.lua"
---------------------------------------import custom monsters
--import "mod_assets/scripts/monsters/monstersImport.lua"
--------------------------------------------------------CUSTOM & MOD MONSTERS	CHECKLIST
--import "mod_assets/scripts/monsters/air_elemental.lua"
--import "mod_assets/scripts/monsters/aquardian.lua"
--import "mod_assets/scripts/monsters/bloodraised.lua"
--import "mod_assets/scripts/monsters/bound_spirit.lua"
import "mod_assets/scripts/monsters/cave_crab.lua"
--import "mod_assets/scripts/monsters/crowern.lua"
--import "mod_assets/scripts/monsters/cryomancer.lua"
--import "mod_assets/scripts/monsters/cultist.lua"
import "mod_assets/scripts/monsters/dark_acolyte.lua"
--import "mod_assets/scripts/monsters/demon.lua"
--import "mod_assets/scripts/monsters/earth_elemental.lua"
--import "mod_assets/scripts/monsters/enchanted_stone.lua"
--import "mod_assets/scripts/monsters/eyctopus.lua"
--import "mod_assets/scripts/monsters/fire_elemental.lua"
--import "mod_assets/scripts/monsters/firebird.lua"
--import "mod_assets/scripts/monsters/firetoad.lua"
--import "mod_assets/scripts/monsters/fjeld_warg.lua"
--import "mod_assets/scripts/monsters/forest_ogre.lua"
--import "mod_assets/scripts/monsters/giant_snake.lua"
--import "mod_assets/scripts/monsters/goromorg.lua"
--import "mod_assets/scripts/monsters/hellhound.lua"
--import "mod_assets/scripts/monsters/heretic.lua"
--import "mod_assets/scripts/monsters/herders.lua"
--import "mod_assets/scripts/monsters/herders_blue.lua"
--import "mod_assets/scripts/monsters/herders_green.lua"
--import "mod_assets/scripts/monsters/herders_red.lua"
--import "mod_assets/scripts/monsters/heretic.lua"
--import "mod_assets/scripts/monsters/human_archer.lua"
--import "mod_assets/scripts/monsters/human_knight.lua"
--import "mod_assets/scripts/monsters/ice_guardian.lua"
--import "mod_assets/scripts/monsters/imp.lua"
--import "mod_assets/scripts/monsters/imp_lord.lua"
--import "mod_assets/scripts/monsters/laguardian.lua"
--import "mod_assets/scripts/monsters/lich_archlich.lua"
--import "mod_assets/scripts/monsters/lizards.lua"
--import "mod_assets/scripts/monsters/magma_titan.lua"
--import "mod_assets/scripts/monsters/medusa.lua"
--import "mod_assets/scripts/monsters/mosquito_swarm.lua"
--import "mod_assets/scripts/monsters/mummy.lua"
--import "mod_assets/scripts/monsters/ogre.lua"
--import "mod_assets/scripts/monsters/ratling.lua"
--import "mod_assets/scripts/monsters/ratling_boss.lua"
--import "mod_assets/scripts/monsters/sand_warg.lua"
--import "mod_assets/scripts/monsters/scavengers.lua"
--import "mod_assets/scripts/monsters/scavenger_spitter.lua"
--import "mod_assets/scripts/monsters/scavenger_queen.lua"
--import "mod_assets/scripts/monsters/spore_mushroom.lua"
--------------------------------------------------------------
import "mod_assets/scripts/monsters/skeleton_warriors.lua"
--import "mod_assets/scripts/monsters/skeleton_archers.lua"
--import "mod_assets/scripts/monsters/skeleton_knights.lua"
--import "mod_assets/scripts/monsters/skeleton_ghosts.lua"
--import "mod_assets/scripts/monsters/skeleton_lords.lua"
---------------------------------------------------------
--import "mod_assets/scripts/monsters/slimes.lua"
--import "mod_assets/scripts/monsters/slime_water.lua"
--import "mod_assets/scripts/monsters/slime_molt_redux.lua"
-------------------------------------------------------
import "mod_assets/scripts/monsters/snails.lua"
import "mod_assets/scripts/monsters/spiders.lua"
-----------------------------------------------------
--import "mod_assets/scripts/monsters/tinyCritters.lua"
-----------------------------------------------------------------------------------------------------------
--monsTab = 	{"skeleton_trooper", "skeleton_warrior"}
--weaponsTab = 	{"skullcleave", "ancient_claymore", "backbiter", "baton","bone_blade", "bone_club", "cudgel", "cutlass", "dagger", "g1_dismantler", "g1_gladius", "hand_axe", "long_sword", "machete", "morning_star", "throwing_axe", "torch", "warhammer"}
--shieldTab = 	{"skeleton_knight_shield", "legionary_shield", "heavy_shield", "g1_shield_courage", "g1_shield_falcon", "crystal_shield", "round_shield", "g1_shield_winter", "g1_shield_dragon", "shield_elements", "meteor_shield", "g1_shield_valor"}
------------------------------------------------------------------------------------------------------------------------------
--g1_createWeaponMonster("skeleton_warrior",		"legionary_spear",		"skeleton_knight_shield",			"akr_skel_war_spear1_knight1")
--g1_createWeaponMonster("skeleton_trooper",		"warhammer",			"legionary_shield",					"akr_skel_troop_warhammer1_legionary1")
--g1_createWeaponMonster("skeleton_warrior",		"ancient_claymore",		"meteor_shield",					"akr_skel_war_claymore1_meteor1")
--g1_createWeaponMonster("skeleton_warrior",		"g1_dismantler",		"shield_elements",					"akr_skel_war_dismantler1_elements1")
------------------------------------------------------------------------------------------------------------------------------
import "mod_assets/scripts/monsters/TEST_monsters.lua"
And well yeah, shtuff be working fine. So I guess that is kinda good news really...
Perhaps my doomsaying and foreboding was made in haste?


Anways, It is likely I will require some help to get this messy beast across the finish line :roll: :oops:
Im going to have a skim over the files today so I can come back and give you an accurate idea of complete
or not the various assets / systems are....
Akroma

EDIT: Also, Id be quite happy to share the current copy of my files, should anyone wish.
I'll have to post a big 'enter at own risk' sign as it really is still a construction site
....but for the most part, the things in the test dungeon work
There is a lot of temporary, outdated and duplicated lua files though,
I would do what I could to tidy that side of things up first of course
User avatar
akroma222
Posts: 1029
Joined: Thu Oct 04, 2012 10:08 am

Re: [WIP] Akromas GUI - Rune Panel

Post by akroma222 »

kelly1111 wrote: Sat Aug 10, 2019 8:15 pm Arkoma: what I was wondering. If your mod legacy of lies is out and is complete and your systems (characters, traits, spells, etc..) are complete....
Ok, here are the areas of mod work Ive done or at least begun
Their tasks are split into ESSENTIAL and CAN WAIT
I will give an explanation of what is still to be done to the area

Statistics Menu info display
SpoilerShow
Image
ESSENTIAL
Item types (ammo, bomb, bare hand, caster, runeitem) need scripting support so correct info is displayed (and no crash)
Custom Statistic Functions - Finish get / set functions for custom stats (Charisma, Resist Arcane, Stamina)
CAN WAIT
Move race backgrounds to this menu
Draw hand items (faded) behind their respective info displays
Race Class Abilities
SpoilerShow
ESSENTIAL
A handful of the abilities gained through Racial Traits + Class are not finished yet -OR- were going
to be set up by in-game assets / trigger-scripts. Either way, it'd be nice if these were completed as priority
Container GUI
SpoilerShow
ESSENTIAL
Image
Image
Ive designed some new open container Item gui textures.
I have not begun coding for this, although I do have a good idea on how to
Trace, Trigger Monster Attack Framework
SpoilerShow
ESSENTIAL
Not necessary to reimplement entirely - just need to do some background scripting so that adding
features (eg counter striking) later will be easier and user friendly
CAN WAIT
Champion custom damage attack panel Gui fx (will adapt zimbers version to work my attack panels)
Runepanel
SpoilerShow
ESSENTIAL
Image
FIX so that clicking either Close or Clear buttons does not also click the vanilla weapon set swap buttons (attached to the attack panels) Literally just had a breakthrough on how to do this v easily (and soon)
Icons
SpoilerShow
CAN WAIT
There are still icons to finish for many areas, at a rough guess:
~5 skills, ~ 30 to 50 traits, ~20 conditions

Quick Item Slots
SpoilerShow
ESSENTIAL
AndakRainor's work, just need to integrate into my attack panel spacing
Enchanter Sidebar
SpoilerShow
ESSENTIAL
Already mostly done, just minor changes to how active spell icons are drawn
Condition Gui Display (attack panel portrait)
SpoilerShow
ESSENTIAL
Pretty sure that's easy to script up but ..... Im still unsure or undecided on where to display the condition icons for conds a champion currently has
Locks Traps Menu
SpoilerShow
ESSENTIAL
Image
Already have an outdated but semi functional locks and traps menu - but it needs a major redo.
Monster definitions
SpoilerShow
Add remaining monster definitions to combined monster roster (Im up to the letter 'T' I think)
User avatar
akroma222
Posts: 1029
Joined: Thu Oct 04, 2012 10:08 am

Re: [WIP] Akromas GUI - Rune Panel

Post by akroma222 »

Hey All,
I will now finish up the rune panel explanation - and ....
.....I need ask anyone reading this - their opinion on potential solutions to a problem im having with :
SpoilerShow
mouse clicking through grimtk (my runepanel) windows / widgets >> mouse clicking vanilla game things (weapon swap buttons) that I definitely do not want pressed. Umm, if this is an easy thing and Ive just missed an obvious fix - pls correct me. Ive read into (but am still not totally comfy with) the code from grimtk's script files.... I had suspected for a while that I could do some fancy widgetStack manipulation - but vanilla buttons don't register when grimtk checks and builds the widgetStack (any widgets directly underneath the mouse cursor). I also noticed but blanked on some of the mouse methods / fields such as:
self.visitWidget = function(self, gContext, widget)
self.commit = function(self)
self.mouseFocus
Im not entirely sure how these things interact - if anyone has an explanation of this that a cat could understand, pls send it my way

So, re-worded, my question is:
Can we prevent the mouse clicking through grimtk windows & widgets (and activating vanilla buttons / menu stuff) ??
Early rune panel designs
Firstly, here are some designs I started out with....
Setting up where grimtk buttons would be placed
SpoilerShow
Image
The first attempt and drawing all the pieces of the panel together...
SpoilerShow
Image
And a slightly more cleaned up version.....
SpoilerShow
Image
How it Functions
So finally, I came to this design and have kept it largely the same for some time
SpoilerShow
Image
The rune panel can be opened via either 1) Runewand Item, or 2) Hand Caster (unarmed)
SpoilerShow
Image
Upon opening, the rune panel is 'Activated' but no runes are selected ..... and the Cast button is a lifeless dull grey
(BTW - this rune panel uses LoG1 style of "click each rune" - NOT LoG2s new "click and drag" style)
SpoilerShow
Image
Once you begin clicking on (selecting) runes, these runes are highlighted (see below) in a number of ways so to
easily indicate what the current state the runepanel is in.... (Activated, Selecting, Casting, Mouse Hovering etc)

1) Rune is NOT selected BUT mouse cursor is hovering above the rune button
SpoilerShow
Image
2) If runes ARE selected BUT do not match the REQ runes for any spell that that champion could cast, the Cast button
begins to glow slightly (trying to cast when you have incorrect runes >> "Unknown Spell" attack result)
SpoilerShow
Image
3) Rune IS selected AND mouse is hovering over the top of the rune button
SpoilerShow
similar to (1) but rune symbol is rendered with a dull greyscale
4) Runes ARE selected AND these runes are an exact match with REQ Runes for a spell the champion could cast, the Cast button glows more brightly, there is a different sound fx when clicking the button and the rune is highlighted differently (indicating the matching runes and therefore.. ready to cast). The spell to be cast's ICON is also drawn across and covers the champions portrait (only while the mouse cursor is inside that champions attack panel dimensions)
SpoilerShow
Image
The Rune Panels themselves are a grimtk created, invisible skeleton (all borders and backgrounds are of width 0 or opacity 0).
It plays host to 15 + 3 push button widgets, (runes, clear, cast, close)

Rune Buttons can (currently) be triggered by BOTH the onPress AND onRelease hooks for the rune button widgets
Ive also recently considered allowing BOTH left and right mouse buttons - press and release - to trigger the buttons.
Ive allowed this in the hopes it will make navigating the "click each rune" style panel a little faster, maybe more fluid...
Ive prevented the player from selecting + de-selecting the same rune with a single stationary press & release (obviously :idea: )

Interfacing the vanilla Spell Gestures with new RunesReqToCast tables drawn from a reimagined and expanded set of magical runes was very simple. I decided to define my spells the same way AndakRainor, for example, did with their custom spell package... ie; create a table that contains other tables containing all the function arguments needed for each separate spells' defineSpell call. This method allows the (sort of?) addition of custom fields / hooks which can be accessed later in-game
(It is here I too have added onPreCast & onPostCast hooks, just as AndakRainor has done)
Straight after importing the lua file (containing said table), then use the defineSpell call to define them
Within this custom definition, a spell's custom field; 'runes' is what is checked against a champion's selected runes table to see if they can Cast any spell
A spell's vanilla field 'gesture' is what is used to actually manually cast the spell from script (champ:castSpell(####)) so each spell must have both of these fields.

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

Ok, I will try to wrap this runepanel business up in this post
The diff coloured / styled button designs ive created are shown below
Starting with a simple grey wash, then darker...
SpoilerShow
Image
Image
Image
Currently used
Image
And here Ive grouped the lighter more vibrant + hot colours:
SpoilerShow
Image
Currently used
Image
Image
Image
And lastly the designs that were mostly rainbow / multicolour:
SpoilerShow
Image
Image
Image
Image
Image
Image

As you may have noticed in the demo video, Ive used 2 different rune button styles - which alternate, fading in and fading out.
One is a darker colour and the other a lighter colour. The rune symbols themselves also alternate in exactly the same fashion....
...and are matched to maximize contrast (ie darker button colour is matched together w the white coloured rune symbols)
Heheh I have no idea why Ive done this. Pretty sure there is no practical / functional reason at all :D :roll:

Then this grid frame overlay thingy goes on top
SpoilerShow
Image
There are 3 other buttons included :
1) Cast Button
Attempts to cast the spell with the according rune combination
Clears any selected runes
Will Fizzle if champs selected runes do not match w any learned spell
Does nothing if no runes selected

2) Clear / Reset Button
RunePanel remains open + De-selects any and all runes that are currently Selected.
I figured this might be necessary given the added # of runes
I am considering just adding a diff Clear Rune effect (not a button, probably mouse click activated)

3) Close Button
Closes the runepanel down + clears any selected runes
User avatar
akroma222
Posts: 1029
Joined: Thu Oct 04, 2012 10:08 am

Re: [WIP] Akromas GUI - Rune Panel

Post by akroma222 »

Hi again!

1. I scraped together some more colour scheme ideas.... :roll: :D
SpoilerShow
Image
Image
Image
Image
Image
Image
Image
Image
2. Rune panel issue with clicking through into the vanilla weapon swap buttons has been dealt with 8-)
SpoilerShow
At any one time, each champ will have either weapon set swap button 1 -or- weapon set swap button 2 active /visible
So Ive created two rune panels that load the close and cast buttons onto the wss button that isnt active/ visible
Unfort allowing room for either wss button means I had to remove the clear button... Clear / Reset button was bumped in
favour of a simple weapon swap work around.... I still want to include a reset all the runes feature, but I think I might make it activated by some mouse click / hold trick.... Any other suggestions on squeezing in the reset rune feature?
Image
3. Cooldown bar now friendly and accurate for runeitems & handcasters

4. Here be a video demonstration of:
- latest runepanel changes
- custom weapon set swap system
- cooldown bar working w spellcasting & dualwielding

https://youtu.be/HmBz-NwIaLQ
Last edited by akroma222 on Wed Aug 28, 2019 7:03 am, edited 2 times in total.
User avatar
maneus
Posts: 246
Joined: Mon Jun 17, 2013 10:42 pm
Location: Switzerland

Re: [WIP] Akromas GUI - Rune Panel

Post by maneus »

The Video demonstration is stunning. *thumbs up!

There are so many spells, no idea how the player can memorize them. :D
User avatar
akroma222
Posts: 1029
Joined: Thu Oct 04, 2012 10:08 am

Re: [WIP] Akromas GUI - Rune Panel

Post by akroma222 »

maneus wrote: Tue Aug 27, 2019 7:51 pm The Video demonstration is stunning. *thumbs up!

There are so many spells, no idea how the player can memorize them. :D
Thank you maneus!
The spell count (including vanilla spells) for Labyrinth was up around 120 ....
... and yes, definitely too many rune gestures to remember for the player.

Ive tried to collapse spells into one another in an effort to reduce the overall # of spells,
but also to make each spell more involved, interesting and (importantly) useful throughout the game
Im hoping to end up with total # of spells around ~ 60 - 70

Currently Ive only completed the 1st (of 5) level(s) of spells....
SpoilerShow
"fireburst", "enchanting_fire", "ignition_sphere", "flashflare",
"shock", "enchanting_air", "missile_shield", "feather_foot",
"poison_cloud", "enchanting_earth", "magic_armour", "stone_howl",
"ice_shards", "regeneration", "freeze_ward", "enchanting_water",
"bless", "darkburst","healing_light","illuminate", "shadow_veil",
"sleep_ward", "magic_arrow", "detect_monster", "spirit_lash",
and will be releasing this asset pack with just these 1st level spells
Subsequent levels will slowly taper off the # of spells for each magic Skill
SpoilerShow
lvl1&2 = 4 spells, lvl3&4 = 3 spells, lvl5 = 1-2 spells / per magic skill
Further - all spells are allocated to roughly 2 - 4 out of a possible 6 diff spellbooks
Spellbook (traits) are somewhat meaningful / flavoured groupings of spells

Code: Select all

Mage, Priest, Enchanter, Psionic, Alchemist, Shaman
A spellcaster must be learning (have the trait) from/of at least one spellbook to begin casting.
It is rarely possible to acquire another spellbook trait, rather a champs Class (and some racial traits) will usually determine
which spellbooks, if any, the champ will learn spells from.
SpoilerShow

Code: Select all

spellsBySpellbook = {
mage = {"fireburst","ignition_sphere","flashflare","enchanting_fire","ice_shards","shock","missile_shield","poison_cloud","magic_armour","magic_arrow","detect_monster","illuminate","darkburst"},	
priest = {"flashflare","freeze_ward","enchanting_water","regeneration","shock","feather_foot","missile_shield","enchanting_air","stone_howl","magic_armour","sleep_ward", "spirit_lash","illuminate","bless","healing_light" },
enchanter = {"enchanting_fire","ignition_sphere","enchanting_water","regeneration","feather_foot","missile_shield","enchanting_air","enchanting_earth","magic_armour","detect_monster","bless","illuminate","shadow_veil"},	
psionic = {"ignition_sphere","flashflare","regeneration","shock","feather_foot","stone_howl","magic_arrow","spirit_lash","sleep_ward","detect_monster", "bless", "illuminate","shadow_veil","darkburst","healing_light"},			
alchemist =	{"fireburst","flashflare","enchanting_fire","ignition_sphere","freeze_ward","ice_shards","regeneration","enchanting_water","poison_cloud","enchanting_earth","stone_howl","magic_armour","storm_forge","healing_light", "sleep_ward"},	
shaman = {"freeze_ward","ice_shards","shock","missile_shield","enchanting_air","poison_cloud","enchanting_earth","stone_howl","sleep_ward","magic_arrow","spirit_lash","detect_monster","shadow_veil","darkburst"}									
}
Additionally - the player must find the scroll to learn the spell first too.

So what I mean to say is.... I hear you + am going to make sure there
is no spell not worth remembering the runes for 8-) ;)
Post Reply