Exemplo n.º 1
0
    public override void Execute(AIMemory memory, AIBrainSenses senses, StateStatus stateStatus)
    {
        base.Result = base.Inverted;
        IAIAttack iAIAttack = base.Owner as IAIAttack;

        if (iAIAttack == null)
        {
            return;
        }
        BaseEntity bestTarget = iAIAttack.GetBestTarget();

        if (base.Inverted)
        {
            if (bestTarget == null && base.ShouldSetOutputEntityMemory)
            {
                memory.Entity.Remove(base.OutputEntityMemorySlot);
            }
            base.Result = bestTarget == null;
        }
        else
        {
            if (bestTarget != null && base.ShouldSetOutputEntityMemory)
            {
                memory.Entity.Set(bestTarget, base.OutputEntityMemorySlot);
            }
            base.Result = bestTarget != null;
        }
    }
Exemplo n.º 2
0
        public override void StateEnter()
        {
            base.StateEnter();
            attack = GetEntity();
            BaseEntity baseEntity = brain.Events.Memory.Entity.Get(brain.Events.CurrentInputMemorySlot);

            if (baseEntity != null)
            {
                brain.Navigator.SetDestination(baseEntity.transform.position, BaseNavigator.NavigationSpeed.Fast);
            }
        }
Exemplo n.º 3
0
    public override void Execute(AIMemory memory, AIBrainSenses senses, StateStatus stateStatus)
    {
        base.Result = base.Inverted;
        IAIAttack iAIAttack = base.Owner as IAIAttack;

        if (iAIAttack != null)
        {
            BaseEntity baseEntity = memory.Entity.Get(base.InputEntityMemorySlot);
            iAIAttack.AttackTick(deltaTime, baseEntity, senses.Memory.IsLOS(baseEntity));
            base.Result = !base.Inverted;
        }
    }
Exemplo n.º 4
0
    public override void Execute(AIMemory memory, AIBrainSenses senses, StateStatus stateStatus)
    {
        base.Result = base.Inverted;
        IAIAttack iAIAttack = base.Owner as IAIAttack;

        if (iAIAttack != null)
        {
            bool flag = iAIAttack.GetAmmoFraction() < Value;
            if (base.Inverted)
            {
                base.Result = !flag;
            }
            else
            {
                base.Result = flag;
            }
        }
    }
Exemplo n.º 5
0
        public override void StateEnter()
        {
            base.StateEnter();
            attack = GetEntity();
            BaseEntity baseEntity = brain.Events.Memory.Entity.Get(brain.Events.CurrentInputMemorySlot);

            if (baseEntity != null)
            {
                BaseCombatEntity target       = baseEntity as BaseCombatEntity;
                Vector3          aimDirection = GetAimDirection(GetEntity(), target);
                brain.Navigator.SetFacingDirectionOverride(aimDirection);
                if (attack.CanAttack(baseEntity))
                {
                    StartAttacking(baseEntity);
                }
                brain.Navigator.SetDestination(baseEntity.transform.position, BaseNavigator.NavigationSpeed.Fast);
            }
        }
Exemplo n.º 6
0
 public void Init(BaseEntity owner, float range, float targetLostRange, float visionCone, bool checkVision, bool checkLOS, bool ignoreNonVisionSneakers, float listenRange, bool hostileTargetsOnly, bool senseFriendlies, bool ignoreSafeZonePlayers, EntityType senseTypes)
 {
     this.owner                   = owner;
     ownerAttack                  = owner as IAIAttack;
     playerOwner                  = owner as BasePlayer;
     maxRange                     = range;
     this.targetLostRange         = targetLostRange;
     this.visionCone              = visionCone;
     this.checkVision             = checkVision;
     this.checkLOS                = checkLOS;
     this.ignoreNonVisionSneakers = ignoreNonVisionSneakers;
     this.listenRange             = listenRange;
     this.hostileTargetsOnly      = hostileTargetsOnly;
     this.senseFriendlies         = senseFriendlies;
     this.ignoreSafeZonePlayers   = ignoreSafeZonePlayers;
     this.senseTypes              = senseTypes;
     LastThreatTimestamp          = UnityEngine.Time.realtimeSinceStartup;
     ownerSenses                  = owner as IAISenses;
 }