Exemplo n.º 1
0
        private void OnStateChanged(WizardFSMState.StateEnum state, EntityId target)
        {
            switch (state)
            {
            case WizardFSMState.StateEnum.IDLE:
                navigation.StopNavigation();
                Idle();
                StartCoroutines();
                break;

            case WizardFSMState.StateEnum.MOVING_TO_TARGET:
                break;

            case WizardFSMState.StateEnum.MOVING_TO_POSITION:
                break;

            case WizardFSMState.StateEnum.ATTACKING_TARGET:
                TrySpellCast(target, SpellType.LIGHTNING);
                break;

            case WizardFSMState.StateEnum.DEFENDING_TARGET:
                TrySpellCast(target, SpellType.RAIN);
                break;

            case WizardFSMState.StateEnum.ON_FIRE:
                StopCoroutines();
                navigation.StopNavigation();
                NavigateToPosition(transform.position + (UnityEngine.Random.insideUnitSphere * SimulationSettings.OnFireWaypointDistance).FlattenVector());
                break;
            }
        }
Exemplo n.º 2
0
 private void OnWizardComponentUpdate(NPCWizard.Update update)
 {
     if (update.currentState.HasValue)
     {
         cachedWizardFSMStateEnum = update.currentState.Value;
         OnStateChanged(cachedWizardFSMStateEnum, wizard.Data.targetEntity);
     }
 }
Exemplo n.º 3
0
 private void ChangeTo(WizardFSMState.StateEnum newState, EntityId targetEntityId)
 {
     if (wizard != null)
     {
         wizard.Send(new NPCWizard.Update()
                     .SetCurrentState(newState)
                     .SetTargetEntity(targetEntityId));
     }
 }
Exemplo n.º 4
0
 private void SetAnimationState(WizardFSMState.StateEnum currentState)
 {
     if (currentState.Equals(WizardFSMState.StateEnum.ATTACKING_TARGET) ||
         currentState.Equals(WizardFSMState.StateEnum.DEFENDING_TARGET))
     {
         anim.SetTrigger("Casting");
         CastAnim.Play();
     }
     else
     {
         CastAnim.Stop();
     }
 }
Exemplo n.º 5
0
 public void ChangeTo(WizardFSMState.StateEnum newState)
 {
     ChangeTo(newState, EntityId.InvalidEntityId);
 }
Exemplo n.º 6
0
        private IEnumerator ChangeAfter(WizardFSMState.StateEnum newState, float playerCastAnimationTime)
        {
            yield return(new WaitForSeconds(playerCastAnimationTime));

            ChangeTo(newState);
        }