public override void Notify_PawnEvent(Pawn p, AdaptationEvent ev, DamageInfo?dinfo = default(DamageInfo?)) { if (p.RaceProps.Humanlike && p.IsColonist && (ev == AdaptationEvent.Died || ev == AdaptationEvent.Kidnapped || ev == AdaptationEvent.LostBecauseMapClosed || ev == AdaptationEvent.Downed)) { IEnumerable <Pawn> allMapsCaravansAndTravelingTransportPods_Alive_OfPlayerFaction = PawnsFinder.AllMapsCaravansAndTravelingTransportPods_Alive_OfPlayerFaction; foreach (Pawn item in allMapsCaravansAndTravelingTransportPods_Alive_OfPlayerFaction) { if (item.RaceProps.Humanlike && !item.Downed) { return; } } Map anyPlayerHomeMap = Find.AnyPlayerHomeMap; if (anyPlayerHomeMap != null) { IncidentParms parms = StorytellerUtility.DefaultParmsNow(Props.incident.category, anyPlayerHomeMap); if (Props.incident.Worker.CanFireNow(parms)) { FiringIncident firingInc = new FiringIncident(Props.incident, this, parms); QueuedIncident qi = new QueuedIncident(firingInc, Find.TickManager.TicksGame + Props.delayTicks); Find.Storyteller.incidentQueue.Add(qi); } } } }
private void ResolvePawnEvent(Pawn p, AdaptationEvent ev) { float num; if (ev == AdaptationEvent.Downed) { num = this.StorytellerDef.adaptDaysLossFromColonistViolentlyDownedByPopulation.Evaluate((float)this.Population); } else { if (this.pawnsJustDownedThisTick.Contains(p)) { this.pawnsJustDownedThisTick.Remove(p); } int num2 = this.Population - 1; num = this.StorytellerDef.adaptDaysLossFromColonistLostByPostPopulation.Evaluate((float)num2); } if (DebugViewSettings.writeStoryteller) { Log.Message(string.Concat(new object[] { "Adaptation event: ", p, " ", ev, ". Loss: ", num.ToString("F1"), " from ", this.adaptDays.ToString("F1") }), false); } this.adaptDays = Mathf.Max(this.StorytellerDef.adaptDaysMin, this.adaptDays - num); }
public void Notify_PawnEvent(Pawn pawn, AdaptationEvent ev, DamageInfo?dinfo = null) { Find.StoryWatcher.watcherAdaptation.Notify_PawnEvent(pawn, ev, dinfo); for (int i = 0; i < storytellerComps.Count; i++) { storytellerComps[i].Notify_PawnEvent(pawn, ev, dinfo); } }
public void Notify_PawnEvent(Pawn p, AdaptationEvent ev, DamageInfo?dinfo = default(DamageInfo?)) { if (p.RaceProps.Humanlike && p.IsColonist) { if (ev == AdaptationEvent.Downed) { if (dinfo.HasValue && dinfo.Value.Def.ExternalViolenceFor(p)) { pawnsJustDownedThisTick.Add(p); } } else { ResolvePawnEvent(p, ev); } } }
public void Notify_PawnEvent(Pawn p, AdaptationEvent ev, DamageInfo?dinfo = null) { if (!p.RaceProps.Humanlike || !p.IsColonist) { return; } if (ev == AdaptationEvent.Downed) { if (!dinfo.HasValue || !dinfo.Value.Def.ExternalViolenceFor(p)) { return; } this.pawnsJustDownedThisTick.Add(p); } else { this.ResolvePawnEvent(p, ev); } }
private void ResolvePawnEvent(Pawn p, AdaptationEvent ev) { float num; if (ev == AdaptationEvent.Downed) { num = StorytellerDef.adaptDaysLossFromColonistViolentlyDownedByPopulation.Evaluate(Population); } else { if (pawnsJustDownedThisTick.Contains(p)) { pawnsJustDownedThisTick.Remove(p); } int num2 = Population - 1; num = StorytellerDef.adaptDaysLossFromColonistLostByPostPopulation.Evaluate(num2); } if (DebugViewSettings.writeStoryteller) { Log.Message("Adaptation event: " + p + " " + ev + ". Loss: " + num.ToString("F1") + " from " + adaptDays.ToString("F1")); } adaptDays = Mathf.Max(StorytellerDef.adaptDaysMin, adaptDays - num); }
public virtual void Notify_PawnEvent(Pawn p, AdaptationEvent ev, DamageInfo?dinfo = null) { }
public virtual void Notify_PawnEvent(Pawn p, AdaptationEvent ev, DamageInfo?dinfo = default(DamageInfo?)) { }