//0 = not dead, 1 = dead, 2 = overkill public int dealDamage(int damage, HearthstoneBoard board) { if (divineShield) { foreach (Card c in board.getBoardFromMinion(this)) { c.performedAction(new DivineShieldLossAction(this), board); } divineShield = false; board.printDebugMessage("Damage taken: 0 (divine shield pop) on " + getReadableName(), HearthstoneBoard.OutputPriority.DAMAGES); return(0); } hp = hp - damage; board.printDebugMessage("Damage taken: " + damage + " on " + getReadableName(), HearthstoneBoard.OutputPriority.DAMAGES); performedAction(new DamageTakenAction(), board); if (hp <= 0) { board.addToPendingDeath(this); if (hp < 0) { return(2); } else { return(1); } } return(0); }