Skip to content

Commit

Permalink
Added Augmented Players and Items. (#29)
Browse files Browse the repository at this point in the history
* Augments (WIP)

* Fixed issue with imbuements serialization on items with augments

* Added Augment & Imbuement Smart Protections

Blocking augment of stackables, charged items, non moveables ect.
Checking that item is in the slot its assigned to for the augments to count if the config is set to true (default), only a problem for classic slots.
Preventing items from decaying and/or transforming if they are imbued or augmented.
Imbuement stackables still lack necessary support and protection for unwanted behavior.

* Various patches for overlooked things.

Added resist with rest of defensive modifiers.
Configured stamina to be by seconds.
Removed the check to ensure missing health, mana, soul, and stamina which prevented getting the effect.
Created more complete leech/steal combat.
Enabled crits on condition damage.
Strict typing of int32_t for no inconsistencies in damage calculations.
Fixed piercing damage healing instead of piercing.
Added other enhancements for augment combat code.

* Removed dead code, and fixed problems with "steal/leech" combats.

* Fix broken flat factor option & soul/stamina not working with numbers bigger than their numeric limit.

* Keep from adding pz tiles to list of possible ricochet positions

* Huge update with fixes from other systems included.

* Fix small issue with percents introduced recently

* Add config options, fixed some quirks, numeric conversion issue and others.

* Added additional considerations for classic slots users

* added some prints for debuggin and fixed some things

* Major update to deflect, and some other optimizations and such

* more minor updates. deflect had 2 areas that were fixed

* many optimizations

* latest fixes

* switch to recursive iterator to support loading sub folders

* Expanded parser some, did some optimizations, applied solution for classic slots problem

* Commit to attempt to fix builds on linux, includes classic slots fix

* Added missing lua methods
  • Loading branch information
Codinablack authored Nov 29, 2024
1 parent 3939fa4 commit 749dc2d
Show file tree
Hide file tree
Showing 46 changed files with 4,492 additions and 1,483 deletions.
36 changes: 36 additions & 0 deletions data/augments/druid.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
[DruidicBlessing]
name = "Druidic Blessing"
description = "A vital blessing from the Great Meridan to only those worthy of such favor!"
modifiers = [
# Mana gained from poison (earth) spell damage
{ mod = "manasteal", value = 20, damage = "poison", origin = "spell" },
# Stamina gain from earth (poison) conditions
{ mod = "staminasteal", value = 1, chance = 5, factor = "flat", damage = "earth", origin = "condition" },
# Soul gain from ice spells
{ mod = "soulsteal", chance = 10, damage = "ice", origin = "spell" },
]

[LightsEmbrace]
name = "Light's Embrace"
description = "The great cleansing power of the Light"
modifiers = [
# Undead Killer
{ mod = "piercing", value = 100, damage = "holy", origin = "all", race = "undead" },
{ mod = "critical", value = 50, damage = "holy", origin = "all", race = "undead" },
]

[WisdomOfAges]
name = "Wisdom of Ages"
description = "The knowledge to embrace holy power's abundance of life!"
modifiers = [
# Absorb holy damage
{ mod = "absorb", value = 100, damage = "holy"},
# Convert Damages to Holy
{ mod = "reform", value = 100, chance = 100, damage = "physical", toDamage = "holy"},
{ mod = "reform", value = 30, chance = 25, damage = "death", toDamage = "holy"},
{ mod = "reform", value = 25, chance = 25, damage = "fire", toDamage = "holy"},
{ mod = "reform", value = 20, chance = 25, damage = "energy", toDamage = "holy"},
{ mod = "reform", value = 10, chance = 25, damage = "earth", toDamage = "holy"},
{ mod = "reform", value = 10, chance = 25, damage = "ice", toDamage = "holy"},

]
33 changes: 33 additions & 0 deletions data/augments/knight.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
[LancelotsLance]
name = "Lancelot's Lance"
description = "a powerful ability whose origins trace back to the White Knight Lancelot"
modifiers = [
# Lifesteal
{ mod = "lifesteal", value = 35, chance = 85, damage = "physical", origin = "melee"},
# Melee Crits
{ mod = "critical", value = 35, chance = 98, damage = "physical", origin = "melee"},
]

[GuardiansShield]
name = "Guardian's Shield"
description = "This enhancement comes from years of skilled craftsmanship, and just a touch of magic"
modifiers = [
# Deflection
{ mod = "deflect", value = 100, chance = 10 },
{ mod = "ricochet", value = 100, chance = 30 },
]

[WardensCalling]
name = "Warden's Calling"
description = "Great power bestowed to the protectors of the meak!"
modifiers = [
# Absorb physical damage
{ mod = "absorb", value = 100, damage = "physical"},
# High Defenses
{ mod = "resist", value = 30, chance = "25", damage = "death"},
{ mod = "resist", value = 25, chance = "25", damage = "fire"},
{ mod = "reflect", value = 20, chance = "10", damage = "energy"},
{ mod = "deflect", value = 10, chance = "10", damage = "earth"},
{ mod = "ricochet", value = 10, chance = "10", damage = "ice"},

]
47 changes: 47 additions & 0 deletions data/augments/paladin.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
[VitalShot]
name = "Vital Shot"
description = "An experienced marksman's ability to hit vital locations on a target"
modifiers = [
# Piercing Shot
{ mod = "piercing", value = 20, factor = "flat", origin = "ranged"}
]

[HeavyShot]
name = "Heavy Shot"
description = "The secret to making it hurt... bigger munitions!"
modifiers = [
# Heavy Shot
{ mod = "critical", value = 50, factor = "flat", chance = 50, origin = "ranged"}
]

[LightningShot]
name = "Lightning Shot"
description = "This special ability allows your shots such speed your ammo sometimes summons lightning itself"
modifiers = [
# Electric Shot
{ damage = "physical", mod = "conversion", value = 20, chance = 30, toDamage = "energy", origin = "ranged"}
]

[RighteousRejuvination]
name = "Righteous Rejuvination"
description = "The devout warriors rite achieved through pain and suffering"
modifiers = [
# Soul restore from all damage
{ mod = "revive", value = 1, chance = 80}
]

[DragonHunter]
name = "Dragon Hunter"
description = "The secret of slaying dragons passed down from the ancient hunters"
modifiers = [
# All Fire Resistance
{ damage = "fire", mod = "resist", value = 45, chance = 60},
# Dragon Piercing shots
{ monster = "Dragon", mod = "piercing", value = 100, chance = 50, origin = "ranged"},
{ monster = "DragonLord", mod = "piercing", value = 75, chance = 30, origin = "ranged"},
# Dragon shots extra damage
{ monster = "Dragon", mod = "critical", value = 65, factor = "flat", chance = 60, origin = "ranged"},
# Ricochet some damage from Dragon Fire attacks
{ monster = "Dragon", damage = "fire", mod = "ricochet", value = 95, chance = 25},
{ monster = "DragonLord", damage = "fire", mod = "ricochet", value = 35, chance = 10},
]
40 changes: 40 additions & 0 deletions data/augments/sorceror.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
[MerlinsRage]
name = "Merlins Rage"
description = "A portion of The Great Mage Merlin's power! It takes great power just to wield this power!"
modifiers = [
# Piercing curse damage
{ mod = "piercing", value = 100, damage = "death", origin="condition"},
# Spell Crits
{ mod = "critical", value = 30, chance = 25, origin = "spell"},
# Spell Death Conversion
{ mod = "conversion", value = 10, toDamage = "death", origin = "spell" },
]

[NecromancersDelight]
name = "Necromancer's Delight"
description = "The darkest souls find comfort in deathly pain"
modifiers = [
# Spell Death Conversion
{ mod = "absorb", value = 15, damage = "death"}
]

[MorganasGift]
name = "Morgana's Gift"
description = "A small taste of Morgana's frightening power!"
modifiers = [
# Spell Vamp
{ mod = "lifesteal", value = 15, origin = "spell"}
]

[GiantsDemise]
name = "Giant's Demise"
decription = "The dark knowledge to a bring down all those who are truly giant"
modifiers = [
# Boss Piercing
{ mod = "piercing", target = "boss", value = 20, origin = "spell"},
# Boss Crits
{ mod = "critical", target = "boss", value = 30, chance = 25},
# Behemoth Piercing
{ mod = "piercing", monster = "Behemoth", value = 60, origin = "spell"},
{ mod = "piercing", monster = "Behemoth", value = 60, origin = "condition"},
]
Loading

0 comments on commit 749dc2d

Please sign in to comment.