forked from mikemayhemdev/DownfallSTS
-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathBitShift.java
More file actions
85 lines (77 loc) · 3.03 KB
/
BitShift.java
File metadata and controls
85 lines (77 loc) · 3.03 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
package automaton.cards;
import automaton.AutomatonMod;
import automaton.FunctionHelper;
import basemod.BaseMod;
import basemod.helpers.CardModifierManager;
import com.evacipated.cardcrawl.mod.stslib.actions.common.SelectCardsAction;
import com.megacrit.cardcrawl.actions.AbstractGameAction;
import com.megacrit.cardcrawl.cards.AbstractCard;
import com.megacrit.cardcrawl.characters.AbstractPlayer;
import com.megacrit.cardcrawl.monsters.AbstractMonster;
import expansioncontent.cardmods.PropertiesMod;
import sneckomod.SneckoMod;
import java.util.ArrayList;
import static automaton.AutomatonMod.makeBetaCardPath;
public class BitShift extends AbstractBronzeCard {
public final static String ID = makeID("BitShift");
public BitShift() {
super(ID, 0, CardType.SKILL, CardRarity.COMMON, CardTarget.SELF);
exhaust = true;
baseMagicNumber = magicNumber = 1;
this.tags.add(SneckoMod.BANNEDFORSNECKO);
AutomatonMod.loadJokeCardImage(this, makeBetaCardPath("BitShift.png"));
}
@Override
public boolean canUse(AbstractPlayer p, AbstractMonster m) {
if (FunctionHelper.isSequenceEmpty()) {
cantUseMessage = masterUI.TEXT[3];
return false;
}
return super.canUse(p, m);
}
public void use(AbstractPlayer p, AbstractMonster m) {
ArrayList<AbstractCard> c = new ArrayList<>();
for (AbstractCard r : FunctionHelper.held.group) {
c.add(r.makeStatEquivalentCopy());
}
atb(new SelectCardsAction(c, 1, masterUI.TEXT[0], (cards) -> {
att(new AbstractGameAction() {
@Override
public void update() {
isDone = true;
FunctionHelper.genPreview();
}
});
AbstractCard q = cards.get(0);
att(new AbstractGameAction() {
@Override
public void update() {
isDone = true;
q.superFlash();
CardModifierManager.addModifier(q, new PropertiesMod(PropertiesMod.supportedProperties.RETAIN, false));
}
});
att(new AbstractGameAction() {
@Override
public void update() {
isDone = true;
FunctionHelper.held.removeCard(q.cardID);
for (int i = 0; i < FunctionHelper.held.size(); i++) {
FunctionHelper.held.group.get(i).target_x = FunctionHelper.cardPositions[i].x;
FunctionHelper.held.group.get(i).target_y = FunctionHelper.cardPositions[i].y;
}
if (p.hand.size() <= BaseMod.MAX_HAND_SIZE) {
p.hand.addToTop(q);
} else {
p.discardPile.addToTop(q);
}
}
});
}));
}
public void upp() {
selfRetain = true;
rawDescription = UPGRADE_DESCRIPTION;
initializeDescription();
}
}