moved controller support to UIScene and abstract it
uses focus for keyboard and controller added Keyboard support Show key hint for buttons added voice line for dialogs fixed missing items rewards fixed some maps adjusted pile decks
@@ -9,26 +9,17 @@ import com.badlogic.gdx.controllers.Controller;
|
||||
import com.badlogic.gdx.controllers.ControllerAdapter;
|
||||
import com.badlogic.gdx.controllers.ControllerListener;
|
||||
import com.badlogic.gdx.controllers.Controllers;
|
||||
import com.badlogic.gdx.graphics.Cursor;
|
||||
import com.badlogic.gdx.graphics.GL20;
|
||||
import com.badlogic.gdx.graphics.Pixmap;
|
||||
import com.badlogic.gdx.graphics.Texture;
|
||||
import com.badlogic.gdx.graphics.TextureData;
|
||||
import com.badlogic.gdx.graphics.*;
|
||||
import com.badlogic.gdx.graphics.g2d.Batch;
|
||||
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
|
||||
import com.badlogic.gdx.graphics.g2d.TextureRegion;
|
||||
import com.badlogic.gdx.utils.Array;
|
||||
import com.badlogic.gdx.utils.Clipboard;
|
||||
import forge.adventure.scene.*;
|
||||
import forge.adventure.stage.MapStage;
|
||||
import forge.adventure.util.Config;
|
||||
import forge.adventure.world.WorldSave;
|
||||
import forge.animation.ForgeAnimation;
|
||||
import forge.assets.Assets;
|
||||
import forge.assets.AssetsDownloader;
|
||||
import forge.assets.FSkin;
|
||||
import forge.assets.FSkinFont;
|
||||
import forge.assets.ImageCache;
|
||||
import forge.assets.*;
|
||||
import forge.error.ExceptionHandler;
|
||||
import forge.gamemodes.limited.BoosterDraft;
|
||||
import forge.gui.FThreads;
|
||||
@@ -1003,8 +994,6 @@ public class Forge implements ApplicationListener {
|
||||
}
|
||||
storeScreen();
|
||||
sceneWasSwapped = true;
|
||||
if (newScene instanceof GameScene)
|
||||
MapStage.getInstance().clearIsInMap();
|
||||
currentScene = newScene;
|
||||
|
||||
currentScene.enter();
|
||||
@@ -1420,9 +1409,6 @@ public class Forge implements ApplicationListener {
|
||||
hasGamepad = true;
|
||||
if (controller.canVibrate())
|
||||
controller.startVibration(200,1);
|
||||
if (Forge.isMobileAdventureMode && Forge.currentScene instanceof UIScene) {
|
||||
((UIScene) Forge.currentScene).selectCurrent();
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public void disconnected(Controller controller) {
|
||||
|
||||
@@ -13,6 +13,9 @@ public class DialogData {
|
||||
public String loctext; //References a localized string for the text body.
|
||||
public DialogData[] options; //List of sub-dialogs. Show up as options in the current one.
|
||||
|
||||
|
||||
public String voiceFile;
|
||||
|
||||
static public class ActionData {
|
||||
static public class QuestFlag {
|
||||
public String key;
|
||||
|
||||
@@ -412,7 +412,8 @@ public class AdventurePlayer implements Serializable, SaveFileContent {
|
||||
addGold(reward.getCount());
|
||||
break;
|
||||
case Item:
|
||||
inventoryItems.add(reward.getItem().name);
|
||||
if(reward.getItem()!=null)
|
||||
inventoryItems.add(reward.getItem().name);
|
||||
break;
|
||||
case Life:
|
||||
addMaxLife(reward.getCount());
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package forge.adventure.scene;
|
||||
|
||||
import com.badlogic.gdx.Input;
|
||||
import com.badlogic.gdx.graphics.g2d.Sprite;
|
||||
import com.badlogic.gdx.graphics.g2d.TextureAtlas;
|
||||
import com.badlogic.gdx.scenes.scene2d.Actor;
|
||||
@@ -38,8 +37,6 @@ public class ArenaScene extends UIScene implements IAfterMatch {
|
||||
}
|
||||
|
||||
private final TextraButton doneButton;
|
||||
Dialog startDialog;
|
||||
Dialog areYouSureDialog;
|
||||
private final TextraLabel goldLabel;
|
||||
|
||||
private final Group arenaPlane;
|
||||
@@ -81,7 +78,7 @@ public class ArenaScene extends UIScene implements IAfterMatch {
|
||||
if(!arenaStarted)
|
||||
ArenaScene.this.done();
|
||||
else
|
||||
areYouSureDialog.show(stage);
|
||||
showAreYouSure();
|
||||
});
|
||||
ui.onButtonPress("start", () -> startButton());
|
||||
doneButton = ui.findActor("done");
|
||||
@@ -91,38 +88,15 @@ public class ArenaScene extends UIScene implements IAfterMatch {
|
||||
|
||||
startButton=ui.findActor("start");
|
||||
|
||||
startDialog = new Dialog(Forge.getLocalizer().getMessage("lblStart"), Controls.getSkin())
|
||||
{
|
||||
protected void result(Object object)
|
||||
{
|
||||
if(object!=null&&object.equals(true))
|
||||
startArena();
|
||||
startDialog.hide();
|
||||
}
|
||||
};
|
||||
startDialog.text("Do you want to go into the Arena?");
|
||||
startDialog.button(Forge.getLocalizer().getMessage("lblYes"), true);
|
||||
startDialog.button(Forge.getLocalizer().getMessage("lblNo"), false);
|
||||
ui.addActor(startDialog);
|
||||
startDialog.hide();
|
||||
startDialog.getColor().a = 0;
|
||||
|
||||
|
||||
areYouSureDialog= new Dialog(Forge.getLocalizer().getMessage("lblConcedeTitle"), Controls.getSkin())
|
||||
{
|
||||
protected void result(Object object)
|
||||
{
|
||||
if(object!=null&&object.equals(true))
|
||||
loose();
|
||||
startDialog.hide();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
private void showAreYouSure() {
|
||||
|
||||
Dialog areYouSureDialog= prepareDialog(Forge.getLocalizer().getMessage("lblConcedeTitle"),ButtonYes|ButtonNo,()->loose());
|
||||
areYouSureDialog.text(Forge.getLocalizer().getMessage("lblConcedeCurrentGame"));
|
||||
areYouSureDialog.button(Forge.getLocalizer().getMessage("lblYes"), true);
|
||||
areYouSureDialog.button(Forge.getLocalizer().getMessage("lblNo"), false);
|
||||
ui.addActor(areYouSureDialog);
|
||||
areYouSureDialog.hide();
|
||||
areYouSureDialog.getColor().a = 0;
|
||||
showDialog(areYouSureDialog);
|
||||
}
|
||||
|
||||
private void loose() {
|
||||
@@ -134,7 +108,9 @@ public class ArenaScene extends UIScene implements IAfterMatch {
|
||||
private void startButton() {
|
||||
if(roundsWon ==0)
|
||||
{
|
||||
startDialog.show(stage);
|
||||
Dialog startDialog = prepareDialog(Forge.getLocalizer().getMessage("lblStart"), ButtonYes|ButtonNo,()->startArena());
|
||||
startDialog.text("Do you want to go into the Arena?");
|
||||
showDialog(startDialog);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -271,13 +247,6 @@ public class ArenaScene extends UIScene implements IAfterMatch {
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean keyPressed(int keycode) {
|
||||
if (keycode == Input.Keys.ESCAPE || keycode == Input.Keys.BACK) {
|
||||
done();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
Array<EnemySprite> enemies = new Array<>();
|
||||
Array<Actor> fighters = new Array<>();
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
package forge.adventure.scene;
|
||||
|
||||
import com.badlogic.gdx.Input;
|
||||
import com.badlogic.gdx.graphics.Color;
|
||||
import com.badlogic.gdx.scenes.scene2d.InputEvent;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.*;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.Dialog;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.ScrollPane;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.Table;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.TextField;
|
||||
import com.badlogic.gdx.scenes.scene2d.utils.ClickListener;
|
||||
import com.badlogic.gdx.utils.Align;
|
||||
import com.badlogic.gdx.utils.IntMap;
|
||||
@@ -17,11 +19,10 @@ import forge.adventure.util.Current;
|
||||
public class DeckSelectScene extends UIScene {
|
||||
private final IntMap<TextraButton> buttons = new IntMap<>();
|
||||
Color defColor;
|
||||
Dialog dialog;
|
||||
TextField textInput;
|
||||
Table layout;
|
||||
TextraLabel header;
|
||||
TextraButton back, edit, rename, dialogRenameBtn, dialogAbortBtn;
|
||||
TextraButton back, edit, rename;
|
||||
int currentSlot = 0;
|
||||
ScrollPane scrollPane;
|
||||
|
||||
@@ -44,20 +45,7 @@ public class DeckSelectScene extends UIScene {
|
||||
for (int i = 0; i < AdventurePlayer.NUMBER_OF_DECKS; i++)
|
||||
addDeckSlot(Forge.getLocalizer().getMessage("lblDeck")+": " + (i + 1), i);
|
||||
|
||||
dialog = Controls.newDialog(Forge.getLocalizer().getMessage("lblSave"));
|
||||
textInput = Controls.newTextField("");
|
||||
dialog.getButtonTable().add(Controls.newLabel(Forge.getLocalizer().getMessage("lblNameYourSaveFile"))).colspan(2);
|
||||
dialog.getButtonTable().row();
|
||||
dialog.getButtonTable().add(Controls.newLabel(Forge.getLocalizer().getMessage("lblName")+": ")).align(Align.left);
|
||||
dialog.getButtonTable().add(textInput).fillX().expandX();
|
||||
dialog.getButtonTable().row();
|
||||
dialogRenameBtn = Controls.newTextButton(Forge.getLocalizer().getMessage("lblRename"), () -> DeckSelectScene.this.rename());
|
||||
dialog.getButtonTable().add(dialogRenameBtn).align(Align.left).padLeft(15);
|
||||
dialogAbortBtn = Controls.newTextButton(Forge.getLocalizer().getMessage("lblAbort"), () -> dialog.hide());
|
||||
dialog.getButtonTable().add(dialogAbortBtn).align(Align.right).padRight(15);
|
||||
dialog.getColor().a = 0f;
|
||||
dialog.hide();
|
||||
|
||||
back = ui.findActor("return");
|
||||
edit = ui.findActor("edit");
|
||||
rename = ui.findActor("rename");
|
||||
@@ -65,8 +53,7 @@ public class DeckSelectScene extends UIScene {
|
||||
ui.onButtonPress("edit", () -> DeckSelectScene.this.edit());
|
||||
ui.onButtonPress("rename", () -> {
|
||||
textInput.setText(Current.player().getSelectedDeck().getName());
|
||||
dialog.show(stage);
|
||||
selectActor(textInput, false);
|
||||
showRenameDialog();
|
||||
});
|
||||
defColor = ui.findActor("return").getColor();
|
||||
|
||||
@@ -74,6 +61,17 @@ public class DeckSelectScene extends UIScene {
|
||||
scrollPane.setActor(layout);
|
||||
}
|
||||
|
||||
private void showRenameDialog() {
|
||||
|
||||
Dialog dialog = prepareDialog(Forge.getLocalizer().getMessage("lblRenameDeck"),ButtonOk|ButtonAbort,()->DeckSelectScene.this.rename());
|
||||
dialog.getContentTable().add(Controls.newLabel(Forge.getLocalizer().getMessage("lblNameYourSaveFile"))).colspan(2);
|
||||
dialog.getContentTable().row();
|
||||
dialog.getContentTable().add(Controls.newLabel(Forge.getLocalizer().getMessage("lblName")+": ")).align(Align.left);
|
||||
dialog.getContentTable().add(textInput).fillX().expandX();
|
||||
dialog.getContentTable().row();
|
||||
showDialog(dialog);
|
||||
}
|
||||
|
||||
private TextraButton addDeckSlot(String name, int i) {
|
||||
TextraButton button = Controls.newTextButton("-");
|
||||
button.addListener(new ClickListener() {
|
||||
@@ -91,13 +89,11 @@ public class DeckSelectScene extends UIScene {
|
||||
layout.add(Controls.newLabel(name)).expandX().pad(2);
|
||||
layout.add(button).expandX().pad(2);
|
||||
buttons.put(i, button);
|
||||
addToSelectable(new Selectable(button));
|
||||
layout.row();
|
||||
return button;
|
||||
}
|
||||
|
||||
public void back() {
|
||||
Forge.switchToLast();
|
||||
}
|
||||
|
||||
public boolean select(int slot) {
|
||||
currentSlot = slot;
|
||||
@@ -115,30 +111,15 @@ public class DeckSelectScene extends UIScene {
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean keyPressed(int keycode) {
|
||||
if (keycode == Input.Keys.ESCAPE || keycode == Input.Keys.BACK) {
|
||||
back();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void enter() {
|
||||
clearActorObjects();
|
||||
for (int i = 0; i < AdventurePlayer.NUMBER_OF_DECKS; i++) {
|
||||
if (buttons.containsKey(i)) {
|
||||
buttons.get(i).setText(Current.player().getDeck(i).getName());
|
||||
buttons.get(i).getTextraLabel().layout();
|
||||
addActorObject(buttons.get(i));
|
||||
}
|
||||
}
|
||||
addActorObject(back);
|
||||
addActorObject(rename);
|
||||
addActorObject(edit);
|
||||
addActorObject(textInput);
|
||||
addActorObject(dialogRenameBtn);
|
||||
addActorObject(dialogAbortBtn);
|
||||
select(Current.player().getSelectedDeckIndex());
|
||||
super.enter();
|
||||
}
|
||||
@@ -146,7 +127,6 @@ public class DeckSelectScene extends UIScene {
|
||||
|
||||
|
||||
private void rename() {
|
||||
dialog.hide();
|
||||
String text = textInput.getText();
|
||||
Current.player().renameDeck(text);
|
||||
buttons.get(currentSlot).setText(Current.player().getDeck(currentSlot).getName());
|
||||
|
||||
@@ -3,6 +3,7 @@ package forge.adventure.scene;
|
||||
import com.badlogic.gdx.Gdx;
|
||||
import com.badlogic.gdx.graphics.GL20;
|
||||
import forge.Forge;
|
||||
import forge.adventure.stage.MapStage;
|
||||
import forge.adventure.stage.WorldStage;
|
||||
|
||||
/**
|
||||
@@ -44,6 +45,7 @@ public class GameScene extends HudScene {
|
||||
|
||||
@Override
|
||||
public void enter() {
|
||||
MapStage.getInstance().clearIsInMap();
|
||||
Forge.clearTransitionScreen();
|
||||
Forge.clearCurrentScreen();
|
||||
super.enter();
|
||||
|
||||
@@ -2,12 +2,13 @@ package forge.adventure.scene;
|
||||
|
||||
import com.badlogic.gdx.Gdx;
|
||||
import com.badlogic.gdx.InputProcessor;
|
||||
import com.badlogic.gdx.controllers.Controller;
|
||||
import com.badlogic.gdx.graphics.GL20;
|
||||
import forge.Forge;
|
||||
import forge.adventure.stage.GameHUD;
|
||||
import forge.adventure.stage.GameStage;
|
||||
import forge.adventure.stage.IAfterMatch;
|
||||
import forge.adventure.stage.MapStage;
|
||||
import forge.adventure.util.KeyBinding;
|
||||
|
||||
/**
|
||||
* Hud base scene
|
||||
@@ -25,7 +26,7 @@ public abstract class HudScene extends Scene implements InputProcessor, IAfterMa
|
||||
@Override
|
||||
public boolean leave() {
|
||||
stage.leave();
|
||||
return true;
|
||||
return super.leave();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -33,6 +34,7 @@ public abstract class HudScene extends Scene implements InputProcessor, IAfterMa
|
||||
Gdx.input.setInputProcessor(this);
|
||||
stage.enter();
|
||||
hud.enter();
|
||||
super.enter();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -57,10 +59,8 @@ public abstract class HudScene extends Scene implements InputProcessor, IAfterMa
|
||||
|
||||
@Override
|
||||
public boolean keyDown(int keycode) {
|
||||
if (Forge.hasGamepad()) {
|
||||
if (MapStage.getInstance().isDialogOnlyInput()) {
|
||||
return MapStage.getInstance().buttonPress(keycode);
|
||||
}
|
||||
if (MapStage.getInstance().isDialogOnlyInput()) {
|
||||
return MapStage.getInstance().dialogInput(keycode);
|
||||
}
|
||||
if (hud.keyDown(keycode))
|
||||
return true;
|
||||
@@ -72,12 +72,23 @@ public abstract class HudScene extends Scene implements InputProcessor, IAfterMa
|
||||
@Override
|
||||
public boolean keyUp(int keycode) {
|
||||
|
||||
if (MapStage.getInstance().isDialogOnlyInput()) {
|
||||
return true;
|
||||
}
|
||||
if (hud.keyUp(keycode))
|
||||
return true;
|
||||
if(isInHudOnlyMode())
|
||||
return false;
|
||||
return stage.keyUp(keycode);
|
||||
}
|
||||
@Override
|
||||
public boolean buttonDown(Controller var1, int var2) {
|
||||
return keyDown(KeyBinding.controllerButtonToKey(var1,var2));
|
||||
}
|
||||
@Override
|
||||
public boolean buttonUp(Controller var1, int var2) {
|
||||
return keyUp(KeyBinding.controllerButtonToKey(var1,var2));
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean keyTyped(char character) {
|
||||
@@ -134,6 +145,11 @@ public abstract class HudScene extends Scene implements InputProcessor, IAfterMa
|
||||
return stage.scrolled(amountX, amountY);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean axisMoved(Controller controller, int axisIndex, float value) {
|
||||
|
||||
return stage.axisMoved(controller, axisIndex, value);
|
||||
}
|
||||
@Override
|
||||
public void setWinner(boolean winner) {
|
||||
stage.setWinner(winner);
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package forge.adventure.scene;
|
||||
|
||||
import com.badlogic.gdx.Input;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.Image;
|
||||
import com.github.tommyettinger.textra.TextraButton;
|
||||
import forge.Forge;
|
||||
@@ -71,40 +70,11 @@ public class InnScene extends UIScene {
|
||||
|
||||
tempHitPointCost.setDisabled(!purchaseable);
|
||||
tempHitPointCost.setText( tempHealthCost+"[+Gold]");
|
||||
clearActorObjects();
|
||||
addActorObject(tempHitPointCost);
|
||||
addActorObject(sell);
|
||||
addActorObject(leave);
|
||||
}
|
||||
|
||||
private void sell() {
|
||||
Forge.switchScene(ShopScene.instance());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean keyPressed(int keycode) {
|
||||
if (keycode == Input.Keys.ESCAPE || keycode == Input.Keys.BACK) {
|
||||
done();
|
||||
}
|
||||
if (keycode == Input.Keys.DPAD_RIGHT) {
|
||||
if (selectedActor == null)
|
||||
selectActor(tempHitPointCost, false);
|
||||
else
|
||||
selectNextActor(false);
|
||||
} else if ( keycode == Input.Keys.DPAD_LEFT) {
|
||||
if (selectedActor == null)
|
||||
selectActor(leave, false);
|
||||
else
|
||||
selectPreviousActor(false);
|
||||
|
||||
} else if (keycode == Input.Keys.BUTTON_B) {
|
||||
performTouch(leave);
|
||||
|
||||
} else if (keycode == Input.Keys.BUTTON_A) {
|
||||
performTouch(selectedActor);
|
||||
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,13 +1,11 @@
|
||||
package forge.adventure.scene;
|
||||
|
||||
import com.badlogic.gdx.Input;
|
||||
import com.badlogic.gdx.graphics.Texture;
|
||||
import com.badlogic.gdx.scenes.scene2d.Actor;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.*;
|
||||
import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener;
|
||||
import com.badlogic.gdx.utils.Align;
|
||||
import com.badlogic.gdx.utils.Array;
|
||||
import com.badlogic.gdx.utils.Timer;
|
||||
import com.github.tommyettinger.textra.TextraButton;
|
||||
import com.github.tommyettinger.textra.TextraLabel;
|
||||
import forge.Forge;
|
||||
@@ -28,8 +26,6 @@ public class InventoryScene extends UIScene {
|
||||
Button equipButton;
|
||||
TextraButton useButton;
|
||||
TextraLabel itemDescription;
|
||||
Dialog confirm;
|
||||
Dialog useDialog;
|
||||
private final Table inventory;
|
||||
private final Array<Button> inventoryButtons=new Array<>();
|
||||
private final HashMap<String,Button> equipmentSlots=new HashMap<>();
|
||||
@@ -44,7 +40,7 @@ public class InventoryScene extends UIScene {
|
||||
equipOverlay = new Texture(Config.instance().getFile(Paths.ITEMS_EQUIP));
|
||||
ui.onButtonPress("return", () -> done());
|
||||
leave = ui.findActor("return");
|
||||
ui.onButtonPress("delete", () -> confirm.show(stage));
|
||||
ui.onButtonPress("delete", () -> showConfirm());
|
||||
ui.onButtonPress("equip", () -> equip());
|
||||
ui.onButtonPress("use", () -> use());
|
||||
equipButton = ui.findActor("equip");
|
||||
@@ -109,45 +105,16 @@ public class InventoryScene extends UIScene {
|
||||
columns-=1;
|
||||
if(columns<=0)columns=1;
|
||||
scrollPane.setActor(inventory);
|
||||
confirm = new Dialog("", Controls.getSkin())
|
||||
{
|
||||
protected void result(Object object)
|
||||
{
|
||||
if(object!=null&&object.equals(true))
|
||||
delete();
|
||||
confirm.hide();
|
||||
}
|
||||
};
|
||||
confirm.text( Controls.newLabel(Forge.getLocalizer().getMessage("lblDelete")));
|
||||
|
||||
confirm.button(Forge.getLocalizer().getMessage("lblYes"), true);
|
||||
confirm.button(Forge.getLocalizer().getMessage("lblNo"), false);
|
||||
ui.addActor(confirm);
|
||||
confirm.hide();
|
||||
|
||||
itemDescription.setWrap(true);
|
||||
//makes confirm dialog hidden immediately when you open inventory first time..
|
||||
confirm.getColor().a = 0;
|
||||
|
||||
|
||||
useDialog = new Dialog("", Controls.getSkin())
|
||||
{
|
||||
protected void result(Object object)
|
||||
{
|
||||
useDialog.hide();
|
||||
if(object!=null&&object.equals(true))
|
||||
{
|
||||
triggerUse();
|
||||
useDialog.getColor().a = 0;
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
useDialog.button(Forge.getLocalizer().getMessage("lblYes"), true);
|
||||
useDialog.button(Forge.getLocalizer().getMessage("lblNo"), false);
|
||||
ui.addActor(useDialog);
|
||||
useDialog.hide();
|
||||
useDialog.getColor().a = 0;
|
||||
private void showConfirm() {
|
||||
Dialog confirm = prepareDialog("",ButtonYes|ButtonNo,()->delete());
|
||||
confirm.text( Controls.newLabel(Forge.getLocalizer().getMessage("lblDelete")));
|
||||
showDialog(confirm);
|
||||
}
|
||||
|
||||
private static InventoryScene object;
|
||||
@@ -197,11 +164,11 @@ public class InventoryScene extends UIScene {
|
||||
ConsoleCommandInterpreter.getInstance().command(data.commandOnUse);
|
||||
}
|
||||
private void use() {
|
||||
useDialog.getContentTable().clear();
|
||||
ItemData data = ItemData.getItem(itemLocation.get(selected));
|
||||
if(data==null)return;
|
||||
Dialog useDialog = prepareDialog("",ButtonYes|ButtonNo,()->triggerUse());
|
||||
useDialog.getContentTable().add(Controls.newTextraLabel("Use "+data.name+"?\n"+data.getDescription()));
|
||||
useDialog.show(stage);
|
||||
showDialog(useDialog);
|
||||
}
|
||||
|
||||
private void setSelected(Button actor) {
|
||||
@@ -268,7 +235,7 @@ public class InventoryScene extends UIScene {
|
||||
}
|
||||
|
||||
private void updateInventory() {
|
||||
clearActorObjects();
|
||||
clearSelectable();
|
||||
inventoryButtons.clear();
|
||||
inventory.clear();
|
||||
for(int i=0;i<Current.player().getItems().size;i++) {
|
||||
@@ -277,6 +244,13 @@ public class InventoryScene extends UIScene {
|
||||
inventory.row();
|
||||
Button newActor=createInventorySlot();
|
||||
inventory.add(newActor).top().left().space(1);
|
||||
addToSelectable(new Selectable(newActor){
|
||||
@Override
|
||||
public void onSelect(UIScene scene) {
|
||||
setSelected(newActor);
|
||||
super.onSelect(scene);
|
||||
}
|
||||
});
|
||||
inventoryButtons.add(newActor);
|
||||
ItemData item=ItemData.getItem(Current.player().getItems().get(i));
|
||||
if(item==null)
|
||||
@@ -310,7 +284,6 @@ public class InventoryScene extends UIScene {
|
||||
}
|
||||
}
|
||||
});
|
||||
addActorObject(newActor);
|
||||
}
|
||||
for(Map.Entry<String, Button> slot :equipmentSlots.entrySet()) {
|
||||
if(slot.getValue().getChildren().size>=2)
|
||||
@@ -341,32 +314,4 @@ public class InventoryScene extends UIScene {
|
||||
return button;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean keyPressed(int keycode) {
|
||||
if (keycode == Input.Keys.ESCAPE || keycode == Input.Keys.BACK) {
|
||||
done();
|
||||
}
|
||||
if (keycode == Input.Keys.BUTTON_SELECT)
|
||||
performTouch(ui.findActor("return"));
|
||||
else if (keycode == Input.Keys.BUTTON_B)
|
||||
performTouch(ui.findActor("return"));
|
||||
else if (keycode == Input.Keys.BUTTON_A) {
|
||||
if (selectedActor instanceof ImageButton) {
|
||||
performTouch(equipButton);
|
||||
Timer.schedule(new Timer.Task() {
|
||||
@Override
|
||||
public void run() {
|
||||
selectCurrent();
|
||||
}
|
||||
}, 0.25f);
|
||||
|
||||
} else {
|
||||
performTouch(selectedActor);
|
||||
}
|
||||
} else if (keycode == Input.Keys.DPAD_RIGHT || keycode == Input.Keys.DPAD_DOWN)
|
||||
selectNextActor(false);
|
||||
else if (keycode == Input.Keys.DPAD_LEFT || keycode == Input.Keys.DPAD_UP)
|
||||
selectPreviousActor(false);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,16 +1,11 @@
|
||||
package forge.adventure.scene;
|
||||
|
||||
import com.badlogic.gdx.Gdx;
|
||||
import com.badlogic.gdx.Input;
|
||||
import com.badlogic.gdx.scenes.scene2d.Actor;
|
||||
import com.badlogic.gdx.scenes.scene2d.InputEvent;
|
||||
import com.badlogic.gdx.scenes.scene2d.InputListener;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.Image;
|
||||
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.utils.Array;
|
||||
import com.github.tommyettinger.textra.TextraButton;
|
||||
import com.github.tommyettinger.textra.TextraLabel;
|
||||
import forge.Forge;
|
||||
import forge.adventure.data.DifficultyData;
|
||||
@@ -22,7 +17,6 @@ import forge.adventure.util.UIActor;
|
||||
import forge.adventure.world.WorldSave;
|
||||
import forge.card.ColorSet;
|
||||
import forge.deck.DeckProxy;
|
||||
import forge.gui.GuiBase;
|
||||
import forge.localinstance.properties.ForgePreferences;
|
||||
import forge.model.FModel;
|
||||
import forge.player.GamePlayerUtil;
|
||||
@@ -54,16 +48,6 @@ public class NewGameScene extends UIScene {
|
||||
|
||||
selectedName = ui.findActor("nameField");
|
||||
selectedName.setText(NameGenerator.getRandomName("Any", "Any", ""));
|
||||
selectedName.addListener(new InputListener() {
|
||||
@Override
|
||||
public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
|
||||
if (!GuiBase.isAndroid() && showGamepadSelector) {
|
||||
//show onscreen keyboard
|
||||
return true;
|
||||
}
|
||||
return super.touchDown(event, x, y, pointer, button);
|
||||
}
|
||||
});
|
||||
avatarImage = ui.findActor("avatarPreview");
|
||||
gender = ui.findActor("gender");
|
||||
mode = ui.findActor("mode");
|
||||
@@ -211,15 +195,10 @@ public class NewGameScene extends UIScene {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void create() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void enter() {
|
||||
updateAvatar();
|
||||
Gdx.input.setInputProcessor(stage); //Start taking input from the ui
|
||||
|
||||
if (Forge.createNewAdventureMap) {
|
||||
FModel.getPreferences().setPref(ForgePreferences.FPref.UI_ENABLE_MUSIC, false);
|
||||
@@ -233,155 +212,8 @@ public class NewGameScene extends UIScene {
|
||||
GamePlayerUtil.getGuiPlayer().setName(selectedName.getText());
|
||||
Forge.switchScene(GameScene.instance());
|
||||
}
|
||||
clearActorObjects();
|
||||
addActorObject(selectedName);
|
||||
addActorObject(race);
|
||||
addActorObject(gender);
|
||||
addActorObject(difficulty);
|
||||
addActorObject(colorId);
|
||||
addActorObject(mode);
|
||||
addActorObject(ui.findActor("back"));
|
||||
addActorObject(ui.findActor("start"));
|
||||
|
||||
unselectActors();
|
||||
super.enter();
|
||||
}
|
||||
@Override
|
||||
public boolean pointerMoved(int screenX, int screenY) {
|
||||
ui.screenToLocalCoordinates(pointer.set(screenX,screenY));
|
||||
if (showGamepadSelector) {
|
||||
unselectActors();
|
||||
showGamepadSelector = false;
|
||||
}
|
||||
if (kbVisible)
|
||||
return super.pointerMoved(screenX, screenY);
|
||||
updateHovered();
|
||||
return super.pointerMoved(screenX, screenY);
|
||||
}
|
||||
@Override
|
||||
public boolean keyPressed(int keycode) {
|
||||
if (Forge.hasGamepad())
|
||||
showGamepadSelector = true;
|
||||
if (keycode == Input.Keys.ESCAPE || keycode == Input.Keys.BACK) {
|
||||
if(!kbVisible)
|
||||
back();
|
||||
}
|
||||
if (keycode == Input.Keys.BUTTON_SELECT) {
|
||||
if (showGamepadSelector) {
|
||||
if(!kbVisible)
|
||||
performTouch(ui.findActor("back"));
|
||||
}
|
||||
} else if (keycode == Input.Keys.BUTTON_START) {
|
||||
if (showGamepadSelector) {
|
||||
if(kbVisible)
|
||||
keyOK();
|
||||
else
|
||||
performTouch(ui.findActor("start"));
|
||||
}
|
||||
} else if (keycode == Input.Keys.BUTTON_L2) {
|
||||
if(!kbVisible)
|
||||
selectedName.setText(NameGenerator.getRandomName("Female", "Any", selectedName.getText()));
|
||||
} else if (keycode == Input.Keys.BUTTON_R2) {
|
||||
if(!kbVisible)
|
||||
selectedName.setText(NameGenerator.getRandomName("Male", "Any", selectedName.getText()));
|
||||
} else if (keycode == Input.Keys.BUTTON_L1) {
|
||||
if (showGamepadSelector) {
|
||||
if (kbVisible)
|
||||
toggleShiftOrBackspace(true);
|
||||
else
|
||||
performTouch(ui.findActor("leftAvatar"));
|
||||
}
|
||||
} else if (keycode == Input.Keys.BUTTON_R1) {
|
||||
if (showGamepadSelector) {
|
||||
if(kbVisible)
|
||||
toggleShiftOrBackspace(false);
|
||||
else
|
||||
performTouch(ui.findActor("rightAvatar"));
|
||||
}
|
||||
} else if (keycode == Input.Keys.DPAD_DOWN) {
|
||||
if (showGamepadSelector) {
|
||||
if (kbVisible) {
|
||||
setSelectedKey(keycode);
|
||||
} else {
|
||||
if (selectedActor == mode)
|
||||
selectActor(selectedName, false);
|
||||
else if (selectedActor == ui.findActor("back"))
|
||||
selectActor(ui.findActor("start"), false);
|
||||
else if (selectedActor == ui.findActor("start"))
|
||||
selectActor(ui.findActor("back"), false);
|
||||
else
|
||||
selectNextActor(false);
|
||||
}
|
||||
}
|
||||
} else if (keycode == Input.Keys.DPAD_UP) {
|
||||
if (showGamepadSelector) {
|
||||
if (kbVisible) {
|
||||
setSelectedKey(keycode);
|
||||
} else {
|
||||
if (selectedActor == selectedName)
|
||||
selectActor(mode, false);
|
||||
else if (selectedActor == ui.findActor("start"))
|
||||
selectActor(ui.findActor("back"), false);
|
||||
else if (selectedActor == ui.findActor("back"))
|
||||
selectActor(ui.findActor("start"), false);
|
||||
else
|
||||
selectPreviousActor(false);
|
||||
}
|
||||
}
|
||||
} else if (keycode == Input.Keys.DPAD_LEFT) {
|
||||
if (showGamepadSelector) {
|
||||
if (kbVisible) {
|
||||
setSelectedKey(keycode);
|
||||
} else {
|
||||
if (selectedActor == ui.findActor("back") || selectedActor == ui.findActor("start"))
|
||||
selectActor(mode, false);
|
||||
}
|
||||
}
|
||||
} else if (keycode == Input.Keys.DPAD_RIGHT) {
|
||||
if (showGamepadSelector) {
|
||||
if (kbVisible) {
|
||||
setSelectedKey(keycode);
|
||||
} else {
|
||||
if (!(selectedActor == ui.findActor("back") || selectedActor == ui.findActor("start")))
|
||||
selectActor(ui.findActor("start"), false);
|
||||
}
|
||||
}
|
||||
} else if (keycode == Input.Keys.BUTTON_A) {
|
||||
if (showGamepadSelector) {
|
||||
if (kbVisible) {
|
||||
if (selectedKey != null)
|
||||
performTouch(selectedKey);
|
||||
} else {
|
||||
if (selectedActor != null) {
|
||||
if (selectedActor instanceof TextraButton)
|
||||
performTouch(selectedActor);
|
||||
else if (selectedActor instanceof TextField && !kbVisible) {
|
||||
lastInputField = selectedActor;
|
||||
showOnScreenKeyboard("");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (keycode == Input.Keys.BUTTON_B) {
|
||||
if (showGamepadSelector) {
|
||||
if (kbVisible) {
|
||||
hideOnScreenKeyboard();
|
||||
} else {
|
||||
performTouch(ui.findActor("back"));
|
||||
}
|
||||
}
|
||||
} else if (keycode == Input.Keys.BUTTON_X) {
|
||||
if (showGamepadSelector) {
|
||||
if(!kbVisible)
|
||||
if (selectedActor != null && selectedActor instanceof Selector)
|
||||
performTouch(((Selector) selectedActor).getLeftArrow());
|
||||
}
|
||||
} else if (keycode == Input.Keys.BUTTON_Y) {
|
||||
if (showGamepadSelector) {
|
||||
if(!kbVisible)
|
||||
if (selectedActor != null && selectedActor instanceof Selector)
|
||||
performTouch(((Selector) selectedActor).getRightArrow());
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package forge.adventure.scene;
|
||||
|
||||
import com.badlogic.gdx.Input;
|
||||
import com.badlogic.gdx.graphics.Color;
|
||||
import com.badlogic.gdx.graphics.g2d.TextureRegion;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.Image;
|
||||
@@ -15,7 +14,6 @@ import forge.adventure.character.EnemySprite;
|
||||
import forge.adventure.data.EnemyData;
|
||||
import forge.adventure.data.WorldData;
|
||||
import forge.adventure.player.AdventurePlayer;
|
||||
import forge.adventure.stage.GameHUD;
|
||||
import forge.adventure.util.Config;
|
||||
import forge.adventure.util.Controls;
|
||||
import forge.adventure.util.Current;
|
||||
@@ -40,6 +38,7 @@ public class PlayerStatisticScene extends UIScene {
|
||||
TextraLabel blessingScroll;
|
||||
ScrollPane scrollPane, blessing;
|
||||
|
||||
|
||||
private PlayerStatisticScene() {
|
||||
super(Forge.isLandscapeMode() ? "ui/statistic.json" : "ui/statistic_portrait.json");
|
||||
|
||||
@@ -89,29 +88,7 @@ public class PlayerStatisticScene extends UIScene {
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean keyPressed(int keycode) {
|
||||
if (keycode == Input.Keys.ESCAPE || keycode == Input.Keys.BACK) {
|
||||
back();
|
||||
}
|
||||
if (keycode == Input.Keys.BUTTON_B)
|
||||
performTouch(ui.findActor("return"));
|
||||
else if (keycode == Input.Keys.BUTTON_A)
|
||||
performTouch(selectedActor);
|
||||
else if (keycode == Input.Keys.BUTTON_L1 || keycode == Input.Keys.DPAD_UP) {
|
||||
scrollPane.fling(1f, 0, -300);
|
||||
} else if (keycode == Input.Keys.BUTTON_R1 || keycode == Input.Keys.DPAD_DOWN) {
|
||||
scrollPane.fling(1f, 0, +300);
|
||||
} else if (keycode == Input.Keys.DPAD_LEFT || keycode == Input.Keys.DPAD_RIGHT || keycode == Input.Keys.DPAD_UP || keycode == Input.Keys.DPAD_DOWN)
|
||||
selectActor(back, false);
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean back() {
|
||||
GameHUD.getInstance().getTouchpad().setVisible(false);
|
||||
Forge.switchToLast();
|
||||
return true;
|
||||
}
|
||||
private TextureRegion getColorFrame(ColorSet color){
|
||||
String colorName= "color_";
|
||||
if(color.hasWhite())
|
||||
@@ -188,9 +165,4 @@ public class PlayerStatisticScene extends UIScene {
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void create() {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package forge.adventure.scene;
|
||||
|
||||
import com.badlogic.gdx.Gdx;
|
||||
import com.badlogic.gdx.Input;
|
||||
import com.badlogic.gdx.scenes.scene2d.Actor;
|
||||
import com.badlogic.gdx.scenes.scene2d.InputEvent;
|
||||
import com.badlogic.gdx.scenes.scene2d.utils.ClickListener;
|
||||
@@ -53,9 +52,40 @@ public class RewardScene extends UIScene {
|
||||
|
||||
goldLabel=ui.findActor("gold");
|
||||
ui.onButtonPress("done", () -> RewardScene.this.done());
|
||||
ui.onButtonPress("detail",()->RewardScene.this.toggleToolTip());
|
||||
doneButton = ui.findActor("done");
|
||||
}
|
||||
|
||||
private void toggleToolTip() {
|
||||
|
||||
Selectable selectable=getSelected();
|
||||
if(selectable==null)
|
||||
return;
|
||||
RewardActor actor;
|
||||
if(selectable.actor instanceof BuyButton)
|
||||
{
|
||||
actor= ((BuyButton) selectable.actor).reward;
|
||||
}
|
||||
else if (selectable.actor instanceof RewardActor)
|
||||
{
|
||||
actor= (RewardActor) selectable.actor;
|
||||
}
|
||||
else
|
||||
{
|
||||
return;
|
||||
}
|
||||
if(actor.toolTipIsVisible())
|
||||
{
|
||||
actor.hideTooltip();
|
||||
}
|
||||
else
|
||||
{
|
||||
if(!actor.isFlipped())
|
||||
actor.showTooltip();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
boolean doneClicked = false, shown = false;
|
||||
float flipCountDown = 1.0f;
|
||||
float exitCountDown = 0.0f; //Serves as additional check for when scene is exiting, so you can't double tap too fast.
|
||||
@@ -139,59 +169,6 @@ public class RewardScene extends UIScene {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean keyPressed(int keycode) {
|
||||
if (keycode == Input.Keys.ESCAPE || keycode == Input.Keys.BACK) {
|
||||
done();
|
||||
}
|
||||
if (keycode == Input.Keys.BUTTON_B || keycode == Input.Keys.BUTTON_START)
|
||||
showLootOrDone();
|
||||
else if (keycode == Input.Keys.BUTTON_A)
|
||||
performTouch(selectedActor);
|
||||
else if (keycode == Input.Keys.DPAD_RIGHT) {
|
||||
hideTooltips();
|
||||
selectNextActor(false);
|
||||
if (selectedActor != null && Type.Loot == type) {
|
||||
selectedActor.fire(eventEnter);
|
||||
}
|
||||
showHideTooltips();
|
||||
} else if (keycode == Input.Keys.DPAD_LEFT) {
|
||||
hideTooltips();
|
||||
selectPreviousActor(false);
|
||||
if (selectedActor != null && Type.Loot == type) {
|
||||
selectedActor.fire(eventEnter);
|
||||
}
|
||||
showHideTooltips();
|
||||
} else if (keycode == Input.Keys.BUTTON_Y) {
|
||||
showTooltips = !showTooltips;
|
||||
showHideTooltips();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
private void showHideTooltips() {
|
||||
if (selectedActor instanceof RewardActor) {
|
||||
if (showTooltips) {
|
||||
if (((RewardActor) selectedActor).isFlipped())
|
||||
((RewardActor) selectedActor).showTooltip();
|
||||
} else {
|
||||
((RewardActor) selectedActor).hideTooltip();
|
||||
}
|
||||
} else if (selectedActor instanceof BuyButton) {
|
||||
if (showTooltips)
|
||||
((BuyButton) selectedActor).reward.showTooltip();
|
||||
else
|
||||
((BuyButton) selectedActor).reward.hideTooltip();
|
||||
}
|
||||
}
|
||||
private void hideTooltips() {
|
||||
if (selectedActor instanceof RewardActor) {
|
||||
((RewardActor) selectedActor).hideTooltip();
|
||||
} else if (selectedActor instanceof BuyButton) {
|
||||
((BuyButton) selectedActor).reward.hideTooltip();
|
||||
}
|
||||
}
|
||||
private void showLootOrDone() {
|
||||
boolean exit = true;
|
||||
for (Actor actor : new Array.ArrayIterator<>(generated)) {
|
||||
@@ -230,7 +207,7 @@ public class RewardScene extends UIScene {
|
||||
|
||||
|
||||
public void loadRewards(Array<Reward> newRewards, Type type, ShopActor shopActor) {
|
||||
clearActorObjects();
|
||||
clearSelectable();
|
||||
this.type = type;
|
||||
doneClicked = false;
|
||||
for (Actor actor : new Array.ArrayIterator<>(generated)) {
|
||||
@@ -244,7 +221,7 @@ public class RewardScene extends UIScene {
|
||||
|
||||
Actor card = ui.findActor("cards");
|
||||
if(type==Type.Shop) {
|
||||
goldLabel.setText("Gold:"+Current.player().getGold());
|
||||
goldLabel.setText(Current.player().getGold()+"[+Gold]");
|
||||
Actor background = ui.findActor("market_background");
|
||||
if(background!=null)
|
||||
background.setVisible(true);
|
||||
@@ -361,14 +338,14 @@ public class RewardScene extends UIScene {
|
||||
if (currentRow != ((i + 1) / numberOfColumns))
|
||||
yOff += doneButton.getHeight();
|
||||
|
||||
TextraButton buyCardButton = new BuyButton(shopActor.getObjectId(), i, shopActor.isUnlimited()?null:shopActor.getMapStage().getChanges(), actor, doneButton);
|
||||
BuyButton buyCardButton = new BuyButton(shopActor.getObjectId(), i, shopActor.isUnlimited()?null:shopActor.getMapStage().getChanges(), actor, doneButton);
|
||||
generated.add(buyCardButton);
|
||||
if (!skipCard) {
|
||||
stage.addActor(buyCardButton);
|
||||
addActorObject(buyCardButton);
|
||||
addToSelectable(buyCardButton);
|
||||
}
|
||||
} else {
|
||||
addActorObject(actor);
|
||||
addToSelectable(actor);
|
||||
}
|
||||
generated.add(actor);
|
||||
if (!skipCard) {
|
||||
@@ -379,6 +356,7 @@ public class RewardScene extends UIScene {
|
||||
updateBuyButtons();
|
||||
}
|
||||
|
||||
|
||||
private void updateBuyButtons() {
|
||||
for (Actor actor : new Array.ArrayIterator<>(generated)) {
|
||||
if (actor instanceof BuyButton) {
|
||||
@@ -391,7 +369,7 @@ public class RewardScene extends UIScene {
|
||||
private final int objectID;
|
||||
private final int index;
|
||||
private final PointOfInterestChanges changes;
|
||||
RewardActor reward;
|
||||
public RewardActor reward;
|
||||
int price;
|
||||
|
||||
void update() {
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package forge.adventure.scene;
|
||||
|
||||
import com.badlogic.gdx.Input;
|
||||
import com.badlogic.gdx.graphics.Color;
|
||||
import com.badlogic.gdx.graphics.Texture;
|
||||
import com.badlogic.gdx.scenes.scene2d.Actor;
|
||||
@@ -34,19 +33,20 @@ import java.util.zip.InflaterInputStream;
|
||||
* Scene to load and save the game.
|
||||
*/
|
||||
public class SaveLoadScene extends UIScene {
|
||||
private final IntMap<TextraButton> buttons = new IntMap<>();
|
||||
private static final int NUMBEROFSAVESLOTS = 11;
|
||||
private final IntMap<Selectable<TextraButton>> buttons = new IntMap<>();
|
||||
IntMap<WorldSaveHeader> previews = new IntMap<>();
|
||||
Color defColor;
|
||||
Table layout;
|
||||
Modes mode;
|
||||
Dialog dialog;
|
||||
TextField textInput;
|
||||
TextraLabel header;
|
||||
int currentSlot = -3, lastSelectedSlot = 0;
|
||||
int currentSlot = 0, lastSelectedSlot = 0;
|
||||
Image previewImage;
|
||||
TextraLabel previewDate;
|
||||
Image previewBorder;
|
||||
TextraButton saveLoadButton, back, quickSave, autoSave, dialogSaveBtn, dialogAbortBtn;
|
||||
TextraButton saveLoadButton, back;
|
||||
Selectable<TextraButton> quickSave;
|
||||
Selectable<TextraButton> autoSave;
|
||||
Actor lastHighlightedSave;
|
||||
SelectBox difficulty;
|
||||
ScrollPane scrollPane;
|
||||
@@ -56,7 +56,6 @@ public class SaveLoadScene extends UIScene {
|
||||
|
||||
layout = new Table();
|
||||
stage.addActor(layout);
|
||||
dialog = Controls.newDialog(Forge.getLocalizer().getMessage("lblSave"));
|
||||
textInput = Controls.newTextField("");
|
||||
int c = 0;
|
||||
String[] diffList = new String[Config.instance().getConfigData().difficulties.length];
|
||||
@@ -69,19 +68,7 @@ public class SaveLoadScene extends UIScene {
|
||||
//DifficultyData difficulty1 = Config.instance().getConfigData().difficulties[difficulty.getSelectedIndex()];
|
||||
return null;
|
||||
});
|
||||
dialog.getButtonTable().add(Controls.newLabel(Forge.getLocalizer().getMessage("lblNameYourSaveFile"))).colspan(2).pad(2, 15, 2, 15);
|
||||
dialog.getButtonTable().row();
|
||||
dialog.getButtonTable().add(Controls.newLabel(Forge.getLocalizer().getMessage("lblName") + ": ")).align(Align.left).pad(2, 15, 2, 2);
|
||||
dialog.getButtonTable().add(textInput).fillX().expandX().padRight(15);
|
||||
dialog.getButtonTable().row();
|
||||
dialogSaveBtn = Controls.newTextButton(Forge.getLocalizer().getMessage("lblSave"), () -> SaveLoadScene.this.save());
|
||||
dialog.getButtonTable().add(dialogSaveBtn).align(Align.left).padLeft(15);
|
||||
dialogAbortBtn = Controls.newTextButton(Forge.getLocalizer().getMessage("lblAbort"), () -> SaveLoadScene.this.saveAbort());
|
||||
dialog.getButtonTable().add(dialogAbortBtn).align(Align.right).padRight(15);
|
||||
|
||||
//makes dialog hidden immediately when you open saveload scene..
|
||||
dialog.getColor().a = 0;
|
||||
dialog.hide();
|
||||
previewImage = ui.findActor("preview");
|
||||
previewDate = ui.findActor("saveDate");
|
||||
header = Controls.newTextraLabel(Forge.getLocalizer().getMessage("lblSave"));
|
||||
@@ -90,7 +77,7 @@ public class SaveLoadScene extends UIScene {
|
||||
layout.row();
|
||||
autoSave = addSaveSlot(Forge.getLocalizer().getMessage("lblAutoSave"), WorldSave.AUTO_SAVE_SLOT);
|
||||
quickSave = addSaveSlot(Forge.getLocalizer().getMessage("lblQuickSave"), WorldSave.QUICK_SAVE_SLOT);
|
||||
for (int i = 1; i < 11; i++)
|
||||
for (int i = 1; i < NUMBEROFSAVESLOTS; i++)
|
||||
addSaveSlot(Forge.getLocalizer().getMessage("lblSlot") + ": " + i, i);
|
||||
|
||||
saveLoadButton = ui.findActor("save");
|
||||
@@ -99,8 +86,6 @@ public class SaveLoadScene extends UIScene {
|
||||
back = ui.findActor("return");
|
||||
ui.onButtonPress("return", () -> SaveLoadScene.this.back());
|
||||
|
||||
defColor = saveLoadButton.getColor();
|
||||
|
||||
scrollPane = ui.findActor("saveSlots");
|
||||
scrollPane.setActor(layout);
|
||||
ui.addActor(difficulty);
|
||||
@@ -120,33 +105,58 @@ public class SaveLoadScene extends UIScene {
|
||||
return object;
|
||||
}
|
||||
|
||||
public class SaveSlot extends Selectable<TextraButton>
|
||||
{
|
||||
private int slotNumber;
|
||||
|
||||
private TextraButton addSaveSlot(String name, int i) {
|
||||
layout.add(Controls.newLabel(name)).align(Align.left).pad(2, 5, 2, 10);
|
||||
TextraButton button = Controls.newTextButton("...");
|
||||
button.addListener(new ClickListener() {
|
||||
@Override
|
||||
public void clicked(InputEvent event, float x, float y) {
|
||||
try {
|
||||
if (!button.isDisabled())
|
||||
select(i);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
public SaveSlot( int slotNumber) {
|
||||
super(Controls.newTextButton("..."));
|
||||
this.slotNumber = slotNumber;
|
||||
SaveSlot self=this;
|
||||
actor.addListener(new ClickListener() {
|
||||
@Override
|
||||
public void clicked(InputEvent event, float x, float y) {
|
||||
try {
|
||||
if (!actor.isDisabled())
|
||||
{
|
||||
selectActor(self);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
layout.add(button).fill(true,false).expand(true,false).align(Align.left).expandX();
|
||||
});
|
||||
}
|
||||
@Override
|
||||
public void onSelect(UIScene scene)
|
||||
{
|
||||
super.onSelect(scene);
|
||||
updateSlot(slotNumber);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private Selectable<TextraButton> addSaveSlot(String name, int i) {
|
||||
layout.add(Controls.newLabel(name)).align(Align.left).pad(2, 5, 2, 10);
|
||||
SaveSlot button = new SaveSlot(i);
|
||||
layout.add(button.actor).fill(true,false).expand(true,false).align(Align.left).expandX();
|
||||
buttons.put(i, button);
|
||||
layout.row();
|
||||
addToSelectable(button) ;
|
||||
return button;
|
||||
|
||||
}
|
||||
|
||||
public void back() {
|
||||
Forge.switchToLast();
|
||||
}
|
||||
|
||||
public boolean select(int slot) {
|
||||
if(!buttons.containsKey(slot))
|
||||
return false;
|
||||
selectActor(buttons.get(slot));
|
||||
return updateSlot(slot);
|
||||
}
|
||||
|
||||
private boolean updateSlot(int slot) {
|
||||
|
||||
currentSlot = slot;
|
||||
if (slot > 0)
|
||||
lastSelectedSlot = slot;
|
||||
@@ -169,14 +179,6 @@ public class SaveLoadScene extends UIScene {
|
||||
if (previewDate != null)
|
||||
previewDate.setVisible(false);
|
||||
}
|
||||
for (IntMap.Entry<TextraButton> butt : new IntMap.Entries<TextraButton>(buttons)) {
|
||||
butt.value.setColor(defColor);
|
||||
}
|
||||
if (buttons.containsKey(slot)) {
|
||||
TextraButton button = buttons.get(slot);
|
||||
button.setColor(Color.RED);
|
||||
selectActor(button, false);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -186,9 +188,16 @@ public class SaveLoadScene extends UIScene {
|
||||
case Save:
|
||||
if (currentSlot > 0) {
|
||||
//prevent NPE, allowed saveslot is 1 to 10..
|
||||
textInput.setText(buttons.get(currentSlot).getText().toString());
|
||||
dialog.show(stage);
|
||||
selectActor(textInput, false);
|
||||
textInput.setText(buttons.get(currentSlot).actor.getText().toString());
|
||||
|
||||
Dialog dialog=prepareDialog(Forge.getLocalizer().getMessage("lblSave"),ButtonOk|ButtonAbort,() -> SaveLoadScene.this.save());
|
||||
|
||||
dialog.getContentTable().add(Controls.newLabel(Forge.getLocalizer().getMessage("lblNameYourSaveFile"))).colspan(2).pad(2, 15, 2, 15);
|
||||
dialog.getContentTable().row();
|
||||
dialog.getContentTable().add(Controls.newLabel(Forge.getLocalizer().getMessage("lblName") + ": ")).align(Align.left).pad(2, 15, 2, 2);
|
||||
dialog.getContentTable().add(textInput).fillX().expandX().padRight(15);
|
||||
dialog.getContentTable().row();
|
||||
showDialog(dialog);
|
||||
stage.setKeyboardFocus(textInput);
|
||||
}
|
||||
break;
|
||||
@@ -228,143 +237,11 @@ public class SaveLoadScene extends UIScene {
|
||||
}
|
||||
}
|
||||
|
||||
public boolean saveAbort() {
|
||||
dialog.hide();
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean keyPressed(int keycode) {
|
||||
if (keycode == Input.Keys.ESCAPE || keycode == Input.Keys.BACK) {
|
||||
back();
|
||||
}
|
||||
if (kbVisible) {
|
||||
if (keycode == Input.Keys.BUTTON_START)
|
||||
keyOK();
|
||||
else if (keycode == Input.Keys.BUTTON_L1)
|
||||
toggleShiftOrBackspace(true);
|
||||
else if (keycode == Input.Keys.BUTTON_R1)
|
||||
toggleShiftOrBackspace(false);
|
||||
else if (keycode == Input.Keys.BUTTON_B)
|
||||
hideOnScreenKeyboard();
|
||||
else if (keycode == Input.Keys.BUTTON_A) {
|
||||
if (selectedKey != null)
|
||||
performTouch(selectedKey);
|
||||
} else if (keycode == Input.Keys.DPAD_UP || keycode == Input.Keys.DPAD_DOWN || keycode == Input.Keys.DPAD_LEFT || keycode == Input.Keys.DPAD_RIGHT)
|
||||
setSelectedKey(keycode);
|
||||
} else if (dialog.getColor().a != 0f) {
|
||||
if (keycode == Input.Keys.BUTTON_A) {
|
||||
if (selectedActor == textInput) {
|
||||
lastInputField = textInput;
|
||||
showOnScreenKeyboard(textInput.getText());
|
||||
} else if (selectedActor == dialogAbortBtn || selectedActor == dialogSaveBtn) {
|
||||
performTouch(selectedActor);
|
||||
if (lastSelectedSlot > 0)
|
||||
select(lastSelectedSlot);
|
||||
else
|
||||
select(-3);
|
||||
}
|
||||
} else if (keycode == Input.Keys.BUTTON_B) {
|
||||
performTouch(dialogAbortBtn);
|
||||
if (lastSelectedSlot > 0)
|
||||
select(lastSelectedSlot);
|
||||
else
|
||||
select(-3);
|
||||
}
|
||||
else if (keycode == Input.Keys.DPAD_DOWN) {
|
||||
if (selectedActor == null) {
|
||||
selectActor(textInput, false);
|
||||
} else if (selectedActor == textInput)
|
||||
selectActor(dialogSaveBtn, false);
|
||||
} else if (keycode == Input.Keys.DPAD_UP) {
|
||||
if (selectedActor == null)
|
||||
selectActor(dialogSaveBtn, false);
|
||||
else if (selectedActor == dialogSaveBtn || selectedActor == dialogAbortBtn) {
|
||||
selectActor(textInput, false);
|
||||
}
|
||||
} else if (keycode == Input.Keys.DPAD_LEFT) {
|
||||
if (selectedActor == dialogAbortBtn)
|
||||
selectActor(dialogSaveBtn, false);
|
||||
} else if (keycode == Input.Keys.DPAD_RIGHT) {
|
||||
if (selectedActor == dialogSaveBtn)
|
||||
selectActor(dialogAbortBtn, false);
|
||||
}
|
||||
} else {
|
||||
if (keycode == Input.Keys.BUTTON_B)
|
||||
performTouch(back);
|
||||
else if (keycode == Input.Keys.BUTTON_Y) {
|
||||
if (difficulty != null && difficulty.isVisible()) {
|
||||
int index = difficulty.getSelectedIndex()-1;
|
||||
if (index < 0)
|
||||
index = 0;
|
||||
difficulty.setSelectedIndex(index);
|
||||
}
|
||||
} else if (keycode == Input.Keys.BUTTON_X) {
|
||||
if (difficulty != null && difficulty.isVisible()) {
|
||||
int index = difficulty.getSelectedIndex()+1;
|
||||
if (index >= 2)
|
||||
index = 2;
|
||||
difficulty.setSelectedIndex(index);
|
||||
}
|
||||
} else if (keycode == Input.Keys.BUTTON_L1) {
|
||||
scrollPane.fling(1f, 0, -300);
|
||||
} else if (keycode == Input.Keys.BUTTON_R1) {
|
||||
scrollPane.fling(1f, 0, +300);
|
||||
} else if (keycode == Input.Keys.BUTTON_A) {
|
||||
performTouch(selectedActor);
|
||||
} else if (keycode == Input.Keys.DPAD_LEFT) {
|
||||
if (selectedActor == back || selectedActor == saveLoadButton) {
|
||||
if (lastHighlightedSave != null)
|
||||
selectActor(lastHighlightedSave, false);
|
||||
else
|
||||
selectActor(actorObjectMap.get(0), false);
|
||||
lastHighlightedSave = selectedActor;
|
||||
}
|
||||
} else if (keycode == Input.Keys.DPAD_RIGHT) {
|
||||
if (!(selectedActor == back || selectedActor == saveLoadButton)) {
|
||||
lastHighlightedSave = selectedActor;
|
||||
selectActor(saveLoadButton, false);
|
||||
}
|
||||
} else if (keycode == Input.Keys.DPAD_DOWN) {
|
||||
int index = mode == Modes.Save ? 9 : 11;
|
||||
if (selectedActor == back)
|
||||
selectActor(saveLoadButton, false);
|
||||
else if (selectedActorIndex == index) {
|
||||
selectActor(actorObjectMap.get(0), false);
|
||||
scrollPane.fling(1f, 0, +300);
|
||||
} else {
|
||||
selectNextActor(false);
|
||||
}
|
||||
if (selectedActorIndex == 6)
|
||||
scrollPane.fling(1f, 0, -300);
|
||||
if (!(selectedActor == back || selectedActor == saveLoadButton))
|
||||
lastHighlightedSave = selectedActor;
|
||||
} else if (keycode == Input.Keys.DPAD_UP) {
|
||||
if (selectedActor == saveLoadButton)
|
||||
selectActor(back, false);
|
||||
else if (selectedActorIndex == 0) {
|
||||
selectActor(buttons.get(10), false);
|
||||
scrollPane.fling(1f, 0, -300);
|
||||
} else {
|
||||
selectPreviousActor(false);
|
||||
}
|
||||
if (selectedActorIndex == 5)
|
||||
scrollPane.fling(1f, 0, +300);
|
||||
if (!(selectedActor == back || selectedActor == saveLoadButton))
|
||||
lastHighlightedSave = selectedActor;
|
||||
} else if (keycode == Input.Keys.BUTTON_START) {
|
||||
performTouch(saveLoadButton);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public void save() {
|
||||
dialog.hide();
|
||||
if (WorldSave.getCurrentSave().save(textInput.getText(), currentSlot)) {
|
||||
updateFiles();
|
||||
//ensure the dialog is hidden before switching
|
||||
dialog.getColor().a = 0f;
|
||||
|
||||
Scene restoreScene = Forge.switchToLast();
|
||||
if (restoreScene != null) {
|
||||
@@ -398,7 +275,7 @@ public class SaveLoadScene extends UIScene {
|
||||
|
||||
int slot = WorldSave.filenameToSlot(name.getName());
|
||||
WorldSaveHeader header = (WorldSaveHeader) oos.readObject();
|
||||
buttons.get(slot).setText(header.name);
|
||||
buttons.get(slot).actor.setText(header.name);
|
||||
previews.put(slot, header);
|
||||
}
|
||||
|
||||
@@ -432,22 +309,18 @@ public class SaveLoadScene extends UIScene {
|
||||
saveLoadButton.setText(Forge.getLocalizer().getMessage("lblStart"));
|
||||
break;
|
||||
}
|
||||
autoSave.setDisabled(mode == Modes.Save);
|
||||
quickSave.setDisabled(mode == Modes.Save);
|
||||
autoSave.actor.setDisabled(mode == Modes.Save);
|
||||
quickSave.actor.setDisabled(mode == Modes.Save);
|
||||
this.mode = mode;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void enter() {
|
||||
unselectActors();
|
||||
clearActorObjects();
|
||||
if (lastSelectedSlot > 0)
|
||||
select(lastSelectedSlot);
|
||||
else
|
||||
select(-3);
|
||||
select(lastSelectedSlot);
|
||||
updateFiles();
|
||||
autoSave.setText(Forge.getLocalizer().getMessage("lblAutoSave"));
|
||||
quickSave.setText(Forge.getLocalizer().getMessage("lblQuickSave"));
|
||||
autoSave.actor.setText(Forge.getLocalizer().getMessage("lblAutoSave"));
|
||||
quickSave.actor.setText(Forge.getLocalizer().getMessage("lblQuickSave"));
|
||||
if (mode == Modes.NewGamePlus) {
|
||||
if (difficulty != null) {
|
||||
difficulty.setVisible(true);
|
||||
@@ -458,28 +331,6 @@ public class SaveLoadScene extends UIScene {
|
||||
difficulty.setVisible(false);
|
||||
}
|
||||
}
|
||||
if (!autoSave.isDisabled())
|
||||
addActorObject(autoSave);
|
||||
if (!quickSave.isDisabled())
|
||||
addActorObject(quickSave);
|
||||
for (int i=0; i <= 10; i++) {
|
||||
if (buttons.containsKey(i))
|
||||
addActorObject(buttons.get(i));
|
||||
}
|
||||
addActorObject(textInput);
|
||||
addActorObject(dialogSaveBtn);
|
||||
addActorObject(dialogAbortBtn);
|
||||
addActorObject(back);
|
||||
addActorObject(saveLoadButton);
|
||||
if (scrollPane != null) {
|
||||
if (lastSelectedSlot >= 6) {
|
||||
scrollPane.fling(1f, 0, -300);
|
||||
selectActor(buttons.get(lastSelectedSlot), false);
|
||||
} else if (lastSelectedSlot > 0 && lastSelectedSlot < 6) {
|
||||
scrollPane.fling(1f, 0, +300);
|
||||
selectActor(buttons.get(lastSelectedSlot), false);
|
||||
}
|
||||
}
|
||||
super.enter();
|
||||
}
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package forge.adventure.scene;
|
||||
|
||||
import com.badlogic.gdx.graphics.Texture;
|
||||
import com.badlogic.gdx.scenes.scene2d.utils.Drawable;
|
||||
import com.badlogic.gdx.scenes.scene2d.utils.TextureRegionDrawable;
|
||||
import com.badlogic.gdx.controllers.Controller;
|
||||
import com.badlogic.gdx.controllers.ControllerListener;
|
||||
import com.badlogic.gdx.controllers.Controllers;
|
||||
import com.badlogic.gdx.utils.Disposable;
|
||||
import forge.Forge;
|
||||
import forge.adventure.util.Config;
|
||||
@@ -10,9 +10,44 @@ import forge.adventure.util.Config;
|
||||
/**
|
||||
* Base class for all rendered scenes
|
||||
*/
|
||||
public abstract class Scene<T> implements Disposable {
|
||||
public abstract class Scene implements Disposable {
|
||||
|
||||
static class SceneControllerListener implements ControllerListener {
|
||||
|
||||
@Override
|
||||
public void connected(Controller controller) {
|
||||
Forge.getCurrentScene().connected(controller);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void disconnected(Controller controller) {
|
||||
Forge.getCurrentScene().disconnected(controller);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean buttonDown(Controller controller, int i) {
|
||||
return Forge.getCurrentScene().buttonDown(controller,i);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean buttonUp(Controller controller, int i) {
|
||||
return Forge.getCurrentScene().buttonUp(controller,i);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean axisMoved(Controller controller, int i, float v) {
|
||||
return Forge.getCurrentScene().axisMoved(controller,i,v);
|
||||
}
|
||||
}
|
||||
static private SceneControllerListener listener=null;
|
||||
public Scene() {
|
||||
if(listener==null)
|
||||
{
|
||||
listener=new SceneControllerListener();
|
||||
Controllers.addListener(listener);
|
||||
}
|
||||
}
|
||||
|
||||
public static int getIntendedWidth() {
|
||||
@@ -25,21 +60,34 @@ public abstract class Scene<T> implements Disposable {
|
||||
|
||||
public abstract void act(float delta);
|
||||
public abstract void render();
|
||||
|
||||
public void create() {
|
||||
|
||||
}
|
||||
|
||||
public Drawable DrawableImage(String path) {
|
||||
return new TextureRegionDrawable(new Texture(Config.instance().getFile(path)));
|
||||
}
|
||||
|
||||
|
||||
public boolean leave() {
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public void enter() {
|
||||
|
||||
}
|
||||
|
||||
|
||||
public void connected(Controller controller) {
|
||||
|
||||
}
|
||||
|
||||
public void disconnected(Controller controller) {
|
||||
|
||||
}
|
||||
|
||||
public boolean buttonDown(Controller controller, int buttonIndex) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean buttonUp(Controller controller, int buttonIndex) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean axisMoved(Controller controller, int axisIndex, float value) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package forge.adventure.scene;
|
||||
|
||||
import com.badlogic.gdx.Input;
|
||||
import com.badlogic.gdx.graphics.Texture;
|
||||
import com.badlogic.gdx.scenes.scene2d.Actor;
|
||||
import com.badlogic.gdx.scenes.scene2d.InputEvent;
|
||||
@@ -13,7 +12,6 @@ import com.github.tommyettinger.textra.TextraLabel;
|
||||
import forge.Forge;
|
||||
import forge.adventure.util.Config;
|
||||
import forge.adventure.util.Controls;
|
||||
import forge.adventure.util.UIActor;
|
||||
import forge.gui.GuiBase;
|
||||
import forge.localinstance.properties.ForgePreferences;
|
||||
import forge.model.FModel;
|
||||
@@ -59,24 +57,24 @@ public class SettingsScene extends UIScene {
|
||||
}
|
||||
if(somethingWentWrong.get())
|
||||
{
|
||||
Dialog dialog=ui.showDialog(stage,"Something went wrong", UIActor.ButtonOk|UIActor.ButtonAbort,null);
|
||||
Dialog dialog=prepareDialog("Something went wrong", ButtonOk|ButtonAbort,null);
|
||||
dialog.text("Copy was not successful check your access right\n and if the folder is in use");
|
||||
dialog.show(stage);
|
||||
showDialog(dialog);
|
||||
}
|
||||
else
|
||||
{
|
||||
Dialog dialog=ui.showDialog(stage,"Copied plane", UIActor.ButtonOk|UIActor.ButtonAbort,null);
|
||||
Dialog dialog=prepareDialog("Copied plane", ButtonOk|ButtonAbort,null);
|
||||
dialog.text("New plane "+newPlaneName.getText()+" was created\nYou can now start the editor to change the plane\n" +
|
||||
"or edit it manually from the folder\n" +
|
||||
Config.instance().getPlanePath("<user>"+newPlaneName.getText()));
|
||||
Config.instance().getSettingData().plane = "<user>"+newPlaneName.getText();
|
||||
Config.instance().saveSettings();
|
||||
dialog.show(stage);
|
||||
showDialog(dialog);
|
||||
}
|
||||
|
||||
}
|
||||
private void createNewPlane() {
|
||||
Dialog dialog=ui.showDialog(stage,"Create your own Plane", UIActor.ButtonOk|UIActor.ButtonAbort,()->copyNewPlane());
|
||||
Dialog dialog=prepareDialog("Create your own Plane", ButtonOk|ButtonAbort,()->copyNewPlane());
|
||||
dialog.text("Select a plane to copy");
|
||||
dialog.getContentTable().row();
|
||||
dialog.getContentTable().add(selectSourcePlane);
|
||||
@@ -91,7 +89,7 @@ public class SettingsScene extends UIScene {
|
||||
private SettingsScene() {
|
||||
super(Forge.isLandscapeMode() ? "ui/settings.json" : "ui/settings_portrait.json");
|
||||
|
||||
selectSourcePlane = new SelectBox<String>(Controls.getSkin());
|
||||
selectSourcePlane = Controls.newComboBox();
|
||||
newPlaneName = Controls.newTextField("");
|
||||
settingGroup = new Table();
|
||||
if (Preference == null) {
|
||||
@@ -237,24 +235,11 @@ public class SettingsScene extends UIScene {
|
||||
|
||||
ScrollPane scrollPane = ui.findActor("settings");
|
||||
scrollPane.setActor(settingGroup);
|
||||
addToSelectable(settingGroup);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public boolean keyPressed(int keycode) {
|
||||
if (keycode == Input.Keys.ESCAPE || keycode == Input.Keys.BACK) {
|
||||
back();
|
||||
}
|
||||
if (keycode == Input.Keys.BUTTON_B)
|
||||
performTouch(backButton);
|
||||
else if (keycode == Input.Keys.BUTTON_L1) {
|
||||
scrollPane.fling(1f, 0, -300);
|
||||
} else if (keycode == Input.Keys.BUTTON_R1) {
|
||||
scrollPane.fling(1f, 0, +300);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean back() {
|
||||
Forge.switchToLast();
|
||||
@@ -346,9 +331,4 @@ public class SettingsScene extends UIScene {
|
||||
stage.dispose();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void create() {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
package forge.adventure.scene;
|
||||
|
||||
import com.badlogic.gdx.Gdx;
|
||||
import com.badlogic.gdx.Input;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.Dialog;
|
||||
import com.badlogic.gdx.utils.Align;
|
||||
import com.github.tommyettinger.textra.TextraButton;
|
||||
import forge.Forge;
|
||||
import forge.adventure.stage.GameHUD;
|
||||
@@ -11,7 +8,6 @@ import forge.adventure.stage.GameStage;
|
||||
import forge.adventure.stage.MapStage;
|
||||
import forge.adventure.util.Config;
|
||||
import forge.adventure.util.Controls;
|
||||
import forge.adventure.util.Current;
|
||||
import forge.adventure.world.WorldSave;
|
||||
import forge.screens.TransitionScreen;
|
||||
|
||||
@@ -21,42 +17,29 @@ import forge.screens.TransitionScreen;
|
||||
public class StartScene extends UIScene {
|
||||
|
||||
private static StartScene object;
|
||||
TextraButton saveButton, resumeButton, continueButton, newGameButton, newGameButtonPlus, loadButton, settingsButton, exitButton, switchButton, dialogOk, dialogCancel, dialogButtonSelected;
|
||||
Dialog dialog;
|
||||
private int selected = -1;
|
||||
TextraButton saveButton, resumeButton, continueButton;
|
||||
|
||||
|
||||
|
||||
public StartScene() {
|
||||
super(Forge.isLandscapeMode() ? "ui/start_menu.json" : "ui/start_menu_portrait.json");
|
||||
ui.onButtonPress("Start", () -> StartScene.this.NewGame());
|
||||
ui.onButtonPress("Start+", () -> NewGamePlus());
|
||||
ui.onButtonPress("Load", () -> StartScene.this.Load());
|
||||
ui.onButtonPress("Save", () -> StartScene.this.Save());
|
||||
ui.onButtonPress("Resume", () -> StartScene.this.Resume());
|
||||
ui.onButtonPress("Continue", () -> StartScene.this.Continue());
|
||||
ui.onButtonPress("Settings", () -> StartScene.this.settings());
|
||||
ui.onButtonPress("Exit", () -> StartScene.this.Exit());
|
||||
ui.onButtonPress("Switch", () -> Forge.switchToClassic());
|
||||
ui.onButtonPress("Start", StartScene.this::NewGame);
|
||||
ui.onButtonPress("Start+", this::NewGamePlus);
|
||||
ui.onButtonPress("Load", StartScene.this::Load);
|
||||
ui.onButtonPress("Save", StartScene.this::Save);
|
||||
ui.onButtonPress("Resume", StartScene.this::Resume);
|
||||
ui.onButtonPress("Continue", StartScene.this::Continue);
|
||||
ui.onButtonPress("Settings", StartScene.this::settings);
|
||||
ui.onButtonPress("Exit", StartScene.this::Exit);
|
||||
ui.onButtonPress("Switch", Forge::switchToClassic);
|
||||
|
||||
|
||||
newGameButton = ui.findActor("Start");
|
||||
loadButton = ui.findActor("Load");
|
||||
saveButton = ui.findActor("Save");
|
||||
resumeButton = ui.findActor("Resume");
|
||||
continueButton = ui.findActor("Continue");
|
||||
settingsButton = ui.findActor("Settings");
|
||||
exitButton = ui.findActor("Exit");
|
||||
switchButton = ui.findActor("Switch");
|
||||
|
||||
saveButton.setVisible(false);
|
||||
resumeButton.setVisible(false);
|
||||
dialog = Controls.newDialog(Forge.getLocalizer().getMessage("lblExitForge"));
|
||||
dialog.getButtonTable().add(Controls.newLabel(Forge.getLocalizer().getMessage("lblAreYouSureYouWishExitForge"))).colspan(2).pad(2, 15, 2, 15);
|
||||
dialog.getButtonTable().row();
|
||||
dialogOk = Controls.newTextButton(Forge.getLocalizer().getMessage("lblExit"), () -> Forge.exit(true));
|
||||
dialogButtonSelected = dialogOk;
|
||||
dialog.getButtonTable().add(dialogOk).width(60).align(Align.left).padLeft(15);
|
||||
dialogCancel = Controls.newTextButton(Forge.getLocalizer().getMessage("lblCancel"), () -> dialog.hide());
|
||||
dialog.getButtonTable().add(dialogCancel).width(60).align(Align.right).padRight(15);
|
||||
dialog.getColor().a = 0;
|
||||
}
|
||||
|
||||
public static StartScene instance() {
|
||||
@@ -117,8 +100,9 @@ public class StartScene extends UIScene {
|
||||
}
|
||||
|
||||
public boolean Exit() {
|
||||
if (dialog != null)
|
||||
dialog.show(stage);
|
||||
Dialog dialog = prepareDialog(Forge.getLocalizer().getMessage("lblExitForge"), ButtonOk|ButtonAbort,()->Forge.exit(true));
|
||||
dialog.text( Controls.newLabel(Forge.getLocalizer().getMessage("lblAreYouSureYouWishExitForge")));
|
||||
showDialog(dialog);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -145,233 +129,16 @@ public class StartScene extends UIScene {
|
||||
continueButton.setVisible(false);
|
||||
}
|
||||
|
||||
Gdx.input.setInputProcessor(stage); //Start taking input from the ui
|
||||
|
||||
if(Forge.createNewAdventureMap)
|
||||
{
|
||||
this.NewGame();
|
||||
Current.setDebug(true);
|
||||
GameStage.maximumScrollDistance=4f;
|
||||
}
|
||||
|
||||
super.enter();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void create() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean keyPressed(int keycode) {
|
||||
if (Forge.hasGamepad())
|
||||
showGamepadSelector = true;
|
||||
if (dialog.getColor().a != 1) {
|
||||
if (keycode == Input.Keys.ESCAPE || keycode == Input.Keys.BACK) {
|
||||
if (WorldSave.getCurrentSave().getWorld().getData() != null) {
|
||||
if (showGamepadSelector)
|
||||
performTouch(resumeButton);
|
||||
else
|
||||
Resume();
|
||||
}
|
||||
}
|
||||
if (keycode == Input.Keys.DPAD_DOWN) {
|
||||
selected++;
|
||||
if (selected == 1 && Forge.isLandscapeMode())
|
||||
selected++;
|
||||
if (!saveButton.isVisible() && selected == 3)
|
||||
selected++;
|
||||
if (!resumeButton.isVisible() && selected == 4)
|
||||
selected++;
|
||||
if (!continueButton.isVisible() && selected == 5)
|
||||
selected++;
|
||||
if (selected > 7 && Forge.isLandscapeMode())
|
||||
selected = 0;
|
||||
if (selected > 8 && !Forge.isLandscapeMode())
|
||||
selected = 8;
|
||||
setSelected(selected, false);
|
||||
} else if (keycode == Input.Keys.DPAD_UP) {
|
||||
selected--;
|
||||
if (selected == 7 && Forge.isLandscapeMode())
|
||||
selected--;
|
||||
if (!continueButton.isVisible() && selected == 5)
|
||||
selected--;
|
||||
if (!resumeButton.isVisible() && selected == 4)
|
||||
selected--;
|
||||
if (!saveButton.isVisible() && selected == 3)
|
||||
selected--;
|
||||
if (selected == 1 && Forge.isLandscapeMode())
|
||||
selected--;
|
||||
if (selected < 0)
|
||||
selected = Forge.isLandscapeMode() ? 7 : 0;
|
||||
setSelected(selected, false);
|
||||
} else if (keycode == Input.Keys.DPAD_RIGHT && Forge.isLandscapeMode()) {
|
||||
if (selected == 0 || selected == 7)
|
||||
selected++;
|
||||
if (selected > 8)
|
||||
selected = 8;
|
||||
setSelected(selected, false);
|
||||
} else if (keycode == Input.Keys.DPAD_LEFT && Forge.isLandscapeMode()) {
|
||||
if (selected == 1 || selected == 8)
|
||||
selected--;
|
||||
if (selected < 0)
|
||||
selected = 0;
|
||||
setSelected(selected, false);
|
||||
} else if (keycode == Input.Keys.BUTTON_A)
|
||||
setSelected(selected, true);
|
||||
} else {
|
||||
if (keycode == Input.Keys.DPAD_RIGHT) {
|
||||
dialogOk.fire(eventExit);
|
||||
dialogCancel.fire(eventEnter);
|
||||
dialogButtonSelected = dialogCancel;
|
||||
} else if (keycode == Input.Keys.DPAD_LEFT) {
|
||||
dialogOk.fire(eventEnter);
|
||||
dialogCancel.fire(eventExit);
|
||||
dialogButtonSelected = dialogOk;
|
||||
} else if (keycode == Input.Keys.BUTTON_A) {
|
||||
dialogOk.fire(eventExit);
|
||||
dialogCancel.fire(eventExit);
|
||||
performTouch(dialogButtonSelected);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
private void setSelected(int select, boolean press) {
|
||||
if (!showGamepadSelector)
|
||||
return;
|
||||
unSelectAll();
|
||||
switch (select) {
|
||||
case 0:
|
||||
newGameButton.fire(eventEnter);
|
||||
if (press)
|
||||
performTouch(newGameButton);
|
||||
break;
|
||||
case 1:
|
||||
newGameButtonPlus.fire(eventEnter);
|
||||
if (press)
|
||||
performTouch(newGameButtonPlus);
|
||||
break;
|
||||
case 2:
|
||||
loadButton.fire(eventEnter);
|
||||
if (press)
|
||||
performTouch(loadButton);
|
||||
break;
|
||||
case 3:
|
||||
saveButton.fire(eventEnter);
|
||||
if (press)
|
||||
performTouch(saveButton);
|
||||
break;
|
||||
case 4:
|
||||
resumeButton.fire(eventEnter);
|
||||
if (press)
|
||||
performTouch(resumeButton);
|
||||
break;
|
||||
case 5:
|
||||
continueButton.fire(eventEnter);
|
||||
if (press) {
|
||||
performTouch(continueButton);
|
||||
setSelected(4, false);
|
||||
selected = 4;
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
settingsButton.fire(eventEnter);
|
||||
if (press)
|
||||
performTouch(settingsButton);
|
||||
break;
|
||||
case 7:
|
||||
if (Forge.isLandscapeMode()) {
|
||||
exitButton.fire(eventEnter);
|
||||
if (press)
|
||||
performTouch(exitButton);
|
||||
} else {
|
||||
switchButton.fire(eventEnter);
|
||||
if (press)
|
||||
performTouch(switchButton);
|
||||
}
|
||||
break;
|
||||
case 8:
|
||||
if (Forge.isLandscapeMode()) {
|
||||
switchButton.fire(eventEnter);
|
||||
if (press)
|
||||
performTouch(switchButton);
|
||||
} else {
|
||||
exitButton.fire(eventEnter);
|
||||
if (press)
|
||||
performTouch(exitButton);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
private void unSelectAll() {
|
||||
if (!showGamepadSelector)
|
||||
return;
|
||||
newGameButton.fire(eventExit);
|
||||
newGameButtonPlus.fire(eventExit);
|
||||
loadButton.fire(eventExit);
|
||||
saveButton.fire(eventExit);
|
||||
resumeButton.fire(eventExit);
|
||||
continueButton.fire(eventExit);
|
||||
settingsButton.fire(eventExit);
|
||||
exitButton.fire(eventExit);
|
||||
switchButton.fire(eventExit);
|
||||
dialogOk.fire(eventExit);
|
||||
dialogCancel.fire(eventExit);
|
||||
}
|
||||
private void updateSelected() {
|
||||
if (dialog.getColor().a == 1) {
|
||||
if (Controls.actorContainsVector(dialogOk, pointer)) {
|
||||
dialogCancel.fire(eventExit);
|
||||
dialogOk.fire(eventEnter);
|
||||
dialogButtonSelected = dialogOk;
|
||||
}
|
||||
if (Controls.actorContainsVector(dialogCancel, pointer)) {
|
||||
dialogOk.fire(eventExit);
|
||||
dialogCancel.fire(eventEnter);
|
||||
dialogButtonSelected = dialogCancel;
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (Controls.actorContainsVector(newGameButton, pointer)) {
|
||||
newGameButton.fire(eventEnter);
|
||||
selected = 0;
|
||||
}
|
||||
if (Controls.actorContainsVector(newGameButtonPlus, pointer)) {
|
||||
newGameButtonPlus.fire(eventEnter);
|
||||
selected = 1;
|
||||
}
|
||||
if (Controls.actorContainsVector(loadButton, pointer)) {
|
||||
loadButton.fire(eventEnter);
|
||||
selected = 2;
|
||||
}
|
||||
if (Controls.actorContainsVector(saveButton, pointer)) {
|
||||
saveButton.fire(eventEnter);
|
||||
selected = 3;
|
||||
}
|
||||
if (Controls.actorContainsVector(resumeButton, pointer)) {
|
||||
resumeButton.fire(eventEnter);
|
||||
selected = 4;
|
||||
}
|
||||
if (Controls.actorContainsVector(continueButton, pointer)) {
|
||||
continueButton.fire(eventEnter);
|
||||
selected = 5;
|
||||
}
|
||||
if (Controls.actorContainsVector(settingsButton, pointer)) {
|
||||
settingsButton.fire(eventEnter);
|
||||
selected = 6;
|
||||
}
|
||||
if (Controls.actorContainsVector(exitButton, pointer)) {
|
||||
exitButton.fire(eventEnter);
|
||||
selected = Forge.isLandscapeMode() ? 7 : 8;
|
||||
}
|
||||
if (Controls.actorContainsVector(switchButton, pointer)) {
|
||||
switchButton.fire(eventEnter);
|
||||
selected = Forge.isLandscapeMode() ? 8 : 7;
|
||||
}
|
||||
}
|
||||
|
||||
private void NewGamePlus() {
|
||||
SaveLoadScene.instance().setMode(SaveLoadScene.Modes.NewGamePlus);
|
||||
Forge.switchScene(SaveLoadScene.instance());
|
||||
|
||||
@@ -178,6 +178,15 @@ public static ConsoleCommandInterpreter getInstance()
|
||||
Current.player().addMaxLife(amount);
|
||||
return "Added " + amount + " max life";
|
||||
});
|
||||
registerCommand(new String[]{"leave"}, s -> {
|
||||
if(!MapStage.getInstance().isInMap()) return "not on a map";
|
||||
MapStage.getInstance().exit();
|
||||
return "Got out";
|
||||
});
|
||||
registerCommand(new String[]{"debug","collision"}, s -> {
|
||||
currentGameStage().debugCollision(true);
|
||||
return "Got out";
|
||||
});
|
||||
registerCommand(new String[]{"give", "card"}, s -> {
|
||||
//TODO: Specify optional amount.
|
||||
if(s.length<1) return "Command needs 1 parameter: Card name.";
|
||||
@@ -290,13 +299,14 @@ public static ConsoleCommandInterpreter getInstance()
|
||||
Current.player().addManaPercent(1.0f);
|
||||
return "Player healed to " + Current.player().getLife() + "/" + Current.player().getMaxLife();
|
||||
});
|
||||
registerCommand(new String[]{"debug","on"}, s -> {
|
||||
Current.setDebug(true);
|
||||
return "Debug mode ON";
|
||||
registerCommand(new String[]{"debug","map"}, s -> {
|
||||
GameHUD.getInstance().setDebug(true);
|
||||
return "Debug map ON";
|
||||
});
|
||||
registerCommand(new String[]{"debug","off"}, s -> {
|
||||
Current.setDebug(false);
|
||||
return "Debug mode OFF";
|
||||
GameHUD.getInstance().setDebug(true);
|
||||
currentGameStage().debugCollision(false);
|
||||
return "Debug OFF";
|
||||
});
|
||||
registerCommand(new String[]{"remove","enemy","all"}, s -> {
|
||||
//TODO: Remove all overworld enemies if not inside a map.
|
||||
|
||||
@@ -2,9 +2,6 @@ package forge.adventure.stage;
|
||||
|
||||
import com.badlogic.gdx.Gdx;
|
||||
import com.badlogic.gdx.Input;
|
||||
import com.badlogic.gdx.controllers.Controller;
|
||||
import com.badlogic.gdx.controllers.ControllerListener;
|
||||
import com.badlogic.gdx.controllers.Controllers;
|
||||
import com.badlogic.gdx.graphics.Color;
|
||||
import com.badlogic.gdx.graphics.Pixmap;
|
||||
import com.badlogic.gdx.graphics.Texture;
|
||||
@@ -13,6 +10,7 @@ import com.badlogic.gdx.scenes.scene2d.Actor;
|
||||
import com.badlogic.gdx.scenes.scene2d.InputEvent;
|
||||
import com.badlogic.gdx.scenes.scene2d.Stage;
|
||||
import com.badlogic.gdx.scenes.scene2d.actions.Actions;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.Button;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.Image;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.Touchpad;
|
||||
import com.badlogic.gdx.scenes.scene2d.utils.ActorGestureListener;
|
||||
@@ -38,7 +36,7 @@ import forge.gui.GuiBase;
|
||||
/**
|
||||
* Stage to handle everything rendered in the HUD
|
||||
*/
|
||||
public class GameHUD extends Stage implements ControllerListener {
|
||||
public class GameHUD extends Stage {
|
||||
|
||||
static public GameHUD instance;
|
||||
private final GameStage gameStage;
|
||||
@@ -60,6 +58,7 @@ public class GameHUD extends Stage implements ControllerListener {
|
||||
float TOUCHPAD_SCALE = 70f, referenceX;
|
||||
boolean isHiding = false, isShowing = false;
|
||||
float opacity = 1f;
|
||||
private boolean debugMap;
|
||||
|
||||
private GameHUD(GameStage gameStage) {
|
||||
super(new ScalingViewport(Scaling.stretch, Scene.getIntendedWidth(), Scene.getIntendedHeight()), gameStage.getBatch());
|
||||
@@ -133,7 +132,6 @@ public class GameHUD extends Stage implements ControllerListener {
|
||||
eventTouchUp = new InputEvent();
|
||||
eventTouchUp.setPointer(-1);
|
||||
eventTouchUp.setType(InputEvent.Type.touchUp);
|
||||
Controllers.addListener(this);
|
||||
}
|
||||
|
||||
private void openMap() {
|
||||
@@ -171,7 +169,7 @@ public class GameHUD extends Stage implements ControllerListener {
|
||||
if (Controls.actorContainsVector(miniMap,c)) {
|
||||
touchpad.setVisible(false);
|
||||
|
||||
if(Current.isInDebug())
|
||||
if(debugMap)
|
||||
WorldStage.getInstance().getPlayerSprite().setPosition(x*WorldSave.getCurrentSave().getWorld().getWidthInPixels(),y*WorldSave.getCurrentSave().getWorld().getHeightInPixels());
|
||||
|
||||
return true;
|
||||
@@ -194,7 +192,7 @@ public class GameHUD extends Stage implements ControllerListener {
|
||||
return true;
|
||||
}
|
||||
if (Controls.actorContainsVector(miniMap,c)) {
|
||||
if(Current.isInDebug())
|
||||
if(debugMap)
|
||||
WorldStage.getInstance().getPlayerSprite().setPosition(x*WorldSave.getCurrentSave().getWorld().getWidthInPixels(),y*WorldSave.getCurrentSave().getWorld().getHeightInPixels());
|
||||
else
|
||||
openMap();
|
||||
@@ -324,17 +322,12 @@ public class GameHUD extends Stage implements ControllerListener {
|
||||
showButtons();
|
||||
}
|
||||
}
|
||||
if (keycode == Input.Keys.BUTTON_B) {
|
||||
performTouch(statsActor);
|
||||
}
|
||||
if (keycode == Input.Keys.BUTTON_Y) {
|
||||
performTouch(inventoryActor);
|
||||
}
|
||||
if (keycode == Input.Keys.BUTTON_X) {
|
||||
performTouch(deckActor);
|
||||
}
|
||||
if (keycode == Input.Keys.BUTTON_A) {
|
||||
performTouch(menuActor);
|
||||
if (console.isVisible())
|
||||
return true;
|
||||
Button pressedButton=ui.buttonPressed(keycode);
|
||||
if(pressedButton!=null)
|
||||
{
|
||||
performTouch(pressedButton);
|
||||
}
|
||||
return super.keyDown(keycode);
|
||||
}
|
||||
@@ -376,120 +369,8 @@ public class GameHUD extends Stage implements ControllerListener {
|
||||
FThreads.delayInEDT(300, () -> isShowing = false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void connected(Controller controller) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void disconnected(Controller controller) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean buttonDown(Controller controller, int buttonIndex) {
|
||||
if (Forge.getCurrentScene() instanceof HudScene) {
|
||||
if (controller.getMapping().buttonA == buttonIndex)
|
||||
return ((HudScene) Forge.getCurrentScene()).keyDown(Input.Keys.BUTTON_A);
|
||||
if (controller.getMapping().buttonB == buttonIndex)
|
||||
return ((HudScene) Forge.getCurrentScene()).keyDown(Input.Keys.BUTTON_B);
|
||||
if (controller.getMapping().buttonX == buttonIndex)
|
||||
return ((HudScene) Forge.getCurrentScene()).keyDown(Input.Keys.BUTTON_X);
|
||||
if (controller.getMapping().buttonY == buttonIndex)
|
||||
return ((HudScene) Forge.getCurrentScene()).keyDown(Input.Keys.BUTTON_Y);
|
||||
if (controller.getMapping().buttonDpadUp == buttonIndex)
|
||||
return ((HudScene) Forge.getCurrentScene()).keyDown(Input.Keys.DPAD_UP);
|
||||
if (controller.getMapping().buttonDpadRight == buttonIndex)
|
||||
return ((HudScene) Forge.getCurrentScene()).keyDown(Input.Keys.DPAD_RIGHT);
|
||||
if (controller.getMapping().buttonDpadDown == buttonIndex)
|
||||
return ((HudScene) Forge.getCurrentScene()).keyDown(Input.Keys.DPAD_DOWN);
|
||||
if (controller.getMapping().buttonDpadLeft == buttonIndex)
|
||||
return ((HudScene) Forge.getCurrentScene()).keyDown(Input.Keys.DPAD_LEFT);
|
||||
} else if (Forge.getCurrentScene() instanceof UIScene) {
|
||||
if (controller.getMapping().buttonDpadUp == buttonIndex)
|
||||
return ((UIScene) Forge.getCurrentScene()).keyPressed(Input.Keys.DPAD_UP);
|
||||
if (controller.getMapping().buttonDpadRight == buttonIndex)
|
||||
return ((UIScene) Forge.getCurrentScene()).keyPressed(Input.Keys.DPAD_RIGHT);
|
||||
if (controller.getMapping().buttonDpadDown == buttonIndex)
|
||||
return ((UIScene) Forge.getCurrentScene()).keyPressed(Input.Keys.DPAD_DOWN);
|
||||
if (controller.getMapping().buttonDpadLeft == buttonIndex)
|
||||
return ((UIScene) Forge.getCurrentScene()).keyPressed(Input.Keys.DPAD_LEFT);
|
||||
if (controller.getMapping().buttonA == buttonIndex)
|
||||
return ((UIScene) Forge.getCurrentScene()).keyPressed(Input.Keys.BUTTON_A);
|
||||
if (controller.getMapping().buttonB == buttonIndex)
|
||||
return ((UIScene) Forge.getCurrentScene()).keyPressed(Input.Keys.BUTTON_B);
|
||||
if (controller.getMapping().buttonX == buttonIndex)
|
||||
return ((UIScene) Forge.getCurrentScene()).keyPressed(Input.Keys.BUTTON_X);
|
||||
if (controller.getMapping().buttonY == buttonIndex)
|
||||
return ((UIScene) Forge.getCurrentScene()).keyPressed(Input.Keys.BUTTON_Y);
|
||||
if (controller.getMapping().buttonR1 == buttonIndex)
|
||||
return ((UIScene) Forge.getCurrentScene()).keyPressed(Input.Keys.BUTTON_R1);
|
||||
if (controller.getMapping().buttonL1 == buttonIndex)
|
||||
return ((UIScene) Forge.getCurrentScene()).keyPressed(Input.Keys.BUTTON_L1);
|
||||
if (controller.getMapping().buttonR2 == buttonIndex)
|
||||
return ((UIScene) Forge.getCurrentScene()).keyPressed(Input.Keys.BUTTON_R2);
|
||||
if (controller.getMapping().buttonL2 == buttonIndex)
|
||||
return ((UIScene) Forge.getCurrentScene()).keyPressed(Input.Keys.BUTTON_L2);
|
||||
if (controller.getMapping().buttonBack == buttonIndex)
|
||||
return ((UIScene) Forge.getCurrentScene()).keyPressed(Input.Keys.BUTTON_SELECT);
|
||||
if (controller.getMapping().buttonStart == buttonIndex)
|
||||
return ((UIScene) Forge.getCurrentScene()).keyPressed(Input.Keys.BUTTON_START);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean buttonUp(Controller controller, int buttonIndex) {
|
||||
if (Forge.getCurrentScene() instanceof HudScene) {
|
||||
if (controller.getMapping().buttonA == buttonIndex)
|
||||
return ((HudScene) Forge.getCurrentScene()).keyUp(Input.Keys.BUTTON_A);
|
||||
if (controller.getMapping().buttonB == buttonIndex)
|
||||
return ((HudScene) Forge.getCurrentScene()).keyUp(Input.Keys.BUTTON_B);
|
||||
if (controller.getMapping().buttonX == buttonIndex)
|
||||
return ((HudScene) Forge.getCurrentScene()).keyUp(Input.Keys.BUTTON_X);
|
||||
if (controller.getMapping().buttonY == buttonIndex)
|
||||
return ((HudScene) Forge.getCurrentScene()).keyUp(Input.Keys.BUTTON_Y);
|
||||
if (controller.getMapping().buttonDpadUp == buttonIndex)
|
||||
return ((HudScene) Forge.getCurrentScene()).keyUp(Input.Keys.DPAD_UP);
|
||||
if (controller.getMapping().buttonDpadRight == buttonIndex)
|
||||
return ((HudScene) Forge.getCurrentScene()).keyUp(Input.Keys.DPAD_RIGHT);
|
||||
if (controller.getMapping().buttonDpadDown == buttonIndex)
|
||||
return ((HudScene) Forge.getCurrentScene()).keyUp(Input.Keys.DPAD_DOWN);
|
||||
if (controller.getMapping().buttonDpadLeft == buttonIndex)
|
||||
return ((HudScene) Forge.getCurrentScene()).keyUp(Input.Keys.DPAD_LEFT);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean axisMoved(Controller controller, int axisIndex, float value) {
|
||||
if (Forge.hasGamepad()) {
|
||||
if (Forge.getCurrentScene() instanceof HudScene) {
|
||||
if (controller.getAxis(controller.getMapping().axisLeftX) > 0.5f) {
|
||||
((HudScene) Forge.getCurrentScene()).keyDown(Input.Keys.DPAD_RIGHT);
|
||||
} else if (controller.getAxis(controller.getMapping().axisLeftX) < -0.5f) {
|
||||
((HudScene) Forge.getCurrentScene()).keyDown(Input.Keys.DPAD_LEFT);
|
||||
} else {
|
||||
((HudScene) Forge.getCurrentScene()).keyUp(Input.Keys.DPAD_LEFT);
|
||||
((HudScene) Forge.getCurrentScene()).keyUp(Input.Keys.DPAD_RIGHT);
|
||||
}
|
||||
if (controller.getAxis(controller.getMapping().axisLeftY) > 0.5f) {
|
||||
((HudScene) Forge.getCurrentScene()).keyDown(Input.Keys.DPAD_DOWN);
|
||||
} else if (controller.getAxis(controller.getMapping().axisLeftY) < -0.5f) {
|
||||
((HudScene) Forge.getCurrentScene()).keyDown(Input.Keys.DPAD_UP);
|
||||
} else {
|
||||
((HudScene) Forge.getCurrentScene()).keyUp(Input.Keys.DPAD_UP);
|
||||
((HudScene) Forge.getCurrentScene()).keyUp(Input.Keys.DPAD_DOWN);
|
||||
}
|
||||
} else if (Forge.getCurrentScene() instanceof UIScene) {
|
||||
if (controller.getAxis(4) == 1f) //L2
|
||||
((UIScene) Forge.getCurrentScene()).keyPressed(Input.Keys.BUTTON_L2);
|
||||
if (controller.getAxis(5) == 1f) //R2
|
||||
((UIScene) Forge.getCurrentScene()).keyPressed(Input.Keys.BUTTON_R2);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
public void setDebug(boolean b) {
|
||||
debugMap=b;
|
||||
}
|
||||
|
||||
class ConsoleToggleListener extends ActorGestureListener {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package forge.adventure.stage;
|
||||
|
||||
import com.badlogic.gdx.Input;
|
||||
import com.badlogic.gdx.controllers.Controller;
|
||||
import com.badlogic.gdx.graphics.OrthographicCamera;
|
||||
import com.badlogic.gdx.math.Rectangle;
|
||||
import com.badlogic.gdx.math.Vector2;
|
||||
@@ -18,6 +19,7 @@ import forge.adventure.pointofintrest.PointOfInterest;
|
||||
import forge.adventure.scene.Scene;
|
||||
import forge.adventure.scene.StartScene;
|
||||
import forge.adventure.scene.TileMapScene;
|
||||
import forge.adventure.util.KeyBinding;
|
||||
import forge.adventure.util.Paths;
|
||||
import forge.adventure.world.WorldSave;
|
||||
import forge.gui.GuiBase;
|
||||
@@ -44,6 +46,20 @@ public abstract class GameStage extends Stage {
|
||||
public static float maximumScrollDistance=1.5f;
|
||||
public static float minimumScrollDistance=0.3f;
|
||||
|
||||
public boolean axisMoved(Controller controller, int axisIndex, float value) {
|
||||
|
||||
if (MapStage.getInstance().isDialogOnlyInput()) {
|
||||
return true;
|
||||
}
|
||||
player.getMovementDirection().x = controller.getAxis(0);
|
||||
player.getMovementDirection().y = -controller.getAxis(1);
|
||||
if(player.getMovementDirection().len()<0.2)
|
||||
{
|
||||
player.stop();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
enum PlayerModification
|
||||
{
|
||||
Sprint,
|
||||
@@ -211,19 +227,19 @@ public abstract class GameStage extends Stage {
|
||||
@Override
|
||||
public boolean keyDown(int keycode) {
|
||||
super.keyDown(keycode);
|
||||
if (keycode == Input.Keys.LEFT || keycode == Input.Keys.A || keycode == Input.Keys.DPAD_LEFT)//todo config
|
||||
if (KeyBinding.Left.isPressed(keycode))
|
||||
{
|
||||
player.getMovementDirection().x = -1;
|
||||
}
|
||||
if (keycode == Input.Keys.RIGHT || keycode == Input.Keys.D || keycode == Input.Keys.DPAD_RIGHT)//todo config
|
||||
if (KeyBinding.Right.isPressed(keycode) )
|
||||
{
|
||||
player.getMovementDirection().x = +1;
|
||||
}
|
||||
if (keycode == Input.Keys.UP || keycode == Input.Keys.W || keycode == Input.Keys.DPAD_UP)//todo config
|
||||
if (KeyBinding.Up.isPressed(keycode))
|
||||
{
|
||||
player.getMovementDirection().y = +1;
|
||||
}
|
||||
if (keycode == Input.Keys.DOWN || keycode == Input.Keys.S || keycode == Input.Keys.DPAD_DOWN)//todo config
|
||||
if (KeyBinding.Down.isPressed(keycode))
|
||||
{
|
||||
player.getMovementDirection().y = -1;
|
||||
}
|
||||
@@ -243,15 +259,13 @@ public abstract class GameStage extends Stage {
|
||||
enter();
|
||||
}
|
||||
}
|
||||
if (keycode == Input.Keys.F11) {
|
||||
debugCollision(false);
|
||||
|
||||
}
|
||||
if (keycode == Input.Keys.F12) {
|
||||
debugCollision(true);
|
||||
for (Actor actor : foregroundSprites.getChildren()) {
|
||||
if (actor instanceof MapActor) {
|
||||
((MapActor) actor).setBoundDebug(true);
|
||||
}
|
||||
}
|
||||
setDebugAll(true);
|
||||
player.setBoundDebug(true);
|
||||
|
||||
}
|
||||
if (keycode == Input.Keys.F2) {
|
||||
TileMapScene S = TileMapScene.instance();
|
||||
@@ -276,7 +290,14 @@ public abstract class GameStage extends Stage {
|
||||
return true;
|
||||
}
|
||||
|
||||
protected void debugCollision(boolean b) {
|
||||
public void debugCollision(boolean b) {
|
||||
for (Actor actor : foregroundSprites.getChildren()) {
|
||||
if (actor instanceof MapActor) {
|
||||
((MapActor) actor).setBoundDebug(b);
|
||||
}
|
||||
}
|
||||
setDebugAll(b);
|
||||
player.setBoundDebug(b);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -334,19 +355,19 @@ public abstract class GameStage extends Stage {
|
||||
public boolean keyUp(int keycode) {
|
||||
if (isPaused())
|
||||
return true;
|
||||
if (keycode == Input.Keys.LEFT || keycode == Input.Keys.A || keycode == Input.Keys.RIGHT || keycode == Input.Keys.D)//todo config
|
||||
if (KeyBinding.Left.isPressed(keycode)||KeyBinding.Right.isPressed(keycode))
|
||||
{
|
||||
player.getMovementDirection().x = 0;
|
||||
if (!player.isMoving())
|
||||
stop();
|
||||
}
|
||||
if (keycode == Input.Keys.UP || keycode == Input.Keys.W || keycode == Input.Keys.DOWN || keycode == Input.Keys.S)//todo config
|
||||
if (KeyBinding.Down.isPressed(keycode)||KeyBinding.Up.isPressed(keycode))
|
||||
{
|
||||
player.getMovementDirection().y = 0;
|
||||
if (!player.isMoving())
|
||||
stop();
|
||||
}
|
||||
if (keycode == Input.Keys.ESCAPE) {
|
||||
if (KeyBinding.Menu.isPressed(keycode)) {
|
||||
openMenu();
|
||||
}
|
||||
return false;
|
||||
|
||||
@@ -2,7 +2,6 @@ package forge.adventure.stage;
|
||||
|
||||
|
||||
import com.badlogic.gdx.Gdx;
|
||||
import com.badlogic.gdx.Input;
|
||||
import com.badlogic.gdx.controllers.Controllers;
|
||||
import com.badlogic.gdx.graphics.Texture;
|
||||
import com.badlogic.gdx.graphics.g2d.Batch;
|
||||
@@ -21,9 +20,13 @@ import com.badlogic.gdx.scenes.scene2d.Group;
|
||||
import com.badlogic.gdx.scenes.scene2d.InputEvent;
|
||||
import com.badlogic.gdx.scenes.scene2d.Stage;
|
||||
import com.badlogic.gdx.scenes.scene2d.actions.Actions;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.Button;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.Dialog;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.Image;
|
||||
import com.badlogic.gdx.utils.*;
|
||||
import com.badlogic.gdx.utils.Align;
|
||||
import com.badlogic.gdx.utils.Array;
|
||||
import com.badlogic.gdx.utils.Scaling;
|
||||
import com.badlogic.gdx.utils.Timer;
|
||||
import com.github.tommyettinger.textra.TextraButton;
|
||||
import com.github.tommyettinger.textra.TextraLabel;
|
||||
import com.github.tommyettinger.textra.TypingAdapter;
|
||||
@@ -73,9 +76,9 @@ public class MapStage extends GameStage {
|
||||
//These maps are defined as embedded properties within the Tiled maps.
|
||||
private EffectData effect; //"Dungeon Effect": Character Effect applied to all adversaries within the map.
|
||||
private boolean preventEscape = false; //Prevents player from escaping the dungeon by any means that aren't an exit.
|
||||
private ObjectMap<Integer, TextraButton> dialogButtonMap;
|
||||
private final Array< TextraButton> dialogButtonMap=new Array<>();
|
||||
private int selected = 0;
|
||||
public InputEvent eventEnter, eventExit, eventTouchDown, eventTouchUp;
|
||||
public InputEvent eventTouchDown, eventTouchUp;
|
||||
TextraButton selectedKey;
|
||||
private boolean foundPlayerSpawn=false;
|
||||
|
||||
@@ -124,12 +127,6 @@ public class MapStage extends GameStage {
|
||||
eventTouchUp = new InputEvent();
|
||||
eventTouchUp.setPointer(-1);
|
||||
eventTouchUp.setType(InputEvent.Type.touchUp);
|
||||
eventEnter = new InputEvent();
|
||||
eventEnter.setPointer(-1);
|
||||
eventEnter.setType(InputEvent.Type.enter);
|
||||
eventExit = new InputEvent();
|
||||
eventExit.setPointer(-1);
|
||||
eventExit.setType(InputEvent.Type.exit);
|
||||
}
|
||||
public static MapStage getInstance() {
|
||||
return instance == null ? instance = new MapStage() : instance;
|
||||
@@ -169,7 +166,7 @@ public class MapStage extends GameStage {
|
||||
Group collisionGroup;
|
||||
|
||||
@Override
|
||||
protected void debugCollision(boolean b) {
|
||||
public void debugCollision(boolean b) {
|
||||
|
||||
if (collisionGroup == null) {
|
||||
collisionGroup = new Group();
|
||||
@@ -190,7 +187,7 @@ public class MapStage extends GameStage {
|
||||
} else {
|
||||
collisionGroup.remove();
|
||||
}
|
||||
|
||||
super.debugCollision(b);
|
||||
}
|
||||
|
||||
private void effectDialog(EffectData effectData) {
|
||||
@@ -262,6 +259,11 @@ public class MapStage extends GameStage {
|
||||
|
||||
actors.clear();
|
||||
collisionRect.clear();
|
||||
|
||||
if(collisionGroup!=null)
|
||||
collisionGroup.remove();
|
||||
collisionGroup=null;
|
||||
|
||||
float width = Float.parseFloat(map.getProperties().get("width").toString());
|
||||
float height = Float.parseFloat(map.getProperties().get("height").toString());
|
||||
float tileHeight = Float.parseFloat(map.getProperties().get("tileheight").toString());
|
||||
@@ -688,18 +690,16 @@ public class MapStage extends GameStage {
|
||||
}
|
||||
|
||||
public void showDialog() {
|
||||
if (dialogButtonMap == null)
|
||||
dialogButtonMap = new ObjectMap<>();
|
||||
else
|
||||
dialogButtonMap.clear();
|
||||
|
||||
dialogButtonMap.clear();
|
||||
for (int i = 0; i < dialog.getButtonTable().getCells().size; i++) {
|
||||
dialogButtonMap.put(i, (TextraButton) dialog.getButtonTable().getCells().get(i).getActor());
|
||||
dialogButtonMap.add( (TextraButton) dialog.getButtonTable().getCells().get(i).getActor());
|
||||
}
|
||||
dialog.show(dialogStage, Actions.show());
|
||||
dialog.setPosition((dialogStage.getWidth() - dialog.getWidth()) / 2, (dialogStage.getHeight() - dialog.getHeight()) / 2);
|
||||
dialogOnlyInput = true;
|
||||
if (Forge.hasGamepad())
|
||||
selectDialogButton(dialogButtonMap.get(0), false);
|
||||
if (Forge.hasGamepad()&&!dialogButtonMap.isEmpty())
|
||||
dialogStage.setKeyboardFocus(dialogButtonMap.first());
|
||||
}
|
||||
|
||||
public void hideDialog() {
|
||||
@@ -743,34 +743,21 @@ public class MapStage extends GameStage {
|
||||
changes.getMapFlags().clear();
|
||||
}
|
||||
|
||||
public boolean buttonPress(int keycode) {
|
||||
public boolean dialogInput(int keycode) {
|
||||
if (dialogOnlyInput) {
|
||||
if (keycode == Input.Keys.DPAD_UP) {
|
||||
if (KeyBinding.Up.isPressed(keycode)) {
|
||||
selectPreviousDialogButton();
|
||||
}
|
||||
if (keycode == Input.Keys.DPAD_DOWN) {
|
||||
if (KeyBinding.Down.isPressed(keycode)) {
|
||||
selectNextDialogButton();
|
||||
}
|
||||
if (keycode == Input.Keys.BUTTON_A) {
|
||||
selectDialogButton(selectedKey, true);
|
||||
if (KeyBinding.Use.isPressed(keycode)) {
|
||||
performTouch(dialogStage.getKeyboardFocus());
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private void selectDialogButton(TextraButton dialogButton, boolean press) {
|
||||
if (dialogOnlyInput) {
|
||||
if (selectedKey != null)
|
||||
selectedKey.fire(eventExit);
|
||||
if (dialogButton != null && dialogButton.isVisible()) {
|
||||
dialogButton.fire(eventEnter);
|
||||
selectedKey = dialogButton;
|
||||
selected = getButtonIndexKey(dialogButton);
|
||||
if (press)
|
||||
performTouch(dialogButton);
|
||||
}
|
||||
}
|
||||
}
|
||||
public void performTouch(Actor actor) {
|
||||
if (actor == null)
|
||||
return;
|
||||
@@ -782,22 +769,43 @@ public class MapStage extends GameStage {
|
||||
}
|
||||
}, 0.10f);
|
||||
}
|
||||
private int getButtonIndexKey(TextraButton dialogbutton) {
|
||||
if (dialogButtonMap.isEmpty())
|
||||
return 0;
|
||||
Integer key = dialogButtonMap.findKey(dialogbutton, true);
|
||||
if (key == null)
|
||||
return 0;
|
||||
return key;
|
||||
}
|
||||
private void selectNextDialogButton() {
|
||||
if (dialogButtonMap.size < 2)
|
||||
return;
|
||||
selectDialogButton(dialogButtonMap.get(selected+1), false);
|
||||
if(!(dialogStage.getKeyboardFocus() instanceof Button))
|
||||
{
|
||||
dialogStage.setKeyboardFocus(dialogButtonMap.first());
|
||||
return;
|
||||
}
|
||||
for(int i=0;i<dialogButtonMap.size;i++)
|
||||
{
|
||||
if(dialogStage.getKeyboardFocus()==dialogButtonMap.get(i))
|
||||
{
|
||||
i+=1;
|
||||
i%=dialogButtonMap.size;
|
||||
dialogStage.setKeyboardFocus(dialogButtonMap.get(i));
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
private void selectPreviousDialogButton() {
|
||||
if (dialogButtonMap.size < 2)
|
||||
return;
|
||||
selectDialogButton(dialogButtonMap.get(selected-1), false);
|
||||
if(!(dialogStage.getKeyboardFocus() instanceof Button))
|
||||
{
|
||||
dialogStage.setKeyboardFocus(dialogButtonMap.first());
|
||||
return;
|
||||
}
|
||||
for(int i=0;i<dialogButtonMap.size;i++)
|
||||
{
|
||||
if(dialogStage.getKeyboardFocus()==dialogButtonMap.get(i))
|
||||
{
|
||||
i-=1;
|
||||
if(i<0)
|
||||
i=dialogButtonMap.size-1;
|
||||
dialogStage.setKeyboardFocus(dialogButtonMap.get(i));
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@ import com.badlogic.gdx.scenes.scene2d.InputEvent;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.*;
|
||||
import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener;
|
||||
import com.badlogic.gdx.scenes.scene2d.utils.ClickListener;
|
||||
import com.badlogic.gdx.scenes.scene2d.utils.Drawable;
|
||||
import com.badlogic.gdx.utils.Align;
|
||||
import com.badlogic.gdx.utils.Array;
|
||||
import com.badlogic.gdx.utils.Null;
|
||||
@@ -46,7 +47,7 @@ public class Controls {
|
||||
{
|
||||
public TextButtonFix(@Null String text)
|
||||
{
|
||||
super(text, Controls.getSkin(),Controls.getTextraFont()) ;
|
||||
super(text==null?"NULL":text, Controls.getSkin(),Controls.getTextraFont()) ;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -84,8 +85,8 @@ public class Controls {
|
||||
return getBoundingRect(actor).contains(point);
|
||||
}
|
||||
|
||||
static public SelectBox newComboBox(String[] text, String item, Function<Object, Void> func) {
|
||||
SelectBox ret = new SelectBox<String>(getSkin());
|
||||
static public SelectBox<String> newComboBox(String[] text, String item, Function<Object, Void> func) {
|
||||
SelectBox<String> ret = newComboBox();
|
||||
ret.getStyle().listStyle.selection.setTopHeight(4);
|
||||
ret.setItems(text);
|
||||
ret.addListener(new ChangeListener() {
|
||||
@@ -105,8 +106,8 @@ public class Controls {
|
||||
return ret;
|
||||
}
|
||||
|
||||
static public SelectBox newComboBox(Array<String> text, String item, Function<Object, Void> func) {
|
||||
SelectBox ret = new SelectBox<String>(getSkin());
|
||||
static public SelectBox<String> newComboBox(Array<String> text, String item, Function<Object, Void> func) {
|
||||
SelectBox<String> ret = newComboBox();
|
||||
ret.getStyle().listStyle.selection.setTopHeight(4);
|
||||
ret.setItems(text);
|
||||
ret.addListener(new ChangeListener() {
|
||||
@@ -125,8 +126,25 @@ public class Controls {
|
||||
ret.setAlignment(Align.right);
|
||||
return ret;
|
||||
}
|
||||
static public SelectBox newComboBox(Float[] text, float item, Function<Object, Void> func) {
|
||||
SelectBox ret = new SelectBox<Float>(getSkin());
|
||||
static public<T> SelectBox newComboBox()
|
||||
{
|
||||
return new SelectBox<T>(getSkin())
|
||||
{
|
||||
|
||||
@Null
|
||||
protected Drawable getBackgroundDrawable() {
|
||||
if (this.isDisabled() && this.getStyle().backgroundDisabled != null) {
|
||||
return this.getStyle().backgroundDisabled;
|
||||
} else if (this.getScrollPane().hasParent() && this.getStyle().backgroundOpen != null) {
|
||||
return this.getStyle().backgroundOpen;
|
||||
} else {
|
||||
return (this.isOver() || hasKeyboardFocus()) && this.getStyle().backgroundOver != null ? this.getStyle().backgroundOver : this.getStyle().background;
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
static public SelectBox<Float> newComboBox(Float[] text, float item, Function<Object, Void> func) {
|
||||
SelectBox<Float> ret = newComboBox();
|
||||
ret.getStyle().listStyle.selection.setTopHeight(4);
|
||||
ret.setItems(text);
|
||||
ret.addListener(new ChangeListener() {
|
||||
@@ -183,7 +201,20 @@ public class Controls {
|
||||
}
|
||||
|
||||
static public Slider newSlider(float min, float max, float step, boolean vertical) {
|
||||
Slider ret = new Slider(min, max, step, vertical, getSkin());
|
||||
Slider ret = new Slider(min, max, step, vertical, getSkin())
|
||||
{
|
||||
@Override
|
||||
protected Drawable getBackgroundDrawable() {
|
||||
SliderStyle style = (SliderStyle)super.getStyle();
|
||||
if (this.isDisabled() && style.disabledBackground != null) {
|
||||
return style.disabledBackground;
|
||||
} else if (this.isDragging() && style.backgroundDown != null) {
|
||||
return style.backgroundDown;
|
||||
} else {
|
||||
return (this.isOver() || hasKeyboardFocus()) && style.backgroundOver != null ? style.backgroundOver : style.background;
|
||||
}
|
||||
}
|
||||
};
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -341,6 +372,16 @@ public class Controls {
|
||||
}
|
||||
|
||||
static Font textraFont=null;
|
||||
static Font keysFont=null;
|
||||
static public Font getKeysFont()
|
||||
{
|
||||
if(keysFont==null)
|
||||
{
|
||||
keysFont=new Font(getSkin().getFont("default"));
|
||||
keysFont.addAtlas(Config.instance().getAtlas(Paths.KEYS_ATLAS));
|
||||
}
|
||||
return keysFont;
|
||||
}
|
||||
static public Font getTextraFont()
|
||||
{
|
||||
if(textraFont==null)
|
||||
|
||||
@@ -25,13 +25,4 @@ public class Current {
|
||||
deck=generateDeck;
|
||||
}
|
||||
|
||||
static boolean debug=false;
|
||||
public static boolean isInDebug()
|
||||
{
|
||||
return debug;
|
||||
}
|
||||
|
||||
public static void setDebug(boolean b) {
|
||||
debug=b;
|
||||
}
|
||||
}
|
||||
|
||||
84
forge-gui-mobile/src/forge/adventure/util/KeyBinding.java
Normal file
@@ -0,0 +1,84 @@
|
||||
package forge.adventure.util;
|
||||
|
||||
import com.badlogic.gdx.Input;
|
||||
import com.badlogic.gdx.controllers.Controller;
|
||||
import com.badlogic.gdx.controllers.ControllerMapping;
|
||||
import com.badlogic.gdx.controllers.Controllers;
|
||||
import forge.gui.GuiBase;
|
||||
|
||||
public enum KeyBinding {
|
||||
Left("Left", Input.Keys.LEFT,Input.Keys.DPAD_LEFT),
|
||||
Up("Up", Input.Keys.UP,Input.Keys.DPAD_UP),
|
||||
Right("Right", Input.Keys.RIGHT,Input.Keys.DPAD_RIGHT),
|
||||
Down("Down", Input.Keys.DOWN,Input.Keys.DPAD_DOWN),
|
||||
Menu("Menu", Input.Keys.ESCAPE,Input.Keys.BUTTON_START),
|
||||
Inventory("Inventory", Input.Keys.I,Input.Keys.BUTTON_X),
|
||||
Status("Status", Input.Keys.Q,Input.Keys.BUTTON_Y),
|
||||
Deck("Deck", Input.Keys.E,Input.Keys.BUTTON_A),
|
||||
Map("Map", Input.Keys.M,Input.Keys.BUTTON_B),
|
||||
Equip("Equip", Input.Keys.E,Input.Keys.BUTTON_X),
|
||||
Use("Use", Input.Keys.ENTER,Input.Keys.BUTTON_A),
|
||||
Back("Back", Input.Keys.ESCAPE,Input.Keys.BUTTON_B),
|
||||
ScrollUp("ScrollUp", Input.Keys.PAGE_UP,Input.Keys.BUTTON_L1),
|
||||
ScrollDown("ScrollDown", Input.Keys.PAGE_DOWN,Input.Keys.BUTTON_L2),
|
||||
;
|
||||
String name;
|
||||
int binding;
|
||||
int defaultBinding;
|
||||
int bindingController;
|
||||
int defaultBindingController;
|
||||
|
||||
KeyBinding(String name, int defaultBinding, int defaultBindingController)
|
||||
{
|
||||
this.name=name;
|
||||
this.defaultBinding=binding=defaultBinding;
|
||||
this.defaultBindingController=bindingController=defaultBindingController;
|
||||
}
|
||||
public boolean isPressed(int key)
|
||||
{
|
||||
return key==binding||key==bindingController;
|
||||
}
|
||||
|
||||
static String controllerPrefix="XBox_";
|
||||
public String getLabelText(boolean pressed) {
|
||||
if(Controllers.getCurrent()!=null)
|
||||
{
|
||||
return "{Scale=125%}[+"+controllerPrefix+Input.Keys.toString(bindingController).replace(" Button","")+(pressed?"_pressed]":"]");
|
||||
}
|
||||
else
|
||||
{
|
||||
if(GuiBase.isAndroid())
|
||||
return "";
|
||||
return "{Scale=125%}[+"+Input.Keys.toString(binding)+(pressed?"_pressed]":"]");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static int controllerButtonToKey(Controller controller,int key)
|
||||
{
|
||||
ControllerMapping map=controller.getMapping();
|
||||
if(key==map.buttonA) return Input.Keys.BUTTON_A;
|
||||
if(key==map.buttonB) return Input.Keys.BUTTON_B;
|
||||
if(key==map.buttonX) return Input.Keys.BUTTON_X;
|
||||
if(key==map.buttonY) return Input.Keys.BUTTON_Y;
|
||||
|
||||
if(key==map.buttonBack) return Input.Keys.BUTTON_SELECT;
|
||||
if(key==map.buttonStart) return Input.Keys.BUTTON_START;
|
||||
if(key==map.buttonL1) return Input.Keys.BUTTON_L1;
|
||||
if(key==map.buttonL2) return Input.Keys.BUTTON_L2;
|
||||
if(key==map.buttonR1) return Input.Keys.BUTTON_R1;
|
||||
if(key==map.buttonR2) return Input.Keys.BUTTON_R2;
|
||||
if(key==map.buttonDpadUp) return Input.Keys.DPAD_UP;
|
||||
if(key==map.buttonDpadDown) return Input.Keys.DPAD_DOWN;
|
||||
if(key==map.buttonDpadLeft) return Input.Keys.DPAD_LEFT;
|
||||
if(key==map.buttonDpadRight) return Input.Keys.DPAD_RIGHT;
|
||||
if(key==map.buttonLeftStick) return Input.Keys.BUTTON_THUMBL;
|
||||
if(key==map.buttonRightStick) return Input.Keys.BUTTON_THUMBR;
|
||||
|
||||
if(key==map.buttonDpadUp) return Input.Keys.DPAD_UP;
|
||||
if(key==map.buttonDpadDown) return Input.Keys.DPAD_DOWN;
|
||||
if(key==map.buttonDpadLeft) return Input.Keys.DPAD_LEFT;
|
||||
if(key==map.buttonDpadRight) return Input.Keys.DPAD_RIGHT;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
193
forge-gui-mobile/src/forge/adventure/util/KeyBoardDialog.java
Normal file
@@ -0,0 +1,193 @@
|
||||
package forge.adventure.util;
|
||||
|
||||
import com.badlogic.gdx.graphics.Color;
|
||||
import com.badlogic.gdx.scenes.scene2d.Actor;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.Dialog;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.Label;
|
||||
import com.badlogic.gdx.utils.Align;
|
||||
import com.github.tommyettinger.textra.TextraButton;
|
||||
|
||||
public class KeyBoardDialog extends Dialog {
|
||||
|
||||
|
||||
|
||||
|
||||
public interface ScreenKeyboardFinished {
|
||||
void handle(String var1);
|
||||
}
|
||||
|
||||
private final Label kbLabel;
|
||||
public Actor lastInputField;
|
||||
public boolean showGamepadSelector = false, lowercaseKey = true;
|
||||
private final TextraButton keyA, keyB, keyC, keyD, keyE, keyF, keyG, keyH, keyI, keyJ, keyK, keyL, keyM, keyN, keyO, keyP,
|
||||
keyQ, keyR, keyS, keyT, keyU, keyV, keyW, keyX, keyY, keyZ, key1, key2, key3, key4, key5, key6, key7, key8,
|
||||
key9, key0, keyDot, keyComma, keyShift, keyBackspace, keySpace, keyOK, keyAbort;
|
||||
|
||||
|
||||
private void shiftKey() {
|
||||
lowercaseKey = !lowercaseKey;
|
||||
keyShift.setColor(lowercaseKey ? Color.WHITE : Color.CYAN);
|
||||
keyA.setText(lowercaseKey ? "a" : "A");
|
||||
keyB.setText(lowercaseKey ? "b" : "B");
|
||||
keyC.setText(lowercaseKey ? "c" : "C");
|
||||
keyD.setText(lowercaseKey ? "d" : "D");
|
||||
keyE.setText(lowercaseKey ? "e" : "E");
|
||||
keyF.setText(lowercaseKey ? "f" : "F");
|
||||
keyG.setText(lowercaseKey ? "g" : "G");
|
||||
keyH.setText(lowercaseKey ? "h" : "H");
|
||||
keyI.setText(lowercaseKey ? "i" : "I");
|
||||
keyJ.setText(lowercaseKey ? "j" : "J");
|
||||
keyK.setText(lowercaseKey ? "k" : "K");
|
||||
keyL.setText(lowercaseKey ? "l" : "L");
|
||||
keyM.setText(lowercaseKey ? "m" : "M");
|
||||
keyN.setText(lowercaseKey ? "n" : "N");
|
||||
keyO.setText(lowercaseKey ? "o" : "O");
|
||||
keyP.setText(lowercaseKey ? "p" : "P");
|
||||
keyQ.setText(lowercaseKey ? "q" : "Q");
|
||||
keyR.setText(lowercaseKey ? "r" : "R");
|
||||
keyS.setText(lowercaseKey ? "s" : "S");
|
||||
keyT.setText(lowercaseKey ? "t" : "T");
|
||||
keyU.setText(lowercaseKey ? "u" : "U");
|
||||
keyV.setText(lowercaseKey ? "v" : "V");
|
||||
keyW.setText(lowercaseKey ? "w" : "W");
|
||||
keyX.setText(lowercaseKey ? "x" : "X");
|
||||
keyY.setText(lowercaseKey ? "y" : "Y");
|
||||
keyZ.setText(lowercaseKey ? "z" : "Z");
|
||||
}
|
||||
ScreenKeyboardFinished onFinish;
|
||||
public void setOnFinish(ScreenKeyboardFinished finish)
|
||||
{
|
||||
onFinish=finish;
|
||||
}
|
||||
private String removeLastChar(String s) {
|
||||
return (s == null || s.length() == 0)
|
||||
? ""
|
||||
: (s.substring(0, s.length() - 1));
|
||||
}
|
||||
|
||||
private String transformKey(String c) {
|
||||
return lowercaseKey ? c.toLowerCase() : c.toUpperCase();
|
||||
}
|
||||
public void toggleShiftOrBackspace(boolean shift) {
|
||||
}
|
||||
|
||||
private void setKeyboardDialogText() {
|
||||
if (onFinish != null)
|
||||
onFinish.handle(kbLabel.getText().toString());
|
||||
|
||||
result(null);
|
||||
hide();
|
||||
}
|
||||
public KeyBoardDialog() {
|
||||
super("", Controls.getSkin());
|
||||
|
||||
|
||||
kbLabel = Controls.newLabel("");
|
||||
kbLabel.setAlignment(Align.center);
|
||||
kbLabel.setFontScale(1.5f,1.5f);
|
||||
keyA = Controls.newTextButton("A", () -> kbLabel.setText(kbLabel.getText()+transformKey("A")));
|
||||
keyB = Controls.newTextButton("B", () -> kbLabel.setText(kbLabel.getText()+transformKey("B")));
|
||||
keyC = Controls.newTextButton("C", () -> kbLabel.setText(kbLabel.getText()+transformKey("C")));
|
||||
keyD = Controls.newTextButton("D", () -> kbLabel.setText(kbLabel.getText()+transformKey("D")));
|
||||
keyE = Controls.newTextButton("E", () -> kbLabel.setText(kbLabel.getText()+transformKey("E")));
|
||||
keyF = Controls.newTextButton("F", () -> kbLabel.setText(kbLabel.getText()+transformKey("F")));
|
||||
keyG = Controls.newTextButton("G", () -> kbLabel.setText(kbLabel.getText()+transformKey("G")));
|
||||
keyH = Controls.newTextButton("H", () -> kbLabel.setText(kbLabel.getText()+transformKey("H")));
|
||||
keyI = Controls.newTextButton("I", () -> kbLabel.setText(kbLabel.getText()+transformKey("I")));
|
||||
keyJ = Controls.newTextButton("J", () -> kbLabel.setText(kbLabel.getText()+transformKey("J")));
|
||||
keyK = Controls.newTextButton("K", () -> kbLabel.setText(kbLabel.getText()+transformKey("K")));
|
||||
keyL = Controls.newTextButton("L", () -> kbLabel.setText(kbLabel.getText()+transformKey("L")));
|
||||
keyM = Controls.newTextButton("M", () -> kbLabel.setText(kbLabel.getText()+transformKey("M")));
|
||||
keyN = Controls.newTextButton("N", () -> kbLabel.setText(kbLabel.getText()+transformKey("N")));
|
||||
keyO = Controls.newTextButton("O", () -> kbLabel.setText(kbLabel.getText()+transformKey("O")));
|
||||
keyP = Controls.newTextButton("P", () -> kbLabel.setText(kbLabel.getText()+transformKey("P")));
|
||||
keyQ = Controls.newTextButton("Q", () -> kbLabel.setText(kbLabel.getText()+transformKey("Q")));
|
||||
keyR = Controls.newTextButton("R", () -> kbLabel.setText(kbLabel.getText()+transformKey("R")));
|
||||
keyS = Controls.newTextButton("S", () -> kbLabel.setText(kbLabel.getText()+transformKey("S")));
|
||||
keyT = Controls.newTextButton("T", () -> kbLabel.setText(kbLabel.getText()+transformKey("T")));
|
||||
keyU = Controls.newTextButton("U", () -> kbLabel.setText(kbLabel.getText()+transformKey("U")));
|
||||
keyV = Controls.newTextButton("V", () -> kbLabel.setText(kbLabel.getText()+transformKey("V")));
|
||||
keyW = Controls.newTextButton("W", () -> kbLabel.setText(kbLabel.getText()+transformKey("W")));
|
||||
keyX = Controls.newTextButton("X", () -> kbLabel.setText(kbLabel.getText()+transformKey("X")));
|
||||
keyY = Controls.newTextButton("Y", () -> kbLabel.setText(kbLabel.getText()+transformKey("Y")));
|
||||
keyZ = Controls.newTextButton("Z", () -> kbLabel.setText(kbLabel.getText()+transformKey("Z")));
|
||||
key1 = Controls.newTextButton("1", () -> kbLabel.setText(kbLabel.getText()+"1"));
|
||||
key2 = Controls.newTextButton("2", () -> kbLabel.setText(kbLabel.getText()+"2"));
|
||||
key3 = Controls.newTextButton("3", () -> kbLabel.setText(kbLabel.getText()+"3"));
|
||||
key4 = Controls.newTextButton("4", () -> kbLabel.setText(kbLabel.getText()+"4"));
|
||||
key5 = Controls.newTextButton("5", () -> kbLabel.setText(kbLabel.getText()+"5"));
|
||||
key6 = Controls.newTextButton("6", () -> kbLabel.setText(kbLabel.getText()+"6"));
|
||||
key7 = Controls.newTextButton("7", () -> kbLabel.setText(kbLabel.getText()+"7"));
|
||||
key8 = Controls.newTextButton("8", () -> kbLabel.setText(kbLabel.getText()+"8"));
|
||||
key9 = Controls.newTextButton("9", () -> kbLabel.setText(kbLabel.getText()+"9"));
|
||||
key0 = Controls.newTextButton("0", () -> kbLabel.setText(kbLabel.getText()+"0"));
|
||||
keyDot = Controls.newTextButton(".", () -> kbLabel.setText(kbLabel.getText()+"."));
|
||||
keyComma = Controls.newTextButton(",", () -> kbLabel.setText(kbLabel.getText()+","));
|
||||
keyShift = Controls.newTextButton("Aa", () -> shiftKey());
|
||||
keyBackspace = Controls.newTextButton("<<", () -> kbLabel.setText(removeLastChar(String.valueOf(kbLabel.getText()))));
|
||||
keySpace = Controls.newTextButton("SPACE", () -> kbLabel.setText(kbLabel.getText()+" "));
|
||||
keyOK = Controls.newTextButton("OK", () -> setKeyboardDialogText());
|
||||
keyAbort = Controls.newTextButton("Abort", () -> abortKeyInput());
|
||||
this.getContentTable().add(kbLabel).width(220).height(20).colspan(10).expandX().align(Align.center);
|
||||
this.getButtonTable().row();
|
||||
this.getButtonTable().add(key1).width(20).height(20);
|
||||
this.getButtonTable().add(key2).width(20).height(20);
|
||||
this.getButtonTable().add(key3).width(20).height(20);
|
||||
this.getButtonTable().add(key4).width(20).height(20);
|
||||
this.getButtonTable().add(key5).width(20).height(20);
|
||||
this.getButtonTable().add(key6).width(20).height(20);
|
||||
this.getButtonTable().add(key7).width(20).height(20);
|
||||
this.getButtonTable().add(key8).width(20).height(20);
|
||||
this.getButtonTable().add(key9).width(20).height(20);
|
||||
this.getButtonTable().add(key0).width(20).height(20);
|
||||
this.getButtonTable().row();
|
||||
this.getButtonTable().add(keyQ).width(20).height(20);
|
||||
this.getButtonTable().add(keyW).width(20).height(20);
|
||||
this.getButtonTable().add(keyE).width(20).height(20);
|
||||
this.getButtonTable().add(keyR).width(20).height(20);
|
||||
this.getButtonTable().add(keyT).width(20).height(20);
|
||||
this.getButtonTable().add(keyY).width(20).height(20);
|
||||
this.getButtonTable().add(keyU).width(20).height(20);
|
||||
this.getButtonTable().add(keyI).width(20).height(20);
|
||||
this.getButtonTable().add(keyO).width(20).height(20);
|
||||
this.getButtonTable().add(keyP).width(20).height(20);
|
||||
this.getButtonTable().row();
|
||||
this.getButtonTable().add(keyA).width(20).height(20);
|
||||
this.getButtonTable().add(keyS).width(20).height(20);
|
||||
this.getButtonTable().add(keyD).width(20).height(20);
|
||||
this.getButtonTable().add(keyF).width(20).height(20);
|
||||
this.getButtonTable().add(keyG).width(20).height(20);
|
||||
this.getButtonTable().add(keyH).width(20).height(20);
|
||||
this.getButtonTable().add(keyJ).width(20).height(20);
|
||||
this.getButtonTable().add(keyK).width(20).height(20);
|
||||
this.getButtonTable().add(keyL).width(20).height(20);
|
||||
this.getButtonTable().add(keyBackspace).width(20).height(20);
|
||||
this.getButtonTable().row();
|
||||
this.getButtonTable().add(keyShift).width(20).height(20);
|
||||
this.getButtonTable().add(keyZ).width(20).height(20);
|
||||
this.getButtonTable().add(keyX).width(20).height(20);
|
||||
this.getButtonTable().add(keyC).width(20).height(20);
|
||||
this.getButtonTable().add(keyV).width(20).height(20);
|
||||
this.getButtonTable().add(keyB).width(20).height(20);
|
||||
this.getButtonTable().add(keyN).width(20).height(20);
|
||||
this.getButtonTable().add(keyM).width(20).height(20);
|
||||
this.getButtonTable().add(keyDot).width(20).height(20);
|
||||
this.getButtonTable().add(keyComma).width(20).height(20);
|
||||
this.getButtonTable().row();
|
||||
this.getButtonTable().add(keySpace).width(150).height(20).colspan(6);
|
||||
this.getButtonTable().add(keyOK).width(50).height(20).colspan(2);
|
||||
this.getButtonTable().add(keyAbort).width(50).height(20).colspan(2);
|
||||
this.setMovable(false);
|
||||
this.setKeepWithinStage(true);
|
||||
this.setResizable(false);
|
||||
}
|
||||
|
||||
private void abortKeyInput() {
|
||||
hide();
|
||||
result(null);
|
||||
}
|
||||
|
||||
public void setText(String text) {
|
||||
kbLabel.setText(text);
|
||||
}
|
||||
}
|
||||
@@ -10,6 +10,9 @@ import forge.adventure.data.DialogData;
|
||||
import forge.adventure.player.AdventurePlayer;
|
||||
import forge.adventure.stage.MapStage;
|
||||
import forge.card.ColorSet;
|
||||
import forge.localinstance.properties.ForgePreferences;
|
||||
import forge.model.FModel;
|
||||
import forge.sound.AudioClip;
|
||||
import forge.util.Localizer;
|
||||
|
||||
/**
|
||||
@@ -45,6 +48,7 @@ public class MapDialog {
|
||||
}
|
||||
this.data = JSONStringLoader.parse(Array.class, DialogData.class, S, defaultJSON);
|
||||
}
|
||||
static AudioClip audio=null;
|
||||
|
||||
private void loadDialog(DialogData dialog) { //Displays a dialog with dialogue and possible choices.
|
||||
setEffects(dialog.action);
|
||||
@@ -54,6 +58,14 @@ public class MapDialog {
|
||||
String text; //Check for localized string (locname), otherwise print text.
|
||||
if(dialog.loctext != null && !dialog.loctext.isEmpty()) text = L.getMessage(dialog.loctext);
|
||||
else text = dialog.text;
|
||||
if(audio!=null)
|
||||
audio.stop();
|
||||
if(dialog.voiceFile!=null)
|
||||
{
|
||||
audio = AudioClip.createClip(Config.instance().getFilePath(dialog.voiceFile));
|
||||
if(audio!=null)
|
||||
audio.play(FModel.getPreferences().getPrefInt(ForgePreferences.FPref.UI_VOL_SOUNDS)/100f);
|
||||
}
|
||||
TypingLabel A = Controls.newTypingLabel(text);
|
||||
A.setWrap(true);
|
||||
D.getContentTable().add(A).width(WIDTH); //Add() returns a Cell, which is what the width is being applied to.
|
||||
|
||||
@@ -11,9 +11,9 @@ public class Paths {
|
||||
public static final String POINTS_OF_INTEREST = "world/points_of_interest.json";
|
||||
public static final String ITEMS = "world/items.json";
|
||||
public static final String SKIN = "skin/ui_skin.json";
|
||||
public static final String SKIN_FONT = "skin/LanaPixel.ttf";
|
||||
public static final String ITEMS_EQUIP = "skin/equip.png";
|
||||
public static final String ITEMS_ATLAS = "sprites/items.atlas";
|
||||
public static final String KEYS_ATLAS = "skin/keys.atlas";
|
||||
public static final String COLOR_FRAME_ATLAS = "ui/color_frames.atlas";
|
||||
public static final String ARENA_ATLAS = "ui/arena.atlas";
|
||||
public static final String MAP_MARKER = "sprites/map_marker.atlas";
|
||||
|
||||
@@ -86,7 +86,12 @@ public class RewardActor extends Actor implements Disposable, ImageFetcher.Callb
|
||||
if (T != null)
|
||||
T.dispose();
|
||||
}
|
||||
|
||||
public boolean toolTipIsVisible()
|
||||
{
|
||||
if(holdTooltip!=null)
|
||||
return holdTooltip.tooltip_actor.getStage()!=null;
|
||||
return false;
|
||||
}
|
||||
public Reward getReward() {
|
||||
return reward;
|
||||
}
|
||||
@@ -220,6 +225,12 @@ public class RewardActor extends Actor implements Disposable, ImageFetcher.Callb
|
||||
Pixmap drawingMap = new Pixmap((int) backSprite.getWidth(), (int) backSprite.getHeight(), Pixmap.Format.RGBA8888);
|
||||
|
||||
DrawOnPixmap.draw(drawingMap, backSprite);
|
||||
if(reward.getItem()==null)
|
||||
{
|
||||
needsToBeDisposed = true;
|
||||
image=new Texture(drawingMap);
|
||||
break;
|
||||
}
|
||||
Sprite item = reward.getItem().sprite();
|
||||
|
||||
DrawOnPixmap.draw(drawingMap, (int) ((backSprite.getWidth() / 2f) - item.getWidth() / 2f), (int) ((backSprite.getHeight() / 4f) * 1.7f), item);
|
||||
@@ -558,9 +569,10 @@ public class RewardActor extends Actor implements Disposable, ImageFetcher.Callb
|
||||
applyProjectionMatrix(batch);
|
||||
|
||||
|
||||
if (hover)
|
||||
if (hover|hasKeyboardFocus())
|
||||
batch.setColor(0.5f, 0.5f, 0.5f, 1);
|
||||
|
||||
|
||||
if (!frontSideUp()) {
|
||||
if (flipOnClick) {
|
||||
batch.draw(backTexture, -getWidth() / 2, -getHeight() / 2, getWidth(), getHeight());
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
package forge.adventure.util;
|
||||
|
||||
import com.badlogic.gdx.scenes.scene2d.Group;
|
||||
import com.badlogic.gdx.scenes.scene2d.InputEvent;
|
||||
import com.badlogic.gdx.scenes.scene2d.InputListener;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.ImageButton;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.Table;
|
||||
import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener;
|
||||
import com.badlogic.gdx.scenes.scene2d.utils.ClickListener;
|
||||
import com.badlogic.gdx.utils.Array;
|
||||
@@ -12,7 +13,7 @@ import com.github.tommyettinger.textra.TextraButton;
|
||||
/**
|
||||
* UI element to click through options, can be configured in an UiActor
|
||||
*/
|
||||
public class Selector extends Group {
|
||||
public class Selector extends Table {
|
||||
private final ImageButton leftArrow;
|
||||
private final ImageButton rightArrow;
|
||||
private final TextraButton label;
|
||||
@@ -21,37 +22,62 @@ public class Selector extends Group {
|
||||
|
||||
|
||||
public Selector() {
|
||||
Selector self=this;
|
||||
ImageButton.ImageButtonStyle leftArrowStyle = Controls.getSkin().get("leftarrow", ImageButton.ImageButtonStyle.class);
|
||||
leftArrow = new ImageButton(leftArrowStyle);
|
||||
leftArrow = new ImageButton(leftArrowStyle)
|
||||
{
|
||||
@Override
|
||||
public boolean hasKeyboardFocus()
|
||||
{
|
||||
return self.hasKeyboardFocus();
|
||||
}
|
||||
};
|
||||
|
||||
ImageButton.ImageButtonStyle rightArrowStyle = Controls.getSkin().get("rightarrow", ImageButton.ImageButtonStyle.class);
|
||||
rightArrow = new ImageButton(rightArrowStyle);
|
||||
rightArrow = new ImageButton(rightArrowStyle)
|
||||
{
|
||||
@Override
|
||||
public boolean hasKeyboardFocus()
|
||||
{
|
||||
return self.hasKeyboardFocus();
|
||||
}
|
||||
};
|
||||
|
||||
label = Controls.newTextButton("");
|
||||
addActor(leftArrow);
|
||||
addActor(rightArrow);
|
||||
addActor(label);
|
||||
label = new Controls.TextButtonFix("")
|
||||
{
|
||||
@Override
|
||||
public boolean hasKeyboardFocus()
|
||||
{
|
||||
return self.hasKeyboardFocus();
|
||||
}
|
||||
};
|
||||
add(leftArrow).pad(2);
|
||||
add(label).expand().fill();
|
||||
add(rightArrow).pad(2);
|
||||
leftArrow.addListener(new ClickListener() {
|
||||
@Override
|
||||
public void clicked(InputEvent event, float x, float y) {
|
||||
try {
|
||||
setCurrentIndex(currentIndex - 1);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
setCurrentIndex(currentIndex - 1);
|
||||
}
|
||||
});
|
||||
rightArrow.addListener(new ClickListener() {
|
||||
@Override
|
||||
public void clicked(InputEvent event, float x, float y) {
|
||||
try {
|
||||
setCurrentIndex(currentIndex + 1);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
setCurrentIndex(currentIndex + 1);
|
||||
}
|
||||
});
|
||||
|
||||
addListener(new InputListener()
|
||||
{
|
||||
@Override
|
||||
public boolean keyDown(InputEvent event, int keycode) {
|
||||
if(KeyBinding.Left.isPressed(keycode))
|
||||
setCurrentIndex(currentIndex - 1);
|
||||
if(KeyBinding.Right.isPressed(keycode))
|
||||
setCurrentIndex(currentIndex + 1);
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -30,7 +30,7 @@ public class TemplateTmxMapLoader extends TmxMapLoader {
|
||||
FileHandle tmxFile = new FileHandle(f);
|
||||
|
||||
this.root = xml.parse(tmxFile);
|
||||
|
||||
parameter.generateMipMaps=true;
|
||||
final Array<FileHandle> textureFiles = getDependencyFileHandles(tmxFile);
|
||||
for (FileHandle textureFile : textureFiles) {
|
||||
Texture texture = new Texture(textureFile, parameter.generateMipMaps);
|
||||
|
||||
@@ -7,10 +7,10 @@ import com.badlogic.gdx.graphics.g2d.TextureRegion;
|
||||
import com.badlogic.gdx.scenes.scene2d.Actor;
|
||||
import com.badlogic.gdx.scenes.scene2d.Group;
|
||||
import com.badlogic.gdx.scenes.scene2d.InputEvent;
|
||||
import com.badlogic.gdx.scenes.scene2d.Stage;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.*;
|
||||
import com.badlogic.gdx.scenes.scene2d.utils.ClickListener;
|
||||
import com.badlogic.gdx.scenes.scene2d.utils.TextureRegionDrawable;
|
||||
import com.badlogic.gdx.utils.Array;
|
||||
import com.badlogic.gdx.utils.Json;
|
||||
import com.badlogic.gdx.utils.ObjectMap;
|
||||
import com.badlogic.gdx.utils.OrderedMap;
|
||||
@@ -18,7 +18,10 @@ import com.github.tommyettinger.textra.TextraButton;
|
||||
import com.github.tommyettinger.textra.TextraLabel;
|
||||
import forge.Forge;
|
||||
import forge.adventure.data.UIData;
|
||||
import forge.adventure.scene.UIScene;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
@@ -28,6 +31,9 @@ import java.util.regex.Pattern;
|
||||
public class UIActor extends Group {
|
||||
UIData data;
|
||||
Actor lastActor=null;
|
||||
public Array<UIScene.Selectable> selectActors=new Array<>();
|
||||
private HashMap<KeyBinding,Button> keyMap=new HashMap<>();
|
||||
public Array<KeyHintLabel> keyLabels=new Array<>();
|
||||
|
||||
public UIActor(FileHandle handle) {
|
||||
data = (new Json()).fromJson(UIData.class, handle);
|
||||
@@ -83,7 +89,7 @@ public class UIActor extends Group {
|
||||
readCheckBoxProperties((CheckBox) newActor, new OrderedMap.OrderedMapEntries<>(element));
|
||||
break;
|
||||
case "SelectBox":
|
||||
newActor = new SelectBox<>(Controls.getSkin());
|
||||
newActor =Controls.newComboBox();
|
||||
break;
|
||||
default:
|
||||
throw new IllegalStateException("Unexpected value: " + type);
|
||||
@@ -93,6 +99,9 @@ public class UIActor extends Group {
|
||||
float yValue = 0;
|
||||
for (ObjectMap.Entry property : new OrderedMap.OrderedMapEntries<>(element)) {
|
||||
switch (property.key.toString()) {
|
||||
case "selectable":
|
||||
selectActors.add(new UIScene.Selectable(newActor));
|
||||
break;
|
||||
case "scale":
|
||||
newActor.setScale((Float) property.value);
|
||||
break;
|
||||
@@ -135,6 +144,19 @@ public class UIActor extends Group {
|
||||
lastActor=newActor;
|
||||
addActor(newActor);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public Button buttonPressed(int key)
|
||||
{
|
||||
for(Map.Entry<KeyBinding, Button> entry:keyMap.entrySet())
|
||||
{
|
||||
if(entry.getKey().isPressed(key))
|
||||
{
|
||||
return entry.getValue();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private void readScrollPaneProperties(ScrollPane newActor, ObjectMap.Entries<String, String> entries) {
|
||||
@@ -190,6 +212,9 @@ public class UIActor extends Group {
|
||||
case "style":
|
||||
newActor.setStyle(Controls.getSkin().get(property.value.toString(), ImageButton.ImageButtonStyle.class));
|
||||
break;
|
||||
case "binding":
|
||||
keyMap.put(KeyBinding.valueOf(property.value.toString()),newActor);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -254,6 +279,12 @@ public class UIActor extends Group {
|
||||
case "style":
|
||||
newActor.setStyle(Controls.getSkin().get(property.value.toString(), TextButton.TextButtonStyle.class));
|
||||
break;
|
||||
case "binding":
|
||||
keyMap.put(KeyBinding.valueOf(property.value.toString()),newActor);
|
||||
KeyHintLabel label=new KeyHintLabel(KeyBinding.valueOf(property.value.toString()));
|
||||
keyLabels.add(label);
|
||||
newActor.add(label);
|
||||
break;
|
||||
}
|
||||
}
|
||||
newActor.layout();
|
||||
@@ -287,31 +318,64 @@ public class UIActor extends Group {
|
||||
}
|
||||
});
|
||||
}
|
||||
static final public int ButtonYes=0x1;
|
||||
static final public int ButtonNo=0x2;
|
||||
static final public int ButtonOk=0x4;
|
||||
static final public int ButtonAbort=0x8;
|
||||
public Dialog showDialog(Stage stage, String header, int buttons, Runnable onOkOrYes) {
|
||||
Dialog dialog =new Dialog(header, Controls.getSkin())
|
||||
|
||||
public void controllerDisconnected( ) {
|
||||
for(KeyHintLabel label:keyLabels)
|
||||
{
|
||||
protected void result(Object object)
|
||||
{
|
||||
if(onOkOrYes!=null&&object!=null&&object.equals(true))
|
||||
onOkOrYes.run();
|
||||
this.hide();
|
||||
removeActor(this);
|
||||
}
|
||||
};
|
||||
if((buttons&ButtonYes)!=0)
|
||||
dialog.button(Forge.getLocalizer().getMessage("lblYes"), true);
|
||||
if((buttons&ButtonNo)!=0)
|
||||
dialog.button(Forge.getLocalizer().getMessage("lblNo"), false);
|
||||
if((buttons&ButtonOk)!=0)
|
||||
dialog.button(Forge.getLocalizer().getMessage("lblOk"), true);
|
||||
if((buttons&ButtonAbort)!=0)
|
||||
dialog.button(Forge.getLocalizer().getMessage("lblAbort"), false);
|
||||
addActor(dialog);
|
||||
dialog.show(stage);
|
||||
return dialog;
|
||||
label.disconnected();
|
||||
}
|
||||
}
|
||||
public void controllerConnected( ) {
|
||||
for(KeyHintLabel label:keyLabels)
|
||||
{
|
||||
label.connected();
|
||||
}
|
||||
}
|
||||
public void pressUp(int code) {
|
||||
for(KeyHintLabel label:keyLabels)
|
||||
{
|
||||
label.buttonUp(code);
|
||||
}
|
||||
}
|
||||
|
||||
public void pressDown(int code) {
|
||||
for(KeyHintLabel label:keyLabels)
|
||||
{
|
||||
label.buttonDown(code);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private class KeyHintLabel extends TextraLabel {
|
||||
public KeyHintLabel(KeyBinding keyBinding) {
|
||||
super(keyBinding.getLabelText(false),Controls.getKeysFont());
|
||||
this.keyBinding=keyBinding;
|
||||
}
|
||||
KeyBinding keyBinding;
|
||||
public void connected( ) {
|
||||
updateText();
|
||||
}
|
||||
|
||||
private void updateText() {
|
||||
setText(keyBinding.getLabelText(false));
|
||||
layout();
|
||||
}
|
||||
|
||||
public void disconnected() {
|
||||
updateText();
|
||||
}
|
||||
|
||||
public boolean buttonDown(int i) {
|
||||
if(keyBinding.isPressed(i))
|
||||
setText(keyBinding.getLabelText(true));
|
||||
layout();
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean buttonUp( int i) {
|
||||
if(keyBinding.isPressed(i))
|
||||
updateText();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
BIN
forge-gui/res/adventure/Shandalar/audio/WizPAR1.mp3
Normal file
BIN
forge-gui/res/adventure/Shandalar/audio/WizPAR2.mp3
Normal file
BIN
forge-gui/res/adventure/Shandalar/audio/WizPAR3.mp3
Normal file
BIN
forge-gui/res/adventure/Shandalar/audio/WizPAR4.mp3
Normal file
@@ -34,7 +34,8 @@
|
||||
"Sanctum of Eternity",
|
||||
"Stinging Study",
|
||||
"Study Hall",
|
||||
"Witch's Clinic"
|
||||
"Witch's Clinic",
|
||||
"Time Vault"
|
||||
],
|
||||
"restrictedEditions": [
|
||||
"HTR",
|
||||
|
||||
@@ -2,39 +2,39 @@
|
||||
"name":"Black",
|
||||
"mainDeck": [
|
||||
{
|
||||
"count":12,
|
||||
"count":18,
|
||||
"cardName": "Swamp"
|
||||
},
|
||||
{
|
||||
"count":6,
|
||||
"count":9,
|
||||
"cardName": "Mountain"
|
||||
},
|
||||
{
|
||||
"count":6,
|
||||
"count":9,
|
||||
"colors": ["black"],
|
||||
"rarity": ["Uncommon","Common"],
|
||||
"manaCosts": [1,2]
|
||||
},
|
||||
{
|
||||
"count":4,
|
||||
"count":6,
|
||||
"colors": ["red"],
|
||||
"rarity": ["Uncommon","Common"],
|
||||
"manaCosts": [1,2]
|
||||
},
|
||||
{
|
||||
"count":4,
|
||||
"count":6,
|
||||
"colors": ["black"],
|
||||
"rarity": ["Uncommon","Common"],
|
||||
"manaCosts": [3,4]
|
||||
},
|
||||
{
|
||||
"count":2,
|
||||
"count":3,
|
||||
"colors": ["red"],
|
||||
"rarity": ["Uncommon","Common"],
|
||||
"manaCosts": [3,4]
|
||||
},
|
||||
{
|
||||
"count":6,
|
||||
"count":9,
|
||||
"colors": ["black"],
|
||||
"rarity": ["rare"],
|
||||
"manaCosts": [5,6,7,8,9]
|
||||
|
||||
@@ -2,43 +2,43 @@
|
||||
"name":"Black",
|
||||
"mainDeck": [
|
||||
{
|
||||
"count":10,
|
||||
"count":15,
|
||||
"cardName": "Swamp"
|
||||
},
|
||||
{
|
||||
"count":4,
|
||||
"count":6,
|
||||
"cardName": "Mountain"
|
||||
},
|
||||
{
|
||||
"count":4,
|
||||
"count":6,
|
||||
"cardName": "Island"
|
||||
},
|
||||
{
|
||||
"count":6,
|
||||
"count":9,
|
||||
"colors": ["black"],
|
||||
"rarity": ["Common"],
|
||||
"manaCosts": [1,2]
|
||||
},
|
||||
{
|
||||
"count":4,
|
||||
"count":6,
|
||||
"colors": ["red","blue"],
|
||||
"rarity": ["Common"],
|
||||
"manaCosts": [1,2]
|
||||
},
|
||||
{
|
||||
"count":4,
|
||||
"count":6,
|
||||
"colors": ["black"],
|
||||
"rarity": ["Common"],
|
||||
"manaCosts": [3,4]
|
||||
},
|
||||
{
|
||||
"count":2,
|
||||
"count":3,
|
||||
"colors": ["red","blue"],
|
||||
"rarity": ["Uncommon","Common"],
|
||||
"manaCosts": [3,4]
|
||||
},
|
||||
{
|
||||
"count":6,
|
||||
"count":9,
|
||||
"colors": ["black"],
|
||||
"rarity": ["Uncommon","Common"],
|
||||
"manaCosts": [5,6]
|
||||
|
||||
@@ -2,43 +2,43 @@
|
||||
"name":"Black",
|
||||
"mainDeck": [
|
||||
{
|
||||
"count":10,
|
||||
"count":15,
|
||||
"cardName": "Swamp"
|
||||
},
|
||||
{
|
||||
"count":4,
|
||||
"count":6,
|
||||
"cardName": "Mountain"
|
||||
},
|
||||
{
|
||||
"count":4,
|
||||
"count":6,
|
||||
"cardName": "Island"
|
||||
},
|
||||
{
|
||||
"count":6,
|
||||
"count":9,
|
||||
"colors": ["black"],
|
||||
"rarity": ["Uncommon","Common"],
|
||||
"manaCosts": [1,2]
|
||||
},
|
||||
{
|
||||
"count":4,
|
||||
"count":6,
|
||||
"colors": ["red","blue"],
|
||||
"rarity": ["Uncommon","Common"],
|
||||
"manaCosts": [1,2]
|
||||
},
|
||||
{
|
||||
"count":4,
|
||||
"count":6,
|
||||
"colors": ["black"],
|
||||
"rarity": ["Uncommon","Common"],
|
||||
"manaCosts": [3,4]
|
||||
},
|
||||
{
|
||||
"count":2,
|
||||
"count":3,
|
||||
"colors": ["red","blue"],
|
||||
"rarity": ["Uncommon","Common"],
|
||||
"manaCosts": [3,4]
|
||||
},
|
||||
{
|
||||
"count":6,
|
||||
"count":9,
|
||||
"colors": ["black"],
|
||||
"rarity": ["rare"],
|
||||
"manaCosts": [5,6,7,8,9]
|
||||
|
||||
@@ -2,39 +2,39 @@
|
||||
"name":"Blue",
|
||||
"mainDeck": [
|
||||
{
|
||||
"count":12,
|
||||
"count":18,
|
||||
"cardName": "Island"
|
||||
},
|
||||
{
|
||||
"count":6,
|
||||
"count":9,
|
||||
"cardName": "Swamp"
|
||||
},
|
||||
{
|
||||
"count":6,
|
||||
"count":9,
|
||||
"colors": ["blue"],
|
||||
"rarity": ["Uncommon","Common"],
|
||||
"manaCosts": [1,2]
|
||||
},
|
||||
{
|
||||
"count":4,
|
||||
"count":6,
|
||||
"colors": ["black"],
|
||||
"rarity": ["Common"],
|
||||
"manaCosts": [1,2]
|
||||
},
|
||||
{
|
||||
"count":4,
|
||||
"count":6,
|
||||
"colors": ["blue"],
|
||||
"rarity": ["Uncommon","Common"],
|
||||
"manaCosts": [3,4]
|
||||
},
|
||||
{
|
||||
"count":2,
|
||||
"count":3,
|
||||
"colors": ["black"],
|
||||
"rarity": ["Common"],
|
||||
"manaCosts": [3,4]
|
||||
},
|
||||
{
|
||||
"count":6,
|
||||
"count":9,
|
||||
"colors": ["blue"],
|
||||
"rarity": ["rare"],
|
||||
"manaCosts": [5,6,7,8,9]
|
||||
|
||||
@@ -2,43 +2,43 @@
|
||||
"name":"Blue",
|
||||
"mainDeck": [
|
||||
{
|
||||
"count":10,
|
||||
"count":15,
|
||||
"cardName": "Island"
|
||||
},
|
||||
{
|
||||
"count":4,
|
||||
"count":6,
|
||||
"cardName": "Plains"
|
||||
},
|
||||
{
|
||||
"count":4,
|
||||
"count":6,
|
||||
"cardName": "Swamp"
|
||||
},
|
||||
{
|
||||
"count":6,
|
||||
"count":9,
|
||||
"colors": ["blue"],
|
||||
"rarity": ["Common"],
|
||||
"manaCosts": [1,2]
|
||||
},
|
||||
{
|
||||
"count":4,
|
||||
"count":6,
|
||||
"colors": ["white","black"],
|
||||
"rarity": ["Common"],
|
||||
"manaCosts": [1,2]
|
||||
},
|
||||
{
|
||||
"count":4,
|
||||
"count":6,
|
||||
"colors": ["blue"],
|
||||
"rarity": ["Common"],
|
||||
"manaCosts": [3,4]
|
||||
},
|
||||
{
|
||||
"count":2,
|
||||
"count":3,
|
||||
"colors": ["white","black"],
|
||||
"rarity": ["Common"],
|
||||
"manaCosts": [3,4]
|
||||
},
|
||||
{
|
||||
"count":6,
|
||||
"count":9,
|
||||
"colors": ["blue"],
|
||||
"rarity": ["Uncommon","Common"],
|
||||
"manaCosts": [5,6]
|
||||
|
||||
@@ -2,43 +2,43 @@
|
||||
"name":"Blue",
|
||||
"mainDeck": [
|
||||
{
|
||||
"count":10,
|
||||
"count":15,
|
||||
"cardName": "Island"
|
||||
},
|
||||
{
|
||||
"count":4,
|
||||
"count":6,
|
||||
"cardName": "Plains"
|
||||
},
|
||||
{
|
||||
"count":4,
|
||||
"count":6,
|
||||
"cardName": "Swamp"
|
||||
},
|
||||
{
|
||||
"count":6,
|
||||
"count":9,
|
||||
"colors": ["blue"],
|
||||
"rarity": ["Uncommon","Common"],
|
||||
"manaCosts": [1,2]
|
||||
},
|
||||
{
|
||||
"count":4,
|
||||
"count":6,
|
||||
"colors": ["white","black"],
|
||||
"rarity": ["Uncommon","Common"],
|
||||
"manaCosts": [1,2]
|
||||
},
|
||||
{
|
||||
"count":4,
|
||||
"count":6,
|
||||
"colors": ["blue"],
|
||||
"rarity": ["Uncommon","Common"],
|
||||
"manaCosts": [3,4]
|
||||
},
|
||||
{
|
||||
"count":2,
|
||||
"count":3,
|
||||
"colors": ["white","black"],
|
||||
"rarity": ["Uncommon","Common"],
|
||||
"manaCosts": [3,4]
|
||||
},
|
||||
{
|
||||
"count":6,
|
||||
"count":9,
|
||||
"colors": ["blue"],
|
||||
"rarity": ["rare"],
|
||||
"manaCosts": [5,6,7,8,9]
|
||||
|
||||
@@ -2,39 +2,39 @@
|
||||
"name":"Green",
|
||||
"mainDeck": [
|
||||
{
|
||||
"count":12,
|
||||
"count":18,
|
||||
"cardName": "Forest"
|
||||
},
|
||||
{
|
||||
"count":6,
|
||||
"count":9,
|
||||
"cardName": "Plains"
|
||||
},
|
||||
{
|
||||
"count":6,
|
||||
"count":9,
|
||||
"colors": ["green"],
|
||||
"rarity": ["Uncommon","Common"],
|
||||
"manaCosts": [1,2]
|
||||
},
|
||||
{
|
||||
"count":4,
|
||||
"count":6,
|
||||
"colors": ["white"],
|
||||
"rarity": ["Uncommon","Common"],
|
||||
"manaCosts": [1,2]
|
||||
},
|
||||
{
|
||||
"count":4,
|
||||
"count":6,
|
||||
"colors": ["green"],
|
||||
"rarity": ["Uncommon","Common"],
|
||||
"manaCosts": [3,4]
|
||||
},
|
||||
{
|
||||
"count":2,
|
||||
"count":3,
|
||||
"colors": ["white"],
|
||||
"rarity": ["Uncommon"],
|
||||
"manaCosts": [3,4]
|
||||
},
|
||||
{
|
||||
"count":6,
|
||||
"count":9,
|
||||
"colors": ["green"],
|
||||
"rarity": ["rare"],
|
||||
"manaCosts": [5,6,7,8,9]
|
||||
|
||||
@@ -2,43 +2,43 @@
|
||||
"name":"Green",
|
||||
"mainDeck": [
|
||||
{
|
||||
"count":10,
|
||||
"count":15,
|
||||
"cardName": "Forest"
|
||||
},
|
||||
{
|
||||
"count":4,
|
||||
"count":6,
|
||||
"cardName": "Plains"
|
||||
},
|
||||
{
|
||||
"count":4,
|
||||
"count":6,
|
||||
"cardName": "Mountain"
|
||||
},
|
||||
{
|
||||
"count":6,
|
||||
"count":9,
|
||||
"colors": ["green"],
|
||||
"rarity": ["Common"],
|
||||
"manaCosts": [1,2]
|
||||
},
|
||||
{
|
||||
"count":4,
|
||||
"count":6,
|
||||
"colors": ["white","red"],
|
||||
"rarity": ["Common"],
|
||||
"manaCosts": [1,2]
|
||||
},
|
||||
{
|
||||
"count":4,
|
||||
"count":6,
|
||||
"colors": ["green"],
|
||||
"rarity": ["Common"],
|
||||
"manaCosts": [3,4]
|
||||
},
|
||||
{
|
||||
"count":2,
|
||||
"count":3,
|
||||
"colors": ["red","white"],
|
||||
"rarity": ["Uncommon","Common"],
|
||||
"manaCosts": [3,4]
|
||||
},
|
||||
{
|
||||
"count":6,
|
||||
"count":9,
|
||||
"colors": ["green"],
|
||||
"rarity": ["Uncommon","Common"],
|
||||
"manaCosts": [5,6]
|
||||
|
||||
@@ -2,43 +2,43 @@
|
||||
"name":"Green",
|
||||
"mainDeck": [
|
||||
{
|
||||
"count":10,
|
||||
"count":15,
|
||||
"cardName": "Forest"
|
||||
},
|
||||
{
|
||||
"count":4,
|
||||
"count":6,
|
||||
"cardName": "Plains"
|
||||
},
|
||||
{
|
||||
"count":4,
|
||||
"count":6,
|
||||
"cardName": "Mountain"
|
||||
},
|
||||
{
|
||||
"count":6,
|
||||
"count":9,
|
||||
"colors": ["green"],
|
||||
"rarity": ["Uncommon","Common"],
|
||||
"manaCosts": [1,2]
|
||||
},
|
||||
{
|
||||
"count":4,
|
||||
"count":6,
|
||||
"colors": ["white","red"],
|
||||
"rarity": ["Uncommon","Common"],
|
||||
"manaCosts": [1,2]
|
||||
},
|
||||
{
|
||||
"count":4,
|
||||
"count":6,
|
||||
"colors": ["green"],
|
||||
"rarity": ["Uncommon","Common"],
|
||||
"manaCosts": [3,4]
|
||||
},
|
||||
{
|
||||
"count":2,
|
||||
"count":3,
|
||||
"colors": ["red","white"],
|
||||
"rarity": ["Uncommon","Common"],
|
||||
"manaCosts": [3,4]
|
||||
},
|
||||
{
|
||||
"count":6,
|
||||
"count":9,
|
||||
"colors": ["green"],
|
||||
"rarity": ["rare"],
|
||||
"manaCosts": [5,6,7,8,9]
|
||||
|
||||
@@ -2,39 +2,39 @@
|
||||
"name":"Red",
|
||||
"mainDeck": [
|
||||
{
|
||||
"count":12,
|
||||
"count":18,
|
||||
"cardName": "Mountain"
|
||||
},
|
||||
{
|
||||
"count":6,
|
||||
"count":9,
|
||||
"cardName": "Forest"
|
||||
},
|
||||
{
|
||||
"count":6,
|
||||
"count":9,
|
||||
"colors": ["red"],
|
||||
"rarity": ["Uncommon","Common"],
|
||||
"manaCosts": [1,2]
|
||||
},
|
||||
{
|
||||
"count":4,
|
||||
"count":6,
|
||||
"colors": ["green"],
|
||||
"rarity": ["Uncommon","Common"],
|
||||
"manaCosts": [1,2]
|
||||
},
|
||||
{
|
||||
"count":4,
|
||||
"count":6,
|
||||
"colors": ["red"],
|
||||
"rarity": ["Uncommon","Common"],
|
||||
"manaCosts": [3,4]
|
||||
},
|
||||
{
|
||||
"count":2,
|
||||
"count":3,
|
||||
"colors": ["green"],
|
||||
"rarity": ["Uncommon","Common"],
|
||||
"manaCosts": [3,4]
|
||||
},
|
||||
{
|
||||
"count":6,
|
||||
"count":9,
|
||||
"colors": ["red"],
|
||||
"rarity": ["rare"] ,
|
||||
"manaCosts": [5,6,7,8,9]
|
||||
|
||||
@@ -2,43 +2,43 @@
|
||||
"name":"Red",
|
||||
"mainDeck": [
|
||||
{
|
||||
"count":10,
|
||||
"count":15,
|
||||
"cardName": "Mountain"
|
||||
},
|
||||
{
|
||||
"count":4,
|
||||
"count":6,
|
||||
"cardName": "Forest"
|
||||
},
|
||||
{
|
||||
"count":4,
|
||||
"count":6,
|
||||
"cardName": "Swamp"
|
||||
},
|
||||
{
|
||||
"count":6,
|
||||
"count":9,
|
||||
"colors": ["red"],
|
||||
"rarity": ["Common"],
|
||||
"manaCosts": [1,2]
|
||||
},
|
||||
{
|
||||
"count":4,
|
||||
"count":6,
|
||||
"colors": ["green","black"],
|
||||
"rarity": ["Common"],
|
||||
"manaCosts": [1,2]
|
||||
},
|
||||
{
|
||||
"count":4,
|
||||
"count":6,
|
||||
"colors": ["red"],
|
||||
"rarity": ["Common"],
|
||||
"manaCosts": [3,4]
|
||||
},
|
||||
{
|
||||
"count":2,
|
||||
"count":3,
|
||||
"colors": ["green","black"],
|
||||
"rarity": ["Uncommon","Common"],
|
||||
"manaCosts": [3,4]
|
||||
},
|
||||
{
|
||||
"count":6,
|
||||
"count":9,
|
||||
"colors": ["red"],
|
||||
"rarity": ["Uncommon","Common"],
|
||||
"manaCosts": [5,6]
|
||||
|
||||
@@ -2,43 +2,43 @@
|
||||
"name":"Red",
|
||||
"mainDeck": [
|
||||
{
|
||||
"count":10,
|
||||
"count":15,
|
||||
"cardName": "Mountain"
|
||||
},
|
||||
{
|
||||
"count":4,
|
||||
"count":6,
|
||||
"cardName": "Forest"
|
||||
},
|
||||
{
|
||||
"count":4,
|
||||
"count":6,
|
||||
"cardName": "Swamp"
|
||||
},
|
||||
{
|
||||
"count":6,
|
||||
"count":9,
|
||||
"colors": ["red"],
|
||||
"rarity": ["Uncommon","Common"],
|
||||
"manaCosts": [1,2]
|
||||
},
|
||||
{
|
||||
"count":4,
|
||||
"count":6,
|
||||
"colors": ["green","black"],
|
||||
"rarity": ["Uncommon","Common"],
|
||||
"manaCosts": [1,2]
|
||||
},
|
||||
{
|
||||
"count":4,
|
||||
"count":6,
|
||||
"colors": ["red"],
|
||||
"rarity": ["Uncommon","Common"],
|
||||
"manaCosts": [3,4]
|
||||
},
|
||||
{
|
||||
"count":2,
|
||||
"count":3,
|
||||
"colors": ["green","black"],
|
||||
"rarity": ["Uncommon","Common"],
|
||||
"manaCosts": [3,4]
|
||||
},
|
||||
{
|
||||
"count":6,
|
||||
"count":9,
|
||||
"colors": ["red"],
|
||||
"rarity": ["rare"],
|
||||
"manaCosts": [5,6,7,8,9]
|
||||
|
||||
@@ -2,39 +2,39 @@
|
||||
"name":"White",
|
||||
"mainDeck": [
|
||||
{
|
||||
"count":12,
|
||||
"count":18,
|
||||
"cardName": "Plains"
|
||||
},
|
||||
{
|
||||
"count":6,
|
||||
"count":9,
|
||||
"cardName": "Forest"
|
||||
},
|
||||
{
|
||||
"count":6,
|
||||
"count":9,
|
||||
"colors": ["white"],
|
||||
"rarity": ["Uncommon","Common"],
|
||||
"manaCosts": [1,2]
|
||||
},
|
||||
{
|
||||
"count":4,
|
||||
"count":6,
|
||||
"colors": ["green"],
|
||||
"rarity": ["Uncommon","Common"],
|
||||
"manaCosts": [1,2]
|
||||
},
|
||||
{
|
||||
"count":4,
|
||||
"count":6,
|
||||
"colors": ["white"],
|
||||
"rarity": ["Uncommon","Common"],
|
||||
"manaCosts": [3,4]
|
||||
},
|
||||
{
|
||||
"count":2,
|
||||
"count":3,
|
||||
"colors": ["green"],
|
||||
"rarity": ["Uncommon","Common"],
|
||||
"manaCosts": [3,4]
|
||||
},
|
||||
{
|
||||
"count":6,
|
||||
"count":9,
|
||||
"colors": ["white"],
|
||||
"rarity": ["rare"],
|
||||
"manaCosts": [5,6,7,8,9]
|
||||
|
||||
@@ -2,43 +2,43 @@
|
||||
"name":"White",
|
||||
"mainDeck": [
|
||||
{
|
||||
"count":10,
|
||||
"count":15,
|
||||
"cardName": "Plains"
|
||||
},
|
||||
{
|
||||
"count":4,
|
||||
"count":6,
|
||||
"cardName": "Forest"
|
||||
},
|
||||
{
|
||||
"count":4,
|
||||
"count":6,
|
||||
"cardName": "Island"
|
||||
},
|
||||
{
|
||||
"count":6,
|
||||
"count":9,
|
||||
"colors": ["white"],
|
||||
"rarity": ["Common"],
|
||||
"manaCosts": [1,2]
|
||||
},
|
||||
{
|
||||
"count":4,
|
||||
"count":6,
|
||||
"colors": ["green","blue"],
|
||||
"rarity": ["Common"],
|
||||
"manaCosts": [1,2]
|
||||
},
|
||||
{
|
||||
"count":4,
|
||||
"count":6,
|
||||
"colors": ["white"],
|
||||
"rarity": ["Common"],
|
||||
"manaCosts": [3,4]
|
||||
},
|
||||
{
|
||||
"count":2,
|
||||
"count":3,
|
||||
"colors": ["green","blue"],
|
||||
"rarity": ["Uncommon","Common"],
|
||||
"manaCosts": [3,4]
|
||||
},
|
||||
{
|
||||
"count":6,
|
||||
"count":9,
|
||||
"colors": ["white"],
|
||||
"rarity": ["Uncommon","Common"],
|
||||
"manaCosts": [5,6]
|
||||
|
||||
@@ -2,43 +2,43 @@
|
||||
"name":"White",
|
||||
"mainDeck": [
|
||||
{
|
||||
"count":10,
|
||||
"count":15,
|
||||
"cardName": "Plains"
|
||||
},
|
||||
{
|
||||
"count":4,
|
||||
"count":6,
|
||||
"cardName": "Forest"
|
||||
},
|
||||
{
|
||||
"count":4,
|
||||
"count":6,
|
||||
"cardName": "Island"
|
||||
},
|
||||
{
|
||||
"count":6,
|
||||
"count":9,
|
||||
"colors": ["white"],
|
||||
"rarity": ["Uncommon","Common"],
|
||||
"manaCosts": [1,2]
|
||||
},
|
||||
{
|
||||
"count":4,
|
||||
"count":6,
|
||||
"colors": ["green","blue"],
|
||||
"rarity": ["Uncommon","Common"],
|
||||
"manaCosts": [1,2]
|
||||
},
|
||||
{
|
||||
"count":4,
|
||||
"count":6,
|
||||
"colors": ["white"],
|
||||
"rarity": ["Uncommon","Common"],
|
||||
"manaCosts": [3,4]
|
||||
},
|
||||
{
|
||||
"count":2,
|
||||
"count":3,
|
||||
"colors": ["green","blue"],
|
||||
"rarity": ["Uncommon","Common"],
|
||||
"manaCosts": [3,4]
|
||||
},
|
||||
{
|
||||
"count":6,
|
||||
"count":9,
|
||||
"colors": ["white"],
|
||||
"rarity": ["rare"],
|
||||
"manaCosts": [5,6,7,8,9]
|
||||
|
||||
@@ -3,27 +3,27 @@
|
||||
"height": 4300,
|
||||
"width": 2
|
||||
},
|
||||
"activeFile": "map/main_story/spawn.tmx",
|
||||
"activeFile": "tileset/buildings.tsx",
|
||||
"automapping.whileDrawing": false,
|
||||
"expandedProjectPaths": [
|
||||
"tileset",
|
||||
"map",
|
||||
"obj",
|
||||
"map/main_story"
|
||||
"map/main_story",
|
||||
"map"
|
||||
],
|
||||
"file.lastUsedOpenFilter": "All Files (*)",
|
||||
"fileStates": {
|
||||
"map/aerie_1.tmx": {
|
||||
"scale": 2,
|
||||
"selectedLayer": 5,
|
||||
"scale": 3,
|
||||
"selectedLayer": -1,
|
||||
"viewCenter": {
|
||||
"x": 239.75,
|
||||
"y": 136
|
||||
"x": 232.16666666666666,
|
||||
"y": 167
|
||||
}
|
||||
},
|
||||
"map/aerie_1B.tmx": {
|
||||
"scale": 2,
|
||||
"selectedLayer": 5,
|
||||
"selectedLayer": -1,
|
||||
"viewCenter": {
|
||||
"x": 239.75,
|
||||
"y": 136
|
||||
@@ -34,9 +34,9 @@
|
||||
4
|
||||
],
|
||||
"scale": 2,
|
||||
"selectedLayer": 5,
|
||||
"selectedLayer": -1,
|
||||
"viewCenter": {
|
||||
"x": 399.75,
|
||||
"x": 399.25,
|
||||
"y": 320
|
||||
}
|
||||
},
|
||||
@@ -52,8 +52,8 @@
|
||||
"scale": 1.5,
|
||||
"selectedLayer": 4,
|
||||
"viewCenter": {
|
||||
"x": 217.66666666666666,
|
||||
"y": 180.33333333333331
|
||||
"x": 217.99999999999997,
|
||||
"y": 180.66666666666669
|
||||
}
|
||||
},
|
||||
"map/barbariancamp_3.tmx": {
|
||||
@@ -65,11 +65,11 @@
|
||||
}
|
||||
},
|
||||
"map/barbariancamp_4.tmx": {
|
||||
"scale": 1.5,
|
||||
"selectedLayer": 5,
|
||||
"scale": 2,
|
||||
"selectedLayer": 0,
|
||||
"viewCenter": {
|
||||
"x": 337,
|
||||
"y": 352.3333333333333
|
||||
"x": 236.25,
|
||||
"y": 363.5
|
||||
}
|
||||
},
|
||||
"map/castle_plains.tmx": {
|
||||
@@ -81,19 +81,19 @@
|
||||
}
|
||||
},
|
||||
"map/castle_plains_1.tmx": {
|
||||
"scale": 1.5,
|
||||
"scale": 3,
|
||||
"selectedLayer": 0,
|
||||
"viewCenter": {
|
||||
"x": 254.99999999999997,
|
||||
"y": 167
|
||||
"x": 209.83333333333331,
|
||||
"y": 207
|
||||
}
|
||||
},
|
||||
"map/castle_plains_2.tmx": {
|
||||
"scale": 1.5,
|
||||
"selectedLayer": 0,
|
||||
"viewCenter": {
|
||||
"x": 240.33333333333331,
|
||||
"y": 137
|
||||
"x": 241,
|
||||
"y": 137.33333333333334
|
||||
}
|
||||
},
|
||||
"map/castle_plains_3.tmx": {
|
||||
@@ -101,31 +101,31 @@
|
||||
"selectedLayer": 4,
|
||||
"viewCenter": {
|
||||
"x": 239.75,
|
||||
"y": 136.75
|
||||
"y": 137
|
||||
}
|
||||
},
|
||||
"map/catlair_1.tmx": {
|
||||
"scale": 2,
|
||||
"selectedLayer": 1,
|
||||
"scale": 4,
|
||||
"selectedLayer": 0,
|
||||
"viewCenter": {
|
||||
"x": 173.25,
|
||||
"y": 132.25
|
||||
"x": 198.375,
|
||||
"y": 183.25
|
||||
}
|
||||
},
|
||||
"map/catlair_2.tmx": {
|
||||
"scale": 1.5,
|
||||
"selectedLayer": 3,
|
||||
"viewCenter": {
|
||||
"x": 287.66666666666663,
|
||||
"y": 117.66666666666666
|
||||
}
|
||||
},
|
||||
"map/catlair_3.tmx": {
|
||||
"scale": 2,
|
||||
"selectedLayer": 0,
|
||||
"viewCenter": {
|
||||
"x": 209.25,
|
||||
"y": 134.75
|
||||
"x": 157.25,
|
||||
"y": 117
|
||||
}
|
||||
},
|
||||
"map/catlair_3.tmx": {
|
||||
"scale": 1.5,
|
||||
"selectedLayer": 3,
|
||||
"viewCenter": {
|
||||
"x": 225,
|
||||
"y": 201.33333333333334
|
||||
}
|
||||
},
|
||||
"map/cave6.tmx": {
|
||||
@@ -144,20 +144,31 @@
|
||||
"y": 241.625
|
||||
}
|
||||
},
|
||||
"map/cave_1.tmx": {
|
||||
"scale": 1.5,
|
||||
"selectedLayer": 4,
|
||||
"map/cave_1..tmx": {
|
||||
"scale": 1.5694791666666665,
|
||||
"selectedLayer": 0,
|
||||
"viewCenter": {
|
||||
"x": 259.66666666666663,
|
||||
"y": 330.6666666666667
|
||||
"x": 240.52565208734322,
|
||||
"y": 240.20707506471095
|
||||
}
|
||||
},
|
||||
"map/cave_1.tmx": {
|
||||
"expandedObjectLayers": [
|
||||
4
|
||||
],
|
||||
"scale": 4,
|
||||
"selectedLayer": 2,
|
||||
"viewCenter": {
|
||||
"x": 222.125,
|
||||
"y": 370.75
|
||||
}
|
||||
},
|
||||
"map/cave_10.tmx": {
|
||||
"scale": 1,
|
||||
"scale": 2,
|
||||
"selectedLayer": 1,
|
||||
"viewCenter": {
|
||||
"x": 232.5,
|
||||
"y": 137
|
||||
"x": 276.25,
|
||||
"y": 184.5
|
||||
}
|
||||
},
|
||||
"map/cave_11.tmx": {
|
||||
@@ -172,7 +183,7 @@
|
||||
"scale": 1,
|
||||
"selectedLayer": 0,
|
||||
"viewCenter": {
|
||||
"x": 232.5,
|
||||
"x": 233,
|
||||
"y": 136
|
||||
}
|
||||
},
|
||||
@@ -180,7 +191,7 @@
|
||||
"scale": 1.5,
|
||||
"selectedLayer": 4,
|
||||
"viewCenter": {
|
||||
"x": 223.66666666666666,
|
||||
"x": 223.99999999999997,
|
||||
"y": 135.33333333333334
|
||||
}
|
||||
},
|
||||
@@ -196,7 +207,7 @@
|
||||
"scale": 3,
|
||||
"selectedLayer": 3,
|
||||
"viewCenter": {
|
||||
"x": 227.5,
|
||||
"x": 227.33333333333331,
|
||||
"y": 135.66666666666663
|
||||
}
|
||||
},
|
||||
@@ -332,7 +343,7 @@
|
||||
"scale": 1.0548958333333331,
|
||||
"selectedLayer": 0,
|
||||
"viewCenter": {
|
||||
"x": 240.78206773970578,
|
||||
"x": 239.83410684309274,
|
||||
"y": 136.50636911227411
|
||||
}
|
||||
},
|
||||
@@ -380,7 +391,7 @@
|
||||
"scale": 1.5,
|
||||
"selectedLayer": 5,
|
||||
"viewCenter": {
|
||||
"x": 480,
|
||||
"x": 479.99999999999994,
|
||||
"y": 320
|
||||
}
|
||||
},
|
||||
@@ -391,8 +402,8 @@
|
||||
"scale": 2,
|
||||
"selectedLayer": 4,
|
||||
"viewCenter": {
|
||||
"x": 231.75,
|
||||
"y": 136.5
|
||||
"x": 240.25,
|
||||
"y": 136
|
||||
}
|
||||
},
|
||||
"map/cave_20.tmx": {
|
||||
@@ -1319,15 +1330,15 @@
|
||||
"scale": 2,
|
||||
"selectedLayer": 0,
|
||||
"viewCenter": {
|
||||
"x": 225.25,
|
||||
"y": 135.75
|
||||
"x": 240.25,
|
||||
"y": 136
|
||||
}
|
||||
},
|
||||
"map/cave_4.tmx": {
|
||||
"scale": 1,
|
||||
"selectedLayer": 2,
|
||||
"viewCenter": {
|
||||
"x": 219.5,
|
||||
"x": 220,
|
||||
"y": 135
|
||||
}
|
||||
},
|
||||
@@ -1367,7 +1378,7 @@
|
||||
"scale": 1,
|
||||
"selectedLayer": 0,
|
||||
"viewCenter": {
|
||||
"x": 219.5,
|
||||
"x": 220,
|
||||
"y": 135
|
||||
}
|
||||
},
|
||||
@@ -1375,7 +1386,7 @@
|
||||
"scale": 3,
|
||||
"selectedLayer": 0,
|
||||
"viewCenter": {
|
||||
"x": 227.5,
|
||||
"x": 227.33333333333331,
|
||||
"y": 135.66666666666663
|
||||
}
|
||||
},
|
||||
@@ -1383,7 +1394,7 @@
|
||||
"scale": 1.5,
|
||||
"selectedLayer": 0,
|
||||
"viewCenter": {
|
||||
"x": 223.66666666666666,
|
||||
"x": 223.99999999999997,
|
||||
"y": 135.33333333333334
|
||||
}
|
||||
},
|
||||
@@ -1391,15 +1402,15 @@
|
||||
"scale": 1.5,
|
||||
"selectedLayer": 4,
|
||||
"viewCenter": {
|
||||
"x": 242.99999999999997,
|
||||
"y": 150.66666666666669
|
||||
"x": 243.33333333333337,
|
||||
"y": 151.33333333333334
|
||||
}
|
||||
},
|
||||
"map/crypt_2.tmx": {
|
||||
"scale": 2,
|
||||
"selectedLayer": 3,
|
||||
"viewCenter": {
|
||||
"x": 233.25,
|
||||
"x": 233.5,
|
||||
"y": 135.5
|
||||
}
|
||||
},
|
||||
@@ -1407,7 +1418,7 @@
|
||||
"scale": 2,
|
||||
"selectedLayer": 0,
|
||||
"viewCenter": {
|
||||
"x": 233.25,
|
||||
"x": 233.5,
|
||||
"y": 135.5
|
||||
}
|
||||
},
|
||||
@@ -1415,7 +1426,7 @@
|
||||
"scale": 2,
|
||||
"selectedLayer": 3,
|
||||
"viewCenter": {
|
||||
"x": 233.25,
|
||||
"x": 233.5,
|
||||
"y": 135.5
|
||||
}
|
||||
},
|
||||
@@ -1423,7 +1434,7 @@
|
||||
"scale": 1.5,
|
||||
"selectedLayer": 3,
|
||||
"viewCenter": {
|
||||
"x": 311,
|
||||
"x": 311.33333333333337,
|
||||
"y": 318.6666666666667
|
||||
}
|
||||
},
|
||||
@@ -1431,15 +1442,15 @@
|
||||
"scale": 3,
|
||||
"selectedLayer": 4,
|
||||
"viewCenter": {
|
||||
"x": 221.66666666666663,
|
||||
"y": 302.83333333333337
|
||||
"x": 221.33333333333331,
|
||||
"y": 302.66666666666663
|
||||
}
|
||||
},
|
||||
"map/djinnpalace_1.tmx": {
|
||||
"scale": 1.5,
|
||||
"selectedLayer": 5,
|
||||
"viewCenter": {
|
||||
"x": 186.33333333333331,
|
||||
"x": 186.66666666666663,
|
||||
"y": 90.66666666666669
|
||||
}
|
||||
},
|
||||
@@ -1479,7 +1490,7 @@
|
||||
"scale": 1.5,
|
||||
"selectedLayer": 0,
|
||||
"viewCenter": {
|
||||
"x": 231.66666666666666,
|
||||
"x": 231.99999999999997,
|
||||
"y": 135.33333333333334
|
||||
}
|
||||
},
|
||||
@@ -1487,7 +1498,7 @@
|
||||
"scale": 2,
|
||||
"selectedLayer": 3,
|
||||
"viewCenter": {
|
||||
"x": 233.25,
|
||||
"x": 233.5,
|
||||
"y": 135.5
|
||||
}
|
||||
},
|
||||
@@ -1495,7 +1506,7 @@
|
||||
"scale": 2,
|
||||
"selectedLayer": 2,
|
||||
"viewCenter": {
|
||||
"x": 233.25,
|
||||
"x": 233.5,
|
||||
"y": 135.5
|
||||
}
|
||||
},
|
||||
@@ -1511,15 +1522,15 @@
|
||||
"scale": 1.5,
|
||||
"selectedLayer": 4,
|
||||
"viewCenter": {
|
||||
"x": 391,
|
||||
"y": 399.33333333333326
|
||||
"x": 390.66666666666663,
|
||||
"y": 398.66666666666663
|
||||
}
|
||||
},
|
||||
"map/factory_1.tmx": {
|
||||
"scale": 1.5,
|
||||
"selectedLayer": 0,
|
||||
"viewCenter": {
|
||||
"x": 244.99999999999997,
|
||||
"x": 245.33333333333337,
|
||||
"y": 139.33333333333334
|
||||
}
|
||||
},
|
||||
@@ -1527,7 +1538,7 @@
|
||||
"scale": 2,
|
||||
"selectedLayer": 0,
|
||||
"viewCenter": {
|
||||
"x": 233.25,
|
||||
"x": 233.5,
|
||||
"y": 135.5
|
||||
}
|
||||
},
|
||||
@@ -1535,7 +1546,7 @@
|
||||
"scale": 4,
|
||||
"selectedLayer": 6,
|
||||
"viewCenter": {
|
||||
"x": 236.625,
|
||||
"x": 236.5,
|
||||
"y": 135.75
|
||||
}
|
||||
},
|
||||
@@ -1543,7 +1554,7 @@
|
||||
"scale": 0.5,
|
||||
"selectedLayer": 0,
|
||||
"viewCenter": {
|
||||
"x": 455,
|
||||
"x": 456,
|
||||
"y": 318
|
||||
}
|
||||
},
|
||||
@@ -1554,16 +1565,16 @@
|
||||
"scale": 3,
|
||||
"selectedLayer": 4,
|
||||
"viewCenter": {
|
||||
"x": 230.5,
|
||||
"y": 155.83333333333331
|
||||
"x": 230.33333333333331,
|
||||
"y": 155.66666666666663
|
||||
}
|
||||
},
|
||||
"map/fort_1.tmx": {
|
||||
"scale": 1.5,
|
||||
"selectedLayer": 3,
|
||||
"viewCenter": {
|
||||
"x": 289.66666666666663,
|
||||
"y": 92.33333333333331
|
||||
"x": 289.99999999999994,
|
||||
"y": 92.66666666666669
|
||||
}
|
||||
},
|
||||
"map/fort_10.tmx": {
|
||||
@@ -1744,8 +1755,8 @@
|
||||
"scale": 1.5,
|
||||
"selectedLayer": 3,
|
||||
"viewCenter": {
|
||||
"x": 255.66666666666666,
|
||||
"y": 103.66666666666666
|
||||
"x": 255.99999999999997,
|
||||
"y": 104
|
||||
}
|
||||
},
|
||||
"map/grove_10.tmx": {
|
||||
@@ -1920,8 +1931,8 @@
|
||||
"scale": 1.5,
|
||||
"selectedLayer": 0,
|
||||
"viewCenter": {
|
||||
"x": 240,
|
||||
"y": 135.99999999999994
|
||||
"x": 239.99999999999997,
|
||||
"y": 136
|
||||
}
|
||||
},
|
||||
"map/grove_9.tmx": {
|
||||
@@ -1942,16 +1953,24 @@
|
||||
"scale": 2,
|
||||
"selectedLayer": 4,
|
||||
"viewCenter": {
|
||||
"x": 255.25,
|
||||
"y": 122.25
|
||||
"x": 255,
|
||||
"y": 122.5
|
||||
}
|
||||
},
|
||||
"map/kavulair.tmx": {
|
||||
"scale": 1.9712500000000002,
|
||||
"selectedLayer": 0,
|
||||
"viewCenter": {
|
||||
"x": 240.45656309448316,
|
||||
"y": 136.46163601775524
|
||||
}
|
||||
},
|
||||
"map/magetower_1.tmx": {
|
||||
"scale": 1.5,
|
||||
"scale": 4,
|
||||
"selectedLayer": 2,
|
||||
"viewCenter": {
|
||||
"x": 240.33333333333331,
|
||||
"y": 136
|
||||
"x": 218.75,
|
||||
"y": 153.5
|
||||
}
|
||||
},
|
||||
"map/magetower_10.tmx": {
|
||||
@@ -1991,7 +2010,7 @@
|
||||
"scale": 2,
|
||||
"selectedLayer": 5,
|
||||
"viewCenter": {
|
||||
"x": 240.25,
|
||||
"x": 240.5,
|
||||
"y": 369.5
|
||||
}
|
||||
},
|
||||
@@ -1999,7 +2018,7 @@
|
||||
"scale": 2,
|
||||
"selectedLayer": 4,
|
||||
"viewCenter": {
|
||||
"x": 239.75,
|
||||
"x": 240,
|
||||
"y": 136
|
||||
}
|
||||
},
|
||||
@@ -2092,11 +2111,11 @@
|
||||
}
|
||||
},
|
||||
"map/main_story/black_castle.tmx": {
|
||||
"scale": 2,
|
||||
"scale": 4,
|
||||
"selectedLayer": 4,
|
||||
"viewCenter": {
|
||||
"x": 235.5,
|
||||
"y": 208.75
|
||||
"x": 220.375,
|
||||
"y": 487
|
||||
}
|
||||
},
|
||||
"map/main_story/blue_castle.tmx": {
|
||||
@@ -2109,10 +2128,10 @@
|
||||
},
|
||||
"map/main_story/colorless_castle.tmx": {
|
||||
"scale": 2,
|
||||
"selectedLayer": 1,
|
||||
"selectedLayer": 5,
|
||||
"viewCenter": {
|
||||
"x": 243,
|
||||
"y": 339.25
|
||||
"x": 242.75,
|
||||
"y": 339
|
||||
}
|
||||
},
|
||||
"map/main_story/crypt.tmx": {
|
||||
@@ -2124,11 +2143,11 @@
|
||||
}
|
||||
},
|
||||
"map/main_story/final_castle.tmx": {
|
||||
"scale": 1.5,
|
||||
"scale": 4,
|
||||
"selectedLayer": 4,
|
||||
"viewCenter": {
|
||||
"x": 240,
|
||||
"y": 912
|
||||
"x": 212.125,
|
||||
"y": 1718.25
|
||||
}
|
||||
},
|
||||
"map/main_story/forest_capital.tmx": {
|
||||
@@ -2195,7 +2214,7 @@
|
||||
"scale": 1.5,
|
||||
"selectedLayer": 4,
|
||||
"viewCenter": {
|
||||
"x": 240,
|
||||
"x": 240.33333333333334,
|
||||
"y": 240
|
||||
}
|
||||
},
|
||||
@@ -2203,11 +2222,11 @@
|
||||
"expandedObjectLayers": [
|
||||
4
|
||||
],
|
||||
"scale": 4,
|
||||
"scale": 3,
|
||||
"selectedLayer": 4,
|
||||
"viewCenter": {
|
||||
"x": 240,
|
||||
"y": 240
|
||||
"x": 231.83333333333331,
|
||||
"y": 243.66666666666666
|
||||
}
|
||||
},
|
||||
"map/main_story/swamp_capital.tmx": {
|
||||
@@ -2281,7 +2300,7 @@
|
||||
"scale": 1.5,
|
||||
"selectedLayer": 3,
|
||||
"viewCenter": {
|
||||
"x": 240,
|
||||
"x": 239.99999999999997,
|
||||
"y": 136
|
||||
}
|
||||
},
|
||||
@@ -2388,16 +2407,16 @@
|
||||
"scale": 3,
|
||||
"selectedLayer": 4,
|
||||
"viewCenter": {
|
||||
"x": 235.5,
|
||||
"y": 135.83333333333331
|
||||
"x": 235.33333333333331,
|
||||
"y": 136
|
||||
}
|
||||
},
|
||||
"map/nest_blue_1.tmx": {
|
||||
"scale": 0.75,
|
||||
"selectedLayer": 4,
|
||||
"viewCenter": {
|
||||
"x": 391.3333333333333,
|
||||
"y": 350
|
||||
"x": 391.99999999999994,
|
||||
"y": 350.6666666666667
|
||||
}
|
||||
},
|
||||
"map/nest_white_1.tmx": {
|
||||
@@ -2415,7 +2434,7 @@
|
||||
"scale": 1.5,
|
||||
"selectedLayer": 1,
|
||||
"viewCenter": {
|
||||
"x": 240.33333333333331,
|
||||
"x": 240.66666666666663,
|
||||
"y": 239.3333333333333
|
||||
}
|
||||
},
|
||||
@@ -2671,16 +2690,16 @@
|
||||
"scale": 1.5,
|
||||
"selectedLayer": 4,
|
||||
"viewCenter": {
|
||||
"x": 240,
|
||||
"y": 136.66666666666663
|
||||
"x": 239.99999999999997,
|
||||
"y": 136.66666666666669
|
||||
}
|
||||
},
|
||||
"map/snowabbey_1.tmx": {
|
||||
"scale": 1.6011458333333333,
|
||||
"selectedLayer": 0,
|
||||
"viewCenter": {
|
||||
"x": 240.14052436406223,
|
||||
"y": 136.15249495803786
|
||||
"x": 240.4528007286449,
|
||||
"y": 136.15249495803783
|
||||
}
|
||||
},
|
||||
"map/snowabbey_2.tmx": {
|
||||
@@ -2706,8 +2725,8 @@
|
||||
"scale": 2,
|
||||
"selectedLayer": 4,
|
||||
"viewCenter": {
|
||||
"x": 239.75,
|
||||
"y": 136.25
|
||||
"x": 240,
|
||||
"y": 136.5
|
||||
}
|
||||
},
|
||||
"map/swamp_town_2.tmx": {
|
||||
@@ -2744,7 +2763,7 @@
|
||||
"scale": 1.5002083333333331,
|
||||
"selectedLayer": 4,
|
||||
"viewCenter": {
|
||||
"x": 239.96667129565338,
|
||||
"x": 239.9666712956534,
|
||||
"y": 136.64768782113595
|
||||
}
|
||||
},
|
||||
@@ -2784,7 +2803,7 @@
|
||||
"scale": 3,
|
||||
"selectedLayer": 2,
|
||||
"viewCenter": {
|
||||
"x": 239.99999999999997,
|
||||
"x": 239.66666666666669,
|
||||
"y": 240
|
||||
}
|
||||
},
|
||||
@@ -2808,7 +2827,7 @@
|
||||
"scale": 1.5,
|
||||
"selectedLayer": 0,
|
||||
"viewCenter": {
|
||||
"x": 240,
|
||||
"x": 239.99999999999997,
|
||||
"y": 136
|
||||
}
|
||||
},
|
||||
@@ -2816,7 +2835,7 @@
|
||||
"scale": 1.5,
|
||||
"selectedLayer": 5,
|
||||
"viewCenter": {
|
||||
"x": 240,
|
||||
"x": 239.99999999999997,
|
||||
"y": 136
|
||||
}
|
||||
},
|
||||
@@ -2830,7 +2849,7 @@
|
||||
},
|
||||
"tileset/buildings.tsx": {
|
||||
"scaleInDock": 3,
|
||||
"scaleInEditor": 2
|
||||
"scaleInEditor": 1.5
|
||||
},
|
||||
"tileset/main.tsx": {
|
||||
"dynamicWrapping": false,
|
||||
@@ -2838,46 +2857,37 @@
|
||||
"scaleInEditor": 2
|
||||
}
|
||||
},
|
||||
"last.exportedFilePath": "G:/Develop/Forge/forge/forge-gui/res/adventure/Shandalar/maps/map",
|
||||
"map.height": 60,
|
||||
"map.lastUsedExportFilter": "Alle Dateien (*)",
|
||||
"map.lastUsedFormat": "tmx",
|
||||
"map.layerDataFormat": null,
|
||||
"map.tileHeight": 16,
|
||||
"map.tileWidth": 16,
|
||||
"map.width": 90,
|
||||
"openFiles": [
|
||||
"map/main_story/green_castle.tmx",
|
||||
"map/main_story/red_castle.tmx",
|
||||
"map/main_story/plains_capital.tmx",
|
||||
"map/main_story/forest_capital.tmx",
|
||||
"map/main_story/mountain_capital.tmx",
|
||||
"map/main_story/island_capital.tmx",
|
||||
"map/main_story/spawn.tmx",
|
||||
"map/main_story/final_castle.tmx",
|
||||
"map/main_story/white_castle.tmx",
|
||||
"map/cave_1.tmx",
|
||||
"tileset/main.tsx",
|
||||
"tileset/buildings.tsx",
|
||||
"map/zombietown.tmx",
|
||||
"map/yule_town.tmx",
|
||||
"map/wurmpond_1.tmx",
|
||||
"map/waste_town.tmx",
|
||||
"map/main_story/swamp_capital.tmx",
|
||||
"map/main_story/skep.tmx"
|
||||
"map/cave_17.tmx",
|
||||
"map/cave_2.tmx",
|
||||
"map/cave_3.tmx",
|
||||
"tileset/buildings.tsx"
|
||||
],
|
||||
"project": "main.tiled-project",
|
||||
"property.type": "int",
|
||||
"recentFiles": [
|
||||
"map/main_story/green_castle.tmx",
|
||||
"map/main_story/red_castle.tmx",
|
||||
"map/main_story/plains_capital.tmx",
|
||||
"map/main_story/forest_capital.tmx",
|
||||
"map/main_story/mountain_capital.tmx",
|
||||
"map/main_story/island_capital.tmx",
|
||||
"map/cave_1.tmx",
|
||||
"map/cave_1..tmx",
|
||||
"map/catlair_1.tmx",
|
||||
"map/catlair_2.tmx",
|
||||
"map/catlair_3.tmx",
|
||||
"map/main_story/black_castle.tmx",
|
||||
"map/aerie_1.tmx",
|
||||
"map/aerie_1B.tmx",
|
||||
"map/aerie_1C.tmx",
|
||||
"map/main_story/skep.tmx",
|
||||
"map/main_story/swamp_capital.tmx",
|
||||
"map/waste_town.tmx",
|
||||
"map/wurmpond_1.tmx",
|
||||
"map/yule_town.tmx",
|
||||
"map/zombietown.tmx"
|
||||
"map/main_story/spawn.tmx",
|
||||
"map/barbariancamp_4.tmx"
|
||||
],
|
||||
"resizeMap.removeObjects": true,
|
||||
"textEdit.monospace": true
|
||||
|
||||
@@ -1,15 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<map version="1.5" tiledversion="1.7.2" orientation="orthogonal" renderorder="right-down" width="30" height="17" tilewidth="16" tileheight="16" infinite="0" nextlayerid="8" nextobjectid="89">
|
||||
<map version="1.9" tiledversion="1.9.2" orientation="orthogonal" renderorder="right-down" width="30" height="17" tilewidth="16" tileheight="16" infinite="0" nextlayerid="8" nextobjectid="89">
|
||||
<editorsettings>
|
||||
<export target="wastetown..tmx" format="tmx"/>
|
||||
</editorsettings>
|
||||
<tileset firstgid="1" source="../tileset/main.tsx"/>
|
||||
<tileset firstgid="3477" source="../tileset/buildings.tsx"/>
|
||||
<layer id="6" name="Collision" width="30" height="17">
|
||||
<data encoding="base64" compression="zlib">
|
||||
eJxjYCAMZHgIY2oDYs2kpt3IZtXzYleDLE4Nu8k1gxK7KXU3Ofpx6SEmnCmxG6R+Fx6MDJDF9/JgmkOqvSCAyx/YAEitNJXsJRUMZXvR4xJbPEfx4k8HtPAvLD6R0wB6eqBmXqKH/oEor4gxAz0dUctOQmZRmn6JtRtbPUtJ/QsA90Mgnw==
|
||||
</data>
|
||||
</layer>
|
||||
<tileset firstgid="10113" source="../tileset/buildings.tsx"/>
|
||||
<layer id="1" name="Background" width="30" height="17">
|
||||
<data encoding="base64" compression="zlib">
|
||||
eJxr4mZgaBrFo3gUj+JRPIpH8YjAAJnxGPY=
|
||||
|
||||
@@ -1,15 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<map version="1.5" tiledversion="1.7.2" orientation="orthogonal" renderorder="right-down" width="30" height="17" tilewidth="16" tileheight="16" infinite="0" nextlayerid="8" nextobjectid="90">
|
||||
<map version="1.9" tiledversion="1.9.2" orientation="orthogonal" renderorder="right-down" width="30" height="17" tilewidth="16" tileheight="16" infinite="0" nextlayerid="8" nextobjectid="90">
|
||||
<editorsettings>
|
||||
<export target="wastetown..tmx" format="tmx"/>
|
||||
</editorsettings>
|
||||
<tileset firstgid="1" source="../tileset/main.tsx"/>
|
||||
<tileset firstgid="3477" source="../tileset/buildings.tsx"/>
|
||||
<layer id="6" name="Collision" width="30" height="17">
|
||||
<data encoding="base64" compression="zlib">
|
||||
eJy9lYENgCAMBBkAN7CL6TDsBcsJicTmI1Jo8ZNGUPgTKOBcX7vvh7Wknpbs6kX5Gbb3Nvy9BZt70ICfhs37ljJBvbe2M2xkzmq0b22vXSstt+QNn+cz16N/gqt+O7Y5boQgYY5hHoxyi8L97zje1dyWcJ55pIVc6V7W7iVkJYGf1f7767xCj6+8sj6fW16tsa+6C63v3wuqfx2I
|
||||
</data>
|
||||
</layer>
|
||||
<tileset firstgid="10113" source="../tileset/buildings.tsx"/>
|
||||
<layer id="1" name="Background" width="30" height="17">
|
||||
<data encoding="base64" compression="zlib">
|
||||
eJxr4mZgaBrFo3gUj+JRPIpH8YjAAJnxGPY=
|
||||
@@ -22,7 +17,7 @@
|
||||
</layer>
|
||||
<layer id="7" name="Ornamental Walls" width="30" height="17">
|
||||
<data encoding="base64" compression="zlib">
|
||||
eJxjYBi8wIKJgeEyHmzJRBs7rxAw9xKV7SbGTmrbDbPzDwl6KLUbZmcYO+l6KbU7hnytZAMzpPBFD2czPH6BpW8TMv2Lnk+IBTA3kWsvTL+9IHn6KLWXVDkYINfea0B9MxjJs3caUN91CtIzPrtpZSc5dlPLTlx2YwtnatuJbPd0Rgg2Q2LDMC3spBUAAGSiK40=
|
||||
eJxjYBi8wIKJgeEyHmzJRBs7rxAw9xKV7SbGTmrbDbPzDwl6KLUbZmcYO+l6KbU7hnytZAMzpPBFD2czPH6BpW8TMv2Lnk+IBTA3kWsvTL+2Nnn6KLWXVDkYINfea0B9MxjJs3caUN91CtIzPrtpZSc5dlPLTlx2YwtnatuJbPd0Rgg2Q2LDMC3spBUAAHpgK5M=
|
||||
</data>
|
||||
</layer>
|
||||
<layer id="3" name="Clutter" width="30" height="17">
|
||||
@@ -30,7 +25,7 @@
|
||||
<property name="spriteLayer" type="bool" value="true"/>
|
||||
</properties>
|
||||
<data encoding="base64" compression="zlib">
|
||||
eJxjYBgF6MCMiYGhDYccLnFq2TsQANneN4KYeKQDEyrFC674vcxEnDpy7UHnqzDi1quKR44Y0IZED1R6phe4RqH/rtM4XdEaDEZ7aVk+g8B0RlQaXXyoAAAl7g7H
|
||||
eJxjYBgF6MCMiYGhDYccLnFq2TsQANneG9qYeKQDEyrFC674vcxEnDpy7UHnqzDi1quKR44Y0IZED1R6phe4RqH/rtM4XdEaDEZ7aVk+g8B0RlQaXXyoAADVrA7l
|
||||
</data>
|
||||
</layer>
|
||||
<objectgroup id="4" name="Objects">
|
||||
|
||||
@@ -1,15 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<map version="1.5" tiledversion="1.7.2" orientation="orthogonal" renderorder="right-down" width="50" height="40" tilewidth="16" tileheight="16" infinite="0" nextlayerid="9" nextobjectid="96">
|
||||
<map version="1.9" tiledversion="1.9.2" orientation="orthogonal" renderorder="right-down" width="50" height="40" tilewidth="16" tileheight="16" infinite="0" nextlayerid="9" nextobjectid="96">
|
||||
<editorsettings>
|
||||
<export target="wastetown..tmx" format="tmx"/>
|
||||
</editorsettings>
|
||||
<tileset firstgid="1" source="../tileset/main.tsx"/>
|
||||
<tileset firstgid="3477" source="../tileset/buildings.tsx"/>
|
||||
<layer id="6" name="Collision" width="50" height="40">
|
||||
<data encoding="base64" compression="zlib">
|
||||
eJzt08ENgCAQBEC+RujAeiwL+qI6HrSgOcSZZP+7yV1KAACs7srRDZ7RN9hRz5mvu48ZiOKX+BP3zltaiW4AAAD7GX1uBos=
|
||||
</data>
|
||||
</layer>
|
||||
<tileset firstgid="10113" source="../tileset/buildings.tsx"/>
|
||||
<layer id="1" name="Background" width="50" height="40">
|
||||
<data encoding="base64" compression="zlib">
|
||||
eJztz7ENgDAQBEGniK4JXDclIOOX7hETTL47jzEmAACtXeezdGPFQ/eXlYeuL28eur3sPHR68eHDh4+vfOy+pNsrXtLNFS/p1oqXdCMAAP9wA7bZW78=
|
||||
@@ -30,7 +25,7 @@
|
||||
<property name="spriteLayer" type="bool" value="true"/>
|
||||
</properties>
|
||||
<data encoding="base64" compression="zlib">
|
||||
eJzt08ENgCAQBMCjA5qgNOxDK5cCICHxYU5nnve6TXYjAACAXb1GHPXtL547R4brAznIK9uWWpnfbYkd2fq+ou8AAMAf3IFIBlE=
|
||||
eJzt07ENgDAMBEAzDE22CXuQ/UsYIEiRUkQmd6Urv/QfAQAAjKol4iqrv5h3vxnaD3KQV7YtnUf/bkuMyNb3L/oOAADs4AEe6waZ
|
||||
</data>
|
||||
</layer>
|
||||
<objectgroup id="4" name="Objects">
|
||||
|
||||
@@ -1,15 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<map version="1.5" tiledversion="1.7.2" orientation="orthogonal" renderorder="right-down" width="40" height="40" tilewidth="16" tileheight="16" infinite="0" nextlayerid="8" nextobjectid="68">
|
||||
<map version="1.9" tiledversion="1.9.2" orientation="orthogonal" renderorder="right-down" width="40" height="40" tilewidth="16" tileheight="16" infinite="0" nextlayerid="8" nextobjectid="68">
|
||||
<editorsettings>
|
||||
<export target="wastetown..tmx" format="tmx"/>
|
||||
</editorsettings>
|
||||
<tileset firstgid="1" source="../tileset/main.tsx"/>
|
||||
<tileset firstgid="3477" source="../tileset/buildings.tsx"/>
|
||||
<layer id="6" name="Collision" width="40" height="40">
|
||||
<data encoding="base64" compression="zlib">
|
||||
eJzdmGEKwzAIhft30J6g3XV6iF1m99rpxmClEjT6jDWhD4TRuflpNMm2P6Zpv5GVsvp95tNey3U8klB/LyOi94L5c/KwcXFbWLTc1zm+dh4+KU5vPo2xlS+KvRZPm5dDET1Pecrv9NbQK08+mXwecXGz+Wp1RXuwh5AaHoqcDSsflcaXzZbNZ60/F7fn2SFxjMwnPafvoXzb/365kbsmfU2f/Qzh0/KxfOY5n5yUmctD4itjanE9fBatiq+lz9Ae1Pjo/Gp8FlZP/5XrJu0pCJ+Fs/TjFLm+LXySrHzafKB8Vl1Zv4i9eXQ+bi8+xO3RkriZ6n22aXeHUc7fmqx8mfdUGq+lfhnMo6yvlGvPHmydD4TvirX28rXU1fo/nYUtao3R30heQ2Jk8CCsXp872hdPxLb8
|
||||
</data>
|
||||
</layer>
|
||||
<tileset firstgid="10113" source="../tileset/buildings.tsx"/>
|
||||
<layer id="1" name="Background" width="40" height="40">
|
||||
<data encoding="base64" compression="zlib">
|
||||
eJzt1KENACAMAMEmKEbs2CQMhOoEFRWcOP/qc0ckAADQdtZ8A0C5ngQAfO4B4qxlhg==
|
||||
@@ -30,7 +25,7 @@
|
||||
<property name="spriteLayer" type="bool" value="true"/>
|
||||
</properties>
|
||||
<data encoding="base64" compression="zlib">
|
||||
eJzlWDtOAzEQTZAoECgRRSggVTpKjsUJuA4S3AAkPiehYQ8QLoBSgQlPO5mM52N7A4InRc56x/PxzD5/RqO/ibejYWRLsQsbJXhmz+/7/f8rY6wU08tEf+8BtQsdmi+QQUtjkORqoOlonWM6l1Hk5kB6t2R+z79bK56nsFdrnLLnXG65fS0mDZG8wJezMlOiLq12a3Kc4ronzzyPku1d1q8GbqvUrxKel+pIqy1aC5CTclpanxqknNaMtzhbQ66O+RrC7VwcbPahPfGZ/cJdQNaqiUieIJt0PlbY1GS865W1HkuQchNBaVzom2+/qoLGy93En9vO2KfQvihHUx/o97f61HMz9v1Wgs2h+fl1b91eTvu+xfG23O1hL7tLRGwmWeRhyXjf4lTPeoMW3Obxj87lT83f+Xiz73qal03g8dL/pdwCHoMe5COaXw9arslem2mOqSx8mFX6hPmaZd7DpmdfnmQt3qvhGynGLsCjkKWxtOK/3Pcv8TPg4WdAOr9a4N9EZKwGnA+G3K9Kfua4wYqpRcyIle89SnTTMbl1vWRfxuHRoe3lW+yz4AONs+TsZdWVZKcFNH05Xz33S1FwW/zcQG1xnz01+hCQteC5V7PGRu4Ma+CJd0j7OUTPSL/1Lvg/4gPXOKgV
|
||||
eJzlWDtOAzEQTZAoEIguFJADZEXFYTgLl+AWcAOQ+NRUuQNtinABSjDhaSeT8Xxs74LgSZGz3vF8PLPPn8nkb+LtaBjZUoxhowTP7Pl9v/9/ZYyVYnpZ6O89oHahQ/MFMmhpDJJcDTQdrXNM5zKK3BxI79bM7/l3a8XzFPZqg1P2nMstt6/FpCGSF/hyVmZK1KXVbk2OU1z35JnnUbI9Zv1q4LZK/SrheamOtNqitQA5Kael9alBymnNeIuzNeTqmK8h3M7FwXYf2hOf2S/cBWStmojkCbJJ52OFTU3Gu15Z67EEKTcRlMaFvvnuqypovLxc+HO7NPYptC/K0dQH+v2tPvXcTH2/lWBzaH5+3du0l13fd3y+K3d72MuOiYjNJIs8rBnvW5zqWW/Qgts8/tG5/Kn566bbfdddXjaBx0v/l3ILeAx6kI9ofj1ouSZ7baY5prLwYVbpE+ZrlnkPm559eZK1eK+Gb6QYlwEehSyNpRX/5b5/iZ8BDz8D0vnVAv8mImM14Hww5H5V8jPHDVZMLWJGrHzvUaKbjsmt6yX7Mg6PDm0v32KfBR9onCVnL6uuJDstoOnL+eq5X4qC2+LnBmqL++yp0YeArAXPvZo1NnJnWANPvEPazyF6Rvqtd8H/ER8+QKh7
|
||||
</data>
|
||||
</layer>
|
||||
<objectgroup id="4" name="Objects">
|
||||
|
||||
@@ -1,15 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<map version="1.5" tiledversion="1.7.2" orientation="orthogonal" renderorder="right-down" width="30" height="17" tilewidth="16" tileheight="16" infinite="0" nextlayerid="7" nextobjectid="63">
|
||||
<map version="1.9" tiledversion="1.9.2" orientation="orthogonal" renderorder="right-down" width="30" height="17" tilewidth="16" tileheight="16" infinite="0" nextlayerid="7" nextobjectid="63">
|
||||
<editorsettings>
|
||||
<export target="wastetown..tmx" format="tmx"/>
|
||||
</editorsettings>
|
||||
<tileset firstgid="1" source="../tileset/main.tsx"/>
|
||||
<tileset firstgid="3477" source="../tileset/buildings.tsx"/>
|
||||
<layer id="6" name="Collision" width="30" height="17">
|
||||
<data encoding="base64" compression="zlib">
|
||||
eJztlVEOgzAIhnkXT2C82DxL3blcu7tNYon/GG1s4t76J6RogQ8bU4gOLSPRi4ke42GLWW1MSbJvTWt4uTN/58rzlNeNz3eiiako27/4kc8cm1vjqmL2N9O3spSh9THO40perHyDJz0DZKGQI2yPOzcyrwg5+K/8m1vro3M7t3Pv4753/zm01wp7TrrYs+XqXeexpe6azdtL+Q5fK3ElrmVjjcTlvvTOxxicWQH6wHOx88ibm9aQHYZfZot9ALewVBU=
|
||||
</data>
|
||||
</layer>
|
||||
<tileset firstgid="10113" source="../tileset/buildings.tsx"/>
|
||||
<layer id="1" name="Background" width="30" height="17">
|
||||
<data encoding="base64" compression="zlib">
|
||||
eJyrZWFgqB3Fo3gUj+JRPIpH8YjAADIiAQ4=
|
||||
|
||||
@@ -1,15 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<map version="1.5" tiledversion="1.7.2" orientation="orthogonal" renderorder="right-down" width="30" height="17" tilewidth="16" tileheight="16" infinite="0" nextlayerid="7" nextobjectid="56">
|
||||
<map version="1.9" tiledversion="1.9.2" orientation="orthogonal" renderorder="right-down" width="30" height="17" tilewidth="16" tileheight="16" infinite="0" nextlayerid="7" nextobjectid="56">
|
||||
<editorsettings>
|
||||
<export target="wastetown..tmx" format="tmx"/>
|
||||
</editorsettings>
|
||||
<tileset firstgid="1" source="../tileset/main.tsx"/>
|
||||
<tileset firstgid="3477" source="../tileset/buildings.tsx"/>
|
||||
<layer id="6" name="Collision" width="30" height="17">
|
||||
<data encoding="base64" compression="zlib">
|
||||
eJyL5mVg2MVDXxwFtFMWSNMbSPMQb680knthYBcJ+smxt5abgWEPDnV7geL13NS3F2Ynul8psZsYe6WJDEdSwnvUXvz24opfWti7E5rP8YFooPxuKtsLsxuXOpAZpNhJir0ggK/cIxWQYi81wai99LOX1LoT5k5y9CJjAITiRXU=
|
||||
</data>
|
||||
</layer>
|
||||
<tileset firstgid="10113" source="../tileset/buildings.tsx"/>
|
||||
<layer id="1" name="Background" width="30" height="17">
|
||||
<data encoding="base64" compression="zlib">
|
||||
eJzr42Rg6MOC25AwNnl86onB1DJnqNtLrt3E6hu1d9TeUXtH7R3q9pJjJ6nuG6z20qL+BQDfkyFi
|
||||
|
||||
@@ -1,15 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<map version="1.5" tiledversion="1.7.2" orientation="orthogonal" renderorder="right-down" width="30" height="17" tilewidth="16" tileheight="16" infinite="0" nextlayerid="7" nextobjectid="56">
|
||||
<map version="1.9" tiledversion="1.9.2" orientation="orthogonal" renderorder="right-down" width="30" height="17" tilewidth="16" tileheight="16" infinite="0" nextlayerid="7" nextobjectid="56">
|
||||
<editorsettings>
|
||||
<export target="wastetown..tmx" format="tmx"/>
|
||||
</editorsettings>
|
||||
<tileset firstgid="1" source="../tileset/main.tsx"/>
|
||||
<tileset firstgid="3477" source="../tileset/buildings.tsx"/>
|
||||
<layer id="6" name="Collision" width="30" height="17">
|
||||
<data encoding="base64" compression="zlib">
|
||||
eJyL5mVg2MVDXxwFtFMWSNMbSPOM2ksMgMUTPezFZw+pbiDHv9JI6ZLcOBpK9lIDDAV7BzpdUQOM2osfoMcjuWXWQPqX1LoT5k5y9CJjAGyrOkI=
|
||||
</data>
|
||||
</layer>
|
||||
<tileset firstgid="10113" source="../tileset/buildings.tsx"/>
|
||||
<layer id="1" name="Background" width="30" height="17">
|
||||
<data encoding="base64" compression="zlib">
|
||||
eJzr42Rg6MOC25AwNnl86onB1DJnqNtLrt3E6hu1d9TeUXtH7R3q9pJjJ6nuG6z20qL+BQDfkyFi
|
||||
@@ -25,11 +20,11 @@
|
||||
<property name="spriteLayer" type="bool" value="true"/>
|
||||
</properties>
|
||||
<data encoding="base64" compression="zlib">
|
||||
eJy9VTkSwjAMTEsR4FfxTPgPOR5pfkCdtNDREA3ZyUYj2U7DNtg6bHm1KFW14XH6/c5ki4ZtqPf+YNgFo9rzHZ5fA/d2FNvm04rQGLaSmgSoq1/jb+seXER6Z1B7neMhFNp7VbPugwb83IvneVtLrcwD+3JgnUy05rsYn8TZ7MO5OAccaC2wTri/s4rj/WvJedcbL90BPrVe7kYszmOf1H9Z3nc9wK3A0qzWQ07DrDvOnZWfObLeBQzqXYyUdixfdHSSgpUD7VhzS3y6xymI5lpaT0aM1lcOzBn6ZfW2BE2V7vlYODstTvAunBGcWO4768vjxZoHVm1evthLvjcc72kY/fRm1D+R+i95s8biDbbofG+/XkBHzQ==
|
||||
eJy9VTkSwjAMdEvBO8JP4pnwH3I8kcL8ADom+QIUoCGaLJqVbRq2wZZkWV4tSggbLrvP7wK2RGzj/tsfiV0wmT3e4fkt9N4eYrvysSq0xFZTk0DrGtb447pXLhK8M5q9PeMhVtoHU7Ptg4X6sRfnw7aWWpEH9JWAOplhjXch7pnc6NO8mkc5sFpAnWB/FxOH+2sTwq3ZeOl/4NPq5URiNR/6pP7H+85n4+dmYJq1eihpGHWHZxfjR47YuxSjeRcipx3mS45OcmBnVDtsbonP9jgH0VwH65nEWH2VgJxpv1hva9CGfM+nytnJONF3aY7oxGLfUV8eL2wesNq882Kv+d5gvKdh7ac3o/6J3H/JmzWMN7Ul53v7ApCcShM=
|
||||
</data>
|
||||
</layer>
|
||||
<objectgroup id="4" name="Objects">
|
||||
<object id="38" template="../obj/entry_up.tx" x="208" y="281">
|
||||
<object id="38" template="../obj/entry_up.tx" x="1" y="281" width="478" height="16">
|
||||
<properties>
|
||||
<property name="teleport" value=""/>
|
||||
</properties>
|
||||
|
||||
112
forge-gui/res/adventure/Shandalar/maps/map/cave_1..tmx
Normal file
@@ -0,0 +1,112 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<map version="1.9" tiledversion="1.9.2" orientation="orthogonal" renderorder="right-down" width="30" height="30" tilewidth="16" tileheight="16" infinite="0" nextlayerid="8" nextobjectid="60">
|
||||
<tileset firstgid="1" source="../tileset/main.tsx"/>
|
||||
<tileset firstgid="10113" source="../tileset/buildings.tsx"/>
|
||||
<layer id="1" name="Background" width="30" height="30">
|
||||
<data encoding="base64" compression="zlib">
|
||||
eJzz42Rg8BvFo3gUj+JRPIqHINbghuCRYi/M7uEa1gMZnwMRxgPh17wBtpfecZyHZvdgsDePTm4YqeXUSLOXGvEMABb/Ltw=
|
||||
</data>
|
||||
</layer>
|
||||
<layer id="6" name="BackgroundBlend" width="30" height="30">
|
||||
<data encoding="base64" compression="zlib">
|
||||
eJxjYBgFo2AUjIJRMApGwVAA6tz0secE0J4uLvrbO5CgB+pfevmVD2jfRQ4GBi2ofUeB9DE62Z3PiYjjbi7C6qkFYH4GAU06pymQn0EAFt7nge64wIFwD60AzM+g8AaFdS4nqntoBfI4Uf3MDbSbB4h56RjfWgNUbgyUvejl5lACAE8hEqc=
|
||||
</data>
|
||||
</layer>
|
||||
<layer id="2" name="Ground" width="30" height="30">
|
||||
<data encoding="base64" compression="zlib">
|
||||
eJztlE0KgCAQRl2OB8uii1rWrfqhY2SoIGK1aT4IZuAtZvX8RkejlTKCIAiC8AMcKTXTfc9F6+kfek7v4pkosAG91vuGjAPkReR7mvOqMW/KxfvMqwFlLQuRveYtz8DhfvNyzX3XYW9Gqjst806Vfgvc4+S/CuVLuJgXscM5XcyL/r++8p7+7h8J
|
||||
</data>
|
||||
</layer>
|
||||
<layer id="7" name="Foreground" width="30" height="30">
|
||||
<properties>
|
||||
<property name="spriteLayer" type="bool" value="true"/>
|
||||
</properties>
|
||||
<data encoding="base64" compression="zlib">
|
||||
eJztwQEBAAAAgiD/r25IQAEAAPBoDhAAAQ==
|
||||
</data>
|
||||
</layer>
|
||||
<objectgroup id="4" name="Objects">
|
||||
<object id="38" template="../obj/entry_up.tx" x="196" y="480" width="40" height="8">
|
||||
<properties>
|
||||
<property name="teleport" value=""/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="48" template="../obj/treasure.tx" x="240" y="400">
|
||||
<properties>
|
||||
<property name="reward">[{
|
||||
"type": "randomCard",
|
||||
"count": 2,
|
||||
"colors": [ "colorID" ]
|
||||
},{
|
||||
"type": "randomCard",
|
||||
"count": 1,
|
||||
"probability": 0.5,
|
||||
"rarity": [ "rare" ],
|
||||
"colors": [ "colorID" ]
|
||||
},{
|
||||
"type": "randomCard",
|
||||
"colors": [ "green" ],
|
||||
"count": 3,
|
||||
"addMaxCount": 2
|
||||
}]</property>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="49" template="../obj/gold.tx" x="144" y="384"/>
|
||||
<object id="50" template="../obj/enemy.tx" x="208" y="448">
|
||||
<properties>
|
||||
<property name="enemy" value="Wurm"/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="55" template="../obj/enemy.tx" x="152" y="288.333">
|
||||
<properties>
|
||||
<property name="enemy" value="Wurm"/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="56" template="../obj/enemy.tx" x="194.333" y="283">
|
||||
<properties>
|
||||
<property name="effect">{
|
||||
"lifeModifier": 4,
|
||||
"startBattleWithCard": [ "Forest", "Forest" ]
|
||||
}</property>
|
||||
<property name="enemy" value="Wurm"/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="57" template="../obj/enemy.tx" x="216.667" y="255">
|
||||
<properties>
|
||||
<property name="effect">{
|
||||
"lifeModifier": 10,
|
||||
"startBattleWithCard": [ "Sandwurm Convergence" ]
|
||||
}</property>
|
||||
<property name="enemy" value="Wurm"/>
|
||||
<property name="spawn.Easy" type="bool" value="false"/>
|
||||
<property name="spawn.Hard" type="bool" value="true"/>
|
||||
<property name="spawn.Normal" type="bool" value="false"/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="51" template="../obj/treasure.tx" x="152" y="256.333"/>
|
||||
<object id="58" template="../obj/treasure.tx" x="216.333" y="272.333">
|
||||
<properties>
|
||||
<property name="reward">[{
|
||||
"type": "randomCard",
|
||||
"count": 1,
|
||||
"rarity": [ "rare", "mythic rare" ],
|
||||
"colors": [ "colorID" ]
|
||||
},{
|
||||
"type": "randomCard",
|
||||
"count": 4,
|
||||
"rarity": [ "uncommon" ],
|
||||
"addMaxCount": 2
|
||||
}]</property>
|
||||
<property name="spawn.Hard" type="bool" value="false"/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="52" template="../obj/gold.tx" x="152.333" y="320"/>
|
||||
<object id="59" template="../obj/gold.tx" x="320" y="384" visible="0">
|
||||
<properties>
|
||||
<property name="reward">[{
|
||||
"type": "gold", "count": 250
|
||||
}]</property>
|
||||
</properties>
|
||||
</object>
|
||||
</objectgroup>
|
||||
</map>
|
||||
@@ -1,10 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<map version="1.8" tiledversion="1.8.4" orientation="orthogonal" renderorder="right-down" width="30" height="30" tilewidth="16" tileheight="16" infinite="0" nextlayerid="8" nextobjectid="60">
|
||||
<map version="1.9" tiledversion="1.9.2" orientation="orthogonal" renderorder="right-down" width="30" height="30" tilewidth="16" tileheight="16" infinite="0" nextlayerid="8" nextobjectid="60">
|
||||
<editorsettings>
|
||||
<export format="tmx"/>
|
||||
<export target="cave_1..tmx" format="tmx"/>
|
||||
</editorsettings>
|
||||
<tileset firstgid="1" source="../tileset/main.tsx"/>
|
||||
<tileset firstgid="6321" source="../tileset/buildings.tsx"/>
|
||||
<tileset firstgid="10113" source="../tileset/buildings.tsx"/>
|
||||
<layer id="1" name="Background" width="30" height="30">
|
||||
<data encoding="base64" compression="zlib">
|
||||
eJzz42Rg8BvFo3gUj+JRPIqHINbghuCRYi/M7uEa1gMZnwMRxgPh17wBtpfecZyHZvdgsDePTm4YqeXUSLOXGvEMABb/Ltw=
|
||||
@@ -17,7 +17,7 @@
|
||||
</layer>
|
||||
<layer id="2" name="Ground" width="30" height="30">
|
||||
<data encoding="base64" compression="zlib">
|
||||
eJztlEsKgCAURR0qtK0sWkk7s6xd9aFlZKgkUjbRC8F7cAaOjle9SsGYJAiCIIgfoDljM39fl6IxdIl1Se9imLhlA3qV8Q0BB8iLyJc651Vg3pR29xlODcoaDyL7kzfeQwn3l9dPX93k8O7C9mbkzz5VuFOxXwF77P3XoHwe7fIiOhzSurzo/yuX9wRfCR8q
|
||||
eJztlE0KgCAQRl2OB8uii1rWrfqhY2SoIGK1aT4IZuAtZvX8RkejlTKCIAiC8AMcKTXTfc9F6+kfek7v4pkosAG91vuGjAPkReR7mvOqMW/KxfvMqwFlLQuRveYtz8DhfvNyzX3XYW9Gqjst806Vfgvc4+S/CuVLuJgXscM5XcyL/r++8p7+7h8J
|
||||
</data>
|
||||
</layer>
|
||||
<layer id="7" name="Foreground" width="30" height="30">
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<map version="1.8" tiledversion="1.8.4" orientation="orthogonal" renderorder="right-down" width="30" height="30" tilewidth="16" tileheight="16" infinite="0" nextlayerid="7" nextobjectid="69">
|
||||
<map version="1.9" tiledversion="1.9.2" orientation="orthogonal" renderorder="right-down" width="30" height="30" tilewidth="16" tileheight="16" infinite="0" nextlayerid="7" nextobjectid="69">
|
||||
<editorsettings>
|
||||
<export target="wastetown..tmx" format="tmx"/>
|
||||
</editorsettings>
|
||||
<tileset firstgid="1" source="../../tileset/main.tsx"/>
|
||||
<tileset firstgid="6321" source="../../tileset/buildings.tsx"/>
|
||||
<tileset firstgid="10113" source="../../tileset/buildings.tsx"/>
|
||||
<layer id="1" name="Background" width="30" height="30">
|
||||
<data encoding="base64" compression="zlib">
|
||||
eJztkzEKwDAMA7N27iP7o7y3Q7cQFUm2KRQPtwScs+VkHmPMpml+y3U+rGdMXZYbwfSa5VJ7qXY6Ga+1js91KhlmZcx40Ntx3ezO0N2RmaNvtcrL1jl/CPmZ+apzfvO58yr/ZlfnZszuGfWU4XWyj3iVXCu8ajZN8yU3OswQ5g==
|
||||
@@ -57,7 +57,7 @@
|
||||
"condition":[ { "item":"Strange Key"} ],
|
||||
"text":"The gate is unlocked",
|
||||
"options":[
|
||||
{"name":"continue","action": [ {"deleteMapObject":-1 } ] }
|
||||
{"name":"continue","action": [ {"deleteMapObject":-1 },{"removeItem":"Strange Key"} ] }
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<map version="1.8" tiledversion="1.8.4" orientation="orthogonal" renderorder="right-down" width="30" height="114" tilewidth="16" tileheight="16" infinite="0" nextlayerid="6" nextobjectid="63">
|
||||
<map version="1.9" tiledversion="1.9.2" orientation="orthogonal" renderorder="right-down" width="30" height="114" tilewidth="16" tileheight="16" infinite="0" nextlayerid="6" nextobjectid="63">
|
||||
<editorsettings>
|
||||
<export target="wastetown..tmx" format="tmx"/>
|
||||
</editorsettings>
|
||||
@@ -78,7 +78,7 @@
|
||||
"text":"The gate is unlocked",
|
||||
"options":[
|
||||
{
|
||||
"name":"continue","action":[{"deleteMapObject":-1}]
|
||||
"name":"continue","action":[{"deleteMapObject":-1},{"removeItem":"Red Key"}]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -96,7 +96,7 @@
|
||||
"name":"unlock with blue key",
|
||||
"condition":[{"item":"Blue Key"}],
|
||||
"text":"The gate is unlocked",
|
||||
"options":[ {"name":"continue","action":[{"deleteMapObject":-1}]} ]
|
||||
"options":[ {"name":"continue","action":[{"deleteMapObject":-1},{"removeItem":"Blue Key"}]} ]
|
||||
}
|
||||
]
|
||||
}]</property>
|
||||
@@ -112,7 +112,7 @@
|
||||
"name":"unlock with green key",
|
||||
"condition":[{"item":"Green Key"}],
|
||||
"text":"The gate is unlocked",
|
||||
"options":[{"name":"continue","action":[ {"deleteMapObject":-1}]} ]
|
||||
"options":[{"name":"continue","action":[ {"deleteMapObject":-1},{"removeItem":"Green Key"}]} ]
|
||||
}
|
||||
]
|
||||
}]</property>
|
||||
@@ -128,7 +128,7 @@
|
||||
"name":"unlock with white key",
|
||||
"condition":[{"item":"White Key"}],
|
||||
"text":"The gate is unlocked",
|
||||
"options":[{"name":"continue", "action":[ {"deleteMapObject":-1}]} ]
|
||||
"options":[{"name":"continue", "action":[ {"deleteMapObject":-1},{"removeItem":"White Key"}]} ]
|
||||
}
|
||||
]
|
||||
}]</property>
|
||||
@@ -144,7 +144,7 @@
|
||||
"name":"unlock with black key",
|
||||
"condition":[{"item":"Black Key"}],
|
||||
"text":"The gate is unlocked",
|
||||
"options":[{"name":"continue", "action":[ {"deleteMapObject":-1}]} ]
|
||||
"options":[{"name":"continue", "action":[ {"deleteMapObject":-1},{"removeItem":"Black Key"}]} ]
|
||||
}
|
||||
]
|
||||
}]</property>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<export target="wastetown..tmx" format="tmx"/>
|
||||
</editorsettings>
|
||||
<tileset firstgid="1" source="../../tileset/main.tsx"/>
|
||||
<tileset firstgid="6321" source="../../tileset/buildings.tsx"/>
|
||||
<tileset firstgid="10113" source="../../tileset/buildings.tsx"/>
|
||||
<layer id="1" name="Background" width="30" height="30">
|
||||
<data encoding="base64" compression="zlib">
|
||||
eJzt1DEKwCAMBVAHt17YS3nHDl2kaBpj8j+UDB/EwWcSsV2ltExmM70+YZhjIs7V7Hm5Um3e7leNUiyzmXlo1xqWK9mRJtNd2eniXMabHvcRnrbnJ/ex/smrteRYTY85nJqaPrwtb3d2PqLeHTei1wwX/a6QffxTbui3Dvk=
|
||||
@@ -25,7 +25,7 @@
|
||||
</layer>
|
||||
<layer id="5" name="Overlay" width="30" height="30" visible="0">
|
||||
<data encoding="base64" compression="zlib">
|
||||
eJxjYBgFo2AUDAbgLsvA4CGLyR4FgxcQG0+44nY0ngc34ATGDRc0fqKlGBhipLCrG43fUTAKRsEoGAVDGQAA8c0ISg==
|
||||
eJzt0bENwCAQBMHtAlpA//33AtU4cIgtET7STnTBZQuSKmgJPfetuk47/bW1c20zYMW7Y0CO7599JUk3ewCmfgdy
|
||||
</data>
|
||||
</layer>
|
||||
<objectgroup id="4" name="Objects">
|
||||
@@ -38,32 +38,46 @@
|
||||
<object id="61" template="../../obj/entry_left.tx" x="0" y="465" width="16" height="465"/>
|
||||
<object id="65" template="../../obj/entry_left.tx" x="464" y="463" width="16" height="462"/>
|
||||
<object id="66" template="../../obj/entry_down.tx" x="16" y="17" width="447" height="16"/>
|
||||
<object id="67" name="IntroChar" class="dialog" gid="7627" x="238" y="208" width="16" height="16">
|
||||
<object id="67" name="IntroChar" class="dialog" gid="11419" x="238" y="208" width="16" height="16">
|
||||
<properties>
|
||||
<property name="dialog">[{
|
||||
"text":"Hello Planeswalker {var=player_name}",
|
||||
"text":"HELLO PLANESWALKER {var=player_name}",
|
||||
"options":[
|
||||
{
|
||||
"name":"Why am I here",
|
||||
"condition":[ { "checkMapFlag": "intro" ,"not":true} ],
|
||||
"text":"You traveld to the planes of Shandalar\nEvery Planeswalker is trapped here",
|
||||
"options":[
|
||||
{
|
||||
"name":"continue",
|
||||
"text":"You have to defeat every guardianTake this rune, it will let you travel back to me.",
|
||||
"options":[
|
||||
{
|
||||
"name":"thank you",
|
||||
"action":[{"advanceMapFlag":"intro"},{"addItem":"Colorless rune"}]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"name":"Why am I here",
|
||||
"condition":[ { "checkMapFlag": "intro" ,"not":true} ],
|
||||
"text":"THIS... IS SHANDALAR A PLANE WHERE MANA IS SO PREVALENT AND USED BY ALL THAT IS SENTIENT EVEN THE COMMON PEOPLE USE SPELLS DAILY",
|
||||
"voiceFile":"audio/WizPAR1.mp3",
|
||||
"options":[
|
||||
{
|
||||
"name":"continue",
|
||||
"text":"LIKE YOU,SOME PLANESWALKERS HAVE BEEN IMPRISONED HEREBY THE GUARDIANS IN THE CASTLES YOU MUST DEFEAT THEM IN BATTLE TO RELEASE US FROM THIS PLANE USE YOUR POWERS OF MAGIC TO CHALLENGE THEM",
|
||||
"voiceFile":"audio/WizPAR2.mp3"
|
||||
"options":[
|
||||
{
|
||||
"name":"continue",
|
||||
"text":"FIND THE PLANESWALKERS TRAPPED HERE GUIDE THEM TO ME, THEY WILL HELP YOU ON YOUR JOURNEY.",
|
||||
"voiceFile":"audio/WizPAR3.mp3",
|
||||
"options":[
|
||||
{
|
||||
"name":"continue",
|
||||
"text":"TAKE THIS RUNE YOU CAN USE IT ANYTIME TO RETURN HERE BE CAREFUL PLANESWALKER",
|
||||
"voiceFile":"audio/WizPAR4.mp3"
|
||||
"options":[
|
||||
{
|
||||
"name":"thank you",
|
||||
"action":[{"advanceMapFlag":"intro"},{"addItem":"Colorless rune"}]
|
||||
}]
|
||||
}]
|
||||
}]
|
||||
|
||||
}
|
||||
]
|
||||
},
|
||||
{ "name":"Bye" }
|
||||
]
|
||||
}]</property>
|
||||
<property name="sprite" value="sprites/knight.atlas"/>
|
||||
<property name="sprite" value="sprites/black_wiz2.atlas"/>
|
||||
</properties>
|
||||
</object>
|
||||
</objectgroup>
|
||||
|
||||
|
Before Width: | Height: | Size: 232 KiB After Width: | Height: | Size: 228 KiB |
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<tileset version="1.9" tiledversion="1.9.1" name="buildings" tilewidth="16" tileheight="16" tilecount="1624" columns="28">
|
||||
<image source="buildings.png" width="448" height="928"/>
|
||||
<tileset version="1.9" tiledversion="1.9.2" name="buildings" tilewidth="16" tileheight="16" tilecount="2048" columns="32">
|
||||
<image source="buildings.png" width="512" height="1024"/>
|
||||
<tile id="28">
|
||||
<objectgroup draworder="index" id="2">
|
||||
<object id="1" x="1" y="0" width="15" height="16"/>
|
||||
|
||||
|
Before Width: | Height: | Size: 593 KiB After Width: | Height: | Size: 494 KiB |
576
forge-gui/res/adventure/Shandalar/skin/keys.atlas
Normal file
@@ -0,0 +1,576 @@
|
||||
|
||||
keys.png
|
||||
size: 480, 112
|
||||
format: RGBA8888
|
||||
filter: Nearest, Nearest
|
||||
repeat: none
|
||||
1
|
||||
xy: 0, 0
|
||||
size: 16, 16
|
||||
1_pressed
|
||||
xy: 16, 0
|
||||
size: 16, 16
|
||||
2
|
||||
xy: 32, 0
|
||||
size: 16, 16
|
||||
2_pressed
|
||||
xy: 48, 0
|
||||
size: 16, 16
|
||||
3
|
||||
xy: 64, 0
|
||||
size: 16, 16
|
||||
3_pressed
|
||||
xy: 80, 0
|
||||
size: 16, 16
|
||||
4
|
||||
xy: 96, 0
|
||||
size: 16, 16
|
||||
4_pressed
|
||||
xy: 112, 0
|
||||
size: 16, 16
|
||||
5
|
||||
xy: 128, 0
|
||||
size: 16, 16
|
||||
5_pressed
|
||||
xy: 144, 0
|
||||
size: 16, 16
|
||||
6
|
||||
xy: 160, 0
|
||||
size: 16, 16
|
||||
6_pressed
|
||||
xy: 176, 0
|
||||
size: 16, 16
|
||||
7
|
||||
xy: 192, 0
|
||||
size: 16, 16
|
||||
7_pressed
|
||||
xy: 208, 0
|
||||
size: 16, 16
|
||||
8
|
||||
xy: 224, 0
|
||||
size: 16, 16
|
||||
8_pressed
|
||||
xy: 240, 0
|
||||
size: 16, 16
|
||||
9
|
||||
xy: 256, 0
|
||||
size: 16, 16
|
||||
9_pressed
|
||||
xy: 272, 0
|
||||
size: 16, 16
|
||||
0
|
||||
xy: 288, 0
|
||||
size: 16, 16
|
||||
0_pressed
|
||||
xy: 304, 0
|
||||
size: 16, 16
|
||||
clear
|
||||
xy: 320, 0
|
||||
size: 16, 16
|
||||
clear_pressed
|
||||
xy: 336, 0
|
||||
size: 16, 16
|
||||
Back
|
||||
xy: 352, 0
|
||||
size: 32, 16
|
||||
Back_pressed
|
||||
xy: 384, 0
|
||||
size: 32, 16
|
||||
Escape
|
||||
xy: 416, 0
|
||||
size: 16, 16
|
||||
Escape_pressed
|
||||
xy: 448, 0
|
||||
size: 16, 16
|
||||
Q
|
||||
xy: 0, 16
|
||||
size: 16, 16
|
||||
Q_pressed
|
||||
xy: 16, 16
|
||||
size: 16, 16
|
||||
W
|
||||
xy: 32, 16
|
||||
size: 16, 16
|
||||
W_pressed
|
||||
xy: 48, 16
|
||||
size: 16, 16
|
||||
E
|
||||
xy: 64, 16
|
||||
size: 16, 16
|
||||
E_pressed
|
||||
xy: 80, 16
|
||||
size: 16, 16
|
||||
R
|
||||
xy: 96, 16
|
||||
size: 16, 16
|
||||
R_pressed
|
||||
xy: 112, 16
|
||||
size: 16, 16
|
||||
T
|
||||
xy: 128, 16
|
||||
size: 16, 16
|
||||
T_pressed
|
||||
xy: 144, 16
|
||||
size: 16, 16
|
||||
Y
|
||||
xy: 160, 16
|
||||
size: 16, 16
|
||||
Y_pressed
|
||||
xy: 176, 16
|
||||
size: 16, 16
|
||||
U
|
||||
xy: 192, 16
|
||||
size: 16, 16
|
||||
U_pressed
|
||||
xy: 208, 16
|
||||
size: 16, 16
|
||||
I
|
||||
xy: 224, 16
|
||||
size: 16, 16
|
||||
I_pressed
|
||||
xy: 240, 16
|
||||
size: 16, 16
|
||||
O
|
||||
xy: 256, 16
|
||||
size: 16, 16
|
||||
O_pressed
|
||||
xy: 272, 16
|
||||
size: 16, 16
|
||||
P
|
||||
xy: 288, 16
|
||||
size: 16, 16
|
||||
P_pressed
|
||||
xy: 304, 16
|
||||
size: 16, 16
|
||||
clearSquare
|
||||
xy: 320, 16
|
||||
size: 16, 16
|
||||
clearSquare_pressed
|
||||
xy: 336, 16
|
||||
size: 16, 16
|
||||
Enter
|
||||
xy: 352, 16
|
||||
size: 32, 16
|
||||
Enter_pressed
|
||||
xy: 384, 16
|
||||
size: 32, 16
|
||||
Tab
|
||||
xy: 416, 16
|
||||
size: 32, 16
|
||||
Tab_pressed
|
||||
xy: 448, 16
|
||||
size: 32, 16
|
||||
A
|
||||
xy: 0, 32
|
||||
size: 16, 16
|
||||
A_pressed
|
||||
xy: 16, 32
|
||||
size: 16, 16
|
||||
S
|
||||
xy: 32, 32
|
||||
size: 16, 16
|
||||
S_pressed
|
||||
xy: 48, 32
|
||||
size: 16, 16
|
||||
D
|
||||
xy: 64, 32
|
||||
size: 16, 16
|
||||
D_pressed
|
||||
xy: 80, 32
|
||||
size: 16, 16
|
||||
F
|
||||
xy: 96, 32
|
||||
size: 16, 16
|
||||
F_pressed
|
||||
xy: 112, 32
|
||||
size: 16, 16
|
||||
G
|
||||
xy: 128, 32
|
||||
size: 16, 16
|
||||
G_pressed
|
||||
xy: 144, 32
|
||||
size: 16, 16
|
||||
H
|
||||
xy: 160, 32
|
||||
size: 16, 16
|
||||
H_pressed
|
||||
xy: 176, 32
|
||||
size: 16, 16
|
||||
J
|
||||
xy: 192, 32
|
||||
size: 16, 16
|
||||
J_pressed
|
||||
xy: 208, 32
|
||||
size: 16, 16
|
||||
K
|
||||
xy: 224, 32
|
||||
size: 16, 16
|
||||
K_pressed
|
||||
xy: 240, 32
|
||||
size: 16, 16
|
||||
L
|
||||
xy: 256, 32
|
||||
size: 16, 16
|
||||
L_pressed
|
||||
xy: 272, 32
|
||||
size: 16, 16
|
||||
Up
|
||||
xy: 288, 32
|
||||
size: 16, 16
|
||||
Up_pressed
|
||||
xy: 304, 32
|
||||
size: 16, 16
|
||||
clearSquareLong
|
||||
xy: 320, 32
|
||||
size: 32, 16
|
||||
Space
|
||||
xy: 352, 32
|
||||
size: 32, 16
|
||||
Space_pressed
|
||||
xy: 384, 32
|
||||
size: 32, 16
|
||||
L-Shift
|
||||
xy: 416, 32
|
||||
size: 32, 16
|
||||
L-Shift_pressed
|
||||
xy: 448, 32
|
||||
size: 32, 16
|
||||
R-Shift
|
||||
xy: 416, 32
|
||||
size: 32, 16
|
||||
R-Shift_pressed
|
||||
xy: 448, 32
|
||||
size: 32, 16
|
||||
Z
|
||||
xy: 0, 48
|
||||
size: 16, 16
|
||||
Z_pressed
|
||||
xy: 16, 48
|
||||
size: 16, 16
|
||||
X
|
||||
xy: 32, 48
|
||||
size: 16, 16
|
||||
X_pressed
|
||||
xy: 48, 48
|
||||
size: 16, 16
|
||||
C
|
||||
xy: 64, 48
|
||||
size: 16, 16
|
||||
C_pressed
|
||||
xy: 80, 48
|
||||
size: 16, 16
|
||||
V
|
||||
xy: 96, 48
|
||||
size: 16, 16
|
||||
V_pressed
|
||||
xy: 112, 48
|
||||
size: 16, 16
|
||||
B
|
||||
xy: 128, 48
|
||||
size: 16, 16
|
||||
B_pressed
|
||||
xy: 144, 48
|
||||
size: 16, 16
|
||||
N
|
||||
xy: 160, 48
|
||||
size: 16, 16
|
||||
N_pressed
|
||||
xy: 176, 48
|
||||
size: 16, 16
|
||||
M
|
||||
xy: 192, 48
|
||||
size: 16, 16
|
||||
M_pressed
|
||||
xy: 208, 48
|
||||
size: 16, 16
|
||||
Left
|
||||
xy: 224, 48
|
||||
size: 16, 16
|
||||
Left_pressed
|
||||
xy: 240, 48
|
||||
size: 16, 16
|
||||
Right
|
||||
xy: 256, 48
|
||||
size: 16, 16
|
||||
Right_pressed
|
||||
xy: 272, 48
|
||||
size: 16, 16
|
||||
Down
|
||||
xy: 288, 48
|
||||
size: 16, 16
|
||||
Down_pressed
|
||||
xy: 304, 48
|
||||
size: 16, 16
|
||||
clearSquareLong_pressed
|
||||
xy: 320, 48
|
||||
size: 32, 16
|
||||
R-Alt
|
||||
xy: 352, 48
|
||||
size: 32, 16
|
||||
R-Alt_pressed
|
||||
xy: 384, 48
|
||||
size: 32, 16
|
||||
L-Alt
|
||||
xy: 352, 48
|
||||
size: 32, 16
|
||||
L-Alt_pressed
|
||||
xy: 384, 48
|
||||
size: 32, 16
|
||||
Control
|
||||
xy: 416, 48
|
||||
size: 32, 16
|
||||
Control_pressed
|
||||
xy: 448, 48
|
||||
size: 32, 16
|
||||
XBox_B
|
||||
xy: 0, 64
|
||||
size: 16, 16
|
||||
XBox_B_pressed
|
||||
xy: 16, 64
|
||||
size: 16, 16
|
||||
XBox_A
|
||||
xy: 32, 64
|
||||
size: 16, 16
|
||||
XBox_A_pressed
|
||||
xy: 48, 64
|
||||
size: 16, 16
|
||||
XBox_Y
|
||||
xy: 64, 64
|
||||
size: 16, 16
|
||||
XBox_Y_pressed
|
||||
xy: 80, 64
|
||||
size: 16, 16
|
||||
XBox_X
|
||||
xy: 96, 64
|
||||
size: 16, 16
|
||||
XBox_X_pressed
|
||||
xy: 112, 64
|
||||
size: 16, 16
|
||||
XBox_L
|
||||
xy: 128, 64
|
||||
size: 16, 16
|
||||
XBox_L_pressed
|
||||
xy: 144, 64
|
||||
size: 16, 16
|
||||
XBox_R
|
||||
xy: 160, 64
|
||||
size: 16, 16
|
||||
XBox_R_pressed
|
||||
xy: 176, 64
|
||||
size: 16, 16
|
||||
XBox_L2
|
||||
xy: 192, 64
|
||||
size: 16, 16
|
||||
XBox_L2_pressed
|
||||
xy: 208, 64
|
||||
size: 16, 16
|
||||
XBox_R2
|
||||
xy: 224, 64
|
||||
size: 16, 16
|
||||
XBox_R2_pressed
|
||||
xy: 240, 64
|
||||
size: 16, 16
|
||||
XBox_Select
|
||||
xy: 256, 64
|
||||
size: 16, 16
|
||||
XBox_Select_pressed
|
||||
xy: 272, 64
|
||||
size: 16, 16
|
||||
XBox_Start
|
||||
xy: 288, 64
|
||||
size: 16, 16
|
||||
XBox_Start_pressed
|
||||
xy: 304, 64
|
||||
size: 16, 16
|
||||
XBox_Left
|
||||
xy: 320, 64
|
||||
size: 16, 16
|
||||
XBox_Left_pressed
|
||||
xy: 336, 64
|
||||
size: 16, 16
|
||||
XBox_Right
|
||||
xy: 352, 64
|
||||
size: 16, 16
|
||||
XBox_Right_pressed
|
||||
xy: 368, 64
|
||||
size: 16, 16
|
||||
XBox_Down
|
||||
xy: 384, 64
|
||||
size: 16, 16
|
||||
XBox_Down_pressed
|
||||
xy: 400, 64
|
||||
size: 16, 16
|
||||
XBox_Up
|
||||
xy: 416, 64
|
||||
size: 16, 16
|
||||
XBox_Up_pressed
|
||||
xy: 432, 64
|
||||
size: 16, 16
|
||||
Playstation_B
|
||||
xy: 0, 80
|
||||
size: 16, 16
|
||||
Playstation_B_pressed
|
||||
xy: 16, 80
|
||||
size: 16, 16
|
||||
Playstation_A
|
||||
xy: 32, 80
|
||||
size: 16, 16
|
||||
Playstation_A_pressed
|
||||
xy: 48, 80
|
||||
size: 16, 16
|
||||
Playstation_Y
|
||||
xy: 64, 80
|
||||
size: 16, 16
|
||||
Playstation_Y_pressed
|
||||
xy: 80, 80
|
||||
size: 16, 16
|
||||
Playstation_X
|
||||
xy: 96, 80
|
||||
size: 16, 16
|
||||
Playstation_X_pressed
|
||||
xy: 112, 80
|
||||
size: 16, 16
|
||||
Playstation_L
|
||||
xy: 128, 80
|
||||
size: 16, 16
|
||||
Playstation_L_pressed
|
||||
xy: 144, 80
|
||||
size: 16, 16
|
||||
Playstation_R
|
||||
xy: 160, 80
|
||||
size: 16, 16
|
||||
Playstation_R_pressed
|
||||
xy: 176, 80
|
||||
size: 16, 16
|
||||
Playstation_L2
|
||||
xy: 192, 80
|
||||
size: 16, 16
|
||||
Playstation_L2_pressed
|
||||
xy: 208, 80
|
||||
size: 16, 16
|
||||
Playstation_R2
|
||||
xy: 224, 80
|
||||
size: 16, 16
|
||||
Playstation_R2_pressed
|
||||
xy: 240, 80
|
||||
size: 16, 16
|
||||
Playstation_Select
|
||||
xy: 256, 80
|
||||
size: 16, 16
|
||||
Playstation_Select_pressed
|
||||
xy: 272, 80
|
||||
size: 16, 16
|
||||
Playstation_Start
|
||||
xy: 288, 80
|
||||
size: 16, 16
|
||||
Playstation_Start_pressed
|
||||
xy: 304, 80
|
||||
size: 16, 16
|
||||
Playstation_Left
|
||||
xy: 320, 80
|
||||
size: 16, 16
|
||||
Playstation_Left_pressed
|
||||
xy: 336, 80
|
||||
size: 16, 16
|
||||
Playstation_Right
|
||||
xy: 352, 80
|
||||
size: 16, 16
|
||||
Playstation_Right_pressed
|
||||
xy: 368, 80
|
||||
size: 16, 16
|
||||
Playstation_Down
|
||||
xy: 384, 80
|
||||
size: 16, 16
|
||||
Playstation_Down_pressed
|
||||
xy: 400, 80
|
||||
size: 16, 16
|
||||
Playstation_Up
|
||||
xy: 416, 80
|
||||
size: 16, 16
|
||||
Playstation_Up_pressed
|
||||
xy: 432, 80
|
||||
size: 16, 16
|
||||
Switch_B
|
||||
xy: 0, 96
|
||||
size: 16, 16
|
||||
Switch_B_pressed
|
||||
xy: 16, 96
|
||||
size: 16, 16
|
||||
Switch_A
|
||||
xy: 32, 96
|
||||
size: 16, 16
|
||||
Switch_A_pressed
|
||||
xy: 48, 96
|
||||
size: 16, 16
|
||||
Switch_Y
|
||||
xy: 64, 96
|
||||
size: 16, 16
|
||||
Switch_Y_pressed
|
||||
xy: 80, 96
|
||||
size: 16, 16
|
||||
Switch_X
|
||||
xy: 96, 96
|
||||
size: 16, 16
|
||||
Switch_X_pressed
|
||||
xy: 112, 96
|
||||
size: 16, 16
|
||||
Switch_L
|
||||
xy: 128, 96
|
||||
size: 16, 16
|
||||
Switch_L_pressed
|
||||
xy: 144, 96
|
||||
size: 16, 16
|
||||
Switch_R
|
||||
xy: 160, 96
|
||||
size: 16, 16
|
||||
Switch_R_pressed
|
||||
xy: 176, 96
|
||||
size: 16, 16
|
||||
Switch_L2
|
||||
xy: 192, 96
|
||||
size: 16, 16
|
||||
Switch_L2_pressed
|
||||
xy: 208, 96
|
||||
size: 16, 16
|
||||
Switch_R2
|
||||
xy: 224, 96
|
||||
size: 16, 16
|
||||
Switch_R2_pressed
|
||||
xy: 240, 96
|
||||
size: 16, 16
|
||||
Switch_Select
|
||||
xy: 256, 96
|
||||
size: 16, 16
|
||||
Switch_Select_pressed
|
||||
xy: 272, 96
|
||||
size: 16, 16
|
||||
Switch_Start
|
||||
xy: 288, 96
|
||||
size: 16, 16
|
||||
Switch_Start_pressed
|
||||
xy: 304, 96
|
||||
size: 16, 16
|
||||
Switch_Left
|
||||
xy: 320, 96
|
||||
size: 16, 16
|
||||
Switch_Left_pressed
|
||||
xy: 336, 96
|
||||
size: 16, 16
|
||||
Switch_Right
|
||||
xy: 352, 96
|
||||
size: 16, 16
|
||||
Switch_Right_pressed
|
||||
xy: 368, 96
|
||||
size: 16, 16
|
||||
Switch_Down
|
||||
xy: 384, 96
|
||||
size: 16, 16
|
||||
Switch_Down_pressed
|
||||
xy: 400, 96
|
||||
size: 16, 16
|
||||
Switch_Up
|
||||
xy: 416, 96
|
||||
size: 16, 16
|
||||
Switch_Up_pressed
|
||||
xy: 432, 96
|
||||
size: 16, 16
|
||||
BIN
forge-gui/res/adventure/Shandalar/skin/keys.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
@@ -6,14 +6,14 @@ filter: Nearest, Nearest
|
||||
repeat: none
|
||||
white-pixel
|
||||
rotate: false
|
||||
xy: 221, 326
|
||||
xy: 221, 327
|
||||
size: 1, 1
|
||||
orig: 1, 1
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
BKey_3_14
|
||||
rotate: false
|
||||
xy: 125, 214
|
||||
xy: 125, 215
|
||||
size: 32, 16
|
||||
split: 6, 6, 9, 6
|
||||
pad: 0, 0, 0, 0
|
||||
@@ -22,7 +22,7 @@ BKey_3_14
|
||||
index: -1
|
||||
BKey_3_9
|
||||
rotate: false
|
||||
xy: 75, 164
|
||||
xy: 75, 165
|
||||
size: 32, 16
|
||||
split: 5, 5, 6, 7
|
||||
pad: 0, 0, 0, 0
|
||||
@@ -31,28 +31,28 @@ BKey_3_9
|
||||
index: -1
|
||||
9patch17
|
||||
rotate: false
|
||||
xy: 253, 384
|
||||
xy: 253, 385
|
||||
size: 48, 48
|
||||
orig: 48, 48
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
9patch17_down
|
||||
rotate: false
|
||||
xy: 203, 334
|
||||
xy: 203, 335
|
||||
size: 48, 48
|
||||
orig: 48, 48
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
9patch17_h
|
||||
rotate: false
|
||||
xy: 1, 58
|
||||
xy: 1, 59
|
||||
size: 48, 48
|
||||
orig: 48, 48
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
9patch4
|
||||
rotate: false
|
||||
xy: 75, 182
|
||||
xy: 75, 183
|
||||
size: 48, 48
|
||||
split: 7, 7, 7, 7
|
||||
pad: 0, 0, 0, 0
|
||||
@@ -61,63 +61,77 @@ BKey_3_9
|
||||
index: -1
|
||||
down
|
||||
rotate: false
|
||||
xy: 253, 344
|
||||
xy: 253, 345
|
||||
size: 16, 16
|
||||
orig: 16, 16
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
down_down
|
||||
rotate: false
|
||||
xy: 275, 366
|
||||
xy: 275, 367
|
||||
size: 16, 16
|
||||
orig: 16, 16
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
left
|
||||
rotate: false
|
||||
xy: 303, 394
|
||||
xy: 303, 395
|
||||
size: 16, 16
|
||||
orig: 16, 16
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
left_down
|
||||
rotate: false
|
||||
xy: 325, 416
|
||||
xy: 325, 417
|
||||
size: 16, 16
|
||||
orig: 16, 16
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
left_f
|
||||
rotate: false
|
||||
xy: 51, 115
|
||||
size: 16, 16
|
||||
orig: 16, 16
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
right
|
||||
rotate: false
|
||||
xy: 1, 18
|
||||
xy: 1, 19
|
||||
size: 16, 16
|
||||
orig: 16, 16
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
right_down
|
||||
rotate: false
|
||||
xy: 23, 40
|
||||
xy: 23, 41
|
||||
size: 16, 16
|
||||
orig: 16, 16
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
right_f
|
||||
rotate: false
|
||||
xy: 203, 294
|
||||
size: 16, 16
|
||||
orig: 16, 16
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
up
|
||||
rotate: false
|
||||
xy: 147, 196
|
||||
xy: 147, 197
|
||||
size: 16, 16
|
||||
orig: 16, 16
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
up_down
|
||||
rotate: false
|
||||
xy: 177, 214
|
||||
xy: 177, 215
|
||||
size: 16, 16
|
||||
orig: 16, 16
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
cursor
|
||||
rotate: false
|
||||
xy: 225, 329
|
||||
xy: 225, 330
|
||||
size: 4, 3
|
||||
split: 1, 1, 1, 1
|
||||
pad: 0, 0, 0, 0
|
||||
@@ -126,42 +140,42 @@ cursor
|
||||
index: -1
|
||||
item_frame
|
||||
rotate: false
|
||||
xy: 253, 362
|
||||
xy: 253, 363
|
||||
size: 20, 20
|
||||
orig: 20, 20
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
item_frame_hover
|
||||
rotate: false
|
||||
xy: 303, 412
|
||||
xy: 303, 413
|
||||
size: 20, 20
|
||||
orig: 20, 20
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
item_frame_selected
|
||||
rotate: false
|
||||
xy: 1, 36
|
||||
xy: 1, 37
|
||||
size: 20, 20
|
||||
orig: 20, 20
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
item_frame_selected_hover
|
||||
rotate: false
|
||||
xy: 125, 192
|
||||
xy: 125, 193
|
||||
size: 20, 20
|
||||
orig: 20, 20
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
select
|
||||
rotate: false
|
||||
xy: 69, 146
|
||||
xy: 69, 147
|
||||
size: 2, 2
|
||||
orig: 2, 2
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
bar
|
||||
rotate: false
|
||||
xy: 51, 150
|
||||
xy: 51, 151
|
||||
size: 22, 6
|
||||
split: 2, 2, 2, 2
|
||||
pad: 0, 0, 0, 0
|
||||
@@ -170,7 +184,7 @@ bar
|
||||
index: -1
|
||||
barcontent
|
||||
rotate: false
|
||||
xy: 203, 329
|
||||
xy: 203, 330
|
||||
size: 20, 3
|
||||
split: 0, 0, 0, 0
|
||||
orig: 20, 3
|
||||
@@ -178,14 +192,14 @@ barcontent
|
||||
index: -1
|
||||
check
|
||||
rotate: false
|
||||
xy: 253, 334
|
||||
xy: 253, 335
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
map
|
||||
rotate: false
|
||||
xy: 1, 108
|
||||
xy: 1, 109
|
||||
size: 48, 48
|
||||
split: 17, 16, 13, 11
|
||||
pad: 0, 0, 0, 0
|
||||
@@ -194,7 +208,7 @@ map
|
||||
index: -1
|
||||
pressed
|
||||
rotate: false
|
||||
xy: 125, 174
|
||||
xy: 125, 175
|
||||
size: 14, 16
|
||||
split: 4, 4, 6, 5
|
||||
pad: 0, 0, 0, 0
|
||||
@@ -203,7 +217,7 @@ pressed
|
||||
index: -1
|
||||
pressedMap
|
||||
rotate: false
|
||||
xy: 51, 132
|
||||
xy: 51, 133
|
||||
size: 16, 16
|
||||
split: 6, 6, 4, 3
|
||||
pad: 0, 0, 0, 0
|
||||
@@ -212,7 +226,7 @@ pressedMap
|
||||
index: -1
|
||||
pressedround
|
||||
rotate: false
|
||||
xy: 343, 417
|
||||
xy: 51, 98
|
||||
size: 12, 15
|
||||
split: 4, 4, 7, 5
|
||||
pad: 0, 0, 0, 0
|
||||
@@ -221,7 +235,7 @@ pressedround
|
||||
index: -1
|
||||
scroll
|
||||
rotate: false
|
||||
xy: 303, 377
|
||||
xy: 303, 378
|
||||
size: 6, 15
|
||||
split: 2, 2, 3, 4
|
||||
pad: 0, 0, 0, 0
|
||||
@@ -230,7 +244,7 @@ scroll
|
||||
index: -1
|
||||
scroll2
|
||||
rotate: false
|
||||
xy: 75, 155
|
||||
xy: 75, 156
|
||||
size: 14, 7
|
||||
split: 3, 3, 2, 3
|
||||
pad: 0, 0, 0, 0
|
||||
@@ -239,7 +253,7 @@ scroll2
|
||||
index: -1
|
||||
thinwindow
|
||||
rotate: false
|
||||
xy: 203, 311
|
||||
xy: 203, 312
|
||||
size: 16, 16
|
||||
split: 2, 2, 2, 2
|
||||
pad: 0, 0, 0, 0
|
||||
@@ -248,14 +262,14 @@ thinwindow
|
||||
index: -1
|
||||
uncheck
|
||||
rotate: false
|
||||
xy: 293, 374
|
||||
xy: 293, 375
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
unpressed
|
||||
rotate: false
|
||||
xy: 109, 164
|
||||
xy: 109, 165
|
||||
size: 14, 16
|
||||
split: 4, 4, 4, 7
|
||||
pad: 0, 0, 0, 0
|
||||
@@ -264,7 +278,7 @@ unpressed
|
||||
index: -1
|
||||
unpressed-disable
|
||||
rotate: false
|
||||
xy: 203, 293
|
||||
xy: 1, 1
|
||||
size: 14, 16
|
||||
split: 3, 3, 3, 6
|
||||
pad: 0, 0, 0, 0
|
||||
@@ -273,16 +287,23 @@ unpressed-disable
|
||||
index: -1
|
||||
unpressed-hover
|
||||
rotate: false
|
||||
xy: 51, 114
|
||||
xy: 343, 417
|
||||
size: 14, 16
|
||||
split: 3, 3, 3, 6
|
||||
pad: 0, 0, 0, 0
|
||||
orig: 14, 16
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
unpressedFocus
|
||||
rotate: false
|
||||
xy: 165, 197
|
||||
size: 14, 16
|
||||
orig: 14, 16
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
unpressedMap
|
||||
rotate: false
|
||||
xy: 159, 214
|
||||
xy: 159, 215
|
||||
size: 16, 16
|
||||
split: 6, 6, 3, 4
|
||||
pad: 0, 0, 0, 0
|
||||
@@ -291,7 +312,7 @@ unpressedMap
|
||||
index: -1
|
||||
unpressedround
|
||||
rotate: false
|
||||
xy: 1, 1
|
||||
xy: 203, 277
|
||||
size: 12, 15
|
||||
split: 4, 4, 5, 7
|
||||
pad: 0, 0, 0, 0
|
||||
@@ -300,7 +321,7 @@ unpressedround
|
||||
index: -1
|
||||
windowMain
|
||||
rotate: false
|
||||
xy: 203, 384
|
||||
xy: 203, 385
|
||||
size: 48, 48
|
||||
split: 6, 6, 6, 6
|
||||
pad: 0, 0, 0, 0
|
||||
@@ -309,14 +330,14 @@ windowMain
|
||||
index: -1
|
||||
touchBackground
|
||||
rotate: false
|
||||
xy: 1, 232
|
||||
xy: 1, 233
|
||||
size: 200, 200
|
||||
orig: 200, 200
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
touchKnob
|
||||
rotate: false
|
||||
xy: 1, 158
|
||||
xy: 1, 159
|
||||
size: 72, 72
|
||||
orig: 72, 72
|
||||
offset: 0, 0
|
||||
|
||||
@@ -325,6 +325,26 @@
|
||||
"regions": [],
|
||||
"playMode": 2,
|
||||
"crushMode": 0
|
||||
},
|
||||
"unpressedFocus10Patch": {
|
||||
"region": "unpressedFocus",
|
||||
"horizontalStretchAreas": [ 3, 6, 8, 9 ],
|
||||
"verticalStretchAreas": [ 6, 7, 9, 12 ],
|
||||
"tiling": false,
|
||||
"minWidth": 14,
|
||||
"minHeight": 16,
|
||||
"rightWidth": 5,
|
||||
"leftWidth": 5,
|
||||
"bottomHeight": 8,
|
||||
"topHeight": 5,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"offsetXspeed": 0,
|
||||
"offsetYspeed": 0,
|
||||
"frameDuration": 0.03,
|
||||
"regions": [],
|
||||
"playMode": 2,
|
||||
"crushMode": 0
|
||||
}
|
||||
},
|
||||
"ButtonStyle": {
|
||||
@@ -332,6 +352,7 @@
|
||||
"up": "unpressed10patch",
|
||||
"down": "pressed10Patch",
|
||||
"over": "unpressed-hover10patch",
|
||||
"focused": "unpressedFocus10Patch",
|
||||
"disabled": "unpressed-disable10Patch"
|
||||
},
|
||||
"paper": {
|
||||
@@ -350,7 +371,9 @@
|
||||
"default": {
|
||||
"checkboxOn": "check",
|
||||
"checkboxOff": "uncheck",
|
||||
"font": "default"
|
||||
"font": "default",
|
||||
"focused": "unpressedFocus10Patch",
|
||||
"checkedFocused": "unpressedFocus10Patch"
|
||||
}
|
||||
},
|
||||
"ImageButtonStyle": {
|
||||
@@ -359,18 +382,22 @@
|
||||
"imageDown": "pressed10Patch"
|
||||
},
|
||||
"leftarrow": {
|
||||
"imageUp": "left",
|
||||
"imageDown": "left_down"
|
||||
"up": "left",
|
||||
"down": "left_down",
|
||||
"focused": "left_f"
|
||||
},
|
||||
"rightarrow": {
|
||||
"imageUp": "right",
|
||||
"imageDown": "right_down"
|
||||
"up": "right",
|
||||
"down": "right_down",
|
||||
"focused": "right_f"
|
||||
},
|
||||
"item_frame": {
|
||||
"imageUp": "item_frame",
|
||||
"imageOver": "item_frame_hover",
|
||||
"imageChecked": "item_frame_selected",
|
||||
"imageCheckedOver": "item_frame_selected_hover"
|
||||
"imageCheckedOver": "item_frame_selected_hover",
|
||||
"up": "item_frame",
|
||||
"over": "item_frame_hover",
|
||||
"focused": "item_frame_selected",
|
||||
"checked": "item_frame_selected",
|
||||
"checkedOver": "item_frame_selected_hover"
|
||||
}
|
||||
},
|
||||
"ImageTextButtonStyle": {
|
||||
@@ -426,12 +453,15 @@
|
||||
"fontColor": "RGBA_255_255_255_255",
|
||||
"overFontColor": "RGBA_0_216_255_255",
|
||||
"disabledFontColor": "RGBA_255_255_255_255",
|
||||
"background": "unpressed10patch",
|
||||
"scrollStyle": "default",
|
||||
"listStyle": "default"
|
||||
"listStyle": "default",
|
||||
"backgroundOver": "unpressed-hover10patch"
|
||||
}
|
||||
},
|
||||
"SliderStyle": {
|
||||
"default-horizontal": {
|
||||
"backgroundOver": "unpressed-hover10patch",
|
||||
"background": "thinwindow10Patch",
|
||||
"knob": "scroll"
|
||||
},
|
||||
|
||||
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 18 KiB |
@@ -21,6 +21,8 @@
|
||||
"type": "TextButton",
|
||||
"name": "done",
|
||||
"text": "tr(lblBack)",
|
||||
"binding": "Back",
|
||||
"selectable": true,
|
||||
"width": 48,
|
||||
"height": 20,
|
||||
"x": 5,
|
||||
@@ -39,6 +41,8 @@
|
||||
"type": "TextButton",
|
||||
"name": "start",
|
||||
"text": "tr(lblBattle)",
|
||||
"selectable": true,
|
||||
"binding": "Use",
|
||||
"width": 48,
|
||||
"height": 20,
|
||||
"x": 430,
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
"type": "TextButton",
|
||||
"name": "done",
|
||||
"text": "Back",
|
||||
"selectable": true,
|
||||
"width": 48,
|
||||
"height": 20,
|
||||
"x": 5,
|
||||
@@ -39,6 +40,7 @@
|
||||
"type": "TextButton",
|
||||
"name": "start",
|
||||
"text": "tr(lblBattle)",
|
||||
"selectable": true,
|
||||
"width": 48,
|
||||
"height": 20,
|
||||
"x": 125,
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
"type": "TextButton",
|
||||
"name": "return",
|
||||
"text": "tr(lblBack)",
|
||||
"binding": "Back",
|
||||
"width": 100,
|
||||
"height": 30,
|
||||
"x": 365,
|
||||
@@ -39,6 +40,7 @@
|
||||
"type": "TextButton",
|
||||
"name": "edit",
|
||||
"text": "tr(lblEdit)",
|
||||
"binding": "Use",
|
||||
"width": 100,
|
||||
"height": 30,
|
||||
"x": 365,
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
"type": "TextButton",
|
||||
"name": "return",
|
||||
"text": "tr(lblBack)",
|
||||
"binding": "Back",
|
||||
"width": 86,
|
||||
"height": 30,
|
||||
"x": 4,
|
||||
@@ -30,6 +31,7 @@
|
||||
"type": "TextButton",
|
||||
"name": "rename",
|
||||
"text": "tr(lblRename)",
|
||||
"binding": "Equip",
|
||||
"width": 86,
|
||||
"height": 30,
|
||||
"x": 92,
|
||||
@@ -39,6 +41,7 @@
|
||||
"type": "TextButton",
|
||||
"name": "edit",
|
||||
"text": "tr(lblEdit)",
|
||||
"binding": "Use",
|
||||
"width": 86,
|
||||
"height": 30,
|
||||
"x": 180,
|
||||
|
||||
@@ -87,9 +87,10 @@
|
||||
"name": "deck",
|
||||
"style":"menu",
|
||||
"text": "{Scale=200%}[+Deck]",
|
||||
"width": 40,
|
||||
"binding": "Deck",
|
||||
"width": 48,
|
||||
"height": 36,
|
||||
"x": 428,
|
||||
"x": 424,
|
||||
"y": 106
|
||||
},
|
||||
{
|
||||
@@ -97,9 +98,10 @@
|
||||
"name": "inventory",
|
||||
"style":"menu",
|
||||
"text": "{Scale=200%}[+Item]",
|
||||
"width": 40,
|
||||
"binding": "Inventory",
|
||||
"width": 48,
|
||||
"height": 36,
|
||||
"x": 428,
|
||||
"x": 424,
|
||||
"y": 146
|
||||
},
|
||||
|
||||
@@ -108,9 +110,10 @@
|
||||
"name": "statistic",
|
||||
"style":"menu",
|
||||
"text": "{Scale=200%}[+Status]",
|
||||
"width": 40,
|
||||
"binding": "Status",
|
||||
"width": 48,
|
||||
"height": 36,
|
||||
"x": 428,
|
||||
"x": 424,
|
||||
"y": 186
|
||||
},
|
||||
{
|
||||
@@ -118,9 +121,10 @@
|
||||
"name": "menu",
|
||||
"style":"menu",
|
||||
"text": "{Scale=200%}[+Menu]",
|
||||
"width": 40,
|
||||
"binding": "Menu",
|
||||
"width": 48,
|
||||
"height": 36,
|
||||
"x": 428,
|
||||
"x": 424,
|
||||
"y": 226
|
||||
}
|
||||
]
|
||||
|
||||
@@ -87,6 +87,7 @@
|
||||
"name": "deck",
|
||||
"style":"menu",
|
||||
"text": "{Scale=200%}[+Deck]",
|
||||
"binding": "Deck",
|
||||
"width": 64,
|
||||
"height": 36,
|
||||
"x": 416,
|
||||
@@ -97,6 +98,7 @@
|
||||
"name": "inventory",
|
||||
"style":"menu",
|
||||
"text": "{Scale=200%}[+Item]",
|
||||
"binding": "Inventory",
|
||||
"width": 64,
|
||||
"height": 36,
|
||||
"x": 416,
|
||||
@@ -108,6 +110,7 @@
|
||||
"name": "statistic",
|
||||
"style":"menu",
|
||||
"text": "{Scale=200%}[+Status]",
|
||||
"binding": "Status",
|
||||
"width": 64,
|
||||
"height": 36,
|
||||
"x": 416,
|
||||
@@ -118,6 +121,7 @@
|
||||
"name": "menu",
|
||||
"style":"menu",
|
||||
"text": "{Scale=200%}[+Menu]",
|
||||
"binding": "Menu",
|
||||
"width": 64,
|
||||
"height": 36,
|
||||
"x": 416,
|
||||
|
||||
@@ -86,6 +86,7 @@
|
||||
"name": "deck",
|
||||
"style":"menu",
|
||||
"text": "{Scale=200%}[+Deck]",
|
||||
"binding": "Deck",
|
||||
"width": 64,
|
||||
"height": 32,
|
||||
"x": 206,
|
||||
@@ -96,6 +97,7 @@
|
||||
"name": "inventory",
|
||||
"style":"menu",
|
||||
"text": "{Scale=200%}[+Item]",
|
||||
"binding": "Inventory",
|
||||
"width": 64,
|
||||
"height": 32,
|
||||
"x": 206,
|
||||
@@ -107,6 +109,7 @@
|
||||
"name": "statistic",
|
||||
"style":"menu",
|
||||
"text": "{Scale=200%}[+Status]",
|
||||
"binding": "Status",
|
||||
"width": 64,
|
||||
"height": 32,
|
||||
"x": 206,
|
||||
@@ -117,6 +120,7 @@
|
||||
"name": "menu",
|
||||
"style":"menu",
|
||||
"text": "{Scale=200%}[+Menu]",
|
||||
"binding": "Menu",
|
||||
"width": 64,
|
||||
"height": 32,
|
||||
"x": 206,
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
"type": "TextButton",
|
||||
"name": "tempHitPointCost",
|
||||
"text": "Cost",
|
||||
"binding": "Status",
|
||||
"width": 100,
|
||||
"height": 30,
|
||||
"x": 60,
|
||||
@@ -50,6 +51,7 @@
|
||||
"type": "TextButton",
|
||||
"name": "sell",
|
||||
"text": "tr(lblSell)",
|
||||
"binding": "Equip",
|
||||
"width": 100,
|
||||
"height": 30,
|
||||
"x": 190,
|
||||
@@ -68,6 +70,7 @@
|
||||
"type": "TextButton",
|
||||
"name": "done",
|
||||
"text": "tr(lblBack)",
|
||||
"binding": "Back",
|
||||
"width": 100,
|
||||
"height": 30,
|
||||
"x": 320,
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
"type": "TextButton",
|
||||
"name": "tempHitPointCost",
|
||||
"text": "Cost",
|
||||
"binding": "Status",
|
||||
"width": 100,
|
||||
"height": 30,
|
||||
"x": 165,
|
||||
@@ -50,6 +51,7 @@
|
||||
"type": "TextButton",
|
||||
"name": "sell",
|
||||
"text": "tr(lblSell)",
|
||||
"binding": "Equip",
|
||||
"width": 100,
|
||||
"height": 30,
|
||||
"x": 165,
|
||||
@@ -68,6 +70,7 @@
|
||||
"type": "TextButton",
|
||||
"name": "done",
|
||||
"text": "tr(lblBack)",
|
||||
"binding": "Back",
|
||||
"width": 100,
|
||||
"height": 30,
|
||||
"x": 165,
|
||||
|
||||
@@ -89,6 +89,7 @@
|
||||
"type": "TextButton",
|
||||
"name": "return",
|
||||
"text": "tr(lblBack)",
|
||||
"binding": "Back",
|
||||
"width": 60,
|
||||
"height": 30,
|
||||
"x": 400,
|
||||
@@ -98,6 +99,7 @@
|
||||
"type": "TextButton",
|
||||
"name": "equip",
|
||||
"text": "Equip",
|
||||
"binding": "Equip",
|
||||
"width": 60,
|
||||
"height": 30,
|
||||
"x": 320,
|
||||
@@ -107,6 +109,7 @@
|
||||
"type": "TextButton",
|
||||
"name": "use",
|
||||
"text": "Use",
|
||||
"binding": "Use",
|
||||
"width": 60,
|
||||
"height": 30,
|
||||
"x": 240,
|
||||
@@ -116,6 +119,7 @@
|
||||
"type": "TextButton",
|
||||
"name": "delete",
|
||||
"text": "Discard",
|
||||
"binding": "Status",
|
||||
"width": 60,
|
||||
"height": 30,
|
||||
"x": 160,
|
||||
|
||||
@@ -89,7 +89,8 @@
|
||||
"type": "TextButton",
|
||||
"name": "delete",
|
||||
"text": "Discard",
|
||||
"width": 80,
|
||||
"binding": "Status",
|
||||
"width": 60,
|
||||
"height": 30,
|
||||
"x": 8,
|
||||
"y": 363
|
||||
@@ -98,27 +99,30 @@
|
||||
"type": "TextButton",
|
||||
"name": "equip",
|
||||
"text": "Equip",
|
||||
"width": 80,
|
||||
"binding": "Equip",
|
||||
"width": 60,
|
||||
"height": 30,
|
||||
"x": 96,
|
||||
"x": 75,
|
||||
"y": 363
|
||||
} ,
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "use",
|
||||
"text": "Use",
|
||||
"width": 80,
|
||||
"binding": "Use",
|
||||
"width": 60,
|
||||
"height": 30,
|
||||
"x": 10,
|
||||
"x": 140,
|
||||
"y": 363
|
||||
},
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "return",
|
||||
"text": "tr(lblBack)",
|
||||
"width": 80,
|
||||
"binding": "Back",
|
||||
"width": 60,
|
||||
"height": 30,
|
||||
"x": 184,
|
||||
"x": 205,
|
||||
"y": 363
|
||||
}
|
||||
]
|
||||
|
||||
@@ -24,12 +24,23 @@
|
||||
"width": 405,
|
||||
"height": 265
|
||||
},
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "detail",
|
||||
"text": "Detail",
|
||||
"binding": "Equip",
|
||||
"width": 48,
|
||||
"height": 30,
|
||||
"x": 420,
|
||||
"y": 80
|
||||
} ,
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "done",
|
||||
"text": "tr(lblLeave)",
|
||||
"width": 48,
|
||||
"height": 30,
|
||||
"binding": "Back",
|
||||
"x": 420,
|
||||
"y": 120
|
||||
} ,
|
||||
|
||||
@@ -24,10 +24,21 @@
|
||||
"width": 260,
|
||||
"height": 405
|
||||
},
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "detail",
|
||||
"text": "Detail",
|
||||
"binding": "Equip",
|
||||
"width": 128,
|
||||
"height": 32,
|
||||
"x": 140,
|
||||
"y": 350
|
||||
} ,
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "done",
|
||||
"text": "tr(lblLeave)",
|
||||
"binding": "Back",
|
||||
"width": 128,
|
||||
"height": 32,
|
||||
"x": 140,
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
"type": "TextButton",
|
||||
"name": "done",
|
||||
"text": "tr(lblBack)",
|
||||
"binding": "Back",
|
||||
"width": 48,
|
||||
"height": 20,
|
||||
"x": 5,
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
"type": "TextButton",
|
||||
"name": "done",
|
||||
"text": "tr(lblBack)",
|
||||
"binding": "Back",
|
||||
"width": 48,
|
||||
"height": 20,
|
||||
"x": 5,
|
||||
|
||||
@@ -86,6 +86,7 @@
|
||||
"type": "ImageButton",
|
||||
"name": "leftAvatar",
|
||||
"style": "leftarrow",
|
||||
"selectable": true,
|
||||
"width": 16,
|
||||
"height": 16,
|
||||
"x": 164,
|
||||
@@ -103,6 +104,7 @@
|
||||
"type": "ImageButton",
|
||||
"name": "rightAvatar",
|
||||
"style": "rightarrow",
|
||||
"selectable": true,
|
||||
"width": 16,
|
||||
"height": 16,
|
||||
"x": 260,
|
||||
@@ -111,6 +113,7 @@
|
||||
{
|
||||
"type": "TextField",
|
||||
"name": "nameField",
|
||||
"selectable": true,
|
||||
"align": 1,
|
||||
"width": 112,
|
||||
"height": 16,
|
||||
@@ -120,6 +123,7 @@
|
||||
{
|
||||
"type": "Selector",
|
||||
"name": "race",
|
||||
"selectable": true,
|
||||
"width": 112,
|
||||
"height": 16,
|
||||
"x": 164,
|
||||
@@ -128,6 +132,7 @@
|
||||
{
|
||||
"type": "Selector",
|
||||
"name": "gender",
|
||||
"selectable": true,
|
||||
"width": 112,
|
||||
"height": 16,
|
||||
"x": 164,
|
||||
@@ -136,6 +141,7 @@
|
||||
{
|
||||
"type": "Selector",
|
||||
"name": "difficulty",
|
||||
"selectable": true,
|
||||
"width": 112,
|
||||
"height": 16,
|
||||
"x": 164,
|
||||
@@ -144,6 +150,7 @@
|
||||
{
|
||||
"type": "Selector",
|
||||
"name": "colorId",
|
||||
"selectable": true,
|
||||
"width": 112,
|
||||
"height": 16,
|
||||
"x": 164,
|
||||
@@ -152,6 +159,7 @@
|
||||
{
|
||||
"type": "Selector",
|
||||
"name": "mode",
|
||||
"selectable": true,
|
||||
"width": 112,
|
||||
"height": 16,
|
||||
"x": 164,
|
||||
@@ -161,6 +169,8 @@
|
||||
"type": "TextButton",
|
||||
"name": "back",
|
||||
"text": "tr(lblBack)",
|
||||
"selectable": true,
|
||||
"binding": "Back",
|
||||
"width": 100,
|
||||
"height": 30,
|
||||
"x": 348,
|
||||
@@ -170,6 +180,8 @@
|
||||
"type": "TextButton",
|
||||
"name": "start",
|
||||
"text": "tr(lblStart)",
|
||||
"selectable": true,
|
||||
"binding": "Status",
|
||||
"width": 100,
|
||||
"height": 30,
|
||||
"x": 348,
|
||||
|
||||
@@ -86,8 +86,9 @@
|
||||
"type": "ImageButton",
|
||||
"name": "leftAvatar",
|
||||
"style": "leftarrow",
|
||||
"width": 32,
|
||||
"height": 32,
|
||||
"selectable": true,
|
||||
"width": 24,
|
||||
"height": 24,
|
||||
"x": 116,
|
||||
"y": 114
|
||||
},
|
||||
@@ -103,14 +104,16 @@
|
||||
"type": "ImageButton",
|
||||
"name": "rightAvatar",
|
||||
"style": "rightarrow",
|
||||
"width": 28,
|
||||
"height": 28,
|
||||
"selectable": true,
|
||||
"width": 24,
|
||||
"height": 24,
|
||||
"x": 212,
|
||||
"y": 114
|
||||
},
|
||||
{
|
||||
"type": "TextField",
|
||||
"name": "nameField",
|
||||
"selectable": true,
|
||||
"width": 160,
|
||||
"height": 24,
|
||||
"x": 96,
|
||||
@@ -119,6 +122,7 @@
|
||||
{
|
||||
"type": "Selector",
|
||||
"name": "race",
|
||||
"selectable": true,
|
||||
"width": 168,
|
||||
"height": 24,
|
||||
"x": 96,
|
||||
@@ -127,6 +131,7 @@
|
||||
{
|
||||
"type": "Selector",
|
||||
"name": "gender",
|
||||
"selectable": true,
|
||||
"width": 168,
|
||||
"height": 24,
|
||||
"x": 96,
|
||||
@@ -135,6 +140,7 @@
|
||||
{
|
||||
"type": "Selector",
|
||||
"name": "difficulty",
|
||||
"selectable": true,
|
||||
"width": 168,
|
||||
"height": 24,
|
||||
"x": 96,
|
||||
@@ -143,6 +149,7 @@
|
||||
{
|
||||
"type": "Selector",
|
||||
"name": "colorId",
|
||||
"selectable": true,
|
||||
"width": 168,
|
||||
"height": 24,
|
||||
"x": 96,
|
||||
@@ -151,6 +158,7 @@
|
||||
{
|
||||
"type": "Selector",
|
||||
"name": "mode",
|
||||
"selectable": true,
|
||||
"width": 168,
|
||||
"height": 24,
|
||||
"x": 96,
|
||||
@@ -160,6 +168,8 @@
|
||||
"type": "TextButton",
|
||||
"name": "back",
|
||||
"text": "tr(lblBack)",
|
||||
"selectable": true,
|
||||
"binding": "Back",
|
||||
"width": 64,
|
||||
"height": 28,
|
||||
"x": 32,
|
||||
@@ -169,6 +179,8 @@
|
||||
"type": "TextButton",
|
||||
"name": "start",
|
||||
"text": "tr(lblStart)",
|
||||
"selectable": true,
|
||||
"binding": "Status",
|
||||
"width": 64,
|
||||
"height": 28,
|
||||
"x": 165,
|
||||
|
||||
@@ -45,6 +45,7 @@
|
||||
"type": "TextButton",
|
||||
"name": "return",
|
||||
"text": "tr(lblBack)",
|
||||
"binding": "Back",
|
||||
"width": 100,
|
||||
"height": 30,
|
||||
"x": 368,
|
||||
@@ -53,6 +54,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "save",
|
||||
"binding": "Use",
|
||||
"width": 100,
|
||||
"height": 30,
|
||||
"x": 368,
|
||||
|
||||
@@ -45,6 +45,7 @@
|
||||
"type": "TextButton",
|
||||
"name": "return",
|
||||
"text": "tr(lblBack)",
|
||||
"binding": "Back",
|
||||
"width": 120,
|
||||
"height": 32,
|
||||
"x": 10,
|
||||
@@ -53,6 +54,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "save",
|
||||
"binding": "Use",
|
||||
"width": 120,
|
||||
"height": 32,
|
||||
"x": 140,
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
"type": "TextButton",
|
||||
"name": "return",
|
||||
"text": "tr(lblBack)",
|
||||
"binding": "Back",
|
||||
"width": 52,
|
||||
"height": 30,
|
||||
"x": 415,
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
"type": "TextButton",
|
||||
"name": "return",
|
||||
"text": "tr(lblBack)",
|
||||
"binding": "Back",
|
||||
"width": 250,
|
||||
"height": 32,
|
||||
"x": 10,
|
||||
|
||||
@@ -61,8 +61,10 @@
|
||||
},
|
||||
{
|
||||
"type": "TextButton",
|
||||
"selectable": true,
|
||||
"name": "done",
|
||||
"text": "tr(lblBack)",
|
||||
"binding": "Back",
|
||||
"x": 400,
|
||||
"y": 240,
|
||||
"width": 70,
|
||||
@@ -70,6 +72,7 @@
|
||||
},
|
||||
{
|
||||
"type": "TextButton",
|
||||
"selectable": true,
|
||||
"name": "BBlack",
|
||||
"text": "tr(lblBlack)",
|
||||
"x": 15,
|
||||
@@ -79,6 +82,7 @@
|
||||
},
|
||||
{
|
||||
"type": "TextButton",
|
||||
"selectable": true,
|
||||
"name": "BBlue",
|
||||
"text": "tr(lblBlue)",
|
||||
"x": 65,
|
||||
@@ -88,6 +92,7 @@
|
||||
},
|
||||
{
|
||||
"type": "TextButton",
|
||||
"selectable": true,
|
||||
"name": "BGreen",
|
||||
"text": "tr(lblGreen)",
|
||||
"x": 115,
|
||||
@@ -97,6 +102,7 @@
|
||||
},
|
||||
{
|
||||
"type": "TextButton",
|
||||
"selectable": true,
|
||||
"name": "BRed",
|
||||
"text": "tr(lblRed)",
|
||||
"x": 165,
|
||||
@@ -106,6 +112,7 @@
|
||||
},
|
||||
{
|
||||
"type": "TextButton",
|
||||
"selectable": true,
|
||||
"name": "BWhite",
|
||||
"text": "tr(lblWhite)",
|
||||
"x": 215,
|
||||
@@ -115,6 +122,7 @@
|
||||
},
|
||||
{
|
||||
"type": "TextButton",
|
||||
"selectable": true,
|
||||
"name": "BColorless",
|
||||
"text": "tr(lblColorless)",
|
||||
"x": 265,
|
||||
@@ -132,7 +140,9 @@
|
||||
},
|
||||
{
|
||||
"type": "TextButton",
|
||||
"selectable": true,
|
||||
"name": "pull",
|
||||
"binding": "Equip",
|
||||
"text": "tr(lblDraw)",
|
||||
"x": 360,
|
||||
"y": 180,
|
||||
@@ -159,6 +169,7 @@
|
||||
},
|
||||
{
|
||||
"type": "SelectBox",
|
||||
"selectable": true,
|
||||
"name": "BSelectPlane",
|
||||
"text": "Select Plane",
|
||||
"x": 10,
|
||||
@@ -177,6 +188,7 @@
|
||||
},
|
||||
{
|
||||
"type": "TextButton",
|
||||
"selectable": true,
|
||||
"name": "B02",
|
||||
"text": "0-2",
|
||||
"x": 10,
|
||||
@@ -186,6 +198,7 @@
|
||||
},
|
||||
{
|
||||
"type": "TextButton",
|
||||
"selectable": true,
|
||||
"name": "B35",
|
||||
"text": "3-5",
|
||||
"x": 90,
|
||||
@@ -195,6 +208,7 @@
|
||||
},
|
||||
{
|
||||
"type": "TextButton",
|
||||
"selectable": true,
|
||||
"name": "B68",
|
||||
"text": "6-8",
|
||||
"x": 170,
|
||||
@@ -204,6 +218,7 @@
|
||||
},
|
||||
{
|
||||
"type": "TextButton",
|
||||
"selectable": true,
|
||||
"name": "B9X",
|
||||
"text": "9+",
|
||||
"x": 250,
|
||||
@@ -222,6 +237,7 @@
|
||||
},
|
||||
{
|
||||
"type": "TextButton",
|
||||
"selectable": true,
|
||||
"name": "BCommon",
|
||||
"text": "tr(lblCommon)",
|
||||
"x": 10,
|
||||
@@ -231,6 +247,7 @@
|
||||
},
|
||||
{
|
||||
"type": "TextButton",
|
||||
"selectable": true,
|
||||
"name": "BUncommon",
|
||||
"text": "tr(lblUncommon)",
|
||||
"x": 90,
|
||||
@@ -240,6 +257,7 @@
|
||||
},
|
||||
{
|
||||
"type": "TextButton",
|
||||
"selectable": true,
|
||||
"name": "BRare",
|
||||
"text": "tr(lblRare)",
|
||||
"x": 170,
|
||||
@@ -249,6 +267,7 @@
|
||||
},
|
||||
{
|
||||
"type": "TextButton",
|
||||
"selectable": true,
|
||||
"name": "BMythic",
|
||||
"text": "Mythic",
|
||||
"x": 250,
|
||||
@@ -258,6 +277,7 @@
|
||||
},
|
||||
{
|
||||
"type": "TextButton",
|
||||
"selectable": true,
|
||||
"name": "BResetEdition",
|
||||
"text": "tr(lblReset)",
|
||||
"x": 250,
|
||||
|
||||
@@ -61,8 +61,10 @@
|
||||
},
|
||||
{
|
||||
"type": "TextButton",
|
||||
"selectable": true,
|
||||
"name": "done",
|
||||
"text": "tr(lblBack)",
|
||||
"binding": "Back",
|
||||
"x": 175,
|
||||
"y": 150,
|
||||
"width": 70,
|
||||
@@ -70,6 +72,7 @@
|
||||
},
|
||||
{
|
||||
"type": "TextButton",
|
||||
"selectable": true,
|
||||
"name": "BBlack",
|
||||
"text": "tr(lblBlack)",
|
||||
"x": 58,
|
||||
@@ -79,6 +82,7 @@
|
||||
},
|
||||
{
|
||||
"type": "TextButton",
|
||||
"selectable": true,
|
||||
"name": "BBlue",
|
||||
"text": "tr(lblBlue)",
|
||||
"x": 113,
|
||||
@@ -88,6 +92,7 @@
|
||||
},
|
||||
{
|
||||
"type": "TextButton",
|
||||
"selectable": true,
|
||||
"name": "BGreen",
|
||||
"text": "tr(lblGreen)",
|
||||
"x": 168,
|
||||
@@ -97,6 +102,7 @@
|
||||
},
|
||||
{
|
||||
"type": "TextButton",
|
||||
"selectable": true,
|
||||
"name": "BRed",
|
||||
"text": "tr(lblRed)",
|
||||
"x": 58,
|
||||
@@ -106,6 +112,7 @@
|
||||
},
|
||||
{
|
||||
"type": "TextButton",
|
||||
"selectable": true,
|
||||
"name": "BWhite",
|
||||
"text": "tr(lblWhite)",
|
||||
"x": 113,
|
||||
@@ -115,6 +122,7 @@
|
||||
},
|
||||
{
|
||||
"type": "TextButton",
|
||||
"selectable": true,
|
||||
"name": "BColorless",
|
||||
"text": "tr(lblColorless)",
|
||||
"x": 168,
|
||||
@@ -134,6 +142,8 @@
|
||||
"type": "TextButton",
|
||||
"name": "pull",
|
||||
"text": "tr(lblDraw)",
|
||||
"selectable": true,
|
||||
"binding": "Equip",
|
||||
"x": 16,
|
||||
"y": 150,
|
||||
"width": 97,
|
||||
@@ -161,6 +171,7 @@
|
||||
"type": "SelectBox",
|
||||
"name": "BSelectPlane",
|
||||
"text": "Select Plane",
|
||||
"selectable": true,
|
||||
"x": 0,
|
||||
"y": 220,
|
||||
"width": 190,
|
||||
@@ -177,6 +188,7 @@
|
||||
},
|
||||
{
|
||||
"type": "TextButton",
|
||||
"selectable": true,
|
||||
"name": "B02",
|
||||
"text": "0-2",
|
||||
"x": 20,
|
||||
@@ -186,6 +198,7 @@
|
||||
},
|
||||
{
|
||||
"type": "TextButton",
|
||||
"selectable": true,
|
||||
"name": "B35",
|
||||
"text": "3-5",
|
||||
"x": 80,
|
||||
@@ -195,6 +208,7 @@
|
||||
},
|
||||
{
|
||||
"type": "TextButton",
|
||||
"selectable": true,
|
||||
"name": "B68",
|
||||
"text": "6-8",
|
||||
"x": 140,
|
||||
@@ -204,6 +218,7 @@
|
||||
},
|
||||
{
|
||||
"type": "TextButton",
|
||||
"selectable": true,
|
||||
"name": "B9X",
|
||||
"text": "9+",
|
||||
"x": 200,
|
||||
@@ -222,6 +237,7 @@
|
||||
},
|
||||
{
|
||||
"type": "TextButton",
|
||||
"selectable": true,
|
||||
"name": "BCommon",
|
||||
"text": "tr(lblCommon)",
|
||||
"x": 20,
|
||||
@@ -231,6 +247,7 @@
|
||||
},
|
||||
{
|
||||
"type": "TextButton",
|
||||
"selectable": true,
|
||||
"name": "BUncommon",
|
||||
"text": "tr(lblUncommon)",
|
||||
"x": 80,
|
||||
@@ -240,6 +257,7 @@
|
||||
},
|
||||
{
|
||||
"type": "TextButton",
|
||||
"selectable": true,
|
||||
"name": "BRare",
|
||||
"text": "tr(lblRare)",
|
||||
"x": 140,
|
||||
@@ -249,6 +267,7 @@
|
||||
},
|
||||
{
|
||||
"type": "TextButton",
|
||||
"selectable": true,
|
||||
"name": "BMythic",
|
||||
"text": "Mythic",
|
||||
"x": 200,
|
||||
@@ -258,6 +277,7 @@
|
||||
},
|
||||
{
|
||||
"type": "TextButton",
|
||||
"selectable": true,
|
||||
"name": "BResetEdition",
|
||||
"text": "tr(lblReset)",
|
||||
"x": 195,
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
"type": "TextButton",
|
||||
"name": "Start",
|
||||
"text": "tr(lblNewGame)",
|
||||
"selectable": true,
|
||||
"width": 80,
|
||||
"height": 30,
|
||||
"x": 160,
|
||||
@@ -22,6 +23,7 @@
|
||||
"type": "TextButton",
|
||||
"name": "Start+",
|
||||
"text": "tr(lblNewGame) +",
|
||||
"selectable": true,
|
||||
"width": 80,
|
||||
"height": 30,
|
||||
"x": 240,
|
||||
@@ -31,6 +33,7 @@
|
||||
"type": "TextButton",
|
||||
"name": "Load",
|
||||
"text": "tr(lblLoad)",
|
||||
"selectable": true,
|
||||
"width": 160,
|
||||
"height": 30,
|
||||
"x": 160,
|
||||
@@ -40,6 +43,7 @@
|
||||
"type": "TextButton",
|
||||
"name": "Save",
|
||||
"text": "tr(lblSave)",
|
||||
"selectable": true,
|
||||
"width": 160,
|
||||
"height": 30,
|
||||
"x": 160,
|
||||
@@ -49,7 +53,9 @@
|
||||
"type": "TextButton",
|
||||
"name": "Resume",
|
||||
"text": "tr(lblResume)",
|
||||
"selectable": true,
|
||||
"width": 160,
|
||||
"binding": "Back",
|
||||
"height": 30,
|
||||
"x": 160,
|
||||
"y": 140
|
||||
@@ -58,6 +64,7 @@
|
||||
"type": "TextButton",
|
||||
"name": "Continue",
|
||||
"text": "tr(lblContinue)",
|
||||
"selectable": true,
|
||||
"width": 160,
|
||||
"height": 30,
|
||||
"x": 160,
|
||||
@@ -67,6 +74,7 @@
|
||||
"type": "TextButton",
|
||||
"name": "Settings",
|
||||
"text": "tr(lblSettings)",
|
||||
"selectable": true,
|
||||
"width": 160,
|
||||
"height": 30,
|
||||
"x": 160,
|
||||
@@ -76,6 +84,7 @@
|
||||
"type": "TextButton",
|
||||
"name": "Exit",
|
||||
"text": "tr(lblExit)",
|
||||
"selectable": true,
|
||||
"width": 75,
|
||||
"height": 30,
|
||||
"x": 160,
|
||||
@@ -85,6 +94,7 @@
|
||||
"type": "TextButton",
|
||||
"name": "Switch",
|
||||
"text": "tr(lblClassic)",
|
||||
"selectable": true,
|
||||
"width": 75,
|
||||
"height": 30,
|
||||
"x": 245,
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
"type": "TextButton",
|
||||
"name": "Start",
|
||||
"text": "tr(lblNewGame)",
|
||||
"selectable": true,
|
||||
"width": 238,
|
||||
"height": 48,
|
||||
"x": 16,
|
||||
@@ -22,6 +23,7 @@
|
||||
"type": "TextButton",
|
||||
"name": "Start+",
|
||||
"text": "tr(lblNewGame) +",
|
||||
"selectable": true,
|
||||
"width": 238,
|
||||
"height": 48,
|
||||
"x": 16,
|
||||
@@ -31,6 +33,7 @@
|
||||
"type": "TextButton",
|
||||
"name": "Load",
|
||||
"text": "tr(lblLoad)",
|
||||
"selectable": true,
|
||||
"width": 238,
|
||||
"height": 48,
|
||||
"x": 16,
|
||||
@@ -40,6 +43,7 @@
|
||||
"type": "TextButton",
|
||||
"name": "Save",
|
||||
"text": "tr(lblSave)",
|
||||
"selectable": true,
|
||||
"width": 238,
|
||||
"height": 48,
|
||||
"x": 16,
|
||||
@@ -49,6 +53,8 @@
|
||||
"type": "TextButton",
|
||||
"name": "Resume",
|
||||
"text": "tr(lblResume)",
|
||||
"selectable": true,
|
||||
"binding": "Back",
|
||||
"width": 238,
|
||||
"height": 48,
|
||||
"x": 16,
|
||||
@@ -58,6 +64,7 @@
|
||||
"type": "TextButton",
|
||||
"name": "Settings",
|
||||
"text": "tr(lblSettings)",
|
||||
"selectable": true,
|
||||
"width": 238,
|
||||
"height": 48,
|
||||
"x": 16,
|
||||
@@ -67,6 +74,7 @@
|
||||
"type": "TextButton",
|
||||
"name": "Switch",
|
||||
"text": "tr(lblClassic)",
|
||||
"selectable": true,
|
||||
"width": 238,
|
||||
"height": 48,
|
||||
"x": 16,
|
||||
@@ -76,6 +84,7 @@
|
||||
"type": "TextButton",
|
||||
"name": "Exit",
|
||||
"text": "tr(lblExit)",
|
||||
"selectable": true,
|
||||
"width": 238,
|
||||
"height": 48,
|
||||
"x": 16,
|
||||
@@ -85,6 +94,7 @@
|
||||
"type": "TextButton",
|
||||
"name": "Continue",
|
||||
"text": "tr(lblContinue)",
|
||||
"selectable": true,
|
||||
"width": 238,
|
||||
"height": 48,
|
||||
"x": 16,
|
||||
|
||||
@@ -113,6 +113,7 @@
|
||||
"type": "TextButton",
|
||||
"name": "return",
|
||||
"text": "tr(lblBack)",
|
||||
"binding": "Back",
|
||||
"width": 100,
|
||||
"height": 30,
|
||||
"x": 335,
|
||||
|
||||
@@ -104,6 +104,7 @@
|
||||
"type": "TextButton",
|
||||
"name": "return",
|
||||
"text": "tr(lblBack)",
|
||||
"binding": "Back",
|
||||
"width": 260,
|
||||
"height": 30,
|
||||
"x": 5,
|
||||
|
||||