예제 #1
0
    private void Update()
    {
        var input = _currentInput.GetInput();

        _move?.Move(input);
        _attack?.Attack(input);
        _find?.FindTarget(input);
    }
예제 #2
0
 private void CheckForNewTarget()
 {
     Debug.Log("Checking for new target");
     targetFinder.FindTarget();
     if (targetFinder.GetTarget() != null)
     {
         controller.SetState <AIPursuit>();
     }
 }
예제 #3
0
    public override void BeginState()
    {
        Debug.Log("Begun Pursuit State");
        controller = this.GetComponent <AIController>();
        objectID   = controller.objectID;
        shipStats  = GameManager.Instance.gameSettings.vesselStats.Where(x => x.type.Equals(controller.vesselSelection)).First();
        dirChecker = new TargetDirectionCheck();

        //  Collect components for class
        weaponAim          = this.GetComponent <IWeaponAim>();
        weaponSystem       = this.GetComponent <IWeaponSystem>();
        targetFinder       = this.GetComponent <ITargetFinder>();
        weaponTargetSetter = this.GetComponent <ISetWeaponTarget>();
        movementController = this.GetComponent <AIMovementController>();

        targetFinder.FindTarget();
        weaponTargetSetter.SetTarget();
    }
예제 #4
0
        private static LocalTargetInfo TryFindNewTarget_Copy(this Building_TurretGun b, Predicate <Thing> validator,
                                                             ITargetFinder finder)
        {
            var targetScanFlags = TargetScanFlags.NeedThreat | TargetScanFlags.NeedAutoTargetable |
                                  TargetScanFlags.NeedNotUnderThickRoof;

            if (b.AttackVerb.IsIncendiary())
            {
                targetScanFlags |= TargetScanFlags.NeedNonBurning;
            }
            LocalTargetInfo result;

            if (finder != null && finder.ShouldUse(b) &&
                (result = finder.FindTarget(b, targetScanFlags, validator)) != null && result.IsValid)
            {
                return(result);
            }

            return((Thing)AttackTargetFinder.BestShootTargetFromCurrentPosition(b, targetScanFlags,
                                                                                validator));
        }