public void RaiseEvent(CardGameEvent cardGameEvent, ParameterScope topLevelScope) { Debug.Log("Processing event: " + cardGameEvent); var effects = topLevelScope.GetAllTriggeredEffectsForEvent(cardGameEvent); var context = CreateContextFromEvent(cardGameEvent); Debug.Log($"{effects.Count} effects triggered"); for (int i = 0; i < effects.Count; i++) { effects[i].effect.ActivateEffect(effects[i].scope, context); if (context.wasActionCancelled) { // RaiseEvent() - raise cancellation event cardGameEvent.CancelEvent(); break; } } }
protected virtual CardEffectActivationContextBase CreateContextFromEvent(CardGameEvent cardGameEvent) { return(new CardEffectActivationContextBase() { }); }