private void OnTeamOutfitChangeEvent(object sender, ScrimMessageEventArgs <TeamOutfitChangeMessage> e) { if (MatchConfiguration.IsManualWorldId) { return; } int?worldId; var message = e.Message; var changeType = message.ChangeType; bool isRollBack = false; if (changeType == TeamChangeType.Add) { worldId = e.Message.Outfit.WorldId; } else { worldId = _teamsManager.GetNextWorldId(MatchConfiguration.WorldId); isRollBack = true; } if (worldId == null) { MatchConfiguration.ResetWorldId(); SendMatchConfigurationUpdateMessage(); } else if (MatchConfiguration.TrySetWorldId((int)worldId, false, isRollBack)) { SendMatchConfigurationUpdateMessage(); } }
private async void OnRulesetRuleChangeEvent(object sender, ScrimMessageEventArgs <RulesetRuleChangeMessage> e) { if (_activeRuleset.Id == e.Message.Ruleset.Id) { await SetActiveRulesetAsync(); } // TODO: specific methods for only updating Rule Type that changed (Action Rules or Item Category Rules) }
private async Task HandleRulesetRuleChangeMesssage(object sender, ScrimMessageEventArgs <RulesetRuleChangeMessage> e) { var changedRulesetId = e.Message.Ruleset.Id; if (changedRulesetId == ActiveRuleset.Id) { await SetUpActiveRulesetAsync(); } }
private async Task OnFacilityControlEvent(object sender, ScrimMessageEventArgs <ScrimFacilityControlActionEventMessage> e) { if (!MatchConfiguration.EndRoundOnFacilityCapture) { return; } var message = e.Message; var controlEvent = message.FacilityControl; if (controlEvent.FacilityId == MatchConfiguration.FacilityId && controlEvent.WorldId == MatchConfiguration.WorldId) { await EndRound(); } }
private void ReceiveTeamPlayerChangeEvent(object sender, ScrimMessageEventArgs <TeamPlayerChangeMessage> e) { var message = e.Message; var player = message.Player; switch (message.ChangeType) { case TeamPlayerChangeType.Add: AddCharacterSubscription(player.Id); break; case TeamPlayerChangeType.Remove: RemoveCharacterSubscription(player.Id); break; } }
private void ReceiveMatchConfigurationUpdateEvent(object sender, ScrimMessageEventArgs <MatchConfigurationUpdateMessage> e) { var message = e.Message; var matchConfiguration = message.MatchConfiguration; SetFacilitySubscription(matchConfiguration.FacilityId); SetWorldSubscription(matchConfiguration.WorldId); if (matchConfiguration.SaveEventsToDatabase) { EnableEventStoring(); } else { DisableEventStoring(); } }
private async Task OnMatchTimerTick(object sender, ScrimMessageEventArgs <MatchTimerTickMessage> e) { var message = e.Message; SetLatestTimerTickMessage(e.Message); var status = message.MatchTimerStatus; var state = status.State; if (state == MatchTimerState.Stopped && _isRunning) { await EndRound(); return; } }
private void HandleRulesetOverlayConfigurationChangeMessage(object sender, ScrimMessageEventArgs <RulesetOverlayConfigurationChangeMessage> e) { var ruleset = e.Message.Ruleset; var overlayConfiguration = e.Message.OverlayConfiguration; _activateRulesetAutoEvent.WaitOne(); if (ruleset.Id != ActiveRuleset.Id) { _activateRulesetAutoEvent.Set(); return; } ActiveRuleset.RulesetOverlayConfiguration.UseCompactLayout = overlayConfiguration.UseCompactLayout; ActiveRuleset.RulesetOverlayConfiguration.StatsDisplayType = overlayConfiguration.StatsDisplayType; ActiveRuleset.RulesetOverlayConfiguration.ShowStatusPanelScores = overlayConfiguration.ShowStatusPanelScores; _activateRulesetAutoEvent.Set(); }
private void HandleRulesetSettingChangeMessage(object sender, ScrimMessageEventArgs <RulesetSettingChangeMessage> e) { var ruleset = e.Message.Ruleset; _activateRulesetAutoEvent.WaitOne(); if (ruleset.Id != ActiveRuleset.Id) { _activateRulesetAutoEvent.Set(); return; } ActiveRuleset.Name = ruleset.Name; ActiveRuleset.DefaultMatchTitle = ruleset.DefaultMatchTitle; ActiveRuleset.DefaultRoundLength = ruleset.DefaultRoundLength; ActiveRuleset.DefaultEndRoundOnFacilityCapture = ruleset.DefaultEndRoundOnFacilityCapture; _activateRulesetAutoEvent.Set(); }
protected virtual void OnRaiseTeamLockStatusChangeEvent(ScrimMessageEventArgs <TeamLockStatusChangeMessage> e) { RaiseTeamLockStatusChangeEvent?.Invoke(this, e); }
protected virtual void OnRaiseMatchConfigurationUpdateEvent(ScrimMessageEventArgs <MatchConfigurationUpdateMessage> e) { RaiseMatchConfigurationUpdateEvent?.Invoke(this, e); }
protected virtual void OnRaiseMatchTimerTickEvent(ScrimMessageEventArgs <MatchTimerTickMessage> e) { RaiseMatchTimerTickEvent?.Invoke(this, e); }
protected virtual void OnRaisePlayerLogoutEvent(ScrimMessageEventArgs <PlayerLogoutMessage> e) { RaisePlayerLogoutEvent?.Invoke(this, e); }
protected virtual void OnRaiseTeamStatUpdateEvent(ScrimMessageEventArgs <TeamStatUpdateMessage> e) { RaiseTeamStatUpdateEvent?.Invoke(this, e); }
protected virtual void OnRaiseScrimKillfeedEventEvent(ScrimMessageEventArgs <ScrimKillfeedEventMessage> e) { RaiseScrimKillfeedEvent?.Invoke(this, e); }
protected virtual void OnRaiseRulesetRuleChangeEvent(ScrimMessageEventArgs <RulesetRuleChangeMessage> e) { RaiseRulesetRuleChangeEvent?.Invoke(this, e); }
protected virtual void OnRaiseRulesetOverlayConfigurationChangeEvent(ScrimMessageEventArgs <RulesetOverlayConfigurationChangeMessage> e) { RaiseRulesetOverlayConfigurationChangeEvent?.Invoke(this, e); }
protected virtual void OnRaiseConstructedTeamInfoChangeEvent(ScrimMessageEventArgs <ConstructedTeamInfoChangeMessage> e) { RaiseConstructedTeamInfoChangeEvent?.Invoke(this, e); }
protected virtual void OnRaiseScrimVehicleDestructionActionEvent(ScrimMessageEventArgs <ScrimVehicleDestructionActionEventMessage> e) { RaiseScrimVehicleDestructionActionEvent?.Invoke(this, e); }
protected virtual void OnRaiseScrimFacilityControlActionEvent(ScrimMessageEventArgs <ScrimFacilityControlActionEventMessage> e) { RaiseScrimFacilityControlActionEvent?.Invoke(this, e); }
protected virtual void OnRaiseScrimObjectiveTickActionEvent(ScrimMessageEventArgs <ScrimObjectiveTickActionEventMessage> e) { RaiseScrimObjectiveTickActionEvent?.Invoke(this, e); }
protected virtual void OnRaisePlayerNameDisplayChangeEvent(ScrimMessageEventArgs <PlayerNameDisplayChangeMessage> e) { RaisePlayerNameDisplayChangeEvent?.Invoke(this, e); }
private async void OnActiveRulesetChangeEvent(object sender, ScrimMessageEventArgs <ActiveRulesetChangeMessage> e) { await SetActiveRulesetAsync(); }