// Token: 0x06002ADC RID: 10972 RVA: 0x001433C0 File Offset: 0x001417C0 public override void DoEffect(Pawn user) { bool selected = Find.Selector.SelectedObjects.Contains(user); // base.DoEffect(user); Hediff hediff; Comp_Yautja _Yautja = user.TryGetComp <Comp_Yautja>(); Hediff blooded = user.health.hediffSet.GetFirstHediffOfDef(YautjaDefOf.RRY_Hediff_BloodedUM); BodyPartRecord part = user.health.hediffSet.GetFirstHediffOfDef(YautjaDefOf.RRY_Hediff_BloodedUM).Part; HediffDef marked = _Yautja.MarkedhediffDef; if (YautjaBloodedUtility.Marked(user, out hediff)) { user.health.RemoveHediff(hediff); } user.health.RemoveHediff(blooded); user.health.AddHediff(marked, part); ThingDef thingDef = null; foreach (var item in corpse.InnerPawn.health.hediffSet.GetNotMissingParts()) { if (Rand.Chance(corpse.InnerPawn.health.hediffSet.GetPartHealth(item) / 3) && item.def == XenomorphDefOf.RRY_Xeno_TailSpike && !corpse.InnerPawn.health.hediffSet.PartIsMissing(item)) { partRecord = item; thingDef = XenomorphDefOf.RRY_Xenomorph_TailSpike; corpse.InnerPawn.health.AddHediff(HediffMaker.MakeHediff(HediffDefOf.MissingBodyPart, corpse.InnerPawn, this.partRecord)); GenSpawn.Spawn(ThingMaker.MakeThing(thingDef), user.Position, user.Map); } if (Rand.Chance(corpse.InnerPawn.health.hediffSet.GetPartHealth(item) / 3) && item.def == XenomorphDefOf.RRY_Xeno_Shell && !corpse.InnerPawn.health.hediffSet.PartIsMissing(item)) { partRecord = item; thingDef = XenomorphDefOf.RRY_Xenomorph_HeadShell; corpse.InnerPawn.health.AddHediff(HediffMaker.MakeHediff(HediffDefOf.MissingBodyPart, corpse.InnerPawn, this.partRecord)); GenSpawn.Spawn(ThingMaker.MakeThing(thingDef), user.Position, user.Map); } } if (user.story.adulthood.identifier == null || user.story.adulthood.identifier == "Yautja_YoungBlood") { AlienRace.BackstoryDef backstoryDef = DefDatabase <AlienRace.BackstoryDef> .GetNamed("Yautja_Blooded"); #if DEBUG if (selected) { Log.Message(string.Format("changing {0}", user.story.adulthood.identifier)); } #endif user.story.adulthood = backstoryDef.backstory; #if DEBUG if (selected) { Log.Message(string.Format("to {0}", user.story.adulthood.identifier)); } #endif } }
public override void DoEffect(Pawn user) { bool selected = Find.Selector.SelectedObjects.Contains(user); // base.DoEffect(user); Comp_Yautja _Yautja = user.TryGetComp <Comp_Yautja>(); Hediff blooded = user.health.hediffSet.GetFirstHediffOfDef(YautjaDefOf.RRY_Hediff_BloodedUM); BodyPartRecord part = user.health.hediffSet.GetFirstHediffOfDef(YautjaDefOf.RRY_Hediff_BloodedUM).Part; HediffDef markedDef = _Yautja.MarkedhediffDef; if (YautjaBloodedUtility.Marked(user, out Hediff hediff)) { user.health.RemoveHediff(hediff); } user.health.RemoveHediff(blooded); Hediff marked = HediffMaker.MakeHediff(markedDef, user, part);// user.health.hediffSet.GetFirstHediffOfDef(markedDef); HediffComp_MarkedYautja marked_Yautja = marked.TryGetComp <HediffComp_MarkedYautja>(); corpse = (Corpse)this.parent; marked_Yautja.BodySize = corpse.InnerPawn.BodySize; marked_Yautja.combatPower = corpse.InnerPawn.kindDef.combatPower; marked_Yautja.corpse = corpse; marked_Yautja.MarkHedifflabel = corpse.InnerPawn.KindLabel; marked_Yautja.pawn = corpse.InnerPawn; marked_Yautja.pawnKindDef = corpse.InnerPawn.kindDef; marked_Yautja.predator = corpse.InnerPawn.kindDef.RaceProps.predator; marked_Yautja.props = new HediffCompProperties_MarkedYautja { pawn = corpse.InnerPawn, corpse = corpse, MarkedhediffDef = markedDef, MarkHedifflabel = corpse.InnerPawn.KindLabel, predator = corpse.InnerPawn.kindDef.RaceProps.predator, BodySize = corpse.InnerPawn.BodySize, combatPower = corpse.InnerPawn.kindDef.combatPower }; Log.Message(string.Format(" 11 ")); user.health.AddHediff(markedDef, part); Log.Message(string.Format(" 12 ")); ThingDef thingDef = null; Log.Message(string.Format(" 13 ")); foreach (var item in corpse.InnerPawn.health.hediffSet.GetNotMissingParts()) { if (Rand.Chance(corpse.InnerPawn.health.hediffSet.GetPartHealth(item) / 3) && item.def == XenomorphDefOf.RRY_Xeno_TailSpike && !corpse.InnerPawn.health.hediffSet.PartIsMissing(item)) { partRecord = item; thingDef = XenomorphDefOf.RRY_Xenomorph_TailSpike; corpse.InnerPawn.health.AddHediff(HediffMaker.MakeHediff(HediffDefOf.MissingBodyPart, corpse.InnerPawn, this.partRecord)); GenSpawn.Spawn(ThingMaker.MakeThing(thingDef), user.Position, user.Map); } if (Rand.Chance(corpse.InnerPawn.health.hediffSet.GetPartHealth(item) / 3) && item.def == XenomorphDefOf.RRY_Xeno_Shell && !corpse.InnerPawn.health.hediffSet.PartIsMissing(item)) { partRecord = item; thingDef = XenomorphDefOf.RRY_Xenomorph_HeadShell; corpse.InnerPawn.health.AddHediff(HediffMaker.MakeHediff(HediffDefOf.MissingBodyPart, corpse.InnerPawn, this.partRecord)); GenSpawn.Spawn(ThingMaker.MakeThing(thingDef), user.Position, user.Map); } } if (user.story.adulthood.identifier == null || user.story.adulthood.identifier == "RRY_Yautja_YoungBlood") { if (marked.def == YautjaDefOf.RRY_Hediff_BloodedMXenomorph) { AlienRace.BackstoryDef backstoryDef = DefDatabase <AlienRace.BackstoryDef> .GetNamed("RRY_Yautja_Blooded"); #if DEBUG // if (selected) Log.Message(string.Format("changing {0}", user.story.adulthood.identifier)); #endif user.story.adulthood = backstoryDef.backstory; #if DEBUG // if (selected) Log.Message(string.Format("to {0}", user.story.adulthood.identifier)); #endif } } }