public override void DoEffect(Pawn user) { ThingDef tempPod = null; IntVec3 currentPos = parent.PositionHeld; Map map = parent.Map; if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.Gladiator)) { tempPod = ThingDef.Named("BookOfGladiator"); this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.TM_Sniper)) { tempPod = ThingDef.Named("BookOfSniper"); this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.Bladedancer)) { tempPod = ThingDef.Named("BookOfBladedancer"); this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.Ranger)) { tempPod = ThingDef.Named("BookOfRanger"); this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.Faceless)) { tempPod = ThingDef.Named("BookOfFaceless"); this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.TM_Psionic)) { tempPod = ThingDef.Named("BookOfPsionic"); this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.DeathKnight)) { tempPod = ThingDef.Named("BookOfDeathKnight"); this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.PhysicalProdigy)) { int attempt = 0; ModOptions.SettingsRef settingsRef = new ModOptions.SettingsRef(); RetryWrite :; if (attempt < 20) { float rnd = Rand.Range(0, 7); if (rnd < 1) { if (settingsRef.Gladiator) { tempPod = ThingDef.Named("BookOfGladiator"); } else { attempt++; goto RetryWrite; } } else if (rnd < 2) { if (settingsRef.Sniper) { tempPod = ThingDef.Named("BookOfSniper"); } else { attempt++; goto RetryWrite; } } else if (rnd < 3) { if (settingsRef.Bladedancer) { tempPod = ThingDef.Named("BookOfBladedancer"); } else { attempt++; goto RetryWrite; } } else if (rnd < 4) { if (settingsRef.Ranger) { tempPod = ThingDef.Named("BookOfRanger"); } else { attempt++; goto RetryWrite; } } else if (rnd < 5) { if (settingsRef.Psionic) { tempPod = ThingDef.Named("BookOfPsionic"); } else { attempt++; goto RetryWrite; } } else if (rnd < 6) { if (settingsRef.DeathKnight) { tempPod = ThingDef.Named("BookOfDeathKnight"); } else { attempt++; goto RetryWrite; } } else { if (settingsRef.Faceless) { tempPod = ThingDef.Named("BookOfFaceless"); } else { attempt++; goto RetryWrite; } } this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else { Messages.Message("Unable to find a valid combat book type to write - ending attempt.", MessageTypeDefOf.RejectInput); } } else { Messages.Message("NotPhyAdeptPawn".Translate(), MessageTypeDefOf.RejectInput); } if (tempPod != null) { SihvSpawnThings.SpawnThingDefOfCountAt(tempPod, 1, new TargetInfo(currentPos, map)); } }
public override void DoEffect(Pawn user) { ThingDef tempPod = null; IntVec3 currentPos = parent.PositionHeld; Map map = parent.Map; if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.InnerFire)) { tempPod = ThingDef.Named("Torn_BookOfInnerFire"); this.parent.Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.HeartOfFrost)) { tempPod = ThingDef.Named("Torn_BookOfHeartOfFrost"); this.parent.Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.StormBorn)) { tempPod = ThingDef.Named("Torn_BookOfStormBorn"); this.parent.Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.Arcanist)) { tempPod = ThingDef.Named("Torn_BookOfArcanist"); this.parent.Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.Paladin)) { tempPod = ThingDef.Named("Torn_BookOfValiant"); this.parent.Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.Summoner)) { tempPod = ThingDef.Named("Torn_BookOfSummoner"); this.parent.Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.Druid)) { tempPod = ThingDef.Named("Torn_BookOfNature"); this.parent.Destroy(DestroyMode.Vanish); } else if (parent.def != null && (user.story.traits.HasTrait(TorannMagicDefOf.Necromancer) || user.story.traits.HasTrait(TorannMagicDefOf.Lich))) { tempPod = ThingDef.Named("Torn_BookOfUndead"); this.parent.Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.Priest)) { tempPod = ThingDef.Named("Torn_BookOfPriest"); this.parent.Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.TM_Bard)) { tempPod = ThingDef.Named("Torn_BookOfBard"); this.parent.Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.Gifted)) { tempPod = ThingDef.Named("BookOfQuestion"); this.parent.Destroy(DestroyMode.Vanish); } else { Messages.Message("NotGiftedPawn".Translate(new object[] { user.LabelShort }), MessageTypeDefOf.RejectInput); } if (tempPod != null) { SihvSpawnThings.SpawnThingDefOfCountAt(tempPod, 1, new TargetInfo(currentPos, map)); } }
public override void DoEffect(Pawn user) { ThingDef tempPod = null; IntVec3 currentPos = parent.PositionHeld; Map map = parent.Map; if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.InnerFire)) { tempPod = ThingDef.Named("BookOfInnerFire"); this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.HeartOfFrost)) { tempPod = ThingDef.Named("BookOfHeartOfFrost"); this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.StormBorn)) { tempPod = ThingDef.Named("BookOfStormBorn"); this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.Arcanist)) { tempPod = ThingDef.Named("BookOfArcanist"); this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.Paladin)) { tempPod = ThingDef.Named("BookOfValiant"); this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.Summoner)) { tempPod = ThingDef.Named("BookOfSummoner"); this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.Druid)) { tempPod = ThingDef.Named("BookOfDruid"); this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else if (parent.def != null && (user.story.traits.HasTrait(TorannMagicDefOf.Necromancer) || user.story.traits.HasTrait(TorannMagicDefOf.Lich))) { tempPod = ThingDef.Named("BookOfNecromancer"); this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.Priest)) { tempPod = ThingDef.Named("BookOfPriest"); this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.TM_Bard)) { tempPod = ThingDef.Named("BookOfBard"); this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else if (parent.def != null && (user.story.traits.HasTrait(TorannMagicDefOf.Succubus) || user.story.traits.HasTrait(TorannMagicDefOf.Warlock))) { tempPod = ThingDef.Named("BookOfDemons"); this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else if (parent.def != null && (user.story.traits.HasTrait(TorannMagicDefOf.Geomancer))) { tempPod = TorannMagicDefOf.BookOfEarth; this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else if (parent.def != null && (user.story.traits.HasTrait(TorannMagicDefOf.Technomancer))) { tempPod = TorannMagicDefOf.BookOfMagitech; this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else if (parent.def != null && (user.story.traits.HasTrait(TorannMagicDefOf.BloodMage))) { tempPod = TorannMagicDefOf.BookOfHemomancy; this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else if (parent.def != null && (user.story.traits.HasTrait(TorannMagicDefOf.Enchanter))) { tempPod = TorannMagicDefOf.BookOfEnchanter; this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else if (parent.def != null && (user.story.traits.HasTrait(TorannMagicDefOf.Chronomancer))) { tempPod = TorannMagicDefOf.BookOfChronomancer; this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.Gifted)) { tempPod = TM_Data.MageBookList().RandomElement(); this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else { Messages.Message("NotGiftedPawn".Translate( user.LabelShort ), MessageTypeDefOf.RejectInput); } if (tempPod != null) { SihvSpawnThings.SpawnThingDefOfCountAt(tempPod, 1, new TargetInfo(currentPos, map)); } }
public override void DoEffect(Pawn user) { ThingDef tempPod = null; IntVec3 currentPos = parent.PositionHeld; Map map = parent.Map; if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.Gladiator)) { tempPod = ThingDef.Named("BookOfGladiator"); this.parent.Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.TM_Sniper)) { tempPod = ThingDef.Named("BookOfSniper"); this.parent.Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.Bladedancer)) { tempPod = ThingDef.Named("BookOfBladedancer"); this.parent.Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.Ranger)) { tempPod = ThingDef.Named("BookOfRanger"); this.parent.Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.Faceless)) { tempPod = ThingDef.Named("BookOfFaceless"); this.parent.Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.TM_Psionic)) { tempPod = ThingDef.Named("BookOfPsionic"); this.parent.Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.PhysicalProdigy)) { float rnd = Rand.Range(0, 6); if (rnd < 1) { tempPod = ThingDef.Named("BookOfGladiator"); } else if (rnd < 2) { tempPod = ThingDef.Named("BookOfSniper"); } else if (rnd < 3) { tempPod = ThingDef.Named("BookOfBladedancer"); } else if (rnd < 4) { tempPod = ThingDef.Named("BookOfRanger"); } else if (rnd < 5) { tempPod = ThingDef.Named("BookOfPsionic"); } else { tempPod = ThingDef.Named("BookOfFaceless"); } this.parent.Destroy(DestroyMode.Vanish); } else { Messages.Message("NotPhyAdeptPawn".Translate(), MessageTypeDefOf.RejectInput); } if (tempPod != null) { SihvSpawnThings.SpawnThingDefOfCountAt(tempPod, 1, new TargetInfo(currentPos, map)); } }
public override void DoEffect(Pawn user) { ThingDef tempPod = null; IntVec3 currentPos = parent.PositionHeld; Map map = parent.Map; if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.Gladiator)) { tempPod = ThingDef.Named("BookOfGladiator"); this.parent.Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.TM_Sniper)) { tempPod = ThingDef.Named("BookOfSniper"); this.parent.Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.Bladedancer)) { tempPod = ThingDef.Named("BookOfBladedancer"); this.parent.Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.Ranger)) { tempPod = ThingDef.Named("BookOfRanger"); this.parent.Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.Faceless)) { tempPod = ThingDef.Named("BookOfFaceless"); this.parent.Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.PhysicalProdigy)) { int rnd = Mathf.RoundToInt(Rand.Range(0, 5)); switch (rnd) { case 1: { tempPod = ThingDef.Named("BookOfGladiator"); break; } case 2: { tempPod = ThingDef.Named("BookOfSniper"); break; } case 3: { tempPod = ThingDef.Named("BookOfBladedancer"); break; } case 4: { tempPod = ThingDef.Named("BookOfRanger"); break; } case 5: { tempPod = ThingDef.Named("BookOfFaceless"); break; } } this.parent.Destroy(DestroyMode.Vanish); } else { Messages.Message("NotPhyAdeptPawn".Translate(), MessageTypeDefOf.RejectInput); } if (tempPod != null) { SihvSpawnThings.SpawnThingDefOfCountAt(tempPod, 1, new TargetInfo(currentPos, map)); } }
public override void DoEffect(Pawn user) { ThingDef tempPod = null; IntVec3 currentPos = parent.PositionHeld; Map map = parent.Map; List <TMDefs.TM_CustomClass> cFighters = TM_ClassUtility.CustomFighterClasses; CompAbilityUserMight comp = user.TryGetComp <CompAbilityUserMight>(); if (parent.def != null && comp != null && comp.customClass != null) { tempPod = comp.customClass.fullScript; this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.Gladiator)) { tempPod = ThingDef.Named("BookOfGladiator"); this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.TM_Sniper)) { tempPod = ThingDef.Named("BookOfSniper"); this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.Bladedancer)) { tempPod = ThingDef.Named("BookOfBladedancer"); this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.Ranger)) { tempPod = ThingDef.Named("BookOfRanger"); this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.Faceless)) { tempPod = ThingDef.Named("BookOfFaceless"); this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.TM_Psionic)) { tempPod = ThingDef.Named("BookOfPsionic"); this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.DeathKnight)) { tempPod = ThingDef.Named("BookOfDeathKnight"); this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.TM_Monk)) { tempPod = ThingDef.Named("BookOfMonk"); this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.TM_Commander)) { tempPod = ThingDef.Named("BookOfCommander"); this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else if (parent.def != null && (user.story.traits.HasTrait(TorannMagicDefOf.PhysicalProdigy) || user.story.traits.HasTrait(TorannMagicDefOf.TM_Wayfarer) || user.story.traits.HasTrait(TorannMagicDefOf.TM_SuperSoldier))) { int attempt = 0; ModOptions.SettingsRef settingsRef = new ModOptions.SettingsRef(); RetryWrite :; if (attempt < 20) { float rnd = Rand.Range(0, 9 + cFighters.Count); if (rnd < 1) { if (settingsRef.Gladiator) { tempPod = ThingDef.Named("BookOfGladiator"); } else { attempt++; goto RetryWrite; } } else if (rnd < 2) { if (settingsRef.Sniper) { tempPod = ThingDef.Named("BookOfSniper"); } else { attempt++; goto RetryWrite; } } else if (rnd < 3) { if (settingsRef.Bladedancer) { tempPod = ThingDef.Named("BookOfBladedancer"); } else { attempt++; goto RetryWrite; } } else if (rnd < 4) { if (settingsRef.Ranger) { tempPod = ThingDef.Named("BookOfRanger"); } else { attempt++; goto RetryWrite; } } else if (rnd < 5) { if (settingsRef.Psionic) { tempPod = ThingDef.Named("BookOfPsionic"); } else { attempt++; goto RetryWrite; } } else if (rnd < 6) { if (settingsRef.DeathKnight) { tempPod = ThingDef.Named("BookOfDeathKnight"); } else { attempt++; goto RetryWrite; } } else if (rnd < 7) { if (settingsRef.Monk) { tempPod = TorannMagicDefOf.BookOfMonk; } else { attempt++; goto RetryWrite; } } else if (rnd < 8) { if (settingsRef.Commander) { tempPod = TorannMagicDefOf.BookOfCommander; } else { attempt++; goto RetryWrite; } } else if (rnd < 9) { if (settingsRef.Faceless) { tempPod = ThingDef.Named("BookOfFaceless"); } else { attempt++; goto RetryWrite; } } else { if (cFighters.Count > 0) { tempPod = TM_ClassUtility.GetRandomCustomFighter().fullScript; } else { attempt++; goto RetryWrite; } } this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else { Messages.Message("Unable to find a valid combat book type to write - ending attempt.", MessageTypeDefOf.RejectInput); } } else { Messages.Message("NotPhyAdeptPawn".Translate(), MessageTypeDefOf.RejectInput); } if (tempPod != null) { SihvSpawnThings.SpawnThingDefOfCountAt(tempPod, 1, new TargetInfo(currentPos, map)); } }
public override void DoEffect(Pawn user) { ThingDef tempPod = null; IntVec3 currentPos = parent.PositionHeld; Map map = parent.Map; CompAbilityUserMagic comp = user.TryGetComp <CompAbilityUserMagic>(); if (parent.def != null && comp != null && comp.customClass != null) { if (comp.customClass.tornScript != null) { tempPod = comp.customClass.tornScript; } else { tempPod = comp.customClass.fullScript; } this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.InnerFire)) { tempPod = ThingDef.Named("Torn_BookOfInnerFire"); this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.HeartOfFrost)) { tempPod = ThingDef.Named("Torn_BookOfHeartOfFrost"); this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.StormBorn)) { tempPod = ThingDef.Named("Torn_BookOfStormBorn"); this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.Arcanist)) { tempPod = ThingDef.Named("Torn_BookOfArcanist"); this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.Paladin)) { tempPod = ThingDef.Named("Torn_BookOfValiant"); this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.Summoner)) { tempPod = ThingDef.Named("Torn_BookOfSummoner"); this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.Druid)) { tempPod = ThingDef.Named("Torn_BookOfNature"); this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else if (parent.def != null && (user.story.traits.HasTrait(TorannMagicDefOf.Necromancer) || user.story.traits.HasTrait(TorannMagicDefOf.Lich))) { tempPod = ThingDef.Named("Torn_BookOfUndead"); this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.Priest)) { tempPod = ThingDef.Named("Torn_BookOfPriest"); this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.TM_Bard)) { tempPod = ThingDef.Named("Torn_BookOfBard"); this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else if (parent.def != null && (user.story.traits.HasTrait(TorannMagicDefOf.Succubus) || user.story.traits.HasTrait(TorannMagicDefOf.Warlock))) { tempPod = ThingDef.Named("Torn_BookOfDemons"); this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.Geomancer)) { tempPod = ThingDef.Named("Torn_BookOfEarth"); this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.Technomancer)) { tempPod = TorannMagicDefOf.Torn_BookOfMagitech; this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.BloodMage)) { tempPod = TorannMagicDefOf.Torn_BookOfHemomancy; this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.Enchanter)) { tempPod = TorannMagicDefOf.Torn_BookOfEnchanter; this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.Chronomancer)) { tempPod = TorannMagicDefOf.Torn_BookOfChronomancer; this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.ChaosMage)) { tempPod = TorannMagicDefOf.Torn_BookOfChaos; this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else if (parent.def != null && (user.story.traits.HasTrait(TorannMagicDefOf.TM_Gifted) || user.story.traits.HasTrait(TorannMagicDefOf.TM_Wanderer))) { tempPod = ThingDef.Named("BookOfQuestion"); this.parent.SplitOff(1).Destroy(DestroyMode.Vanish); } else { Messages.Message("NotGiftedPawn".Translate( user.LabelShort ), MessageTypeDefOf.RejectInput); } if (tempPod != null) { SihvSpawnThings.SpawnThingDefOfCountAt(tempPod, 1, new TargetInfo(currentPos, map)); } }