mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 04:38:00 +00:00
Mobile battle deck editor additions
This commit is contained in:
@@ -326,6 +326,7 @@ public enum FSkinImage implements FImage {
|
|||||||
PLANESWALKER (FSkinProp.IMG_PLANESWALKER, SourceFile.MANAICONS),
|
PLANESWALKER (FSkinProp.IMG_PLANESWALKER, SourceFile.MANAICONS),
|
||||||
PACK (FSkinProp.IMG_PACK, SourceFile.ICONS),
|
PACK (FSkinProp.IMG_PACK, SourceFile.ICONS),
|
||||||
SORCERY (FSkinProp.IMG_SORCERY, SourceFile.MANAICONS),
|
SORCERY (FSkinProp.IMG_SORCERY, SourceFile.MANAICONS),
|
||||||
|
BATTLE (FSkinProp.IMG_BATTLE, SourceFile.MANAICONS),
|
||||||
COMMANDER (FSkinProp.IMG_COMMANDER, SourceFile.ICONS),
|
COMMANDER (FSkinProp.IMG_COMMANDER, SourceFile.ICONS),
|
||||||
|
|
||||||
//Buttons
|
//Buttons
|
||||||
|
|||||||
@@ -150,7 +150,7 @@ public class CardImageRenderer {
|
|||||||
float ptBoxHeight = 0;
|
float ptBoxHeight = 0;
|
||||||
float textBoxHeight = h - headerHeight - artHeight - typeBoxHeight - outerBorderThickness - artInset;
|
float textBoxHeight = h - headerHeight - artHeight - typeBoxHeight - outerBorderThickness - artInset;
|
||||||
|
|
||||||
if (state.isCreature() || state.isPlaneswalker() || state.getType().hasSubtype("Vehicle")) {
|
if (state.isCreature() || state.isPlaneswalker() || state.getType().hasSubtype("Vehicle") || state.isBattle()) {
|
||||||
ptBoxHeight = 2 * PT_FONT.getCapHeight();
|
ptBoxHeight = 2 * PT_FONT.getCapHeight();
|
||||||
}
|
}
|
||||||
//space for artist
|
//space for artist
|
||||||
@@ -721,6 +721,8 @@ public class CardImageRenderer {
|
|||||||
pieces.add("/");
|
pieces.add("/");
|
||||||
pieces.add(String.valueOf(state.getToughness()));
|
pieces.add(String.valueOf(state.getToughness()));
|
||||||
pieces.add("]");
|
pieces.add("]");
|
||||||
|
} else if (state.isBattle()) {
|
||||||
|
pieces.add(String.valueOf(state.getDefense()));
|
||||||
} else {
|
} else {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -533,6 +533,8 @@ public class CardRenderer {
|
|||||||
type += " (" + loyalty + ")";
|
type += " (" + loyalty + ")";
|
||||||
} else if (card.getCurrentState().getType().hasSubtype("Vehicle")) {
|
} else if (card.getCurrentState().getType().hasSubtype("Vehicle")) {
|
||||||
type += String.format(" [%s / %s]", power, toughness);
|
type += String.format(" [%s / %s]", power, toughness);
|
||||||
|
} else if (card.getCurrentState().isBattle()) {
|
||||||
|
type += " (" + card.getCurrentState().getDefense() + ")";
|
||||||
}
|
}
|
||||||
g.drawText(type, typeFont, foreColor, x, y, availableTypeWidth, lineHeight, false, Align.left, true);
|
g.drawText(type, typeFont, foreColor, x, y, availableTypeWidth, lineHeight, false, Align.left, true);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ public class CardTypeFilter extends StatTypeFilter<PaperCard> {
|
|||||||
addToggleButton(widget, StatTypes.PLANESWALKER);
|
addToggleButton(widget, StatTypes.PLANESWALKER);
|
||||||
addToggleButton(widget, StatTypes.INSTANT);
|
addToggleButton(widget, StatTypes.INSTANT);
|
||||||
addToggleButton(widget, StatTypes.SORCERY);
|
addToggleButton(widget, StatTypes.SORCERY);
|
||||||
|
addToggleButton(widget, StatTypes.BATTLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ public class TargetingOverlay {
|
|||||||
}
|
}
|
||||||
if (null != combat) {
|
if (null != combat) {
|
||||||
final GameEntityView defender = combat.getDefender(c);
|
final GameEntityView defender = combat.getDefender(c);
|
||||||
// if c is attacking a planeswalker
|
// if c is attacking a planeswalker or battle
|
||||||
if (defender instanceof CardView) {
|
if (defender instanceof CardView) {
|
||||||
drawArrow(g, endpoints.get(defender.getId()), endpoints.get(c.getId()), ArcConnection.FoesAttacking);
|
drawArrow(g, endpoints.get(defender.getId()), endpoints.get(c.getId()), ArcConnection.FoesAttacking);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -88,14 +88,6 @@ public class VAssignCombatDamage extends FDialog {
|
|||||||
throw new RuntimeException("Asking to assign damage to object which is not present in defenders list");
|
throw new RuntimeException("Asking to assign damage to object which is not present in defenders list");
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Constructor.
|
|
||||||
*
|
|
||||||
* @param attacker0 {@link forge.game.card.Card}
|
|
||||||
* @param blockers List<{@link forge.game.card.Card}>
|
|
||||||
* @param damage0 int
|
|
||||||
* @param defender GameEntity that's bein attacked
|
|
||||||
* @param overrideOrder override combatant order
|
|
||||||
*/
|
|
||||||
public VAssignCombatDamage(final CardView attacker, final List<CardView> blockers, final int damage0, final GameEntityView defender0, boolean overrideOrder, boolean maySkip, final WaitCallback<Map<CardView, Integer>> waitCallback) {
|
public VAssignCombatDamage(final CardView attacker, final List<CardView> blockers, final int damage0, final GameEntityView defender0, boolean overrideOrder, boolean maySkip, final WaitCallback<Map<CardView, Integer>> waitCallback) {
|
||||||
super(Forge.getLocalizer().getMessage("lbLAssignDamageDealtBy").replace("%s",CardTranslation.getTranslatedName(attacker.getName())) , 3);
|
super(Forge.getLocalizer().getMessage("lbLAssignDamageDealtBy").replace("%s",CardTranslation.getTranslatedName(attacker.getName())) , 3);
|
||||||
|
|
||||||
@@ -420,8 +412,6 @@ public class VAssignCombatDamage extends FDialog {
|
|||||||
return totalDamageToAssign - spent;
|
return totalDamageToAssign - spent;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Updates labels and other UI elements.
|
|
||||||
* @param index index of the last assigned damage*/
|
|
||||||
private void updateLabels() {
|
private void updateLabels() {
|
||||||
int damageLeft = totalDamageToAssign;
|
int damageLeft = totalDamageToAssign;
|
||||||
boolean allHaveLethal = true;
|
boolean allHaveLethal = true;
|
||||||
@@ -469,13 +459,19 @@ public class VAssignCombatDamage extends FDialog {
|
|||||||
}
|
}
|
||||||
else if (defender instanceof CardView) { // planeswalker
|
else if (defender instanceof CardView) { // planeswalker
|
||||||
CardView pw = (CardView)defender;
|
CardView pw = (CardView)defender;
|
||||||
lethalDamage = Integer.valueOf(pw.getCurrentState().getLoyalty());
|
if (((CardView) defender).getCurrentState().isPlaneswalker()) {
|
||||||
|
lethalDamage = Integer.parseInt(pw.getCurrentState().getLoyalty());
|
||||||
|
} else {
|
||||||
|
lethalDamage = Integer.parseInt(pw.getCurrentState().getDefense());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
lethalDamage = Math.max(0, source.getLethalDamage());
|
lethalDamage = Math.max(0, source.getLethalDamage());
|
||||||
if (source.getCurrentState().getType().isPlaneswalker()) {
|
if (source.getCurrentState().getType().isPlaneswalker()) {
|
||||||
lethalDamage = Integer.valueOf(source.getCurrentState().getLoyalty());
|
lethalDamage = Integer.parseInt(source.getCurrentState().getLoyalty());
|
||||||
|
} else if (source.getCurrentState().getType().isBattle()) {
|
||||||
|
lethalDamage = Integer.parseInt(source.getCurrentState().getDefense());
|
||||||
} else if (attackerHasDeathtouch) {
|
} else if (attackerHasDeathtouch) {
|
||||||
lethalDamage = Math.min(lethalDamage, 1);
|
lethalDamage = Math.min(lethalDamage, 1);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -176,6 +176,8 @@ public class VReveal extends FDropDown {
|
|||||||
type += " (" + paperCard.getRules().getPower() + " / " + paperCard.getRules().getToughness() + ")";
|
type += " (" + paperCard.getRules().getPower() + " / " + paperCard.getRules().getToughness() + ")";
|
||||||
} else if (paperCard.getRules().getType().isPlaneswalker()) {
|
} else if (paperCard.getRules().getType().isPlaneswalker()) {
|
||||||
type += " (" + paperCard.getRules().getInitialLoyalty() + ")";
|
type += " (" + paperCard.getRules().getInitialLoyalty() + ")";
|
||||||
|
} else if (paperCard.getRules().getType().isBattle()) {
|
||||||
|
type += " (" + paperCard.getRules().getDefense() + ")";
|
||||||
} else if (paperCard.getRules().getType().hasSubtype("Vehicle")) {
|
} else if (paperCard.getRules().getType().hasSubtype("Vehicle")) {
|
||||||
type += String.format(" [%s / %s]", paperCard.getRules().getPower(), paperCard.getRules().getToughness());
|
type += String.format(" [%s / %s]", paperCard.getRules().getPower(), paperCard.getRules().getToughness());
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user