public void RequestDrainEnergyTank(Point3d entryPoint, EnergyTankData energyTankData) { Debug.Log("GameWorldModel:requestDrainEnergyTank - Draining energy tank id=" +energyTankData.energy_tank_id+" at position ("+ entryPoint.x + ", " + entryPoint.y + ")"); if (!IsDrainEnergyTankRequestPending) { GameData gameData = SessionData.GetInstance().CurrentGameData; CharacterEntity entity = GetCharacterEntity(CurrentCharacterID); AsyncDrainEnergyTankRequest drainEnergyTankRequest = null; IsDrainEnergyTankRequestPending = true; drainEnergyTankRequest = new AsyncDrainEnergyTankRequest(m_gameWorldController.gameObject, entity, entryPoint, energyTankData); drainEnergyTankRequest.Execute( (AsyncDrainEnergyTankRequest asyncRequest) => { IsDrainEnergyTankRequestPending = false; switch (asyncRequest.ResultCode) { case AsyncDrainEnergyTankRequest.eResult.success: { Debug.Log("GameWorldModel:requestDrainEnergyTank - Drain 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 AsyncDrainEnergyTankRequest.eResult.failed_path: case AsyncDrainEnergyTankRequest.eResult.failed_server_denied: { Debug.LogError("GameWorldModel:requestDrainEnergyTank - " + asyncRequest.ResultDetails); m_gameWorldController.OnCharacterActionDisallowed(asyncRequest); } break; case AsyncDrainEnergyTankRequest.eResult.failed_server_connection: { Debug.LogError("GameWorldModel:requestDrainEnergyTank - " + asyncRequest.ResultDetails); m_gameWorldController.OnRequestFailed("Connection Failed!"); } break; } }); } }
public void RequestDrainEnergyTank(Point3d entryPoint, EnergyTankData energyTankData) { Debug.Log("GameWorldModel:requestDrainEnergyTank - Draining energy tank id=" + energyTankData.energy_tank_id + " at position (" + entryPoint.x + ", " + entryPoint.y + ")"); if (!IsDrainEnergyTankRequestPending) { GameData gameData = SessionData.GetInstance().CurrentGameData; CharacterEntity entity = GetCharacterEntity(CurrentCharacterID); AsyncDrainEnergyTankRequest drainEnergyTankRequest = null; IsDrainEnergyTankRequestPending = true; drainEnergyTankRequest = new AsyncDrainEnergyTankRequest(m_gameWorldController.gameObject, entity, entryPoint, energyTankData); drainEnergyTankRequest.Execute( (AsyncDrainEnergyTankRequest asyncRequest) => { IsDrainEnergyTankRequestPending = false; switch (asyncRequest.ResultCode) { case AsyncDrainEnergyTankRequest.eResult.success: { Debug.Log("GameWorldModel:requestDrainEnergyTank - Drain 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 AsyncDrainEnergyTankRequest.eResult.failed_path: case AsyncDrainEnergyTankRequest.eResult.failed_server_denied: { Debug.LogError("GameWorldModel:requestDrainEnergyTank - " + asyncRequest.ResultDetails); m_gameWorldController.OnCharacterActionDisallowed(asyncRequest); } break; case AsyncDrainEnergyTankRequest.eResult.failed_server_connection: { Debug.LogError("GameWorldModel:requestDrainEnergyTank - " + asyncRequest.ResultDetails); m_gameWorldController.OnRequestFailed("Connection Failed!"); } break; } }); } }