public void ForgetCheckedHideouts(float forgetTime)
 {
     for (int i = 0; i < this.CheckedHideoutPoints.Count; i++)
     {
         NPCHumanContext.HideoutPoint item = this.CheckedHideoutPoints[i];
         if (Time.time - item.Time > forgetTime)
         {
             this.CheckedHideoutPoints.RemoveAt(i);
             i--;
         }
     }
 }
Exemple #2
0
        public static bool Evaluate(CoverContext context, IList <IOptionScorer <CoverPoint> > scorers, List <CoverPoint> options, int numOptions, bool allScorersMustScoreAboveZero)
        {
            for (int i = 0; i < numOptions; i++)
            {
                float single = 0f;
                for (int j = 0; j < scorers.Count; j++)
                {
                    if (!scorers[j].isDisabled)
                    {
                        float single1 = scorers[j].Score(context, options[i]);
                        if (allScorersMustScoreAboveZero && single1 <= 0f)
                        {
                            break;
                        }
                        single += single1;
                    }
                }
                if (single > context.HideoutValue)
                {
                    context.HideoutCP = options[i];
                }
            }
            if (context.HideoutCP == null)
            {
                return(false);
            }
            NPCPlayerApex entity = context.Self.Entity as NPCPlayerApex;

            if (entity != null)
            {
                List <NPCHumanContext.HideoutPoint> checkedHideoutPoints = entity.AiContext.CheckedHideoutPoints;
                NPCHumanContext.HideoutPoint        hideoutPoint         = new NPCHumanContext.HideoutPoint()
                {
                    Hideout = context.HideoutCP,
                    Time    = Time.time
                };
                checkedHideoutPoints.Add(hideoutPoint);
            }
            return(true);
        }