Example #1
0
        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.Destroy(DestroyMode.Vanish);
            }
            else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.HeartOfFrost))
            {
                tempPod = ThingDef.Named("BookOfHeartOfFrost");
                this.parent.Destroy(DestroyMode.Vanish);
            }
            else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.StormBorn))
            {
                tempPod = ThingDef.Named("BookOfStormBorn");
                this.parent.Destroy(DestroyMode.Vanish);
            }
            else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.Arcanist))
            {
                tempPod = ThingDef.Named("BookOfArcanist");
                this.parent.Destroy(DestroyMode.Vanish);
            }
            else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.Paladin))
            {
                tempPod = ThingDef.Named("BookOfValiant");
                this.parent.Destroy(DestroyMode.Vanish);
            }
            else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.Summoner))
            {
                tempPod = ThingDef.Named("BookOfSummoner");
                this.parent.Destroy(DestroyMode.Vanish);
            }
            else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.Druid))
            {
                tempPod = ThingDef.Named("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("BookOfNecromancer");
                this.parent.Destroy(DestroyMode.Vanish);
            }
            else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.Priest))
            {
                tempPod = ThingDef.Named("BookOfPriest");
                this.parent.Destroy(DestroyMode.Vanish);
            }
            else if (parent.def != null && user.story.traits.HasTrait(TorannMagicDefOf.TM_Bard))
            {
                tempPod = ThingDef.Named("BookOfBard");
                this.parent.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.Destroy(DestroyMode.Vanish);
            }
            else if (parent.def != null && (user.story.traits.HasTrait(TorannMagicDefOf.Geomancer)))
            {
                tempPod = ThingDef.Named("BookOfEarth");
                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));
            }
        }
Example #2
0
        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));
            }
        }
Example #3
0
        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));
            }
        }