public static void FleeHurtDir(BaseContext c)
 {
     if (c.AIAgent.IsNavRunning() && NavigateToOperator.NavigateInDirOfBestSample(c, NavPointSampler.SampleCount.Eight, 4f, NavPointSampler.SampleFeatures.RetreatFromDirection, c.AIAgent.GetStats.MinFleeRange, c.AIAgent.GetStats.MaxFleeRange))
     {
         c.SetFact(BaseNpc.Facts.IsFleeing, 1);
     }
 }
示例#2
0
 public static void FleeEnemy(BaseContext c)
 {
     if (!c.AIAgent.IsNavRunning() || !NavigateToOperator.NavigateInDirOfBestSample(c, NavPointSampler.SampleCount.Eight, 4f, NavPointSampler.SampleFeatures.RetreatFromTarget, c.AIAgent.GetStats.MinFleeRange, c.AIAgent.GetStats.MaxFleeRange))
     {
         return;
     }
     c.SetFact(BaseNpc.Facts.IsFleeing, (byte)1);
 }
        public override void DoExecute(BaseContext c)
        {
            object      obj;
            BaseContext baseContext = c;

            NPCPlayerApex.Facts fact = this.fact;
            if (this.@value)
            {
                obj = 1;
            }
            else
            {
                obj = null;
            }
            baseContext.SetFact(fact, (byte)obj, true, true);
        }
        public override void DoExecute(BaseContext c)
        {
            object      obj;
            BaseContext baseContext = c;

            BaseNpc.Facts fact = this.fact;
            if (this.@value)
            {
                obj = 1;
            }
            else
            {
                obj = null;
            }
            baseContext.SetFact(fact, (byte)obj);
        }
示例#5
0
        public override void DoExecute(BaseContext c)
        {
            if (c.GetFact(BaseNpc.Facts.CanNotMove) == (byte)1)
            {
                c.AIAgent.StopMoving();
                c.SetFact(BaseNpc.Facts.PathToTargetStatus, (byte)2);
            }
            else
            {
                if (!c.AIAgent.IsNavRunning() || c.AIAgent.GetNavAgent.get_pathPending())
                {
                    return;
                }
                switch (this.Operator)
                {
                case NavigateToOperator.OperatorType.EnemyLoc:
                    NavigateToOperator.NavigateToEnemy(c);
                    break;

                case NavigateToOperator.OperatorType.RandomLoc:
                    NavigateToOperator.NavigateToRandomLoc(c);
                    break;

                case NavigateToOperator.OperatorType.Spawn:
                    NavigateToOperator.NavigateToSpawn(c);
                    break;

                case NavigateToOperator.OperatorType.FoodLoc:
                    NavigateToOperator.NavigateToFood(c);
                    break;

                case NavigateToOperator.OperatorType.FleeEnemy:
                    NavigateToOperator.FleeEnemy(c);
                    break;

                case NavigateToOperator.OperatorType.FleeHurtDir:
                    NavigateToOperator.FleeHurtDir(c);
                    break;

                case NavigateToOperator.OperatorType.TopologyPreference:
                    NavigateToOperator.NavigateToTopologyPreference(c);
                    break;
                }
            }
        }
示例#6
0
        public static void AttackEnemy(BaseContext c, AttackOperator.AttackType type)
        {
            if (c.GetFact(BaseNpc.Facts.IsAttackReady) == 0)
            {
                return;
            }
            BaseCombatEntity enemyNpc = null;

            if (c.EnemyNpc != null)
            {
                enemyNpc = c.EnemyNpc;
            }
            if (c.EnemyPlayer != null)
            {
                enemyNpc = c.EnemyPlayer;
            }
            if (enemyNpc == null)
            {
                return;
            }
            c.AIAgent.StartAttack(type, enemyNpc);
            c.SetFact(BaseNpc.Facts.IsAttackReady, 0);
        }
        public static void AttackEnemy(BaseContext c, AttackOperator.AttackType type)
        {
            if (c.GetFact(BaseNpc.Facts.IsAttackReady) == (byte)0)
            {
                return;
            }
            BaseCombatEntity target = (BaseCombatEntity)null;

            if (Object.op_Inequality((Object)c.EnemyNpc, (Object)null))
            {
                target = (BaseCombatEntity)c.EnemyNpc;
            }
            if (Object.op_Inequality((Object)c.EnemyPlayer, (Object)null))
            {
                target = (BaseCombatEntity)c.EnemyPlayer;
            }
            if (Object.op_Equality((Object)target, (Object)null))
            {
                return;
            }
            c.AIAgent.StartAttack(type, target);
            c.SetFact(BaseNpc.Facts.IsAttackReady, (byte)0);
        }
示例#8
0
 public override void DoExecute(BaseContext c)
 {
     c.AIAgent.TargetSpeed = c.AIAgent.ToSpeed(this.value);
     c.SetFact(BaseNpc.Facts.Speed, (byte)this.value);
 }
示例#9
0
 public override void DoExecute(BaseContext c)
 {
     c.SetFact(NPCPlayerApex.Facts.BodyState, (byte)this.value, true, false);
 }
 public override void DoExecute(BaseContext c)
 {
     c.SetFact(this.fact, this.value ? (byte)1 : (byte)0, true, true);
 }
示例#11
0
 public static void Set(BaseContext c, NPCPlayerApex.SpeedEnum speed)
 {
     c.AIAgent.TargetSpeed = c.AIAgent.ToSpeed(speed);
     c.SetFact(NPCPlayerApex.Facts.Speed, (byte)speed, true, true);
 }