コード例 #1
0
        public override void Execute(PlayerTargetContext c)
        {
            List <AiAnswer_ShareEnemyTarget> aiAnswerShareEnemyTargets;

            Memory.ExtendedInfo extendedInfo;
            NPCPlayerApex       self = c.Self as NPCPlayerApex;

            if (self != null)
            {
                if (self.AskQuestion(new AiQuestion_ShareEnemyTarget(), out aiAnswerShareEnemyTargets) > 0)
                {
                    foreach (AiAnswer_ShareEnemyTarget aiAnswerShareEnemyTarget in aiAnswerShareEnemyTargets)
                    {
                        if (!(aiAnswerShareEnemyTarget.PlayerTarget != null) || !aiAnswerShareEnemyTarget.LastKnownPosition.HasValue || !self.HostilityConsideration(aiAnswerShareEnemyTarget.PlayerTarget))
                        {
                            continue;
                        }
                        c.Target            = aiAnswerShareEnemyTarget.PlayerTarget;
                        c.Score             = 1f;
                        c.LastKnownPosition = aiAnswerShareEnemyTarget.LastKnownPosition.Value;
                        self.UpdateTargetMemory(c.Target, c.Score, c.LastKnownPosition, out extendedInfo);
                        return;
                    }
                }
            }
        }
コード例 #2
0
        public virtual void Execute(PlayerTargetContext c)
        {
            NPCPlayerApex self = c.Self as NPCPlayerApex;
            List <AiAnswer_ShareEnemyTarget> answers;

            if (!Object.op_Inequality((Object)self, (Object)null) || self.AskQuestion(new AiQuestion_ShareEnemyTarget(), out answers) <= 0)
            {
                return;
            }
            foreach (AiAnswer_ShareEnemyTarget shareEnemyTarget in answers)
            {
                if (Object.op_Inequality((Object)shareEnemyTarget.PlayerTarget, (Object)null) && shareEnemyTarget.LastKnownPosition.HasValue && self.HostilityConsideration(shareEnemyTarget.PlayerTarget))
                {
                    c.Target            = shareEnemyTarget.PlayerTarget;
                    c.Score             = 1f;
                    c.LastKnownPosition = shareEnemyTarget.LastKnownPosition.Value;
                    Memory.ExtendedInfo extendedInfo;
                    self.UpdateTargetMemory((BaseEntity)c.Target, c.Score, c.LastKnownPosition, out extendedInfo);
                    break;
                }
            }
        }