public void Activate(IPlayable owner) { if (!(owner is Playable m)) { throw new Exception($"Can't activate Adaptive Effect on non-Playable entity {owner}."); } IAura instance = new AdaptiveEffect(this, m); if (!_isSwitching) { if (m is Weapon) { if (m.Controller.Hero.AuraEffects == null) { m.Controller.Hero.AuraEffects = new AuraEffects(CardType.HERO); } } else if (m.AuraEffects == null) { m.AuraEffects = new AuraEffects(CardType.MINION); } } owner.Game.Auras.Add(instance); owner.OngoingEffect = instance; }
private AdaptiveEffect(AdaptiveEffect prototype, Playable owner) { _isSwitching = prototype._isSwitching; _valueFunction = prototype._valueFunction; _tag = prototype._tag; _operator = prototype._operator; _condition = prototype._condition; _lastValue = prototype._lastValue; _on = prototype._on; _owner = owner; }