mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 18:58:00 +00:00
minor fixes for adventure mode
- fix save dialog now fading out when saving - fix deck selector for chaos mode as check box - fix button opacity on tiled map stage
This commit is contained in:
@@ -86,7 +86,8 @@ public class AdventurePlayer implements Serializable, SaveFileContent {
|
|||||||
heroRace = race;
|
heroRace = race;
|
||||||
isFemale = !male;
|
isFemale = !male;
|
||||||
name = n;
|
name = n;
|
||||||
setColorIdentity(startingColorIdentity + 1); //+1 because index 0 is colorless.
|
//todo make coloridentity as colorset so if player is using multi color deck, get rewards based on the current selected deck color
|
||||||
|
setColorIdentity(fantasyMode ? 0 : startingColorIdentity + 1); //+1 because index 0 is colorless.
|
||||||
statistic.clear();
|
statistic.clear();
|
||||||
newCards.clear();
|
newCards.clear();
|
||||||
onGoldChangeList.emit();
|
onGoldChangeList.emit();
|
||||||
|
|||||||
@@ -2,20 +2,25 @@ package forge.adventure.scene;
|
|||||||
|
|
||||||
import com.badlogic.gdx.Gdx;
|
import com.badlogic.gdx.Gdx;
|
||||||
import com.badlogic.gdx.Input;
|
import com.badlogic.gdx.Input;
|
||||||
|
import com.badlogic.gdx.graphics.Color;
|
||||||
|
import com.badlogic.gdx.scenes.scene2d.Actor;
|
||||||
import com.badlogic.gdx.scenes.scene2d.Event;
|
import com.badlogic.gdx.scenes.scene2d.Event;
|
||||||
import com.badlogic.gdx.scenes.scene2d.EventListener;
|
import com.badlogic.gdx.scenes.scene2d.EventListener;
|
||||||
|
import com.badlogic.gdx.scenes.scene2d.ui.CheckBox;
|
||||||
import com.badlogic.gdx.scenes.scene2d.ui.Image;
|
import com.badlogic.gdx.scenes.scene2d.ui.Image;
|
||||||
import com.badlogic.gdx.scenes.scene2d.ui.ImageButton;
|
import com.badlogic.gdx.scenes.scene2d.ui.ImageButton;
|
||||||
import com.badlogic.gdx.scenes.scene2d.ui.Label;
|
import com.badlogic.gdx.scenes.scene2d.ui.Label;
|
||||||
import com.badlogic.gdx.scenes.scene2d.ui.ScrollPane;
|
import com.badlogic.gdx.scenes.scene2d.ui.ScrollPane;
|
||||||
import com.badlogic.gdx.scenes.scene2d.ui.TextButton;
|
import com.badlogic.gdx.scenes.scene2d.ui.TextButton;
|
||||||
import com.badlogic.gdx.scenes.scene2d.ui.TextField;
|
import com.badlogic.gdx.scenes.scene2d.ui.TextField;
|
||||||
|
import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener;
|
||||||
import com.badlogic.gdx.scenes.scene2d.utils.TextureRegionDrawable;
|
import com.badlogic.gdx.scenes.scene2d.utils.TextureRegionDrawable;
|
||||||
import com.badlogic.gdx.utils.Array;
|
import com.badlogic.gdx.utils.Array;
|
||||||
import forge.Forge;
|
import forge.Forge;
|
||||||
import forge.adventure.data.DifficultyData;
|
import forge.adventure.data.DifficultyData;
|
||||||
import forge.adventure.data.HeroListData;
|
import forge.adventure.data.HeroListData;
|
||||||
import forge.adventure.util.Config;
|
import forge.adventure.util.Config;
|
||||||
|
import forge.adventure.util.Controls;
|
||||||
import forge.adventure.util.Selector;
|
import forge.adventure.util.Selector;
|
||||||
import forge.adventure.world.WorldSave;
|
import forge.adventure.world.WorldSave;
|
||||||
import forge.deck.Deck;
|
import forge.deck.Deck;
|
||||||
@@ -44,6 +49,7 @@ public class NewGameScene extends UIScene {
|
|||||||
private ImageButton leftArrow, rightArrow;
|
private ImageButton leftArrow, rightArrow;
|
||||||
private TextButton backButton, startButton;
|
private TextButton backButton, startButton;
|
||||||
boolean fantasyMode = false;
|
boolean fantasyMode = false;
|
||||||
|
private CheckBox box;
|
||||||
|
|
||||||
public NewGameScene() {
|
public NewGameScene() {
|
||||||
super(Forge.isLandscapeMode() ? "ui/new_game.json" : "ui/new_game_portrait.json");
|
super(Forge.isLandscapeMode() ? "ui/new_game.json" : "ui/new_game_portrait.json");
|
||||||
@@ -100,15 +106,10 @@ public class NewGameScene extends UIScene {
|
|||||||
Array<String> stringList = new Array<>(starterDeck.length);
|
Array<String> stringList = new Array<>(starterDeck.length);
|
||||||
for (Deck deck : starterDeck)
|
for (Deck deck : starterDeck)
|
||||||
stringList.add(deck.getName());
|
stringList.add(deck.getName());
|
||||||
stringList.add("Chaos Mode");
|
Array<String> chaos = new Array<>();
|
||||||
|
chaos.add("Preconstructed");
|
||||||
|
|
||||||
deck.setTextList(stringList);
|
deck.setTextList(stringList);
|
||||||
deck.addListener(new EventListener() {
|
|
||||||
@Override
|
|
||||||
public boolean handle(Event event) {
|
|
||||||
return NewGameScene.this.updateFantasy();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
race = ui.findActor("race");
|
race = ui.findActor("race");
|
||||||
race.addListener(new EventListener() {
|
race.addListener(new EventListener() {
|
||||||
@@ -177,13 +178,26 @@ public class NewGameScene extends UIScene {
|
|||||||
difficultyL.setText(Forge.getLocalizer().getMessage("lblDifficulty"));
|
difficultyL.setText(Forge.getLocalizer().getMessage("lblDifficulty"));
|
||||||
deckL = ui.findActor("deckL");
|
deckL = ui.findActor("deckL");
|
||||||
deckL.setText(Forge.getLocalizer().getMessage("lblDeck"));
|
deckL.setText(Forge.getLocalizer().getMessage("lblDeck"));
|
||||||
|
box = Controls.newCheckBox("");
|
||||||
|
box.addListener(new ChangeListener() {
|
||||||
|
@Override
|
||||||
|
public void changed(ChangeEvent event, Actor actor) {
|
||||||
|
fantasyMode = ((CheckBox) actor).isChecked();
|
||||||
|
deck.setTextList(fantasyMode ? chaos : stringList);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
box.setBounds(deckL.getX()-box.getHeight(), deckL.getY()-box.getHeight(), deckL.getHeight(), deckL.getHeight());
|
||||||
|
Label label = Controls.newLabel("Chaos Mode");
|
||||||
|
label.setColor(Color.BLACK);
|
||||||
|
label.setBounds(box.getX()+22, box.getY(), box.getWidth(), box.getHeight());
|
||||||
|
ui.addActor(box);
|
||||||
|
ui.addActor(label);
|
||||||
leftArrow = ui.findActor("leftAvatar");
|
leftArrow = ui.findActor("leftAvatar");
|
||||||
rightArrow = ui.findActor("rightAvatar");
|
rightArrow = ui.findActor("rightAvatar");
|
||||||
backButton = ui.findActor("back");
|
backButton = ui.findActor("back");
|
||||||
backButton.getLabel().setText(Forge.getLocalizer().getMessage("lblBack"));
|
backButton.getLabel().setText(Forge.getLocalizer().getMessage("lblBack"));
|
||||||
startButton = ui.findActor("start");
|
startButton = ui.findActor("start");
|
||||||
startButton.getLabel().setText(Forge.getLocalizer().getMessage("lblStart"));
|
startButton.getLabel().setText(Forge.getLocalizer().getMessage("lblStart"));
|
||||||
updateFantasy();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -203,11 +217,6 @@ public class NewGameScene extends UIScene {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean updateFantasy() {
|
|
||||||
fantasyMode = "Chaos Mode".equalsIgnoreCase(deck.getText());
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void create() {
|
public void create() {
|
||||||
|
|
||||||
@@ -216,7 +225,6 @@ public class NewGameScene extends UIScene {
|
|||||||
@Override
|
@Override
|
||||||
public void enter() {
|
public void enter() {
|
||||||
updateAvatar();
|
updateAvatar();
|
||||||
updateFantasy();
|
|
||||||
Gdx.input.setInputProcessor(stage); //Start taking input from the ui
|
Gdx.input.setInputProcessor(stage); //Start taking input from the ui
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -175,10 +175,10 @@ public class SaveLoadScene extends UIScene {
|
|||||||
dialog.hide();
|
dialog.hide();
|
||||||
if (WorldSave.getCurrentSave().save(textInput.getText(), currentSlot)) {
|
if (WorldSave.getCurrentSave().save(textInput.getText(), currentSlot)) {
|
||||||
updateFiles();
|
updateFiles();
|
||||||
|
//ensure the dialog is hidden before switching
|
||||||
|
dialog.getColor().a = 0f;
|
||||||
Forge.switchScene(SceneType.GameScene.instance);
|
Forge.switchScene(SceneType.GameScene.instance);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateFiles() {
|
private void updateFiles() {
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ public class GameHUD extends Stage {
|
|||||||
private Console console;
|
private Console console;
|
||||||
float TOUCHPAD_SCALE = 70f, referenceX;
|
float TOUCHPAD_SCALE = 70f, referenceX;
|
||||||
boolean isHiding = false, isShowing = false;
|
boolean isHiding = false, isShowing = false;
|
||||||
|
float opacity = 1f;
|
||||||
|
|
||||||
private GameHUD(GameStage gameStage) {
|
private GameHUD(GameStage gameStage) {
|
||||||
super(new ScalingViewport(Scaling.stretch, Scene.getIntendedWidth(), Scene.getIntendedHeight()), gameStage.getBatch());
|
super(new ScalingViewport(Scaling.stretch, Scene.getIntendedWidth(), Scene.getIntendedHeight()), gameStage.getBatch());
|
||||||
@@ -260,11 +261,13 @@ public class GameHUD extends Stage {
|
|||||||
menuActor.getColor().a = 1f;
|
menuActor.getColor().a = 1f;
|
||||||
statsActor.getColor().a = 1f;
|
statsActor.getColor().a = 1f;
|
||||||
inventoryActor.getColor().a = 1f;
|
inventoryActor.getColor().a = 1f;
|
||||||
|
opacity = 1f;
|
||||||
} else {
|
} else {
|
||||||
deckActor.getColor().a = 0.5f;
|
deckActor.getColor().a = 0.5f;
|
||||||
menuActor.getColor().a = 0.5f;
|
menuActor.getColor().a = 0.5f;
|
||||||
statsActor.getColor().a = 0.5f;
|
statsActor.getColor().a = 0.5f;
|
||||||
inventoryActor.getColor().a = 0.5f;
|
inventoryActor.getColor().a = 0.5f;
|
||||||
|
opacity = 0.5f;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -312,10 +315,10 @@ public class GameHUD extends Stage {
|
|||||||
if (isShowing)
|
if (isShowing)
|
||||||
return;
|
return;
|
||||||
isShowing = true;
|
isShowing = true;
|
||||||
menuActor.addAction(Actions.sequence(Actions.delay(0.1f), Actions.parallel(Actions.show(), Actions.fadeIn(0.1f), Actions.moveTo(referenceX, menuActor.getY(), 0.25f))));
|
menuActor.addAction(Actions.sequence(Actions.delay(0.1f), Actions.parallel(Actions.show(), Actions.alpha(opacity,0.1f), Actions.moveTo(referenceX, menuActor.getY(), 0.25f))));
|
||||||
statsActor.addAction(Actions.sequence(Actions.delay(0.15f), Actions.parallel(Actions.show(), Actions.fadeIn(0.1f), Actions.moveTo(referenceX, statsActor.getY(), 0.25f))));
|
statsActor.addAction(Actions.sequence(Actions.delay(0.15f), Actions.parallel(Actions.show(), Actions.alpha(opacity,0.1f), Actions.moveTo(referenceX, statsActor.getY(), 0.25f))));
|
||||||
inventoryActor.addAction(Actions.sequence(Actions.delay(0.2f), Actions.parallel(Actions.fadeIn(0.1f), Actions.show(), Actions.moveTo(referenceX, inventoryActor.getY(), 0.25f))));
|
inventoryActor.addAction(Actions.sequence(Actions.delay(0.2f), Actions.parallel(Actions.show(), Actions.alpha(opacity,0.1f), Actions.moveTo(referenceX, inventoryActor.getY(), 0.25f))));
|
||||||
deckActor.addAction(Actions.sequence(Actions.delay(0.25f), Actions.parallel(Actions.fadeIn(0.1f), Actions.show(), Actions.moveTo(referenceX, deckActor.getY(), 0.25f))));
|
deckActor.addAction(Actions.sequence(Actions.delay(0.25f), Actions.parallel(Actions.show(), Actions.alpha(opacity,0.1f), Actions.moveTo(referenceX, deckActor.getY(), 0.25f))));
|
||||||
FThreads.delayInEDT(300, () -> isShowing = false);
|
FThreads.delayInEDT(300, () -> isShowing = false);
|
||||||
}
|
}
|
||||||
class ConsoleToggleListener extends ActorGestureListener {
|
class ConsoleToggleListener extends ActorGestureListener {
|
||||||
|
|||||||
@@ -474,7 +474,7 @@ public class DeckgenUtil {
|
|||||||
if (deck != null) {
|
if (deck != null) {
|
||||||
return deck;
|
return deck;
|
||||||
}
|
}
|
||||||
return DeckgenUtil.buildColorDeck(selection, null, forAi);
|
return getRandomColorDeck(forAi);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @return {@link forge.deck.Deck} */
|
/** @return {@link forge.deck.Deck} */
|
||||||
|
|||||||
Reference in New Issue
Block a user