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); }
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"); } }
public void EmitExpEvent(ExpEvent ev) { OnExpEvent?.Invoke(this, new Ps2EventArgs <ExpEvent>(ev)); }