package stsjorbsmod.cards.wanderer; import com.megacrit.cardcrawl.actions.AbstractGameAction.AttackEffect; import com.megacrit.cardcrawl.actions.common.DamageAction; import com.megacrit.cardcrawl.actions.common.DrawCardAction; import com.megacrit.cardcrawl.actions.common.GainEnergyAction; import com.megacrit.cardcrawl.cards.DamageInfo; import com.megacrit.cardcrawl.characters.AbstractPlayer; import com.megacrit.cardcrawl.dungeons.AbstractDungeon; import com.megacrit.cardcrawl.monsters.AbstractMonster; import stsjorbsmod.JorbsMod; import stsjorbsmod.cards.CustomJorbsModCard; import stsjorbsmod.characters.Wanderer; import stsjorbsmod.util.UniqueCardUtils; public class Mania extends CustomJorbsModCard { public static final String ID = JorbsMod.makeID(Mania.class); private static final CardRarity RARITY = CardRarity.UNCOMMON; private static final CardTarget TARGET = CardTarget.ENEMY; private static final CardType TYPE = CardType.ATTACK; public static final CardColor COLOR = Wanderer.Enums.WANDERER_CARD_COLOR; private static final int COST = 1; private static final int BASE_DAMAGE = 0; private static final int UPGRADE_PLUS_BASE_DMG = 3; private static final int DAMAGE_PER_UNIQUE_CARD = 1; private static final int ALL_UNIQUE_ENERGY = 1; private static final int ALL_UNIQUE_DRAW = 1; public Mania() { super(ID, COST, TYPE, COLOR, RARITY, TARGET); damage = baseDamage = BASE_DAMAGE; magicNumber = baseMagicNumber = DAMAGE_PER_UNIQUE_CARD; metaMagicNumber = baseMetaMagicNumber = ALL_UNIQUE_ENERGY; urMagicNumber = baseUrMagicNumber = ALL_UNIQUE_DRAW; } @Override public int calculateBonusBaseDamage() { return UniqueCardUtils.countUniqueCards(AbstractDungeon.player.hand) * magicNumber; } private boolean isEligibleForExtraEffect() { return UniqueCardUtils.countUniqueCards(AbstractDungeon.player.hand) == AbstractDungeon.player.hand.size(); } @Override public void use(AbstractPlayer p, AbstractMonster m) { addToBot(new DamageAction(m, new DamageInfo(p, damage), AttackEffect.SLASH_VERTICAL)); if (isEligibleForExtraEffect()) { addToBot(new GainEnergyAction(metaMagicNumber)); addToBot(new DrawCardAction(p, urMagicNumber)); } } @Override public boolean shouldGlowGold() { return isEligibleForExtraEffect(); } @Override public String getRawDynamicDescriptionSuffix() { return cardStrings.EXTENDED_DESCRIPTION[0]; } @Override public void upgrade() { if (!upgraded) { upgradeName(); upgradeDamage(UPGRADE_PLUS_BASE_DMG); upgradeDescription(); } } }