public void RequestCharacterPortal(Point3d entryPoint, RoomPortal portal) { Debug.Log("GameWorldModel:requestCharacterPortal - Entering portal_id=" +portal.portal_id+" at position ("+ entryPoint.x + ", " + entryPoint.y + ")"); if (!IsCharacterPortalRequestPending) { GameData gameData = SessionData.GetInstance().CurrentGameData; CharacterEntity entity = GetCharacterEntity(CurrentCharacterID); AsyncCharacterPortalRequest characterPortalRequest = null; IsCharacterPortalRequestPending = true; characterPortalRequest = new AsyncCharacterPortalRequest(m_gameWorldController.gameObject, entity, entryPoint, portal); characterPortalRequest.Execute( (AsyncCharacterPortalRequest asyncRequest) => { IsCharacterPortalRequestPending = false; switch (asyncRequest.ResultCode) { case AsyncCharacterPortalRequest.eResult.success: { Debug.Log("GameWorldModel:requestCharacterPortal - Portal Succeeded!"); // Tell anyone listening on IRC that the game state changed m_gameWorldController.SendCharacterUpdatedGameEvent(); // Parse any incoming game events if (asyncRequest.ServerResponse != null) { gameData.ParseEventResponse(asyncRequest.ServerResponse); } // If there were new events, notify the controller so that // it can start playing the events back if (!gameData.IsEventCursorAtLastEvent) { m_gameWorldController.OnGameHasNewEvents(); } } break; case AsyncCharacterPortalRequest.eResult.failed_path: case AsyncCharacterPortalRequest.eResult.failed_server_denied: { Debug.LogError("GameWorldModel:requestCharacterPortal - " + asyncRequest.ResultDetails); m_gameWorldController.OnCharacterActionDisallowed(asyncRequest); } break; case AsyncCharacterPortalRequest.eResult.failed_server_connection: { Debug.LogError("GameWorldModel:requestCharacterPortal - " + asyncRequest.ResultDetails); m_gameWorldController.OnRequestFailed("Connection Failed!"); } break; } }); } }
public void RequestCharacterPortal(Point3d entryPoint, RoomPortal portal) { Debug.Log("GameWorldModel:requestCharacterPortal - Entering portal_id=" + portal.portal_id + " at position (" + entryPoint.x + ", " + entryPoint.y + ")"); if (!IsCharacterPortalRequestPending) { GameData gameData = SessionData.GetInstance().CurrentGameData; CharacterEntity entity = GetCharacterEntity(CurrentCharacterID); AsyncCharacterPortalRequest characterPortalRequest = null; IsCharacterPortalRequestPending = true; characterPortalRequest = new AsyncCharacterPortalRequest(m_gameWorldController.gameObject, entity, entryPoint, portal); characterPortalRequest.Execute( (AsyncCharacterPortalRequest asyncRequest) => { IsCharacterPortalRequestPending = false; switch (asyncRequest.ResultCode) { case AsyncCharacterPortalRequest.eResult.success: { Debug.Log("GameWorldModel:requestCharacterPortal - Portal Succeeded!"); // Tell anyone listening on IRC that the game state changed m_gameWorldController.SendCharacterUpdatedGameEvent(); // Parse any incoming game events if (asyncRequest.ServerResponse != null) { gameData.ParseEventResponse(asyncRequest.ServerResponse); } // If there were new events, notify the controller so that // it can start playing the events back if (!gameData.IsEventCursorAtLastEvent) { m_gameWorldController.OnGameHasNewEvents(); } } break; case AsyncCharacterPortalRequest.eResult.failed_path: case AsyncCharacterPortalRequest.eResult.failed_server_denied: { Debug.LogError("GameWorldModel:requestCharacterPortal - " + asyncRequest.ResultDetails); m_gameWorldController.OnCharacterActionDisallowed(asyncRequest); } break; case AsyncCharacterPortalRequest.eResult.failed_server_connection: { Debug.LogError("GameWorldModel:requestCharacterPortal - " + asyncRequest.ResultDetails); m_gameWorldController.OnRequestFailed("Connection Failed!"); } break; } }); } }