mod for game version: Patch 1.5.75 (28 June 2021) [1.5.78.11833_(64bit)_(50884)] masks 4+4 //5+4 notches 4+8 //3+8 fix missing 1% completion due to lowered base health 4 //5 while equipping joni, you can no longer lose more than 1 health per hit blue health is now used when only 1 white health is left. while equipping joni, bluehealth from charms becomes jonibluehealth (part1) Weaversong spiders give 8 souls when Grubsong is equipped 8 //3 Weaversong spiders give 13 souls when Grubsong and Grubberfly's Elegy is equipped 13 //3 glowing womb spawn soul cost reduced 4 //8 glowing womb always does 9dmg, even if crest charm is equipped 9,9 //9,4 glowing womb extra dmg with flashing fury when 1hp left always 14 nail dmg: 8,12,16,20,24 //5,9,13,17,21 nail art charge time reduced (both default and charm): 0.75,0.15 //1.35, 0.75 grub charm soul on hit boosted: 16,26 //15,25 stalwart charm invulnerability time boosted: 1.75,2.2//1.3,1.75 charm costs: all reduced to 1, except void charm stays 0 cost hunter's journal: reduced kills needed by 20% if the required amount is 20 or more Only Sprintmaster increases dash length, and it affects all dashes Shadow dash cooldown timer is always double the dash cooldown timer, Dashmaster also reduces shadow dash cooldown timer drain soul (including the two soul charms): 11,5,10 11,5,10 //11,3,8 6,2,6 Carefree shield, fixed 25% dodge rate Grubberfly's Elegy always activates when using joni, ranged melee attack always on when using joni Baldur Shell takes damage only when damage absorbed is > 1 Joni now gives a fixed health bonus of 2 while equipping joni, bluehealth from charms becomes jonibluehealth (part2) boosted soul gain using dreamnail with or without charm: 66,99 //33,66 Extra damage spore(Spore Shroom), dung(Defender's Crest), dung2(Defender's Crest + Spore Shroom): 2,3,4 //1,1,2 Godmaster: nail binding = -3 damage Godmaster: fix joni shell binding = -loot masks Godmaster: charm binding overcharmed if > 4 slots used dnSpy-net-win64 (https://github.com/dnSpy/dnSpy/releases) .\Hollow Knight_Data\Managed\Assembly-CSharp.dll Assembly-CSharp Assembly-CSharp.dll {} - ###Initial Setup of Health and Sockets when New Game is chosen, also a charm's cost is set to 1 PlayerData SetupNewPlayerData *** this.health = 5; this.maxHealth = 5; this.maxHealthBase = 5; into this.health = 4; this.maxHealth = 4; this.maxHealthBase = 4; *** this.maxHealthCap = 9; into this.maxHealthCap = 8; *** this.nailDamage = 5; into this.nailDamage = 8; *** this.charmSlots = 3; into this.charmSlots = 4; *** this.charmCost_6 = 2; into (the only charm that can be found before reaching a bench) this.charmCost_6 = 1; *** ###Gods Glory Game Mode initial setup PlayerData AddGGPlayerDataOverrides *** this.nailDamage = 21; into this.nailDamage = 24; *** this.charmSlots = 11; into this.charmSlots = 12; *** ###Fix 1% completion, lost due to 4 starting health instead of 5 PlayerData CountGameCompletion *** this.completionPercentage += (float)(this.maxHealthBase - 5); into this.completionPercentage += (float)(this.maxHealthBase - 4); *** ###while equipping joni, you can no longer lose more than 1 health per hit PlayerData TakeHealth *** if (amount > 0 && this.health == this.maxHealth && this.health != this.CurrentMaxHealth) { this.health = this.CurrentMaxHealth; } into if (amount > 0 && this.equippedCharm_27) { amount = 1; } if (amount > 0 && this.health == this.maxHealth && this.health != this.CurrentMaxHealth) { this.health = this.CurrentMaxHealth; } *** ###Blue health is now used when only 1 white health is left PlayerData TakeHealth *** if (this.healthBlue > 0) { int num = amount - this.healthBlue; this.damagedBlue = true; this.healthBlue -= amount; if (this.healthBlue < 0) { this.healthBlue = 0; } if (num > 0) { this.TakeHealth(num); return; } } into if (this.healthBlue > 0 && this.health <= amount) { int num = amount - this.healthBlue; if (this.health > 1) { num = this.health - 1; amount = amount - num; if (this.healthBlue < amount) { num = num + amount - this.healthBlue; } } this.damagedBlue = true; this.healthBlue -= amount; if (this.healthBlue < 0) { this.healthBlue = 0; } if (num > 0) { this.TakeHealth(num); return; } } *** ###while equipping joni, bluehealth from charms becomes jonibluehealth PlayerData UpdateBlueHealth public void UpdateBlueHealth() { this.healthBlue = 0; if (this.equippedCharm_8) { this.healthBlue += 2; } if (this.equippedCharm_9) { this.healthBlue += 4; } } into public void UpdateBlueHealth() { this.healthBlue = 0; if (this.equippedCharm_8 && !this.equippedCharm_27) { this.healthBlue += 2; } if (this.equippedCharm_9 && !this.equippedCharm_27) { this.healthBlue += 4; } } *** ###Weaversong spiders give 8 souls when Grubsong is equipped 8 //3 ###Weaversong spiders give 13 souls when Grubsong and Grubberfly's Elegy is equipped 13 //3 PlayerData AddMPCharge *** bool result = false; into bool result = false; if (this.equippedCharm_3 && this.equippedCharm_39 && amount == 3) { amount += 5; if (this.equippedCharm_35) { amount += 5; } } *** ###Glowing womb spawn soul cost reduced 4 //8 PlayerData TakeMP *** if (amount <= this.MPCharge) { this.MPCharge -= amount; if (this.MPCharge < 0) { this.MPCharge = 0; return; } } else { this.MPCharge = 0; } into if (amount == 8) { amount = 4; } if (amount <= this.MPCharge) { this.MPCharge -= amount; if (this.MPCharge < 0) { this.MPCharge = 0; return; } } else { this.MPCharge = 0; } *** ###Glowing womb always does 9dmg, even if crest charm is equipped. Also compiler fix (modify method) KnightHatchling FixedUpdate *** if (this.damageEnemies) { this.damageEnemies.damageDealt = this.details.damage; } into if (this.damageEnemies) { this.damageEnemies.damageDealt = 9; } *** if (this.details.groundPoint) { RaycastHit2D raycastHit2D = Physics2D.Raycast(base.transform.position, Vector2.down, 2f, 256); if (raycastHit2D.collider != null) { Vector2 point = raycastHit2D.point; Vector2 v = this.details.groundPoint.position - point; v.x = 0f; base.transform.position -= v; } } into if (this.details.groundPoint) { RaycastHit2D raycastHit2D = Physics2D.Raycast(base.transform.position, Vector2.down, 2f, 256); if (raycastHit2D.collider != null) { Vector3 point = raycastHit2D.point; Vector3 v = this.details.groundPoint.position - point; v.x = 0f; base.transform.position -= v; } } *** Random -> UnityEngine.Random *** ###Glowing womb extra dmg with flashing fury when 1hp left always 14. Also compiler fix (modify method) KnightHatchling OnEnable *** if (playerData.equippedCharm_6 && playerData.health == 1 && (!playerData.equippedCharm_27 || playerData.healthBlue <= 0)) { if (this.spriteFlash) { this.spriteFlash.FlashingFury(); } this.details.damage = this.details.damage + 5; } into if (playerData.equippedCharm_6 && playerData.health == 1 && (!playerData.equippedCharm_27 || playerData.healthBlue <= 0)) { if (this.spriteFlash) { this.spriteFlash.FlashingFury(); } this.details.damage = 14; } *** Random -> UnityEngine.Random *** ###Charm Cost and Nail Damage: inject some game rules change, when near bench RestBench *** private HeroController heroCtrl; into private HeroController heroCtrl; private PlayerData playerData; *** private void Start() { this.heroCtrl = HeroController.instance; } into private void Start() { this.heroCtrl = HeroController.instance; this.playerData = PlayerData.instance; } *** private void OnTriggerEnter2D(Collider2D otherObject) { if (otherObject.gameObject.layer == 9) { this.heroCtrl.NearBench(true); } } into private void OnTriggerEnter2D(Collider2D otherObject) { if (otherObject.gameObject.layer == 9) { this.heroCtrl.NearBench(true); if (this.playerData.charmCost_6 == 2) { this.playerData.maxHealth--; this.playerData.maxHealthBase--; this.playerData.maxHealthCap--; this.playerData.charmSlots++; this.playerData.charmCost_6 = 1; } if (this.playerData.nailDamage == 5) { this.playerData.nailDamage = 8; } else if (this.playerData.nailDamage == 9) { this.playerData.nailDamage = 12; } else if (this.playerData.nailDamage == 13) { this.playerData.nailDamage = 16; } else if (this.playerData.nailDamage == 17) { this.playerData.nailDamage = 20; } else if (this.playerData.nailDamage == 21) { this.playerData.nailDamage = 24; } this.heroCtrl.NAIL_CHARGE_TIME_DEFAULT = 0.75f; this.heroCtrl.NAIL_CHARGE_TIME_CHARM = 0.15f; this.heroCtrl.GRUB_SOUL_MP = 16; this.heroCtrl.GRUB_SOUL_MP_COMBO = 26; this.heroCtrl.INVUL_TIME = 1.45f; this.heroCtrl.INVUL_TIME_STAL = 2.45f; this.playerData.charmCost_1 = 1; //1 Gathering Swarm https://hollowknight.fandom.com/wiki/Gathering_Swarm Collects dropped Geo this.playerData.charmCost_2 = 1; //1 Wayward Compass https://hollowknight.fandom.com/wiki/Wayward_Compass Shows Knight's location on map this.playerData.charmCost_3 = 1; //1 Grubsong https://hollowknight.fandom.com/wiki/Grubsong Gain 15 SOUL when taking damage this.playerData.charmCost_4 = 1; //2 Stalwart Shell https://hollowknight.fandom.com/wiki/Stalwart_Shell Increases invincibility duration after being hit by ~35%, Reduces hit recoil (no input time) after being hit by 60% this.playerData.charmCost_5 = 1; //2 Baldur Shell https://hollowknight.fandom.com/wiki/Baldur_Shell Block up to 4 hits while using Focus. this.playerData.charmCost_6 = 1; //2 Fury of the Fallen https://hollowknight.fandom.com/wiki/Fury_of_the_Fallen Increases Nail damage by 75% when at 1 Mask, This effect is also applied to Nail Arts this.playerData.charmCost_7 = 1; //3 Quick Focus https://hollowknight.fandom.com/wiki/Quick_Focus Focus ~33% faster this.playerData.charmCost_8 = 1; //2 Lifeblood Heart https://hollowknight.fandom.com/wiki/Lifeblood_Heart Adds 2 Lifeblood Masks when resting. this.playerData.charmCost_9 = 1; //3 Lifeblood Core https://hollowknight.fandom.com/wiki/Lifeblood_Core Adds 4 Lifeblood Masks when resting. this.playerData.charmCost_10 = 1; //1 Defender's Crest https://hollowknight.fandom.com/wiki/Defender%27s_Crest Spawns toxic clouds that deal 2-4 damage and last 1.1 seconds. A new one spawns at the Knight's location every 0.75 seconds, Unlocks new interactions with certain NPCs this.playerData.charmCost_11 = 1; //3 Flukenest https://hollowknight.fandom.com/wiki/Flukenest Replaces Vengeful Spirit with 9 flukes, and Shade Soul with 16 flukes, Each fluke does 4 damage, resulting in a total damage of 36 with Vengeful Spirit and 64 with Shade Soul this.playerData.charmCost_12 = 1; //1 Thorns of Agony https://hollowknight.fandom.com/wiki/Thorns_of_Agony Damages nearby enemies for the base Nail damage when hit this.playerData.charmCost_13 = 1; //3 Mark of Pride https://hollowknight.fandom.com/wiki/Mark_of_Pride Increases Nail range by 25% this.playerData.charmCost_14 = 1; //1 Steady Body https://hollowknight.fandom.com/wiki/Steady_Body Removes all knockback/recoil from hitting enemies this.playerData.charmCost_15 = 1; //2 Heavy Blow https://hollowknight.fandom.com/wiki/Heavy_Blow Increases Nail attack knockback by 75%, Increases Great Slash knockback by 33%, Reduces number of hits needed to stagger a boss by 1 this.playerData.charmCost_16 = 1; //2 Sharp Shadow https://hollowknight.fandom.com/wiki/Sharp_Shadow Damages enemies for 1 x Nail damage when dashing through them, When using Shade Cloak, increases shadow dash length by 40% (does not affect the regular Mothwing Cloak dashes) this.playerData.charmCost_17 = 1; //1 Spore Shroom https://hollowknight.fandom.com/wiki/Spore_Shroom Focus releases a cloud of spores dealing 25-27 damage. The cloud lasts 4.1 seconds (There is a 4.25 second cooldown before being able to use Spore Shroom again), Able to understand the dialogue of Mister Mushroom, Able to read certain Lore Tablets found in Fungal Wastes and one in Kingdom's Edge this.playerData.charmCost_18 = 1; //2 Longnail https://hollowknight.fandom.com/wiki/Longnail Increases nail range by 15% this.playerData.charmCost_19 = 1; //3 Shaman Stone https://hollowknight.fandom.com/wiki/Shaman_Stone Increases Vengeful Spirit/Shade Soul damage by 33%, Increases Desolate Dive damage by 51% and Descending Dark damage by 47%, Increases Howling Wraiths/Abyss Shriek damage by 50%, Increases the size of Vengeful Spirit/Shade Soul this.playerData.charmCost_20 = 1; //2 Soul Catcher https://hollowknight.fandom.com/wiki/Soul_Catcher Gain +3 additional SOUL with each hit for main Soul Vessel (base: 11), Gain +2 for reserve Soul Vessels (base: 6) this.playerData.charmCost_21 = 1; //4 Soul Eater https://hollowknight.fandom.com/wiki/Soul_Eater Gain +8 additional SOUL with each hit for main Soul Vessel (base: 11), Gain +6 for reserve Soul Vessels (base: 6) this.playerData.charmCost_22 = 1; //2 Glowing Womb https://hollowknight.fandom.com/wiki/Glowing_Womb Spawns Hatchlings for 8 SOUL each, that deal 9 damage to enemies on contact, a Hatchling spawns every 4 seconds for a total of 4 Hatchlings at a time this.playerData.charmCost_23 = 1; //2 Fragile Heart https://hollowknight.fandom.com/wiki/Fragile_Heart Adds two Masks of health, Breaks upon death, Can be given to Divine to turn it Unbreakable this.playerData.charmCost_24 = 1; //2 Fragile Greed https://hollowknight.fandom.com/wiki/Fragile_Greed Enemies drop 20-100% more Geo, Breaks upon death, Can be given to Divine to make it Unbreakable this.playerData.charmCost_25 = 1; //3 Fragile Strength https://hollowknight.fandom.com/wiki/Fragile_Strength Increases Nail damage by 50%, Breaks upon death, Can be given to Divine to turn it Unbreakable this.playerData.charmCost_26 = 1; //1 Nailmaster's Glory https://hollowknight.fandom.com/wiki/Nailmaster%27s_Glory Reduces the charge time of Nail Arts by ~44% this.playerData.charmCost_27 = 1; //4 Joni's Blessing https://hollowknight.fandom.com/wiki/Joni%27s_Blessing Increase Masks by 40% (rounded up), all Masks become Lifeblood, Causes Lifeseeds to flock to the Knight instead of running away this.playerData.charmCost_28 = 1; //2 Shape of Unn https://hollowknight.fandom.com/wiki/Shape_of_Unn Allows moving while focusing, and reduces hitbox height this.playerData.charmCost_29 = 1; //4 Hiveblood https://hollowknight.fandom.com/wiki/Hiveblood Passively heals the last unit of health lost after 10 seconds without taking further damage, Makes the enemies inside the Hive passive this.playerData.charmCost_30 = 1; //1 Dream Wielder https://hollowknight.fandom.com/wiki/Dream_Wielder Gain +33 additional SOUL when hitting enemies with the Dream Nail (33 to 66), Reduces the time needed to attack with the Dream Nail by 62.5%, Increases the likelihood of receiving Essence when killing enemies by 50% this.playerData.charmCost_31 = 1; //2 Dashmaster https://hollowknight.fandom.com/wiki/Dashmaster Reduces the Mothwing Cloak cooldown by 33%, Allows dashing downwards by holding DOWN this.playerData.charmCost_32 = 1; //3 Quick Slash https://hollowknight.fandom.com/wiki/Quick_Slash Decreases Nail attack duration (How long the hitbox is active) by 20%, Decreases Nail attack cooldown (Total time between attacks) by ~39% this.playerData.charmCost_33 = 1; //2 Spell Twister https://hollowknight.fandom.com/wiki/Spell_Twister Reduces SOUL cost of Spells to 24 from 33 this.playerData.charmCost_34 = 1; //4 Deep Focus https://hollowknight.fandom.com/wiki/Deep_Focus Focus heals 2 Masks of Health while decreasing Focus speed by 65% this.playerData.charmCost_35 = 1; //3 Grubberfly's Elegy https://hollowknight.fandom.com/wiki/Grubberfly%27s_Elegy When at full Masks, Nail attacks shoot a projectile dealing 50% Nail damage per hit. this.playerData.charmCost_36 = 1; //5 Kingsoul https://hollowknight.fandom.com/wiki/Kingsoul Slowly generates 4 SOUL every 2 seconds, Opens a secret area within the Abyss this.playerData.charmCost_37 = 1; //1 Sprintmaster https://hollowknight.fandom.com/wiki/Sprintmaster Increases run speed by ~20% this.playerData.charmCost_38 = 1; //3 Dreamshield https://hollowknight.fandom.com/wiki/Dreamshield Conjures a shield that slowly rotates around the Knight's position, blocks certain projectiles, and deals 1x Nail damage when colliding with an enemy this.playerData.charmCost_39 = 1; //2 Weaversong https://hollowknight.fandom.com/wiki/Weaversong Summons 3 small Weaverlings that attack enemies for 3 damage per hit. this.playerData.charmCost_40 = 1; //2 Grimmchild https://hollowknight.fandom.com/wiki/Grimmchild Marks uncollected flames on the map, Allows access to the Grimmkin, Summons a flying companion that does not deal damage (upgrades to the the Grimmchild cause it to deal 5,8,11 damage) if (this.playerData.royalCharmState == 4) { this.playerData.charmCost_36 = 0; //0 Void Heart https://hollowknight.fandom.com/wiki/Void_Heart Unlocks 4 endings, Prevents the non-Void Heart ending for the save file, Renders the Siblings, Void Tendrils and Shade passive, Allows access to the Godmaster Pantheon of Hallownest } if (this.playerData.grimmChildLevel == 5) { this.playerData.charmCost_40 = 1; //3 Carefree Melody https://hollowknight.fandom.com/wiki/Carefree_Melody Has a chance to block incoming damage } if (this.playerData.killsBuzzer > 45-9) { this.playerData.killsBuzzer = 45-9; } if (this.playerData.killsZombieRunner > 35-7) { this.playerData.killsZombieRunner = 35-7; } if (this.playerData.killsZombieHornhead > 35-7) { this.playerData.killsZombieHornhead = 35-7; } if (this.playerData.killsZombieLeaper > 35-7) { this.playerData.killsZombieLeaper = 35-7; } if (this.playerData.killsZombieBarger > 35-7) { this.playerData.killsZombieBarger = 35-7; } if (this.playerData.killsBabyCentipede > 35-7) { this.playerData.killsBabyCentipede = 35-7; } if (this.playerData.killsClimber > 30-6) { this.playerData.killsClimber = 30-6; } if (this.playerData.killsHatchling > 30-6) { this.playerData.killsHatchling = 30-6; } if (this.playerData.killsMossWalker > 30-6) { this.playerData.killsMossWalker = 30-6; } if (this.playerData.killsFungoonBaby > 30-6) { this.playerData.killsFungoonBaby = 30-6; } if (this.playerData.killsFlyingSentrySword > 30-6) { this.playerData.killsFlyingSentrySword = 30-6; } if (this.playerData.killsBeeHatchling > 30-6) { this.playerData.killsBeeHatchling = 30-6; } if (this.playerData.killsBouncer > 25-5) { this.playerData.killsBouncer = 25-5; } if (this.playerData.killsHopper > 25-5) { this.playerData.killsHopper = 25-5; } if (this.playerData.killsMossmanRunner > 25-5) { this.playerData.killsMossmanRunner = 25-5; } if (this.playerData.killsMossmanShaker > 25-5) { this.playerData.killsMossmanShaker = 25-5; } if (this.playerData.killsMosquito > 25-5) { this.playerData.killsMosquito = 25-5; } if (this.playerData.killsMossFlyer > 25-5) { this.playerData.killsMossFlyer = 25-5; } if (this.playerData.killsMantis > 25-5) { this.playerData.killsMantis = 25-5; } if (this.playerData.killsMantisFlyerChild > 25-5) { this.playerData.killsMantisFlyerChild = 25-5; } if (this.playerData.killsRoyalDandy > 25-5) { this.playerData.killsRoyalDandy = 25-5; } if (this.playerData.killsRoyalCoward > 25-5) { this.playerData.killsRoyalCoward = 25-5; } if (this.playerData.killsRoyalPlumper > 25-5) { this.playerData.killsRoyalPlumper = 25-5; } if (this.playerData.killsFlyingSentryJavelin > 25-5) { this.playerData.killsFlyingSentryJavelin = 25-5; } if (this.playerData.killsSentry > 25-5) { this.playerData.killsSentry = 25-5; } if (this.playerData.killsMageBlob > 25-5) { this.playerData.killsMageBlob = 25-5; } if (this.playerData.killsMiniSpider > 25-5) { this.playerData.killsMiniSpider = 25-5; } if (this.playerData.killsSuperSpitter > 25-5) { this.playerData.killsSuperSpitter = 25-5; } if (this.playerData.killsSibling > 25-5) { this.playerData.killsSibling = 25-5; } if (this.playerData.killsColFlyingSentry > 25-5) { this.playerData.killsColFlyingSentry = 25-5; } if (this.playerData.killsColMiner > 25-5) { this.playerData.killsColMiner = 25-5; } if (this.playerData.killsColShield > 25-5) { this.playerData.killsColShield = 25-5; } if (this.playerData.killsSpitter > 20-4) { this.playerData.killsSpitter = 20-4; } if (this.playerData.killsRoller > 20-4) { this.playerData.killsRoller = 20-4; } if (this.playerData.killsBlobFlyer > 20-4) { this.playerData.killsBlobFlyer = 20-4; } if (this.playerData.killsJellyCrawler > 20-4) { this.playerData.killsJellyCrawler = 20-4; } if (this.playerData.killsMushroomTurret > 20-4) { this.playerData.killsMushroomTurret = 20-4; } if (this.playerData.killsMushroomRoller > 20-4) { this.playerData.killsMushroomRoller = 20-4; } if (this.playerData.killsMushroomBaby > 20-4) { this.playerData.killsMushroomBaby = 20-4; } if (this.playerData.killsFungusFlyer > 20-4) { this.playerData.killsFungusFlyer = 20-4; } if (this.playerData.killsMage > 20-4) { this.playerData.killsMage = 20-4; } if (this.playerData.killsSentryFat > 20-4) { this.playerData.killsSentryFat = 20-4; } if (this.playerData.killsFlipHopper > 20-4) { this.playerData.killsFlipHopper = 20-4; } if (this.playerData.killsFlukeman > 20-4) { this.playerData.killsFlukeman = 20-4; } if (this.playerData.killsInflater > 20-4) { this.playerData.killsInflater = 20-4; } if (this.playerData.killsCrystalFlyer > 20-4) { this.playerData.killsCrystalFlyer = 20-4; } if (this.playerData.killsZombieMiner > 20-4) { this.playerData.killsZombieMiner = 20-4; } if (this.playerData.killsShootSpider > 20-4) { this.playerData.killsShootSpider = 20-4; } if (this.playerData.killsSpiderFlyer > 20-4) { this.playerData.killsSpiderFlyer = 20-4; } if (this.playerData.killsBlowFly > 20-4) { this.playerData.killsBlowFly = 20-4; } if (this.playerData.killsDreamGuard > 20-4) { this.playerData.killsDreamGuard = 20-4; } if (this.playerData.killsAbyssCrawler > 20-4) { this.playerData.killsAbyssCrawler = 20-4; } if (this.playerData.killsOrangeScuttler > 20-4) { this.playerData.killsOrangeScuttler = 20-4; } if (this.playerData.killsGardenZombie > 20-4) { this.playerData.killsGardenZombie = 20-4; } if (this.playerData.killsColRoller > 20-4) { this.playerData.killsColRoller = 20-4; } if (this.playerData.killsColWorm > 20-4) { this.playerData.killsColWorm = 20-4; } } } *** ###Only Sprintmaster increases dash length, and it affects all dashes HeroController Dash *** if (this.playerData.equippedCharm_16 && this.cState.shadowDashing) { num = this.DASH_SPEED_SHARP; } into if (this.playerData.equippedCharm_37) { num = this.DASH_SPEED * 1.2f; } *** ###Fix compiler this.heroInPosition += delegate(bool ) into this.heroInPosition += delegate *** ###Shadow dash cooldown timer is always double the dash cooldown timer, Dashmaster also reduces shadow dash cooldown timer HeroController HeroDash *** this.shadowDashTimer = this.SHADOW_DASH_COOLDOWN; into this.shadowDashTimer = this.SHADOW_DASH_COOLDOWN; if (this.playerData.equippedCharm_31) { this.shadowDashTimer = this.DASH_COOLDOWN_CH * 2f; } else { this.shadowDashTimer = this.DASH_COOLDOWN * 2f; } *** ###Fix compiler this.heroInPosition += delegate(bool ) into this.heroInPosition += delegate *** ###Drain soul (including the two soul charms): 11,5,10 11,5,10 //11,3,8 6,2,6 HeroController SoulGain *** if (this.playerData.MPCharge < this.playerData.maxMP) { num = 11; if (this.playerData.equippedCharm_20) { num += 3; } if (this.playerData.equippedCharm_21) { num += 8; } } else { num = 6; if (this.playerData.equippedCharm_20) { num += 2; } if (this.playerData.equippedCharm_21) { num += 6; } } into if (this.playerData.MPCharge < this.playerData.maxMP) { num = 11; if (this.playerData.equippedCharm_20) { num += 5; } if (this.playerData.equippedCharm_21) { num += 10; } } else { num = 11; if (this.playerData.equippedCharm_20) { num += 5; } if (this.playerData.equippedCharm_21) { num += 10; } } *** ###Carefree shield, fixed 25% dodge rate. Grubberfly's Elegy always activates when using joni, ranged melee attack always on when using joni HeroController TakeDamage *** case 1: if ((float)UnityEngine.Random.Range(1, 100) <= 10f) { flag = true; } break; case 2: if ((float)UnityEngine.Random.Range(1, 100) <= 20f) { flag = true; } break; case 3: if ((float)UnityEngine.Random.Range(1, 100) <= 30f) { flag = true; } break; into case 1: if ((float)UnityEngine.Random.Range(1, 100) <= 0f) { flag = true; } break; case 2: if ((float)UnityEngine.Random.Range(1, 100) <= 0f) { flag = true; } break; case 3: if ((float)UnityEngine.Random.Range(1, 100) <= 100f) { flag = true; } break; *** if (this.joniBeam && damageAmount > 0) { this.joniBeam = false; } into if (this.joniBeam && damageAmount > 0) { this.joniBeam = true; } *** ###Baldur Shell takes damage only when damage absorbed is > 1 if (this.playerData.equippedCharm_5 && this.playerData.blockerHits > 0 && hazardType == 1 && this.cState.focusing && !flag) { this.proxyFSM.SendEvent("HeroCtrl-TookBlockerHit"); this.audioSource.PlayOneShot(this.blockerImpact, 1f); spawnDamageEffect = false; damageAmount = 0; } into if (this.playerData.equippedCharm_5 && this.playerData.blockerHits > 0 && hazardType == 1 && this.cState.focusing && !flag) { this.proxyFSM.SendEvent("HeroCtrl-TookBlockerHit"); this.audioSource.PlayOneShot(this.blockerImpact, 1f); spawnDamageEffect = false; if (damageAmount <= 1) { this.playerData.blockerHits++; } damageAmount = 0; } *** ###Fix compiler this.heroInPosition += delegate(bool ) into this.heroInPosition += delegate *** ###Joni now gives a fixed health bonus of 2 HeroController CharmUpdate if (this.playerData.equippedCharm_27) { this.playerData.joniHealthBlue = (int)((float)this.playerData.maxHealth * 1.4f); this.playerData.maxHealth = 1; this.MaxHealth(); this.joniBeam = true; } into if (this.playerData.equippedCharm_27) { this.playerData.joniHealthBlue = (int)((float)this.playerData.maxHealth * 1.4f); this.playerData.joniHealthBlue = this.playerData.maxHealth + 1; if (this.playerData.equippedCharm_8) { this.playerData.joniHealthBlue += 2; } if (this.playerData.equippedCharm_9) { this.playerData.joniHealthBlue += 4; } this.playerData.maxHealth = 1; this.MaxHealth(); this.joniBeam = true; } *** ###Fix compiler this.heroInPosition += delegate(bool ) into this.heroInPosition += delegate *** ###Boosted soul gain using dreamnail with or without charm: 66,99 //33,66 EnemyDreamnailReaction RecieveDreamImpact *** int amount = GameManager.instance.playerData.equippedCharm_30 ? 66 : 33; into int amount = GameManager.instance.playerData.equippedCharm_30 ? 99 : 66; *** ###Extra damage spore(Spore Shroom), dung(Defender's Crest), dung2(Defender's Crest + Spore Shroom): 2,3,4 //1,1,2 ExtraDamageable GetDamageOfType *** if (extraDamageTypes <= ExtraDamageTypes.Dung || extraDamageTypes != ExtraDamageTypes.Dung2) { return 1; } return 2; into if (extraDamageTypes == ExtraDamageTypes.Spore) { return 2; } if (extraDamageTypes == ExtraDamageTypes.Dung) { return 3; } if (extraDamageTypes == ExtraDamageTypes.Dung2) { return 4; } return 2; *** ###Godmaster: nail binding = -3 damage GetNailDamage OnEnter *** if (BossSequenceController.BoundNail) { this.storeValue.Value = Mathf.Min(GameManager.instance.playerData.nailDamage, BossSequenceController.BoundNailDamage); } else { this.storeValue.Value = GameManager.instance.playerData.nailDamage; } into if (BossSequenceController.BoundNail) { this.storeValue.Value = Mathf.Min(GameManager.instance.playerData.nailDamage, BossSequenceController.BoundNailDamage); } else { this.storeValue.Value = GameManager.instance.playerData.nailDamage; } this.storeValue.Value = GameManager.instance.playerData.nailDamage - 3; *** BossSequenceController BoundNailDamage *** get { int nailDamage = GameManager.instance.playerData.nailDamage; if (nailDamage <= BossSequenceController.currentSequence.nailDamage) { return Mathf.RoundToInt((float)nailDamage * BossSequenceController.currentSequence.lowerNailDamagePercentage); } return BossSequenceController.currentSequence.nailDamage; } into get { int nailDamage = GameManager.instance.playerData.nailDamage; if (nailDamage > 7) { return GameManager.instance.playerData.nailDamage - 3; } if (nailDamage <= BossSequenceController.currentSequence.nailDamage) { return Mathf.RoundToInt((float)nailDamage * BossSequenceController.currentSequence.lowerNailDamagePercentage); } return BossSequenceController.currentSequence.nailDamage; } *** ###Godmaster: fix joni shell binding = -loot masks GGCheckBoundHeart IsTrue *** num = (int)((float)this.healthNumber.Value * 0.71428573f) + 1; into num = (int)((float)this.healthNumber.Value * 0.71428573f) + 1; num = this.healthNumber.Value; if (GameManager.instance.playerData.equippedCharm_27 && GameManager.instance.playerData.equippedCharm_8) { num -= 2; } if (GameManager.instance.playerData.equippedCharm_27 && GameManager.instance.playerData.equippedCharm_9) { num -= 4; } *** ###Godmaster: charm binding overcharmed if > 4 slots used BossSequenceController ApplyBindings *** if (BossSequenceController.BoundCharms) { BossSequenceController.currentData.previousEquippedCharms = GameManager.instance.playerData.equippedCharms.ToArray(); GameManager.instance.playerData.equippedCharms.Clear(); BossSequenceController.currentData.wasOvercharmed = GameManager.instance.playerData.overcharmed; GameManager.instance.playerData.overcharmed = false; BossSequenceController.SetCharmsEquipped(false); EventRegister.SendEvent("SHOW BOUND CHARMS"); } into if (BossSequenceController.BoundCharms) { BossSequenceController.currentData.previousEquippedCharms = GameManager.instance.playerData.equippedCharms.ToArray(); if (GameManager.instance.playerData.charmSlotsFilled == 0) { GameManager.instance.playerData.equippedCharms.Clear(); BossSequenceController.currentData.wasOvercharmed = GameManager.instance.playerData.overcharmed; GameManager.instance.playerData.overcharmed = false; BossSequenceController.SetCharmsEquipped(false); } if (GameManager.instance.playerData.charmSlotsFilled > 4) { GameManager.instance.playerData.overcharmed = true; } EventRegister.SendEvent("SHOW BOUND CHARMS"); } *** USED INFO FOR THE JOURNAL REQUIREMENT REDUCTION: this.killsBuzzer = 45; this.killsZombieRunner = 35; this.killsZombieHornhead = 35; this.killsZombieLeaper = 35; this.killsZombieBarger = 35; this.killsBabyCentipede = 35; this.killsClimber = 30; this.killsHatchling = 30; this.killsMossWalker = 30; this.killsFungoonBaby = 30; this.killsFlyingSentrySword = 30; this.killsBeeHatchling = 30; this.killsBouncer = 25; this.killsHopper = 25; this.killsMossmanRunner = 25; this.killsMossmanShaker = 25; this.killsMosquito = 25; this.killsMossFlyer = 25; this.killsMantis = 25; this.killsMantisFlyerChild = 25; this.killsRoyalDandy = 25; this.killsRoyalCoward = 25; this.killsRoyalPlumper = 25; this.killsFlyingSentryJavelin = 25; this.killsSentry = 25; this.killsMageBlob = 25; this.killsMiniSpider = 25; this.killsSuperSpitter = 25; this.killsSibling = 25; this.killsColFlyingSentry = 25; this.killsColMiner = 25; this.killsColShield = 25; this.killsSpitter = 20; this.killsRoller = 20; this.killsBlobFlyer = 20; this.killsJellyCrawler = 20; this.killsMushroomTurret = 20; this.killsMushroomRoller = 20; this.killsMushroomBaby = 20; this.killsFungusFlyer = 20; this.killsMage = 20; this.killsSentryFat = 20; this.killsFlipHopper = 20; this.killsFlukeman = 20; this.killsInflater = 20; this.killsCrystalFlyer = 20; this.killsZombieMiner = 20; this.killsShootSpider = 20; this.killsSpiderFlyer = 20; this.killsBlowFly = 20; this.killsDreamGuard = 20; this.killsAbyssCrawler = 20; this.killsOrangeScuttler = 20; this.killsGardenZombie = 20; this.killsColRoller = 20; this.killsColWorm = 20; UNUSED INFO this.killsMantisHeavyFlyer = 16; this.killsHatcher = 15; this.killsPlantShooter = 15; this.killsMossCharger = 15; this.killsSnapperTrap = 15; this.killsGrassHopper = 15; this.killsFungCrawler = 15; this.killsMageBalloon = 15; this.killsFlukefly = 15; this.killsCrystalCrawler = 15; this.killsLaserBug = 15; this.killsBeamMiner = 15; this.killsMinesCrawler = 15; this.killsAngryBuzzer = 15; this.killsBurstingBouncer = 15; this.killsBurstingZombie = 15; this.killsSpittingZombie = 15; this.killsCentipedeHatcher = 15; this.killsSlashSpider = 15; this.killsSpiderCorpse = 15; this.killsBeeStinger = 15; this.killsCeilingDropper = 15; this.killsPigeon = 15; this.killsHeavyMantis = 15; this.killsBlobble = 15; this.killsColMosquito = 15; this.killsColHopper = 15; this.killsJellyfish = 12; this.killsBigBee = 12; this.killsWorm = 10; this.killsZombieShield = 10; this.killsFungifiedZombie = 10; this.killsMossKnightFat = 10; this.killsBlackKnight = 10; this.killsGreatShieldZombie = 10; this.killsBigCentipede = 10; this.killsLesserMawlek = 10; this.killsGiantHopper = 10; this.killsMawlekTurret = 10; this.killsHealthScuttler = 10; this.killsZombieHive = 10; this.killsPalaceFly = 10; this.killsMummy = 10; this.killsOrangeBalloon = 10; this.killsAbyssTendril = 10; this.killsWhiteRoyal = 10; this.killsMossKnight = 8; this.killsAcidFlyer = 8; this.killsAcidWalker = 8; this.killsMushroomBrawler = 8; this.killsFatFluke = 8; this.killsZombieGuard = 6; this.killsElectricMage = 6; this.killsGrubMimic = 5; this.killsEggSac = 5; this.killsFlameBearerLarge = 5; this.killsFlameBearerMed = 4; this.killsBigFly = 3; this.killsOblobble = 3; this.killsFlameBearerSmall = 3; this.killsBigBuzzer = 2; this.killsPrayerSlug = 2; this.killsMageKnight = 2; this.killsMegaBeamMiner = 2; this.killsHornet = 2; this.killsRoyalGuard = 2; this.killsMawlek = 1; this.killsFalseKnight = 1; this.killsBlocker = 1; this.killsMenderBug = 1; this.killsMegaMossCharger = 1; this.killsInfectedKnight = 1; this.killsLazyFlyer = 1; this.killsZapBug = 1; this.killsMegaJellyfish = 1; this.killsMantisLord = 1; this.killsJarCollector = 1; this.killsMageLord = 1; this.killsGorgeousHusk = 1; this.killsFlukeMother = 1; this.killsDungDefender = 1; this.killsMimicSpider = 1; this.killsHiveKnight = 1; this.killsTraitorLord = 1; this.killsZote = 1; this.killsLobsterLancer = 1; this.killsGhostAladar = 1; this.killsGhostXero = 1; this.killsGhostHu = 1; this.killsGhostMarmu = 1; this.killsGhostNoEyes = 1; this.killsGhostMarkoth = 1; this.killsGhostGalien = 1; this.killsWhiteDefender = 1; this.killsGreyPrince = 1; this.killsZotelingBalloon = 1; this.killsZotelingHopper = 1; this.killsZotelingBuzzer = 1; this.killsHollowKnight = 1; this.killsFinalBoss = 1; this.killsHunterMark = 1; this.killsGrimm = 1; this.killsNightmareGrimm = 1; this.killsBindingSeal = 1; this.killsPaleLurker = 1; this.killsNailBros = 1; this.killsPaintmaster = 1; this.killsNailsage = 1; this.killsHollowKnightPrime = 1; this.killsGodseekerMask = 1; this.killsVoidIdol_1 = 1; this.killsVoidIdol_2 = 1; this.killsVoidIdol_3 = 1;