Beispiel #1
0
        void Update()
        {
            //simple fsm implementation
            switch (currentState)
            {
            case TowerState.LookingForTargets:
                if (LookForTargets())
                {
                    TargetFoundEvent?.Invoke();
                    currentState = TowerState.Attacking;
                }

                break;

            case TowerState.Attacking:
                if (TargetIsOutOfRange() || currentTarget.IsDead)
                {
                    TargetIsOutOfRangeEvent?.Invoke();
                    currentTarget = null;
                    currentState  = TowerState.LookingForTargets;
                }
                else
                {
                    Attack();
                }
                break;
            }
        }
Beispiel #2
0
 public static void OnTargetFoundEvent()
 {
     TargetFoundEvent handler = OnTargetFound;
     if (handler != null)
     {
         handler();
     }
 }