diff --git a/src/main/java/stsjorbsmod/actions/DrainLifeAction.java b/src/main/java/stsjorbsmod/actions/DrainLifeAction.java index cda16e0bd..739488a2c 100644 --- a/src/main/java/stsjorbsmod/actions/DrainLifeAction.java +++ b/src/main/java/stsjorbsmod/actions/DrainLifeAction.java @@ -34,7 +34,7 @@ public void update() { if (AbstractDungeon.getCurrRoom().monsters.areMonstersBasicallyDead()) { AbstractDungeon.actionManager.clearPostCombatActions(); } else { - this.addToTop(new WaitAction(0.1F)); + AbstractDungeon.actionManager.addToTop(new WaitAction(0.1F)); } } diff --git a/src/main/java/stsjorbsmod/actions/ExposeAction.java b/src/main/java/stsjorbsmod/actions/ExposeAction.java index cd6c79b00..e0f126db9 100644 --- a/src/main/java/stsjorbsmod/actions/ExposeAction.java +++ b/src/main/java/stsjorbsmod/actions/ExposeAction.java @@ -42,7 +42,7 @@ public void update() { } if (nonMinionsLeft) { AbstractPlayer p = AbstractDungeon.player; - addToBot(new LoseHPAction(p, p, hpLoss)); + AbstractDungeon.actionManager.addToBottom(new LoseHPAction(p, p, hpLoss)); } if (AbstractDungeon.getCurrRoom().monsters.areMonstersBasicallyDead()) { AbstractDungeon.actionManager.clearPostCombatActions(); diff --git a/src/main/java/stsjorbsmod/actions/HealOnFatalDamageAction.java b/src/main/java/stsjorbsmod/actions/HealOnFatalDamageAction.java index f84d5f163..939d351ce 100644 --- a/src/main/java/stsjorbsmod/actions/HealOnFatalDamageAction.java +++ b/src/main/java/stsjorbsmod/actions/HealOnFatalDamageAction.java @@ -41,7 +41,7 @@ public void update() { if ((this.target.isDying || this.target.currentHealth <= 0) && !this.target.halfDead) { if (worksOnMinions || !this.target.hasPower(MinionPower.POWER_ID)) { AbstractPlayer p = AbstractDungeon.player; - addToBot(new HealAction(p, p, heal)); + AbstractDungeon.actionManager.addToBottom(new HealAction(p, p, heal)); } } if (AbstractDungeon.getCurrRoom().monsters.areMonstersBasicallyDead()) { diff --git a/src/main/java/stsjorbsmod/cards/cull/Brooding.java b/src/main/java/stsjorbsmod/cards/cull/Brooding.java index ff409678f..438262ad3 100644 --- a/src/main/java/stsjorbsmod/cards/cull/Brooding.java +++ b/src/main/java/stsjorbsmod/cards/cull/Brooding.java @@ -30,7 +30,7 @@ public Brooding() { @Override public void use(AbstractPlayer p, AbstractMonster abstractMonster) { - addToBot(new DrawCardAction(magicNumber)); + addToBot(new DrawCardAction(p, magicNumber)); AbstractCard c = AbstractDungeon.returnRandomCurse(); addToBot(new MakeTempCardInDiscardAction(c, CURSE_AMOUNT)); } diff --git a/src/main/java/stsjorbsmod/cards/cull/Shake.java b/src/main/java/stsjorbsmod/cards/cull/Shake.java index e95ab1426..130afcd56 100644 --- a/src/main/java/stsjorbsmod/cards/cull/Shake.java +++ b/src/main/java/stsjorbsmod/cards/cull/Shake.java @@ -49,7 +49,7 @@ private boolean isEligibleForExtraEffect() { @Override public void use(AbstractPlayer p, AbstractMonster abstractMonster) { if (abstractMonster.hasPower(VulnerablePower.POWER_ID)) { - addToBot(new DrawCardAction(magicNumber)); + addToBot(new DrawCardAction(p, magicNumber)); } addToBot(new ApplyPowerAction(abstractMonster, p, new VulnerablePower(abstractMonster, urMagicNumber, false))); } diff --git a/src/main/java/stsjorbsmod/cards/cull/Wail.java b/src/main/java/stsjorbsmod/cards/cull/Wail.java index 59e5fdd90..88839ba5e 100644 --- a/src/main/java/stsjorbsmod/cards/cull/Wail.java +++ b/src/main/java/stsjorbsmod/cards/cull/Wail.java @@ -31,7 +31,7 @@ public Wail() { @Override public void use(AbstractPlayer p, AbstractMonster abstractMonster) { addToBot(new ApplyPowerAction(abstractMonster, p, new VulnerablePower(abstractMonster, urMagicNumber, false))); - addToBot(new DrawCardAction(magicNumber)); + addToBot(new DrawCardAction(p, magicNumber)); } @Override diff --git a/src/main/java/stsjorbsmod/cards/cull/WakingDream.java b/src/main/java/stsjorbsmod/cards/cull/WakingDream.java index eab7a404d..48b63f517 100644 --- a/src/main/java/stsjorbsmod/cards/cull/WakingDream.java +++ b/src/main/java/stsjorbsmod/cards/cull/WakingDream.java @@ -1,5 +1,6 @@ package stsjorbsmod.cards.cull; +import com.evacipated.cardcrawl.mod.stslib.fields.cards.AbstractCard.AlwaysRetainField; import com.megacrit.cardcrawl.actions.common.ApplyPowerAction; import com.megacrit.cardcrawl.characters.AbstractPlayer; import com.megacrit.cardcrawl.monsters.AbstractMonster; @@ -23,7 +24,7 @@ public class WakingDream extends CustomJorbsModCard { public WakingDream() { super(ID, COST, TYPE, COLOR, RARITY, TARGET); - selfRetain = true; + AlwaysRetainField.alwaysRetain.set(this, true); exhaust = true; magicNumber = baseMagicNumber = INTANGIBLE; metaMagicNumber = baseMetaMagicNumber = EXTRA_COST_PER_RETAIN; @@ -34,7 +35,7 @@ public void use(AbstractPlayer p, AbstractMonster abstractMonster) { addToBot(new ApplyPowerAction(p, p, new IntangiblePlayerPower(p, magicNumber))); } - @Override + // @Override - TODO, uncomment once beta branch releases public void onRetained() { ++this.cost; ++this.costForTurn; diff --git a/src/main/java/stsjorbsmod/powers/DoubleExhaustPower.java b/src/main/java/stsjorbsmod/powers/DoubleExhaustPower.java index 856d18475..7483a1950 100644 --- a/src/main/java/stsjorbsmod/powers/DoubleExhaustPower.java +++ b/src/main/java/stsjorbsmod/powers/DoubleExhaustPower.java @@ -4,6 +4,7 @@ import com.megacrit.cardcrawl.actions.utility.UseCardAction; import com.megacrit.cardcrawl.cards.AbstractCard; import com.megacrit.cardcrawl.core.AbstractCreature; +import com.megacrit.cardcrawl.dungeons.AbstractDungeon; import com.megacrit.cardcrawl.monsters.AbstractMonster; import com.megacrit.cardcrawl.powers.AbstractPower; import stsjorbsmod.util.CardMetaUtils; @@ -30,7 +31,7 @@ public void onUseCard(AbstractCard card, UseCardAction action) { --this.amount; if (this.amount == 0) { - this.addToBot(new RemoveSpecificPowerAction(this.owner, this.owner, this.ID)); + AbstractDungeon.actionManager.addToBottom(new RemoveSpecificPowerAction(this.owner, this.owner, this.ID)); } else { updateDescription(); } @@ -40,7 +41,7 @@ public void onUseCard(AbstractCard card, UseCardAction action) { @Override public void atEndOfTurn(boolean isPlayer) { if (isPlayer) { - this.addToBot(new RemoveSpecificPowerAction(this.owner, this.owner, this.ID)); + AbstractDungeon.actionManager.addToBottom(new RemoveSpecificPowerAction(this.owner, this.owner, this.ID)); } } diff --git a/src/main/java/stsjorbsmod/powers/WastingEssencePower.java b/src/main/java/stsjorbsmod/powers/WastingEssencePower.java index 67ef91490..75dd19793 100644 --- a/src/main/java/stsjorbsmod/powers/WastingEssencePower.java +++ b/src/main/java/stsjorbsmod/powers/WastingEssencePower.java @@ -34,7 +34,7 @@ public void updateDescription() { public void onCardDraw(AbstractCard card) { if (card.type == AbstractCard.CardType.CURSE) { this.flash(); - addToBot(new DamageAllEnemiesAction(this.owner, DamageInfo.createDamageMatrix(this.amount, true), DamageInfo.DamageType.THORNS, AbstractGameAction.AttackEffect.POISON, true)); + AbstractDungeon.actionManager.addToBottom(new DamageAllEnemiesAction(this.owner, DamageInfo.createDamageMatrix(this.amount, true), DamageInfo.DamageType.THORNS, AbstractGameAction.AttackEffect.POISON, true)); } } @@ -42,7 +42,7 @@ public void onCardDraw(AbstractCard card) { public void onInitialApplication() { for (int i = 0; i < numberOfCurses; i++) { AbstractCard c = AbstractDungeon.returnRandomCurse(); - addToBot(new MakeTempCardInDiscardAction(c, 1)); + AbstractDungeon.actionManager.addToBottom(new MakeTempCardInDiscardAction(c, 1)); } } diff --git a/src/main/java/stsjorbsmod/util/CardMetaUtils.java b/src/main/java/stsjorbsmod/util/CardMetaUtils.java index 1360913b2..61543f327 100644 --- a/src/main/java/stsjorbsmod/util/CardMetaUtils.java +++ b/src/main/java/stsjorbsmod/util/CardMetaUtils.java @@ -1,6 +1,7 @@ package stsjorbsmod.util; import com.evacipated.cardcrawl.mod.stslib.StSLib; +import com.megacrit.cardcrawl.actions.GameActionManager; import com.megacrit.cardcrawl.cards.AbstractCard; import com.megacrit.cardcrawl.cards.CardQueueItem; import com.megacrit.cardcrawl.core.Settings; @@ -9,6 +10,9 @@ import stsjorbsmod.JorbsMod; import stsjorbsmod.cards.DowngradeableCard; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; + public class CardMetaUtils { /** * Downgrade implementation assumes that we are planning on downgrading only Jorbs mod game cards. If this assumption is @@ -65,6 +69,22 @@ public static void playCardAdditionalTime(AbstractCard card, AbstractMonster tar } tmp.purgeOnUse = true; - AbstractDungeon.actionManager.addCardQueueItem(new CardQueueItem(tmp, target, card.energyOnUse, true, true), true); + + // TODO: Replace the entire following block with the following line once beta branch releases... + // AbstractDungeon.actionManager.addCardQueueItem(new CardQueueItem(tmp, target, card.energyOnUse, true, true), true); + CardQueueItem cardQueueItem = new CardQueueItem(tmp, target, card.energyOnUse, true); + Method possibleAddCardQueueItemMethod = ReflectionUtils.tryGetMethod(GameActionManager.class, "addCardQueueItem", CardQueueItem.class, boolean.class); + if (possibleAddCardQueueItemMethod != null) { + // beta branch + try { + ReflectionUtils.setPrivateField(cardQueueItem, CardQueueItem.class, "autoplayCard", true); + possibleAddCardQueueItemMethod.invoke(AbstractDungeon.actionManager, cardQueueItem, true); + } catch (IllegalAccessException|InvocationTargetException e) { + throw new RuntimeException(e); + } + } else { + // main branch + AbstractDungeon.actionManager.cardQueue.add(cardQueueItem); + } } }