mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 12:48:00 +00:00
Improve match layout and background
This commit is contained in:
@@ -14,8 +14,7 @@ import forge.toolbox.FLabel;
|
||||
import forge.utils.Utils;
|
||||
|
||||
public abstract class FScreen extends FContainer {
|
||||
public static final float BTN_HEIGHT = Math.round(Utils.AVG_FINGER_HEIGHT * 0.8f);
|
||||
public static final float BTN_WIDTH = BTN_HEIGHT;
|
||||
public static final float HEADER_HEIGHT = Math.round(Utils.AVG_FINGER_HEIGHT * 0.8f);
|
||||
|
||||
private static final FSkinColor clrTheme = FSkinColor.get(Colors.CLR_THEME);
|
||||
private static final FSkinColor clr = clrTheme.stepColor(0);
|
||||
@@ -77,20 +76,19 @@ public abstract class FScreen extends FContainer {
|
||||
|
||||
@Override
|
||||
protected final void doLayout(float width, float height) {
|
||||
float headerX = BTN_WIDTH;
|
||||
float headerX = HEADER_HEIGHT;
|
||||
float headerWidth = width - 2 * headerX;
|
||||
float headerHeight = BTN_HEIGHT;
|
||||
|
||||
if (btnBack != null) {
|
||||
btnBack.setBounds(0, 0, BTN_WIDTH, BTN_HEIGHT);
|
||||
btnBack.setBounds(0, 0, HEADER_HEIGHT, HEADER_HEIGHT);
|
||||
}
|
||||
if (btnMenu != null) {
|
||||
btnMenu.setBounds(width - BTN_WIDTH, 0, BTN_WIDTH, BTN_HEIGHT);
|
||||
btnMenu.setBounds(width - HEADER_HEIGHT, 0, HEADER_HEIGHT, HEADER_HEIGHT);
|
||||
}
|
||||
if (lblHeader != null) {
|
||||
lblHeader.setBounds(headerX, 0, headerWidth, headerHeight);
|
||||
lblHeader.setBounds(headerX, 0, headerWidth, HEADER_HEIGHT);
|
||||
|
||||
doLayout(headerHeight, width, height);
|
||||
doLayout(HEADER_HEIGHT, width, height);
|
||||
}
|
||||
else {
|
||||
doLayout(0, width, height);
|
||||
@@ -107,8 +105,8 @@ public abstract class FScreen extends FContainer {
|
||||
g.fillRect(clrTheme, 0, 0, w, h);
|
||||
|
||||
if (lblHeader != null) { //draw custom background behind header label
|
||||
g.fillRect(d80, 0, 0, w, BTN_HEIGHT);
|
||||
g.drawLine(1, d40, 0, BTN_HEIGHT, w, BTN_HEIGHT);
|
||||
g.fillRect(d80, 0, 0, w, HEADER_HEIGHT);
|
||||
g.drawLine(1, d40, 0, HEADER_HEIGHT, w, HEADER_HEIGHT);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -118,12 +116,12 @@ public abstract class FScreen extends FContainer {
|
||||
|
||||
@Override
|
||||
public float getWidth() {
|
||||
return BTN_WIDTH;
|
||||
return HEADER_HEIGHT;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getHeight() {
|
||||
return BTN_HEIGHT;
|
||||
return HEADER_HEIGHT;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -4,10 +4,11 @@ import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import forge.screens.FScreen;
|
||||
import forge.screens.match.views.VLog;
|
||||
import forge.screens.match.views.VPlayerPanel;
|
||||
import forge.screens.match.views.VPrompt;
|
||||
import forge.screens.match.views.VStack;
|
||||
import forge.Forge.Graphics;
|
||||
import forge.assets.FSkinTexture;
|
||||
import forge.game.Match;
|
||||
import forge.game.player.RegisteredPlayer;
|
||||
|
||||
@@ -15,14 +16,14 @@ public class MatchScreen extends FScreen {
|
||||
private final Match match;
|
||||
private final MatchController controller;
|
||||
private final Map<RegisteredPlayer, VPlayerPanel> playerPanels;
|
||||
private final VLog log;
|
||||
//private final VLog log;
|
||||
private final VStack stack;
|
||||
private final VPrompt prompt;
|
||||
|
||||
private VPlayerPanel bottomPlayerPanel, topPlayerPanel;
|
||||
|
||||
public MatchScreen(Match match0) {
|
||||
super(false, null, true);
|
||||
super(true, "Game 1 Turn 1", true);
|
||||
match = match0;
|
||||
controller = new MatchController(this);
|
||||
|
||||
@@ -34,7 +35,7 @@ public class MatchScreen extends FScreen {
|
||||
topPlayerPanel = playerPanels.get(match.getPlayers().get(1));
|
||||
topPlayerPanel.setFlipped(true);
|
||||
|
||||
log = add(new VLog());
|
||||
//log = add(new VLog());
|
||||
stack = add(new VStack());
|
||||
prompt = add(new VPrompt());
|
||||
|
||||
@@ -42,12 +43,18 @@ public class MatchScreen extends FScreen {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void doLayout(float startY, float width, float height) {
|
||||
float playerPanelHeight = (height - startY - VPrompt.HEIGHT - VLog.HEIGHT) / 2f;
|
||||
public void drawBackground(Graphics g) {
|
||||
super.drawBackground(g);
|
||||
g.drawImage(FSkinTexture.BG_MATCH, 0, topPlayerPanel.getTop(), getWidth(), bottomPlayerPanel.getBottom() - topPlayerPanel.getTop());
|
||||
}
|
||||
|
||||
log.setBounds(0, startY, width - FScreen.BTN_WIDTH, VLog.HEIGHT);
|
||||
topPlayerPanel.setBounds(0, startY + VLog.HEIGHT, width, playerPanelHeight);
|
||||
stack.setBounds(0, startY + VLog.HEIGHT + playerPanelHeight - VStack.HEIGHT / 2, VStack.WIDTH, VStack.HEIGHT);
|
||||
@Override
|
||||
protected void doLayout(float startY, float width, float height) {
|
||||
float playerPanelHeight = (height - startY - VPrompt.HEIGHT) / 2f;
|
||||
|
||||
//log.setBounds(0, startY, width - FScreen.HEADER_HEIGHT, VLog.HEIGHT);
|
||||
topPlayerPanel.setBounds(0, startY, width, playerPanelHeight);
|
||||
stack.setBounds(0, startY + playerPanelHeight - VStack.HEIGHT / 2, VStack.WIDTH, VStack.HEIGHT);
|
||||
bottomPlayerPanel.setBounds(0, height - VPrompt.HEIGHT - playerPanelHeight, width, playerPanelHeight);
|
||||
prompt.setBounds(0, height - VPrompt.HEIGHT, width, VPrompt.HEIGHT);
|
||||
}
|
||||
|
||||
@@ -26,8 +26,5 @@ public class VField extends FContainer {
|
||||
|
||||
@Override
|
||||
protected void drawBackground(Graphics g) {
|
||||
float w = getWidth();
|
||||
float h = getHeight();
|
||||
g.drawImage(FSkinTexture.BG_MATCH, 0, 0, w, h);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,24 +1,12 @@
|
||||
package forge.screens.match.views;
|
||||
|
||||
import com.badlogic.gdx.graphics.Color;
|
||||
|
||||
import forge.Forge.Graphics;
|
||||
import forge.screens.FScreen;
|
||||
import forge.toolbox.FContainer;
|
||||
|
||||
public class VLog extends FContainer {
|
||||
public static final float HEIGHT = FScreen.BTN_HEIGHT; //TODO: Consider changing this
|
||||
|
||||
@Override
|
||||
protected void doLayout(float width, float height) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void drawBackground(Graphics g) {
|
||||
float w = getWidth();
|
||||
float h = getHeight();
|
||||
g.fillRect(Color.MAGENTA, 0, 0, w, h);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ import forge.toolbox.FContainer;
|
||||
import forge.toolbox.FDisplayObject;
|
||||
|
||||
public class VPhases extends FContainer {
|
||||
private static final FSkinFont labelFont = FSkinFont.get(12);
|
||||
private static final FSkinFont labelFont = FSkinFont.get(11);
|
||||
|
||||
private final Map<PhaseType, PhaseLabel> phaseLabels = new HashMap<PhaseType, PhaseLabel>();
|
||||
|
||||
@@ -23,15 +23,15 @@ public class VPhases extends FContainer {
|
||||
addPhaseLabel("UP", PhaseType.UPKEEP);
|
||||
addPhaseLabel("DR", PhaseType.DRAW);
|
||||
addPhaseLabel("M1", PhaseType.MAIN1);
|
||||
addPhaseLabel("M2", PhaseType.MAIN2);
|
||||
addPhaseLabel("ET", PhaseType.END_OF_TURN);
|
||||
addPhaseLabel("CL", PhaseType.CLEANUP);
|
||||
addPhaseLabel("BC", PhaseType.COMBAT_BEGIN);
|
||||
addPhaseLabel("DA", PhaseType.COMBAT_DECLARE_ATTACKERS);
|
||||
addPhaseLabel("DB", PhaseType.COMBAT_DECLARE_BLOCKERS);
|
||||
addPhaseLabel("FS", PhaseType.COMBAT_FIRST_STRIKE_DAMAGE);
|
||||
addPhaseLabel("CD", PhaseType.COMBAT_DAMAGE);
|
||||
addPhaseLabel("EC", PhaseType.COMBAT_END);
|
||||
addPhaseLabel("M2", PhaseType.MAIN2);
|
||||
addPhaseLabel("ET", PhaseType.END_OF_TURN);
|
||||
addPhaseLabel("CL", PhaseType.CLEANUP);
|
||||
}
|
||||
|
||||
private void addPhaseLabel(String caption, PhaseType phaseType) {
|
||||
@@ -47,20 +47,14 @@ public class VPhases extends FContainer {
|
||||
@Override
|
||||
protected void doLayout(float width, float height) {
|
||||
float y = 0;
|
||||
float w = width - 2; w/=2;
|
||||
float labelHeight = height / phaseLabels.size();
|
||||
for (FDisplayObject lbl : getChildren()) {
|
||||
lbl.setBounds(0, y, width, labelHeight);
|
||||
lbl.setBounds(1, y + 1, w, labelHeight - 1);
|
||||
y += labelHeight;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void drawBackground(Graphics g) {
|
||||
float w = getWidth();
|
||||
float h = getHeight();
|
||||
g.fillRect(Color.CYAN, 0, 0, w, h);
|
||||
}
|
||||
|
||||
private class PhaseLabel extends FDisplayObject {
|
||||
private final String caption;
|
||||
private final PhaseType phaseType;
|
||||
@@ -113,8 +107,8 @@ public class VPhases extends FContainer {
|
||||
}
|
||||
|
||||
// Center vertically and horizontally. Show border if active.
|
||||
//g.fillRoundRect(1, 1, w - 2, h - 2, 5, 5);
|
||||
g.fillRect(c, 1, 1, w - 2, h - 2);
|
||||
//g.fillRoundRect(0, 0, w, h, 5, 5);
|
||||
g.fillRect(c, 0, 0, w, h);
|
||||
g.drawText(caption, labelFont, Color.BLACK, 0, 0, w, h, false, HAlignment.CENTER, true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
package forge.screens.match.views;
|
||||
|
||||
import com.badlogic.gdx.graphics.Color;
|
||||
|
||||
import forge.Forge.Graphics;
|
||||
import forge.toolbox.FContainer;
|
||||
import forge.utils.Utils;
|
||||
@@ -22,8 +20,5 @@ public class VStack extends FContainer {
|
||||
|
||||
@Override
|
||||
protected void drawBackground(Graphics g) {
|
||||
float w = getWidth();
|
||||
float h = getHeight();
|
||||
g.fillRect(Color.BLUE, 0, 0, w, h);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user