Ejemplo n.º 1
0
        private void _ProcessExperience(JToken payload)
        {
            //_Logger.LogInformation($"Processing exp: {payload}");

            string?charID = payload.Value <string?>("character_id");

            if (charID == null)
            {
                return;
            }
            _Characters.Cache(charID);

            ExpEvent ev = new ExpEvent()
            {
                Amount    = payload.GetInt32("amount", -1),
                ExpID     = payload.GetInt32("experience_id", 0),
                LoadoutID = payload.GetInt32("loadout_id", -1),
                SourceID  = payload.GetString("character_id", "0"),
                TargetID  = payload.GetString("other_id", "0"),
                Timestamp = payload.CensusTimestamp("timestamp"),
                WorldID   = payload.GetInt32("world_id", -1),
                ZoneID    = payload.GetInt32("zone_id", -1)
            };

            _EventBroadcast.EmitExpEvent(ev);
        }
Ejemplo n.º 2
0
        private void ExpHandler(object?sender, Ps2EventArgs <ExpEvent> args)
        {
            if (_State != MatchState.RUNNING)
            {
                return;
            }

            ExpEvent ev = args.Payload;

            TrackedPlayer?runner = _GetRunnerFromID(ev.SourceID);

            if (runner == null)
            {
                runner = _GetRunnerFromID(ev.TargetID);
            }

            if (runner == null)
            {
                return;
            }

            runner.Exp.Add(ev);

            if (_IsAssistEvent(ev.ExpID))
            {
                Character c = _GetCharacterFromID(ev.SourceID)
                              ?? _GetCharacterFromID(ev.TargetID)
                              ?? throw new ArgumentNullException($"Expected character ID {ev.SourceID} or {ev.TargetID} to exist, on team {runner.Index}:{runner.RunnerName}");

                _MatchMessages.Log($"Team {runner.Index}:{runner.RunnerName} @{c.Name} ASSIST");
            }
        }
Ejemplo n.º 3
0
 public void EmitExpEvent(ExpEvent ev)
 {
     OnExpEvent?.Invoke(this, new Ps2EventArgs <ExpEvent>(ev));
 }