public override void ApplyEvent(GameWorldController gameWorldController, GameEvent.OnEventCompleteDelegate onComplete) { RoomData currentRoom = gameWorldController.Model.CurrentGame.CurrentRoom; base.ApplyEvent(gameWorldController, onComplete); if (currentRoom.RoomKey.Equals(m_mobState.CurrentRoomKey)) { // Add the mob state to the current game state currentRoom.SetMobById(m_mobState.mob_id, m_mobState); // Create a new mob entity using the mob data just set in the game state { MobEntity mobEntity = new MobEntity(m_mobState.mob_id); mobEntity.AddToGameWorld(gameWorldController); } } // Completes immediately if (onComplete != null) { onComplete(); } }
public override void ApplyEvent(GameWorldController gameWorldController, GameEvent.OnEventCompleteDelegate onComplete) { GameData currentGame = gameWorldController.Model.CurrentGame; if (currentGame.CharacterID != _characterState.character_id) { base.ApplyEvent(gameWorldController, onComplete); // Add the character state to the current game state currentGame.SetCharacterById(_characterState.character_id, _characterState); // Create a new character entity using the character data just set in the game state { CharacterEntity characterEntity = new CharacterEntity(_characterState.character_id); characterEntity.AddToGameWorld(gameWorldController); } } else { Debug.Log("Ignoring apply CharacterJoinedGame event for primary character_id=" + _characterState.character_id); } // Completes immediately if (onComplete != null) { onComplete(); } }
public override void ApplyEvent(GameWorldController gameWorldController, GameEvent.OnEventCompleteDelegate onComplete) { GameData currentGame = gameWorldController.Model.CurrentGame; if (currentGame.CharacterID != _characterState.character_id) { base.ApplyEvent(gameWorldController, onComplete); // Clean up the entity { CharacterEntity characterEntity = gameWorldController.Model.GetCharacterEntity(_characterState.character_id); characterEntity.RemoveFromGameWorld(gameWorldController); } // Remove the character data from the current game state currentGame.SetCharacterById(_characterState.character_id, null); } else { Debug.Log("Ignoring apply CharacterLeftGame event for primary character_id=" + _characterState.character_id); } // Completes immediately if (onComplete != null) { onComplete(); } }
public override void ApplyEvent(GameWorldController gameWorldController, GameEvent.OnEventCompleteDelegate onComplete) { base.ApplyEvent(gameWorldController, onComplete); EnergyTankEntity energyTankEntity = gameWorldController.Model.GetEnergyTankEntity(EnergyTankId); energyTankEntity.Energy = (uint)Math.Max((int)energyTankEntity.Energy - EnergyDrained, 0); if (DrainerFaction == GameConstants.eFaction.ai) { MobEntity mobEntity = gameWorldController.Model.GetMobEntity(DrainerId); mobEntity.Energy = mobEntity.Energy + EnergyDrained; } else if (DrainerFaction == GameConstants.eFaction.player) { CharacterEntity characterEntity = gameWorldController.Model.GetCharacterEntity(DrainerId); characterEntity.Energy = characterEntity.Energy + EnergyDrained; } // Completes immediately if (onComplete != null) { onComplete(); } }
public override void ApplyEvent(GameWorldController gameWorldController, GameEvent.OnEventCompleteDelegate onComplete) { base.ApplyEvent(gameWorldController, onComplete); // Completes immediately if (onComplete != null) { onComplete(); } }
public override void ApplyEvent(GameWorldController gameWorldController, GameEvent.OnEventCompleteDelegate onComplete) { base.ApplyEvent(gameWorldController, onComplete); //TODO: Spawn "spotted" effect on energy tank // Completes immediately if (onComplete != null) { onComplete(); } }
public override void ApplyEvent(GameWorldController gameWorldController, GameEvent.OnEventCompleteDelegate onComplete) { base.ApplyEvent(gameWorldController, onComplete); // TODO: Actually de-spawn the mob sprite // Completes immediately if (onComplete != null) { onComplete(); } }
public override void ApplyEvent(GameWorldController gameWorldController, GameEvent.OnEventCompleteDelegate onComplete) { base.ApplyEvent(gameWorldController, onComplete); MobEntity entity = gameWorldController.Model.GetMobEntity(MobId); entity.PostDialogEvent(Dialog); // Completes immediately if (onComplete != null) { onComplete(); } }
public override void ApplyEvent(GameWorldController gameWorldController, GameEvent.OnEventCompleteDelegate onComplete) { base.ApplyEvent(gameWorldController, onComplete); EnergyTankEntity energyTankEntity = gameWorldController.Model.GetEnergyTankEntity(EnergyTankId); energyTankEntity.Ownership = EnergyTankFaction; // Completes immediately if (onComplete != null) { onComplete(); } }
public bool AdvanceEventCursor(GameWorldController gameWorldController, GameEvent.OnEventCompleteDelegate onComplete) { bool success = false; if (!IsEventCursorAtLastEvent) { GameEvent gameEvent = m_eventList[(int)m_eventCursor]; string chatString = gameEvent.ToChatString(gameWorldController); gameEvent.ApplyEvent(gameWorldController, onComplete); if (chatString.Length > 0) { gameWorldController.SendChatWindowText(chatString); } m_eventCursor = m_eventCursor + 1; success = true; } return(success); }
public void RequestRoomData(RoomKey roomKey, GameEvent.OnEventCompleteDelegate onComplete) { if (!IsRoomDataRequestPending) { // Cached room data is available if (SessionData.GetInstance().CurrentGameData.HasRoomData(roomKey)) { // Update which room we're currently in SessionData.GetInstance().CurrentGameData.CurrentRoomKey = roomKey; // Notify the controller Debug.Log("Using cached room data"); m_gameWorldController.OnRoomLoaded(roomKey); // Notify the caller if (onComplete != null) { onComplete(); } } // Have to request room data from the server else { AsyncJSONRequest roomDataRequest = AsyncJSONRequest.Create(m_gameWorldController.gameObject); Dictionary <string, object> request = new Dictionary <string, object>(); request["game_id"] = SessionData.GetInstance().GameID; request["room_x"] = roomKey.x; request["room_y"] = roomKey.y; request["room_z"] = roomKey.z; IsRoomDataRequestPending = true; roomDataRequest.POST( ServerConstants.roomDataRequestURL, request, (AsyncJSONRequest asyncRequest) => { if (asyncRequest.GetRequestState() == AsyncJSONRequest.eRequestState.succeded) { JsonData response = asyncRequest.GetResult(); string responseResult = (string)response["result"]; if (responseResult == "Success") { SessionData sessionData = SessionData.GetInstance(); GameData currentGame = sessionData.CurrentGameData; RoomData roomData = RoomData.FromObject(response); // Add the room data to the room cache currentGame.SetCachedRoomData(roomData.RoomKey, roomData); // Update which room we're currently in currentGame.CurrentRoomKey = roomKey; // Notify the controller Debug.Log("Room Loaded"); m_gameWorldController.OnRoomLoaded(roomData.RoomKey); } else { Debug.Log("Room Data Request Failed: " + responseResult); m_gameWorldController.OnRequestFailed(responseResult); } } else { Debug.Log("Room Data Request Failed: " + asyncRequest.GetFailureReason()); m_gameWorldController.OnRequestFailed("Connection Failed!"); } // Notify the caller if (onComplete != null) { onComplete(); } IsRoomDataRequestPending = false; }); } } }