diff --git a/RimWorldOfMagic/RimWorldOfMagic/CompAbilityUserMagic.cs b/RimWorldOfMagic/RimWorldOfMagic/CompAbilityUserMagic.cs index b1f99009..09cc7808 100644 --- a/RimWorldOfMagic/RimWorldOfMagic/CompAbilityUserMagic.cs +++ b/RimWorldOfMagic/RimWorldOfMagic/CompAbilityUserMagic.cs @@ -7571,6 +7571,17 @@ private void CleanupSummonedStructures() } } + private void loadMagicPowers(List magicPowers) + { + if (magicPowers.NullOrEmpty()) return; + foreach (MagicPower magicPower in magicPowers) + { + // We add scroll abilities in InitializeSpell() rather than here + if (magicPower.abilityDef == null || magicPower.requiresScroll || !magicPower.learned) continue; + AddPawnAbility(magicPower.abilityDef); + } + } + public override void PostExposeData() { //base.PostExposeData(); @@ -7706,1123 +7717,28 @@ public override void PostExposeData() } else { - bool flagCM = abilityUser.story.traits.HasTrait(TorannMagicDefOf.ChaosMage); - bool flag40 = abilityUser.story.traits.HasTrait(TorannMagicDefOf.InnerFire) || flagCM; - if (flag40) - { - bool flag14 = !this.MagicData.MagicPowersIF.NullOrEmpty(); - if (flag14) - { - //this.LoadPowers(); - foreach (MagicPower current3 in this.MagicData.MagicPowersIF) - { - bool flag15 = current3.abilityDef != null; - if (flag15) - { - if (current3.learned == true && (current3.abilityDef == TorannMagicDefOf.TM_RayofHope || current3.abilityDef == TorannMagicDefOf.TM_RayofHope_I || current3.abilityDef == TorannMagicDefOf.TM_RayofHope_II || current3.abilityDef == TorannMagicDefOf.TM_RayofHope_III)) - { - if (current3.level == 0) - { - base.AddPawnAbility(TorannMagicDefOf.TM_RayofHope); - } - else if (current3.level == 1) - { - base.AddPawnAbility(TorannMagicDefOf.TM_RayofHope_I); - } - else if (current3.level == 2) - { - base.AddPawnAbility(TorannMagicDefOf.TM_RayofHope_II); - } - else - { - base.AddPawnAbility(TorannMagicDefOf.TM_RayofHope_III); - } - } - } - } - } - } - bool flag41 = abilityUser.story.traits.HasTrait(TorannMagicDefOf.HeartOfFrost) || flagCM; - if (flag41) - { - bool flag17 = !this.MagicData.MagicPowersHoF.NullOrEmpty(); - if (flag17) - { - //this.LoadPowers(); - foreach (MagicPower current4 in this.MagicData.MagicPowersHoF) - { - bool flag18 = current4.abilityDef != null; - if (flag18) - { - if (current4.learned == true && (current4.abilityDef == TorannMagicDefOf.TM_Soothe || current4.abilityDef == TorannMagicDefOf.TM_Soothe_I || current4.abilityDef == TorannMagicDefOf.TM_Soothe_II || current4.abilityDef == TorannMagicDefOf.TM_Soothe_III)) - { - if (current4.level == 0) - { - base.AddPawnAbility(TorannMagicDefOf.TM_Soothe); - } - else if (current4.level == 1) - { - base.AddPawnAbility(TorannMagicDefOf.TM_Soothe_I); - } - else if (current4.level == 2) - { - base.AddPawnAbility(TorannMagicDefOf.TM_Soothe_II); - } - else - { - base.AddPawnAbility(TorannMagicDefOf.TM_Soothe_III); - } - } - if (current4.learned == true && (current4.abilityDef == TorannMagicDefOf.TM_FrostRay || current4.abilityDef == TorannMagicDefOf.TM_FrostRay_I || current4.abilityDef == TorannMagicDefOf.TM_FrostRay_II || current4.abilityDef == TorannMagicDefOf.TM_FrostRay_III)) - { - if (current4.level == 0) - { - base.AddPawnAbility(TorannMagicDefOf.TM_FrostRay); - } - else if (current4.level == 1) - { - base.AddPawnAbility(TorannMagicDefOf.TM_FrostRay_I); - } - else if (current4.level == 2) - { - base.AddPawnAbility(TorannMagicDefOf.TM_FrostRay_II); - } - else - { - base.AddPawnAbility(TorannMagicDefOf.TM_FrostRay_III); - } - } - } - } - } - } - bool flag42 = abilityUser.story.traits.HasTrait(TorannMagicDefOf.StormBorn) || flagCM; - if (flag42) - { - bool flag20 = !this.MagicData.MagicPowersSB.NullOrEmpty(); - if (flag20) - { - //this.LoadPowers(); - foreach (MagicPower current5 in this.MagicData.MagicPowersSB) - { - bool flag21 = current5.abilityDef != null; - if (current5.learned == true && (current5.abilityDef == TorannMagicDefOf.TM_AMP || current5.abilityDef == TorannMagicDefOf.TM_AMP_I || current5.abilityDef == TorannMagicDefOf.TM_AMP_II || current5.abilityDef == TorannMagicDefOf.TM_AMP_III)) - { - if (current5.level == 0) - { - base.AddPawnAbility(TorannMagicDefOf.TM_AMP); - } - else if (current5.level == 1) - { - base.AddPawnAbility(TorannMagicDefOf.TM_AMP_I); - } - else if (current5.level == 2) - { - base.AddPawnAbility(TorannMagicDefOf.TM_AMP_II); - } - else - { - base.AddPawnAbility(TorannMagicDefOf.TM_AMP_III); - } - } - } - } - } - bool flag43 = abilityUser.story.traits.HasTrait(TorannMagicDefOf.Arcanist) || flagCM; - if (flag43) - { - bool flag23 = !this.MagicData.MagicPowersA.NullOrEmpty(); - if (flag23) - { - //this.LoadPowers(); - foreach (MagicPower current6 in this.MagicData.MagicPowersA) - { - bool flag24 = current6.abilityDef != null; - if (flag24) - { - if (current6.learned == true && (current6.abilityDef == TorannMagicDefOf.TM_Shadow || current6.abilityDef == TorannMagicDefOf.TM_Shadow_I || current6.abilityDef == TorannMagicDefOf.TM_Shadow_II || current6.abilityDef == TorannMagicDefOf.TM_Shadow_III)) - { - if (current6.level == 0) - { - base.AddPawnAbility(TorannMagicDefOf.TM_Shadow); - } - else if (current6.level == 1) - { - base.AddPawnAbility(TorannMagicDefOf.TM_Shadow_I); - } - else if (current6.level == 2) - { - base.AddPawnAbility(TorannMagicDefOf.TM_Shadow_II); - } - else - { - base.AddPawnAbility(TorannMagicDefOf.TM_Shadow_III); - } - } - if (current6.learned == true && (current6.abilityDef == TorannMagicDefOf.TM_MagicMissile || current6.abilityDef == TorannMagicDefOf.TM_MagicMissile_I || current6.abilityDef == TorannMagicDefOf.TM_MagicMissile_II || current6.abilityDef == TorannMagicDefOf.TM_MagicMissile_III)) - { - if (current6.level == 0) - { - base.AddPawnAbility(TorannMagicDefOf.TM_MagicMissile); - } - else if (current6.level == 1) - { - base.AddPawnAbility(TorannMagicDefOf.TM_MagicMissile_I); - } - else if (current6.level == 2) - { - base.AddPawnAbility(TorannMagicDefOf.TM_MagicMissile_II); - } - else - { - base.AddPawnAbility(TorannMagicDefOf.TM_MagicMissile_III); - } - } - if (current6.learned == true && (current6.abilityDef == TorannMagicDefOf.TM_Blink || current6.abilityDef == TorannMagicDefOf.TM_Blink_I || current6.abilityDef == TorannMagicDefOf.TM_Blink_II || current6.abilityDef == TorannMagicDefOf.TM_Blink_III)) - { - if (current6.level == 0) - { - base.AddPawnAbility(TorannMagicDefOf.TM_Blink); - } - else if (current6.level == 1) - { - base.AddPawnAbility(TorannMagicDefOf.TM_Blink_I); - } - else if (current6.level == 2) - { - base.AddPawnAbility(TorannMagicDefOf.TM_Blink_II); - } - else - { - base.AddPawnAbility(TorannMagicDefOf.TM_Blink_III); - } - } - if (current6.learned == true && (current6.abilityDef == TorannMagicDefOf.TM_Summon || current6.abilityDef == TorannMagicDefOf.TM_Summon_I || current6.abilityDef == TorannMagicDefOf.TM_Summon_II || current6.abilityDef == TorannMagicDefOf.TM_Summon_III)) - { - if (current6.level == 0) - { - base.AddPawnAbility(TorannMagicDefOf.TM_Summon); - } - else if (current6.level == 1) - { - base.AddPawnAbility(TorannMagicDefOf.TM_Summon_I); - } - else if (current6.level == 2) - { - base.AddPawnAbility(TorannMagicDefOf.TM_Summon_II); - } - else - { - base.AddPawnAbility(TorannMagicDefOf.TM_Summon_III); - } - } - } - } - } - } - bool flag44 = abilityUser.story.traits.HasTrait(TorannMagicDefOf.Paladin) || flagCM; - if (flag44) - { - bool flag26 = !this.MagicData.MagicPowersP.NullOrEmpty(); - if (flag26) - { - //this.LoadPowers(); - foreach (MagicPower current7 in this.MagicData.MagicPowersP) - { - bool flag27 = current7.abilityDef != null; - if (flag27) - { - if (current7.learned == true && (current7.abilityDef == TorannMagicDefOf.TM_Shield || current7.abilityDef == TorannMagicDefOf.TM_Shield_I || current7.abilityDef == TorannMagicDefOf.TM_Shield_II || current7.abilityDef == TorannMagicDefOf.TM_Shield_III)) - { - if (current7.level == 0) - { - base.AddPawnAbility(TorannMagicDefOf.TM_Shield); - } - else if (current7.level == 1) - { - base.AddPawnAbility(TorannMagicDefOf.TM_Shield_I); - } - else if (current7.level == 2) - { - base.AddPawnAbility(TorannMagicDefOf.TM_Shield_II); - } - else - { - base.AddPawnAbility(TorannMagicDefOf.TM_Shield_III); - } - } - if (current7.learned == true && (current7.abilityDef == TorannMagicDefOf.TM_P_RayofHope || current7.abilityDef == TorannMagicDefOf.TM_P_RayofHope_I || current7.abilityDef == TorannMagicDefOf.TM_P_RayofHope_II || current7.abilityDef == TorannMagicDefOf.TM_P_RayofHope_III)) - { - if (current7.level == 0) - { - base.AddPawnAbility(TorannMagicDefOf.TM_P_RayofHope); - } - else if (current7.level == 1) - { - base.AddPawnAbility(TorannMagicDefOf.TM_P_RayofHope_I); - } - else if (current7.level == 2) - { - base.AddPawnAbility(TorannMagicDefOf.TM_P_RayofHope_II); - } - else - { - base.AddPawnAbility(TorannMagicDefOf.TM_P_RayofHope_III); - } - } - } - } - } - } - bool flag45 = abilityUser.story.traits.HasTrait(TorannMagicDefOf.Summoner) || flagCM; - if (flag45) - { - bool flag28 = !this.MagicData.MagicPowersS.NullOrEmpty(); - if (flag28) - { - //this.LoadPowers(); - foreach (MagicPower current8 in this.MagicData.MagicPowersS) - { - bool flag29 = current8.abilityDef != null; - if (flag29) - { - //if ((current7.abilityDef == TorannMagicDefOf.TM_Shield || current7.abilityDef == TorannMagicDefOf.TM_Shield_I || current7.abilityDef == TorannMagicDefOf.TM_Shield_II || current7.abilityDef == TorannMagicDefOf.TM_Shield_III)) - //{ - // if (current7.level == 0) - // { - // base.AddPawnAbility(TorannMagicDefOf.TM_Shield); - // } - // else if (current7.level == 1) - // { - // base.AddPawnAbility(TorannMagicDefOf.TM_Shield_I); - // } - // else if (current7.level == 2) - // { - // base.AddPawnAbility(TorannMagicDefOf.TM_Shield_II); - // } - // else - // { - // base.AddPawnAbility(TorannMagicDefOf.TM_Shield_III); - // } - //} - } - } - } - } - bool flag46 = abilityUser.story.traits.HasTrait(TorannMagicDefOf.Druid) || flagCM; - if (flag46) - { - bool flag30 = !this.MagicData.MagicPowersD.NullOrEmpty(); - if (flag30) - { - //this.LoadPowers(); - foreach (MagicPower current9 in this.MagicData.MagicPowersD) - { - bool flag31 = current9.abilityDef != null; - if (flag31) - { - if (current9.learned == true && (current9.abilityDef == TorannMagicDefOf.TM_SootheAnimal || current9.abilityDef == TorannMagicDefOf.TM_SootheAnimal_I || current9.abilityDef == TorannMagicDefOf.TM_SootheAnimal_II || current9.abilityDef == TorannMagicDefOf.TM_SootheAnimal_III)) - { - if (current9.level == 0) - { - base.AddPawnAbility(TorannMagicDefOf.TM_SootheAnimal); - } - else if (current9.level == 1) - { - base.AddPawnAbility(TorannMagicDefOf.TM_SootheAnimal_I); - } - else if (current9.level == 2) - { - base.AddPawnAbility(TorannMagicDefOf.TM_SootheAnimal_II); - } - else - { - base.AddPawnAbility(TorannMagicDefOf.TM_SootheAnimal_III); - } - } - } - } - } - } - bool flag47 = abilityUser.story.traits.HasTrait(TorannMagicDefOf.Necromancer) || abilityUser.story.traits.HasTrait(TorannMagicDefOf.Lich) || flagCM; - if (flag47) - { - bool flag32 = !this.MagicData.MagicPowersN.NullOrEmpty(); - if (flag32) - { - //this.LoadPowers(); - foreach (MagicPower current10 in this.MagicData.MagicPowersN) - { - bool flag33 = current10.abilityDef != null; - if (flag33) - { - if (current10.learned == true && (current10.abilityDef == TorannMagicDefOf.TM_DeathMark || current10.abilityDef == TorannMagicDefOf.TM_DeathMark_I || current10.abilityDef == TorannMagicDefOf.TM_DeathMark_II || current10.abilityDef == TorannMagicDefOf.TM_DeathMark_III)) - { - if (current10.level == 0) - { - base.AddPawnAbility(TorannMagicDefOf.TM_DeathMark); - } - else if (current10.level == 1) - { - base.AddPawnAbility(TorannMagicDefOf.TM_DeathMark_I); - } - else if (current10.level == 2) - { - base.AddPawnAbility(TorannMagicDefOf.TM_DeathMark_II); - } - else - { - base.AddPawnAbility(TorannMagicDefOf.TM_DeathMark_III); - } - } - if (current10.learned == true && (current10.abilityDef == TorannMagicDefOf.TM_ConsumeCorpse || current10.abilityDef == TorannMagicDefOf.TM_ConsumeCorpse_I || current10.abilityDef == TorannMagicDefOf.TM_ConsumeCorpse_II || current10.abilityDef == TorannMagicDefOf.TM_ConsumeCorpse_III)) - { - if (current10.level == 0) - { - base.AddPawnAbility(TorannMagicDefOf.TM_ConsumeCorpse); - } - else if (current10.level == 1) - { - base.AddPawnAbility(TorannMagicDefOf.TM_ConsumeCorpse_I); - } - else if (current10.level == 2) - { - base.AddPawnAbility(TorannMagicDefOf.TM_ConsumeCorpse_II); - } - else - { - base.AddPawnAbility(TorannMagicDefOf.TM_ConsumeCorpse_III); - } - } - if (current10.learned == true && (current10.abilityDef == TorannMagicDefOf.TM_CorpseExplosion || current10.abilityDef == TorannMagicDefOf.TM_CorpseExplosion_I || current10.abilityDef == TorannMagicDefOf.TM_CorpseExplosion_II || current10.abilityDef == TorannMagicDefOf.TM_CorpseExplosion_III)) - { - if (current10.level == 0) - { - base.AddPawnAbility(TorannMagicDefOf.TM_CorpseExplosion); - } - else if (current10.level == 1) - { - base.AddPawnAbility(TorannMagicDefOf.TM_CorpseExplosion_I); - } - else if (current10.level == 2) - { - base.AddPawnAbility(TorannMagicDefOf.TM_CorpseExplosion_II); - } - else - { - base.AddPawnAbility(TorannMagicDefOf.TM_CorpseExplosion_III); - } - } - if (abilityUser.story.traits.HasTrait(TorannMagicDefOf.Lich) && (current10.learned == true && (current10.abilityDef == TorannMagicDefOf.TM_DeathBolt || current10.abilityDef == TorannMagicDefOf.TM_DeathBolt_I || current10.abilityDef == TorannMagicDefOf.TM_DeathBolt_II || current10.abilityDef == TorannMagicDefOf.TM_DeathBolt_III))) - { - if (current10.level == 0) - { - base.AddPawnAbility(TorannMagicDefOf.TM_DeathBolt); - } - else if (current10.level == 1) - { - base.AddPawnAbility(TorannMagicDefOf.TM_DeathBolt_I); - } - else if (current10.level == 2) - { - base.AddPawnAbility(TorannMagicDefOf.TM_DeathBolt_II); - } - else - { - base.AddPawnAbility(TorannMagicDefOf.TM_DeathBolt_III); - } - } - } - } - } - } - bool flag48 = abilityUser.story.traits.HasTrait(TorannMagicDefOf.Priest) || flagCM; - if (flag48) - { - bool flag34 = !this.MagicData.MagicPowersPR.NullOrEmpty(); - if (flag34) - { - //this.LoadPowers(); - foreach (MagicPower current11 in this.MagicData.MagicPowersPR) - { - bool flag33 = current11.abilityDef != null; - if (flag33) - { - if (current11.learned == true && (current11.abilityDef == TorannMagicDefOf.TM_HealingCircle || current11.abilityDef == TorannMagicDefOf.TM_HealingCircle_I || current11.abilityDef == TorannMagicDefOf.TM_HealingCircle_II || current11.abilityDef == TorannMagicDefOf.TM_HealingCircle_III)) - { - if (current11.level == 0) - { - base.AddPawnAbility(TorannMagicDefOf.TM_HealingCircle); - } - else if (current11.level == 1) - { - base.AddPawnAbility(TorannMagicDefOf.TM_HealingCircle_I); - } - else if (current11.level == 2) - { - base.AddPawnAbility(TorannMagicDefOf.TM_HealingCircle_II); - } - else - { - base.AddPawnAbility(TorannMagicDefOf.TM_HealingCircle_III); - } - } - if (current11.learned == true && (current11.abilityDef == TorannMagicDefOf.TM_BestowMight || current11.abilityDef == TorannMagicDefOf.TM_BestowMight_I || current11.abilityDef == TorannMagicDefOf.TM_BestowMight_II || current11.abilityDef == TorannMagicDefOf.TM_BestowMight_III)) - { - if (current11.level == 0) - { - base.AddPawnAbility(TorannMagicDefOf.TM_BestowMight); - } - else if (current11.level == 1) - { - base.AddPawnAbility(TorannMagicDefOf.TM_BestowMight_I); - } - else if (current11.level == 2) - { - base.AddPawnAbility(TorannMagicDefOf.TM_BestowMight_II); - } - else - { - base.AddPawnAbility(TorannMagicDefOf.TM_BestowMight_III); - } - } - } - } - } - } - bool flag49 = abilityUser.story.traits.HasTrait(TorannMagicDefOf.TM_Bard) || flagCM; - if (flag49) - { - bool flag35 = !this.MagicData.MagicPowersB.NullOrEmpty(); - if (flag35) - { - //this.LoadPowers(); - foreach (MagicPower current12 in this.MagicData.MagicPowersB) - { - bool flag36 = current12.abilityDef != null; - if (flag36) - { - if (current12.learned == true && (current12.abilityDef == TorannMagicDefOf.TM_Lullaby || current12.abilityDef == TorannMagicDefOf.TM_Lullaby_I || current12.abilityDef == TorannMagicDefOf.TM_Lullaby_II || current12.abilityDef == TorannMagicDefOf.TM_Lullaby_III)) - { - if (current12.level == 0) - { - base.AddPawnAbility(TorannMagicDefOf.TM_Lullaby); - } - else if (current12.level == 1) - { - base.AddPawnAbility(TorannMagicDefOf.TM_Lullaby_I); - } - else if (current12.level == 2) - { - base.AddPawnAbility(TorannMagicDefOf.TM_Lullaby_II); - } - else - { - base.AddPawnAbility(TorannMagicDefOf.TM_Lullaby_III); - } - } - } - } - } - } - bool flag50 = abilityUser.story.traits.HasTrait(TorannMagicDefOf.Succubus) || flagCM; - if (flag50) - { - bool flag37 = !this.MagicData.MagicPowersSD.NullOrEmpty(); - if (flag37) - { - //this.LoadPowers(); - foreach (MagicPower current13 in this.MagicData.MagicPowersSD) - { - bool flag38 = current13.abilityDef != null; - if (flag38) - { - if (current13.learned == true && (current13.abilityDef == TorannMagicDefOf.TM_ShadowBolt || current13.abilityDef == TorannMagicDefOf.TM_ShadowBolt_I || current13.abilityDef == TorannMagicDefOf.TM_ShadowBolt_II || current13.abilityDef == TorannMagicDefOf.TM_ShadowBolt_III)) - { - if (current13.level == 0) - { - base.AddPawnAbility(TorannMagicDefOf.TM_ShadowBolt); - } - else if (current13.level == 1) - { - base.AddPawnAbility(TorannMagicDefOf.TM_ShadowBolt_I); - } - else if (current13.level == 2) - { - base.AddPawnAbility(TorannMagicDefOf.TM_ShadowBolt_II); - } - else - { - base.AddPawnAbility(TorannMagicDefOf.TM_ShadowBolt_III); - } - } - if (current13.learned == true && (current13.abilityDef == TorannMagicDefOf.TM_Attraction || current13.abilityDef == TorannMagicDefOf.TM_Attraction_I || current13.abilityDef == TorannMagicDefOf.TM_Attraction_II || current13.abilityDef == TorannMagicDefOf.TM_Attraction_III)) - { - if (current13.level == 0) - { - base.AddPawnAbility(TorannMagicDefOf.TM_Attraction); - } - else if (current13.level == 1) - { - base.AddPawnAbility(TorannMagicDefOf.TM_Attraction_I); - } - else if (current13.level == 2) - { - base.AddPawnAbility(TorannMagicDefOf.TM_Attraction_II); - } - else - { - base.AddPawnAbility(TorannMagicDefOf.TM_Attraction_III); - } - } - } - } - } - } - bool flag51 = abilityUser.story.traits.HasTrait(TorannMagicDefOf.Warlock) || flagCM; - if (flag51) - { - bool flagWD1 = !this.MagicData.MagicPowersWD.NullOrEmpty(); - if (flagWD1) - { - //this.LoadPowers(); - foreach (MagicPower current14 in this.MagicData.MagicPowersWD) - { - bool flagWD2 = current14.abilityDef != null; - if (flagWD2) - { - if (current14.learned == true && (current14.abilityDef == TorannMagicDefOf.TM_ShadowBolt || current14.abilityDef == TorannMagicDefOf.TM_ShadowBolt_I || current14.abilityDef == TorannMagicDefOf.TM_ShadowBolt_II || current14.abilityDef == TorannMagicDefOf.TM_ShadowBolt_III)) - { - if (current14.level == 0) - { - base.AddPawnAbility(TorannMagicDefOf.TM_ShadowBolt); - } - else if (current14.level == 1) - { - base.AddPawnAbility(TorannMagicDefOf.TM_ShadowBolt_I); - } - else if (current14.level == 2) - { - base.AddPawnAbility(TorannMagicDefOf.TM_ShadowBolt_II); - } - else - { - base.AddPawnAbility(TorannMagicDefOf.TM_ShadowBolt_III); - } - } - if (current14.learned == true && (current14.abilityDef == TorannMagicDefOf.TM_Repulsion || current14.abilityDef == TorannMagicDefOf.TM_Repulsion_I || current14.abilityDef == TorannMagicDefOf.TM_Repulsion_II || current14.abilityDef == TorannMagicDefOf.TM_Repulsion_III)) - { - if (current14.level == 0) - { - base.AddPawnAbility(TorannMagicDefOf.TM_Repulsion); - } - else if (current14.level == 1) - { - base.AddPawnAbility(TorannMagicDefOf.TM_Repulsion_I); - } - else if (current14.level == 2) - { - base.AddPawnAbility(TorannMagicDefOf.TM_Repulsion_II); - } - else - { - base.AddPawnAbility(TorannMagicDefOf.TM_Repulsion_III); - } - } - } - } - } - } - bool flag52 = abilityUser.story.traits.HasTrait(TorannMagicDefOf.Geomancer) || flagCM; - if (flag52) - { - bool flagG = !this.MagicData.MagicPowersG.NullOrEmpty(); - if (flagG) - { - //this.LoadPowers(); - foreach (MagicPower current15 in this.MagicData.MagicPowersG) - { - bool flagWD2 = current15.abilityDef != null; - if (flagWD2) - { - if (current15.learned == true && (current15.abilityDef == TorannMagicDefOf.TM_Encase || current15.abilityDef == TorannMagicDefOf.TM_Encase_I || current15.abilityDef == TorannMagicDefOf.TM_Encase_II || current15.abilityDef == TorannMagicDefOf.TM_Encase_III)) - { - if (current15.level == 0) - { - base.AddPawnAbility(TorannMagicDefOf.TM_Encase); - } - else if (current15.level == 1) - { - base.AddPawnAbility(TorannMagicDefOf.TM_Encase_I); - } - else if (current15.level == 2) - { - base.AddPawnAbility(TorannMagicDefOf.TM_Encase_II); - } - else - { - base.AddPawnAbility(TorannMagicDefOf.TM_Encase_III); - } - } - } - } - } - } - bool flag53 = abilityUser.story.traits.HasTrait(TorannMagicDefOf.Technomancer) || flagCM; - if (flag53) - { - bool flagT = !this.MagicData.MagicPowersT.NullOrEmpty(); - if (flagT) - { - //this.LoadPowers(); - foreach (MagicPower current16 in this.MagicData.MagicPowersT) - { - bool flagT2 = current16.abilityDef != null; - if (flagT2) - { - - } - } - } - } - bool flag54 = abilityUser.story.traits.HasTrait(TorannMagicDefOf.BloodMage); - if (flag54) - { - bool flagBM = !this.MagicData.MagicPowersBM.NullOrEmpty(); - if (flagBM) - { - //this.LoadPowers(); - foreach (MagicPower current16 in this.MagicData.MagicPowersBM) - { - bool flagBM2 = current16.abilityDef != null; - if (flagBM2) - { - if (current16.learned == true && (current16.abilityDef == TorannMagicDefOf.TM_Rend || current16.abilityDef == TorannMagicDefOf.TM_Rend_I || current16.abilityDef == TorannMagicDefOf.TM_Rend_II || current16.abilityDef == TorannMagicDefOf.TM_Rend_III)) - { - if (current16.level == 0) - { - base.AddPawnAbility(TorannMagicDefOf.TM_Rend); - } - else if (current16.level == 1) - { - base.AddPawnAbility(TorannMagicDefOf.TM_Rend_I); - } - else if (current16.level == 2) - { - base.AddPawnAbility(TorannMagicDefOf.TM_Rend_II); - } - else - { - base.AddPawnAbility(TorannMagicDefOf.TM_Rend_III); - } - } - } - } - } - } - bool flag55 = abilityUser.story.traits.HasTrait(TorannMagicDefOf.Enchanter) || flagCM; - if (flag55) - { - bool flagE = !this.MagicData.MagicPowersE.NullOrEmpty(); - if (flagE) - { - //this.LoadPowers(); - foreach (MagicPower current17 in this.MagicData.MagicPowersE) - { - bool flagE2 = current17.abilityDef != null; - if (flagE2) - { - if (current17.learned == true && (current17.abilityDef == TorannMagicDefOf.TM_Polymorph || current17.abilityDef == TorannMagicDefOf.TM_Polymorph_I || current17.abilityDef == TorannMagicDefOf.TM_Polymorph_II || current17.abilityDef == TorannMagicDefOf.TM_Polymorph_III)) - { - if (current17.level == 0) - { - base.AddPawnAbility(TorannMagicDefOf.TM_Polymorph); - } - else if (current17.level == 1) - { - base.AddPawnAbility(TorannMagicDefOf.TM_Polymorph_I); - } - else if (current17.level == 2) - { - base.AddPawnAbility(TorannMagicDefOf.TM_Polymorph_II); - } - else - { - base.AddPawnAbility(TorannMagicDefOf.TM_Polymorph_III); - } - } - } - } - } - } - bool flag56 = abilityUser.story.traits.HasTrait(TorannMagicDefOf.Chronomancer) || flagCM; - if (flag56) - { - bool flagC = !this.MagicData.MagicPowersC.NullOrEmpty(); - if (flagC) - { - //this.LoadPowers(); - foreach (MagicPower current18 in this.MagicData.MagicPowersC) - { - bool flagC2 = current18.abilityDef != null; - if (flagC2) - { - if (current18.learned == true && (current18.abilityDef == TorannMagicDefOf.TM_ChronostaticField || current18.abilityDef == TorannMagicDefOf.TM_ChronostaticField_I || current18.abilityDef == TorannMagicDefOf.TM_ChronostaticField_II || current18.abilityDef == TorannMagicDefOf.TM_ChronostaticField_III)) - { - if (current18.level == 0) - { - base.AddPawnAbility(TorannMagicDefOf.TM_ChronostaticField); - } - else if (current18.level == 1) - { - base.AddPawnAbility(TorannMagicDefOf.TM_ChronostaticField_I); - } - else if (current18.level == 2) - { - base.AddPawnAbility(TorannMagicDefOf.TM_ChronostaticField_II); - } - else - { - base.AddPawnAbility(TorannMagicDefOf.TM_ChronostaticField_III); - } - } - } - } - } - } - if (flag40) - { - //Log.Message("Loading Inner Fire Abilities"); - MagicPower mpIF = this.MagicData.MagicPowersIF.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_Firebolt); - if (mpIF.learned == true) - { - this.AddPawnAbility(TorannMagicDefOf.TM_Firebolt); - } - mpIF = this.MagicData.MagicPowersIF.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_Fireclaw); - if (mpIF.learned == true) - { - this.AddPawnAbility(TorannMagicDefOf.TM_Fireclaw); - } - mpIF = this.MagicData.MagicPowersIF.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_Fireball); - if (mpIF.learned == true) - { - this.AddPawnAbility(TorannMagicDefOf.TM_Fireball); - } - } - if (flag41) - { - //Log.Message("Loading Heart of Frost Abilities"); - MagicPower mpHoF = this.MagicData.MagicPowersHoF.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_Icebolt); - if (mpHoF.learned == true) - { - this.AddPawnAbility(TorannMagicDefOf.TM_Icebolt); - } - mpHoF = this.MagicData.MagicPowersHoF.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_Snowball); - if (mpHoF.learned == true) - { - this.AddPawnAbility(TorannMagicDefOf.TM_Snowball); - } - mpHoF = this.MagicData.MagicPowersHoF.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_Rainmaker); - if (mpHoF.learned == true) - { - this.AddPawnAbility(TorannMagicDefOf.TM_Rainmaker); - } - - } - if (flag42) - { - //Log.Message("Loading Storm Born Abilities"); - MagicPower mpSB = this.MagicData.MagicPowersSB.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_LightningBolt); - if (mpSB.learned == true) - { - this.AddPawnAbility(TorannMagicDefOf.TM_LightningBolt); - } - mpSB = this.MagicData.MagicPowersSB.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_LightningCloud); - if (mpSB.learned == true) - { - this.AddPawnAbility(TorannMagicDefOf.TM_LightningCloud); - } - mpSB = this.MagicData.MagicPowersSB.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_LightningStorm); - if (mpSB.learned == true) - { - this.AddPawnAbility(TorannMagicDefOf.TM_LightningStorm); - } - } - if (flag43) - { - //Log.Message("Loading Arcane Abilities"); - MagicPower mpA = this.MagicData.MagicPowersA.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_Teleport); - if (mpA.learned == true) - { - this.AddPawnAbility(TorannMagicDefOf.TM_Teleport); - } - } - if (flag44) - { - //Log.Message("Loading Paladin Abilities"); - MagicPower mpP = this.MagicData.MagicPowersP.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_Heal); - if (mpP.learned == true) - { - this.AddPawnAbility(TorannMagicDefOf.TM_Heal); - } - mpP = this.MagicData.MagicPowersP.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_ValiantCharge); - if (mpP.learned == true) - { - this.AddPawnAbility(TorannMagicDefOf.TM_ValiantCharge); - } - mpP = this.MagicData.MagicPowersP.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_Overwhelm); - if (mpP.learned == true) - { - this.AddPawnAbility(TorannMagicDefOf.TM_Overwhelm); - } - } - if (flag45) - { - //Log.Message("Loading Summoner Abilities"); - MagicPower mpS = this.MagicData.MagicPowersS.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_SummonMinion); - if (mpS.learned == true) - { - this.AddPawnAbility(TorannMagicDefOf.TM_SummonMinion); - } - mpS = this.MagicData.MagicPowersS.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_SummonPylon); - if (mpS.learned == true) - { - this.AddPawnAbility(TorannMagicDefOf.TM_SummonPylon); - } - mpS = this.MagicData.MagicPowersS.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_SummonExplosive); - if (mpS.learned == true) - { - this.AddPawnAbility(TorannMagicDefOf.TM_SummonExplosive); - } - mpS = this.MagicData.MagicPowersS.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_SummonElemental); - if (mpS.learned == true) - { - this.AddPawnAbility(TorannMagicDefOf.TM_SummonElemental); - } - } - if (flag46) - { - //Log.Message("Loading Druid Abilities"); - MagicPower mpD = this.MagicData.MagicPowersD.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_Poison); - if (mpD.learned == true) - { - this.AddPawnAbility(TorannMagicDefOf.TM_Poison); - } - mpD = this.MagicData.MagicPowersD.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_Regenerate); - if (mpD.learned == true) - { - this.AddPawnAbility(TorannMagicDefOf.TM_Regenerate); - } - mpD = this.MagicData.MagicPowersD.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_CureDisease); - if (mpD.learned == true) - { - this.AddPawnAbility(TorannMagicDefOf.TM_CureDisease); - } - } - if (flag47) - { - //Log.Message("Loading Necromancer Abilities"); - MagicPower mpN = this.MagicData.MagicPowersN.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_RaiseUndead); - if (mpN.learned == true) - { - this.AddPawnAbility(TorannMagicDefOf.TM_RaiseUndead); - } - mpN = this.MagicData.MagicPowersN.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_FogOfTorment); - if (mpN.learned == true) - { - this.AddPawnAbility(TorannMagicDefOf.TM_FogOfTorment); - } - } - if (flag48) - { - //Log.Message("Loading Priest Abilities"); - MagicPower mpPR = this.MagicData.MagicPowersPR.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_AdvancedHeal); - if (mpPR.learned == true) - { - this.AddPawnAbility(TorannMagicDefOf.TM_AdvancedHeal); - } - mpPR = this.MagicData.MagicPowersPR.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_Purify); - if (mpPR.learned == true) - { - this.AddPawnAbility(TorannMagicDefOf.TM_Purify); - } - } - if (flag49) - { - //Log.Message("Loading Bard Abilities"); - MagicPower mpB = this.MagicData.MagicPowersB.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_BardTraining); - //if (mpB.learned == true) - //{ - // this.AddPawnAbility(TorannMagicDefOf.TM_BardTraining); - //} - mpB = this.MagicData.MagicPowersB.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_Entertain); - if (mpB.learned == true) - { - this.AddPawnAbility(TorannMagicDefOf.TM_Entertain); - } - //mpB = this.MagicData.MagicPowersB.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_Inspire); - //if (mpB.learned == true) - //{ - // this.AddPawnAbility(TorannMagicDefOf.TM_Inspire); - //} - } - if (flag50) - { - //Log.Message("Loading Succubus Abilities"); - MagicPower mpSD = this.MagicData.MagicPowersSD.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_Dominate); - if (mpSD.learned == true) - { - this.AddPawnAbility(TorannMagicDefOf.TM_Dominate); - } - mpSD = this.MagicData.MagicPowersSD.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_SoulBond); - if (mpSD.learned == true) - { - this.AddPawnAbility(TorannMagicDefOf.TM_SoulBond); - } - } - if (flag51) - { - //Log.Message("Loading Warlock Abilities"); - MagicPower mpWD = this.MagicData.MagicPowersWD.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_Dominate); - if (mpWD.learned == true) - { - this.AddPawnAbility(TorannMagicDefOf.TM_Dominate); - } - mpWD = this.MagicData.MagicPowersWD.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_SoulBond); - if (mpWD.learned == true) - { - this.AddPawnAbility(TorannMagicDefOf.TM_SoulBond); - } - } - if (flag52) - { - //Log.Message("Loading Geomancer Abilities"); - MagicPower mpG = this.MagicData.MagicPowersG.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_Stoneskin); - if (mpG.learned == true) - { - this.AddPawnAbility(TorannMagicDefOf.TM_Stoneskin); - } - mpG = this.MagicData.MagicPowersG.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_EarthSprites); - if (mpG.learned == true) - { - this.AddPawnAbility(TorannMagicDefOf.TM_EarthSprites); - } - mpG = this.MagicData.MagicPowersG.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_EarthernHammer); - if (mpG.learned == true) - { - this.AddPawnAbility(TorannMagicDefOf.TM_EarthernHammer); - } - mpG = this.MagicData.MagicPowersG.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_Sentinel); - if (mpG.learned == true) - { - this.AddPawnAbility(TorannMagicDefOf.TM_Sentinel); - } - } - if (flag53) - { - //Log.Message("Loading Geomancer Abilities"); - MagicPower mpT = this.MagicData.MagicPowersT.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_TechnoTurret); - if (mpT.learned == true) - { - this.AddPawnAbility(TorannMagicDefOf.TM_TechnoTurret); - } - mpT = this.MagicData.MagicPowersT.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_TechnoWeapon); - if (mpT.learned == true) - { - //nano weapon applies only when equipping a new weapon - this.AddPawnAbility(TorannMagicDefOf.TM_TechnoWeapon); - this.AddPawnAbility(TorannMagicDefOf.TM_NanoStimulant); - } - mpT = this.MagicData.MagicPowersT.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_TechnoShield); - if (mpT.learned == true) - { - this.AddPawnAbility(TorannMagicDefOf.TM_TechnoShield); - } - mpT = this.MagicData.MagicPowersT.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_Sabotage); - if (mpT.learned == true) - { - this.AddPawnAbility(TorannMagicDefOf.TM_Sabotage); - } - mpT = this.MagicData.MagicPowersT.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_Overdrive); - if (mpT.learned == true) - { - this.AddPawnAbility(TorannMagicDefOf.TM_Overdrive); - } - } - if (flag54) - { - //Log.Message("Loading BloodMage Abilities"); - MagicPower mpBM = this.MagicData.MagicPowersBM.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_BloodGift); - if (mpBM.learned == true) - { - this.AddPawnAbility(TorannMagicDefOf.TM_BloodGift); - } - mpBM = this.MagicData.MagicPowersBM.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_IgniteBlood); - if (mpBM.learned == true) - { - this.AddPawnAbility(TorannMagicDefOf.TM_IgniteBlood); - } - mpBM = this.MagicData.MagicPowersBM.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_BloodForBlood); - if (mpBM.learned == true) - { - this.AddPawnAbility(TorannMagicDefOf.TM_BloodForBlood); - } - mpBM = this.MagicData.MagicPowersBM.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_BloodShield); - if (mpBM.learned == true) - { - this.AddPawnAbility(TorannMagicDefOf.TM_BloodShield); - } - } - if (flag55) - { - //Log.Message("Loading Enchanter Abilities"); - MagicPower mpE = this.MagicData.MagicPowersE.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_EnchantedBody); - if (mpE.learned == true) - { - this.AddPawnAbility(TorannMagicDefOf.TM_EnchantedBody); - this.spell_EnchantedAura = true; - } - mpE = this.MagicData.MagicPowersE.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_Transmutate); - if (mpE.learned == true) - { - this.AddPawnAbility(TorannMagicDefOf.TM_Transmutate); - } - mpE = this.MagicData.MagicPowersE.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_EnchanterStone); - if (mpE.learned == true) - { - this.AddPawnAbility(TorannMagicDefOf.TM_EnchanterStone); - } - mpE = this.MagicData.MagicPowersE.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_EnchantWeapon); - if (mpE.learned == true) - { - this.AddPawnAbility(TorannMagicDefOf.TM_EnchantWeapon); - } - } - if (flag56) - { - //Log.Message("Loading Chronomancer Abilities"); - MagicPower mpC = this.MagicData.MagicPowersC.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_Prediction); - if (mpC.learned == true) - { - this.AddPawnAbility(TorannMagicDefOf.TM_Prediction); - } - mpC = this.MagicData.MagicPowersC.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_AlterFate); - if (mpC.learned == true) - { - this.AddPawnAbility(TorannMagicDefOf.TM_AlterFate); - } - mpC = this.MagicData.MagicPowersC.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_AccelerateTime); - if (mpC.learned == true) - { - this.AddPawnAbility(TorannMagicDefOf.TM_AccelerateTime); - } - mpC = this.MagicData.MagicPowersC.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_ReverseTime); - if (mpC.learned == true) - { - this.AddPawnAbility(TorannMagicDefOf.TM_ReverseTime); - } - } - if (flagCM) + for (int i = 0; i < abilityUser.story.traits.allTraits.Count; i++) + { + TraitDef traitDef = abilityUser.story.traits.allTraits[i].def; + if (traitDef == TorannMagicDefOf.InnerFire) loadMagicPowers(MagicData.MagicPowersIF); + else if (traitDef == TorannMagicDefOf.HeartOfFrost) loadMagicPowers(MagicData.MagicPowersHoF); + else if (traitDef == TorannMagicDefOf.StormBorn) loadMagicPowers(MagicData.MagicPowersSB); + else if (traitDef == TorannMagicDefOf.Arcanist) loadMagicPowers(MagicData.MagicPowersA); + else if (traitDef == TorannMagicDefOf.Paladin) loadMagicPowers(MagicData.MagicPowersP); + else if (traitDef == TorannMagicDefOf.Summoner) loadMagicPowers(MagicData.MagicPowersS); + else if (traitDef == TorannMagicDefOf.Druid) loadMagicPowers(MagicData.MagicPowersD); + else if (traitDef == TorannMagicDefOf.Necromancer || traitDef == TorannMagicDefOf.Lich) loadMagicPowers(MagicData.MagicPowersN); + else if (traitDef == TorannMagicDefOf.Priest) loadMagicPowers(MagicData.MagicPowersPR); + else if (traitDef == TorannMagicDefOf.TM_Bard) loadMagicPowers(MagicData.MagicPowersB); + else if (traitDef == TorannMagicDefOf.Succubus) loadMagicPowers(MagicData.MagicPowersSD); + else if (traitDef == TorannMagicDefOf.Warlock) loadMagicPowers(MagicData.MagicPowersWD); + else if (traitDef == TorannMagicDefOf.Geomancer) loadMagicPowers(MagicData.MagicPowersG); + else if (traitDef == TorannMagicDefOf.Technomancer) loadMagicPowers(MagicData.MagicPowersT); + else if (traitDef == TorannMagicDefOf.BloodMage) loadMagicPowers(MagicData.MagicPowersBM); + else if (traitDef == TorannMagicDefOf.Enchanter) loadMagicPowers(MagicData.MagicPowersE); + else if (traitDef == TorannMagicDefOf.Chronomancer) loadMagicPowers(MagicData.MagicPowersC); + } + if (abilityUser.story.traits.HasTrait(TorannMagicDefOf.ChaosMage)) { //Log.Message("Loading Chaos Mage Abilities"); MagicPower mpCM = this.MagicData.MagicPowersCM.FirstOrDefault((MagicPower x) => x.abilityDef == TorannMagicDefOf.TM_ChaosTradition); @@ -8830,7 +7746,6 @@ public override void PostExposeData() { this.AddPawnAbility(TorannMagicDefOf.TM_ChaosTradition); this.chaosPowers = new List(); - this.chaosPowers.Clear(); List learnedList = new List(); learnedList.Clear(); for (int i = 0; i < this.MagicData.AllMagicPowersForChaosMage.Count; i++)