public override void ActivateAbility(Action action, PassiveAbilityInstance instance) { Debug.Log("Blooooock!"); if (action is AttackAction) { CardInstance attacker = ((AttackAction)action).attacker; if (attacker.owner != instance.owner.owner) { Debug.Log("Block activated ------------"); ChangeTarget((AttackAction)action, instance.owner); if (canCounter) { if (actionSystem != null) { actionSystem.ExecuteAction(new AttackAction(attacker, instance.owner, counterPower)); } } } } else { throw new System.Exception("Invalid Action Exception - Block Ability can only handle AttackAction"); } }
public abstract void ActivateAbility(Action action, PassiveAbilityInstance instance);
public void UnregisterListener(PassiveAbilityInstance ability) { this.abilities.Remove(ability); }
public override AbilityInstance GetInstance(CardInstance owner) { PassiveAbilityInstance blockAbilityInstance = new PassiveAbilityInstance(owner, this, triggerEvent); return(blockAbilityInstance); }
public void RegisterListener(PassiveAbilityInstance ability) { this.abilities.Add(ability); }