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; } }
private void OnChangeState(LumberjackFSMState.StateEnum newState, EntityId targetEntityId) { StopAllCoroutines(); switch (newState) { case LumberjackFSMState.StateEnum.IDLE: navigation.StopNavigation(); DecideWhereToMove(); break; case LumberjackFSMState.StateEnum.MOVING_TO_TREE: break; case LumberjackFSMState.StateEnum.HARVESTING: StartCoroutine(BufferHarvestingAnimation(SimulationSettings.NPCChoppingAnimationBuffer, targetEntityId)); break; case LumberjackFSMState.StateEnum.MOVING_TO_STOCKPILE: break; case LumberjackFSMState.StateEnum.STOCKPILING: StartCoroutine(BufferDroppingAnimation(SimulationSettings.NPCStockpilingAnimationBuffer, targetEntityId)); break; case LumberjackFSMState.StateEnum.ON_FIRE: navigation.StopNavigation(); StartMovingTowardsPosition(transform.position + (Random.insideUnitSphere * SimulationSettings.OnFireWaypointDistance).FlattenVector()); break; } }