diff --git a/CHANGELOG.md b/CHANGELOG.md index dcd1a420..d3f62e78 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,7 @@ ## Changelog ## #### dev #### +* Enable Exhaustive and Refund variables (The_Evil_Pickle) +* Make Exhaustive and Refund automatic (The_Evil_Pickle) #### v1.4.0 * Keywords diff --git a/src/main/java/com/evacipated/cardcrawl/mod/stslib/StSLib.java b/src/main/java/com/evacipated/cardcrawl/mod/stslib/StSLib.java index a7d56a5c..0330fe4f 100644 --- a/src/main/java/com/evacipated/cardcrawl/mod/stslib/StSLib.java +++ b/src/main/java/com/evacipated/cardcrawl/mod/stslib/StSLib.java @@ -1,8 +1,10 @@ package com.evacipated.cardcrawl.mod.stslib; import basemod.BaseMod; -import basemod.interfaces.*; - +import basemod.interfaces.EditCardsSubscriber; +import basemod.interfaces.EditKeywordsSubscriber; +import basemod.interfaces.EditStringsSubscriber; +import basemod.interfaces.PostInitializeSubscriber; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.Texture; import com.evacipated.cardcrawl.mod.stslib.variables.ExhaustiveVariable; @@ -15,11 +17,8 @@ import com.megacrit.cardcrawl.localization.Keyword; import com.megacrit.cardcrawl.localization.PowerStrings; import com.megacrit.cardcrawl.localization.RelicStrings; -import com.megacrit.cardcrawl.rooms.AbstractRoom; import java.nio.charset.StandardCharsets; -import java.util.HashMap; -import java.util.Map; @SpireInitializer public class StSLib implements diff --git a/src/main/java/com/evacipated/cardcrawl/mod/stslib/actions/common/RefundAction.java b/src/main/java/com/evacipated/cardcrawl/mod/stslib/actions/common/RefundAction.java index 20969bbe..4daf4b38 100644 --- a/src/main/java/com/evacipated/cardcrawl/mod/stslib/actions/common/RefundAction.java +++ b/src/main/java/com/evacipated/cardcrawl/mod/stslib/actions/common/RefundAction.java @@ -20,6 +20,7 @@ public RefundAction(AbstractCard targetCard, int energyCap) { this(targetCard, energyCap, targetCard.energyOnUse); } + public RefundAction(AbstractCard targetCard, int energyCap, int energyOnUse) { this.targetCard = targetCard; diff --git a/src/main/java/com/evacipated/cardcrawl/mod/stslib/fields/cards/AbstractCard/RefundFields.java b/src/main/java/com/evacipated/cardcrawl/mod/stslib/fields/cards/AbstractCard/RefundFields.java index e834ead7..b878cd1a 100644 --- a/src/main/java/com/evacipated/cardcrawl/mod/stslib/fields/cards/AbstractCard/RefundFields.java +++ b/src/main/java/com/evacipated/cardcrawl/mod/stslib/fields/cards/AbstractCard/RefundFields.java @@ -8,7 +8,8 @@ clz=AbstractCard.class, method=SpirePatch.CLASS ) -public class RefundFields { +public class RefundFields +{ public static SpireField refund = new SpireField<>(() -> 0); public static SpireField baseRefund = new SpireField<>(() -> 0); public static SpireField isRefundUpgraded = new SpireField<>(() -> false); diff --git a/src/main/java/com/evacipated/cardcrawl/mod/stslib/patches/RefundExhaustivePatch.java b/src/main/java/com/evacipated/cardcrawl/mod/stslib/patches/RefundExhaustivePatch.java index 03b56b92..b36c6f9e 100644 --- a/src/main/java/com/evacipated/cardcrawl/mod/stslib/patches/RefundExhaustivePatch.java +++ b/src/main/java/com/evacipated/cardcrawl/mod/stslib/patches/RefundExhaustivePatch.java @@ -6,25 +6,33 @@ import com.evacipated.cardcrawl.mod.stslib.variables.ExhaustiveVariable; import com.evacipated.cardcrawl.modthespire.lib.SpirePatch; import com.megacrit.cardcrawl.cards.AbstractCard; +import com.megacrit.cardcrawl.cards.red.Corruption; import com.megacrit.cardcrawl.characters.AbstractPlayer; import com.megacrit.cardcrawl.dungeons.AbstractDungeon; import com.megacrit.cardcrawl.monsters.AbstractMonster; @SpirePatch( - cls="com.megacrit.cardcrawl.characters.AbstractPlayer", + clz=AbstractPlayer.class, method="useCard" ) -public class RefundExhaustivePatch { - public static void Prefix(final AbstractPlayer p, final AbstractCard c, final AbstractMonster monster, final int energyOnUse) { - if (ExhaustiveField.ExhaustiveFields.exhaustive.get(c) > -1) { - ExhaustiveVariable.increment(c); - } - } - public static void Postfix(final AbstractPlayer p, final AbstractCard c, final AbstractMonster monster, final int energyOnUse) { - if (RefundFields.refund.get(c) > 0) { - if (!c.freeToPlayOnce && ((c.costForTurn == -1 && energyOnUse > 0) || c.costForTurn > 0 && (!p.hasPower("Corruption") || c.type != AbstractCard.CardType.SKILL))) { - AbstractDungeon.actionManager.addToBottom(new RefundAction(c, RefundFields.refund.get(c), energyOnUse)); - } - } - } +public class RefundExhaustivePatch +{ + public static void Prefix(AbstractPlayer p, AbstractCard c, AbstractMonster monster, int energyOnUse) + { + if (ExhaustiveField.ExhaustiveFields.exhaustive.get(c) > -1) { + ExhaustiveVariable.increment(c); + } + } + + public static void Postfix(AbstractPlayer p, AbstractCard c, AbstractMonster monster, int energyOnUse) + { + if (RefundFields.refund.get(c) > 0) { + if (!c.freeToPlayOnce + && ((c.costForTurn == -1 && energyOnUse > 0) || c.costForTurn > 0 + && (!p.hasPower(Corruption.ID) + || c.type != AbstractCard.CardType.SKILL))) { + AbstractDungeon.actionManager.addToBottom(new RefundAction(c, RefundFields.refund.get(c), energyOnUse)); + } + } + } } diff --git a/src/main/java/com/evacipated/cardcrawl/mod/stslib/variables/RefundVariable.java b/src/main/java/com/evacipated/cardcrawl/mod/stslib/variables/RefundVariable.java index 5310c96a..55b9a3ea 100644 --- a/src/main/java/com/evacipated/cardcrawl/mod/stslib/variables/RefundVariable.java +++ b/src/main/java/com/evacipated/cardcrawl/mod/stslib/variables/RefundVariable.java @@ -1,12 +1,8 @@ package com.evacipated.cardcrawl.mod.stslib.variables; -import com.evacipated.cardcrawl.mod.stslib.fields.cards.AbstractCard.ExhaustiveField; +import basemod.abstracts.DynamicVariable; import com.evacipated.cardcrawl.mod.stslib.fields.cards.AbstractCard.RefundFields; -import com.evacipated.cardcrawl.mod.stslib.powers.ExhaustiveNegationPower; import com.megacrit.cardcrawl.cards.AbstractCard; -import com.megacrit.cardcrawl.dungeons.AbstractDungeon; - -import basemod.abstracts.DynamicVariable; public class RefundVariable extends DynamicVariable { @@ -42,14 +38,14 @@ public boolean upgraded(AbstractCard card) public static void setBaseValue(AbstractCard card, int amount) { - RefundFields.baseRefund.set(card, amount); + RefundFields.baseRefund.set(card, amount); RefundFields.refund.set(card, amount); card.initializeDescription(); } public static void upgrade(AbstractCard card, int amount) { - RefundFields.isRefundUpgraded.set(card, true); + RefundFields.isRefundUpgraded.set(card, true); setBaseValue(card, RefundFields.baseRefund.get(card) + amount); } }