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 void AddEnergyTankEntity(EnergyTankEntity energyTankEntity) { if (m_energyTankEntities.ContainsKey(energyTankEntity.MyEnergyTankData.energy_tank_id)) { m_energyTankEntities[energyTankEntity.MyEnergyTankData.energy_tank_id] = energyTankEntity; } else { m_energyTankEntities.Add(energyTankEntity.MyEnergyTankData.energy_tank_id, energyTankEntity); } }
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 override void UndoEvent(GameWorldController gameWorldController) { EnergyTankEntity energyTankEntity = gameWorldController.Model.GetEnergyTankEntity(EnergyTankId); // AI is un-hacking if (HackerFaction == GameConstants.eFaction.ai) { switch (EnergyTankFaction) { case GameConstants.eFaction.ai: energyTankEntity.Ownership = GameConstants.eFaction.neutral; break; case GameConstants.eFaction.neutral: energyTankEntity.Ownership = GameConstants.eFaction.player; break; case GameConstants.eFaction.player: energyTankEntity.Ownership = GameConstants.eFaction.player; break; } } // Player is un-hacking else if (HackerFaction == GameConstants.eFaction.player) { switch (EnergyTankFaction) { case GameConstants.eFaction.player: energyTankEntity.Ownership = GameConstants.eFaction.neutral; break; case GameConstants.eFaction.neutral: energyTankEntity.Ownership = GameConstants.eFaction.ai; break; case GameConstants.eFaction.ai: energyTankEntity.Ownership = GameConstants.eFaction.ai; break; } } base.UndoEvent(gameWorldController); }
public override void UndoEvent(GameWorldController gameWorldController) { EnergyTankEntity energyTankEntity = gameWorldController.Model.GetEnergyTankEntity(EnergyTankId); energyTankEntity.Energy = energyTankEntity.Energy + (uint)EnergyDrained; 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; } base.UndoEvent(gameWorldController); }
public void RemoveEnergyTankEntity(EnergyTankEntity energyTankEntity) { m_energyTankEntities.Remove(energyTankEntity.MyEnergyTankData.energy_tank_id); }
public void AddEnergyTankEntity(EnergyTankEntity energyTankEntity) { if (m_energyTankEntities.ContainsKey(energyTankEntity.MyEnergyTankData.energy_tank_id)) { m_energyTankEntities[energyTankEntity.MyEnergyTankData.energy_tank_id]= energyTankEntity; } else { m_energyTankEntities.Add(energyTankEntity.MyEnergyTankData.energy_tank_id, energyTankEntity); } }
public void OnRoomLoaded(RoomKey roomKey) { RoomData currentRoom = m_gameWorldModel.GetRoomData(roomKey); // Get a list of all the characters that are in the same room as my character List <int> characterIDList = m_gameWorldModel.GetCharacterIDListInRoom(roomKey); // Remove any existing character List <int> allCharacterIds = new List <int>(m_gameWorldModel.GetCharacterEntityMap().Keys); foreach (int characterEntityId in allCharacterIds) { CharacterEntity characterEntity = m_gameWorldModel.GetCharacterEntity(characterEntityId); characterEntity.RemoveFromGameWorld(this); } // (Re)Create character entities for each character in the room foreach (int characterID in characterIDList) { CharacterEntity newCharacterEntity = new CharacterEntity(characterID); newCharacterEntity.AddToGameWorld(this); } // Remove any existing mobs List <int> allMobIds = new List <int>(m_gameWorldModel.GetMobEntityMap().Keys); foreach (int mobEntityId in allMobIds) { MobEntity mobEntity = m_gameWorldModel.GetMobEntity(mobEntityId); mobEntity.RemoveFromGameWorld(this); } // (Re)Create mob entities for each mob in the room foreach (MobData mobData in currentRoom.MobMap.Values) { MobEntity newMobEntity = new MobEntity(mobData.mob_id); newMobEntity.AddToGameWorld(this); } // Remove any existing energy tanks List <int> allEnergyTankIds = new List <int>(m_gameWorldModel.GetEnergyTankEntityMap().Keys); foreach (int energyTankId in allEnergyTankIds) { EnergyTankEntity energyTankEntity = m_gameWorldModel.GetEnergyTankEntity(energyTankId); energyTankEntity.RemoveFromGameWorld(this); } // (Re)Create energy tank entities for each energy tank in the room foreach (EnergyTankData energyTankData in currentRoom.EnergyTankMap.Values) { EnergyTankEntity newEnergyTankEntity = new EnergyTankEntity(energyTankData.energy_tank_id); newEnergyTankEntity.AddToGameWorld(this); } // generate all of the terrain tiles and static objects in the room gameWorldView.RebuildRoom(currentRoom); // Notify the overlay of a room reload m_contextOverlayController.OnRoomLoaded(currentRoom); }
public void OnRoomLoaded(RoomKey roomKey) { RoomData currentRoom = m_gameWorldModel.GetRoomData(roomKey); // Get a list of all the characters that are in the same room as my character List<int> characterIDList = m_gameWorldModel.GetCharacterIDListInRoom(roomKey); // Remove any existing character List<int> allCharacterIds = new List<int>(m_gameWorldModel.GetCharacterEntityMap().Keys); foreach (int characterEntityId in allCharacterIds) { CharacterEntity characterEntity= m_gameWorldModel.GetCharacterEntity(characterEntityId); characterEntity.RemoveFromGameWorld(this); } // (Re)Create character entities for each character in the room foreach (int characterID in characterIDList) { CharacterEntity newCharacterEntity = new CharacterEntity(characterID); newCharacterEntity.AddToGameWorld(this); } // Remove any existing mobs List<int> allMobIds = new List<int>(m_gameWorldModel.GetMobEntityMap().Keys); foreach (int mobEntityId in allMobIds) { MobEntity mobEntity = m_gameWorldModel.GetMobEntity(mobEntityId); mobEntity.RemoveFromGameWorld(this); } // (Re)Create mob entities for each mob in the room foreach (MobData mobData in currentRoom.MobMap.Values) { MobEntity newMobEntity = new MobEntity(mobData.mob_id); newMobEntity.AddToGameWorld(this); } // Remove any existing energy tanks List<int> allEnergyTankIds = new List<int>(m_gameWorldModel.GetEnergyTankEntityMap().Keys); foreach (int energyTankId in allEnergyTankIds) { EnergyTankEntity energyTankEntity = m_gameWorldModel.GetEnergyTankEntity(energyTankId); energyTankEntity.RemoveFromGameWorld(this); } // (Re)Create energy tank entities for each energy tank in the room foreach (EnergyTankData energyTankData in currentRoom.EnergyTankMap.Values) { EnergyTankEntity newEnergyTankEntity = new EnergyTankEntity(energyTankData.energy_tank_id); newEnergyTankEntity.AddToGameWorld(this); } // generate all of the terrain tiles and static objects in the room gameWorldView.RebuildRoom(currentRoom); // Notify the overlay of a room reload m_contextOverlayController.OnRoomLoaded(currentRoom); }