Esempio n. 1
0
 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);
             }
         }
     }
 }
Esempio n. 2
0
        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);
     }
 }
Esempio n. 4
0
 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);
         }
     }
 }
Esempio n. 5
0
 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);
     }
 }
Esempio n. 6
0
        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)
 {
 }
Esempio n. 8
0
 public virtual void Notify_PawnEvent(Pawn p, AdaptationEvent ev, DamageInfo?dinfo = default(DamageInfo?))
 {
 }