public virtual void StartAction(GameActionTypeEnum actionType)
{
if(CurrentAction != null && CurrentAction.Type == actionType)
CurrentAction.Start();
switch (actionType)
{
case GameActionTypeEnum.MAP:
Map.SpawnEntity(this);
break;
case GameActionTypeEnum.SKILL_HARVEST:
case GameActionTypeEnum.MAP_MOVEMENT:
MovementHandler.Dispatch(WorldMessage.GAME_ACTION(actionType, Id, CurrentAction.SerializeAs_GameAction()));
break;
case GameActionTypeEnum.MAP_TELEPORT:
StopAction(GameActionTypeEnum.MAP);
StopAction(GameActionTypeEnum.MAP_TELEPORT);
// Switch back to world context
WorldService.Instance.AddUpdatable(this);
break;
}
}