private void OnPlayerKilled(GameEventParameters parameters) { var pkParams = parameters as PlayerKilledEventParameters; if (pkParams.Killer != null && pkParams.Killed != pkParams.Killer) { var playerScore = ContextHelper.PlayerScores?.First(s => s.PlayerIndex == pkParams.Killer.PlayerIndex); if (playerScore != null) { playerScore.Score++; } } CheckForWinner(); RespawnPlayer(pkParams.Killed); }
public void AddRelevantGameEvent(GameEventParameters gameEvent) { m_relevantGameEvents.Add(gameEvent); }
public void Publish(GameEvents gameEvent, GameEventParameters parameters) { _emitter.emit(gameEvent, parameters); }
public static string SerializeParametersByType(GameEventParameters jsonObject) { // HACKY COMPILE ASSERT // If you hit this, the number of game events changed and you need to update the below list { byte compile_assert = ((int)eGameEventType.k_game_event_type_count == 17) ? 0 : -1; compile_assert++; } switch (jsonObject.GetEventType()) { case eGameEventType.character_joined_game: return(SerializeParameters <GameEvent_CharacterJoinedGame>((GameEvent_CharacterJoinedGame)jsonObject)); case eGameEventType.character_left_game: return(SerializeParameters <GameEvent_CharacterLeftGame>((GameEvent_CharacterLeftGame)jsonObject)); case eGameEventType.character_died: return(SerializeParameters <GameEvent_CharacterDied>((GameEvent_CharacterDied)jsonObject)); case eGameEventType.character_moved: return(SerializeParameters <GameEvent_CharacterMoved>((GameEvent_CharacterMoved)jsonObject)); case eGameEventType.character_portaled: return(SerializeParameters <GameEvent_CharacterPortaled>((GameEvent_CharacterPortaled)jsonObject)); case eGameEventType.character_attacked: return(SerializeParameters <GameEvent_CharacterAttacked>((GameEvent_CharacterAttacked)jsonObject)); case eGameEventType.mob_spawned: return(SerializeParameters <GameEvent_MobSpawned>((GameEvent_MobSpawned)jsonObject)); case eGameEventType.mob_died: return(SerializeParameters <GameEvent_MobDied>((GameEvent_MobDied)jsonObject)); case eGameEventType.mob_moved: return(SerializeParameters <GameEvent_MobMoved>((GameEvent_MobMoved)jsonObject)); case eGameEventType.mob_attacked: return(SerializeParameters <GameEvent_MobAttacked>((GameEvent_MobAttacked)jsonObject)); case eGameEventType.mob_dialog: return(SerializeParameters <GameEvent_MobDialog>((GameEvent_MobDialog)jsonObject)); case eGameEventType.mob_player_prop_spotted: return(SerializeParameters <GameEvent_MobPlayerPropSpotted>((GameEvent_MobPlayerPropSpotted)jsonObject)); case eGameEventType.mob_player_prop_lost_track: return(SerializeParameters <GameEvent_MobPlayerPropLostTrack>((GameEvent_MobPlayerPropLostTrack)jsonObject)); case eGameEventType.mob_ai_prop_spotted: return(SerializeParameters <GameEvent_MobAIPropSpotted>((GameEvent_MobAIPropSpotted)jsonObject)); case eGameEventType.mob_energy_tank_prop_spotted: return(SerializeParameters <GameEvent_MobEnergyTankPropSpotted>((GameEvent_MobEnergyTankPropSpotted)jsonObject)); case eGameEventType.energy_tank_drained: return(SerializeParameters <GameEvent_EnergyTankDrained>((GameEvent_EnergyTankDrained)jsonObject)); case eGameEventType.energy_tank_hacked: return(SerializeParameters <GameEvent_EnergyTankHacked>((GameEvent_EnergyTankHacked)jsonObject)); default: throw new Exception(string.Format("Unhandled event type: {0}", jsonObject.GetEventType().ToString())); } }
private void OnPlayerKilled(GameEventParameters parameters) { var pkParams = parameters as PlayerKilledEventParameters; CheckForWinner(); }
private void QueueOnPlayerKilled(GameEventParameters parameters) { Core.schedule(1.0f, _ => OnPlayerKilled(parameters)); }