Example #1
0
        /**
         * Decides running or standing according to flag AI_STAND_GROUND.
         */
        public static void HuntTarget(edict_t self)
        {
            float[] vec = { 0, 0, 0 };

            self.goalentity = self.enemy;

            if ((self.monsterinfo.aiflags & Defines.AI_STAND_GROUND) != 0)
            {
                self.monsterinfo.stand.think(self);
            }
            else
            {
                self.monsterinfo.run.think(self);
            }

            Math3D.VectorSubtract(self.enemy.s.origin, self.s.origin, vec);
            self.ideal_yaw = Math3D.vectoyaw(vec);

            // wait a while before first attack
            if (0 == (self.monsterinfo.aiflags & Defines.AI_STAND_GROUND))
            {
                GameUtil.AttackFinished(self, 1);
            }
        }