diff --git a/src/main/java/chronoMods/coop/CoopCourierRoom.java b/src/main/java/chronoMods/coop/CoopCourierRoom.java new file mode 100644 index 0000000..6b27e38 --- /dev/null +++ b/src/main/java/chronoMods/coop/CoopCourierRoom.java @@ -0,0 +1,31 @@ +package chronoMods.coop; + +import chronoMods.coop.courier.CoopCourier; +import com.badlogic.gdx.graphics.g2d.SpriteBatch; +import com.megacrit.cardcrawl.dungeons.AbstractDungeon; +import com.megacrit.cardcrawl.rooms.AbstractRoom; + +// for downfall mod +public class CoopCourierRoom extends AbstractRoom { + private chronoMods.coop.courier.CoopCourierRoom realCoopCourierRoom; + + public CoopCourierRoom() { + this.realCoopCourierRoom = new chronoMods.coop.courier.CoopCourierRoom(); + } + + public void onPlayerEntry() { + realCoopCourierRoom.onPlayerEntry(); + } + + public void update() { + realCoopCourierRoom.update(); + } + + public void render(SpriteBatch sb) { + realCoopCourierRoom.render(sb); + } + + public void dispose() { + realCoopCourierRoom.dispose(); + } +} diff --git a/src/main/java/chronoMods/coop/CoopNeowReward.java b/src/main/java/chronoMods/coop/CoopNeowReward.java index 7aa6cd4..d3844e3 100644 --- a/src/main/java/chronoMods/coop/CoopNeowReward.java +++ b/src/main/java/chronoMods/coop/CoopNeowReward.java @@ -1,5 +1,6 @@ package chronoMods.coop; +import basemod.BaseMod; import chronoMods.TogetherManager; import chronoMods.coop.hubris.DuctTapeCard; import chronoMods.coop.infusions.InfusionHelper; @@ -53,6 +54,8 @@ import org.apache.logging.log4j.Logger; import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; public class CoopNeowReward { public static class NeowRewardDef { @@ -680,23 +683,29 @@ public void activate() { // Safety check for shittily implemented mods if (AbstractDungeon.player.getStartingRelics().size() == 0) { return; } - AbstractDungeon.player.loseRelic(((AbstractRelic)AbstractDungeon.player.relics.get(0)).relicId); - if (AbstractDungeon.player.getStartingRelics().get(0).equals("Burning Blood")) { - AbstractDungeon.getCurrRoom().spawnRelicAndObtain((Settings.WIDTH / 2), (Settings.HEIGHT / 2), RelicLibrary.getRelic("Black Blood").makeCopy()); - AbstractDungeon.bossRelicPool.remove("Black Blood"); - } - if (AbstractDungeon.player.getStartingRelics().get(0).equals("Ring of the Snake")) { - AbstractDungeon.getCurrRoom().spawnRelicAndObtain((Settings.WIDTH / 2), (Settings.HEIGHT / 2), RelicLibrary.getRelic("Ring of the Serpent").makeCopy()); - AbstractDungeon.bossRelicPool.remove("Ring of the Serpent"); - } - if (AbstractDungeon.player.getStartingRelics().get(0).equals("Cracked Core")) { - AbstractDungeon.getCurrRoom().spawnRelicAndObtain((Settings.WIDTH / 2), (Settings.HEIGHT / 2), RelicLibrary.getRelic("FrozenCore").makeCopy()); - AbstractDungeon.bossRelicPool.remove("FrozenCore"); - } - if (AbstractDungeon.player.getStartingRelics().get(0).equals("PureWater")) { - AbstractDungeon.getCurrRoom().spawnRelicAndObtain((Settings.WIDTH / 2), (Settings.HEIGHT / 2), RelicLibrary.getRelic("HolyWater").makeCopy()); - AbstractDungeon.bossRelicPool.remove("HolyWater"); + Map relicUpgrade = new HashMap<>(); + relicUpgrade.put("Burning Blood", "Black Blood"); + relicUpgrade.put("Ring of the Snake", "Ring of the Serpent"); + relicUpgrade.put("Cracked Core", "FrozenCore"); + relicUpgrade.put("PureWater", "HolyWater"); + relicUpgrade.put("Guardian:ModeShifter", "Guardian:ModeShifterPlus"); + relicUpgrade.put("Slimebound:AbsorbEndCombat", "Slimebound:AbsorbEndCombatUpgraded"); + relicUpgrade.put("champ:ChampionCrown", "champ:ChampionCrownUpgraded"); + relicUpgrade.put("hermit:Momento", "hermit:ClaspedLocket"); + relicUpgrade.put("bronze:BronzeCore", "bronze:PlatinumCore"); + relicUpgrade.put("collector:EmeraldTorch", "collector:PrismaticTorch"); + relicUpgrade.put("sneckomod:SneckoBoss", "sneckomod:SneckoCommon"); + relicUpgrade.put("sneckomod:Snecko Eye", "sneckomod:SuperSneckoEye"); + relicUpgrade.put("sneckomod:SneckoSoul", "sneckomod:SuperSneckoSoul"); + relicUpgrade.put("hexamod:SpiritBrand", "hexamod:UnbrokenSoul"); + relicUpgrade.put("Gremlin:GremlinKnob", "Gremlin:GremlinKnobUpgrade"); + if (relicUpgrade.containsKey(AbstractDungeon.player.getStartingRelics().get(0))) { + AbstractDungeon.player.loseRelic(((AbstractRelic) AbstractDungeon.player.relics.get(0)).relicId); + String upgradeRelic = relicUpgrade.get(AbstractDungeon.player.getStartingRelics().get(0)); + AbstractDungeon.getCurrRoom().spawnRelicAndObtain((Settings.WIDTH / 2), (Settings.HEIGHT / 2), RelicLibrary.getRelic(upgradeRelic).makeCopy()); + AbstractDungeon.bossRelicPool.remove(upgradeRelic); } + break; case RANDOM_CLASS_RELIC: AbstractRelic r = null; @@ -721,6 +730,11 @@ public void activate() { r = RelicLibrary.whiteList.get(NeowEvent.rng.random(RelicLibrary.whiteList.size()-1)); } while (r.tier == AbstractRelic.RelicTier.BOSS || r.tier == AbstractRelic.RelicTier.STARTER); break; + default: + do { + AbstractRelic[] relicList = BaseMod.getRelicsInCustomPool(AbstractDungeon.player.getCardColor()).values().toArray(new AbstractRelic[0]); + r = relicList[NeowEvent.rng.random(relicList.length - 1)]; + } while (r.tier == AbstractRelic.RelicTier.BOSS || r.tier == AbstractRelic.RelicTier.STARTER); } if (r != null) { AbstractDungeon.getCurrRoom().spawnRelicAndObtain((Settings.WIDTH / 2), (Settings.HEIGHT / 2), r.makeCopy());