Example #1
0
        public void Handle(KillEventRecord record)
        {
            PlayerStats person;

            if (record.attacker.Id != null && Players.TryGetValue(record.attacker.Id, out person))
            {
                lock (person)
                    person.RegisterDeathEvent(record);
            }
            if (record.victim.Id != null && record.attacker.Id != record.victim.Id && Players.TryGetValue(record.victim.Id, out person))
            {
                lock (person)
                    person.RegisterDeathEvent(record);
            }
        }
Example #2
0
        public void RegisterDeathEvent(KillEventRecord record)
        {
            if (record.attacker.Id == record.victim.Id)
            {
                _stat.Suicides++;
            }
            else if (record.attacker.Id == CharacterId)
            {
                if (record.victim.Faction != record.attacker.Faction)
                {
                    _stat.Kills++;
                }
                else
                {
                    _stat.TeamKills++;
                }

                if (!string.IsNullOrEmpty(record.victim.Outfit) && record.victim.Outfit == record.attacker.Outfit)
                {
                    _stat.OutfitKills++;
                }
                if (record.headshot && record.victim.Faction != record.attacker.Faction)
                {
                    _stat.HeadshotEnemyKills++;
                }
                if (record.victim.Faction != record.attacker.Faction && record.weaponName != null && record.weaponName.IndexOf("Orbital Strike", StringComparison.OrdinalIgnoreCase) == -1 && record.attackerVehicle.Name == null)
                {
                    _stat.ConventionalKills++;
                }
            }
            else
            {
                if (record.attacker.Faction != record.victim.Faction)
                {
                    _stat.Deaths++;
                }
                else
                {
                    _stat.TeamDeaths++;
                }
                if (!string.IsNullOrEmpty(record.victim.Outfit) && record.attacker.Outfit == record.victim.Outfit)
                {
                    _stat.OutfitDeaths++;
                }
            }
            Events.Add(record);
        }