예제 #1
0
        /// <summary>
        /// Used to handle player death. There should only be the player tank
        /// </summary>
        /// <param name="tank">Tank.</param>
        public override void TankDies(TankManager tank)
        {
            if (m_MatchOver)
            {
                return;
            }

            base.TankDies(tank);
            m_MatchOver     = true;
            m_Winner        = null;
            m_MissionFailed = true;
            HeatmapsHelper.SinglePlayerDeath(m_Settings.map.id, tank.transform.position);
        }
        /// <summary>
        /// Used to handle player death. There should only be the player tank
        /// </summary>
        /// <param name="tank">Tank.</param>
        public override void TankDies(TankManager tank)
        {
            if (m_MatchOver)
            {
                return;
            }

            base.TankDies(tank);
            m_MatchOver     = true;
            m_Winner        = null;
            m_MissionFailed = true;
            HeatmapsHelper.SinglePlayerDeath(m_Settings.map.id, tank.transform.position);

            // <VENZELL> уменьшение сложности
            PlayerDataManager.s_Instance.ChangeDifficyltyLevel(-1);
        }
예제 #3
0
        /// <summary>
        /// Handles the kill
        /// </summary>
        /// <param name="killed">Killed</param>
        public void HandleKill(TankManager killed)
        {
            TankManager killer      = GetTankByPlayerNumber(killed.health.lastDamagedByPlayerNumber);
            string      explosionId = killed.health.lastDamagedByExplosionId;

            if (killer != null)
            {
                if (killer.playerNumber == killed.playerNumber)
                {
                    m_RulesProcessor.HandleSuicide(killer);
                    if (m_GameSettings.isSinglePlayer)
                    {
                        AnalyticsHelper.SinglePlayerSuicide(m_GameSettings.map.id, explosionId);
                    }
                    else
                    {
                        RpcAnnounceKill(m_KillLogPhrases.GetRandomSuicidePhrase(killer.playerName, killer.playerColor));
                        AnalyticsHelper.MultiplayerSuicide(m_GameSettings.map.id, m_GameSettings.mode.id, killer.playerTankType.id, explosionId);
                        HeatmapsHelper.MultiplayerSuicide(m_GameSettings.map.id, m_GameSettings.mode.id, killer.playerTankType.id, explosionId, killer.transform.position);
                    }
                }
                else
                {
                    m_RulesProcessor.HandleKillerScore(killer, killed);
                    if (!m_GameSettings.isSinglePlayer)
                    {
                        RpcAnnounceKill(m_KillLogPhrases.GetRandomKillPhrase(killer.playerName, killer.playerColor, killed.playerName, killed.playerColor));
                        AnalyticsHelper.MultiplayerTankKilled(m_GameSettings.map.id, m_GameSettings.mode.id, killed.playerTankType.id, killer.playerTankType.id, explosionId);
                        HeatmapsHelper.MultiplayerDeath(m_GameSettings.map.id, m_GameSettings.mode.id, killed.playerTankType.id, killer.playerTankType.id, explosionId, killed.transform.position);
                        HeatmapsHelper.MultiplayerKill(m_GameSettings.map.id, m_GameSettings.mode.id, killed.playerTankType.id, killer.playerTankType.id, explosionId, killer.transform.position);
                    }
                }
            }

            s_Tanks.Sort(TankSort);

            m_RulesProcessor.RegenerateHudScoreList();
        }