package stsjorbsmod.cards.cull; import com.megacrit.cardcrawl.actions.AbstractGameAction; import com.megacrit.cardcrawl.actions.common.ApplyPowerAction; import com.megacrit.cardcrawl.actions.common.DamageAction; import com.megacrit.cardcrawl.cards.AbstractCard; 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 com.megacrit.cardcrawl.powers.AbstractPower; import stsjorbsmod.JorbsMod; import stsjorbsmod.cards.CustomJorbsModCard; import stsjorbsmod.cards.OnEntombedSubscriber; import stsjorbsmod.characters.Cull; import stsjorbsmod.patches.EntombedField; import stsjorbsmod.patches.EphemeralField; import stsjorbsmod.powers.EntombedGrimDirgePower; public class GrimDirge extends CustomJorbsModCard implements OnEntombedSubscriber { public static final String ID = JorbsMod.makeID(GrimDirge.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 = Cull.Enums.CULL_CARD_COLOR; private static final int COST = 2; private static final int DAMAGE = 30; private static final int UPGRADE_DAMAGE = 10; private static final int EXHUME_TURN = 3; private String grimDirgePowerInstanceID; public GrimDirge() { super(ID, COST, TYPE, COLOR, RARITY, TARGET); EntombedField.entombed.set(this, true); EphemeralField.ephemeral.set(this, true); baseDamage = DAMAGE; baseMagicNumber = EXHUME_TURN; } @Override public void use(AbstractPlayer p, AbstractMonster m) { addToBot(new DamageAction(m, new DamageInfo(p, damage), AbstractGameAction.AttackEffect.SLASH_VERTICAL)); } @Override public void onCardEntombed() { AbstractPower grimDirgePower = new EntombedGrimDirgePower(AbstractDungeon.player, this, EXHUME_TURN); grimDirgePowerInstanceID = grimDirgePower.ID; addToTop(new ApplyPowerAction(AbstractDungeon.player, AbstractDungeon.player, grimDirgePower)); } @Override public AbstractCard makeStatEquivalentCopy() { AbstractCard c = super.makeStatEquivalentCopy(); ((GrimDirge) c).grimDirgePowerInstanceID = grimDirgePowerInstanceID; return c; } @Override public void upgrade() { if (!upgraded) { upgradeDamage(UPGRADE_DAMAGE); upgradeName(); upgradeDescription(); } } }