Skip to content

Commit 6587d40

Browse files
committed
Implement Lust and Wizard Robe
1 parent 87a801c commit 6587d40

File tree

7 files changed

+140
-0
lines changed

7 files changed

+140
-0
lines changed

src/main/java/stsjorbsmod/JorbsMod.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -372,6 +372,7 @@ public void receiveEditCards() {
372372
addUnlockedCard(new WanderingMind(), WanderingMind.ID);
373373
addUnlockedCard(new WeightOfMemory(), WeightOfMemory.ID);
374374
addUnlockedCard(new Prestidigitation(), Prestidigitation.ID);
375+
addUnlockedCard(new WizardRobe(), WizardRobe.ID);
375376

376377
// Don't comment out/delete these cards (yet). You need 1 of each type and rarity (technically) for your game not to crash
377378
// when generating card rewards/shop screen items.
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package stsjorbsmod.cards;
2+
3+
import com.megacrit.cardcrawl.actions.common.ApplyPowerAction;
4+
import com.megacrit.cardcrawl.characters.AbstractPlayer;
5+
import com.megacrit.cardcrawl.dungeons.AbstractDungeon;
6+
import com.megacrit.cardcrawl.monsters.AbstractMonster;
7+
import stsjorbsmod.JorbsMod;
8+
import stsjorbsmod.actions.GainMemoryClarityAction;
9+
import stsjorbsmod.actions.RememberSpecificMemoryAction;
10+
import stsjorbsmod.characters.Wanderer;
11+
import stsjorbsmod.powers.LustMemoryPower;
12+
import stsjorbsmod.powers.PrestidigitationPower;
13+
14+
import static stsjorbsmod.JorbsMod.makeCardPath;
15+
16+
public class WizardRobe extends AbstractDynamicCard {
17+
public static final String ID = JorbsMod.makeID(WizardRobe.class.getSimpleName());
18+
public static final String IMG = makeCardPath("Scaling_Commons/wizard_robe.png");
19+
20+
private static final CardRarity RARITY = CardRarity.COMMON;
21+
private static final CardTarget TARGET = CardTarget.SELF;
22+
private static final CardType TYPE = CardType.POWER;
23+
public static final CardColor COLOR = Wanderer.Enums.COLOR_GRAY;
24+
25+
private static final int COST = 1;
26+
private static final int UPGRADED_COST = 0;
27+
28+
public WizardRobe() {
29+
super(ID, IMG, COST, TYPE, COLOR, RARITY, TARGET);
30+
}
31+
32+
@Override
33+
public void use(AbstractPlayer p, AbstractMonster m) {
34+
AbstractDungeon.actionManager.addToBottom(
35+
new RememberSpecificMemoryAction(p, p, new LustMemoryPower(p, p, false)));
36+
AbstractDungeon.actionManager.addToBottom(
37+
new GainMemoryClarityAction(p, p));
38+
}
39+
40+
@Override
41+
public void upgrade() {
42+
if (!upgraded) {
43+
upgradeName();
44+
upgradeBaseCost(UPGRADED_COST);
45+
initializeDescription();
46+
}
47+
}
48+
}
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
package stsjorbsmod.powers;
2+
3+
import basemod.interfaces.CloneablePowerInterface;
4+
import com.badlogic.gdx.graphics.Texture;
5+
import com.badlogic.gdx.graphics.g2d.TextureAtlas;
6+
import com.megacrit.cardcrawl.actions.AbstractGameAction;
7+
import com.megacrit.cardcrawl.actions.common.ApplyPowerAction;
8+
import com.megacrit.cardcrawl.actions.common.DamageAllEnemiesAction;
9+
import com.megacrit.cardcrawl.actions.common.RemoveSpecificPowerAction;
10+
import com.megacrit.cardcrawl.actions.utility.UseCardAction;
11+
import com.megacrit.cardcrawl.cards.AbstractCard;
12+
import com.megacrit.cardcrawl.cards.DamageInfo;
13+
import com.megacrit.cardcrawl.core.AbstractCreature;
14+
import com.megacrit.cardcrawl.core.CardCrawlGame;
15+
import com.megacrit.cardcrawl.dungeons.AbstractDungeon;
16+
import com.megacrit.cardcrawl.localization.PowerStrings;
17+
import com.megacrit.cardcrawl.powers.AbstractPower;
18+
import com.megacrit.cardcrawl.powers.WeakPower;
19+
import stsjorbsmod.JorbsMod;
20+
import stsjorbsmod.util.TextureLoader;
21+
22+
import static stsjorbsmod.JorbsMod.makePowerPath;
23+
24+
public class LustMemoryPower extends AbstractMemoryPower implements CloneablePowerInterface {
25+
private static final float ATTACK_BONUS_MODIFIER = 1.5f;
26+
private static final int ATTACK_BONUS_PERCENTAGE_DESCRIPTION = 50;
27+
private static final int WEAK_ON_FORGET = 2;
28+
29+
public static final String POWER_ID = JorbsMod.makeID(LustMemoryPower.class.getSimpleName());
30+
private static final PowerStrings powerStrings = CardCrawlGame.languagePack.getPowerStrings(POWER_ID);
31+
public static final String NAME = powerStrings.NAME;
32+
public static final String[] DESCRIPTIONS = powerStrings.DESCRIPTIONS;
33+
34+
private static final Texture tex84 = TextureLoader.getTexture(makePowerPath("lust_memory_power84.png"));
35+
private static final Texture tex32 = TextureLoader.getTexture(makePowerPath("lust_memory_power32.png"));
36+
37+
public LustMemoryPower(final AbstractCreature owner, final AbstractCreature source, boolean isClarified) {
38+
super(NAME, owner, source, isClarified);
39+
ID = POWER_ID;
40+
41+
this.region128 = new TextureAtlas.AtlasRegion(tex84, 0, 0, 84, 84);
42+
this.region48 = new TextureAtlas.AtlasRegion(tex32, 0, 0, 32, 32);
43+
44+
updateDescription();
45+
}
46+
47+
@Override
48+
public float atDamageGive(float damage, DamageInfo.DamageType type) {
49+
if (type == DamageInfo.DamageType.NORMAL) {
50+
return damage * ATTACK_BONUS_MODIFIER;
51+
} else {
52+
return damage;
53+
}
54+
}
55+
56+
@Override
57+
public void onRemove() {
58+
if (isClarified) {
59+
return;
60+
}
61+
62+
this.flash();
63+
AbstractDungeon.actionManager.addToBottom(
64+
new ApplyPowerAction(owner, source, new WeakPower(owner, WEAK_ON_FORGET, false)));
65+
}
66+
67+
@Override
68+
public void updateMemoryDescription() {
69+
description = DESCRIPTIONS[0] + ATTACK_BONUS_PERCENTAGE_DESCRIPTION + DESCRIPTIONS[1] + WEAK_ON_FORGET + DESCRIPTIONS[2];
70+
}
71+
72+
@Override
73+
public AbstractPower makeCopy() {
74+
return new LustMemoryPower(owner, source, isClarified);
75+
}
76+
}
3.5 KB
Loading

src/main/resources/stsjorbsmodResources/localization/eng/JorbsMod-Card-Strings.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,5 +113,9 @@
113113
"stsjorbsmod:Prestidigitation": {
114114
"NAME": "Prestidigitation",
115115
"DESCRIPTION": "At the start of each turn, apply !M! Weak or !M! Vulnerable to a random enemy."
116+
},
117+
"stsjorbsmod:WizardRobe": {
118+
"NAME": "Wizard Robe",
119+
"DESCRIPTION": "Remember stsjorbsmod:Lust. NL Gain stsjorbsmod:Clarity."
116120
}
117121
}

src/main/resources/stsjorbsmodResources/localization/eng/JorbsMod-Keyword-Strings.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,11 @@
3232
"NAMES": ["diligence", "Diligence"],
3333
"DESCRIPTION": "When you remember Diligence, draw #b2 cards. At the end of your turn, retain #b1."
3434
},
35+
{
36+
"PROPER_NAME": "Lust",
37+
"NAMES": ["lust", "Lust"],
38+
"DESCRIPTION": "Your attacks deal 50% bonus damage. When you forget Lust, gain 2 Weak."
39+
},
3540
{
3641
"PROPER_NAME": "Patience",
3742
"NAMES": ["patience", "Patience"],

src/main/resources/stsjorbsmodResources/localization/eng/JorbsMod-Power-Strings.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,12 @@
6565
"."
6666
]
6767
},
68+
"stsjorbsmod:LustMemoryPower": {
69+
"NAME": "Lust",
70+
"DESCRIPTIONS": [
71+
"Your attacks deal #b", "% bonus damage. When you forget Lust, gain #b", " Weak."
72+
]
73+
},
6874
"stsjorbsmod:PatienceMemoryPower": {
6975
"NAME": "Patience",
7076
"DESCRIPTIONS": [

0 commit comments

Comments
 (0)