public void AddPsionicArms() { Body SourceBody = ParentObject.GetPart("Body") as Body; if (SourceBody != null) { BodyPart ReadyBody = SourceBody.GetBody(); BodyPart AttatchArmTemplate = ReadyBody.AddPartAt("Psionic-Arm", 2, null, null, null, null, ManagerID + ArmCounterStrings(), 17, null, null, null, null, null, null, null, null, null, null, null, "Arm", new string[4] { "Hands", "Feet", "Roots", "Thrown Weapon" }); AttatchArmTemplate.AddPart("Psionic-Hand", 2, null, "Psionic-Hands", null, null, ManagerID + ArmCounterStrings(), 17); ReadyBody.AddPartAt(AttatchArmTemplate, "Psionic-Arm", 1, null, null, null, null, ManagerID + ArmCounterStrings(), 17).AddPart("Psionic-Hand", 1, null, "Psionic-Hands", null, null, ManagerID + ArmCounterStrings(), 17); ReadyBody.AddPartAt("Psionic-Hands", 0, null, null, "Psionic-Hands", null, ManagerID + ArmCounterStrings(), 17, null, null, null, null, null, null, null, null, null, null, null, "Hands", new string[3] { "Feet", "Roots", "Thrown Weapon" }); ReadyBody.AddPartAt("Missile Weapon", Laterality.RIGHT, null, null, "Psionic-Hands", null, ManagerID + ArmCounterStrings(), Category: 17, null, null, null, null, null, null, null, null, null, null, null, "Hands", new string[1] { "Missile Weapon" }); ReadyBody.AddPartAt("Missile Weapon", Laterality.LEFT, null, null, "Psionic-Hands", null, ManagerID + ArmCounterStrings(), Category: 17, null, null, null, null, null, null, null, null, null, null, null, "Hands", new string[1] { "Missile Weapon" }); } }
public override void ApplyModification(GameObject Object) { Body partBody = Object.GetPart <Body>(); if (partBody != null) { BodyPart body2 = partBody.GetBody(); BodyPart firstAttachedPart = body2.GetFirstAttachedPart("Back", 0, partBody, true); if (firstAttachedPart != null) { body2.AddPartAt(firstAttachedPart, "Arm", 2).AddPart("Hand", 2, "MetalFist", "Hands"); body2.AddPartAt(firstAttachedPart, "Arm", 1).AddPart("Hand", 1, "MetalFist", "Hands"); body2.AddPartAt(firstAttachedPart, "Missile Weapon", 2); body2.AddPartAt(firstAttachedPart, "Missile Weapon", 1); body2.AddPartAt(firstAttachedPart, "Thrown Weapon"); body2.AddPartAt(firstAttachedPart, "Hands", 0, null, null, "Hands"); } else { body2.AddPart("Arm", 2).AddPart("Hand", 2, "MetalFist", "Hands"); body2.AddPart("Arm", 1).AddPart("Hand", 1, "MetalFist", "Hands"); body2.AddPart("Missile Weapon", 2); body2.AddPart("Missile Weapon", 1); body2.AddPart("Thrown Weapon"); body2.AddPart("Hands", 0, null, null, "Hands"); } } }
public void EvolveSludge() { if (this.newLiquid != (byte)99) { Mutations part1 = this.ParentObject.GetPart("Mutations") as Mutations; if (!part1.HasMutation("LiquidSpitter")) { part1.AddMutation((BaseMutation) new LiquidSpitter(LiquidVolume.ComponentLiquidTypes[this.newLiquid].GetName((LiquidVolume)null).Substring(2)), 1); } LiquidSpitter mutation = part1.GetMutation("LiquidSpitter") as LiquidSpitter; mutation.extraLiquids.Add(this.newLiquid); if (mutation.extraLiquids.Count == 1 && this.newLiquid == (byte)18) { mutation.extraLiquids.Add((byte)0); } this.ComponentLiquids.Add(this.newLiquid); string displayName = this.ParentObject.DisplayName; this.ParentObject.DisplayName = string.Empty; foreach (byte componentLiquid in this.ComponentLiquids) { GameObject parentObject = this.ParentObject; parentObject.DisplayName = parentObject.DisplayName + LiquidVolume.ComponentLiquidTypes[componentLiquid].GetAdjective((LiquidVolume)null) + "&y "; } GameObject parentObject1 = this.ParentObject; parentObject1.DisplayName = parentObject1.DisplayName + Evolution.GetPrefix(this.ComponentLiquids.Count) + "sludge"; if (this.ComponentLiquids.Count >= 5) { JournalAPI.AddAccomplishment("You witnessed the rare formation of " + Grammar.A(Evolution.GetPrefix(this.ComponentLiquids.Count) + "sludge", false) + ".", "general", (string)null, -1L); } MessageQueue.AddPlayerMessage("The " + LiquidVolume.ComponentLiquidTypes[this.newLiquid].GetName((LiquidVolume)null) + " &ycatalyzes " + this.ParentObject.the + displayName + " into " + this.ParentObject.a + this.ParentObject.DisplayName + "."); bool flag = false; Body part2 = this.ParentObject.GetPart <Body>(); foreach (BodyPart bodyPart in part2.GetPart("Hand")) { if (bodyPart.Equipped == null) { flag = true; break; } } if (!flag) { this.totalHands += 2; BodyPart body = part2.GetBody(); BodyPart InsertAfter = body.AddPartAt("Pseudopod", 0, (string)null, (string)null, (string)null, (string)null, new int?(), new int?(), new int?(), new bool?(), new bool?(), new bool?(), new bool?(), new bool?(), "Hand", "Missile Weapon"); body.AddPartAt(InsertAfter, "Pseudopod", 0, (string)null, (string)null, (string)null, (string)null, new int?(), new int?(), new int?(), new bool?(), new bool?(), new bool?(), new bool?(), new bool?()); } if (this.newLiquid == (byte)0) { this.ParentObject.TakeObject("Watery Pseudopod", false, new int?(0)); } else if (this.newLiquid == (byte)1) { this.ParentObject.TakeObject("Salty Pseudopod", false, new int?(0)); } else if (this.newLiquid == (byte)2) { this.ParentObject.TakeObject("Tarry Pseudopod", false, new int?(0)); } else if (this.newLiquid == (byte)3) { this.ParentObject.TakeObject("Magmatic Pseudopod", false, new int?(0)); this.ParentObject.Statistics["HeatResistance"].BaseValue += 100; this.ParentObject.pPhysics.Temperature = 1000; } else if (this.newLiquid == (byte)4) { this.ParentObject.TakeObject("Slimy Pseudopod", false, new int?(0)); this.ParentObject.AddPart <DisarmOnHit>(new DisarmOnHit(100), true); } else if (this.newLiquid == (byte)5) { this.ParentObject.TakeObject("Oily Pseudopod", false, new int?(0)); this.ParentObject.AddPart <DisarmOnHit>(new DisarmOnHit(100), true); } else if (this.newLiquid == (byte)6) { this.ParentObject.TakeObject("Bloody Pseudopod", false, new int?(0)); this.ParentObject.AddPart <LifeDrainOnHit>(new LifeDrainOnHit("15-20", 100), true); } else if (this.newLiquid == (byte)7) { this.ParentObject.TakeObject("Acidic Pseudopod", false, new int?(0)); this.ParentObject.Statistics["AcidResistance"].BaseValue += 100; } else if (this.newLiquid == (byte)8) { this.ParentObject.TakeObject("Honeyed Pseudopod", false, new int?(0)); } else if (this.newLiquid == (byte)9) { this.ParentObject.TakeObject("Lush Pseudopod", false, new int?(0)); } else if (this.newLiquid == (byte)10) { this.ParentObject.TakeObject("Sludgy Pseudopod2", false, new int?(0)); } else if (this.newLiquid == (byte)11) { this.ParentObject.TakeObject("Gooey Pseudopod2", false, new int?(0)); } else if (this.newLiquid == (byte)12) { this.ParentObject.TakeObject("Putrid Pseudopod", false, new int?(0)); } else if (this.newLiquid == (byte)13) { this.ParentObject.TakeObject("Unctuous Pseudopod", false, new int?(0)); this.ParentObject.AddPart <DisarmOnHit>(new DisarmOnHit(100), true); } else if (this.newLiquid == (byte)14) { this.ParentObject.TakeObject("Oozing Pseudopod2", false, new int?(0)); } else if (this.newLiquid == (byte)15) { this.ParentObject.TakeObject("Spiced Pseudopod", false, new int?(0)); } else if (this.newLiquid == (byte)16) { this.ParentObject.TakeObject("Luminous Pseudopod2", false, new int?(0)); this.ParentObject.AddPart <LightSource>(new LightSource(), true); (this.ParentObject.GetPart("LightSource") as LightSource).Radius = 6; this.ParentObject.Statistics["ColdResistance"].BaseValue += 100; } else if (this.newLiquid == (byte)17) { this.ParentObject.TakeObject("Neutronic Pseudopod", false, new int?(0)); } else if (this.newLiquid == (byte)18) { this.ParentObject.TakeObject("Homogenized Pseudopod", false, new int?(0)); this.ParentObject.AddPart <CloneOnHit>(new CloneOnHit(), true); } else if (this.newLiquid == (byte)20) { this.ParentObject.TakeObject("Waxen Pseudopod", false, new int?(0)); } else if (this.newLiquid == (byte)21) { this.ParentObject.TakeObject("Inky Pseudopod", false, new int?(0)); this.ParentObject.AddPart <DisarmOnHit>(new DisarmOnHit(100), true); } else if (this.newLiquid == (byte)22) { this.ParentObject.TakeObject("Sugary Pseudopod", false, new int?(0)); } this.ParentObject.pBrain.PerformReequip(false); this.newLiquid = (byte)99; } this.isCatalyzing = false; if (this.ComponentLiquids.Count != 1) { return; } MessageQueue.AddPlayerMessage("The reacting liquids congeal into a " + this.ParentObject.ShortDisplayName + "."); this.C.AddObject(this.ParentObject); XRLCore.Core.Game.ActionManager.AddActiveObject(this.ParentObject); }