Пример #1
0
        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);
 }
Пример #3
0
 public void Publish(GameEvents gameEvent, GameEventParameters parameters)
 {
     _emitter.emit(gameEvent, parameters);
 }
 public void AddRelevantGameEvent(GameEventParameters gameEvent)
 {
     m_relevantGameEvents.Add(gameEvent);
 }
        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()));
            }
        }
Пример #6
0
        private void OnPlayerKilled(GameEventParameters parameters)
        {
            var pkParams = parameters as PlayerKilledEventParameters;

            CheckForWinner();
        }
Пример #7
0
 private void QueueOnPlayerKilled(GameEventParameters parameters)
 {
     Core.schedule(1.0f, _ => OnPlayerKilled(parameters));
 }