PRoConEvents.MULTIbalancer.OnPlayerKilled C# (CSharp) Method

OnPlayerKilled() public method

public OnPlayerKilled ( PRoCon.Core.Kill kKillerVictimDetails ) : void
kKillerVictimDetails PRoCon.Core.Kill
return void
        public override void OnPlayerKilled(Kill kKillerVictimDetails)
        {
            if (!fIsEnabled) return;

            String killer = kKillerVictimDetails.Killer.SoldierName;
            String victim = kKillerVictimDetails.Victim.SoldierName;
            String weapon = kKillerVictimDetails.DamageType;

            bool isAdminKill = false;
            if (String.IsNullOrEmpty(killer)) {
            killer = victim;
            isAdminKill = (weapon == "Death");
            }

            DebugWrite("^9^bGot OnPlayerKilled^n: " + killer  + " -> " + victim + " (" + weapon + ")", 8);
            if (isAdminKill) DebugWrite("^9OnPlayerKilled: admin kill: ^b" + victim + "^n (" + weapon + ")", 7);

            try {

            if (fGameState == GameState.Unknown || fGameState == GameState.Warmup) {
            bool wasUnknown = (fGameState == GameState.Unknown);
            fGameState = (TotalPlayerCount() < 4) ? GameState.Warmup : GameState.Playing;
            if (wasUnknown || fGameState == GameState.Playing) DebugWrite("OnPlayerKilled: ^b^3Game state = " + fGameState, 6);
            if (wasUnknown && fGameVersion == GameVersion.BF4) UpdateFactions();
            fNeedPlayerListUpdate = (fGameState == GameState.Playing);
            }

            if (!isAdminKill) {
            KillUpdate(killer, victim);

            if (fPluginState == PluginState.Active && fGameState == GameState.Playing) {
                if (!IsModelInSync()) {
                    if (fTimeOutOfJoint == 0) {
                        // If a move or reassign takes too long, abort it, checked in OnListPlayers
                        fTimeOutOfJoint = GetTimeInRoundMinutes();
                    }
                } else {
                    fTimeOutOfJoint = 0;
                    if (EnableAdminKillForFastBalance) {
                        FastBalance("Kill: ");
                    }
                    // Ok to call normal balance after FastBalance, they exclude from each other
                    BalanceAndUnstack(victim);
                }
            }
            }
            } catch (Exception e) {
            ConsoleException(e);
            }
        }
MULTIbalancer