diff --git a/bin/img/cards/Gimp/BloodMagic.xcf b/bin/img/cards/Gimp/BloodMagic.xcf new file mode 100644 index 0000000..7f9acd1 Binary files /dev/null and b/bin/img/cards/Gimp/BloodMagic.xcf differ diff --git a/bin/img/cards/Gimp/CorruptPower.xcf b/bin/img/cards/Gimp/CorruptPower.xcf new file mode 100644 index 0000000..cd4c88b Binary files /dev/null and b/bin/img/cards/Gimp/CorruptPower.xcf differ diff --git a/bin/img/cards/Gimp/Epidemic.xcf b/bin/img/cards/Gimp/Epidemic.xcf new file mode 100644 index 0000000..2fbc084 Binary files /dev/null and b/bin/img/cards/Gimp/Epidemic.xcf differ diff --git a/bin/img/cards/Gimp/PlagueBolt.xcf b/bin/img/cards/Gimp/PlagueBolt.xcf new file mode 100644 index 0000000..395691d Binary files /dev/null and b/bin/img/cards/Gimp/PlagueBolt.xcf differ diff --git a/bin/img/cards/Gimp/ReapTheWeak.xcf b/bin/img/cards/Gimp/ReapTheWeak.xcf new file mode 100644 index 0000000..e11c0f6 Binary files /dev/null and b/bin/img/cards/Gimp/ReapTheWeak.xcf differ diff --git a/bin/img/cards/Gimp/SlayLiving.xcf b/bin/img/cards/Gimp/SlayLiving.xcf new file mode 100644 index 0000000..76bb161 Binary files /dev/null and b/bin/img/cards/Gimp/SlayLiving.xcf differ diff --git a/bin/img/cards/Gimp/Uncharnel.xcf b/bin/img/cards/Gimp/Uncharnel.xcf new file mode 100644 index 0000000..aa3b6b0 Binary files /dev/null and b/bin/img/cards/Gimp/Uncharnel.xcf differ diff --git a/bin/img/cards/Gimp/ViolentNecrosis.xcf b/bin/img/cards/Gimp/ViolentNecrosis.xcf new file mode 100644 index 0000000..92cb8ae Binary files /dev/null and b/bin/img/cards/Gimp/ViolentNecrosis.xcf differ diff --git a/bin/img/cards/blood_magic.png b/bin/img/cards/blood_magic.png new file mode 100644 index 0000000..739f6e0 Binary files /dev/null and b/bin/img/cards/blood_magic.png differ diff --git a/bin/img/cards/blood_magic_p.png b/bin/img/cards/blood_magic_p.png new file mode 100644 index 0000000..0981602 Binary files /dev/null and b/bin/img/cards/blood_magic_p.png differ diff --git a/bin/img/cards/corrupt.png b/bin/img/cards/corrupt.png new file mode 100644 index 0000000..61b4719 Binary files /dev/null and b/bin/img/cards/corrupt.png differ diff --git a/bin/img/cards/corrupt_p.png b/bin/img/cards/corrupt_p.png new file mode 100644 index 0000000..57a39c8 Binary files /dev/null and b/bin/img/cards/corrupt_p.png differ diff --git a/bin/img/cards/epidemic.png b/bin/img/cards/epidemic.png new file mode 100644 index 0000000..4180a9a Binary files /dev/null and b/bin/img/cards/epidemic.png differ diff --git a/bin/img/cards/epidemic_p.png b/bin/img/cards/epidemic_p.png new file mode 100644 index 0000000..a11a18b Binary files /dev/null and b/bin/img/cards/epidemic_p.png differ diff --git a/bin/img/cards/plague_bolt.png b/bin/img/cards/plague_bolt.png new file mode 100644 index 0000000..9a144bc Binary files /dev/null and b/bin/img/cards/plague_bolt.png differ diff --git a/bin/img/cards/plague_bolt_p.png b/bin/img/cards/plague_bolt_p.png new file mode 100644 index 0000000..c41e7f1 Binary files /dev/null and b/bin/img/cards/plague_bolt_p.png differ diff --git a/bin/img/cards/reap_the_weak.png b/bin/img/cards/reap_the_weak.png new file mode 100644 index 0000000..86fe209 Binary files /dev/null and b/bin/img/cards/reap_the_weak.png differ diff --git a/bin/img/cards/reap_the_weak_p.png b/bin/img/cards/reap_the_weak_p.png new file mode 100644 index 0000000..6cce2a4 Binary files /dev/null and b/bin/img/cards/reap_the_weak_p.png differ diff --git a/bin/img/cards/slay_living.png b/bin/img/cards/slay_living.png index b78b7c3..bb78350 100644 Binary files a/bin/img/cards/slay_living.png and b/bin/img/cards/slay_living.png differ diff --git a/bin/img/cards/slay_living_p.png b/bin/img/cards/slay_living_p.png new file mode 100644 index 0000000..9bcaedb Binary files /dev/null and b/bin/img/cards/slay_living_p.png differ diff --git a/bin/img/cards/uncharnel.png b/bin/img/cards/uncharnel.png index b78b7c3..831a080 100644 Binary files a/bin/img/cards/uncharnel.png and b/bin/img/cards/uncharnel.png differ diff --git a/bin/img/cards/uncharnel_p.png b/bin/img/cards/uncharnel_p.png new file mode 100644 index 0000000..c4458ec Binary files /dev/null and b/bin/img/cards/uncharnel_p.png differ diff --git a/bin/img/cards/violent_necrosis.png b/bin/img/cards/violent_necrosis.png new file mode 100644 index 0000000..2fff896 Binary files /dev/null and b/bin/img/cards/violent_necrosis.png differ diff --git a/bin/img/cards/violent_necrosis_p.png b/bin/img/cards/violent_necrosis_p.png new file mode 100644 index 0000000..fe221dd Binary files /dev/null and b/bin/img/cards/violent_necrosis_p.png differ diff --git a/bin/img/powers/blood_magic.png b/bin/img/powers/blood_magic.png new file mode 100644 index 0000000..42b4322 Binary files /dev/null and b/bin/img/powers/blood_magic.png differ diff --git a/bin/localization/NecroMod-CardStrings.json b/bin/localization/NecroMod-CardStrings.json index 09185aa..f7b5b66 100644 --- a/bin/localization/NecroMod-CardStrings.json +++ b/bin/localization/NecroMod-CardStrings.json @@ -171,7 +171,22 @@ "Blood_Magic": { "NAME" : "Blood Magic", - "DESCRIPTION" : "Gain Blood Magic" + "DESCRIPTION" : "Gain Blood Magic." + }, + + "Violent_Necrosis": { + "NAME" : "Violent Necrosis", + "DESCRIPTION" : "Double all of the targets debuffs. Exhaust." + }, + + "Corrupt": { + "NAME" : "Corrupt Power", + "DESCRIPTION" : "Corrupt all non-unique buffs of the target. Exhaust." + }, + + "Epidemic": { + "NAME" : "Epidemic", + "DESCRIPTION" : "Spread all debuffs of the target to all enemies." } } \ No newline at end of file diff --git a/bin/necromod/NecroMod.class b/bin/necromod/NecroMod.class index 0d36606..ef8e5b1 100644 Binary files a/bin/necromod/NecroMod.class and b/bin/necromod/NecroMod.class differ diff --git a/bin/necromod/actions/common/CheckIfDeadAction.class b/bin/necromod/actions/common/CheckIfDeadAction.class index 34acd91..e548932 100644 Binary files a/bin/necromod/actions/common/CheckIfDeadAction.class and b/bin/necromod/actions/common/CheckIfDeadAction.class differ diff --git a/bin/necromod/actions/common/CorruptAction.class b/bin/necromod/actions/common/CorruptAction.class new file mode 100644 index 0000000..419646c Binary files /dev/null and b/bin/necromod/actions/common/CorruptAction.class differ diff --git a/bin/necromod/actions/common/DoubleDebuffAction.class b/bin/necromod/actions/common/DoubleDebuffAction.class new file mode 100644 index 0000000..a2a643a Binary files /dev/null and b/bin/necromod/actions/common/DoubleDebuffAction.class differ diff --git a/bin/necromod/actions/unique/EpidemicAction.class b/bin/necromod/actions/unique/EpidemicAction.class new file mode 100644 index 0000000..50f8627 Binary files /dev/null and b/bin/necromod/actions/unique/EpidemicAction.class differ diff --git a/bin/necromod/cards/Blood_Wake.class b/bin/necromod/cards/Blood_Wake.class index c89abd6..2e3100a 100644 Binary files a/bin/necromod/cards/Blood_Wake.class and b/bin/necromod/cards/Blood_Wake.class differ diff --git a/bin/necromod/cards/Bone_Spikes.class b/bin/necromod/cards/Bone_Spikes.class index aa0ede7..b5b256f 100644 Binary files a/bin/necromod/cards/Bone_Spikes.class and b/bin/necromod/cards/Bone_Spikes.class differ diff --git a/bin/necromod/cards/Consume_Illness.class b/bin/necromod/cards/Consume_Illness.class index 9552cf2..c787f8f 100644 Binary files a/bin/necromod/cards/Consume_Illness.class and b/bin/necromod/cards/Consume_Illness.class differ diff --git a/bin/necromod/cards/Corrupt_Power.class b/bin/necromod/cards/Corrupt_Power.class new file mode 100644 index 0000000..c5bfd12 Binary files /dev/null and b/bin/necromod/cards/Corrupt_Power.class differ diff --git a/bin/necromod/cards/Epidemic.class b/bin/necromod/cards/Epidemic.class new file mode 100644 index 0000000..beeadc0 Binary files /dev/null and b/bin/necromod/cards/Epidemic.class differ diff --git a/bin/necromod/cards/Fear.class b/bin/necromod/cards/Fear.class index 5e67e18..8003067 100644 Binary files a/bin/necromod/cards/Fear.class and b/bin/necromod/cards/Fear.class differ diff --git a/bin/necromod/cards/Negative_Energy_Arrows.class b/bin/necromod/cards/Negative_Energy_Arrows.class index 65a5a76..f3cd175 100644 Binary files a/bin/necromod/cards/Negative_Energy_Arrows.class and b/bin/necromod/cards/Negative_Energy_Arrows.class differ diff --git a/bin/necromod/cards/Plague_Bolt.class b/bin/necromod/cards/Plague_Bolt.class new file mode 100644 index 0000000..d57a6b9 Binary files /dev/null and b/bin/necromod/cards/Plague_Bolt.class differ diff --git a/bin/necromod/cards/Reap_The_Weak.class b/bin/necromod/cards/Reap_The_Weak.class new file mode 100644 index 0000000..80c017f Binary files /dev/null and b/bin/necromod/cards/Reap_The_Weak.class differ diff --git a/bin/necromod/cards/Violent_Necrosis.class b/bin/necromod/cards/Violent_Necrosis.class new file mode 100644 index 0000000..1eedf94 Binary files /dev/null and b/bin/necromod/cards/Violent_Necrosis.class differ diff --git a/bin/necromod/powers/BloodMagicPower.class b/bin/necromod/powers/BloodMagicPower.class index 274b04c..0bb2d6d 100644 Binary files a/bin/necromod/powers/BloodMagicPower.class and b/bin/necromod/powers/BloodMagicPower.class differ diff --git a/bin/necromod/powers/Shackles.class b/bin/necromod/powers/Shackles.class index e22b1de..91d6910 100644 Binary files a/bin/necromod/powers/Shackles.class and b/bin/necromod/powers/Shackles.class differ diff --git a/src/main/java/necromod/NecroMod.java b/src/main/java/necromod/NecroMod.java index d003eb7..c9efad7 100644 --- a/src/main/java/necromod/NecroMod.java +++ b/src/main/java/necromod/NecroMod.java @@ -114,6 +114,9 @@ public class NecroMod implements PostInitializeSubscriber, EditCardsSubscriber, public static final String PLAGUE_BOLT = "cards/plague_bolt.png"; public static final String BLOOD_MAGIC = "cards/blood_magic.png"; public static final String VIOLENT_NECROSIS = "cards/violent_necrosis.png"; + public static final String CORRUPT = "cards/corrupt.png"; + public static final String REAP_THE_WEAK = "cards/reap_the_weak.png"; + public static final String EPIDEMIC = "cards/epidemic.png"; //power images @@ -229,6 +232,10 @@ public static Texture getNegativeShieldPowerTexture() { return new Texture(makePath(NEGATIVE_SHIELD_POWER)); } + public static Texture getBloodMagicPowerTexture() { + return new Texture(makePath(BLOOD_MAGIC_POWER)); + } + /** * Makes a full path for a resource path * @param resource the resource, must *NOT* have a leading "/" @@ -391,6 +398,15 @@ public void receiveEditCards() { BaseMod.addCard(new Violent_Necrosis()); logger.info("added Test Case"); + BaseMod.addCard(new Corrupt_Power()); + logger.info("added Test Case"); + + BaseMod.addCard(new Epidemic()); + logger.info("added Test Case"); + + BaseMod.addCard(new Reap_The_Weak()); + logger.info("added Test Case"); + /****/ /** BaseMod.addCard(new ()); logger.info("added Test Case"); @@ -458,6 +474,10 @@ public void receiveEditKeywords() { BaseMod.addKeyword(BloodMagic, "If you do not have enough Energy to play a card: You can play it for 3 HP times the cost instead."); + String[] Corrupt = {"corrupt", "corrupts"}; + + BaseMod.addKeyword(Corrupt, "Turn a buff of the target into a debuff."); + } /** diff --git a/src/main/java/necromod/actions/common/CorruptAction.java b/src/main/java/necromod/actions/common/CorruptAction.java index 44df843..4f67099 100644 --- a/src/main/java/necromod/actions/common/CorruptAction.java +++ b/src/main/java/necromod/actions/common/CorruptAction.java @@ -13,10 +13,12 @@ public class CorruptAction extends AbstractGameAction { - public CorruptAction(final AbstractCreature target, final AbstractCreature source) { + public String cb; + + public CorruptAction(final AbstractCreature target, final AbstractCreature source, String buff) { this.target = target; this.source = source; - + this.cb = buff; } @Override @@ -41,7 +43,7 @@ public void update() { if(this.target.hasPower("Dexterity") && (this.target.getPower("Dexterity").amount > 0)){ Buff.add("Dexterity"); } - + /** ArrayList currentBuffs = new ArrayList(); for(String b : Buff) { @@ -51,64 +53,72 @@ public void update() { } - - for(String cb : currentBuffs) { + + for(String cb : currentBuffs) {**/ - switch(cb){ + switch(this.cb){ case "Metallicize" : amount = this.target.getPower("Metallicize").amount; - AbstractDungeon.actionManager.addToTop(new RemoveSpecificPowerAction(this.target, this.source, cb)); + AbstractDungeon.actionManager.addToTop(new RemoveSpecificPowerAction(this.target, this.source, this.cb)); AbstractDungeon.actionManager.addToBottom(new ApplyPowerAction(this.target, this.source, new FrailPower(this.target, amount, false),amount, true, AbstractGameAction.AttackEffect.NONE)); break; - case "Weakened" : - amount = this.target.getPower("Weakened").amount; - AbstractDungeon.actionManager.addToBottom(new ApplyPowerAction(this.target, this.source, new WeakPower(this.target, amount, false), amount)); + case "Curl Up" : + amount = this.target.getPower("Curl Up").amount; + AbstractDungeon.actionManager.addToTop(new RemoveSpecificPowerAction(this.target, this.source, this.cb)); + AbstractDungeon.actionManager.addToBottom(new ApplyPowerAction(this.target, this.source, new FrailPower(this.target, amount, false),amount, true, AbstractGameAction.AttackEffect.NONE)); break; case "Frail" : amount = this.target.getPower("Frail").amount; + AbstractDungeon.actionManager.addToTop(new RemoveSpecificPowerAction(this.target, this.source, this.cb)); AbstractDungeon.actionManager.addToBottom(new ApplyPowerAction(this.target, this.source, new FrailPower(this.target, amount, false),amount, true, AbstractGameAction.AttackEffect.NONE)); break; - case "Vulnerable" : - amount = this.target.getPower("Vulnerable").amount; - AbstractDungeon.actionManager.addToBottom(new ApplyPowerAction(this.target, this.source, new VulnerablePower(this.target, amount, false), amount)); + case "Plated Armor" : + amount = this.target.getPower("Plated Armor").amount; + AbstractDungeon.actionManager.addToTop(new RemoveSpecificPowerAction(this.target, this.source, this.cb)); + AbstractDungeon.actionManager.addToBottom(new ApplyPowerAction(this.target, this.source, new DexterityPower(this.target, -amount), -amount)); break; - case "Strength" : - amount = -1*(this.target.getPower("Strength").amount); - AbstractDungeon.actionManager.addToBottom(new ApplyPowerAction(this.target, this.source, new StrengthPower(this.target, -amount), -amount)); + case "Thorns" : + amount = -1*(this.target.getPower("Thorns").amount); + AbstractDungeon.actionManager.addToTop(new RemoveSpecificPowerAction(this.target, this.source, this.cb)); + AbstractDungeon.actionManager.addToBottom(new ApplyPowerAction(this.target, this.source, new PoisonPower(this.target, this.source, amount), amount, AbstractGameAction.AttackEffect.POISON)); break; - case "Dexterity" : - amount = -1*(this.target.getPower("Dexterity").amount); - AbstractDungeon.actionManager.addToBottom(new ApplyPowerAction(this.target, this.source, new DexterityPower(this.target, -amount), -amount)); + case "Explosive" : + amount = -1*(this.target.getPower("Explosive").amount); + AbstractDungeon.actionManager.addToTop(new RemoveSpecificPowerAction(this.target, this.source, this.cb)); + AbstractDungeon.actionManager.addToBottom(new ApplyPowerAction(this.target, this.source, new HellFlamePower(this.target, this.source, 2), 2)); break; - case "HellFlamePower" : - amount = this.target.getPower("HellFlamePower").amount; - AbstractDungeon.actionManager.addToBottom(new ApplyPowerAction(this.target, this.source, new HellFlamePower(this.target, this.source, amount), amount)); + case "Artifact" : + amount = this.target.getPower("Artifact").amount; + AbstractDungeon.actionManager.addToTop(new RemoveSpecificPowerAction(this.target, this.source, this.cb)); + AbstractDungeon.actionManager.addToBottom(new ApplyPowerAction(this.target, this.source, new VulnerablePower(this.target, amount, false), amount)); break; - case "GraspHeartPower" : - amount = this.target.getPower("GraspHeartPower").amount; - AbstractDungeon.actionManager.addToBottom(new ApplyPowerAction(this.target, this.source, new GraspHeartPower(this.target, this.source, amount), amount)); + case "Barricade" : + amount = this.target.getPower("Barricade").amount; + AbstractDungeon.actionManager.addToTop(new RemoveSpecificPowerAction(this.target, this.source, this.cb)); + AbstractDungeon.actionManager.addToBottom(new ApplyPowerAction(this.target, this.source, new GraspHeartPower(this.target, this.source, 1), 1)); break; - case "NegativeLevelsPower" : - amount = this.target.getPower("NegativeLevelsPower").amount; - AbstractDungeon.actionManager.addToBottom(new ApplyPowerAction(this.target, this.source, new NegativeLevelsPower(this.target, this.source, amount), amount)); + case "Strength" : + amount = this.target.getPower("Strength").amount; + AbstractDungeon.actionManager.addToTop(new RemoveSpecificPowerAction(this.target, this.source, this.cb)); + AbstractDungeon.actionManager.addToBottom(new ApplyPowerAction(this.target, this.source, new StrengthPower(this.target, -amount), -amount)); break; - case "OfPain" : - amount = this.target.getPower("OfPain").amount; - AbstractDungeon.actionManager.addToBottom(new ApplyPowerAction(this.target, this.source, new OfPain(this.target, amount), amount)); - AbstractDungeon.actionManager.addToBottom(new ApplyPowerAction(this.source, this.source, new Shackles(this.source, this.target, amount), amount)); + case "Dexterity" : + amount = this.target.getPower("Dexterity").amount; + AbstractDungeon.actionManager.addToTop(new RemoveSpecificPowerAction(this.target, this.source, this.cb)); + AbstractDungeon.actionManager.addToBottom(new ApplyPowerAction(this.target, this.source, new DexterityPower(this.target, -amount), -amount)); break; } - } + //} this.isDone = true; } diff --git a/src/main/java/necromod/actions/unique/EpidemicAction.java b/src/main/java/necromod/actions/unique/EpidemicAction.java new file mode 100644 index 0000000..fd3b5df --- /dev/null +++ b/src/main/java/necromod/actions/unique/EpidemicAction.java @@ -0,0 +1,128 @@ +package necromod.actions.unique; + +import java.util.ArrayList; + +import com.megacrit.cardcrawl.actions.AbstractGameAction; +import com.megacrit.cardcrawl.actions.common.ApplyPowerAction; +import com.megacrit.cardcrawl.core.AbstractCreature; +import com.megacrit.cardcrawl.dungeons.AbstractDungeon; +import com.megacrit.cardcrawl.monsters.AbstractMonster; +import com.megacrit.cardcrawl.powers.DexterityPower; +import com.megacrit.cardcrawl.powers.FrailPower; +import com.megacrit.cardcrawl.powers.PoisonPower; +import com.megacrit.cardcrawl.powers.StrengthPower; +import com.megacrit.cardcrawl.powers.VulnerablePower; +import com.megacrit.cardcrawl.powers.WeakPower; + +import necromod.powers.GraspHeartPower; +import necromod.powers.HellFlamePower; +import necromod.powers.NegativeLevelsPower; +import necromod.powers.OfPain; +import necromod.powers.Shackles; + +public class EpidemicAction extends AbstractGameAction{ + + public EpidemicAction(final AbstractCreature target, final AbstractCreature source) { + this.target = target; + this.source = source; + + } + + @Override + public void update() { + ArrayList Debuff = new ArrayList(); + Debuff.add("Poison"); + Debuff.add("Weakened"); + Debuff.add("Frail"); + Debuff.add("Vulnerable"); + Debuff.add("HellFlamePower"); + Debuff.add("GraspHeartPower"); + Debuff.add("NegativeLevelsPower"); + Debuff.add("OfPain"); + + int amount; + + + if(this.target.hasPower("Strength") && (this.target.getPower("Strength").amount < 0)){ + Debuff.add("Strength"); + } + + if(this.target.hasPower("Dexterity") && (this.target.getPower("Dexterity").amount < 0)){ + Debuff.add("Dexterity"); + } + + ArrayList currentDebuffs = new ArrayList(); + + for(String d : Debuff) { + if(this.target.getPower(d) != null) { + currentDebuffs.add(d); + } + + } + + for (final AbstractMonster mo : AbstractDungeon.getCurrRoom().monsters.monsters) { + if(!mo.equals(this.target)) { + for(String cd : currentDebuffs) { + + switch(cd){ + case "Poison" : + amount = this.target.getPower("Poison").amount; + AbstractDungeon.actionManager.addToBottom(new ApplyPowerAction(mo, this.source, new PoisonPower(mo, this.source, amount), amount, AbstractGameAction.AttackEffect.POISON)); + break; + + case "Weakened" : + amount = this.target.getPower("Weakened").amount; + AbstractDungeon.actionManager.addToBottom(new ApplyPowerAction(mo, this.source, new WeakPower(mo, amount, false), amount)); + break; + + case "Frail" : + amount = this.target.getPower("Frail").amount; + AbstractDungeon.actionManager.addToBottom(new ApplyPowerAction(mo, this.source, new FrailPower(mo, amount, false),amount, true, AbstractGameAction.AttackEffect.NONE)); + break; + + case "Vulnerable" : + amount = this.target.getPower("Vulnerable").amount; + AbstractDungeon.actionManager.addToBottom(new ApplyPowerAction(mo, this.source, new VulnerablePower(mo, amount, false), amount)); + break; + + case "Strength" : + amount = -1*(this.target.getPower("Strength").amount); + AbstractDungeon.actionManager.addToBottom(new ApplyPowerAction(mo, this.source, new StrengthPower(mo, -amount), -amount)); + break; + + case "Dexterity" : + amount = -1*(this.target.getPower("Dexterity").amount); + AbstractDungeon.actionManager.addToBottom(new ApplyPowerAction(mo, this.source, new DexterityPower(mo, -amount), -amount)); + break; + + case "HellFlamePower" : + amount = this.target.getPower("HellFlamePower").amount; + AbstractDungeon.actionManager.addToBottom(new ApplyPowerAction(mo, this.source, new HellFlamePower(mo, this.source, amount), amount)); + break; + + case "GraspHeartPower" : + amount = this.target.getPower("GraspHeartPower").amount; + AbstractDungeon.actionManager.addToBottom(new ApplyPowerAction(mo, this.source, new GraspHeartPower(mo, this.source, amount), amount)); + break; + + case "NegativeLevelsPower" : + amount = this.target.getPower("NegativeLevelsPower").amount; + AbstractDungeon.actionManager.addToBottom(new ApplyPowerAction(mo, this.source, new NegativeLevelsPower(mo, this.source, amount), amount)); + break; + + case "OfPain" : + amount = this.target.getPower("OfPain").amount; + AbstractDungeon.actionManager.addToBottom(new ApplyPowerAction(mo, this.source, new OfPain(mo, amount), amount)); + AbstractDungeon.actionManager.addToBottom(new ApplyPowerAction(this.source, this.source, new Shackles(this.source, this.source, amount), amount)); + break; + + } + } + } + } + + + this.isDone = true; + } + +} diff --git a/src/main/java/necromod/cards/Blood_Wake.java b/src/main/java/necromod/cards/Blood_Wake.java index b125c97..c73d8dd 100644 --- a/src/main/java/necromod/cards/Blood_Wake.java +++ b/src/main/java/necromod/cards/Blood_Wake.java @@ -10,8 +10,6 @@ import com.megacrit.cardcrawl.actions.animations.*; import com.megacrit.cardcrawl.actions.utility.*; - -import basemod.abstracts.CustomCard; import necromod.NecroMod; import necromod.patches.AbstractCardEnum; import necromod.actions.common.BloodAction; diff --git a/src/main/java/necromod/cards/Corrupt_Power.java b/src/main/java/necromod/cards/Corrupt_Power.java index b8936ec..54bfb4c 100644 --- a/src/main/java/necromod/cards/Corrupt_Power.java +++ b/src/main/java/necromod/cards/Corrupt_Power.java @@ -6,21 +6,22 @@ import com.megacrit.cardcrawl.monsters.*; import com.megacrit.cardcrawl.dungeons.*; import com.megacrit.cardcrawl.core.*; +import com.megacrit.cardcrawl.powers.*; import necromod.NecroMod; -import necromod.actions.common.DoubleDebuffAction; +import necromod.actions.common.CorruptAction; import necromod.patches.AbstractCardEnum; public class Corrupt_Power extends AbstractNecromancerCards { - public static final String ID = "Corrupt_Power"; + public static final String ID = "Corrupt"; private static final CardStrings cardStrings = CardCrawlGame.languagePack.getCardStrings(ID); public static final String NAME = cardStrings.NAME; public static final String DESCRIPTION = cardStrings.DESCRIPTION; - private static final int COST = 2; + private static final int COST = 3; private static final int POOL = 1; public Corrupt_Power() { - super(ID, NAME, NecroMod.makePath(NecroMod.VIOLENT_NECROSIS), COST, DESCRIPTION, AbstractCard.CardType.SKILL, + super(ID, NAME, NecroMod.makePath(NecroMod.CORRUPT), COST, DESCRIPTION, AbstractCard.CardType.SKILL, AbstractCardEnum.WHITE, AbstractCard.CardRarity.UNCOMMON, AbstractCard.CardTarget.ENEMY, POOL); this.baseMagicNumber = this.magicNumber = 2; this.exhaust = true; @@ -29,18 +30,26 @@ public Corrupt_Power() { public void use(AbstractPlayer p, AbstractMonster m) { - AbstractDungeon.actionManager.addToBottom(new DoubleDebuffAction(m, p)); + if(m.powers != null) { + for(AbstractPower power : m.powers) { + String currentPower = power.ID; + AbstractDungeon.actionManager.addToBottom(new CorruptAction(m, p, currentPower)); + } + + } + + } public AbstractCard makeCopy() { - return new Violent_Necrosis(); + return new Corrupt_Power(); } public void upgrade() { if (!this.upgraded) { this.upgradeName(); - this.upgradeBaseCost(1); + this.upgradeBaseCost(2); } } diff --git a/src/main/java/necromod/cards/Epidemic.java b/src/main/java/necromod/cards/Epidemic.java new file mode 100644 index 0000000..163fb4a --- /dev/null +++ b/src/main/java/necromod/cards/Epidemic.java @@ -0,0 +1,49 @@ +package necromod.cards; + +import com.megacrit.cardcrawl.cards.*; +import com.megacrit.cardcrawl.localization.*; +import com.megacrit.cardcrawl.characters.*; +import com.megacrit.cardcrawl.monsters.*; +import com.megacrit.cardcrawl.dungeons.*; +import com.megacrit.cardcrawl.core.*; + +import necromod.NecroMod; +import necromod.actions.unique.EpidemicAction; +import necromod.patches.AbstractCardEnum; + +public class Epidemic extends AbstractNecromancerCards { + public static final String ID = "Epidemic"; + private static final CardStrings cardStrings = CardCrawlGame.languagePack.getCardStrings(ID); + public static final String NAME = cardStrings.NAME; + public static final String DESCRIPTION = cardStrings.DESCRIPTION; + private static final int COST = 2; + private static final int POOL = 1; + + public Epidemic() { + super(ID, NAME, NecroMod.makePath(NecroMod.EPIDEMIC), COST, DESCRIPTION, AbstractCard.CardType.SKILL, + AbstractCardEnum.WHITE, AbstractCard.CardRarity.UNCOMMON, AbstractCard.CardTarget.ENEMY, POOL); + this.baseMagicNumber = this.magicNumber = 2; + this.exhaust = true; + + } + + public void use(AbstractPlayer p, AbstractMonster m) { + + if(m.powers != null) { + AbstractDungeon.actionManager.addToBottom(new EpidemicAction(m, p)); + } + } + + public AbstractCard makeCopy() { + return new Epidemic(); + } + + public void upgrade() { + if (!this.upgraded) { + this.upgradeName(); + this.upgradeBaseCost(1); + } + } + + +} diff --git a/src/main/java/necromod/cards/Reap_The_Weak.java b/src/main/java/necromod/cards/Reap_The_Weak.java new file mode 100644 index 0000000..d6696fa --- /dev/null +++ b/src/main/java/necromod/cards/Reap_The_Weak.java @@ -0,0 +1,72 @@ +package necromod.cards; + +import com.megacrit.cardcrawl.actions.*; +import com.megacrit.cardcrawl.actions.common.*; +import com.megacrit.cardcrawl.cards.AbstractCard; +import com.megacrit.cardcrawl.cards.DamageInfo; +import com.megacrit.cardcrawl.characters.AbstractPlayer; +import com.megacrit.cardcrawl.core.AbstractCreature; +import com.megacrit.cardcrawl.dungeons.AbstractDungeon; +import com.megacrit.cardcrawl.monsters.AbstractMonster; +import com.megacrit.cardcrawl.vfx.combat.*; +import com.megacrit.cardcrawl.actions.animations.*; +import com.megacrit.cardcrawl.actions.utility.*; +import com.megacrit.cardcrawl.powers.*; +import com.megacrit.cardcrawl.powers.AbstractPower.PowerType; + +import necromod.NecroMod; +import necromod.actions.common.BloodAction; +import necromod.actions.unique.EpidemicAction; +import necromod.patches.AbstractCardEnum; + +public class Reap_The_Weak extends AbstractNecromancerCards { + + public static final String ID = "Reap_The_Weak"; + public static final String NAME = "Reap the Weak"; + private static final int COST = 2; + private static final int ATTACK_DMG = 5; + public static final String DESCRIPTION = "Lose 3 HP. Deal !D! damage to ALL enemies."; + private static final int UPGRADE_PLUS_DMG = 2; + private static final int POOL = 1; + public final int AMOUNT = 1; + public int counter = 0; + + public Reap_The_Weak() { + super (ID, NAME, NecroMod.makePath(NecroMod.REAP_THE_WEAK), COST, DESCRIPTION, + AbstractCard.CardType.ATTACK, AbstractCardEnum.WHITE, + AbstractCard.CardRarity.RARE, AbstractCard.CardTarget.ENEMY, POOL); + + this.baseDamage = this.damage = ATTACK_DMG; + this.isMultiDamage = true; + + } + + @Override + public void use(AbstractPlayer p, AbstractMonster m) { + + if(m.powers != null) { + for(AbstractPower power : m.powers) { + if(power.type == PowerType.DEBUFF) { + counter++; + } + } + } + AbstractDungeon.actionManager.addToBottom(new DamageAction((AbstractCreature)m, new DamageInfo(p, (this.damage*counter), this.damageTypeForTurn), AbstractGameAction.AttackEffect.SLASH_HEAVY)); + counter = 0; + } + + @Override + public AbstractCard makeCopy() { + return new Reap_The_Weak(); + } + + @Override + public void upgrade() { + if (!this.upgraded) { + this.upgradeName(); + this.upgradeDamage(UPGRADE_PLUS_DMG); + } + + } + +} diff --git a/src/main/java/necromod/powers/BloodMagicPower.java b/src/main/java/necromod/powers/BloodMagicPower.java index 8821475..41d8140 100644 --- a/src/main/java/necromod/powers/BloodMagicPower.java +++ b/src/main/java/necromod/powers/BloodMagicPower.java @@ -20,7 +20,7 @@ public BloodMagicPower(AbstractCreature owner, int amount) { updateDescription(); this.type = AbstractPower.PowerType.BUFF; this.isTurnBased = false; - this.img = NecroMod.getBloodPowerTexture(); + this.img = NecroMod.getBloodMagicPowerTexture(); } diff --git a/src/main/java/necromod/powers/Shackles.java b/src/main/java/necromod/powers/Shackles.java index 9dc5d60..5d04dab 100644 --- a/src/main/java/necromod/powers/Shackles.java +++ b/src/main/java/necromod/powers/Shackles.java @@ -77,7 +77,7 @@ public void atStartOfTurn() { AbstractDungeon.actionManager.addToTop(new ReducePowerAction(this.owner, this.owner, "Shackles", 1)); for (int temp = AbstractDungeon.getCurrRoom().monsters.monsters.size(), i = 0; i < temp; ++i) { - AbstractDungeon.actionManager.addToTop(new RemoveSpecificPowerAction(this.owner, this.owner, "Shackles")); + AbstractDungeon.actionManager.addToTop(new ReducePowerAction(this.owner, this.owner, "Shackles", 1)); if ( AbstractDungeon.getCurrRoom().monsters.monsters.get(i).hasPower("OfPain") && !AbstractDungeon.getCurrRoom().monsters.monsters.get(i).isDying && AbstractDungeon.getCurrRoom().monsters.monsters.get(i).currentHealth > 0 diff --git a/src/main/resources/img/cards/Gimp/BloodMagic.xcf b/src/main/resources/img/cards/Gimp/BloodMagic.xcf new file mode 100644 index 0000000..7f9acd1 Binary files /dev/null and b/src/main/resources/img/cards/Gimp/BloodMagic.xcf differ diff --git a/src/main/resources/img/cards/Gimp/CorruptPower.xcf b/src/main/resources/img/cards/Gimp/CorruptPower.xcf new file mode 100644 index 0000000..cd4c88b Binary files /dev/null and b/src/main/resources/img/cards/Gimp/CorruptPower.xcf differ diff --git a/src/main/resources/img/cards/Gimp/Epidemic.xcf b/src/main/resources/img/cards/Gimp/Epidemic.xcf new file mode 100644 index 0000000..2fbc084 Binary files /dev/null and b/src/main/resources/img/cards/Gimp/Epidemic.xcf differ diff --git a/src/main/resources/img/cards/Gimp/PlagueBolt.xcf b/src/main/resources/img/cards/Gimp/PlagueBolt.xcf new file mode 100644 index 0000000..395691d Binary files /dev/null and b/src/main/resources/img/cards/Gimp/PlagueBolt.xcf differ diff --git a/src/main/resources/img/cards/Gimp/ReapTheWeak.xcf b/src/main/resources/img/cards/Gimp/ReapTheWeak.xcf new file mode 100644 index 0000000..e11c0f6 Binary files /dev/null and b/src/main/resources/img/cards/Gimp/ReapTheWeak.xcf differ diff --git a/src/main/resources/img/cards/Gimp/SlayLiving.xcf b/src/main/resources/img/cards/Gimp/SlayLiving.xcf new file mode 100644 index 0000000..76bb161 Binary files /dev/null and b/src/main/resources/img/cards/Gimp/SlayLiving.xcf differ diff --git a/src/main/resources/img/cards/Gimp/Uncharnel.xcf b/src/main/resources/img/cards/Gimp/Uncharnel.xcf new file mode 100644 index 0000000..aa3b6b0 Binary files /dev/null and b/src/main/resources/img/cards/Gimp/Uncharnel.xcf differ diff --git a/src/main/resources/img/cards/Gimp/ViolentNecrosis.xcf b/src/main/resources/img/cards/Gimp/ViolentNecrosis.xcf new file mode 100644 index 0000000..92cb8ae Binary files /dev/null and b/src/main/resources/img/cards/Gimp/ViolentNecrosis.xcf differ diff --git a/src/main/resources/img/cards/blood_magic.png b/src/main/resources/img/cards/blood_magic.png new file mode 100644 index 0000000..739f6e0 Binary files /dev/null and b/src/main/resources/img/cards/blood_magic.png differ diff --git a/src/main/resources/img/cards/blood_magic_p.png b/src/main/resources/img/cards/blood_magic_p.png new file mode 100644 index 0000000..0981602 Binary files /dev/null and b/src/main/resources/img/cards/blood_magic_p.png differ diff --git a/src/main/resources/img/cards/corrupt.png b/src/main/resources/img/cards/corrupt.png new file mode 100644 index 0000000..61b4719 Binary files /dev/null and b/src/main/resources/img/cards/corrupt.png differ diff --git a/src/main/resources/img/cards/corrupt_p.png b/src/main/resources/img/cards/corrupt_p.png new file mode 100644 index 0000000..57a39c8 Binary files /dev/null and b/src/main/resources/img/cards/corrupt_p.png differ diff --git a/src/main/resources/img/cards/epidemic.png b/src/main/resources/img/cards/epidemic.png new file mode 100644 index 0000000..4180a9a Binary files /dev/null and b/src/main/resources/img/cards/epidemic.png differ diff --git a/src/main/resources/img/cards/epidemic_p.png b/src/main/resources/img/cards/epidemic_p.png new file mode 100644 index 0000000..a11a18b Binary files /dev/null and b/src/main/resources/img/cards/epidemic_p.png differ diff --git a/src/main/resources/img/cards/plague_bolt.png b/src/main/resources/img/cards/plague_bolt.png new file mode 100644 index 0000000..9a144bc Binary files /dev/null and b/src/main/resources/img/cards/plague_bolt.png differ diff --git a/src/main/resources/img/cards/plague_bolt_p.png b/src/main/resources/img/cards/plague_bolt_p.png new file mode 100644 index 0000000..c41e7f1 Binary files /dev/null and b/src/main/resources/img/cards/plague_bolt_p.png differ diff --git a/src/main/resources/img/cards/reap_the_weak.png b/src/main/resources/img/cards/reap_the_weak.png new file mode 100644 index 0000000..86fe209 Binary files /dev/null and b/src/main/resources/img/cards/reap_the_weak.png differ diff --git a/src/main/resources/img/cards/reap_the_weak_p.png b/src/main/resources/img/cards/reap_the_weak_p.png new file mode 100644 index 0000000..6cce2a4 Binary files /dev/null and b/src/main/resources/img/cards/reap_the_weak_p.png differ diff --git a/src/main/resources/img/cards/slay_living.png b/src/main/resources/img/cards/slay_living.png index b78b7c3..bb78350 100644 Binary files a/src/main/resources/img/cards/slay_living.png and b/src/main/resources/img/cards/slay_living.png differ diff --git a/src/main/resources/img/cards/slay_living_p.png b/src/main/resources/img/cards/slay_living_p.png new file mode 100644 index 0000000..9bcaedb Binary files /dev/null and b/src/main/resources/img/cards/slay_living_p.png differ diff --git a/src/main/resources/img/cards/uncharnel.png b/src/main/resources/img/cards/uncharnel.png index b78b7c3..831a080 100644 Binary files a/src/main/resources/img/cards/uncharnel.png and b/src/main/resources/img/cards/uncharnel.png differ diff --git a/src/main/resources/img/cards/uncharnel_p.png b/src/main/resources/img/cards/uncharnel_p.png new file mode 100644 index 0000000..c4458ec Binary files /dev/null and b/src/main/resources/img/cards/uncharnel_p.png differ diff --git a/src/main/resources/img/cards/violent_necrosis.png b/src/main/resources/img/cards/violent_necrosis.png new file mode 100644 index 0000000..2fff896 Binary files /dev/null and b/src/main/resources/img/cards/violent_necrosis.png differ diff --git a/src/main/resources/img/cards/violent_necrosis_p.png b/src/main/resources/img/cards/violent_necrosis_p.png new file mode 100644 index 0000000..fe221dd Binary files /dev/null and b/src/main/resources/img/cards/violent_necrosis_p.png differ diff --git a/src/main/resources/img/powers/blood_magic.png b/src/main/resources/img/powers/blood_magic.png new file mode 100644 index 0000000..42b4322 Binary files /dev/null and b/src/main/resources/img/powers/blood_magic.png differ diff --git a/src/main/resources/localization/NecroMod-CardStrings.json b/src/main/resources/localization/NecroMod-CardStrings.json index 1ea99d6..f7b5b66 100644 --- a/src/main/resources/localization/NecroMod-CardStrings.json +++ b/src/main/resources/localization/NecroMod-CardStrings.json @@ -176,7 +176,17 @@ "Violent_Necrosis": { "NAME" : "Violent Necrosis", - "DESCRIPTION" : "Gain Blood Magic" + "DESCRIPTION" : "Double all of the targets debuffs. Exhaust." + }, + + "Corrupt": { + "NAME" : "Corrupt Power", + "DESCRIPTION" : "Corrupt all non-unique buffs of the target. Exhaust." + }, + + "Epidemic": { + "NAME" : "Epidemic", + "DESCRIPTION" : "Spread all debuffs of the target to all enemies." } } \ No newline at end of file