private int PunishTheWeak_Damage_Handler(Targetable sender, Targetable receiver, ref int damageAmount, DamageEffects.DamageType damageType)
        {
            List<Targetable> sortedNonHeroes = getSortedNonHeroes();

            if (receiver.Equals(sortedNonHeroes[0]))
                return 1;
            else
                return -1;
        }
 int TaMoko_Damage_Handler(object sender, object receiver, ref int damageAmount, DamageEffects.DamageType damageType)
 {
     if (receiver.Equals(this))
         return -1;
     return 0;
 }
 int HakaOfShielding_DamageHandler(object sender, object receiver, ref int damageAmount, DamageEffects.DamageType damageType)
 {
     if (receiver.Equals(this)) {
         DamageEffects.damageDealtHandlers.Remove(HakaOfShielding_DamageHandler);
         return  GameBoard.discardedCardsThisTurn.Count * (-2);
     }
     return 0;
 }
 int HakaOfBattleDamageHandler(object sender, Targetable receiver, ref int damageAmount, DamageEffects.DamageType damageType)
 {
     if (sender.Equals(this))
     {
         DamageEffects.damageDealtHandlers.Remove(HakaOfBattleDamageHandler);
         return GameBoard.discardedCardsThisTurn.Count;
     }
     return 0;
 }
 private int EnduringIntercession_Damage_Handler(Targetable sender, Targetable receiver, ref int damageAmount, DamageEffects.DamageType damageType)
 {
     bool receiverIsNotHaka= !receiver.GetType().Equals(typeof(Haka));
     if (receiverIsNotHaka) {
         if (typeof(GameEnvironment).IsAssignableFrom(sender.GetType()) || GameEngine.getEnvironment().getMinions().Contains(sender)) {
             DamageEffects.DealDamage(sender, new List<Targetable>() { this }, damageAmount, damageType);
             return (-1) * damageAmount;//balances out the amount that it deals to player that isn't haka
         }
     }
     return 0;
 }
 public int GroundPound_DamageHandler(object sender, Targetable receiver, ref int damageAmount, DamageEffects.DamageType damageType)
 {
     bool senderIsNotHero= !typeof(Hero).IsAssignableFrom(sender.GetType());
     if(senderIsNotHero)
         damageAmount = 0;
     return 0;
 }
 public int ObsidianFieldHandler(Targetable sender, Targetable receiver, ref int damageAmount, DamageEffects.DamageType damageType)
 {
     return 1;
 }