mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 03:08:02 +00:00
integrating TextraLabel into adventure ui
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
package forge.adventure.character;
|
||||
|
||||
import com.badlogic.gdx.graphics.Color;
|
||||
import com.badlogic.gdx.graphics.g2d.*;
|
||||
import com.badlogic.gdx.math.Vector2;
|
||||
import com.badlogic.gdx.scenes.scene2d.Actor;
|
||||
@@ -217,12 +218,19 @@ public class CharacterSprite extends MapActor {
|
||||
@Override
|
||||
public void draw(Batch batch, float parentAlpha) {
|
||||
if (currentAnimation == null || hidden)
|
||||
{
|
||||
|
||||
return;
|
||||
}
|
||||
super.draw(batch,parentAlpha);
|
||||
beforeDraw(batch,parentAlpha);
|
||||
TextureRegion currentFrame = currentAnimation.getKeyFrame(timer, true);
|
||||
setHeight(currentFrame.getRegionHeight());
|
||||
setWidth(currentFrame.getRegionWidth());
|
||||
Color oldColor=batch.getColor().cpy();
|
||||
batch.setColor(getColor());
|
||||
batch.draw(currentFrame, getX(), getY());
|
||||
batch.setColor(oldColor);
|
||||
super.draw(batch,parentAlpha);
|
||||
//batch.draw(getDebugTexture(),getX(),getY());
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@ import com.badlogic.gdx.math.Vector2;
|
||||
import com.badlogic.gdx.scenes.scene2d.Actor;
|
||||
import com.badlogic.gdx.utils.Array;
|
||||
import forge.adventure.util.Config;
|
||||
import forge.util.MyRandom;
|
||||
|
||||
/**
|
||||
* Map Actor base class for Actors on the map
|
||||
@@ -18,6 +19,12 @@ import forge.adventure.util.Config;
|
||||
public class MapActor extends Actor {
|
||||
|
||||
|
||||
private boolean removeIfEffectsAreFinished;
|
||||
|
||||
public void removeAfterEffects() {
|
||||
removeIfEffectsAreFinished=true;
|
||||
}
|
||||
|
||||
class CurrentEffect
|
||||
{
|
||||
public CurrentEffect(String path,ParticleEffect effect,Vector2 offset,boolean overlay)
|
||||
@@ -78,7 +85,7 @@ public class MapActor extends Actor {
|
||||
}
|
||||
public void playEffect(String path)
|
||||
{
|
||||
playEffect(path,0,false,Vector2.Zero);
|
||||
playEffect(path,0,true,Vector2.Zero);
|
||||
}
|
||||
public MapActor(int objectId)
|
||||
{
|
||||
@@ -91,7 +98,9 @@ public class MapActor extends Actor {
|
||||
private Texture getDebugTexture() {
|
||||
if (debugTexture == null) {
|
||||
Pixmap pixmap = new Pixmap((int) getWidth(), (int) getHeight(), Pixmap.Format.RGBA8888);
|
||||
pixmap.setColor(1.0f,0,0,0.5f);
|
||||
//pixmap.setColor(1.0f,0,0,0.5f);
|
||||
pixmap.setColor(MyRandom.getRandom().nextFloat(),MyRandom.getRandom().nextFloat(),MyRandom.getRandom().nextFloat(),0.5f);
|
||||
|
||||
pixmap.fillRectangle((int)(boundingRect.x - getX()), (int)(getHeight()- boundingRect.getHeight()) + (int)(boundingRect.y - getY()), (int)boundingRect.getWidth(), (int)boundingRect.getHeight());
|
||||
debugTexture = new Texture(pixmap);
|
||||
pixmap.dispose();
|
||||
@@ -115,7 +124,9 @@ public class MapActor extends Actor {
|
||||
public void draw(Batch batch, float alpha) {
|
||||
|
||||
if(boundDebug)
|
||||
{
|
||||
batch.draw(getDebugTexture(),getX(),getY());
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -153,6 +164,9 @@ public class MapActor extends Actor {
|
||||
effect.effect.dispose();
|
||||
}
|
||||
}
|
||||
if(effects.size==0&&removeIfEffectsAreFinished&&getParent()!=null)
|
||||
getParent().removeActor(this);
|
||||
|
||||
}
|
||||
@Override
|
||||
protected void positionChanged() {
|
||||
|
||||
@@ -7,6 +7,8 @@ import com.badlogic.gdx.scenes.scene2d.Actor;
|
||||
import com.badlogic.gdx.scenes.scene2d.Group;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.*;
|
||||
import com.badlogic.gdx.utils.Array;
|
||||
import com.github.tommyettinger.textra.TextraButton;
|
||||
import com.github.tommyettinger.textra.TextraLabel;
|
||||
import forge.Forge;
|
||||
import forge.adventure.character.EnemySprite;
|
||||
import forge.adventure.data.ArenaData;
|
||||
@@ -27,7 +29,7 @@ public class ArenaScene extends UIScene implements IAfterMatch {
|
||||
private static ArenaScene object;
|
||||
private final float gridSize;
|
||||
private ArenaData arenaData;
|
||||
private TextButton startButton;
|
||||
private TextraButton startButton;
|
||||
|
||||
public static ArenaScene instance() {
|
||||
if(object==null)
|
||||
@@ -35,10 +37,10 @@ public class ArenaScene extends UIScene implements IAfterMatch {
|
||||
return object;
|
||||
}
|
||||
|
||||
private TextButton doneButton;
|
||||
private TextraButton doneButton;
|
||||
Dialog startDialog;
|
||||
Dialog areYouSureDialog;
|
||||
private Label goldLabel;
|
||||
private TextraLabel goldLabel;
|
||||
|
||||
private Group arenaPlane;
|
||||
private Random rand=new Random();
|
||||
@@ -89,7 +91,7 @@ public class ArenaScene extends UIScene implements IAfterMatch {
|
||||
|
||||
startButton=ui.findActor("start");
|
||||
|
||||
startDialog = new Dialog(Forge.getLocalizer().getMessage("lblStart"), Controls.GetSkin())
|
||||
startDialog = new Dialog(Forge.getLocalizer().getMessage("lblStart"), Controls.getSkin())
|
||||
{
|
||||
protected void result(Object object)
|
||||
{
|
||||
@@ -106,7 +108,7 @@ public class ArenaScene extends UIScene implements IAfterMatch {
|
||||
startDialog.getColor().a = 0;
|
||||
|
||||
|
||||
areYouSureDialog= new Dialog(Forge.getLocalizer().getMessage("lblConcedeTitle"), Controls.GetSkin())
|
||||
areYouSureDialog= new Dialog(Forge.getLocalizer().getMessage("lblConcedeTitle"), Controls.getSkin())
|
||||
{
|
||||
protected void result(Object object)
|
||||
{
|
||||
@@ -304,7 +306,7 @@ public class ArenaScene extends UIScene implements IAfterMatch {
|
||||
player=fighters.get(fighters.size-1);
|
||||
|
||||
|
||||
goldLabel.setText(data.entryFee +" $");
|
||||
goldLabel.setText(data.entryFee +" [+Gold]");
|
||||
goldLabel.setVisible(true);
|
||||
|
||||
startButton.setDisabled(data.entryFee>Current.player().getGold());
|
||||
|
||||
@@ -18,7 +18,7 @@ public class DeckEditScene extends ForgeScene {
|
||||
|
||||
private static DeckEditScene object;
|
||||
|
||||
public static DeckEditScene instance() {
|
||||
public static DeckEditScene getInstance() {
|
||||
if(object==null)
|
||||
object=new DeckEditScene();
|
||||
return object;
|
||||
|
||||
@@ -7,29 +7,38 @@ import com.badlogic.gdx.scenes.scene2d.ui.*;
|
||||
import com.badlogic.gdx.scenes.scene2d.utils.ClickListener;
|
||||
import com.badlogic.gdx.utils.Align;
|
||||
import com.badlogic.gdx.utils.IntMap;
|
||||
import com.github.tommyettinger.textra.TextraButton;
|
||||
import com.github.tommyettinger.textra.TextraLabel;
|
||||
import forge.Forge;
|
||||
import forge.adventure.player.AdventurePlayer;
|
||||
import forge.adventure.util.Controls;
|
||||
import forge.adventure.util.Current;
|
||||
|
||||
public class DeckSelectScene extends UIScene {
|
||||
private final IntMap<TextButton> buttons = new IntMap<>();
|
||||
private final IntMap<TextraButton> buttons = new IntMap<>();
|
||||
Color defColor;
|
||||
Dialog dialog;
|
||||
TextField textInput;
|
||||
Table layout;
|
||||
Label header;
|
||||
TextButton back, edit, rename, dialogRenameBtn, dialogAbortBtn;
|
||||
TextraLabel header;
|
||||
TextraButton back, edit, rename, dialogRenameBtn, dialogAbortBtn;
|
||||
int currentSlot = 0;
|
||||
ScrollPane scrollPane;
|
||||
|
||||
private static DeckSelectScene object;
|
||||
|
||||
public static DeckSelectScene instance() {
|
||||
if(object==null)
|
||||
object=new DeckSelectScene();
|
||||
return object;
|
||||
}
|
||||
public DeckSelectScene() {
|
||||
super(Forge.isLandscapeMode() ? "ui/deck_selector.json" : "ui/deck_selector_portrait.json");
|
||||
|
||||
layout = new Table();
|
||||
stage.addActor(layout);
|
||||
|
||||
header = Controls.newLabel(Forge.getLocalizer().getMessage("lblSelectYourDeck"));
|
||||
header = Controls.newTextraLabel(Forge.getLocalizer().getMessage("lblSelectYourDeck"));
|
||||
layout.add(header).colspan(2).align(Align.center).pad(2, 5, 2, 5);
|
||||
layout.row();
|
||||
for (int i = 0; i < AdventurePlayer.NUMBER_OF_DECKS; i++)
|
||||
@@ -50,11 +59,8 @@ public class DeckSelectScene extends UIScene {
|
||||
dialog.hide();
|
||||
|
||||
back = ui.findActor("return");
|
||||
back.getLabel().setText(Forge.getLocalizer().getMessage("lblBack"));
|
||||
edit = ui.findActor("edit");
|
||||
edit.getLabel().setText(Forge.getLocalizer().getMessage("lblEdit"));
|
||||
rename = ui.findActor("rename");
|
||||
rename.getLabel().setText(Forge.getLocalizer().getMessage("lblRename"));
|
||||
ui.onButtonPress("return", () -> DeckSelectScene.this.back());
|
||||
ui.onButtonPress("edit", () -> DeckSelectScene.this.edit());
|
||||
ui.onButtonPress("rename", () -> {
|
||||
@@ -68,8 +74,8 @@ public class DeckSelectScene extends UIScene {
|
||||
scrollPane.setActor(layout);
|
||||
}
|
||||
|
||||
private TextButton addDeckSlot(String name, int i) {
|
||||
TextButton button = Controls.newTextButton("-");
|
||||
private TextraButton addDeckSlot(String name, int i) {
|
||||
TextraButton button = Controls.newTextButton("-");
|
||||
button.addListener(new ClickListener() {
|
||||
@Override
|
||||
public void clicked(InputEvent event, float x, float y) {
|
||||
@@ -96,11 +102,11 @@ public class DeckSelectScene extends UIScene {
|
||||
public boolean select(int slot) {
|
||||
currentSlot = slot;
|
||||
|
||||
for (IntMap.Entry<TextButton> butt : new IntMap.Entries<TextButton>(buttons)) {
|
||||
for (IntMap.Entry<TextraButton> butt : new IntMap.Entries<TextraButton>(buttons)) {
|
||||
butt.value.setColor(defColor);
|
||||
}
|
||||
if (buttons.containsKey(slot)) {
|
||||
TextButton button = buttons.get(slot);
|
||||
TextraButton button = buttons.get(slot);
|
||||
button.setColor(Color.RED);
|
||||
}
|
||||
Current.player().setSelectedDeckSlot(slot);
|
||||
@@ -136,47 +142,7 @@ public class DeckSelectScene extends UIScene {
|
||||
super.enter();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void resLoaded() {
|
||||
super.resLoaded();
|
||||
layout = new Table();
|
||||
stage.addActor(layout);
|
||||
|
||||
header = Controls.newLabel(Forge.getLocalizer().getMessage("lblSelectYourDeck"));
|
||||
layout.add(header).colspan(2).align(Align.center).pad(2, 5, 2, 5);
|
||||
layout.row();
|
||||
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();
|
||||
dialog.getButtonTable().add(Controls.newTextButton(Forge.getLocalizer().getMessage("lblRename"), () -> DeckSelectScene.this.rename())).align(Align.left);
|
||||
dialog.getButtonTable().add(Controls.newTextButton(Forge.getLocalizer().getMessage("lblAbort"), () -> dialog.hide())).align(Align.left);
|
||||
|
||||
back = ui.findActor("return");
|
||||
back.getLabel().setText(Forge.getLocalizer().getMessage("lblBack"));
|
||||
edit = ui.findActor("edit");
|
||||
edit.getLabel().setText(Forge.getLocalizer().getMessage("lblEdit"));
|
||||
rename = ui.findActor("rename");
|
||||
rename.getLabel().setText(Forge.getLocalizer().getMessage("lblRename"));
|
||||
ui.onButtonPress("return", () -> DeckSelectScene.this.back());
|
||||
ui.onButtonPress("edit", () -> DeckSelectScene.this.edit());
|
||||
ui.onButtonPress("rename", () -> {
|
||||
textInput.setText(Current.player().getSelectedDeck().getName());
|
||||
dialog.show(stage);
|
||||
stage.setKeyboardFocus(textInput);
|
||||
});
|
||||
defColor = ui.findActor("return").getColor();
|
||||
|
||||
ScrollPane scrollPane = ui.findActor("deckSlots");
|
||||
scrollPane.setActor(layout);
|
||||
|
||||
}
|
||||
|
||||
private void rename() {
|
||||
dialog.hide();
|
||||
@@ -186,6 +152,6 @@ public class DeckSelectScene extends UIScene {
|
||||
}
|
||||
|
||||
private void edit() {
|
||||
Forge.switchScene(SceneType.DeckEditScene.instance);
|
||||
Forge.switchScene(DeckEditScene.getInstance());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,8 +3,11 @@ package forge.adventure.scene;
|
||||
import com.badlogic.gdx.Gdx;
|
||||
import com.badlogic.gdx.InputProcessor;
|
||||
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;
|
||||
|
||||
/**
|
||||
* Hud base scene
|
||||
|
||||
@@ -2,8 +2,7 @@ package forge.adventure.scene;
|
||||
|
||||
import com.badlogic.gdx.Input;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.Image;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.Label;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.TextButton;
|
||||
import com.github.tommyettinger.textra.TextraButton;
|
||||
import forge.Forge;
|
||||
import forge.adventure.stage.GameHUD;
|
||||
import forge.adventure.util.Current;
|
||||
@@ -20,38 +19,19 @@ public class InnScene extends UIScene {
|
||||
return object;
|
||||
}
|
||||
|
||||
TextButton tempHitPointCost, sell, leave;
|
||||
Label tempHitPoints;
|
||||
TextraButton tempHitPointCost, sell, leave;
|
||||
Image healIcon, sellIcon, leaveIcon;
|
||||
|
||||
private InnScene() {
|
||||
|
||||
super(Forge.isLandscapeMode() ? "ui/inn.json" : "ui/inn_portrait.json");
|
||||
ui.onButtonPress("done", new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
InnScene.this.done();
|
||||
}
|
||||
});
|
||||
ui.onButtonPress("tempHitPointCost", new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
InnScene.this.potionOfFalseLife();
|
||||
}
|
||||
});
|
||||
ui.onButtonPress("sell", new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
InnScene.this.sell();
|
||||
}
|
||||
});
|
||||
tempHitPointCost = ui.findActor("tempHitPointCost");
|
||||
ui.onButtonPress("done", InnScene.this::done);
|
||||
ui.onButtonPress("tempHitPointCost", InnScene.this::potionOfFalseLife);
|
||||
ui.onButtonPress("sell", InnScene.this::sell);
|
||||
leave = ui.findActor("done");
|
||||
leave.getLabel().setText(Forge.getLocalizer().getMessage("lblLeave"));
|
||||
sell = ui.findActor("sell");
|
||||
sell.getLabel().setText(Forge.getLocalizer().getMessage("lblSell"));
|
||||
|
||||
tempHitPoints = ui.findActor("tempHitPoints");
|
||||
tempHitPoints.setText(Forge.getLocalizer().getMessageorUseDefault("lblTempHitPoints", "Temporary Hit Points"));
|
||||
|
||||
leaveIcon = ui.findActor("leaveIcon");
|
||||
healIcon = ui.findActor("healIcon");
|
||||
@@ -89,9 +69,8 @@ public class InnScene extends UIScene {
|
||||
boolean purchaseable = Current.player().getMaxLife() == Current.player().getLife() &&
|
||||
tempHealthCost <= Current.player().getGold();
|
||||
|
||||
tempHitPointCost = ui.findActor("tempHitPointCost");
|
||||
tempHitPointCost.setDisabled(!purchaseable);
|
||||
tempHitPointCost.getLabel().setText("$" + tempHealthCost);
|
||||
tempHitPointCost.setText( tempHealthCost+"[+Gold]");
|
||||
clearActorObjects();
|
||||
addActorObject(tempHitPointCost);
|
||||
addActorObject(sell);
|
||||
|
||||
@@ -8,6 +8,8 @@ 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;
|
||||
import forge.adventure.data.ItemData;
|
||||
import forge.adventure.stage.ConsoleCommandInterpreter;
|
||||
@@ -22,10 +24,10 @@ import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class InventoryScene extends UIScene {
|
||||
TextButton leave;
|
||||
TextraButton leave;
|
||||
Button equipButton;
|
||||
TextButton useButton;
|
||||
Label itemDescription;
|
||||
TextraButton useButton;
|
||||
TextraLabel itemDescription;
|
||||
Dialog confirm;
|
||||
Dialog useDialog;
|
||||
private Table inventory;
|
||||
@@ -51,7 +53,6 @@ public class InventoryScene extends UIScene {
|
||||
deleteButton = ui.findActor("delete");
|
||||
itemDescription = ui.findActor("item_description");
|
||||
itemDescription.setAlignment(Align.topLeft);
|
||||
leave.getLabel().setText(Forge.getLocalizer().getMessage("lblBack"));
|
||||
|
||||
inventoryButtons=new Array<>();
|
||||
equipmentSlots=new HashMap<>();
|
||||
@@ -102,7 +103,7 @@ public class InventoryScene extends UIScene {
|
||||
});
|
||||
}
|
||||
}
|
||||
inventory = new Table(Controls.GetSkin());
|
||||
inventory = new Table(Controls.getSkin());
|
||||
ScrollPane scrollPane = ui.findActor("inventory");
|
||||
scrollPane.setScrollingDisabled(true,false);
|
||||
scrollPane.setActor(inventory);
|
||||
@@ -110,7 +111,7 @@ public class InventoryScene extends UIScene {
|
||||
columns-=1;
|
||||
if(columns<=0)columns=1;
|
||||
scrollPane.setActor(inventory);
|
||||
confirm = new Dialog("\n "+Forge.getLocalizer().getMessage("lblDelete"), Controls.GetSkin())
|
||||
confirm = new Dialog("", Controls.getSkin())
|
||||
{
|
||||
protected void result(Object object)
|
||||
{
|
||||
@@ -119,6 +120,7 @@ public class InventoryScene extends UIScene {
|
||||
confirm.hide();
|
||||
};
|
||||
};
|
||||
confirm.text( Controls.newLabel(Forge.getLocalizer().getMessage("lblDelete")));
|
||||
|
||||
confirm.button(Forge.getLocalizer().getMessage("lblYes"), true);
|
||||
confirm.button(Forge.getLocalizer().getMessage("lblNo"), false);
|
||||
@@ -130,7 +132,7 @@ public class InventoryScene extends UIScene {
|
||||
confirm.getColor().a = 0;
|
||||
|
||||
|
||||
useDialog = new Dialog("\n "+Forge.getLocalizer().getMessage("lblDelete"), Controls.GetSkin())
|
||||
useDialog = new Dialog("", Controls.getSkin())
|
||||
{
|
||||
protected void result(Object object)
|
||||
{
|
||||
@@ -221,10 +223,10 @@ public class InventoryScene extends UIScene {
|
||||
boolean isInPoi = MapStage.getInstance().isInMap();
|
||||
useButton.setDisabled(!(isInPoi&&data.usableInPoi||!isInPoi&&data.usableOnWorldMap));
|
||||
if(data.manaNeeded==0)
|
||||
useButton.setText("Use Item");
|
||||
useButton.setText("Use");
|
||||
else
|
||||
useButton.setText("Use Item ("+data.manaNeeded+" mana)");
|
||||
|
||||
useButton.setText("Use "+data.manaNeeded+"[+Mana]");
|
||||
useButton.layout();
|
||||
if(Current.player().getMana()<data.manaNeeded)
|
||||
useButton.setDisabled(true);
|
||||
|
||||
@@ -235,9 +237,9 @@ public class InventoryScene extends UIScene {
|
||||
else
|
||||
{
|
||||
equipButton.setDisabled(false);
|
||||
if(equipButton instanceof TextButton)
|
||||
if(equipButton instanceof TextraButton)
|
||||
{
|
||||
TextButton button=(TextButton) equipButton;
|
||||
TextraButton button=(TextraButton) equipButton;
|
||||
String item=Current.player().itemInSlot(data.equipmentSlot);
|
||||
if(item!=null&&item.equals(data.name))
|
||||
{
|
||||
@@ -247,6 +249,7 @@ public class InventoryScene extends UIScene {
|
||||
{
|
||||
button.setText("Equip");
|
||||
}
|
||||
button.layout();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -331,7 +334,7 @@ public class InventoryScene extends UIScene {
|
||||
|
||||
public Button createInventorySlot() {
|
||||
|
||||
ImageButton button=new ImageButton(Controls.GetSkin(),"item_frame");
|
||||
ImageButton button=new ImageButton(Controls.getSkin(),"item_frame");
|
||||
return button;
|
||||
}
|
||||
|
||||
|
||||
@@ -5,10 +5,13 @@ 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.*;
|
||||
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;
|
||||
import forge.adventure.data.HeroListData;
|
||||
@@ -41,7 +44,7 @@ public class NewGameScene extends UIScene {
|
||||
private Selector mode;
|
||||
private Selector difficulty;
|
||||
private Array<String> stringList, random, custom;
|
||||
private Label colorLabel;
|
||||
private TextraLabel colorLabel;
|
||||
private int selected = -1;
|
||||
|
||||
private NewGameScene() {
|
||||
@@ -64,7 +67,7 @@ public class NewGameScene extends UIScene {
|
||||
gender = ui.findActor("gender");
|
||||
mode = ui.findActor("mode");
|
||||
colorLabel = ui.findActor("colorIdL");
|
||||
String colorIdLabel = colorLabel.getText().toString();
|
||||
String colorIdLabel = colorLabel.storedText;
|
||||
custom = new Array<>();
|
||||
for (DeckProxy deckProxy : DeckProxy.getAllCustomStarterDecks())
|
||||
custom.add(deckProxy.getName());
|
||||
@@ -314,7 +317,7 @@ public class NewGameScene extends UIScene {
|
||||
performTouch(selectedKey);
|
||||
} else {
|
||||
if (selectedActor != null) {
|
||||
if (selectedActor instanceof TextButton)
|
||||
if (selectedActor instanceof TextraButton)
|
||||
performTouch(selectedActor);
|
||||
else if (selectedActor instanceof TextField && !kbVisible) {
|
||||
lastInputField = selectedActor;
|
||||
|
||||
@@ -3,9 +3,13 @@ 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.*;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.Image;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.ScrollPane;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.Table;
|
||||
import com.badlogic.gdx.scenes.scene2d.utils.TextureRegionDrawable;
|
||||
import com.badlogic.gdx.utils.Align;
|
||||
import com.github.tommyettinger.textra.TextraButton;
|
||||
import com.github.tommyettinger.textra.TextraLabel;
|
||||
import forge.Forge;
|
||||
import forge.adventure.character.EnemySprite;
|
||||
import forge.adventure.data.EnemyData;
|
||||
@@ -26,32 +30,27 @@ import java.util.Map;
|
||||
public class PlayerStatisticScene extends UIScene {
|
||||
Image avatar, avatarBorder, lifeIcon, goldIcon;
|
||||
Image colorFrame;
|
||||
Label money, life;
|
||||
Label wins, totalWins;
|
||||
Label loss, totalLoss;
|
||||
Label winloss, lossWinRatio;
|
||||
Label playerName;
|
||||
TextButton back;
|
||||
private Table enemiesGroup;
|
||||
Label blessingScroll;
|
||||
TextraLabel money, life;
|
||||
TextraLabel wins, totalWins;
|
||||
TextraLabel loss, totalLoss;
|
||||
TextraLabel winloss, lossWinRatio;
|
||||
TextraLabel playerName;
|
||||
TextraButton back;
|
||||
private final Table enemiesGroup;
|
||||
TextraLabel blessingScroll;
|
||||
ScrollPane scrollPane, blessing;
|
||||
|
||||
private PlayerStatisticScene() {
|
||||
super(Forge.isLandscapeMode() ? "ui/statistic.json" : "ui/statistic_portrait.json");
|
||||
|
||||
|
||||
enemiesGroup = new Table(Controls.GetSkin());
|
||||
enemiesGroup = new Table(Controls.getSkin());
|
||||
enemiesGroup.row();
|
||||
blessingScroll = Controls.newLabel("");
|
||||
blessingScroll.setStyle(new Label.LabelStyle(Controls.getBitmapFont("default"), Color.BLACK));
|
||||
blessingScroll = Controls.newTextraLabel("");
|
||||
blessingScroll.setColor(Color.BLACK);
|
||||
blessingScroll.setAlignment(Align.topLeft);
|
||||
blessingScroll.setWrap(true);
|
||||
ui.onButtonPress("return", new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
PlayerStatisticScene.this.back();
|
||||
}
|
||||
});
|
||||
ui.onButtonPress("return", PlayerStatisticScene.this::back);
|
||||
|
||||
avatar = ui.findActor("avatar");
|
||||
avatarBorder = ui.findActor("avatarBorder");
|
||||
@@ -62,16 +61,12 @@ public class PlayerStatisticScene extends UIScene {
|
||||
goldIcon = ui.findActor("goldIcon");
|
||||
wins = ui.findActor("wins");
|
||||
colorFrame = ui.findActor("colorFrame");
|
||||
wins.setText(Forge.getLocalizer().getMessage("lblWinProper")+":");
|
||||
totalWins = ui.findActor("totalWins");
|
||||
loss = ui.findActor("loss");
|
||||
loss.setText(Forge.getLocalizer().getMessage("lblLossProper")+":");
|
||||
totalLoss = ui.findActor("totalLoss");
|
||||
winloss = ui.findActor("winloss");
|
||||
winloss.setText(Forge.getLocalizer().getMessage("lblWinProper")+"/"+Forge.getLocalizer().getMessage("lblLossProper"));
|
||||
lossWinRatio = ui.findActor("lossWinRatio");
|
||||
back = ui.findActor("return");
|
||||
back.getLabel().setText(Forge.getLocalizer().getMessage("lblBack"));
|
||||
ScrollPane scrollPane = ui.findActor("enemies");
|
||||
scrollPane.setActor(enemiesGroup);
|
||||
ScrollPane blessing = ui.findActor("blessingInfo");
|
||||
@@ -157,10 +152,10 @@ public class PlayerStatisticScene extends UIScene {
|
||||
WorldSave.getCurrentSave().getPlayer().onGoldChange(() -> money.setText(String.valueOf(AdventurePlayer.current().getGold())));
|
||||
}
|
||||
if (totalWins != null) {
|
||||
totalWins.setText(Current.player().getStatistic().totalWins());
|
||||
totalWins.setText(String.valueOf(Current.player().getStatistic().totalWins()));
|
||||
}
|
||||
if (totalLoss != null) {
|
||||
totalLoss.setText(Current.player().getStatistic().totalLoss());
|
||||
totalLoss.setText(String.valueOf(Current.player().getStatistic().totalLoss()));
|
||||
}
|
||||
if (lossWinRatio != null) {
|
||||
lossWinRatio.setText(Float.toString(Current.player().getStatistic().winLossRatio()));
|
||||
@@ -194,42 +189,6 @@ public class PlayerStatisticScene extends UIScene {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void resLoaded() {
|
||||
super.resLoaded();
|
||||
enemiesGroup = new Table(Controls.GetSkin());
|
||||
enemiesGroup.row();
|
||||
blessingScroll = Controls.newLabel("");
|
||||
blessingScroll.setStyle(new Label.LabelStyle(Controls.getBitmapFont("default"), Color.BLACK));
|
||||
blessingScroll.setAlignment(Align.topLeft);
|
||||
blessingScroll.setWrap(true);
|
||||
ui.onButtonPress("return", () -> PlayerStatisticScene.this.back());
|
||||
|
||||
avatar = ui.findActor("avatar");
|
||||
avatarBorder = ui.findActor("avatarBorder");
|
||||
playerName = ui.findActor("playerName");
|
||||
life = ui.findActor("lifePoints");
|
||||
money = ui.findActor("money");
|
||||
lifeIcon = ui.findActor("lifeIcon");
|
||||
goldIcon = ui.findActor("goldIcon");
|
||||
wins = ui.findActor("wins");
|
||||
colorFrame = ui.findActor("colorFrame");
|
||||
wins.setText(Forge.getLocalizer().getMessage("lblWinProper")+":");
|
||||
totalWins = ui.findActor("totalWins");
|
||||
loss = ui.findActor("loss");
|
||||
loss.setText(Forge.getLocalizer().getMessage("lblLossProper")+":");
|
||||
totalLoss = ui.findActor("totalLoss");
|
||||
winloss = ui.findActor("winloss");
|
||||
winloss.setText(Forge.getLocalizer().getMessage("lblWinProper")+"/"+Forge.getLocalizer().getMessage("lblLossProper"));
|
||||
lossWinRatio = ui.findActor("lossWinRatio");
|
||||
back = ui.findActor("return");
|
||||
back.getLabel().setText(Forge.getLocalizer().getMessage("lblBack"));
|
||||
scrollPane = ui.findActor("enemies");
|
||||
scrollPane.setActor(enemiesGroup);
|
||||
blessing = ui.findActor("blessingInfo");
|
||||
blessing.setActor(blessingScroll);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void create() {
|
||||
|
||||
@@ -4,10 +4,11 @@ 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.ui.Label;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.TextButton;
|
||||
import com.badlogic.gdx.scenes.scene2d.utils.ClickListener;
|
||||
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;
|
||||
import forge.adventure.character.ShopActor;
|
||||
import forge.adventure.player.AdventurePlayer;
|
||||
@@ -23,8 +24,8 @@ import forge.sound.SoundSystem;
|
||||
* Displays the rewards of a fight or a treasure
|
||||
*/
|
||||
public class RewardScene extends UIScene {
|
||||
private TextButton doneButton;
|
||||
private Label goldLabel;
|
||||
private TextraButton doneButton;
|
||||
private TextraLabel goldLabel;
|
||||
|
||||
private static RewardScene object;
|
||||
|
||||
@@ -272,7 +273,7 @@ public class RewardScene extends UIScene {
|
||||
switch (type) {
|
||||
case Shop:
|
||||
doneButton.setText(Forge.getLocalizer().getMessage("lblLeave"));
|
||||
goldLabel.setText("Gold:"+Current.player().getGold());
|
||||
goldLabel.setText(Current.player().getGold()+"[+Gold]");
|
||||
break;
|
||||
case Loot:
|
||||
goldLabel.setText("");
|
||||
@@ -360,7 +361,7 @@ public class RewardScene extends UIScene {
|
||||
if (currentRow != ((i + 1) / numberOfColumns))
|
||||
yOff += doneButton.getHeight();
|
||||
|
||||
TextButton buyCardButton = new BuyButton(shopActor.getObjectId(), i, shopActor.isUnlimited()?null:shopActor.getMapStage().getChanges(), actor, doneButton);
|
||||
TextraButton buyCardButton = new BuyButton(shopActor.getObjectId(), i, shopActor.isUnlimited()?null:shopActor.getMapStage().getChanges(), actor, doneButton);
|
||||
generated.add(buyCardButton);
|
||||
if (!skipCard) {
|
||||
stage.addActor(buyCardButton);
|
||||
@@ -386,7 +387,7 @@ public class RewardScene extends UIScene {
|
||||
}
|
||||
}
|
||||
|
||||
private class BuyButton extends TextButton {
|
||||
private class BuyButton extends TextraButton {
|
||||
private final int objectID;
|
||||
private final int index;
|
||||
private final PointOfInterestChanges changes;
|
||||
@@ -397,7 +398,7 @@ public class RewardScene extends UIScene {
|
||||
setDisabled(WorldSave.getCurrentSave().getPlayer().getGold() < price);
|
||||
}
|
||||
|
||||
public BuyButton(int id, int i, PointOfInterestChanges ch, RewardActor actor, TextButton style) {
|
||||
public BuyButton(int id, int i, PointOfInterestChanges ch, RewardActor actor, TextraButton style) {
|
||||
super("", style.getStyle());
|
||||
this.objectID = id;
|
||||
this.index = i;
|
||||
|
||||
@@ -12,6 +12,8 @@ import com.badlogic.gdx.utils.Align;
|
||||
import com.badlogic.gdx.utils.GdxRuntimeException;
|
||||
import com.badlogic.gdx.utils.IntMap;
|
||||
import com.badlogic.gdx.utils.Scaling;
|
||||
import com.github.tommyettinger.textra.TextraButton;
|
||||
import com.github.tommyettinger.textra.TextraLabel;
|
||||
import forge.Forge;
|
||||
import forge.adventure.data.DifficultyData;
|
||||
import forge.adventure.util.Config;
|
||||
@@ -32,19 +34,19 @@ import java.util.zip.InflaterInputStream;
|
||||
* Scene to load and save the game.
|
||||
*/
|
||||
public class SaveLoadScene extends UIScene {
|
||||
private final IntMap<TextButton> buttons = new IntMap<>();
|
||||
private final IntMap<TextraButton> buttons = new IntMap<>();
|
||||
IntMap<WorldSaveHeader> previews = new IntMap<>();
|
||||
Color defColor;
|
||||
Table layout;
|
||||
Modes mode;
|
||||
Dialog dialog;
|
||||
TextField textInput;
|
||||
Label header;
|
||||
TextraLabel header;
|
||||
int currentSlot = -3, lastSelectedSlot = 0;
|
||||
Image previewImage;
|
||||
Label previewDate;
|
||||
TextraLabel previewDate;
|
||||
Image previewBorder;
|
||||
TextButton saveLoadButton, back, quickSave, autoSave, dialogSaveBtn, dialogAbortBtn;
|
||||
TextraButton saveLoadButton, back, quickSave, autoSave, dialogSaveBtn, dialogAbortBtn;
|
||||
Actor lastHighlightedSave;
|
||||
SelectBox difficulty;
|
||||
ScrollPane scrollPane;
|
||||
@@ -73,14 +75,17 @@ public class SaveLoadScene extends UIScene {
|
||||
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();
|
||||
dialog.getButtonTable().add(Controls.newTextButton(Forge.getLocalizer().getMessage("lblSave"), () -> SaveLoadScene.this.save())).align(Align.left).padLeft(15);
|
||||
dialog.getButtonTable().add(Controls.newTextButton(Forge.getLocalizer().getMessage("lblAbort"), () -> SaveLoadScene.this.saveAbort())).align(Align.right).padRight(15);
|
||||
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.newLabel(Forge.getLocalizer().getMessage("lblSave"));
|
||||
header = Controls.newTextraLabel(Forge.getLocalizer().getMessage("lblSave"));
|
||||
header.setAlignment(Align.center);
|
||||
layout.add(header).pad(2).colspan(4).align(Align.center).expandX();
|
||||
layout.row();
|
||||
@@ -90,15 +95,14 @@ public class SaveLoadScene extends UIScene {
|
||||
addSaveSlot(Forge.getLocalizer().getMessage("lblSlot") + ": " + i, i);
|
||||
|
||||
saveLoadButton = ui.findActor("save");
|
||||
saveLoadButton.getLabel().setText(Forge.getLocalizer().getMessage("lblSave"));
|
||||
saveLoadButton.setText(Forge.getLocalizer().getMessage("lblSave"));
|
||||
ui.onButtonPress("save", () -> SaveLoadScene.this.loadSave());
|
||||
back = ui.findActor("return");
|
||||
back.getLabel().setText(Forge.getLocalizer().getMessage("lblBack"));
|
||||
ui.onButtonPress("return", () -> SaveLoadScene.this.back());
|
||||
|
||||
defColor = saveLoadButton.getColor();
|
||||
|
||||
ScrollPane scrollPane = ui.findActor("saveSlots");
|
||||
scrollPane = ui.findActor("saveSlots");
|
||||
scrollPane.setActor(layout);
|
||||
ui.addActor(difficulty);
|
||||
difficulty.setSelectedIndex(1);
|
||||
@@ -123,9 +127,9 @@ public class SaveLoadScene extends UIScene {
|
||||
}
|
||||
|
||||
|
||||
private TextButton addSaveSlot(String name, int i) {
|
||||
private TextraButton addSaveSlot(String name, int i) {
|
||||
layout.add(Controls.newLabel(name)).align(Align.left).pad(2, 5, 2, 10);
|
||||
TextButton button = Controls.newTextButton("...");
|
||||
TextraButton button = Controls.newTextButton("...");
|
||||
button.addListener(new ClickListener() {
|
||||
@Override
|
||||
public void clicked(InputEvent event, float x, float y) {
|
||||
@@ -137,7 +141,7 @@ public class SaveLoadScene extends UIScene {
|
||||
}
|
||||
}
|
||||
});
|
||||
layout.add(button).align(Align.left).expandX();
|
||||
layout.add(button).fill(true,false).expand(true,false).align(Align.left).expandX();
|
||||
buttons.put(i, button);
|
||||
layout.row();
|
||||
return button;
|
||||
@@ -171,11 +175,11 @@ public class SaveLoadScene extends UIScene {
|
||||
if (previewDate != null)
|
||||
previewDate.setVisible(false);
|
||||
}
|
||||
for (IntMap.Entry<TextButton> butt : new IntMap.Entries<TextButton>(buttons)) {
|
||||
for (IntMap.Entry<TextraButton> butt : new IntMap.Entries<TextraButton>(buttons)) {
|
||||
butt.value.setColor(defColor);
|
||||
}
|
||||
if (buttons.containsKey(slot)) {
|
||||
TextButton button = buttons.get(slot);
|
||||
TextraButton button = buttons.get(slot);
|
||||
button.setColor(Color.RED);
|
||||
selectActor(button, false);
|
||||
}
|
||||
@@ -448,8 +452,8 @@ public class SaveLoadScene extends UIScene {
|
||||
else
|
||||
select(-3);
|
||||
updateFiles();
|
||||
autoSave.getLabel().setText(Forge.getLocalizer().getMessage("lblAutoSave"));
|
||||
quickSave.getLabel().setText(Forge.getLocalizer().getMessage("lblQuickSave"));
|
||||
autoSave.setText(Forge.getLocalizer().getMessage("lblAutoSave"));
|
||||
quickSave.setText(Forge.getLocalizer().getMessage("lblQuickSave"));
|
||||
if (mode == Modes.NewGamePlus) {
|
||||
if (difficulty != null) {
|
||||
difficulty.setVisible(true);
|
||||
@@ -485,70 +489,4 @@ public class SaveLoadScene extends UIScene {
|
||||
super.enter();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void resLoaded() {
|
||||
super.resLoaded();
|
||||
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];
|
||||
for (DifficultyData diff : Config.instance().getConfigData().difficulties) {
|
||||
diffList[c] = diff.name;
|
||||
c++;
|
||||
}
|
||||
;
|
||||
|
||||
difficulty = Controls.newComboBox(diffList, null, o -> {
|
||||
//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.newLabel(Forge.getLocalizer().getMessage("lblSave"));
|
||||
header.setAlignment(Align.center);
|
||||
layout.add(header).pad(2).colspan(4).align(Align.center).expandX();
|
||||
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++)
|
||||
addSaveSlot(Forge.getLocalizer().getMessage("lblSlot") + ": " + i, i);
|
||||
|
||||
saveLoadButton = ui.findActor("save");
|
||||
saveLoadButton.getLabel().setText(Forge.getLocalizer().getMessage("lblSave"));
|
||||
ui.onButtonPress("save", () -> SaveLoadScene.this.loadSave());
|
||||
back = ui.findActor("return");
|
||||
back.getLabel().setText(Forge.getLocalizer().getMessage("lblBack"));
|
||||
ui.onButtonPress("return", () -> SaveLoadScene.this.back());
|
||||
|
||||
defColor = saveLoadButton.getColor();
|
||||
|
||||
scrollPane = ui.findActor("saveSlots");
|
||||
scrollPane.setActor(layout);
|
||||
ui.addActor(difficulty);
|
||||
difficulty.setSelectedIndex(1);
|
||||
difficulty.setAlignment(Align.center);
|
||||
difficulty.getStyle().fontColor = Color.GOLD;
|
||||
if (Forge.isLandscapeMode()) {
|
||||
difficulty.setX(280);
|
||||
difficulty.setY(220);
|
||||
} else {
|
||||
difficulty.setX(190);
|
||||
difficulty.setY(336);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
package forge.adventure.scene;
|
||||
|
||||
import com.badlogic.gdx.Gdx;
|
||||
import com.badlogic.gdx.Input;
|
||||
import com.badlogic.gdx.graphics.GL20;
|
||||
import com.badlogic.gdx.graphics.Texture;
|
||||
import com.badlogic.gdx.scenes.scene2d.Actor;
|
||||
import com.badlogic.gdx.scenes.scene2d.Stage;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.*;
|
||||
import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener;
|
||||
import com.badlogic.gdx.utils.Align;
|
||||
import com.github.tommyettinger.textra.TextraButton;
|
||||
import com.github.tommyettinger.textra.TextraLabel;
|
||||
import forge.Forge;
|
||||
import forge.adventure.util.Config;
|
||||
import forge.adventure.util.Controls;
|
||||
@@ -24,123 +24,12 @@ public class SettingsScene extends UIScene {
|
||||
Stage stage;
|
||||
Texture Background;
|
||||
private Table settingGroup;
|
||||
TextButton back;
|
||||
TextraButton backButton;
|
||||
ScrollPane scrollPane;
|
||||
|
||||
private SettingsScene() {
|
||||
super(Forge.isLandscapeMode() ? "ui/settings.json" : "ui/settings_portrait.json");
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void dispose() {
|
||||
if (stage != null)
|
||||
stage.dispose();
|
||||
}
|
||||
|
||||
public void renderAct(float delta) {
|
||||
Gdx.gl.glClearColor(1, 0, 1, 1);
|
||||
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
|
||||
stage.getBatch().begin();
|
||||
stage.getBatch().disableBlending();
|
||||
stage.getBatch().draw(Background, 0, 0, getIntendedWidth(), getIntendedHeight());
|
||||
stage.getBatch().enableBlending();
|
||||
stage.getBatch().end();
|
||||
stage.act(delta);
|
||||
stage.draw();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean keyPressed(int keycode) {
|
||||
if (keycode == Input.Keys.ESCAPE || keycode == Input.Keys.BACK) {
|
||||
back();
|
||||
}
|
||||
if (keycode == Input.Keys.BUTTON_B)
|
||||
performTouch(back);
|
||||
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();
|
||||
return true;
|
||||
}
|
||||
|
||||
private void addInputField(String name, ForgePreferences.FPref pref) {
|
||||
TextField box = Controls.newTextField("");
|
||||
box.setText(Preference.getPref(pref));
|
||||
box.addListener(new ChangeListener() {
|
||||
@Override
|
||||
public void changed(ChangeEvent event, Actor actor) {
|
||||
Preference.setPref(pref, ((TextField) actor).getText());
|
||||
Preference.save();
|
||||
}
|
||||
});
|
||||
|
||||
addLabel(name);
|
||||
settingGroup.add(box).align(Align.right);
|
||||
}
|
||||
|
||||
private void addCheckBox(String name, ForgePreferences.FPref pref) {
|
||||
CheckBox box = Controls.newCheckBox("");
|
||||
box.setChecked(Preference.getPrefBoolean(pref));
|
||||
box.addListener(new ChangeListener() {
|
||||
@Override
|
||||
public void changed(ChangeEvent event, Actor actor) {
|
||||
Preference.setPref(pref, ((CheckBox) actor).isChecked());
|
||||
Preference.save();
|
||||
}
|
||||
});
|
||||
|
||||
addLabel(name);
|
||||
settingGroup.add(box).align(Align.right);
|
||||
}
|
||||
|
||||
private void addSettingSlider(String name, ForgePreferences.FPref pref, int min, int max) {
|
||||
Slider slide = Controls.newSlider(min, max, 1, false);
|
||||
slide.setValue(Preference.getPrefInt(pref));
|
||||
slide.addListener(new ChangeListener() {
|
||||
@Override
|
||||
public void changed(ChangeEvent event, Actor actor) {
|
||||
Preference.setPref(pref, String.valueOf((int) ((Slider) actor).getValue()));
|
||||
Preference.save();
|
||||
}
|
||||
});
|
||||
addLabel(name);
|
||||
settingGroup.add(slide).align(Align.right);
|
||||
}
|
||||
|
||||
private void addSettingField(String name, boolean value, ChangeListener change) {
|
||||
CheckBox box = Controls.newCheckBox("");
|
||||
box.setChecked(value);
|
||||
box.addListener(change);
|
||||
addLabel(name);
|
||||
settingGroup.add(box).align(Align.right);
|
||||
}
|
||||
|
||||
private void addSettingField(String name, int value, ChangeListener change) {
|
||||
TextField text = Controls.newTextField(String.valueOf(value));
|
||||
text.setTextFieldFilter((textField, c) -> Character.isDigit(c));
|
||||
text.addListener(change);
|
||||
addLabel(name);
|
||||
settingGroup.add(text).align(Align.right);
|
||||
}
|
||||
|
||||
void addLabel(String name) {
|
||||
Label label = Controls.newLabel(name);
|
||||
label.setWrap(true);
|
||||
settingGroup.row().space(5);
|
||||
int w = Forge.isLandscapeMode() ? 160 : 80;
|
||||
settingGroup.add(label).align(Align.left).pad(2, 2, 2, 5).width(w).expand();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void resLoaded() {
|
||||
super.resLoaded();
|
||||
settingGroup = new Table();
|
||||
if (Preference == null) {
|
||||
Preference = new ForgePreferences();
|
||||
@@ -271,47 +160,27 @@ public class SettingsScene extends UIScene {
|
||||
|
||||
|
||||
settingGroup.row();
|
||||
back = ui.findActor("return");
|
||||
back.getLabel().setText(Forge.getLocalizer().getMessage("lblBack"));
|
||||
backButton = ui.findActor("return");
|
||||
ui.onButtonPress("return", SettingsScene.this::back);
|
||||
|
||||
ScrollPane scrollPane = ui.findActor("settings");
|
||||
scrollPane.setActor(settingGroup);
|
||||
}
|
||||
|
||||
private static SettingsScene object;
|
||||
|
||||
public static SettingsScene instance() {
|
||||
if(object==null)
|
||||
object=new SettingsScene();
|
||||
return object;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void dispose() {
|
||||
if (stage != null)
|
||||
stage.dispose();
|
||||
}
|
||||
|
||||
public void renderAct(float delta) {
|
||||
Gdx.gl.glClearColor(1, 0, 1, 1);
|
||||
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
|
||||
stage.getBatch().begin();
|
||||
stage.getBatch().disableBlending();
|
||||
stage.getBatch().draw(Background, 0, 0, getIntendedWidth(), getIntendedHeight());
|
||||
stage.getBatch().enableBlending();
|
||||
stage.getBatch().end();
|
||||
stage.act(delta);
|
||||
stage.draw();
|
||||
}
|
||||
|
||||
@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;
|
||||
}
|
||||
|
||||
@@ -381,13 +250,31 @@ public class SettingsScene extends UIScene {
|
||||
}
|
||||
|
||||
void addLabel(String name) {
|
||||
Label label = Controls.newLabel(name);
|
||||
TextraLabel label = Controls.newTextraLabel(name);
|
||||
label.setWrap(true);
|
||||
settingGroup.row().space(5);
|
||||
int w = Forge.isLandscapeMode() ? 160 : 80;
|
||||
settingGroup.add(label).align(Align.left).pad(2, 2, 2, 5).width(w).expand();
|
||||
}
|
||||
|
||||
|
||||
private static SettingsScene object;
|
||||
|
||||
public static SettingsScene instance() {
|
||||
if(object==null)
|
||||
object=new SettingsScene();
|
||||
return object;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void dispose() {
|
||||
if (stage != null)
|
||||
stage.dispose();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void create() {
|
||||
|
||||
|
||||
@@ -3,12 +3,12 @@ package forge.adventure.scene;
|
||||
import com.badlogic.gdx.graphics.Color;
|
||||
import com.badlogic.gdx.scenes.scene2d.Actor;
|
||||
import com.badlogic.gdx.scenes.scene2d.InputEvent;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.Label;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.ScrollPane;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.SelectBox;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.TextButton;
|
||||
import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener;
|
||||
import com.badlogic.gdx.scenes.scene2d.utils.ClickListener;
|
||||
import com.github.tommyettinger.textra.TextraButton;
|
||||
import com.github.tommyettinger.textra.TextraLabel;
|
||||
import forge.Forge;
|
||||
import forge.StaticData;
|
||||
import forge.adventure.data.RewardData;
|
||||
@@ -38,15 +38,15 @@ public class SpellSmithScene extends UIScene {
|
||||
}
|
||||
|
||||
private List<PaperCard> cardPool = new ArrayList<>();
|
||||
private Label goldLabel;
|
||||
private TextButton pullButton;
|
||||
private TextraLabel goldLabel;
|
||||
private TextraButton pullButton;
|
||||
private ScrollPane rewardDummy;
|
||||
private RewardActor rewardActor;
|
||||
SelectBox<CardEdition> editionList;
|
||||
//Button containers.
|
||||
final private HashMap<String, TextButton> rarityButtons = new HashMap<>();
|
||||
final private HashMap<String, TextButton> costButtons = new HashMap<>();
|
||||
final private HashMap<String, TextButton> colorButtons = new HashMap<>();
|
||||
final private HashMap<String, TextraButton> rarityButtons = new HashMap<>();
|
||||
final private HashMap<String, TextraButton> costButtons = new HashMap<>();
|
||||
final private HashMap<String, TextraButton> colorButtons = new HashMap<>();
|
||||
//Filter variables.
|
||||
private String edition = "";
|
||||
private String rarity = "";
|
||||
@@ -91,7 +91,7 @@ public class SpellSmithScene extends UIScene {
|
||||
pullButton.setDisabled(true);
|
||||
goldLabel.setText("Gold: "+ Current.player().getGold());
|
||||
for(String i : new String[]{"BBlack", "BBlue", "BGreen", "BRed", "BWhite", "BColorless"} ){
|
||||
TextButton button = ui.findActor(i);
|
||||
TextraButton button = ui.findActor(i);
|
||||
if(button != null){
|
||||
colorButtons.put(i, button);
|
||||
button.addListener(new ClickListener() {
|
||||
@@ -104,7 +104,7 @@ public class SpellSmithScene extends UIScene {
|
||||
}
|
||||
}
|
||||
for(String i : new String[]{"BCommon", "BUncommon", "BRare", "BMythic"} ){
|
||||
TextButton button = ui.findActor(i);
|
||||
TextraButton button = ui.findActor(i);
|
||||
if(button != null) {
|
||||
rarityButtons.put(i, button);
|
||||
button.addListener(new ClickListener() {
|
||||
@@ -117,7 +117,7 @@ public class SpellSmithScene extends UIScene {
|
||||
}
|
||||
}
|
||||
for(String i : new String[]{"B02", "B35", "B68", "B9X"} ){
|
||||
TextButton button = ui.findActor(i);
|
||||
TextraButton button = ui.findActor(i);
|
||||
if(button != null) {
|
||||
costButtons.put(i, button);
|
||||
button.addListener(new ClickListener() {
|
||||
@@ -148,7 +148,7 @@ public class SpellSmithScene extends UIScene {
|
||||
}
|
||||
|
||||
private boolean selectRarity(String what){
|
||||
for(Map.Entry<String, TextButton> B : rarityButtons.entrySet())
|
||||
for(Map.Entry<String, TextraButton> B : rarityButtons.entrySet())
|
||||
B.getValue().setColor(Color.WHITE);
|
||||
switch(what){
|
||||
case "BCommon":
|
||||
@@ -170,11 +170,11 @@ public class SpellSmithScene extends UIScene {
|
||||
}
|
||||
|
||||
private void selectColor(String what){
|
||||
TextButton B = colorButtons.get(what);
|
||||
TextraButton B = colorButtons.get(what);
|
||||
switch(what){
|
||||
case "BColorless":
|
||||
if(B.getColor().equals(Color.RED)) B.setColor(Color.WHITE); else {
|
||||
for (Map.Entry<String, TextButton> BT : colorButtons.entrySet())
|
||||
for (Map.Entry<String, TextraButton> BT : colorButtons.entrySet())
|
||||
BT.getValue().setColor(Color.WHITE);
|
||||
B.setColor(Color.RED);
|
||||
}
|
||||
@@ -191,7 +191,7 @@ public class SpellSmithScene extends UIScene {
|
||||
}
|
||||
|
||||
private boolean selectCost(String what){
|
||||
for(Map.Entry<String, TextButton> B : costButtons.entrySet())
|
||||
for(Map.Entry<String, TextraButton> B : costButtons.entrySet())
|
||||
B.getValue().setColor(Color.WHITE);
|
||||
switch(what){
|
||||
case "B02":
|
||||
@@ -218,11 +218,11 @@ public class SpellSmithScene extends UIScene {
|
||||
cost_low = -1; cost_high = 9999;
|
||||
rarity = "";
|
||||
currentPrice = (int)basePrice;
|
||||
goldLabel.setText("Gold: "+ Current.player().getGold());
|
||||
goldLabel.setText(Current.player().getGold()+"[+Gold]");
|
||||
|
||||
for(Map.Entry<String, TextButton> B : colorButtons.entrySet()) B.getValue().setColor(Color.WHITE);
|
||||
for(Map.Entry<String, TextButton> B : costButtons.entrySet()) B.getValue().setColor(Color.WHITE);
|
||||
for(Map.Entry<String, TextButton> B : rarityButtons.entrySet()) B.getValue().setColor(Color.WHITE);
|
||||
for(Map.Entry<String, TextraButton> B : colorButtons.entrySet()) B.getValue().setColor(Color.WHITE);
|
||||
for(Map.Entry<String, TextraButton> B : costButtons.entrySet()) B.getValue().setColor(Color.WHITE);
|
||||
for(Map.Entry<String, TextraButton> B : rarityButtons.entrySet()) B.getValue().setColor(Color.WHITE);
|
||||
editionList.setColor(Color.WHITE);
|
||||
filterResults();
|
||||
super.enter();
|
||||
@@ -231,10 +231,10 @@ public class SpellSmithScene extends UIScene {
|
||||
|
||||
public void filterResults() {
|
||||
Iterable<PaperCard> P = RewardData.getAllCards();
|
||||
goldLabel.setText("Gold: "+ Current.player().getGold());
|
||||
goldLabel.setText( Current.player().getGold()+"[+Gold]");
|
||||
float totalCost = basePrice * Current.player().goldModifier();
|
||||
final List<String> colorFilter = new ArrayList<>();
|
||||
for(Map.Entry<String, TextButton> B : colorButtons.entrySet())
|
||||
for(Map.Entry<String, TextraButton> B : colorButtons.entrySet())
|
||||
switch (B.getKey()){
|
||||
case "BColorless":
|
||||
if(B.getValue().getColor().equals(Color.RED)) colorFilter.add("Colorless");
|
||||
|
||||
@@ -3,8 +3,8 @@ 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.scenes.scene2d.ui.TextButton;
|
||||
import com.badlogic.gdx.utils.Align;
|
||||
import com.github.tommyettinger.textra.TextraButton;
|
||||
import forge.Forge;
|
||||
import forge.adventure.stage.GameHUD;
|
||||
import forge.adventure.stage.GameStage;
|
||||
@@ -20,8 +20,10 @@ import forge.screens.TransitionScreen;
|
||||
*/
|
||||
public class StartScene extends UIScene {
|
||||
|
||||
TextButton saveButton, resumeButton, continueButton, newGameButton, newGameButtonPlus, loadButton, settingsButton, exitButton, switchButton;
|
||||
private static StartScene object;
|
||||
TextraButton saveButton, resumeButton, continueButton, newGameButton, newGameButtonPlus, loadButton, settingsButton, exitButton, switchButton, dialogOk, dialogCancel, dialogButtonSelected;
|
||||
Dialog dialog;
|
||||
private int selected = -1;
|
||||
|
||||
public StartScene() {
|
||||
super(Forge.isLandscapeMode() ? "ui/start_menu.json" : "ui/start_menu_portrait.json");
|
||||
@@ -36,23 +38,13 @@ public class StartScene extends UIScene {
|
||||
ui.onButtonPress("Switch", () -> Forge.switchToClassic());
|
||||
|
||||
newGameButton = ui.findActor("Start");
|
||||
newGameButton.getLabel().setText(Forge.getLocalizer().getMessage("lblNewGame"));
|
||||
newGameButtonPlus = ui.findActor("Start+");
|
||||
newGameButtonPlus.getLabel().setText(Forge.getLocalizer().getMessage("lblNewGame") + "+");
|
||||
loadButton = ui.findActor("Load");
|
||||
loadButton.getLabel().setText(Forge.getLocalizer().getMessage("lblLoad"));
|
||||
saveButton = ui.findActor("Save");
|
||||
saveButton.getLabel().setText(Forge.getLocalizer().getMessage("lblSave"));
|
||||
resumeButton = ui.findActor("Resume");
|
||||
resumeButton.getLabel().setText(Forge.getLocalizer().getMessage("lblResume"));
|
||||
continueButton = ui.findActor("Continue");
|
||||
continueButton.getLabel().setText(Forge.getLocalizer().getMessage("lblContinue"));
|
||||
settingsButton = ui.findActor("Settings");
|
||||
settingsButton.getLabel().setText(Forge.getLocalizer().getMessage("lblSettings"));
|
||||
exitButton = ui.findActor("Exit");
|
||||
exitButton.getLabel().setText(Forge.getLocalizer().getMessage("lblExit"));
|
||||
switchButton = ui.findActor("Switch");
|
||||
switchButton.getLabel().setText(Forge.getLocalizer().getMessage("lblClassic"));
|
||||
|
||||
saveButton.setVisible(false);
|
||||
resumeButton.setVisible(false);
|
||||
@@ -67,6 +59,12 @@ public class StartScene extends UIScene {
|
||||
dialog.getColor().a = 0;
|
||||
}
|
||||
|
||||
public static StartScene instance() {
|
||||
if(object==null)
|
||||
object=new StartScene();
|
||||
return object;
|
||||
}
|
||||
|
||||
public boolean NewGame() {
|
||||
Forge.switchScene(NewGameScene.instance());
|
||||
return true;
|
||||
|
||||
@@ -9,18 +9,14 @@ import com.badlogic.gdx.math.Vector2;
|
||||
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.ui.Dialog;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.Image;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.ImageButton;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.Label;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.TextButton;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.TextField;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.*;
|
||||
import com.badlogic.gdx.scenes.scene2d.utils.TextureRegionDrawable;
|
||||
import com.badlogic.gdx.utils.Align;
|
||||
import com.badlogic.gdx.utils.ObjectMap;
|
||||
import com.badlogic.gdx.utils.Scaling;
|
||||
import com.badlogic.gdx.utils.Timer;
|
||||
import com.badlogic.gdx.utils.viewport.ScalingViewport;
|
||||
import com.github.tommyettinger.textra.TextraButton;
|
||||
import forge.Forge;
|
||||
import forge.adventure.util.Config;
|
||||
import forge.adventure.util.Controls;
|
||||
@@ -37,7 +33,7 @@ public class UIScene extends Scene {
|
||||
String uiFile;
|
||||
private Dialog keyboardDialog;
|
||||
private Label kbLabel;
|
||||
private TextButton keyA, keyB, keyC, keyD, keyE, keyF, keyG, keyH, keyI, keyJ, keyK, keyL, keyM, keyN, keyO, keyP,
|
||||
private 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;
|
||||
public Actor lastInputField;
|
||||
@@ -246,33 +242,33 @@ public class UIScene extends Scene {
|
||||
}
|
||||
private void shiftKey() {
|
||||
lowercaseKey = !lowercaseKey;
|
||||
keyShift.getLabel().setColor(lowercaseKey ? Color.WHITE : Color.CYAN);
|
||||
keyA.getLabel().setText(lowercaseKey ? "a" : "A");
|
||||
keyB.getLabel().setText(lowercaseKey ? "b" : "B");
|
||||
keyC.getLabel().setText(lowercaseKey ? "c" : "C");
|
||||
keyD.getLabel().setText(lowercaseKey ? "d" : "D");
|
||||
keyE.getLabel().setText(lowercaseKey ? "e" : "E");
|
||||
keyF.getLabel().setText(lowercaseKey ? "f" : "F");
|
||||
keyG.getLabel().setText(lowercaseKey ? "g" : "G");
|
||||
keyH.getLabel().setText(lowercaseKey ? "h" : "H");
|
||||
keyI.getLabel().setText(lowercaseKey ? "i" : "I");
|
||||
keyJ.getLabel().setText(lowercaseKey ? "j" : "J");
|
||||
keyK.getLabel().setText(lowercaseKey ? "k" : "K");
|
||||
keyL.getLabel().setText(lowercaseKey ? "l" : "L");
|
||||
keyM.getLabel().setText(lowercaseKey ? "m" : "M");
|
||||
keyN.getLabel().setText(lowercaseKey ? "n" : "N");
|
||||
keyO.getLabel().setText(lowercaseKey ? "o" : "O");
|
||||
keyP.getLabel().setText(lowercaseKey ? "p" : "P");
|
||||
keyQ.getLabel().setText(lowercaseKey ? "q" : "Q");
|
||||
keyR.getLabel().setText(lowercaseKey ? "r" : "R");
|
||||
keyS.getLabel().setText(lowercaseKey ? "s" : "S");
|
||||
keyT.getLabel().setText(lowercaseKey ? "t" : "T");
|
||||
keyU.getLabel().setText(lowercaseKey ? "u" : "U");
|
||||
keyV.getLabel().setText(lowercaseKey ? "v" : "V");
|
||||
keyW.getLabel().setText(lowercaseKey ? "w" : "W");
|
||||
keyX.getLabel().setText(lowercaseKey ? "x" : "X");
|
||||
keyY.getLabel().setText(lowercaseKey ? "y" : "Y");
|
||||
keyZ.getLabel().setText(lowercaseKey ? "z" : "Z");
|
||||
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");
|
||||
}
|
||||
public void setSelectedKey(int keyCode) {
|
||||
switch(keyCode) {
|
||||
@@ -632,7 +628,7 @@ public class UIScene extends Scene {
|
||||
if (actor instanceof TextButton)
|
||||
((TextButton) actor).fire(eventExit);
|
||||
else if (actor instanceof Selector)
|
||||
((Selector) actor).getLabel().fire(eventExit);
|
||||
((Selector) actor).fire(eventExit);
|
||||
else if (actor instanceof TextField) {
|
||||
if (stage.getKeyboardFocus() == actor)
|
||||
stage.setKeyboardFocus(null);
|
||||
@@ -668,8 +664,8 @@ public class UIScene extends Scene {
|
||||
if (kbVisible) {
|
||||
if (selectedKey != null) {
|
||||
selectedKey.fire(eventExit);
|
||||
if (selectedKey instanceof TextButton)
|
||||
if (!(((TextButton) selectedKey) == keyOK || ((TextButton) selectedKey) == keySpace))
|
||||
if (selectedKey instanceof TextraButton)
|
||||
if (!(selectedKey == keyOK || selectedKey == keySpace))
|
||||
lastSelectedKey = selectedKey;
|
||||
}
|
||||
selectedKey = actor;
|
||||
@@ -685,10 +681,10 @@ public class UIScene extends Scene {
|
||||
return;
|
||||
Actor a = actorObjectMap.get(key);
|
||||
if (a != null) {
|
||||
if (a instanceof TextButton)
|
||||
((TextButton) a).fire(eventEnter);
|
||||
if (a instanceof TextraButton)
|
||||
a.fire(eventEnter);
|
||||
else if (a instanceof Selector)
|
||||
((Selector) a).getLabel().fire(eventEnter);
|
||||
((Selector) a).fire(eventEnter);
|
||||
else if (a instanceof TextField) {
|
||||
stage.setKeyboardFocus(a);
|
||||
} else if (a instanceof ImageButton) {
|
||||
|
||||
@@ -26,7 +26,7 @@ public class Console extends Window {
|
||||
private Console console;
|
||||
|
||||
public InputLine(Console console) {
|
||||
super("", Controls.GetSkin());
|
||||
super("", Controls.getSkin());
|
||||
this.console = console;
|
||||
writeEnters=true;
|
||||
}
|
||||
@@ -77,8 +77,8 @@ public class Console extends Window {
|
||||
}
|
||||
|
||||
public Console() {
|
||||
super("", Controls.GetSkin());
|
||||
content = new Table(Controls.GetSkin());
|
||||
super("", Controls.getSkin());
|
||||
content = new Table(Controls.getSkin());
|
||||
input = new InputLine(this);
|
||||
scroll = new ScrollPane(content,new ScrollPane.ScrollPaneStyle());
|
||||
|
||||
|
||||
@@ -2,6 +2,9 @@ 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;
|
||||
@@ -10,17 +13,19 @@ 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.*;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.Image;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.Touchpad;
|
||||
import com.badlogic.gdx.scenes.scene2d.utils.ActorGestureListener;
|
||||
import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener;
|
||||
import com.badlogic.gdx.scenes.scene2d.utils.TextureRegionDrawable;
|
||||
import com.badlogic.gdx.utils.Align;
|
||||
import com.badlogic.gdx.utils.Scaling;
|
||||
import com.badlogic.gdx.utils.Timer;
|
||||
import com.badlogic.gdx.utils.viewport.ScalingViewport;
|
||||
import com.github.tommyettinger.textra.TextraButton;
|
||||
import com.github.tommyettinger.textra.TextraLabel;
|
||||
import forge.Forge;
|
||||
import forge.adventure.player.AdventurePlayer;
|
||||
import forge.adventure.scene.Scene;
|
||||
import forge.adventure.scene.SceneType;
|
||||
import forge.adventure.scene.*;
|
||||
import forge.adventure.util.Config;
|
||||
import forge.adventure.util.Controls;
|
||||
import forge.adventure.util.Current;
|
||||
@@ -33,17 +38,19 @@ import forge.gui.GuiBase;
|
||||
/**
|
||||
* Stage to handle everything rendered in the HUD
|
||||
*/
|
||||
public class GameHUD extends Stage {
|
||||
public class GameHUD extends Stage implements ControllerListener {
|
||||
|
||||
static public GameHUD instance;
|
||||
private final GameStage gameStage;
|
||||
private final Image avatar;
|
||||
private final Image miniMapPlayer;
|
||||
private final Label lifePoints;
|
||||
private final Label money;
|
||||
private final Label mana;
|
||||
private final TextraLabel lifePoints;
|
||||
private final TextraLabel money;
|
||||
private final TextraLabel mana;
|
||||
private final Image miniMap, gamehud, mapborder, avatarborder, blank;
|
||||
private TextButton deckActor, menuActor, statsActor, inventoryActor;
|
||||
private final InputEvent eventTouchDown;
|
||||
private final InputEvent eventTouchUp;
|
||||
private TextraButton deckActor, menuActor, statsActor, inventoryActor;
|
||||
private UIActor ui;
|
||||
private Touchpad touchpad;
|
||||
private Console console;
|
||||
@@ -66,19 +73,15 @@ public class GameHUD extends Stage {
|
||||
|
||||
avatarborder = ui.findActor("avatarborder");
|
||||
deckActor = ui.findActor("deck");
|
||||
deckActor.getLabel().setText(Forge.getLocalizer().getMessage("lblDeck"));
|
||||
menuActor = ui.findActor("menu");
|
||||
referenceX = menuActor.getX();
|
||||
menuActor.getLabel().setText(Forge.getLocalizer().getMessage("lblMenu"));
|
||||
statsActor = ui.findActor("statistic");
|
||||
statsActor.getLabel().setText(Forge.getLocalizer().getMessage("lblStatus"));
|
||||
inventoryActor = ui.findActor("inventory");
|
||||
inventoryActor.getLabel().setText(Forge.getLocalizer().getMessage("lblItem"));
|
||||
gamehud = ui.findActor("gamehud");
|
||||
|
||||
miniMapPlayer = new Image(new Texture(Config.instance().getFile("ui/minimap_player.png")));
|
||||
//create touchpad
|
||||
touchpad = new Touchpad(10, Controls.GetSkin());
|
||||
touchpad = new Touchpad(10, Controls.getSkin());
|
||||
touchpad.setBounds(15, 15, TOUCHPAD_SCALE, TOUCHPAD_SCALE);
|
||||
touchpad.addListener(new ChangeListener() {
|
||||
@Override
|
||||
@@ -257,9 +260,9 @@ public class GameHUD extends Stage {
|
||||
avatar.setDrawable(new TextureRegionDrawable(Current.player().avatar()));
|
||||
Deck deck = AdventurePlayer.current().getSelectedDeck();
|
||||
if (deck == null || deck.isEmpty() || deck.getMain().toFlatList().size() < 30) {
|
||||
deckActor.getLabel().setColor(Color.RED);
|
||||
deckActor.setColor(Color.RED);
|
||||
} else {
|
||||
deckActor.getLabel().setColor(menuActor.getLabel().getColor());
|
||||
deckActor.setColor(menuActor.getColor());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -98,7 +98,7 @@ public abstract class GameStage extends Stage {
|
||||
return;
|
||||
foregroundSprites.removeActor(player);
|
||||
player = null;
|
||||
GameStage.this.GetPlayer();
|
||||
GameStage.this.getPlayerSprite();
|
||||
}
|
||||
});
|
||||
camera = (OrthographicCamera) getCamera();
|
||||
|
||||
@@ -2,9 +2,10 @@ 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;
|
||||
import com.badlogic.gdx.graphics.g2d.TextureAtlas;
|
||||
import com.badlogic.gdx.graphics.g2d.TextureRegion;
|
||||
import com.badlogic.gdx.maps.MapLayer;
|
||||
import com.badlogic.gdx.maps.MapObject;
|
||||
@@ -15,17 +16,16 @@ import com.badlogic.gdx.maps.tiled.TiledMapTileLayer;
|
||||
import com.badlogic.gdx.maps.tiled.objects.TiledMapTileMapObject;
|
||||
import com.badlogic.gdx.math.Rectangle;
|
||||
import com.badlogic.gdx.math.Vector2;
|
||||
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.actions.Actions;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.Dialog;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.Image;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.Label;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.TextButton;
|
||||
import com.badlogic.gdx.utils.Align;
|
||||
import com.badlogic.gdx.utils.Array;
|
||||
import com.badlogic.gdx.utils.Scaling;
|
||||
import com.badlogic.gdx.utils.*;
|
||||
import com.github.tommyettinger.textra.TextraButton;
|
||||
import com.github.tommyettinger.textra.TextraLabel;
|
||||
import com.github.tommyettinger.textra.TypingAdapter;
|
||||
import com.github.tommyettinger.textra.TypingLabel;
|
||||
import forge.Forge;
|
||||
@@ -35,7 +35,6 @@ import forge.adventure.pointofintrest.PointOfInterestChanges;
|
||||
import forge.adventure.scene.*;
|
||||
import forge.adventure.util.*;
|
||||
import forge.adventure.world.WorldSave;
|
||||
import forge.card.ColorSet;
|
||||
import forge.deck.Deck;
|
||||
import forge.deck.DeckProxy;
|
||||
import forge.gui.FThreads;
|
||||
@@ -43,20 +42,18 @@ import forge.screens.TransitionScreen;
|
||||
import forge.sound.SoundEffectType;
|
||||
import forge.sound.SoundSystem;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import static forge.adventure.util.Paths.MANA_ATLAS;
|
||||
|
||||
/**
|
||||
* Stage to handle tiled maps for points of interests
|
||||
*/
|
||||
public class MapStage extends GameStage {
|
||||
public static MapStage instance;
|
||||
Array<MapActor> actors = new Array<>();
|
||||
final Array<MapActor> actors = new Array<>();
|
||||
|
||||
TiledMap map;
|
||||
Array<Rectangle>[][] collision;
|
||||
Array<Rectangle> collisionRect=new Array<>();
|
||||
private float tileHeight;
|
||||
private float tileWidth;
|
||||
private float width;
|
||||
@@ -70,9 +67,9 @@ public class MapStage extends GameStage {
|
||||
private final Vector2 oldPosition3 = new Vector2();
|
||||
private final Vector2 oldPosition4 = new Vector2();
|
||||
private boolean isLoadingMatch = false;
|
||||
private HashMap<String, Byte> mapFlags = new HashMap<>(); //Stores local map flags. These aren't available outside this map.
|
||||
//private HashMap<String, Byte> mapFlags = new HashMap<>(); //Stores local map flags. These aren't available outside this map.
|
||||
|
||||
private Dialog dialog;
|
||||
private final Dialog dialog;
|
||||
private Stage dialogStage;
|
||||
private boolean dialogOnlyInput;
|
||||
|
||||
@@ -80,10 +77,11 @@ 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, TextButton> dialogButtonMap;
|
||||
private ObjectMap<Integer, TextraButton> dialogButtonMap;
|
||||
private int selected = 0;
|
||||
public InputEvent eventEnter, eventExit, eventTouchDown, eventTouchUp;
|
||||
TextButton selectedKey;
|
||||
TextraButton selectedKey;
|
||||
private boolean foundPlayerSpawn=false;
|
||||
|
||||
|
||||
public boolean getDialogOnlyInput() {
|
||||
@@ -157,7 +155,7 @@ public class MapStage extends GameStage {
|
||||
|
||||
@Override
|
||||
public boolean isColliding(Rectangle adjustedBoundingRect) {
|
||||
for (Rectangle collision : currentCollidingRectangles) {
|
||||
for (Rectangle collision : collisionRect) {
|
||||
if (collision.overlaps(adjustedBoundingRect)) {
|
||||
return true;
|
||||
}
|
||||
@@ -165,24 +163,10 @@ public class MapStage extends GameStage {
|
||||
return false;
|
||||
}
|
||||
|
||||
final Array<Rectangle> currentCollidingRectangles = new Array<>();
|
||||
|
||||
@Override
|
||||
public void prepareCollision(Vector2 pos, Vector2 direction, Rectangle boundingRect) {
|
||||
currentCollidingRectangles.clear();
|
||||
int x1 = (int) (Math.min(boundingRect.x, boundingRect.x + direction.x) / tileWidth);
|
||||
int y1 = (int) (Math.min(boundingRect.y, boundingRect.y + direction.y) / tileHeight);
|
||||
int x2 = (int) (Math.min(boundingRect.x + boundingRect.width, boundingRect.x + boundingRect.width + direction.x) / tileWidth);
|
||||
int y2 = (int) (Math.min(boundingRect.y + boundingRect.height, boundingRect.y + boundingRect.height + direction.y) / tileHeight);
|
||||
|
||||
for (int x = x1; x <= x2; x++) {
|
||||
for (int y = y1; y <= y2; y++) {
|
||||
if (x < 0 || x >= width || y < 0 || y >= height) {
|
||||
continue;
|
||||
}
|
||||
currentCollidingRectangles.addAll(collision[x][y]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -194,9 +178,7 @@ public class MapStage extends GameStage {
|
||||
if (collisionGroup == null) {
|
||||
collisionGroup = new Group();
|
||||
|
||||
for (int x = 0; x < collision.length; x++) {
|
||||
for (int y = 0; y < collision[x].length; y++) {
|
||||
for (Rectangle rectangle : collision[x][y]) {
|
||||
for (Rectangle rectangle : collisionRect) {
|
||||
MapActor collisionActor = new MapActor(0);
|
||||
collisionActor.setBoundDebug(true);
|
||||
collisionActor.setWidth(rectangle.width);
|
||||
@@ -205,8 +187,6 @@ public class MapStage extends GameStage {
|
||||
collisionActor.setY(rectangle.y);
|
||||
collisionGroup.addActor(collisionActor);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
if (b) {
|
||||
@@ -217,12 +197,12 @@ public class MapStage extends GameStage {
|
||||
|
||||
}
|
||||
|
||||
private void effectDialog(EffectData E) {
|
||||
private void effectDialog(EffectData effectData) {
|
||||
dialog.getButtonTable().clear();
|
||||
dialog.getContentTable().clear();
|
||||
TextButton ok = Controls.newTextButton("OK", this::hideDialog);
|
||||
TextraButton ok = Controls.newTextButton("OK", this::hideDialog);
|
||||
ok.setVisible(false);
|
||||
TypingLabel L = Controls.newTypingLabel("{GRADIENT=CYAN;WHITE;1;1}Strange magical energies flow within this place...{ENDGRADIENT}\nAll opponents get:\n" + E.getDescription());
|
||||
TypingLabel L = Controls.newTypingLabel("{GRADIENT=CYAN;WHITE;1;1}Strange magical energies flow within this place...{ENDGRADIENT}\nAll opponents get:\n" + effectData.getDescription());
|
||||
L.setWrap(true);
|
||||
L.setTypingListener(new TypingAdapter() {
|
||||
@Override
|
||||
@@ -247,7 +227,7 @@ public class MapStage extends GameStage {
|
||||
dialog.getContentTable().add(image).height(100);
|
||||
dialog.getContentTable().add().row();
|
||||
}
|
||||
Label L = Controls.newLabel(message);
|
||||
TextraLabel L = Controls.newTextraLabel(message);
|
||||
L.setWrap(true);
|
||||
dialog.getContentTable().add(L).width(250f);
|
||||
dialog.getButtonTable().add(Controls.newTextButton("OK", this::hideDialog)).width(250f);
|
||||
@@ -259,81 +239,14 @@ public class MapStage extends GameStage {
|
||||
public void showDeckAwardDialog(String message, Deck deck) {
|
||||
dialog.getContentTable().clear();
|
||||
dialog.getButtonTable().clear();
|
||||
if (deck != null) {
|
||||
TextureAtlas atlas = Config.instance().getAtlas(MANA_ATLAS);
|
||||
ColorSet deckColor = DeckProxy.getColorIdentity(deck);
|
||||
if (deckColor.isColorless()) {
|
||||
Image pixC = new Image(atlas.createSprite("pixC"));
|
||||
pixC.setScaling(Scaling.fit);
|
||||
dialog.getContentTable().add(pixC).height(20).width(20);
|
||||
|
||||
dialog.getContentTable().add(Controls.newTypingLabel(Controls.colorIdToTypingString(DeckProxy.getColorIdentity(deck)))).align(Align.center);
|
||||
dialog.getContentTable().add().row();
|
||||
} else if (deckColor.isMonoColor()) {
|
||||
Image pix = new Image(atlas.createSprite("pixC"));
|
||||
if (deckColor.hasWhite())
|
||||
pix = new Image(atlas.createSprite("pixW"));
|
||||
else if (deckColor.hasBlue())
|
||||
pix = new Image(atlas.createSprite("pixU"));
|
||||
else if (deckColor.hasBlack())
|
||||
pix = new Image(atlas.createSprite("pixB"));
|
||||
else if (deckColor.hasRed())
|
||||
pix = new Image(atlas.createSprite("pixR"));
|
||||
else if (deckColor.hasGreen())
|
||||
pix = new Image(atlas.createSprite("pixG"));
|
||||
pix.setScaling(Scaling.fit);
|
||||
dialog.getContentTable().add(pix).height(20).width(20);
|
||||
dialog.getContentTable().add().row();
|
||||
} else if (deckColor.isMulticolor()) {
|
||||
Group group = new Group();
|
||||
int mul = 0;
|
||||
if (deckColor.hasWhite()) {
|
||||
Image pix = new Image(atlas.createSprite("pixW"));
|
||||
pix.setScaling(Scaling.fit);
|
||||
pix.setSize(20, 20);
|
||||
pix.setPosition(0, 0);
|
||||
group.addActor(pix);
|
||||
mul++;
|
||||
}
|
||||
if (deckColor.hasBlue()) {
|
||||
Image pix = new Image(atlas.createSprite("pixU"));
|
||||
pix.setScaling(Scaling.fit);
|
||||
pix.setSize(20, 20);
|
||||
pix.setPosition(20 * mul, 0);
|
||||
mul++;
|
||||
group.addActor(pix);
|
||||
}
|
||||
if (deckColor.hasBlack()) {
|
||||
Image pix = new Image(atlas.createSprite("pixB"));
|
||||
pix.setScaling(Scaling.fit);
|
||||
pix.setSize(20, 20);
|
||||
pix.setPosition(20 * mul, 0);
|
||||
mul++;
|
||||
group.addActor(pix);
|
||||
}
|
||||
if (deckColor.hasRed()) {
|
||||
Image pix = new Image(atlas.createSprite("pixR"));
|
||||
pix.setScaling(Scaling.fit);
|
||||
pix.setSize(20, 20);
|
||||
pix.setPosition(20 * mul, 0);
|
||||
mul++;
|
||||
group.addActor(pix);
|
||||
}
|
||||
if (deckColor.hasGreen()) {
|
||||
Image pix = new Image(atlas.createSprite("pixG"));
|
||||
pix.setScaling(Scaling.fit);
|
||||
pix.setSize(20, 20);
|
||||
pix.setPosition(20 * mul, 0);
|
||||
mul++;
|
||||
group.addActor(pix);
|
||||
}
|
||||
group.setHeight(20);
|
||||
group.setWidth(20 * mul);
|
||||
dialog.getContentTable().add(group).align(Align.center);
|
||||
dialog.getContentTable().add().row();
|
||||
}
|
||||
}
|
||||
|
||||
TypingLabel L = Controls.newTypingLabel(message);
|
||||
L.setWrap(true);
|
||||
L.skipToTheEnd();
|
||||
|
||||
dialog.getContentTable().add(L).width(240);
|
||||
dialog.getButtonTable().add(Controls.newTextButton("OK", this::hideDialog)).width(240);
|
||||
dialog.setKeepWithinStage(true);
|
||||
@@ -351,13 +264,14 @@ public class MapStage extends GameStage {
|
||||
foregroundSprites.removeActor(actor);
|
||||
}
|
||||
|
||||
actors = new Array<>();
|
||||
actors.clear();
|
||||
collisionRect.clear();
|
||||
width = Float.parseFloat(map.getProperties().get("width").toString());
|
||||
height = Float.parseFloat(map.getProperties().get("height").toString());
|
||||
tileHeight = Float.parseFloat(map.getProperties().get("tileheight").toString());
|
||||
tileWidth = Float.parseFloat(map.getProperties().get("tilewidth").toString());
|
||||
setBounds(width * tileWidth, height * tileHeight);
|
||||
collision = new Array[(int) width][(int) height];
|
||||
//collision = new Array[(int) width][(int) height];
|
||||
|
||||
//Load dungeon effects.
|
||||
MapProperties MP = map.getProperties();
|
||||
@@ -385,23 +299,57 @@ public class MapStage extends GameStage {
|
||||
loadObjects(layer, sourceMap);
|
||||
}
|
||||
}
|
||||
|
||||
//reduce geometry in collision rectangles
|
||||
int oldSize;
|
||||
do {
|
||||
oldSize=collisionRect.size;
|
||||
for(int i=0;i<collisionRect.size;i++)
|
||||
{
|
||||
Rectangle r1= collisionRect.get(i);
|
||||
for(int j=i+1;j<collisionRect.size;j++)
|
||||
{
|
||||
Rectangle r2= collisionRect.get(j);
|
||||
if((Math.abs(r1.x-r2.x+r2.width)<1&&Math.abs(r1.y-r2.y)<1&&Math.abs(r1.height-r2.height)<1)//left edge is the same as right edge
|
||||
|
||||
||(Math.abs(r1.x+r1.width-r2.x)<1&&Math.abs(r1.y-r2.y)<1&&Math.abs(r1.height-r2.height)<1)//right edge is the same as left edge
|
||||
|
||||
||(Math.abs(r1.x - r2.x )<1&& Math.abs(r1.y+r1.height-r2.y)<1&&Math.abs(r1.width-r2.width)<1)//top edge is the same as bottom edge
|
||||
|
||||
||(Math.abs(r1.x - r2.x )<1&& Math.abs(r1.y-r2.y+r2.height)<1&&Math.abs(r1.width-r2.width)<1)//bottom edge is the same as left edge
|
||||
|
||||
||containsOrEquals(r1,r2)||containsOrEquals(r2,r1)
|
||||
)
|
||||
{
|
||||
r1.merge(r2);
|
||||
collisionRect.removeIndex(j);
|
||||
i--;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}while (oldSize!=collisionRect.size);
|
||||
if (spriteLayer == null) System.err.print("Warning: No spriteLayer present in map.\n");
|
||||
|
||||
}
|
||||
|
||||
static public boolean containsOrEquals(Rectangle r1,Rectangle r2) {
|
||||
float xmi = r2.x;
|
||||
float xma = xmi + r2.width;
|
||||
float ymi = r2.y;
|
||||
float yma = ymi + r2.height;
|
||||
return xmi >= r1.x && xmi <= r1.x + r1.width && xma >= r1.x && xma <= r1.x + r1.width && ymi >= r1.y && ymi <= r1.y + r1.height && yma >= r1.y && yma <= r1.y + r1.height;
|
||||
}
|
||||
private void loadCollision(TiledMapTileLayer layer) {
|
||||
for (int x = 0; x < layer.getWidth(); x++) {
|
||||
for (int y = 0; y < layer.getHeight(); y++) {
|
||||
if (collision[x][y] == null)
|
||||
collision[x][y] = new Array<>();
|
||||
Array<Rectangle> map = collision[x][y];
|
||||
TiledMapTileLayer.Cell cell = layer.getCell(x, y);
|
||||
if (cell == null)
|
||||
continue;
|
||||
for (MapObject collision : cell.getTile().getObjects()) {
|
||||
if (collision instanceof RectangleMapObject) {
|
||||
Rectangle r = ((RectangleMapObject) collision).getRectangle();
|
||||
map.add(new Rectangle((Math.round(layer.getTileWidth() * x) + r.x), (Math.round(layer.getTileHeight() * y) + r.y), Math.round(r.width), Math.round(r.height)));
|
||||
collisionRect.add(new Rectangle((Math.round(layer.getTileWidth() * x) + r.x), (Math.round(layer.getTileHeight() * y) + r.y), Math.round(r.width), Math.round(r.height)));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -409,13 +357,13 @@ public class MapStage extends GameStage {
|
||||
}
|
||||
|
||||
private boolean canSpawn(MapProperties prop) {
|
||||
DifficultyData DF = Current.player().getDifficulty();
|
||||
DifficultyData difficultyData = Current.player().getDifficulty();
|
||||
boolean spawnEasy = prop.get("spawn.Easy", Boolean.class);
|
||||
boolean spawnNorm = prop.get("spawn.Normal", Boolean.class);
|
||||
boolean spawnHard = prop.get("spawn.Hard", Boolean.class);
|
||||
if (DF.spawnRank == 2 && !spawnHard) return false;
|
||||
if (DF.spawnRank == 1 && !spawnNorm) return false;
|
||||
if (DF.spawnRank == 0 && !spawnEasy) return false;
|
||||
if (difficultyData.spawnRank == 2 && !spawnHard) return false;
|
||||
if (difficultyData.spawnRank == 1 && !spawnNorm) return false;
|
||||
if (difficultyData.spawnRank == 0 && !spawnEasy) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -423,8 +371,8 @@ public class MapStage extends GameStage {
|
||||
player.setMoveModifier(2);
|
||||
for (MapObject obj : layer.getObjects()) {
|
||||
MapProperties prop = obj.getProperties();
|
||||
if (prop.containsKey("type")) {
|
||||
String type = prop.get("type", String.class);
|
||||
if (type!=null) {
|
||||
int id = prop.get("id", int.class);
|
||||
if (changes.isObjectDeleted(id))
|
||||
continue;
|
||||
@@ -440,12 +388,12 @@ public class MapStage extends GameStage {
|
||||
String targetMap=prop.get("teleport").toString();
|
||||
boolean spawnPlayerThere=(targetMap==null||targetMap.isEmpty()&&sourceMap.isEmpty())||//if target is null and "from world"
|
||||
!sourceMap.isEmpty()&&targetMap.equals(sourceMap);
|
||||
|
||||
if(foundPlayerSpawn)
|
||||
spawnPlayerThere=false;
|
||||
if((prop.containsKey("spawn")&&prop.get("spawn").toString()=="true")&&spawnPlayerThere)
|
||||
if((prop.containsKey("spawn")&& prop.get("spawn").toString().equals("true"))&&spawnPlayerThere)
|
||||
{
|
||||
foundPlayerSpawn=true;
|
||||
spawnPlayerThere=true;
|
||||
}//set spawn to option with "spawn" over other entries
|
||||
EntryActor entry = new EntryActor(this, id, prop.get("teleport").toString(), x, y, w, h, prop.get("direction").toString(),spawnPlayerThere);
|
||||
addMapActor(obj, entry);
|
||||
@@ -467,33 +415,33 @@ public class MapStage extends GameStage {
|
||||
break;
|
||||
case "enemy":
|
||||
if (!canSpawn(prop)) break;
|
||||
Object E = prop.get("enemy");
|
||||
if (E != null && !E.toString().isEmpty()) {
|
||||
EnemyData EN = WorldData.getEnemy(E.toString());
|
||||
Object enemy = prop.get("enemy");
|
||||
if (enemy != null && !enemy.toString().isEmpty()) {
|
||||
EnemyData EN = WorldData.getEnemy(enemy.toString());
|
||||
if (EN == null) {
|
||||
System.err.printf("Enemy \"%s\" not found.", E.toString());
|
||||
System.err.printf("Enemy \"%s\" not found.", enemy);
|
||||
break;
|
||||
}
|
||||
EnemySprite mob = new EnemySprite(id, EN);
|
||||
Object D = prop.get("dialog"); //Check if the enemy has a dialogue attached to it.
|
||||
if (D != null && !D.toString().isEmpty()) {
|
||||
mob.dialog = new MapDialog(D.toString(), this, mob.getId());
|
||||
Object dialogObject = prop.get("dialog"); //Check if the enemy has a dialogue attached to it.
|
||||
if (dialogObject != null && !dialogObject.toString().isEmpty()) {
|
||||
mob.dialog = new MapDialog(dialogObject.toString(), this, mob.getId());
|
||||
}
|
||||
D = prop.get("defeatDialog"); //Check if the enemy has a defeat dialogue attached to it.
|
||||
if (D != null && !D.toString().isEmpty()) {
|
||||
mob.defeatDialog = new MapDialog(D.toString(), this, mob.getId());
|
||||
dialogObject = prop.get("defeatDialog"); //Check if the enemy has a defeat dialogue attached to it.
|
||||
if (dialogObject != null && !dialogObject.toString().isEmpty()) {
|
||||
mob.defeatDialog = new MapDialog(dialogObject.toString(), this, mob.getId());
|
||||
}
|
||||
D = prop.get("name"); //Check for name override.
|
||||
if (D != null && !D.toString().isEmpty()) {
|
||||
mob.nameOverride = D.toString();
|
||||
dialogObject = prop.get("name"); //Check for name override.
|
||||
if (dialogObject != null && !dialogObject.toString().isEmpty()) {
|
||||
mob.nameOverride = dialogObject.toString();
|
||||
}
|
||||
D = prop.get("effect"); //Check for special effects.
|
||||
if (D != null && !D.toString().isEmpty()) {
|
||||
mob.effect = JSONStringLoader.parse(EffectData.class, D.toString(), "");
|
||||
dialogObject = prop.get("effect"); //Check for special effects.
|
||||
if (dialogObject != null && !dialogObject.toString().isEmpty()) {
|
||||
mob.effect = JSONStringLoader.parse(EffectData.class, dialogObject.toString(), "");
|
||||
}
|
||||
D = prop.get("reward"); //Check for additional rewards.
|
||||
if (D != null && !D.toString().isEmpty()) {
|
||||
mob.rewards = JSONStringLoader.parse(RewardData[].class, D.toString(), "[]");
|
||||
dialogObject = prop.get("reward"); //Check for additional rewards.
|
||||
if (dialogObject != null && !dialogObject.toString().isEmpty()) {
|
||||
mob.rewards = JSONStringLoader.parse(RewardData[].class, dialogObject.toString(), "[]");
|
||||
}
|
||||
mob.hidden = hidden; //Evil.
|
||||
addMapActor(obj, mob);
|
||||
@@ -521,7 +469,7 @@ public class MapStage extends GameStage {
|
||||
}));
|
||||
break;
|
||||
case "exit":
|
||||
addMapActor(obj, new OnCollide(() -> MapStage.this.exit()));
|
||||
addMapActor(obj, new OnCollide(MapStage.this::exit));
|
||||
break;
|
||||
case "dialog":
|
||||
if (obj instanceof TiledMapTileMapObject) {
|
||||
@@ -593,7 +541,7 @@ public class MapStage extends GameStage {
|
||||
Current.player().win();
|
||||
player.setAnimation(CharacterSprite.AnimationTypes.Attack);
|
||||
currentMob.setAnimation(CharacterSprite.AnimationTypes.Death);
|
||||
startPause(0.3f, () -> MapStage.this.getReward());
|
||||
startPause(0.3f, MapStage.this::getReward);
|
||||
} else {
|
||||
player.setAnimation(CharacterSprite.AnimationTypes.Hit);
|
||||
currentMob.setAnimation(CharacterSprite.AnimationTypes.Attack);
|
||||
@@ -747,7 +695,7 @@ public class MapStage extends GameStage {
|
||||
else
|
||||
dialogButtonMap.clear();
|
||||
for (int i = 0; i < dialog.getButtonTable().getCells().size; i++) {
|
||||
dialogButtonMap.put(i, (TextButton) dialog.getButtonTable().getCells().get(i).getActor());
|
||||
dialogButtonMap.put(i, (TextraButton) dialog.getButtonTable().getCells().get(i).getActor());
|
||||
}
|
||||
dialog.show(dialogStage, Actions.show());
|
||||
dialog.setPosition((dialogStage.getWidth() - dialog.getWidth()) / 2, (dialogStage.getHeight() - dialog.getHeight()) / 2);
|
||||
@@ -812,7 +760,7 @@ public class MapStage extends GameStage {
|
||||
return true;
|
||||
}
|
||||
|
||||
private void selectDialogButton(TextButton dialogButton, boolean press) {
|
||||
private void selectDialogButton(TextraButton dialogButton, boolean press) {
|
||||
if (dialogOnlyInput) {
|
||||
if (selectedKey != null)
|
||||
selectedKey.fire(eventExit);
|
||||
@@ -836,7 +784,7 @@ public class MapStage extends GameStage {
|
||||
}
|
||||
}, 0.10f);
|
||||
}
|
||||
private int getButtonIndexKey(TextButton dialogbutton) {
|
||||
private int getButtonIndexKey(TextraButton dialogbutton) {
|
||||
if (dialogButtonMap.isEmpty())
|
||||
return 0;
|
||||
Integer key = dialogButtonMap.findKey(dialogbutton, true);
|
||||
|
||||
@@ -2,6 +2,7 @@ package forge.adventure.stage;
|
||||
|
||||
import com.badlogic.gdx.Gdx;
|
||||
import com.badlogic.gdx.controllers.Controllers;
|
||||
import com.badlogic.gdx.math.GridPoint2;
|
||||
import com.badlogic.gdx.math.Rectangle;
|
||||
import com.badlogic.gdx.math.Vector2;
|
||||
import com.badlogic.gdx.scenes.scene2d.Actor;
|
||||
@@ -29,7 +30,10 @@ import forge.sound.SoundSystem;
|
||||
import forge.util.MyRandom;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
|
||||
/**
|
||||
@@ -145,7 +149,7 @@ public class WorldStage extends GameStage implements SaveFileContent {
|
||||
}
|
||||
private void removeEnemy(EnemySprite currentMob) {
|
||||
|
||||
foregroundSprites.removeActor(currentMob);
|
||||
currentMob.removeAfterEffects();
|
||||
Iterator<Pair<Float, EnemySprite>> it = enemies.iterator();
|
||||
while (it.hasNext()) {
|
||||
Pair<Float, EnemySprite> pair = it.next();
|
||||
@@ -378,7 +382,7 @@ public class WorldStage extends GameStage implements SaveFileContent {
|
||||
EnemySprite enemy=null;
|
||||
for (Pair<Float, EnemySprite> pair : enemies) {
|
||||
float dist= pair.getValue().pos().sub(player.pos()).len();
|
||||
if(shortestDist<dist)
|
||||
if(dist<shortestDist)
|
||||
{
|
||||
shortestDist=dist;
|
||||
enemy=pair.getValue();
|
||||
@@ -386,8 +390,9 @@ public class WorldStage extends GameStage implements SaveFileContent {
|
||||
}
|
||||
if(enemy!=null)
|
||||
{
|
||||
enemy.playEffect(Paths.EFFECT_KILL);
|
||||
removeEnemy(enemy);
|
||||
player.playEffect(Paths.EFFECT_KILL);
|
||||
player.playEffect(Paths.TRIGGER_KILL);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package forge.adventure.util;
|
||||
|
||||
import com.badlogic.gdx.files.FileHandle;
|
||||
import com.badlogic.gdx.graphics.Color;
|
||||
import com.badlogic.gdx.graphics.g2d.BitmapFont;
|
||||
import com.badlogic.gdx.graphics.g2d.TextureAtlas;
|
||||
import com.badlogic.gdx.math.Rectangle;
|
||||
@@ -11,8 +12,13 @@ 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.utils.Align;
|
||||
import com.badlogic.gdx.utils.Null;
|
||||
import com.github.tommyettinger.textra.Font;
|
||||
import com.github.tommyettinger.textra.TextraButton;
|
||||
import com.github.tommyettinger.textra.TextraLabel;
|
||||
import com.github.tommyettinger.textra.TypingLabel;
|
||||
import forge.Forge;
|
||||
import forge.card.ColorSet;
|
||||
|
||||
import java.util.function.Function;
|
||||
|
||||
@@ -20,8 +26,48 @@ import java.util.function.Function;
|
||||
* Class to create ui elements in the correct style
|
||||
*/
|
||||
public class Controls {
|
||||
static public TextButton newTextButton(String text) {
|
||||
return new TextButton(text, GetSkin());
|
||||
static class LabelFix extends TextraLabel
|
||||
{
|
||||
public LabelFix(String text)
|
||||
{
|
||||
super(text, getSkin(),getTextraFont());
|
||||
}
|
||||
@Override
|
||||
public void setText(@Null String text) {
|
||||
this.storedText = text;
|
||||
this.layout.setTargetWidth(this.getMaxWidth());
|
||||
this.getFont().markup(text, this.layout.clear());
|
||||
this.setWidth(this.layout.getWidth() + (this.style != null && this.style.background != null ? this.style.background.getLeftWidth() + this.style.background.getRightWidth() : 0.0F));
|
||||
layout();
|
||||
}
|
||||
}
|
||||
static class TextButtonFix extends TextraButton
|
||||
{
|
||||
public TextButtonFix(@Null String text)
|
||||
{
|
||||
super(text, Controls.getSkin(),Controls.getTextraFont()) ;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setStyle(Button.ButtonStyle style, boolean makeGridGlyphs) {
|
||||
super.setStyle(style,makeGridGlyphs);
|
||||
this.getTextraLabel().setFont( Controls.getTextraFont());
|
||||
|
||||
}
|
||||
@Override
|
||||
public void setText(@Null String text) {
|
||||
getTextraLabel().storedText = text;
|
||||
getTextraLabel().layout.setTargetWidth(getTextraLabel().getMaxWidth());
|
||||
getTextraLabel().getFont().markup(text, getTextraLabel().layout.clear());
|
||||
getTextraLabel().setWidth(getTextraLabel().layout.getWidth() + (getTextraLabel().style != null && getTextraLabel().style.background != null ? getTextraLabel().style.background.getLeftWidth() + getTextraLabel().style.background.getRightWidth() : 0.0F));
|
||||
layout();
|
||||
}
|
||||
}
|
||||
static public TextraButton newTextButton(String text) {
|
||||
TextraButton button= new TextButtonFix(text);
|
||||
// button.getTextraLabelCell().fill(true,false).expand(true,false);//keep it the same as TextButton
|
||||
button.getTextraLabel().setWrap(false);
|
||||
return button;
|
||||
}
|
||||
static public Rectangle getBoundingRect(Actor actor) {
|
||||
return new Rectangle(actor.getX(),actor.getY(),actor.getWidth(),actor.getHeight());
|
||||
@@ -33,7 +79,7 @@ public class Controls {
|
||||
}
|
||||
|
||||
static public SelectBox newComboBox(String[] text, String item, Function<Object, Void> func) {
|
||||
SelectBox ret = new SelectBox<String>(GetSkin());
|
||||
SelectBox ret = new SelectBox<String>(getSkin());
|
||||
ret.getStyle().listStyle.selection.setTopHeight(4);
|
||||
ret.setItems(text);
|
||||
ret.addListener(new ChangeListener() {
|
||||
@@ -54,7 +100,7 @@ public class Controls {
|
||||
}
|
||||
|
||||
static public SelectBox newComboBox(Float[] text, float item, Function<Object, Void> func) {
|
||||
SelectBox ret = new SelectBox<Float>(GetSkin());
|
||||
SelectBox ret = new SelectBox<Float>(getSkin());
|
||||
ret.getStyle().listStyle.selection.setTopHeight(4);
|
||||
ret.setItems(text);
|
||||
ret.addListener(new ChangeListener() {
|
||||
@@ -75,11 +121,11 @@ public class Controls {
|
||||
}
|
||||
|
||||
static public TextField newTextField(String text) {
|
||||
return new TextField(text, GetSkin());
|
||||
return new TextField(text, getSkin());
|
||||
}
|
||||
|
||||
static public TextField newTextField(String text, Function<String, Void> func) {
|
||||
TextField ret = new TextField(text, GetSkin());
|
||||
TextField ret = new TextField(text, getSkin());
|
||||
ret.addListener(new ChangeListener() {
|
||||
@Override
|
||||
public void changed(ChangeEvent event, Actor actor) {
|
||||
@@ -94,8 +140,8 @@ public class Controls {
|
||||
return ret;
|
||||
}
|
||||
|
||||
static public TextButton newTextButton(String text, Runnable func) {
|
||||
TextButton ret = newTextButton(text);
|
||||
static public TextraButton newTextButton(String text, Runnable func) {
|
||||
TextraButton ret = newTextButton(text);
|
||||
ret.addListener(new ClickListener() {
|
||||
@Override
|
||||
public void clicked(InputEvent event, float x, float y) {
|
||||
@@ -111,12 +157,12 @@ 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());
|
||||
return ret;
|
||||
}
|
||||
|
||||
static public CheckBox newCheckBox(String text) {
|
||||
CheckBox ret = new CheckBox(text, GetSkin());
|
||||
CheckBox ret = new CheckBox(text, getSkin());
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -124,15 +170,15 @@ public class Controls {
|
||||
switch (fontName) {
|
||||
case "blackbig":
|
||||
case "big":
|
||||
GetSkin().getFont("default").getData().setScale(2, 2);
|
||||
return GetSkin().getFont("default");
|
||||
getSkin().getFont("default").getData().setScale(2, 2);
|
||||
return getSkin().getFont("default");
|
||||
default:
|
||||
GetSkin().getFont("default").getData().setScale(1, 1);
|
||||
return GetSkin().getFont("default");
|
||||
getSkin().getFont("default").getData().setScale(1, 1);
|
||||
return getSkin().getFont("default");
|
||||
}
|
||||
}
|
||||
|
||||
static public Skin GetSkin() {
|
||||
static public Skin getSkin() {
|
||||
FileHandle skinFile = Config.instance().getFile(Paths.SKIN);
|
||||
if (!Forge.getAssets().manager().contains(skinFile.path(), Skin.class)) {
|
||||
Forge.getAssets().manager().load(skinFile.path(), Skin.class);
|
||||
@@ -140,32 +186,151 @@ public class Controls {
|
||||
FileHandle atlasFile = skinFile.sibling(skinFile.nameWithoutExtension() + ".atlas");
|
||||
Forge.getAssets().manager().load(atlasFile.path(), TextureAtlas.class);
|
||||
Forge.getAssets().manager().finishLoadingAsset(atlasFile.path());
|
||||
//font
|
||||
/*/font skin will load the LanaPixel.fnt now
|
||||
FileHandle pixelFont = Config.instance().getFile(Paths.SKIN).sibling("LanaPixel.fnt");
|
||||
Forge.getAssets().manager().load(pixelFont.path(), BitmapFont.class);
|
||||
Forge.getAssets().manager().finishLoadingAsset(pixelFont.path());
|
||||
Forge.getAssets().manager().get(skinFile.path(), Skin.class).add("default", Forge.getAssets().manager().get(pixelFont.path(), BitmapFont.class), BitmapFont.class);
|
||||
Forge.getAssets().manager().get(skinFile.path(), Skin.class).addRegions(Forge.getAssets().manager().get(atlasFile.path(), TextureAtlas.class));
|
||||
Forge.getAssets().manager().finishLoadingAsset(skinFile.path());
|
||||
*/
|
||||
|
||||
}
|
||||
return Forge.getAssets().manager().get(skinFile.path(), Skin.class);
|
||||
}
|
||||
|
||||
public static Label newLabel(String name) {
|
||||
Label ret = new Label(name, GetSkin());
|
||||
Label ret = new Label(name, getSkin());
|
||||
return ret;
|
||||
}
|
||||
static public Color colorFromString(String name)
|
||||
{
|
||||
String upperCase=name.toUpperCase();
|
||||
if(upperCase.startsWith("0X")||upperCase.startsWith("#"))
|
||||
{
|
||||
return new Color( Long.decode(upperCase).intValue());
|
||||
}
|
||||
if(upperCase.equals("WHITE"))
|
||||
return Color.WHITE;
|
||||
if(upperCase.equals("LIGHT_GRAY"))
|
||||
return Color.LIGHT_GRAY;
|
||||
if(upperCase.equals("GRAY"))
|
||||
return Color.GRAY;
|
||||
if(upperCase.equals("DARK_GRAY"))
|
||||
return Color.DARK_GRAY;
|
||||
if(upperCase.equals("BLACK"))
|
||||
return Color.BLACK;
|
||||
if(upperCase.equals("CLEAR"))
|
||||
return Color.CLEAR;
|
||||
if(upperCase.equals("BLUE"))
|
||||
return Color.BLUE;
|
||||
if(upperCase.equals("NAVY"))
|
||||
return Color.NAVY;
|
||||
if(upperCase.equals("ROYAL"))
|
||||
return Color.ROYAL;
|
||||
if(upperCase.equals("SLATE"))
|
||||
return Color.SLATE;
|
||||
if(upperCase.equals("SKY"))
|
||||
return Color.SKY;
|
||||
if(upperCase.equals("CYAN"))
|
||||
return Color.CYAN;
|
||||
if(upperCase.equals("TEAL"))
|
||||
return Color.TEAL;
|
||||
if(upperCase.equals("GREEN"))
|
||||
return Color.GREEN;
|
||||
if(upperCase.equals("CHARTREUSE"))
|
||||
return Color.CHARTREUSE;
|
||||
if(upperCase.equals("LIME"))
|
||||
return Color.LIME;
|
||||
if(upperCase.equals("FOREST"))
|
||||
return Color.FOREST;
|
||||
if(upperCase.equals("OLIVE"))
|
||||
return Color.OLIVE;
|
||||
if(upperCase.equals("YELLOW"))
|
||||
return Color.YELLOW;
|
||||
if(upperCase.equals("GOLD"))
|
||||
return Color.GOLD;
|
||||
if(upperCase.equals("GOLDENROD"))
|
||||
return Color.GOLDENROD;
|
||||
if(upperCase.equals("ORANGE"))
|
||||
return Color.ORANGE;
|
||||
if(upperCase.equals("TAN"))
|
||||
return Color.TAN;
|
||||
if(upperCase.equals("FIREBRICK"))
|
||||
return Color.FIREBRICK;
|
||||
if(upperCase.equals("RED"))
|
||||
return Color.RED;
|
||||
if(upperCase.equals("SCARLET"))
|
||||
return Color.SCARLET;
|
||||
if(upperCase.equals("CORAL"))
|
||||
return Color.CORAL;
|
||||
if(upperCase.equals("SALMON"))
|
||||
return Color.SALMON;
|
||||
if(upperCase.equals("PINK"))
|
||||
return Color.PINK;
|
||||
if(upperCase.equals("MAGENTA"))
|
||||
return Color.MAGENTA;
|
||||
if(upperCase.equals("PURPLE"))
|
||||
return Color.PURPLE;
|
||||
if(upperCase.equals("VIOLET"))
|
||||
return Color.VIOLET;
|
||||
if(upperCase.equals("PINK"))
|
||||
return Color.MAROON;
|
||||
return Color.BLACK;
|
||||
}
|
||||
|
||||
public static TextraLabel newTextraLabel(String name) {
|
||||
TextraLabel ret = new LabelFix(name);
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static String colorIdToTypingString(ColorSet color)
|
||||
{
|
||||
String coloerId="";
|
||||
if(color.hasWhite())
|
||||
coloerId+="[+w]";
|
||||
if(color.hasBlue())
|
||||
coloerId+="[+u]";
|
||||
if(color.hasBlack())
|
||||
coloerId+="[+b]";
|
||||
if(color.hasRed())
|
||||
coloerId+="[+r]";
|
||||
if(color.hasGreen())
|
||||
coloerId+="[+g]";
|
||||
if(color.isColorless())
|
||||
coloerId+="[+c]";
|
||||
return coloerId;
|
||||
}
|
||||
public static TypingLabel newTypingLabel(String name) {
|
||||
TypingLabel ret = new TypingLabel(name, GetSkin());
|
||||
TypingLabel ret = new TypingLabel(name==null?"":name, getSkin(),getTextraFont());
|
||||
ret.setVariable("player_name",Current.player().getName());
|
||||
ret.setVariable("player_color_id",colorIdToTypingString(Current.player().getColorIdentity()));
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
public static Dialog newDialog(String title) {
|
||||
Dialog ret = new Dialog(title, GetSkin());
|
||||
Dialog ret = new Dialog(title, getSkin());
|
||||
ret.setMovable(false);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static Font textraFont=null;
|
||||
static public Font getTextraFont()
|
||||
{
|
||||
if(textraFont==null)
|
||||
{
|
||||
textraFont=new Font(getSkin().getFont("default"));
|
||||
textraFont.addAtlas(Config.instance().getAtlas(Paths.ITEMS_ATLAS));
|
||||
textraFont.adjustLineHeight(0.8f);//not sure why this is needed maybe the font is bad
|
||||
}
|
||||
return textraFont;
|
||||
}
|
||||
static public Font getTextraFont(String name)
|
||||
{
|
||||
Font font=new Font(getSkin().getFont(name));
|
||||
font.addAtlas(Config.instance().getAtlas(Paths.ITEMS_ATLAS));
|
||||
return font;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package forge.adventure.util;
|
||||
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.Dialog;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.Label;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.TextButton;
|
||||
import com.badlogic.gdx.utils.Array;
|
||||
import com.github.tommyettinger.textra.TextraButton;
|
||||
import com.github.tommyettinger.textra.TypingLabel;
|
||||
import forge.Forge;
|
||||
import forge.adventure.character.EnemySprite;
|
||||
import forge.adventure.data.DialogData;
|
||||
@@ -54,7 +54,7 @@ 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;
|
||||
Label A = Controls.newLabel(text);
|
||||
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.
|
||||
if(dialog.options != null) {
|
||||
@@ -63,8 +63,8 @@ public class MapDialog {
|
||||
String name; //Get localized label if present.
|
||||
if(option.locname != null && !option.locname.isEmpty()) name = L.getMessage(option.locname);
|
||||
else name = option.name;
|
||||
TextButton B = Controls.newTextButton(name,() -> loadDialog(option));
|
||||
B.getLabel().setWrap(true); //We want this to wrap in case it's a wordy choice.
|
||||
TextraButton B = Controls.newTextButton(name,() -> loadDialog(option));
|
||||
B.getTextraLabel().setWrap(true); //We want this to wrap in case it's a wordy choice.
|
||||
D.getButtonTable().add(B).width(WIDTH - 10); //The button table also returns a Cell when adding.
|
||||
//TODO: Reducing the space a tiny bit could help. But should be fine as long as there aren't more than 4-5 options.
|
||||
D.getButtonTable().row(); //Add a row. Tried to allow a few per row but it was a bit erratic.
|
||||
|
||||
@@ -14,14 +14,14 @@ public class Paths {
|
||||
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 MANA_ATLAS = "sprites/pixelmana.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";
|
||||
|
||||
|
||||
public static final String EFFECT_HEAL = "particle_effects/heal.p";
|
||||
public static final String EFFECT_KILL = "particle_effects/kill.p";
|
||||
public static final String EFFECT_KILL = "particle_effects/killed.p";
|
||||
public static final String TRIGGER_KILL = "particle_effects/kill.p";
|
||||
public static final String EFFECT_HIDE = "particle_effects/hide.p";
|
||||
public static final String EFFECT_SPRINT = "particle_effects/sprint.p";
|
||||
public static final String EFFECT_FLY = "particle_effects/fly.p";
|
||||
|
||||
@@ -17,13 +17,13 @@ import com.badlogic.gdx.scenes.scene2d.Actor;
|
||||
import com.badlogic.gdx.scenes.scene2d.InputEvent;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.Image;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.Table;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.TextButton;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.Tooltip;
|
||||
import com.badlogic.gdx.scenes.scene2d.utils.ActorGestureListener;
|
||||
import com.badlogic.gdx.scenes.scene2d.utils.ClickListener;
|
||||
import com.badlogic.gdx.scenes.scene2d.utils.TextureRegionDrawable;
|
||||
import com.badlogic.gdx.utils.Align;
|
||||
import com.badlogic.gdx.utils.Disposable;
|
||||
import com.github.tommyettinger.textra.TextraButton;
|
||||
import forge.Forge;
|
||||
import forge.Graphics;
|
||||
import forge.ImageKeys;
|
||||
@@ -680,7 +680,7 @@ public class RewardActor extends Actor implements Disposable, ImageFetcher.Callb
|
||||
Image tooltip_image;
|
||||
Table tooltip_actor;
|
||||
float height;
|
||||
TextButton switchButton;
|
||||
TextraButton switchButton;
|
||||
//Vector2 tmp = new Vector2();
|
||||
|
||||
public HoldTooltip(Image tooltip_image) {
|
||||
@@ -704,7 +704,7 @@ public class RewardActor extends Actor implements Disposable, ImageFetcher.Callb
|
||||
|
||||
@Override
|
||||
public boolean longPress(Actor actor, float x, float y) {
|
||||
TextButton done = actor.getStage().getRoot().findActor("done");
|
||||
TextraButton done = actor.getStage().getRoot().findActor("done");
|
||||
if (done != null && Reward.Type.Card.equals(reward.type)) {
|
||||
switchButton.setBounds(done.getX(), done.getY(), done.getWidth(), done.getHeight());
|
||||
if (reward.getCard().hasBackFace())
|
||||
|
||||
@@ -3,11 +3,11 @@ package forge.adventure.util;
|
||||
import com.badlogic.gdx.scenes.scene2d.Group;
|
||||
import com.badlogic.gdx.scenes.scene2d.InputEvent;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.ImageButton;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.TextButton;
|
||||
import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener;
|
||||
import com.badlogic.gdx.scenes.scene2d.utils.ClickListener;
|
||||
import com.badlogic.gdx.utils.Array;
|
||||
import com.badlogic.gdx.utils.Pools;
|
||||
import com.github.tommyettinger.textra.TextraButton;
|
||||
|
||||
/**
|
||||
* UI element to click through options, can be configured in an UiActor
|
||||
@@ -15,19 +15,19 @@ import com.badlogic.gdx.utils.Pools;
|
||||
public class Selector extends Group {
|
||||
private final ImageButton leftArrow;
|
||||
private final ImageButton rightArrow;
|
||||
private final TextButton label;
|
||||
private final TextraButton label;
|
||||
private int currentIndex = 0;
|
||||
private Array<String> textList;
|
||||
|
||||
|
||||
public Selector() {
|
||||
ImageButton.ImageButtonStyle leftArrowStyle = Controls.GetSkin().get("leftarrow", ImageButton.ImageButtonStyle.class);
|
||||
ImageButton.ImageButtonStyle leftArrowStyle = Controls.getSkin().get("leftarrow", ImageButton.ImageButtonStyle.class);
|
||||
leftArrow = new ImageButton(leftArrowStyle);
|
||||
|
||||
ImageButton.ImageButtonStyle rightArrowStyle = Controls.GetSkin().get("rightarrow", ImageButton.ImageButtonStyle.class);
|
||||
ImageButton.ImageButtonStyle rightArrowStyle = Controls.getSkin().get("rightarrow", ImageButton.ImageButtonStyle.class);
|
||||
rightArrow = new ImageButton(rightArrowStyle);
|
||||
|
||||
label = new TextButton("", Controls.GetSkin());
|
||||
label = Controls.newTextButton("");
|
||||
addActor(leftArrow);
|
||||
addActor(rightArrow);
|
||||
addActor(label);
|
||||
@@ -80,10 +80,12 @@ public class Selector extends Group {
|
||||
int oldIndex = currentIndex;
|
||||
this.currentIndex = currentIndex;
|
||||
label.setText(textList.get(currentIndex));
|
||||
label.layout();
|
||||
ChangeListener.ChangeEvent changeEvent = Pools.obtain(ChangeListener.ChangeEvent.class);
|
||||
if (fire(changeEvent)) {
|
||||
this.currentIndex = oldIndex;
|
||||
label.setText(textList.get(currentIndex));
|
||||
label.layout();
|
||||
}
|
||||
Pools.free(changeEvent);
|
||||
}
|
||||
@@ -91,7 +93,7 @@ public class Selector extends Group {
|
||||
public String getText() {
|
||||
return textList.get(currentIndex);
|
||||
}
|
||||
public TextButton getLabel() {
|
||||
public TextraButton getLabel() {
|
||||
return label;
|
||||
}
|
||||
public ImageButton getLeftArrow() {
|
||||
|
||||
@@ -196,6 +196,8 @@ public class TemplateTmxMapLoader extends TmxMapLoader {
|
||||
protected void loadObject(TiledMap map, MapObjects objects, XmlReader.Element element, float heightInPixels) {
|
||||
if (element.getName().equals("object")) {
|
||||
|
||||
if( element.hasAttribute("class")&& !element.hasAttribute("type"))
|
||||
element.setAttribute("type",element.getAttribute("class"));//set type to class value for Tiled 1.9 compatibility
|
||||
if (!element.hasAttribute("template")) {
|
||||
super.loadObject(map, objects, element, heightInPixels);
|
||||
return;
|
||||
|
||||
@@ -13,6 +13,8 @@ import com.badlogic.gdx.scenes.scene2d.utils.TextureRegionDrawable;
|
||||
import com.badlogic.gdx.utils.Json;
|
||||
import com.badlogic.gdx.utils.ObjectMap;
|
||||
import com.badlogic.gdx.utils.OrderedMap;
|
||||
import com.github.tommyettinger.textra.TextraButton;
|
||||
import com.github.tommyettinger.textra.TextraLabel;
|
||||
import forge.Forge;
|
||||
import forge.adventure.data.UIData;
|
||||
|
||||
@@ -44,11 +46,11 @@ public class UIActor extends Group {
|
||||
readSelectorProperties((Selector) newActor, new OrderedMap.OrderedMapEntries<>(element));
|
||||
break;
|
||||
case "Label":
|
||||
newActor = new Label("", Controls.GetSkin());
|
||||
readLabelProperties((Label) newActor, new OrderedMap.OrderedMapEntries<>(element));
|
||||
newActor = Controls.newTextraLabel("");
|
||||
readLabelProperties((TextraLabel) newActor, new OrderedMap.OrderedMapEntries<>(element));
|
||||
break;
|
||||
case "Table":
|
||||
newActor = new Table(Controls.GetSkin());
|
||||
newActor = new Table(Controls.getSkin());
|
||||
readTableProperties((Table) newActor, new OrderedMap.OrderedMapEntries<>(element));
|
||||
break;
|
||||
case "Image":
|
||||
@@ -56,31 +58,31 @@ public class UIActor extends Group {
|
||||
readImageProperties((Image) newActor, new OrderedMap.OrderedMapEntries<>(element));
|
||||
break;
|
||||
case "ImageButton":
|
||||
newActor = new ImageButton(Controls.GetSkin());
|
||||
newActor = new ImageButton(Controls.getSkin());
|
||||
readImageButtonProperties((ImageButton) newActor, new OrderedMap.OrderedMapEntries<>(element));
|
||||
break;
|
||||
case "Window":
|
||||
newActor = new Window("", Controls.GetSkin());
|
||||
newActor = new Window("", Controls.getSkin());
|
||||
readWindowProperties((Window) newActor, new OrderedMap.OrderedMapEntries<>(element));
|
||||
break;
|
||||
case "TextButton":
|
||||
newActor = new TextButton("", Controls.GetSkin());
|
||||
readButtonProperties((TextButton) newActor, new OrderedMap.OrderedMapEntries<>(element));
|
||||
newActor = Controls.newTextButton("");
|
||||
readButtonProperties((TextraButton) newActor, new OrderedMap.OrderedMapEntries<>(element));
|
||||
break;
|
||||
case "TextField":
|
||||
newActor = new TextField("", Controls.GetSkin());
|
||||
newActor = new TextField("", Controls.getSkin());
|
||||
readTextFieldProperties((TextField) newActor, new OrderedMap.OrderedMapEntries<>(element));
|
||||
break;
|
||||
case "Scroll":
|
||||
newActor = new ScrollPane(null, Controls.GetSkin());
|
||||
newActor = new ScrollPane(null, Controls.getSkin());
|
||||
readScrollPaneProperties((ScrollPane) newActor, new OrderedMap.OrderedMapEntries<>(element));
|
||||
break;
|
||||
case "CheckBox":
|
||||
newActor = new CheckBox("", Controls.GetSkin());
|
||||
newActor = new CheckBox("", Controls.getSkin());
|
||||
readCheckBoxProperties((CheckBox) newActor, new OrderedMap.OrderedMapEntries<>(element));
|
||||
break;
|
||||
case "SelectBox":
|
||||
newActor = new SelectBox<>(Controls.GetSkin());
|
||||
newActor = new SelectBox<>(Controls.getSkin());
|
||||
break;
|
||||
default:
|
||||
throw new IllegalStateException("Unexpected value: " + type);
|
||||
@@ -135,11 +137,11 @@ public class UIActor extends Group {
|
||||
}
|
||||
|
||||
private void readScrollPaneProperties(ScrollPane newActor, ObjectMap.Entries<String, String> entries) {
|
||||
newActor.setActor(new Label("", Controls.GetSkin()));
|
||||
newActor.setActor(Controls.newTextraLabel(""));
|
||||
for (ObjectMap.Entry property : entries) {
|
||||
switch (property.key.toString()) {
|
||||
case "style":
|
||||
newActor.setStyle(Controls.GetSkin().get(property.value.toString(), ScrollPane.ScrollPaneStyle.class));
|
||||
newActor.setStyle(Controls.getSkin().get(property.value.toString(), ScrollPane.ScrollPaneStyle.class));
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -149,7 +151,7 @@ public class UIActor extends Group {
|
||||
for (ObjectMap.Entry property : entries) {
|
||||
switch (property.key.toString()) {
|
||||
case "style":
|
||||
newActor.setStyle(Controls.GetSkin().get(property.value.toString(), Window.WindowStyle.class));
|
||||
newActor.setStyle(Controls.getSkin().get(property.value.toString(), Window.WindowStyle.class));
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -170,13 +172,13 @@ public class UIActor extends Group {
|
||||
}
|
||||
|
||||
public static String localize(String str) {
|
||||
Pattern regex=Pattern.compile("\\{[^\\}]*\\}");
|
||||
Pattern regex=Pattern.compile("tr\\([^\\)]*\\)");
|
||||
for(int i=0;i<100;i++)
|
||||
{
|
||||
Matcher matcher= regex.matcher(str);
|
||||
if(!matcher.find())
|
||||
return str;
|
||||
str=matcher.replaceAll(Forge.getLocalizer().getMessage(matcher.group().substring(1,matcher.group().length()-1)));
|
||||
str=matcher.replaceFirst(Forge.getLocalizer().getMessage(matcher.group().substring(3,matcher.group().length()-1)));
|
||||
}
|
||||
return str;
|
||||
}
|
||||
@@ -185,39 +187,34 @@ public class UIActor extends Group {
|
||||
for (ObjectMap.Entry property : entries) {
|
||||
switch (property.key.toString()) {
|
||||
case "style":
|
||||
newActor.setStyle(Controls.GetSkin().get(property.value.toString(), ImageButton.ImageButtonStyle.class));
|
||||
newActor.setStyle(Controls.getSkin().get(property.value.toString(), ImageButton.ImageButtonStyle.class));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void readLabelProperties(Label newActor, ObjectMap.Entries<String, String> entries) {
|
||||
Label.LabelStyle style = new Label.LabelStyle(newActor.getStyle());
|
||||
private void readLabelProperties(TextraLabel newActor, ObjectMap.Entries<String, String> entries) {
|
||||
for (ObjectMap.Entry property : entries) {
|
||||
switch (property.key.toString()) {
|
||||
case "text":
|
||||
newActor.setText(localize(property.value.toString()));
|
||||
break;
|
||||
case "font"://legacy
|
||||
style.font = Controls.getBitmapFont(property.value.toString());
|
||||
if (property.value.toString().contains("black"))
|
||||
style.fontColor = Color.BLACK;
|
||||
if (property.value.toString().contains("big"))
|
||||
newActor.setFontScale(2, 2);
|
||||
newActor.setStyle(style);
|
||||
break;
|
||||
case "fontSize":
|
||||
newActor.setFontScale((Float)property.value, (Float)property.value);
|
||||
break;
|
||||
case "font":
|
||||
case "fontName":
|
||||
style.font = Controls.getBitmapFont(property.value.toString());
|
||||
newActor.setStyle(style);
|
||||
if(!property.value.toString().equals("default"))
|
||||
newActor.setFont(Controls.getTextraFont(property.value.toString()));
|
||||
break;
|
||||
case "style":
|
||||
newActor.style=(Controls.getSkin().get(property.value.toString(), Label.LabelStyle.class));
|
||||
break;
|
||||
case "color":
|
||||
case "fontColor":
|
||||
newActor.setColor(new Color(Integer.decode(property.value.toString()) ));
|
||||
newActor.layout.setBaseColor(Controls.colorFromString(property.value.toString()));
|
||||
break;
|
||||
}
|
||||
}
|
||||
newActor.setText(newActor.storedText);//necessary if color changes after text inserted
|
||||
newActor.layout();
|
||||
}
|
||||
|
||||
private void readTableProperties(Table newActor, ObjectMap.Entries<String, String> entries) {
|
||||
@@ -247,14 +244,18 @@ public class UIActor extends Group {
|
||||
}
|
||||
}
|
||||
|
||||
private void readButtonProperties(TextButton newActor, ObjectMap.Entries<String, String> entries) {
|
||||
private void readButtonProperties(TextraButton newActor, ObjectMap.Entries<String, String> entries) {
|
||||
for (ObjectMap.Entry property : entries) {
|
||||
switch (property.key.toString()) {
|
||||
case "text":
|
||||
newActor.setText(localize(property.value.toString()));
|
||||
break;
|
||||
case "style":
|
||||
newActor.setStyle(Controls.getSkin().get(property.value.toString(), TextButton.TextButtonStyle.class));
|
||||
break;
|
||||
}
|
||||
}
|
||||
newActor.layout();
|
||||
}
|
||||
|
||||
private void readImageProperties(Image newActor, ObjectMap.Entries<String, String> entries) {
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
<dependency>
|
||||
<groupId>com.github.tommyettinger</groupId>
|
||||
<artifactId>textratypist</artifactId>
|
||||
<version>0.7.1</version>
|
||||
<version>0.7.2</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.thoughtworks.xstream</groupId>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"playerBaseSpeed": 32,
|
||||
"minDeckSize": 40,
|
||||
"colorIds":["W","U","B","R","G"],
|
||||
"colorIdNames":["{lblWhite}","{lblBlue}","{lblBlack}","{lblRed}","{lblGreen}"],
|
||||
"colorIdNames":["tr(lblWhite) [+w]","tr(lblBlue) [+u]","tr(lblBlack) [+b]","tr(lblRed) [+r]","tr(lblGreen) [+g]"],
|
||||
"restrictedCards": [
|
||||
"Black Lotus",
|
||||
"Mox Emerald",
|
||||
|
||||
@@ -3,11 +3,11 @@
|
||||
"height": 4300,
|
||||
"width": 2
|
||||
},
|
||||
"activeFile": "map/main_story/plains_capital.tmx",
|
||||
"activeFile": "map/main_story/spawn.tmx",
|
||||
"automapping.whileDrawing": false,
|
||||
"expandedProjectPaths": [
|
||||
"map",
|
||||
"tileset",
|
||||
"map",
|
||||
"obj",
|
||||
"map/main_story"
|
||||
],
|
||||
@@ -1551,11 +1551,11 @@
|
||||
"expandedObjectLayers": [
|
||||
4
|
||||
],
|
||||
"scale": 1.5,
|
||||
"scale": 3,
|
||||
"selectedLayer": 4,
|
||||
"viewCenter": {
|
||||
"x": 239.66666666666666,
|
||||
"y": 154
|
||||
"x": 230.5,
|
||||
"y": 155.83333333333331
|
||||
}
|
||||
},
|
||||
"map/fort_1.tmx": {
|
||||
@@ -1939,11 +1939,11 @@
|
||||
"expandedObjectLayers": [
|
||||
4
|
||||
],
|
||||
"scale": 1.5,
|
||||
"scale": 2,
|
||||
"selectedLayer": 4,
|
||||
"viewCenter": {
|
||||
"x": 256.3333333333333,
|
||||
"y": 129
|
||||
"x": 255.25,
|
||||
"y": 122.25
|
||||
}
|
||||
},
|
||||
"map/magetower_1.tmx": {
|
||||
@@ -2127,8 +2127,8 @@
|
||||
"scale": 1.5,
|
||||
"selectedLayer": 4,
|
||||
"viewCenter": {
|
||||
"x": 239.66666666666666,
|
||||
"y": 911.6666666666666
|
||||
"x": 240,
|
||||
"y": 912
|
||||
}
|
||||
},
|
||||
"map/main_story/forest_capital.tmx": {
|
||||
@@ -2138,84 +2138,87 @@
|
||||
"scale": 3,
|
||||
"selectedLayer": 5,
|
||||
"viewCenter": {
|
||||
"x": 319.8333333333333,
|
||||
"y": 319.8333333333333
|
||||
"x": 320,
|
||||
"y": 320
|
||||
}
|
||||
},
|
||||
"map/main_story/green_castle.tmx": {
|
||||
"scale": 3,
|
||||
"selectedLayer": 4,
|
||||
"viewCenter": {
|
||||
"x": 239.83333333333331,
|
||||
"y": 239.83333333333331
|
||||
"x": 246,
|
||||
"y": 239.66666666666663
|
||||
}
|
||||
},
|
||||
"map/main_story/island_capital.tmx": {
|
||||
"expandedObjectLayers": [
|
||||
4
|
||||
],
|
||||
"scale": 1,
|
||||
"scale": 2,
|
||||
"selectedLayer": 5,
|
||||
"viewCenter": {
|
||||
"x": 319.5,
|
||||
"y": 319.5
|
||||
"x": 320,
|
||||
"y": 320
|
||||
}
|
||||
},
|
||||
"map/main_story/mountain_capital.tmx": {
|
||||
"expandedObjectLayers": [
|
||||
4
|
||||
],
|
||||
"scale": 4,
|
||||
"scale": 2,
|
||||
"selectedLayer": 5,
|
||||
"viewCenter": {
|
||||
"x": 373.125,
|
||||
"y": 216.75
|
||||
"x": 320,
|
||||
"y": 320
|
||||
}
|
||||
},
|
||||
"map/main_story/plains_capital.tmx": {
|
||||
"expandedObjectLayers": [
|
||||
4
|
||||
],
|
||||
"scale": 2,
|
||||
"scale": 8,
|
||||
"selectedLayer": 5,
|
||||
"viewCenter": {
|
||||
"x": 410.75,
|
||||
"y": 173.5
|
||||
"x": 320,
|
||||
"y": 320
|
||||
}
|
||||
},
|
||||
"map/main_story/red_castle.tmx": {
|
||||
"scale": 2,
|
||||
"selectedLayer": 4,
|
||||
"viewCenter": {
|
||||
"x": 239.75,
|
||||
"y": 239.75
|
||||
"x": 240,
|
||||
"y": 240
|
||||
}
|
||||
},
|
||||
"map/main_story/skep.tmx": {
|
||||
"scale": 1.5,
|
||||
"selectedLayer": 4,
|
||||
"viewCenter": {
|
||||
"x": 358.6666666666667,
|
||||
"y": 348.3333333333333
|
||||
"x": 240,
|
||||
"y": 240
|
||||
}
|
||||
},
|
||||
"map/main_story/spawn.tmx": {
|
||||
"scale": 1.5,
|
||||
"expandedObjectLayers": [
|
||||
4
|
||||
],
|
||||
"scale": 4,
|
||||
"selectedLayer": 4,
|
||||
"viewCenter": {
|
||||
"x": 239.66666666666666,
|
||||
"y": 239.66666666666669
|
||||
"x": 240,
|
||||
"y": 240
|
||||
}
|
||||
},
|
||||
"map/main_story/swamp_capital.tmx": {
|
||||
"expandedObjectLayers": [
|
||||
4
|
||||
],
|
||||
"scale": 3,
|
||||
"scale": 2,
|
||||
"selectedLayer": 5,
|
||||
"viewCenter": {
|
||||
"x": 319.8333333333333,
|
||||
"y": 319.8333333333333
|
||||
"x": 320,
|
||||
"y": 320
|
||||
}
|
||||
},
|
||||
"map/main_story/unbenannt.tmx": {
|
||||
@@ -2238,8 +2241,8 @@
|
||||
"scale": 4,
|
||||
"selectedLayer": 4,
|
||||
"viewCenter": {
|
||||
"x": 239.875,
|
||||
"y": 239.875
|
||||
"x": 240,
|
||||
"y": 240
|
||||
}
|
||||
},
|
||||
"map/maze_1.tmx": {
|
||||
@@ -2379,11 +2382,14 @@
|
||||
}
|
||||
},
|
||||
"map/mountain_town.tmx": {
|
||||
"expandedObjectLayers": [
|
||||
4
|
||||
],
|
||||
"scale": 3,
|
||||
"selectedLayer": 4,
|
||||
"viewCenter": {
|
||||
"x": 235.5,
|
||||
"y": 135.66666666666663
|
||||
"y": 135.83333333333331
|
||||
}
|
||||
},
|
||||
"map/nest_blue_1.tmx": {
|
||||
@@ -2694,6 +2700,9 @@
|
||||
}
|
||||
},
|
||||
"map/swamp_town.tmx": {
|
||||
"expandedObjectLayers": [
|
||||
4
|
||||
],
|
||||
"scale": 2,
|
||||
"selectedLayer": 4,
|
||||
"viewCenter": {
|
||||
@@ -2772,11 +2781,11 @@
|
||||
}
|
||||
},
|
||||
"map/waste_town.tmx": {
|
||||
"scale": 1.5,
|
||||
"selectedLayer": 4,
|
||||
"scale": 3,
|
||||
"selectedLayer": 2,
|
||||
"viewCenter": {
|
||||
"x": 214.66666666666663,
|
||||
"y": 299
|
||||
"x": 239.99999999999997,
|
||||
"y": 240
|
||||
}
|
||||
},
|
||||
"map/waste_town_2.tmx": {
|
||||
@@ -2799,23 +2808,23 @@
|
||||
"scale": 1.5,
|
||||
"selectedLayer": 0,
|
||||
"viewCenter": {
|
||||
"x": 250.33333333333331,
|
||||
"y": 148.33333333333331
|
||||
"x": 240,
|
||||
"y": 136
|
||||
}
|
||||
},
|
||||
"map/yule_town.tmx": {
|
||||
"scale": 1.5,
|
||||
"selectedLayer": 5,
|
||||
"viewCenter": {
|
||||
"x": 250.99999999999997,
|
||||
"y": 33.666666666666686
|
||||
"x": 240,
|
||||
"y": 136
|
||||
}
|
||||
},
|
||||
"map/zombietown.tmx": {
|
||||
"scale": 2,
|
||||
"selectedLayer": 5,
|
||||
"viewCenter": {
|
||||
"x": 479.75,
|
||||
"x": 480,
|
||||
"y": 272
|
||||
}
|
||||
},
|
||||
@@ -2840,7 +2849,6 @@
|
||||
"map/main_story/red_castle.tmx",
|
||||
"map/main_story/plains_capital.tmx",
|
||||
"map/main_story/forest_capital.tmx",
|
||||
"map/main_story/swamp_capital.tmx",
|
||||
"map/main_story/mountain_capital.tmx",
|
||||
"map/main_story/island_capital.tmx",
|
||||
"map/main_story/spawn.tmx",
|
||||
@@ -2848,23 +2856,28 @@
|
||||
"map/main_story/white_castle.tmx",
|
||||
"tileset/main.tsx",
|
||||
"tileset/buildings.tsx",
|
||||
"map/forest_town.tmx"
|
||||
"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"
|
||||
],
|
||||
"project": "main.tiled-project",
|
||||
"property.type": "string",
|
||||
"property.type": "int",
|
||||
"recentFiles": [
|
||||
"map/main_story/green_castle.tmx",
|
||||
"map/main_story/red_castle.tmx",
|
||||
"map/forest_town.tmx",
|
||||
"tileset/buildings.tsx",
|
||||
"tileset/main.tsx",
|
||||
"map/main_story/white_castle.tmx",
|
||||
"map/main_story/final_castle.tmx",
|
||||
"map/main_story/spawn.tmx",
|
||||
"map/main_story/island_capital.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/skep.tmx",
|
||||
"map/main_story/swamp_capital.tmx",
|
||||
"map/main_story/forest_capital.tmx"
|
||||
"map/waste_town.tmx",
|
||||
"map/wurmpond_1.tmx",
|
||||
"map/yule_town.tmx",
|
||||
"map/zombietown.tmx"
|
||||
],
|
||||
"resizeMap.removeObjects": true,
|
||||
"textEdit.monospace": true
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<map version="1.9" tiledversion="1.9.1" orientation="orthogonal" renderorder="right-down" width="40" height="40" tilewidth="16" tileheight="16" infinite="0" nextlayerid="7" nextobjectid="71">
|
||||
<map version="1.9" tiledversion="1.9.1" orientation="orthogonal" renderorder="right-down" width="40" height="40" tilewidth="16" tileheight="16" infinite="0" nextlayerid="7" nextobjectid="72">
|
||||
<editorsettings>
|
||||
<export target="wastetown..tmx" format="tmx"/>
|
||||
</editorsettings>
|
||||
@@ -52,9 +52,8 @@
|
||||
<property name="spawn" type="bool" value="true"/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="59" template="../../obj/entry_left.tx" x="336.96" y="541.969" width="16" height="80.9948" rotation="179.747"/>
|
||||
<object id="59" template="../../obj/entry_left.tx" x="321" y="623" width="16" height="80.9948" rotation="0"/>
|
||||
<object id="60" template="../../obj/entry_right.tx" x="254" y="623" width="16" height="85"/>
|
||||
<object id="61" template="../../obj/arena.tx" x="352" y="583"/>
|
||||
<object id="62" template="../../obj/shop.tx" x="361" y="370">
|
||||
<properties>
|
||||
<property name="shopList" value="GreenEquipment"/>
|
||||
@@ -102,5 +101,67 @@
|
||||
<property name="shopList" value="Instant,Creature,Green,Gruul,Selesnya,Golgari,Simic,Elf "/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="71" template="../../obj/arena.tx" x="359" y="290">
|
||||
<properties>
|
||||
<property name="arena">{
|
||||
|
||||
"enemyPool":[
|
||||
"Ape",
|
||||
"Bear",
|
||||
"Centaur",
|
||||
"Centaur Warrior",
|
||||
"Dino",
|
||||
"Eldraine Faerie",
|
||||
"Elf",
|
||||
"Elf warrior",
|
||||
"Elk",
|
||||
"Faerie",
|
||||
"Giant Spider",
|
||||
"Gorgon",
|
||||
"Gorgon 2",
|
||||
"Green Beast",
|
||||
"Green Wiz1",
|
||||
"Green Wiz2",
|
||||
"Green Wiz3",
|
||||
"High Elf",
|
||||
"Hydra",
|
||||
"Satyr",
|
||||
"Snake",
|
||||
"Spider",
|
||||
"Treefolk",
|
||||
"Treefolk Guardian",
|
||||
"Viper",
|
||||
"Werewolf",
|
||||
"Wurm"
|
||||
],
|
||||
"rounds":3,
|
||||
"entryFee":100,
|
||||
"rewards": [[
|
||||
{
|
||||
"type": "card",
|
||||
"probability": 1,
|
||||
"count":2,
|
||||
"rarity": [
|
||||
"Mythic Rare"
|
||||
],
|
||||
"colors": ["green"]
|
||||
}
|
||||
],[
|
||||
{
|
||||
"type": "gold",
|
||||
"probability": 1,
|
||||
"count": 500
|
||||
}
|
||||
],[{
|
||||
"type": "item",
|
||||
"probability": 1,
|
||||
"count": 1,
|
||||
"itemNames": ["Dungeon Map","Mad Staff","Gold Boots","Disrupting Scepter"]
|
||||
}
|
||||
]
|
||||
]
|
||||
}</property>
|
||||
</properties>
|
||||
</object>
|
||||
</objectgroup>
|
||||
</map>
|
||||
|
||||
@@ -36,49 +36,49 @@
|
||||
<objectgroup id="4" name="Objects">
|
||||
<object id="41" template="../../obj/shop.tx" x="232" y="162">
|
||||
<properties>
|
||||
<property name="shopList" value="Human,Boros,Orzhov,Selesnya,Selesnya,Azorius,White,Creature,Instant,Angel"/>
|
||||
<property name="shopList" value="Instant,Creature,Blue,Azorius,Dimir,Izzet,Simic,Merfolk "/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="56" template="../../obj/shop.tx" x="103" y="226">
|
||||
<properties>
|
||||
<property name="shopList" value="Human,Boros,Orzhov,Selesnya,Selesnya,Azorius,White,Creature,Instant,Angel"/>
|
||||
<property name="shopList" value="Instant,Creature,Blue,Azorius,Dimir,Izzet,Simic,Merfolk "/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="57" template="../../obj/shop.tx" x="392" y="162">
|
||||
<properties>
|
||||
<property name="shopList" value="Human,Boros,Orzhov,Selesnya,Selesnya,Azorius,White,Creature,Instant,Angel"/>
|
||||
<property name="shopList" value="Instant,Creature,Blue,Azorius,Dimir,Izzet,Simic,Merfolk "/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="43" template="../../obj/shop.tx" x="152" y="451">
|
||||
<properties>
|
||||
<property name="shopList" value="Human,Boros,Orzhov,Selesnya,Selesnya,Azorius,White,Creature,Instant,Angel"/>
|
||||
<property name="shopList" value="Instant,Creature,Blue,Azorius,Dimir,Izzet,Simic,Merfolk "/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="47" template="../../obj/inn.tx" x="311" y="227"/>
|
||||
<object id="49" template="../../obj/shop.tx" x="520" y="225">
|
||||
<properties>
|
||||
<property name="shopList" value="Human,Boros,Orzhov,Selesnya,Selesnya,Azorius,White,Creature,Instant,Angel"/>
|
||||
<property name="shopList" value="Instant,Creature,Blue,Azorius,Dimir,Izzet,Simic,Merfolk "/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="50" template="../../obj/shop.tx" x="536" y="354">
|
||||
<properties>
|
||||
<property name="shopList" value="Human,Boros,Orzhov,Selesnya,Selesnya,Azorius,White,Creature,Instant,Angel"/>
|
||||
<property name="shopList" value="Instant,Creature,Blue,Azorius,Dimir,Izzet,Simic,Merfolk "/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="51" template="../../obj/shop.tx" x="472" y="450">
|
||||
<properties>
|
||||
<property name="shopList" value="Human,Boros,Orzhov,Selesnya,Selesnya,Azorius,White,Creature,Instant,Angel"/>
|
||||
<property name="shopList" value="Instant,Creature,Blue,Azorius,Dimir,Izzet,Simic,Merfolk "/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="52" template="../../obj/shop.tx" x="88" y="354">
|
||||
<properties>
|
||||
<property name="shopList" value="Human,Boros,Orzhov,Selesnya,Selesnya,Azorius,White,Creature,Instant,Angel"/>
|
||||
<property name="shopList" value="Instant,Creature,Blue,Azorius,Dimir,Izzet,Simic,Merfolk "/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="53" template="../../obj/spellsmith.tx" x="408" y="402"/>
|
||||
<object id="55" template="../../obj/shop.tx" x="465" y="515">
|
||||
<properties>
|
||||
<property name="shopList" value="Plains"/>
|
||||
<property name="shopList" value="Island"/>
|
||||
<property name="signYOffset" type="float" value="0"/>
|
||||
</properties>
|
||||
</object>
|
||||
@@ -87,7 +87,58 @@
|
||||
<property name="spawn" type="bool" value="true"/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="61" template="../../obj/arena.tx" x="216" y="403"/>
|
||||
<object id="61" template="../../obj/arena.tx" x="216" y="403">
|
||||
<properties>
|
||||
<property name="arena">{
|
||||
|
||||
"enemyPool":[
|
||||
"Bird",
|
||||
"Djinn",
|
||||
"Elemental",
|
||||
"Merfolk",
|
||||
"Merfolk Avatar",
|
||||
"Merfolk Fighter",
|
||||
"Merfolk Lord",
|
||||
"Merfolk Soldier",
|
||||
"Merfolk warrior",
|
||||
"Blue Wiz1",
|
||||
"Blue Wiz2",
|
||||
"Blue Wiz3",
|
||||
"Geist",
|
||||
"Rogue",
|
||||
"Sea Monster",
|
||||
"Tarkir Djinn",
|
||||
"Doppelganger"
|
||||
],
|
||||
"rounds":3,
|
||||
"entryFee":100,
|
||||
"rewards": [[
|
||||
{
|
||||
"type": "card",
|
||||
"probability": 1,
|
||||
"count":2,
|
||||
"rarity": [
|
||||
"Mythic Rare"
|
||||
],
|
||||
"colors": ["blue"]
|
||||
}
|
||||
],[
|
||||
{
|
||||
"type": "gold",
|
||||
"probability": 1,
|
||||
"count": 500
|
||||
}
|
||||
],[{
|
||||
"type": "item",
|
||||
"probability": 1,
|
||||
"count": 1,
|
||||
"itemNames": ["Mithril Armor","Mithril Shield","Mithril Boots","Dagger"]
|
||||
}
|
||||
]
|
||||
]
|
||||
}</property>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="62" template="../../obj/shop.tx" x="360" y="370">
|
||||
<properties>
|
||||
<property name="shopList" value="BlueItems"/>
|
||||
|
||||
@@ -36,12 +36,12 @@
|
||||
<objectgroup id="4" name="Objects">
|
||||
<object id="41" template="../../obj/shop.tx" x="249" y="370">
|
||||
<properties>
|
||||
<property name="shopList" value="Human,Boros,Orzhov,Selesnya,Selesnya,Azorius,White,Creature,Instant,Angel"/>
|
||||
<property name="shopList" value="Instant,Creature,Red,Rakdos,Gruul,Izzet,Boros,Goblin "/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="56" template="../../obj/shop.tx" x="153" y="371">
|
||||
<properties>
|
||||
<property name="shopList" value="Human,Boros,Orzhov,Selesnya,Selesnya,Azorius,White,Creature,Instant,Angel"/>
|
||||
<property name="shopList" value="Instant,Creature,Red,Rakdos,Gruul,Izzet,Boros,Goblin "/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="57" template="../../obj/shop.tx" x="201" y="418">
|
||||
@@ -51,34 +51,34 @@
|
||||
</object>
|
||||
<object id="43" template="../../obj/shop.tx" x="105" y="370">
|
||||
<properties>
|
||||
<property name="shopList" value="Human,Boros,Orzhov,Selesnya,Selesnya,Azorius,White,Creature,Instant,Angel"/>
|
||||
<property name="shopList" value="Instant,Creature,Red,Rakdos,Gruul,Izzet,Boros,Goblin "/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="47" template="../../obj/inn.tx" x="376" y="370"/>
|
||||
<object id="49" template="../../obj/shop.tx" x="105" y="418">
|
||||
<properties>
|
||||
<property name="shopList" value="Human,Boros,Orzhov,Selesnya,Selesnya,Azorius,White,Creature,Instant,Angel"/>
|
||||
<property name="shopList" value="Instant,Creature,Red,Rakdos,Gruul,Izzet,Boros,Goblin "/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="50" template="../../obj/shop.tx" x="152" y="418">
|
||||
<properties>
|
||||
<property name="shopList" value="Human,Boros,Orzhov,Selesnya,Selesnya,Azorius,White,Creature,Instant,Angel"/>
|
||||
<property name="shopList" value="Instant,Creature,Red,Rakdos,Gruul,Izzet,Boros,Goblin "/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="51" template="../../obj/shop.tx" x="248" y="417">
|
||||
<properties>
|
||||
<property name="shopList" value="Human,Boros,Orzhov,Selesnya,Selesnya,Azorius,White,Creature,Instant,Angel"/>
|
||||
<property name="shopList" value="Instant,Creature,Red,Rakdos,Gruul,Izzet,Boros,Goblin "/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="52" template="../../obj/shop.tx" x="201" y="370">
|
||||
<properties>
|
||||
<property name="shopList" value="Human,Boros,Orzhov,Selesnya,Selesnya,Azorius,White,Creature,Instant,Angel"/>
|
||||
<property name="shopList" value="Instant,Creature,Red,Rakdos,Gruul,Izzet,Boros,Goblin "/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="53" template="../../obj/spellsmith.tx" x="152" y="258"/>
|
||||
<object id="55" template="../../obj/shop.tx" x="368" y="433">
|
||||
<properties>
|
||||
<property name="shopList" value="Plains"/>
|
||||
<property name="shopList" value="Mountain"/>
|
||||
<property name="signYOffset" type="float" value="0"/>
|
||||
</properties>
|
||||
</object>
|
||||
@@ -87,9 +87,73 @@
|
||||
<property name="spawn" type="bool" value="true"/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="59" template="../../obj/entry_left.tx" x="351" y="534" width="16" height="89.9726" rotation="179.747"/>
|
||||
<object id="59" template="../../obj/entry_left.tx" x="337" y="627" width="16" height="89.9726" rotation="0"/>
|
||||
<object id="60" template="../../obj/entry_right.tx" x="266" y="623" width="16" height="88"/>
|
||||
<object id="61" template="../../obj/arena.tx" x="200" y="258"/>
|
||||
<object id="61" template="../../obj/arena.tx" x="200" y="258">
|
||||
<properties>
|
||||
<property name="arena">{
|
||||
|
||||
"enemyPool":[
|
||||
"Amonkhet Minotaur",
|
||||
"Ashmouth Devil",
|
||||
"Axgard Dwarf",
|
||||
"Berserker",
|
||||
"Boggart",
|
||||
"Cyclops",
|
||||
"Devil",
|
||||
"Dinosaur",
|
||||
"Dragon",
|
||||
"Dwarf",
|
||||
"Efreet",
|
||||
"Fire Elemental",
|
||||
"Flame Elemental",
|
||||
"Goblin",
|
||||
"Goblin Chief",
|
||||
"Goblin Warrior",
|
||||
"Hellhound",
|
||||
"Immersturm Demon",
|
||||
"Khan",
|
||||
"Minotaur",
|
||||
"Minotaur Flayer",
|
||||
"Red Beast",
|
||||
"Red Wiz1",
|
||||
"Red Wiz2",
|
||||
"Red Wiz3",
|
||||
"Shaman",
|
||||
"Troll",
|
||||
"Vampire Lord",
|
||||
"Viashino",
|
||||
"Yeti"
|
||||
],
|
||||
"rounds":3,
|
||||
"entryFee":100,
|
||||
"rewards": [[
|
||||
{
|
||||
"type": "card",
|
||||
"probability": 1,
|
||||
"count":2,
|
||||
"rarity": [
|
||||
"Mythic Rare"
|
||||
],
|
||||
"colors": ["red"]
|
||||
}
|
||||
],[
|
||||
{
|
||||
"type": "gold",
|
||||
"probability": 1,
|
||||
"count": 500
|
||||
}
|
||||
],[{
|
||||
"type": "item",
|
||||
"probability": 1,
|
||||
"count": 1,
|
||||
"itemNames": ["Aladdin's Ring","Axt","Ring of Immortals","Jandor's Ring"]
|
||||
}
|
||||
]
|
||||
]
|
||||
}</property>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="62" template="../../obj/shop.tx" x="361" y="258">
|
||||
<properties>
|
||||
<property name="shopList" value="RedEquipment"/>
|
||||
|
||||
@@ -87,9 +87,9 @@
|
||||
<property name="spawn" type="bool" value="true"/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="59" template="../../obj/entry_left.tx" x="416" y="552" width="16" height="71.964" rotation="179.747"/>
|
||||
<object id="59" template="../../obj/entry_left.tx" x="392" y="625" width="16" height="71.964" rotation="0"/>
|
||||
<object id="60" template="../../obj/entry_right.tx" x="304" y="624" width="16" height="69"/>
|
||||
<object id="61" template="../../obj/arena.tx" x="422.667" y="113.364">
|
||||
<object id="61" template="../../obj/arena.tx" x="423" y="114">
|
||||
<properties>
|
||||
<property name="arena">{
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<map version="1.5" tiledversion="1.7.2" orientation="orthogonal" renderorder="right-down" width="30" height="30" tilewidth="16" tileheight="16" infinite="0" nextlayerid="7" nextobjectid="68">
|
||||
<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>
|
||||
@@ -32,15 +32,16 @@
|
||||
<object id="38" template="../../obj/entry_up.tx" x="1" y="481" width="478" height="16">
|
||||
<properties>
|
||||
<property name="spawn" type="bool" value="true"/>
|
||||
<property name="teleport" value=""/>
|
||||
</properties>
|
||||
</object>
|
||||
<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" type="dialog" gid="7627" x="238" y="208" width="16" height="16">
|
||||
<object id="67" name="IntroChar" class="dialog" gid="7627" x="238" y="208" width="16" height="16">
|
||||
<properties>
|
||||
<property name="dialog">[{
|
||||
"text":"Hello Planeswalker",
|
||||
"text":"Hello Planeswalker {var=player_name}",
|
||||
"options":[
|
||||
{
|
||||
"name":"Why am I here",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<map version="1.9" tiledversion="1.9.1" orientation="orthogonal" renderorder="right-down" width="40" height="40" tilewidth="16" tileheight="16" infinite="0" nextlayerid="7" nextobjectid="64">
|
||||
<map version="1.9" tiledversion="1.9.1" orientation="orthogonal" renderorder="right-down" width="40" height="40" tilewidth="16" tileheight="16" infinite="0" nextlayerid="7" nextobjectid="72">
|
||||
<editorsettings>
|
||||
<export format="tmx"/>
|
||||
</editorsettings>
|
||||
@@ -34,51 +34,11 @@
|
||||
</data>
|
||||
</layer>
|
||||
<objectgroup id="4" name="Objects">
|
||||
<object id="41" template="../../obj/shop.tx" x="473" y="273">
|
||||
<properties>
|
||||
<property name="shopList" value="Human,Boros,Orzhov,Selesnya,Selesnya,Azorius,White,Creature,Instant,Angel"/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="56" template="../../obj/shop.tx" x="424" y="274">
|
||||
<properties>
|
||||
<property name="shopList" value="Human,Boros,Orzhov,Selesnya,Selesnya,Azorius,White,Creature,Instant,Angel"/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="57" template="../../obj/shop.tx" x="520" y="273">
|
||||
<properties>
|
||||
<property name="shopList" value="Human,Boros,Orzhov,Selesnya,Selesnya,Azorius,White,Creature,Instant,Angel"/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="43" template="../../obj/shop.tx" x="377" y="322">
|
||||
<properties>
|
||||
<property name="shopList" value="Human,Boros,Orzhov,Selesnya,Selesnya,Azorius,White,Creature,Instant,Angel"/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="47" template="../../obj/inn.tx" x="361" y="371"/>
|
||||
<object id="49" template="../../obj/shop.tx" x="424" y="322">
|
||||
<properties>
|
||||
<property name="shopList" value="Human,Boros,Orzhov,Selesnya,Selesnya,Azorius,White,Creature,Instant,Angel"/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="50" template="../../obj/shop.tx" x="472" y="322">
|
||||
<properties>
|
||||
<property name="shopList" value="Human,Boros,Orzhov,Selesnya,Selesnya,Azorius,White,Creature,Instant,Angel"/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="51" template="../../obj/shop.tx" x="521" y="322">
|
||||
<properties>
|
||||
<property name="shopList" value="Human,Boros,Orzhov,Selesnya,Selesnya,Azorius,White,Creature,Instant,Angel"/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="52" template="../../obj/shop.tx" x="376" y="274">
|
||||
<properties>
|
||||
<property name="shopList" value="Human,Boros,Orzhov,Selesnya,Selesnya,Azorius,White,Creature,Instant,Angel"/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="53" template="../../obj/spellsmith.tx" x="392" y="194"/>
|
||||
<object id="55" template="../../obj/shop.tx" x="416" y="402">
|
||||
<properties>
|
||||
<property name="shopList" value="Plains"/>
|
||||
<property name="shopList" value="Swamp"/>
|
||||
<property name="signYOffset" type="float" value="0"/>
|
||||
</properties>
|
||||
</object>
|
||||
@@ -87,9 +47,63 @@
|
||||
<property name="spawn" type="bool" value="true"/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="59" template="../../obj/entry_left.tx" x="368" y="442" width="16" height="197.002" rotation="179.747"/>
|
||||
<object id="59" template="../../obj/entry_left.tx" x="354" y="635" width="16" height="197.002" rotation="0"/>
|
||||
<object id="60" template="../../obj/entry_right.tx" x="242" y="642" width="16" height="198"/>
|
||||
<object id="61" template="../../obj/arena.tx" x="168" y="178"/>
|
||||
<object id="61" template="../../obj/arena.tx" x="168" y="178">
|
||||
<properties>
|
||||
<property name="arena">{
|
||||
|
||||
"enemyPool":[
|
||||
"Beholder",
|
||||
"Big Zombie",
|
||||
"Black Wiz1",
|
||||
"Black Wiz2",
|
||||
"Black Wiz3",
|
||||
"Dark Knight",
|
||||
"Death Knight",
|
||||
"Demon",
|
||||
"Ghoul",
|
||||
"Ghost",
|
||||
"Harpy",
|
||||
"Harpy 2",
|
||||
"High Vampire",
|
||||
"Lich",
|
||||
"Rakdos Devil",
|
||||
"Skeleton",
|
||||
"Skeleton Soldier",
|
||||
"Vampire",
|
||||
"Zombie",
|
||||
"Zombie Lord"
|
||||
],
|
||||
"rounds":3,
|
||||
"entryFee":100,
|
||||
"rewards": [[
|
||||
{
|
||||
"type": "card",
|
||||
"probability": 1,
|
||||
"count":2,
|
||||
"rarity": [
|
||||
"Mythic Rare"
|
||||
],
|
||||
"colors": ["black"]
|
||||
}
|
||||
],[
|
||||
{
|
||||
"type": "gold",
|
||||
"probability": 1,
|
||||
"count": 500
|
||||
}
|
||||
],[{
|
||||
"type": "item",
|
||||
"probability": 1,
|
||||
"count": 1,
|
||||
"itemNames": ["Death Ring","Dark Armor","Dark Shield","Dark Boots"]
|
||||
}
|
||||
]
|
||||
]
|
||||
}</property>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="62" template="../../obj/shop.tx" x="216" y="241">
|
||||
<properties>
|
||||
<property name="shopList" value="BlackItems"/>
|
||||
@@ -102,5 +116,45 @@
|
||||
<property name="signYOffset" type="float" value="0"/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="64" template="../../obj/shop.tx" x="376" y="274">
|
||||
<properties>
|
||||
<property name="shopList" value="Instant,Creature,Black,Dimir,Rakdos,Orzhov,Golgari,Simic,Zombie "/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="65" template="../../obj/shop.tx" x="376" y="322">
|
||||
<properties>
|
||||
<property name="shopList" value="Instant,Creature,Black,Dimir,Rakdos,Orzhov,Golgari,Simic,Zombie "/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="66" template="../../obj/shop.tx" x="424" y="274">
|
||||
<properties>
|
||||
<property name="shopList" value="Instant,Creature,Black,Dimir,Rakdos,Orzhov,Golgari,Simic,Zombie "/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="67" template="../../obj/shop.tx" x="424" y="322">
|
||||
<properties>
|
||||
<property name="shopList" value="Instant,Creature,Black,Dimir,Rakdos,Orzhov,Golgari,Simic,Zombie "/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="68" template="../../obj/shop.tx" x="472" y="274">
|
||||
<properties>
|
||||
<property name="shopList" value="Instant,Creature,Black,Dimir,Rakdos,Orzhov,Golgari,Simic,Zombie "/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="69" template="../../obj/shop.tx" x="472" y="322">
|
||||
<properties>
|
||||
<property name="shopList" value="Instant,Creature,Black,Dimir,Rakdos,Orzhov,Golgari,Simic,Zombie "/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="70" template="../../obj/shop.tx" x="520" y="274">
|
||||
<properties>
|
||||
<property name="shopList" value="Instant,Creature,Black,Dimir,Rakdos,Orzhov,Golgari,Simic,Zombie "/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="71" template="../../obj/shop.tx" x="520" y="322">
|
||||
<properties>
|
||||
<property name="shopList" value="Instant,Creature,Black,Dimir,Rakdos,Orzhov,Golgari,Simic,Zombie "/>
|
||||
</properties>
|
||||
</object>
|
||||
</objectgroup>
|
||||
</map>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<map version="1.8" tiledversion="1.8.6" orientation="orthogonal" renderorder="right-down" width="30" height="30" tilewidth="16" tileheight="16" infinite="0" nextlayerid="6" nextobjectid="58">
|
||||
<map version="1.9" tiledversion="1.9.1" orientation="orthogonal" renderorder="right-down" width="30" height="30" tilewidth="16" tileheight="16" infinite="0" nextlayerid="6" nextobjectid="59">
|
||||
<editorsettings>
|
||||
<export target="wastetown..tmx" format="tmx"/>
|
||||
</editorsettings>
|
||||
@@ -7,12 +7,12 @@
|
||||
<tileset firstgid="6321" source="../tileset/buildings.tsx"/>
|
||||
<layer id="1" name="Background" width="30" height="30">
|
||||
<data encoding="base64" compression="zlib">
|
||||
eJyr4GZgqBjFo3gUDzhuwoIr0Ni0tg+XGwarvcSaRYxdA2HvQPl3MNhLjN3DzV5Cdg9U/NLCflqXD9S0F5s+QmZSw6+kuIceeKTZO4qHN7bmGXg3DCUMAHMg1Qw=
|
||||
eJzt1LEKACAIBND2fti5L291iLxAU+qG29SnBElvTRiGCc1QQWp0rdXnsdMulV10FmJluFn3VnAR+zXXsrPeN8KP/h883VWfNdPj1pN9boQuXbr/uhNtp9Ws
|
||||
</data>
|
||||
</layer>
|
||||
<layer id="2" name="Ground" width="30" height="30">
|
||||
<data encoding="base64" compression="zlib">
|
||||
eJy9l1FOwzAMhjN4QE2zI4zCAxyCh6EKCkfgAIODbByBAxQkBOqNeACBKD3C3omVRHWzNnHbrJasZl2X7/fsJO5SMHYQM3YofQpbccbuuWJOyZ3FNRP8UigdD3x/TIh1KZrcKeK2YzX+JbW8TMwNzbub797LJeNTNOPE9hRWwg77WfuYWP866hDfr9A4RExxpNxnG0dcJVcabzqu9vhV8o4I/ib9VHRzi0jpiuT1RNTOI+VmDFeIMUUabrn6LXiGPsM49ewHhvtIyHUi1HzcoRHrqxzsdVxzs4Wc+9jN9sWB9WUOdqL1AZeSuytOy+81V/O+O+qv0FxKLJRnzHOFp+b3xfXZGtXgmczx+SIM17V+wUyOfwi5o+b3V3NxflctmhNrTYCOzNo7Kv2flOg+dlO7pV7LkbV3wLnkO+cT0VyjRkeK5sTrF+tsY5qzv2+fkaD9wJ7TfI/3N/t7+ywEPpVdaC5lb2sz+/yn9jhQ998juPnAnmPWU2ebDelzQnF9TLtXGsvdzof1OHmAeIfah5ieexHgncq8J/V5P6HmF+pi29JHg/0Dv4Nh9Q==
|
||||
eJzVl91NwzAQxw08IDvuCMXwAGMURRAYgQEKgxRGYIBSqQJlJ5AQISP0HZ9sqxc3sa+JG4mTTnGdxL//9fxxmUnGjjPGTrSPYXPB2KMwzDG5R9mWCX4tjY4ncTgmxDqTTe4YcfuxOv/SWlYjc1PzHia7fUvN+JTNOLG9ppWww36zPiTW3455iPtr1E4RU8aNx+w5EFcljMa7jqvfXmveKcHftV/Ibm7JjS6ur+dy64Ibd224Qow50nAvzLvgBfoN7TyyHzjuCyHXSprxREAj1lcH2IusyVVnYXYsDqyvCLCV1QdcSu5uBC2/t8KM+xGYf6XlUmKhPOOeKyNz/lDcmC3QHLycMnY1TcMNrV8wl+NvQu6o+f2xXJzfeYtm5a0J0FF4e0dt/5MK9WN3c7eya5l7ewecS7FzXsnmGnU6cjQmXr9YZxvTnf371hkK7Qf+mO4+3t/8+/5ZCHwqu7Rcyt7WZv75T61xhnKXPWuOoVywPnVOKm6M6ddKQ7mbSb8aJ0W8few/c9130j7fJ1QuzItNSx0N9gflvWk0
|
||||
</data>
|
||||
</layer>
|
||||
<layer id="3" name="Walls" width="30" height="30">
|
||||
@@ -20,7 +20,7 @@
|
||||
<property name="spriteLayer" type="bool" value="true"/>
|
||||
</properties>
|
||||
<data encoding="base64" compression="zlib">
|
||||
eJxjYBgFo4B2YAcLA4M0jfEuFkx7Q1lp7zdsdgxFe5NlGRhSZDHZtLaXWDBqL6YYcjxpSzEw6EhhNwtX3GKL58HsX3zgPTsqTQhoMGK34yuJ9pILSPHvYaBby4FxWwHEepyY8iMhfimxdzLHwNhLjBgxAJZWybX3Cyt5dSgp9fY3JHvRw3sKGp+Qm8kJJ3Q7iQHUsJccQIq9hMKOVvZSE5BrL6V+H2r+HSz2AgAoOizU
|
||||
eJxjYBgFo4B2YAcLA4M0jfEuFkx7Q1lJd+sUDtLUY7ODHHtJBdS2N1mWgSFFFpMNA7BwIcdeUsMUGxiK4TyZAn8TYy+2eMIGcMUtNv1DMZxB4D07Kk0IaDBit+MrCfZSkq5J8e9hoFvLpRgYKoBYjxNTfiTELyX2oudDmL3ExB+5eZhY/xJjPiytkmvvF1by6lBS6u1vSPai+4lQOKO7mZx0QU48UcNecgAp9lKj7iTHXmoCcu2l1O9Dzb+DxV4ApmIxJg==
|
||||
</data>
|
||||
</layer>
|
||||
<layer id="5" name="Overlay" width="30" height="30">
|
||||
@@ -76,6 +76,10 @@
|
||||
<property name="shopList" value="Equipment"/>
|
||||
</properties>
|
||||
</object>
|
||||
<object id="49" template="../obj/spellsmith.tx" x="96" y="208"/>
|
||||
<object id="58" template="../obj/shop.tx" x="97" y="209">
|
||||
<properties>
|
||||
<property name="shopList" value="Instant,Creature,Land,Colorless,Artifact,Multicolor,Azorius,Dimir,Rakdos,Gruul,Selesnya,Orzhov,Izzet,Golgari,Boros,Simic,Golem,Sliver"/>
|
||||
</properties>
|
||||
</object>
|
||||
</objectgroup>
|
||||
</map>
|
||||
|
||||
@@ -78,8 +78,8 @@ timeline0: 0.0
|
||||
- X Scale -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 32.0
|
||||
highMax: 16.0
|
||||
highMin: 64.0
|
||||
highMax: 48.0
|
||||
relative: false
|
||||
scalingCount: 2
|
||||
scaling0: 0.0
|
||||
@@ -90,7 +90,16 @@ timeline1: 1.0
|
||||
- Y Scale -
|
||||
active: false
|
||||
- Velocity -
|
||||
active: false
|
||||
active: true
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 100.0
|
||||
highMax: 100.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Angle -
|
||||
active: false
|
||||
- Rotation -
|
||||
@@ -144,8 +153,8 @@ spriteMode: random
|
||||
explosion
|
||||
- Delay -
|
||||
active: true
|
||||
lowMin: 175.0
|
||||
lowMax: 175.0
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
- Duration -
|
||||
lowMin: 100.0
|
||||
lowMax: 100.0
|
||||
@@ -223,8 +232,8 @@ timeline0: 0.0
|
||||
- X Scale -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 32.0
|
||||
highMax: 16.0
|
||||
highMin: 64.0
|
||||
highMax: 48.0
|
||||
relative: false
|
||||
scalingCount: 2
|
||||
scaling0: 0.0
|
||||
@@ -235,9 +244,27 @@ timeline1: 1.0
|
||||
- Y Scale -
|
||||
active: false
|
||||
- Velocity -
|
||||
active: false
|
||||
active: true
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 100.0
|
||||
highMax: 100.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Angle -
|
||||
active: false
|
||||
active: true
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 60.0
|
||||
highMax: 60.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Rotation -
|
||||
active: true
|
||||
lowMin: 0.0
|
||||
@@ -289,153 +316,8 @@ spriteMode: random
|
||||
explosion
|
||||
- Delay -
|
||||
active: true
|
||||
lowMin: 350.0
|
||||
lowMax: 350.0
|
||||
- Duration -
|
||||
lowMin: 100.0
|
||||
lowMax: 100.0
|
||||
- Count -
|
||||
min: 0
|
||||
max: 200
|
||||
- Emission -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 400.0
|
||||
highMax: 400.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Life -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 500.0
|
||||
highMax: 500.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
independent: false
|
||||
- Life Offset -
|
||||
active: false
|
||||
independent: false
|
||||
- X Offset -
|
||||
active: true
|
||||
lowMin: -5.0
|
||||
lowMax: -7.0
|
||||
highMin: 0.0
|
||||
highMax: 0.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Y Offset -
|
||||
active: true
|
||||
lowMin: 6.0
|
||||
lowMax: 7.0
|
||||
highMin: 0.0
|
||||
highMax: 0.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Spawn Shape -
|
||||
shape: point
|
||||
- Spawn Width -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 0.0
|
||||
highMax: 0.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Spawn Height -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 0.0
|
||||
highMax: 0.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- X Scale -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 32.0
|
||||
highMax: 16.0
|
||||
relative: false
|
||||
scalingCount: 2
|
||||
scaling0: 0.0
|
||||
scaling1: 1.0
|
||||
timelineCount: 2
|
||||
timeline0: 0.0
|
||||
timeline1: 1.0
|
||||
- Y Scale -
|
||||
active: false
|
||||
- Velocity -
|
||||
active: false
|
||||
- Angle -
|
||||
active: false
|
||||
- Rotation -
|
||||
active: true
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 0.0
|
||||
highMax: 360.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Wind -
|
||||
active: false
|
||||
- Gravity -
|
||||
active: false
|
||||
- Tint -
|
||||
colorsCount: 3
|
||||
colors0: 1.0
|
||||
colors1: 0.12156863
|
||||
colors2: 0.047058824
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Transparency -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 1.0
|
||||
highMax: 1.0
|
||||
relative: false
|
||||
scalingCount: 2
|
||||
scaling0: 1.0
|
||||
scaling1: 0.0
|
||||
timelineCount: 2
|
||||
timeline0: 0.0
|
||||
timeline1: 1.0
|
||||
- Options -
|
||||
attached: true
|
||||
continuous: false
|
||||
aligned: false
|
||||
additive: true
|
||||
behind: false
|
||||
premultipliedAlpha: false
|
||||
spriteMode: random
|
||||
- Image Paths -
|
||||
/E:/workspace/Particle Park/particles/images/explosion-1.png
|
||||
/E:/workspace/Particle Park/particles/images/explosion-2.png
|
||||
/E:/workspace/Particle Park/particles/images/explosion-3.png
|
||||
|
||||
|
||||
explosion
|
||||
- Delay -
|
||||
active: true
|
||||
lowMin: 525.0
|
||||
lowMax: 525.0
|
||||
- Duration -
|
||||
lowMin: 100.0
|
||||
lowMax: 100.0
|
||||
@@ -513,8 +395,8 @@ timeline0: 0.0
|
||||
- X Scale -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 32.0
|
||||
highMax: 16.0
|
||||
highMin: 64.0
|
||||
highMax: 48.0
|
||||
relative: false
|
||||
scalingCount: 2
|
||||
scaling0: 0.0
|
||||
@@ -525,9 +407,27 @@ timeline1: 1.0
|
||||
- Y Scale -
|
||||
active: false
|
||||
- Velocity -
|
||||
active: false
|
||||
active: true
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 100.0
|
||||
highMax: 100.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Angle -
|
||||
active: false
|
||||
active: true
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 120.0
|
||||
highMax: 120.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Rotation -
|
||||
active: true
|
||||
lowMin: 0.0
|
||||
@@ -579,8 +479,8 @@ spriteMode: random
|
||||
explosion
|
||||
- Delay -
|
||||
active: true
|
||||
lowMin: 700.0
|
||||
lowMax: 700.0
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
- Duration -
|
||||
lowMin: 100.0
|
||||
lowMax: 100.0
|
||||
@@ -658,8 +558,8 @@ timeline0: 0.0
|
||||
- X Scale -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 32.0
|
||||
highMax: 16.0
|
||||
highMin: 64.0
|
||||
highMax: 48.0
|
||||
relative: false
|
||||
scalingCount: 2
|
||||
scaling0: 0.0
|
||||
@@ -670,9 +570,353 @@ timeline1: 1.0
|
||||
- Y Scale -
|
||||
active: false
|
||||
- Velocity -
|
||||
active: false
|
||||
active: true
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 100.0
|
||||
highMax: 100.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Angle -
|
||||
active: false
|
||||
active: true
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 180.0
|
||||
highMax: 180.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Rotation -
|
||||
active: true
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 0.0
|
||||
highMax: 360.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Wind -
|
||||
active: false
|
||||
- Gravity -
|
||||
active: false
|
||||
- Tint -
|
||||
colorsCount: 3
|
||||
colors0: 1.0
|
||||
colors1: 0.12156863
|
||||
colors2: 0.047058824
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Transparency -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 1.0
|
||||
highMax: 1.0
|
||||
relative: false
|
||||
scalingCount: 2
|
||||
scaling0: 1.0
|
||||
scaling1: 0.0
|
||||
timelineCount: 2
|
||||
timeline0: 0.0
|
||||
timeline1: 1.0
|
||||
- Options -
|
||||
attached: true
|
||||
continuous: false
|
||||
aligned: false
|
||||
additive: true
|
||||
behind: false
|
||||
premultipliedAlpha: false
|
||||
spriteMode: random
|
||||
- Image Paths -
|
||||
/E:/workspace/Particle Park/particles/images/explosion-1.png
|
||||
/E:/workspace/Particle Park/particles/images/explosion-2.png
|
||||
/E:/workspace/Particle Park/particles/images/explosion-3.png
|
||||
|
||||
|
||||
explosion
|
||||
- Delay -
|
||||
active: true
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
- Duration -
|
||||
lowMin: 100.0
|
||||
lowMax: 100.0
|
||||
- Count -
|
||||
min: 0
|
||||
max: 200
|
||||
- Emission -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 400.0
|
||||
highMax: 400.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Life -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 500.0
|
||||
highMax: 500.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
independent: false
|
||||
- Life Offset -
|
||||
active: false
|
||||
independent: false
|
||||
- X Offset -
|
||||
active: true
|
||||
lowMin: -5.0
|
||||
lowMax: -7.0
|
||||
highMin: 0.0
|
||||
highMax: 0.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Y Offset -
|
||||
active: true
|
||||
lowMin: 6.0
|
||||
lowMax: 7.0
|
||||
highMin: 0.0
|
||||
highMax: 0.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Spawn Shape -
|
||||
shape: point
|
||||
- Spawn Width -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 0.0
|
||||
highMax: 0.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Spawn Height -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 0.0
|
||||
highMax: 0.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- X Scale -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 64.0
|
||||
highMax: 48.0
|
||||
relative: false
|
||||
scalingCount: 2
|
||||
scaling0: 0.0
|
||||
scaling1: 1.0
|
||||
timelineCount: 2
|
||||
timeline0: 0.0
|
||||
timeline1: 1.0
|
||||
- Y Scale -
|
||||
active: false
|
||||
- Velocity -
|
||||
active: true
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 100.0
|
||||
highMax: 100.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Angle -
|
||||
active: true
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 240.0
|
||||
highMax: 240.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Rotation -
|
||||
active: true
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 0.0
|
||||
highMax: 360.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Wind -
|
||||
active: false
|
||||
- Gravity -
|
||||
active: false
|
||||
- Tint -
|
||||
colorsCount: 3
|
||||
colors0: 1.0
|
||||
colors1: 0.12156863
|
||||
colors2: 0.047058824
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Transparency -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 1.0
|
||||
highMax: 1.0
|
||||
relative: false
|
||||
scalingCount: 2
|
||||
scaling0: 1.0
|
||||
scaling1: 0.0
|
||||
timelineCount: 2
|
||||
timeline0: 0.0
|
||||
timeline1: 1.0
|
||||
- Options -
|
||||
attached: true
|
||||
continuous: false
|
||||
aligned: false
|
||||
additive: true
|
||||
behind: false
|
||||
premultipliedAlpha: false
|
||||
spriteMode: random
|
||||
- Image Paths -
|
||||
/E:/workspace/Particle Park/particles/images/explosion-1.png
|
||||
/E:/workspace/Particle Park/particles/images/explosion-2.png
|
||||
/E:/workspace/Particle Park/particles/images/explosion-3.png
|
||||
|
||||
|
||||
explosion
|
||||
- Delay -
|
||||
active: true
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
- Duration -
|
||||
lowMin: 100.0
|
||||
lowMax: 100.0
|
||||
- Count -
|
||||
min: 0
|
||||
max: 200
|
||||
- Emission -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 400.0
|
||||
highMax: 400.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Life -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 500.0
|
||||
highMax: 500.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
independent: false
|
||||
- Life Offset -
|
||||
active: false
|
||||
independent: false
|
||||
- X Offset -
|
||||
active: true
|
||||
lowMin: -3.0
|
||||
lowMax: -7.0
|
||||
highMin: 0.0
|
||||
highMax: 0.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Y Offset -
|
||||
active: true
|
||||
lowMin: 5.0
|
||||
lowMax: 4.0
|
||||
highMin: 0.0
|
||||
highMax: 0.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Spawn Shape -
|
||||
shape: point
|
||||
- Spawn Width -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 0.0
|
||||
highMax: 0.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Spawn Height -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 0.0
|
||||
highMax: 0.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- X Scale -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 64.0
|
||||
highMax: 48.0
|
||||
relative: false
|
||||
scalingCount: 2
|
||||
scaling0: 0.0
|
||||
scaling1: 1.0
|
||||
timelineCount: 2
|
||||
timeline0: 0.0
|
||||
timeline1: 1.0
|
||||
- Y Scale -
|
||||
active: false
|
||||
- Velocity -
|
||||
active: true
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 100.0
|
||||
highMax: 100.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Angle -
|
||||
active: true
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 300.0
|
||||
highMax: 300.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Rotation -
|
||||
active: true
|
||||
lowMin: 0.0
|
||||
|
||||
722
forge-gui/res/adventure/Shandalar/particle_effects/killed.p
Normal file
722
forge-gui/res/adventure/Shandalar/particle_effects/killed.p
Normal file
@@ -0,0 +1,722 @@
|
||||
explosion
|
||||
- Delay -
|
||||
active: false
|
||||
- Duration -
|
||||
lowMin: 100.0
|
||||
lowMax: 100.0
|
||||
- Count -
|
||||
min: 0
|
||||
max: 200
|
||||
- Emission -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 400.0
|
||||
highMax: 400.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Life -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 500.0
|
||||
highMax: 500.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
independent: false
|
||||
- Life Offset -
|
||||
active: false
|
||||
independent: false
|
||||
- X Offset -
|
||||
active: true
|
||||
lowMin: -2.0
|
||||
lowMax: 2.0
|
||||
highMin: 0.0
|
||||
highMax: 0.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Y Offset -
|
||||
active: true
|
||||
lowMin: -2.0
|
||||
lowMax: 2.0
|
||||
highMin: 0.0
|
||||
highMax: 0.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Spawn Shape -
|
||||
shape: point
|
||||
- Spawn Width -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 0.0
|
||||
highMax: 0.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Spawn Height -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 0.0
|
||||
highMax: 0.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- X Scale -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 32.0
|
||||
highMax: 16.0
|
||||
relative: false
|
||||
scalingCount: 2
|
||||
scaling0: 0.0
|
||||
scaling1: 1.0
|
||||
timelineCount: 2
|
||||
timeline0: 0.0
|
||||
timeline1: 1.0
|
||||
- Y Scale -
|
||||
active: false
|
||||
- Velocity -
|
||||
active: false
|
||||
- Angle -
|
||||
active: false
|
||||
- Rotation -
|
||||
active: true
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 0.0
|
||||
highMax: 360.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Wind -
|
||||
active: false
|
||||
- Gravity -
|
||||
active: false
|
||||
- Tint -
|
||||
colorsCount: 3
|
||||
colors0: 1.0
|
||||
colors1: 0.12156863
|
||||
colors2: 0.047058824
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Transparency -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 1.0
|
||||
highMax: 1.0
|
||||
relative: false
|
||||
scalingCount: 2
|
||||
scaling0: 1.0
|
||||
scaling1: 0.0
|
||||
timelineCount: 2
|
||||
timeline0: 0.0
|
||||
timeline1: 1.0
|
||||
- Options -
|
||||
attached: true
|
||||
continuous: false
|
||||
aligned: false
|
||||
additive: true
|
||||
behind: false
|
||||
premultipliedAlpha: false
|
||||
spriteMode: random
|
||||
- Image Paths -
|
||||
/E:/workspace/Particle Park/particles/images/explosion-1.png
|
||||
/E:/workspace/Particle Park/particles/images/explosion-2.png
|
||||
/E:/workspace/Particle Park/particles/images/explosion-3.png
|
||||
|
||||
|
||||
explosion
|
||||
- Delay -
|
||||
active: true
|
||||
lowMin: 175.0
|
||||
lowMax: 175.0
|
||||
- Duration -
|
||||
lowMin: 100.0
|
||||
lowMax: 100.0
|
||||
- Count -
|
||||
min: 0
|
||||
max: 200
|
||||
- Emission -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 400.0
|
||||
highMax: 400.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Life -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 500.0
|
||||
highMax: 500.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
independent: false
|
||||
- Life Offset -
|
||||
active: false
|
||||
independent: false
|
||||
- X Offset -
|
||||
active: true
|
||||
lowMin: 6.0
|
||||
lowMax: 8.0
|
||||
highMin: 0.0
|
||||
highMax: 0.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Y Offset -
|
||||
active: true
|
||||
lowMin: -2.0
|
||||
lowMax: 2.0
|
||||
highMin: 0.0
|
||||
highMax: 0.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Spawn Shape -
|
||||
shape: point
|
||||
- Spawn Width -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 0.0
|
||||
highMax: 0.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Spawn Height -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 0.0
|
||||
highMax: 0.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- X Scale -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 32.0
|
||||
highMax: 16.0
|
||||
relative: false
|
||||
scalingCount: 2
|
||||
scaling0: 0.0
|
||||
scaling1: 1.0
|
||||
timelineCount: 2
|
||||
timeline0: 0.0
|
||||
timeline1: 1.0
|
||||
- Y Scale -
|
||||
active: false
|
||||
- Velocity -
|
||||
active: false
|
||||
- Angle -
|
||||
active: false
|
||||
- Rotation -
|
||||
active: true
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 0.0
|
||||
highMax: 360.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Wind -
|
||||
active: false
|
||||
- Gravity -
|
||||
active: false
|
||||
- Tint -
|
||||
colorsCount: 3
|
||||
colors0: 1.0
|
||||
colors1: 0.12156863
|
||||
colors2: 0.047058824
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Transparency -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 1.0
|
||||
highMax: 1.0
|
||||
relative: false
|
||||
scalingCount: 2
|
||||
scaling0: 1.0
|
||||
scaling1: 0.0
|
||||
timelineCount: 2
|
||||
timeline0: 0.0
|
||||
timeline1: 1.0
|
||||
- Options -
|
||||
attached: true
|
||||
continuous: false
|
||||
aligned: false
|
||||
additive: true
|
||||
behind: false
|
||||
premultipliedAlpha: false
|
||||
spriteMode: random
|
||||
- Image Paths -
|
||||
/E:/workspace/Particle Park/particles/images/explosion-1.png
|
||||
/E:/workspace/Particle Park/particles/images/explosion-2.png
|
||||
/E:/workspace/Particle Park/particles/images/explosion-3.png
|
||||
|
||||
|
||||
explosion
|
||||
- Delay -
|
||||
active: true
|
||||
lowMin: 350.0
|
||||
lowMax: 350.0
|
||||
- Duration -
|
||||
lowMin: 100.0
|
||||
lowMax: 100.0
|
||||
- Count -
|
||||
min: 0
|
||||
max: 200
|
||||
- Emission -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 400.0
|
||||
highMax: 400.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Life -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 500.0
|
||||
highMax: 500.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
independent: false
|
||||
- Life Offset -
|
||||
active: false
|
||||
independent: false
|
||||
- X Offset -
|
||||
active: true
|
||||
lowMin: -5.0
|
||||
lowMax: -7.0
|
||||
highMin: 0.0
|
||||
highMax: 0.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Y Offset -
|
||||
active: true
|
||||
lowMin: 6.0
|
||||
lowMax: 7.0
|
||||
highMin: 0.0
|
||||
highMax: 0.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Spawn Shape -
|
||||
shape: point
|
||||
- Spawn Width -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 0.0
|
||||
highMax: 0.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Spawn Height -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 0.0
|
||||
highMax: 0.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- X Scale -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 32.0
|
||||
highMax: 16.0
|
||||
relative: false
|
||||
scalingCount: 2
|
||||
scaling0: 0.0
|
||||
scaling1: 1.0
|
||||
timelineCount: 2
|
||||
timeline0: 0.0
|
||||
timeline1: 1.0
|
||||
- Y Scale -
|
||||
active: false
|
||||
- Velocity -
|
||||
active: false
|
||||
- Angle -
|
||||
active: false
|
||||
- Rotation -
|
||||
active: true
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 0.0
|
||||
highMax: 360.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Wind -
|
||||
active: false
|
||||
- Gravity -
|
||||
active: false
|
||||
- Tint -
|
||||
colorsCount: 3
|
||||
colors0: 1.0
|
||||
colors1: 0.12156863
|
||||
colors2: 0.047058824
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Transparency -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 1.0
|
||||
highMax: 1.0
|
||||
relative: false
|
||||
scalingCount: 2
|
||||
scaling0: 1.0
|
||||
scaling1: 0.0
|
||||
timelineCount: 2
|
||||
timeline0: 0.0
|
||||
timeline1: 1.0
|
||||
- Options -
|
||||
attached: true
|
||||
continuous: false
|
||||
aligned: false
|
||||
additive: true
|
||||
behind: false
|
||||
premultipliedAlpha: false
|
||||
spriteMode: random
|
||||
- Image Paths -
|
||||
/E:/workspace/Particle Park/particles/images/explosion-1.png
|
||||
/E:/workspace/Particle Park/particles/images/explosion-2.png
|
||||
/E:/workspace/Particle Park/particles/images/explosion-3.png
|
||||
|
||||
|
||||
explosion
|
||||
- Delay -
|
||||
active: true
|
||||
lowMin: 525.0
|
||||
lowMax: 525.0
|
||||
- Duration -
|
||||
lowMin: 100.0
|
||||
lowMax: 100.0
|
||||
- Count -
|
||||
min: 0
|
||||
max: 200
|
||||
- Emission -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 400.0
|
||||
highMax: 400.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Life -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 500.0
|
||||
highMax: 500.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
independent: false
|
||||
- Life Offset -
|
||||
active: false
|
||||
independent: false
|
||||
- X Offset -
|
||||
active: true
|
||||
lowMin: 6.0
|
||||
lowMax: 9.0
|
||||
highMin: 0.0
|
||||
highMax: 0.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Y Offset -
|
||||
active: true
|
||||
lowMin: -6.0
|
||||
lowMax: -9.0
|
||||
highMin: 0.0
|
||||
highMax: 0.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Spawn Shape -
|
||||
shape: point
|
||||
- Spawn Width -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 0.0
|
||||
highMax: 0.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Spawn Height -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 0.0
|
||||
highMax: 0.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- X Scale -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 32.0
|
||||
highMax: 16.0
|
||||
relative: false
|
||||
scalingCount: 2
|
||||
scaling0: 0.0
|
||||
scaling1: 1.0
|
||||
timelineCount: 2
|
||||
timeline0: 0.0
|
||||
timeline1: 1.0
|
||||
- Y Scale -
|
||||
active: false
|
||||
- Velocity -
|
||||
active: false
|
||||
- Angle -
|
||||
active: false
|
||||
- Rotation -
|
||||
active: true
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 0.0
|
||||
highMax: 360.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Wind -
|
||||
active: false
|
||||
- Gravity -
|
||||
active: false
|
||||
- Tint -
|
||||
colorsCount: 3
|
||||
colors0: 1.0
|
||||
colors1: 0.12156863
|
||||
colors2: 0.047058824
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Transparency -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 1.0
|
||||
highMax: 1.0
|
||||
relative: false
|
||||
scalingCount: 2
|
||||
scaling0: 1.0
|
||||
scaling1: 0.0
|
||||
timelineCount: 2
|
||||
timeline0: 0.0
|
||||
timeline1: 1.0
|
||||
- Options -
|
||||
attached: true
|
||||
continuous: false
|
||||
aligned: false
|
||||
additive: true
|
||||
behind: false
|
||||
premultipliedAlpha: false
|
||||
spriteMode: random
|
||||
- Image Paths -
|
||||
/E:/workspace/Particle Park/particles/images/explosion-1.png
|
||||
/E:/workspace/Particle Park/particles/images/explosion-2.png
|
||||
/E:/workspace/Particle Park/particles/images/explosion-3.png
|
||||
|
||||
|
||||
explosion
|
||||
- Delay -
|
||||
active: true
|
||||
lowMin: 700.0
|
||||
lowMax: 700.0
|
||||
- Duration -
|
||||
lowMin: 100.0
|
||||
lowMax: 100.0
|
||||
- Count -
|
||||
min: 0
|
||||
max: 200
|
||||
- Emission -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 400.0
|
||||
highMax: 400.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Life -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 500.0
|
||||
highMax: 500.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
independent: false
|
||||
- Life Offset -
|
||||
active: false
|
||||
independent: false
|
||||
- X Offset -
|
||||
active: true
|
||||
lowMin: -2.0
|
||||
lowMax: 2.0
|
||||
highMin: 0.0
|
||||
highMax: 0.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Y Offset -
|
||||
active: true
|
||||
lowMin: 6.0
|
||||
lowMax: 8.0
|
||||
highMin: 0.0
|
||||
highMax: 0.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Spawn Shape -
|
||||
shape: point
|
||||
- Spawn Width -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 0.0
|
||||
highMax: 0.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Spawn Height -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 0.0
|
||||
highMax: 0.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- X Scale -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 32.0
|
||||
highMax: 16.0
|
||||
relative: false
|
||||
scalingCount: 2
|
||||
scaling0: 0.0
|
||||
scaling1: 1.0
|
||||
timelineCount: 2
|
||||
timeline0: 0.0
|
||||
timeline1: 1.0
|
||||
- Y Scale -
|
||||
active: false
|
||||
- Velocity -
|
||||
active: false
|
||||
- Angle -
|
||||
active: false
|
||||
- Rotation -
|
||||
active: true
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 0.0
|
||||
highMax: 360.0
|
||||
relative: false
|
||||
scalingCount: 1
|
||||
scaling0: 1.0
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Wind -
|
||||
active: false
|
||||
- Gravity -
|
||||
active: false
|
||||
- Tint -
|
||||
colorsCount: 3
|
||||
colors0: 1.0
|
||||
colors1: 0.12156863
|
||||
colors2: 0.047058824
|
||||
timelineCount: 1
|
||||
timeline0: 0.0
|
||||
- Transparency -
|
||||
lowMin: 0.0
|
||||
lowMax: 0.0
|
||||
highMin: 1.0
|
||||
highMax: 1.0
|
||||
relative: false
|
||||
scalingCount: 2
|
||||
scaling0: 1.0
|
||||
scaling1: 0.0
|
||||
timelineCount: 2
|
||||
timeline0: 0.0
|
||||
timeline1: 1.0
|
||||
- Options -
|
||||
attached: true
|
||||
continuous: false
|
||||
aligned: false
|
||||
additive: true
|
||||
behind: false
|
||||
premultipliedAlpha: false
|
||||
spriteMode: random
|
||||
- Image Paths -
|
||||
/E:/workspace/Particle Park/particles/images/explosion-1.png
|
||||
/E:/workspace/Particle Park/particles/images/explosion-2.png
|
||||
/E:/workspace/Particle Park/particles/images/explosion-3.png
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
info face="LanaPixel" size=-11 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=0 aa=1 padding=1,1,1,1 spacing=0,0 outline=0
|
||||
info face="LanaPixel" size=11 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=0 aa=1 padding=1,1,1,1 spacing=0,0 outline=0
|
||||
common lineHeight=13 base=10 scaleW=2948 scaleH=2048 pages=1 packed=0 alphaChnl=0 redChnl=4 greenChnl=4 blueChnl=4
|
||||
page id=0 file="LanaPixel.png"
|
||||
chars count=19516
|
||||
|
||||
@@ -1,102 +0,0 @@
|
||||
info face="MiKrollFantasyBig" size=12 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=2 padding=1,1,1,1 spacing=0,0
|
||||
common lineHeight=28 base=21 scaleW=506 scaleH=39 pages=1 packed=0 alphaChnl=0 redChnl=0 greenChnl=0 blueChnl=0
|
||||
page id=0 file="MiKrollFantasyBig.png"
|
||||
chars count=97
|
||||
char id=0 x=2 y=2 width=9 height=22 xoffset=0 yoffset=-1 xadvance=12 page=0 chnl=0
|
||||
char id=32 x=0 y=0 width=0 height=0 xoffset=-1 yoffset=-1 xadvance=10 page=0 chnl=0
|
||||
char id=33 x=289 y=2 width=2 height=12 xoffset=-1 yoffset=9 xadvance=4 page=0 chnl=0
|
||||
char id=34 x=332 y=26 width=6 height=4 xoffset=-1 yoffset=9 xadvance=8 page=0 chnl=0
|
||||
char id=35 x=124 y=26 width=10 height=10 xoffset=-1 yoffset=11 xadvance=12 page=0 chnl=0
|
||||
char id=36 x=129 y=2 width=8 height=12 xoffset=-1 yoffset=11 xadvance=10 page=0 chnl=0
|
||||
char id=37 x=278 y=26 width=8 height=8 xoffset=-1 yoffset=13 xadvance=10 page=0 chnl=0
|
||||
char id=38 x=136 y=26 width=10 height=10 xoffset=-1 yoffset=11 xadvance=12 page=0 chnl=0
|
||||
char id=39 x=344 y=26 width=2 height=4 xoffset=-1 yoffset=9 xadvance=4 page=0 chnl=0
|
||||
char id=40 x=37 y=2 width=4 height=14 xoffset=-1 yoffset=7 xadvance=6 page=0 chnl=0
|
||||
char id=41 x=43 y=2 width=4 height=14 xoffset=-1 yoffset=7 xadvance=6 page=0 chnl=0
|
||||
char id=42 x=288 y=26 width=6 height=6 xoffset=-1 yoffset=9 xadvance=8 page=0 chnl=0
|
||||
char id=43 x=296 y=26 width=6 height=6 xoffset=-1 yoffset=13 xadvance=8 page=0 chnl=0
|
||||
char id=44 x=340 y=26 width=2 height=4 xoffset=-1 yoffset=19 xadvance=4 page=0 chnl=0
|
||||
char id=45 x=366 y=26 width=4 height=2 xoffset=-1 yoffset=15 xadvance=6 page=0 chnl=0
|
||||
char id=46 x=362 y=26 width=2 height=2 xoffset=-1 yoffset=19 xadvance=4 page=0 chnl=0
|
||||
char id=47 x=77 y=2 width=6 height=14 xoffset=-1 yoffset=7 xadvance=8 page=0 chnl=0
|
||||
char id=48 x=303 y=2 width=8 height=12 xoffset=-1 yoffset=9 xadvance=10 page=0 chnl=0
|
||||
char id=49 x=395 y=2 width=6 height=12 xoffset=-1 yoffset=9 xadvance=8 page=0 chnl=0
|
||||
char id=50 x=385 y=2 width=8 height=12 xoffset=-1 yoffset=9 xadvance=10 page=0 chnl=0
|
||||
char id=51 x=375 y=2 width=8 height=12 xoffset=-1 yoffset=9 xadvance=10 page=0 chnl=0
|
||||
char id=52 x=363 y=2 width=10 height=12 xoffset=-1 yoffset=9 xadvance=12 page=0 chnl=0
|
||||
char id=53 x=353 y=2 width=8 height=12 xoffset=-1 yoffset=9 xadvance=10 page=0 chnl=0
|
||||
char id=54 x=343 y=2 width=8 height=12 xoffset=-1 yoffset=9 xadvance=10 page=0 chnl=0
|
||||
char id=55 x=333 y=2 width=8 height=12 xoffset=-1 yoffset=9 xadvance=10 page=0 chnl=0
|
||||
char id=56 x=323 y=2 width=8 height=12 xoffset=-1 yoffset=9 xadvance=10 page=0 chnl=0
|
||||
char id=57 x=313 y=2 width=8 height=12 xoffset=-1 yoffset=9 xadvance=10 page=0 chnl=0
|
||||
char id=58 x=221 y=2 width=2 height=12 xoffset=-1 yoffset=9 xadvance=4 page=0 chnl=0
|
||||
char id=59 x=33 y=2 width=2 height=14 xoffset=-1 yoffset=9 xadvance=4 page=0 chnl=0
|
||||
char id=60 x=112 y=26 width=10 height=10 xoffset=-1 yoffset=11 xadvance=12 page=0 chnl=0
|
||||
char id=61 x=304 y=26 width=6 height=6 xoffset=-1 yoffset=13 xadvance=8 page=0 chnl=0
|
||||
char id=62 x=98 y=26 width=12 height=10 xoffset=-1 yoffset=11 xadvance=14 page=0 chnl=0
|
||||
char id=63 x=267 y=2 width=8 height=12 xoffset=-1 yoffset=9 xadvance=10 page=0 chnl=0
|
||||
char id=64 x=85 y=2 width=14 height=14 xoffset=-1 yoffset=7 xadvance=16 page=0 chnl=0
|
||||
char id=65 x=109 y=2 width=8 height=12 xoffset=-1 yoffset=9 xadvance=10 page=0 chnl=0
|
||||
char id=66 x=119 y=2 width=8 height=12 xoffset=-1 yoffset=9 xadvance=10 page=0 chnl=0
|
||||
char id=67 x=143 y=2 width=8 height=12 xoffset=-1 yoffset=9 xadvance=10 page=0 chnl=0
|
||||
char id=68 x=153 y=2 width=8 height=12 xoffset=-1 yoffset=9 xadvance=10 page=0 chnl=0
|
||||
char id=69 x=163 y=2 width=8 height=12 xoffset=-1 yoffset=9 xadvance=10 page=0 chnl=0
|
||||
char id=70 x=173 y=2 width=8 height=12 xoffset=-1 yoffset=9 xadvance=10 page=0 chnl=0
|
||||
char id=71 x=183 y=2 width=8 height=12 xoffset=-1 yoffset=9 xadvance=10 page=0 chnl=0
|
||||
char id=72 x=193 y=2 width=8 height=12 xoffset=-1 yoffset=9 xadvance=10 page=0 chnl=0
|
||||
char id=73 x=203 y=2 width=6 height=12 xoffset=-1 yoffset=9 xadvance=8 page=0 chnl=0
|
||||
char id=74 x=211 y=2 width=8 height=12 xoffset=-1 yoffset=9 xadvance=10 page=0 chnl=0
|
||||
char id=75 x=225 y=2 width=8 height=12 xoffset=-1 yoffset=9 xadvance=10 page=0 chnl=0
|
||||
char id=76 x=235 y=2 width=8 height=12 xoffset=-1 yoffset=9 xadvance=10 page=0 chnl=0
|
||||
char id=77 x=245 y=2 width=10 height=12 xoffset=-1 yoffset=9 xadvance=12 page=0 chnl=0
|
||||
char id=78 x=257 y=2 width=8 height=12 xoffset=-1 yoffset=9 xadvance=10 page=0 chnl=0
|
||||
char id=79 x=277 y=2 width=10 height=12 xoffset=-1 yoffset=9 xadvance=12 page=0 chnl=0
|
||||
char id=80 x=293 y=2 width=8 height=12 xoffset=-1 yoffset=9 xadvance=10 page=0 chnl=0
|
||||
char id=81 x=21 y=2 width=10 height=14 xoffset=-1 yoffset=9 xadvance=12 page=0 chnl=0
|
||||
char id=82 x=403 y=2 width=8 height=12 xoffset=-1 yoffset=9 xadvance=10 page=0 chnl=0
|
||||
char id=83 x=423 y=2 width=8 height=12 xoffset=-1 yoffset=9 xadvance=10 page=0 chnl=0
|
||||
char id=84 x=433 y=2 width=10 height=12 xoffset=-1 yoffset=9 xadvance=12 page=0 chnl=0
|
||||
char id=85 x=445 y=2 width=8 height=12 xoffset=-1 yoffset=9 xadvance=10 page=0 chnl=0
|
||||
char id=86 x=455 y=2 width=10 height=12 xoffset=-1 yoffset=9 xadvance=12 page=0 chnl=0
|
||||
char id=87 x=473 y=2 width=10 height=12 xoffset=-1 yoffset=9 xadvance=12 page=0 chnl=0
|
||||
char id=88 x=485 y=2 width=10 height=12 xoffset=-1 yoffset=9 xadvance=12 page=0 chnl=0
|
||||
char id=89 x=10 y=26 width=10 height=12 xoffset=-1 yoffset=9 xadvance=12 page=0 chnl=0
|
||||
char id=90 x=22 y=26 width=8 height=12 xoffset=-1 yoffset=9 xadvance=10 page=0 chnl=0
|
||||
char id=91 x=49 y=2 width=4 height=14 xoffset=-1 yoffset=7 xadvance=6 page=0 chnl=0
|
||||
char id=92 x=101 y=2 width=6 height=14 xoffset=-1 yoffset=7 xadvance=8 page=0 chnl=0
|
||||
char id=93 x=55 y=2 width=4 height=14 xoffset=-1 yoffset=7 xadvance=6 page=0 chnl=0
|
||||
char id=94 x=324 y=26 width=6 height=4 xoffset=-1 yoffset=9 xadvance=8 page=0 chnl=0
|
||||
char id=95 x=352 y=26 width=8 height=2 xoffset=-1 yoffset=19 xadvance=10 page=0 chnl=0
|
||||
char id=96 x=348 y=26 width=2 height=4 xoffset=-1 yoffset=9 xadvance=4 page=0 chnl=0
|
||||
char id=97 x=250 y=26 width=8 height=8 xoffset=-1 yoffset=13 xadvance=10 page=0 chnl=0
|
||||
char id=98 x=32 y=26 width=8 height=12 xoffset=-1 yoffset=9 xadvance=10 page=0 chnl=0
|
||||
char id=99 x=270 y=26 width=6 height=8 xoffset=-1 yoffset=13 xadvance=8 page=0 chnl=0
|
||||
char id=100 x=56 y=26 width=8 height=12 xoffset=-1 yoffset=9 xadvance=10 page=0 chnl=0
|
||||
char id=101 x=148 y=26 width=8 height=8 xoffset=-1 yoffset=13 xadvance=10 page=0 chnl=0
|
||||
char id=102 x=90 y=26 width=6 height=12 xoffset=-1 yoffset=9 xadvance=8 page=0 chnl=0
|
||||
char id=103 x=80 y=26 width=8 height=12 xoffset=-1 yoffset=13 xadvance=10 page=0 chnl=0
|
||||
char id=104 x=70 y=26 width=8 height=12 xoffset=-1 yoffset=9 xadvance=10 page=0 chnl=0
|
||||
char id=105 x=66 y=26 width=2 height=12 xoffset=-1 yoffset=9 xadvance=4 page=0 chnl=0
|
||||
char id=106 x=13 y=2 width=6 height=16 xoffset=-1 yoffset=9 xadvance=8 page=0 chnl=0
|
||||
char id=107 x=46 y=26 width=8 height=12 xoffset=-1 yoffset=9 xadvance=10 page=0 chnl=0
|
||||
char id=108 x=42 y=26 width=2 height=12 xoffset=-1 yoffset=9 xadvance=4 page=0 chnl=0
|
||||
char id=109 x=158 y=26 width=10 height=8 xoffset=-1 yoffset=13 xadvance=12 page=0 chnl=0
|
||||
char id=110 x=170 y=26 width=8 height=8 xoffset=-1 yoffset=13 xadvance=10 page=0 chnl=0
|
||||
char id=111 x=180 y=26 width=8 height=8 xoffset=-1 yoffset=13 xadvance=10 page=0 chnl=0
|
||||
char id=112 x=0 y=26 width=8 height=12 xoffset=-1 yoffset=13 xadvance=10 page=0 chnl=0
|
||||
char id=113 x=497 y=2 width=8 height=12 xoffset=-1 yoffset=13 xadvance=10 page=0 chnl=0
|
||||
char id=114 x=190 y=26 width=6 height=8 xoffset=-1 yoffset=13 xadvance=8 page=0 chnl=0
|
||||
char id=115 x=198 y=26 width=8 height=8 xoffset=-1 yoffset=13 xadvance=10 page=0 chnl=0
|
||||
char id=116 x=467 y=2 width=4 height=12 xoffset=-1 yoffset=9 xadvance=6 page=0 chnl=0
|
||||
char id=117 x=208 y=26 width=8 height=8 xoffset=-1 yoffset=13 xadvance=10 page=0 chnl=0
|
||||
char id=118 x=218 y=26 width=8 height=8 xoffset=-1 yoffset=13 xadvance=10 page=0 chnl=0
|
||||
char id=119 x=228 y=26 width=10 height=8 xoffset=-1 yoffset=13 xadvance=12 page=0 chnl=0
|
||||
char id=120 x=240 y=26 width=8 height=8 xoffset=-1 yoffset=13 xadvance=10 page=0 chnl=0
|
||||
char id=121 x=413 y=2 width=8 height=12 xoffset=-1 yoffset=13 xadvance=10 page=0 chnl=0
|
||||
char id=122 x=260 y=26 width=8 height=8 xoffset=-1 yoffset=13 xadvance=10 page=0 chnl=0
|
||||
char id=123 x=61 y=2 width=6 height=14 xoffset=-1 yoffset=7 xadvance=8 page=0 chnl=0
|
||||
char id=124 x=139 y=2 width=2 height=12 xoffset=-1 yoffset=9 xadvance=4 page=0 chnl=0
|
||||
char id=125 x=69 y=2 width=6 height=14 xoffset=-1 yoffset=7 xadvance=8 page=0 chnl=0
|
||||
char id=126 x=312 y=26 width=10 height=6 xoffset=-1 yoffset=13 xadvance=12 page=0 chnl=0
|
||||
char id=160 x=0 y=0 width=0 height=0 xoffset=-1 yoffset=21 xadvance=10 page=0 chnl=0
|
||||
kernings count=0
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 1.4 KiB |
332
forge-gui/res/adventure/Shandalar/skin/font_img.atlas
Normal file
332
forge-gui/res/adventure/Shandalar/skin/font_img.atlas
Normal file
@@ -0,0 +1,332 @@
|
||||
|
||||
ui_skin.png
|
||||
size: 512, 512
|
||||
format: RGBA8888
|
||||
filter: Nearest, Nearest
|
||||
repeat: none
|
||||
BKey_3_14
|
||||
rotate: false
|
||||
xy: 253, 371
|
||||
size: 32, 16
|
||||
split: 6, 6, 9, 6
|
||||
pad: 0, 0, 0, 0
|
||||
orig: 32, 16
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
BKey_3_9
|
||||
rotate: false
|
||||
xy: 203, 321
|
||||
size: 32, 16
|
||||
split: 5, 5, 6, 7
|
||||
pad: 0, 0, 0, 0
|
||||
orig: 32, 16
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
MiKrollFantasy
|
||||
rotate: false
|
||||
xy: 1, 491
|
||||
size: 506, 18
|
||||
orig: 506, 18
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
MiKrollFantasy(1)
|
||||
rotate: false
|
||||
xy: 1, 450
|
||||
size: 506, 39
|
||||
orig: 506, 39
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
MiKrollFantasy(2)
|
||||
rotate: false
|
||||
xy: 1, 430
|
||||
size: 506, 18
|
||||
orig: 506, 18
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
MiKrollFantasy(3)
|
||||
rotate: false
|
||||
xy: 1, 389
|
||||
size: 506, 39
|
||||
orig: 506, 39
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
9patch4
|
||||
rotate: false
|
||||
xy: 75, 137
|
||||
size: 48, 48
|
||||
split: 7, 7, 7, 7
|
||||
pad: 0, 0, 0, 0
|
||||
orig: 48, 48
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
down
|
||||
rotate: false
|
||||
xy: 97, 119
|
||||
size: 16, 16
|
||||
orig: 16, 16
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
down_down
|
||||
rotate: false
|
||||
xy: 125, 147
|
||||
size: 16, 16
|
||||
orig: 16, 16
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
left
|
||||
rotate: false
|
||||
xy: 147, 169
|
||||
size: 16, 16
|
||||
orig: 16, 16
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
left_down
|
||||
rotate: false
|
||||
xy: 203, 281
|
||||
size: 16, 16
|
||||
orig: 16, 16
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
right
|
||||
rotate: false
|
||||
xy: 275, 353
|
||||
size: 16, 16
|
||||
orig: 16, 16
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
right_down
|
||||
rotate: false
|
||||
xy: 305, 371
|
||||
size: 16, 16
|
||||
orig: 16, 16
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
up
|
||||
rotate: false
|
||||
xy: 1, 19
|
||||
size: 16, 16
|
||||
orig: 16, 16
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
up_down
|
||||
rotate: false
|
||||
xy: 51, 72
|
||||
size: 16, 16
|
||||
orig: 16, 16
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
cursor
|
||||
rotate: false
|
||||
xy: 25, 58
|
||||
size: 4, 3
|
||||
split: 1, 1, 1, 1
|
||||
pad: 0, 0, 0, 0
|
||||
orig: 4, 3
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
item_frame
|
||||
rotate: false
|
||||
xy: 75, 115
|
||||
size: 20, 20
|
||||
orig: 20, 20
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
item_frame_hover
|
||||
rotate: false
|
||||
xy: 125, 165
|
||||
size: 20, 20
|
||||
orig: 20, 20
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
item_frame_selected
|
||||
rotate: false
|
||||
xy: 203, 299
|
||||
size: 20, 20
|
||||
orig: 20, 20
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
item_frame_selected_hover
|
||||
rotate: false
|
||||
xy: 253, 349
|
||||
size: 20, 20
|
||||
orig: 20, 20
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
select
|
||||
rotate: false
|
||||
xy: 509, 507
|
||||
size: 2, 2
|
||||
orig: 2, 2
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
bar
|
||||
rotate: false
|
||||
xy: 1, 55
|
||||
size: 22, 6
|
||||
split: 2, 2, 2, 2
|
||||
pad: 0, 0, 0, 0
|
||||
orig: 22, 6
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
barcontent
|
||||
rotate: false
|
||||
xy: 51, 108
|
||||
size: 20, 3
|
||||
split: 0, 0, 0, 0
|
||||
orig: 20, 3
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
check
|
||||
rotate: false
|
||||
xy: 115, 127
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
map
|
||||
rotate: false
|
||||
xy: 1, 63
|
||||
size: 48, 48
|
||||
split: 17, 16, 13, 11
|
||||
pad: 0, 0, 0, 0
|
||||
orig: 48, 48
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
pressed
|
||||
rotate: false
|
||||
xy: 253, 331
|
||||
size: 14, 16
|
||||
split: 4, 4, 6, 5
|
||||
pad: 0, 0, 0, 0
|
||||
orig: 14, 16
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
pressedMap
|
||||
rotate: false
|
||||
xy: 1, 37
|
||||
size: 16, 16
|
||||
split: 6, 6, 4, 3
|
||||
pad: 0, 0, 0, 0
|
||||
orig: 16, 16
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
pressedround
|
||||
rotate: false
|
||||
xy: 293, 354
|
||||
size: 12, 15
|
||||
split: 4, 4, 7, 5
|
||||
pad: 0, 0, 0, 0
|
||||
orig: 12, 15
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
scroll
|
||||
rotate: false
|
||||
xy: 1, 2
|
||||
size: 6, 15
|
||||
split: 2, 2, 3, 4
|
||||
pad: 0, 0, 0, 0
|
||||
orig: 6, 15
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
scroll2
|
||||
rotate: false
|
||||
xy: 225, 312
|
||||
size: 14, 7
|
||||
split: 3, 3, 2, 3
|
||||
pad: 0, 0, 0, 0
|
||||
orig: 14, 7
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
thinwindow
|
||||
rotate: false
|
||||
xy: 51, 90
|
||||
size: 16, 16
|
||||
split: 2, 2, 2, 2
|
||||
pad: 0, 0, 0, 0
|
||||
orig: 16, 16
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
uncheck
|
||||
rotate: false
|
||||
xy: 125, 137
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
unpressed
|
||||
rotate: false
|
||||
xy: 237, 321
|
||||
size: 14, 16
|
||||
split: 4, 4, 4, 7
|
||||
pad: 0, 0, 0, 0
|
||||
orig: 14, 16
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
unpressed-disable
|
||||
rotate: false
|
||||
xy: 203, 263
|
||||
size: 14, 16
|
||||
split: 3, 3, 3, 6
|
||||
pad: 0, 0, 0, 0
|
||||
orig: 14, 16
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
unpressed-hover
|
||||
rotate: false
|
||||
xy: 165, 169
|
||||
size: 14, 16
|
||||
split: 3, 3, 3, 6
|
||||
pad: 0, 0, 0, 0
|
||||
orig: 14, 16
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
unpressedMap
|
||||
rotate: false
|
||||
xy: 287, 371
|
||||
size: 16, 16
|
||||
split: 6, 6, 3, 4
|
||||
pad: 0, 0, 0, 0
|
||||
orig: 16, 16
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
unpressedround
|
||||
rotate: false
|
||||
xy: 323, 372
|
||||
size: 12, 15
|
||||
split: 4, 4, 5, 7
|
||||
pad: 0, 0, 0, 0
|
||||
orig: 12, 15
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
windowMain
|
||||
rotate: false
|
||||
xy: 203, 339
|
||||
size: 48, 48
|
||||
split: 6, 6, 6, 6
|
||||
pad: 0, 0, 0, 0
|
||||
orig: 48, 48
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
touchBackground
|
||||
rotate: false
|
||||
xy: 1, 187
|
||||
size: 200, 200
|
||||
orig: 200, 200
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
touchKnob
|
||||
rotate: false
|
||||
xy: 1, 113
|
||||
size: 72, 72
|
||||
orig: 72, 72
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
dummy
|
||||
rotate: false
|
||||
xy: 0, 360
|
||||
size: 5,5
|
||||
orig: 1,1
|
||||
split: 1, 1, 1, 1
|
||||
pad: 0, 0, 0, 0
|
||||
offset: 0,0
|
||||
index:-1
|
||||
BIN
forge-gui/res/adventure/Shandalar/skin/font_img.png
Normal file
BIN
forge-gui/res/adventure/Shandalar/skin/font_img.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 26 KiB |
@@ -4,9 +4,16 @@ size: 512, 512
|
||||
format: RGBA8888
|
||||
filter: Nearest, Nearest
|
||||
repeat: none
|
||||
white-pixel
|
||||
rotate: false
|
||||
xy: 221, 326
|
||||
size: 1, 1
|
||||
orig: 1, 1
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
BKey_3_14
|
||||
rotate: false
|
||||
xy: 253, 371
|
||||
xy: 125, 214
|
||||
size: 32, 16
|
||||
split: 6, 6, 9, 6
|
||||
pad: 0, 0, 0, 0
|
||||
@@ -15,44 +22,37 @@ BKey_3_14
|
||||
index: -1
|
||||
BKey_3_9
|
||||
rotate: false
|
||||
xy: 203, 321
|
||||
xy: 75, 164
|
||||
size: 32, 16
|
||||
split: 5, 5, 6, 7
|
||||
pad: 0, 0, 0, 0
|
||||
orig: 32, 16
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
MiKrollFantasy
|
||||
9patch17
|
||||
rotate: false
|
||||
xy: 1, 491
|
||||
size: 506, 18
|
||||
orig: 506, 18
|
||||
xy: 253, 384
|
||||
size: 48, 48
|
||||
orig: 48, 48
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
MiKrollFantasy(1)
|
||||
9patch17_down
|
||||
rotate: false
|
||||
xy: 1, 450
|
||||
size: 506, 39
|
||||
orig: 506, 39
|
||||
xy: 203, 334
|
||||
size: 48, 48
|
||||
orig: 48, 48
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
MiKrollFantasy(2)
|
||||
9patch17_h
|
||||
rotate: false
|
||||
xy: 1, 430
|
||||
size: 506, 18
|
||||
orig: 506, 18
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
MiKrollFantasy(3)
|
||||
rotate: false
|
||||
xy: 1, 389
|
||||
size: 506, 39
|
||||
orig: 506, 39
|
||||
xy: 1, 58
|
||||
size: 48, 48
|
||||
orig: 48, 48
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
9patch4
|
||||
rotate: false
|
||||
xy: 75, 137
|
||||
xy: 75, 182
|
||||
size: 48, 48
|
||||
split: 7, 7, 7, 7
|
||||
pad: 0, 0, 0, 0
|
||||
@@ -61,63 +61,63 @@ MiKrollFantasy(3)
|
||||
index: -1
|
||||
down
|
||||
rotate: false
|
||||
xy: 97, 119
|
||||
xy: 253, 344
|
||||
size: 16, 16
|
||||
orig: 16, 16
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
down_down
|
||||
rotate: false
|
||||
xy: 125, 147
|
||||
xy: 275, 366
|
||||
size: 16, 16
|
||||
orig: 16, 16
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
left
|
||||
rotate: false
|
||||
xy: 147, 169
|
||||
xy: 303, 394
|
||||
size: 16, 16
|
||||
orig: 16, 16
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
left_down
|
||||
rotate: false
|
||||
xy: 203, 281
|
||||
xy: 325, 416
|
||||
size: 16, 16
|
||||
orig: 16, 16
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
right
|
||||
rotate: false
|
||||
xy: 275, 353
|
||||
xy: 1, 18
|
||||
size: 16, 16
|
||||
orig: 16, 16
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
right_down
|
||||
rotate: false
|
||||
xy: 305, 371
|
||||
xy: 23, 40
|
||||
size: 16, 16
|
||||
orig: 16, 16
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
up
|
||||
rotate: false
|
||||
xy: 1, 19
|
||||
xy: 147, 196
|
||||
size: 16, 16
|
||||
orig: 16, 16
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
up_down
|
||||
rotate: false
|
||||
xy: 51, 72
|
||||
xy: 177, 214
|
||||
size: 16, 16
|
||||
orig: 16, 16
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
cursor
|
||||
rotate: false
|
||||
xy: 25, 58
|
||||
xy: 225, 329
|
||||
size: 4, 3
|
||||
split: 1, 1, 1, 1
|
||||
pad: 0, 0, 0, 0
|
||||
@@ -126,42 +126,42 @@ cursor
|
||||
index: -1
|
||||
item_frame
|
||||
rotate: false
|
||||
xy: 75, 115
|
||||
xy: 253, 362
|
||||
size: 20, 20
|
||||
orig: 20, 20
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
item_frame_hover
|
||||
rotate: false
|
||||
xy: 125, 165
|
||||
xy: 303, 412
|
||||
size: 20, 20
|
||||
orig: 20, 20
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
item_frame_selected
|
||||
rotate: false
|
||||
xy: 203, 299
|
||||
xy: 1, 36
|
||||
size: 20, 20
|
||||
orig: 20, 20
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
item_frame_selected_hover
|
||||
rotate: false
|
||||
xy: 253, 349
|
||||
xy: 125, 192
|
||||
size: 20, 20
|
||||
orig: 20, 20
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
select
|
||||
rotate: false
|
||||
xy: 509, 507
|
||||
xy: 69, 146
|
||||
size: 2, 2
|
||||
orig: 2, 2
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
bar
|
||||
rotate: false
|
||||
xy: 1, 55
|
||||
xy: 51, 150
|
||||
size: 22, 6
|
||||
split: 2, 2, 2, 2
|
||||
pad: 0, 0, 0, 0
|
||||
@@ -170,7 +170,7 @@ bar
|
||||
index: -1
|
||||
barcontent
|
||||
rotate: false
|
||||
xy: 51, 108
|
||||
xy: 203, 329
|
||||
size: 20, 3
|
||||
split: 0, 0, 0, 0
|
||||
orig: 20, 3
|
||||
@@ -178,14 +178,14 @@ barcontent
|
||||
index: -1
|
||||
check
|
||||
rotate: false
|
||||
xy: 115, 127
|
||||
xy: 253, 334
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
map
|
||||
rotate: false
|
||||
xy: 1, 63
|
||||
xy: 1, 108
|
||||
size: 48, 48
|
||||
split: 17, 16, 13, 11
|
||||
pad: 0, 0, 0, 0
|
||||
@@ -194,7 +194,7 @@ map
|
||||
index: -1
|
||||
pressed
|
||||
rotate: false
|
||||
xy: 253, 331
|
||||
xy: 125, 174
|
||||
size: 14, 16
|
||||
split: 4, 4, 6, 5
|
||||
pad: 0, 0, 0, 0
|
||||
@@ -203,7 +203,7 @@ pressed
|
||||
index: -1
|
||||
pressedMap
|
||||
rotate: false
|
||||
xy: 1, 37
|
||||
xy: 51, 132
|
||||
size: 16, 16
|
||||
split: 6, 6, 4, 3
|
||||
pad: 0, 0, 0, 0
|
||||
@@ -212,7 +212,7 @@ pressedMap
|
||||
index: -1
|
||||
pressedround
|
||||
rotate: false
|
||||
xy: 293, 354
|
||||
xy: 343, 417
|
||||
size: 12, 15
|
||||
split: 4, 4, 7, 5
|
||||
pad: 0, 0, 0, 0
|
||||
@@ -221,7 +221,7 @@ pressedround
|
||||
index: -1
|
||||
scroll
|
||||
rotate: false
|
||||
xy: 1, 2
|
||||
xy: 303, 377
|
||||
size: 6, 15
|
||||
split: 2, 2, 3, 4
|
||||
pad: 0, 0, 0, 0
|
||||
@@ -230,7 +230,7 @@ scroll
|
||||
index: -1
|
||||
scroll2
|
||||
rotate: false
|
||||
xy: 225, 312
|
||||
xy: 75, 155
|
||||
size: 14, 7
|
||||
split: 3, 3, 2, 3
|
||||
pad: 0, 0, 0, 0
|
||||
@@ -239,7 +239,7 @@ scroll2
|
||||
index: -1
|
||||
thinwindow
|
||||
rotate: false
|
||||
xy: 51, 90
|
||||
xy: 203, 311
|
||||
size: 16, 16
|
||||
split: 2, 2, 2, 2
|
||||
pad: 0, 0, 0, 0
|
||||
@@ -248,14 +248,14 @@ thinwindow
|
||||
index: -1
|
||||
uncheck
|
||||
rotate: false
|
||||
xy: 125, 137
|
||||
xy: 293, 374
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
unpressed
|
||||
rotate: false
|
||||
xy: 237, 321
|
||||
xy: 109, 164
|
||||
size: 14, 16
|
||||
split: 4, 4, 4, 7
|
||||
pad: 0, 0, 0, 0
|
||||
@@ -264,7 +264,7 @@ unpressed
|
||||
index: -1
|
||||
unpressed-disable
|
||||
rotate: false
|
||||
xy: 203, 263
|
||||
xy: 203, 293
|
||||
size: 14, 16
|
||||
split: 3, 3, 3, 6
|
||||
pad: 0, 0, 0, 0
|
||||
@@ -273,7 +273,7 @@ unpressed-disable
|
||||
index: -1
|
||||
unpressed-hover
|
||||
rotate: false
|
||||
xy: 165, 169
|
||||
xy: 51, 114
|
||||
size: 14, 16
|
||||
split: 3, 3, 3, 6
|
||||
pad: 0, 0, 0, 0
|
||||
@@ -282,7 +282,7 @@ unpressed-hover
|
||||
index: -1
|
||||
unpressedMap
|
||||
rotate: false
|
||||
xy: 287, 371
|
||||
xy: 159, 214
|
||||
size: 16, 16
|
||||
split: 6, 6, 3, 4
|
||||
pad: 0, 0, 0, 0
|
||||
@@ -291,7 +291,7 @@ unpressedMap
|
||||
index: -1
|
||||
unpressedround
|
||||
rotate: false
|
||||
xy: 323, 372
|
||||
xy: 1, 1
|
||||
size: 12, 15
|
||||
split: 4, 4, 5, 7
|
||||
pad: 0, 0, 0, 0
|
||||
@@ -300,7 +300,7 @@ unpressedround
|
||||
index: -1
|
||||
windowMain
|
||||
rotate: false
|
||||
xy: 203, 339
|
||||
xy: 203, 384
|
||||
size: 48, 48
|
||||
split: 6, 6, 6, 6
|
||||
pad: 0, 0, 0, 0
|
||||
@@ -309,24 +309,15 @@ windowMain
|
||||
index: -1
|
||||
touchBackground
|
||||
rotate: false
|
||||
xy: 1, 187
|
||||
xy: 1, 232
|
||||
size: 200, 200
|
||||
orig: 200, 200
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
touchKnob
|
||||
rotate: false
|
||||
xy: 1, 113
|
||||
xy: 1, 158
|
||||
size: 72, 72
|
||||
orig: 72, 72
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
dummy
|
||||
rotate: false
|
||||
xy: 0, 360
|
||||
size: 5,5
|
||||
orig: 1,1
|
||||
split: 1, 1, 1, 1
|
||||
pad: 0, 0, 0, 0
|
||||
offset: 0,0
|
||||
index:-1
|
||||
|
||||
@@ -1,36 +1,27 @@
|
||||
{
|
||||
"com.badlogic.gdx.graphics.g2d.BitmapFont": {
|
||||
"big": {
|
||||
"file": "LanaPixel.fnt"
|
||||
},
|
||||
"black": {
|
||||
"file": "LanaPixel.fnt"
|
||||
},
|
||||
"blackbig": {
|
||||
"file": "LanaPixel.fnt"
|
||||
},
|
||||
"BitmapFont": {
|
||||
"default": {
|
||||
"file": "LanaPixel.fnt"
|
||||
}
|
||||
},
|
||||
"com.badlogic.gdx.graphics.Color": {
|
||||
"Color": {
|
||||
"RGBA_0_0_0_0": {
|
||||
"hex": "00000000"
|
||||
},
|
||||
"RGBA_0_0_0_255": {
|
||||
"r": 0,
|
||||
"g": 0,
|
||||
"b": 0,
|
||||
"a": 1
|
||||
"hex": "000000ff"
|
||||
},
|
||||
"RGBA_0_216_255_255": {
|
||||
"r": 0,
|
||||
"g": 0.848778,
|
||||
"b": 1,
|
||||
"a": 1
|
||||
"hex": "00d8ffff"
|
||||
},
|
||||
"RGBA_204_200_200_255": {
|
||||
"hex": "ccc8c8ff"
|
||||
},
|
||||
"RGBA_255_255_255_255": {
|
||||
"r": 1,
|
||||
"g": 1,
|
||||
"b": 1,
|
||||
"a": 1
|
||||
"hex": "ffffffff"
|
||||
},
|
||||
"RGBA_38_23_3_50": {
|
||||
"hex": "b06a0e5a"
|
||||
}
|
||||
},
|
||||
"com.badlogic.gdx.scenes.scene2d.utils.TextureRegionDrawable": {
|
||||
@@ -40,6 +31,20 @@
|
||||
"minHeight": 40
|
||||
}
|
||||
},
|
||||
"TintedDrawable": {
|
||||
"clear": {
|
||||
"name": "white-pixel",
|
||||
"color": "RGBA_255_255_255_255"
|
||||
},
|
||||
"transparent": {
|
||||
"name": "white-pixel",
|
||||
"color": "RGBA_0_0_0_0"
|
||||
},
|
||||
"background": {
|
||||
"name": "white-pixel",
|
||||
"color": "RGBA_38_23_3_50"
|
||||
}
|
||||
},
|
||||
"com.ray3k.tenpatch.TenPatchDrawable": {
|
||||
"paper10Patch": {
|
||||
"region": "map",
|
||||
@@ -58,7 +63,8 @@
|
||||
"offsetYspeed": 0,
|
||||
"frameDuration": 0.03,
|
||||
"regions": [],
|
||||
"playMode": 2
|
||||
"playMode": 2,
|
||||
"crushMode": 0
|
||||
},
|
||||
"TenPatchGold": {
|
||||
"region": "9patch4",
|
||||
@@ -77,7 +83,8 @@
|
||||
"offsetYspeed": 0,
|
||||
"frameDuration": 0.03,
|
||||
"regions": [],
|
||||
"playMode": 2
|
||||
"playMode": 2,
|
||||
"crushMode": 0
|
||||
},
|
||||
"windowMain10Patch": {
|
||||
"region": "windowMain",
|
||||
@@ -96,7 +103,8 @@
|
||||
"offsetYspeed": 0,
|
||||
"frameDuration": 0.03,
|
||||
"regions": [],
|
||||
"playMode": 2
|
||||
"playMode": 2,
|
||||
"crushMode": 0
|
||||
},
|
||||
"unpressed-hover10patch": {
|
||||
"region": "unpressed-hover",
|
||||
@@ -105,17 +113,18 @@
|
||||
"tiling": true,
|
||||
"minWidth": 14,
|
||||
"minHeight": 16,
|
||||
"rightWidth": 4,
|
||||
"leftWidth": 4,
|
||||
"bottomHeight": 7,
|
||||
"topHeight": 4,
|
||||
"rightWidth": 5,
|
||||
"leftWidth": 5,
|
||||
"bottomHeight": 8,
|
||||
"topHeight": 5,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"offsetXspeed": 0,
|
||||
"offsetYspeed": 0,
|
||||
"frameDuration": 0.03,
|
||||
"regions": [],
|
||||
"playMode": 2
|
||||
"playMode": 2,
|
||||
"crushMode": 0
|
||||
},
|
||||
"unpressed-disable10Patch": {
|
||||
"region": "unpressed-disable",
|
||||
@@ -134,7 +143,8 @@
|
||||
"offsetYspeed": 0,
|
||||
"frameDuration": 0.03,
|
||||
"regions": [],
|
||||
"playMode": 2
|
||||
"playMode": 2,
|
||||
"crushMode": 0
|
||||
},
|
||||
"thinwindow10Patch": {
|
||||
"region": "thinwindow",
|
||||
@@ -153,7 +163,8 @@
|
||||
"offsetYspeed": 0,
|
||||
"frameDuration": 0.03,
|
||||
"regions": [],
|
||||
"playMode": 2
|
||||
"playMode": 2,
|
||||
"crushMode": 0
|
||||
},
|
||||
"pressed10Patch": {
|
||||
"region": "pressed",
|
||||
@@ -162,17 +173,18 @@
|
||||
"tiling": true,
|
||||
"minWidth": 14,
|
||||
"minHeight": 16,
|
||||
"rightWidth": 4,
|
||||
"leftWidth": 4,
|
||||
"bottomHeight": 5,
|
||||
"topHeight": 6,
|
||||
"rightWidth": 5,
|
||||
"leftWidth": 5,
|
||||
"bottomHeight": 6,
|
||||
"topHeight": 7,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"offsetXspeed": 0,
|
||||
"offsetYspeed": 0,
|
||||
"frameDuration": 0.03,
|
||||
"regions": [],
|
||||
"playMode": 2
|
||||
"playMode": 2,
|
||||
"crushMode": 0
|
||||
},
|
||||
"pressedMap10Patch": {
|
||||
"region": "pressedMap",
|
||||
@@ -191,7 +203,8 @@
|
||||
"offsetYspeed": 0,
|
||||
"frameDuration": 0.03,
|
||||
"regions": [],
|
||||
"playMode": 2
|
||||
"playMode": 2,
|
||||
"crushMode": 0
|
||||
},
|
||||
"goldpressed10Patch": {
|
||||
"region": "BKey_3_14",
|
||||
@@ -210,7 +223,8 @@
|
||||
"offsetYspeed": 0,
|
||||
"frameDuration": 0.03,
|
||||
"regions": [],
|
||||
"playMode": 2
|
||||
"playMode": 2,
|
||||
"crushMode": 0
|
||||
},
|
||||
"unpressedgold10patch": {
|
||||
"region": "BKey_3_9",
|
||||
@@ -229,7 +243,8 @@
|
||||
"offsetYspeed": 0,
|
||||
"frameDuration": 0.03,
|
||||
"regions": [],
|
||||
"playMode": 2
|
||||
"playMode": 2,
|
||||
"crushMode": 0
|
||||
},
|
||||
"unpressed10patch": {
|
||||
"region": "unpressed",
|
||||
@@ -238,39 +253,81 @@
|
||||
"tiling": true,
|
||||
"minWidth": 14,
|
||||
"minHeight": 16,
|
||||
"rightWidth": 4,
|
||||
"leftWidth": 4,
|
||||
"bottomHeight": 7,
|
||||
"topHeight": 4,
|
||||
"rightWidth": 5,
|
||||
"leftWidth": 5,
|
||||
"bottomHeight": 8,
|
||||
"topHeight": 5,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"offsetXspeed": 0,
|
||||
"offsetYspeed": 0,
|
||||
"frameDuration": 0.03,
|
||||
"regions": [],
|
||||
"playMode": 2
|
||||
"playMode": 2,
|
||||
"crushMode": 0
|
||||
},
|
||||
"dummy": {
|
||||
"region": "dummy",
|
||||
"horizontalStretchAreas": [ 1, 1 ],
|
||||
"verticalStretchAreas": [ 1, 1 ],
|
||||
"tiling": true,
|
||||
"minWidth": 5,
|
||||
"minHeight": 5,
|
||||
"rightWidth": 0,
|
||||
"leftWidth": 0,
|
||||
"bottomHeight": 0,
|
||||
"topHeight": 0,
|
||||
"Button10Patch": {
|
||||
"region": "9patch17",
|
||||
"horizontalStretchAreas": [ 13, 20, 26, 36 ],
|
||||
"verticalStretchAreas": [ 14, 21, 26, 37 ],
|
||||
"tiling": false,
|
||||
"minWidth": 48,
|
||||
"minHeight": 48,
|
||||
"rightWidth": 8,
|
||||
"leftWidth": 8,
|
||||
"bottomHeight": 8,
|
||||
"topHeight": 8,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"offsetXspeed": 0,
|
||||
"offsetYspeed": 0,
|
||||
"frameDuration": 0.03,
|
||||
"regions": [],
|
||||
"playMode": 2
|
||||
"playMode": 2,
|
||||
"crushMode": 0
|
||||
},
|
||||
"button_down_10patch": {
|
||||
"region": "9patch17_down",
|
||||
"horizontalStretchAreas": [ 13, 20, 26, 36 ],
|
||||
"verticalStretchAreas": [ 14, 21, 26, 40 ],
|
||||
"tiling": false,
|
||||
"minWidth": 48,
|
||||
"minHeight": 48,
|
||||
"rightWidth": 8,
|
||||
"leftWidth": 8,
|
||||
"bottomHeight": 8,
|
||||
"topHeight": 8,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"offsetXspeed": 0,
|
||||
"offsetYspeed": 0,
|
||||
"frameDuration": 0.03,
|
||||
"regions": [],
|
||||
"playMode": 2,
|
||||
"crushMode": 0
|
||||
},
|
||||
"button_hover_10Patch": {
|
||||
"region": "9patch17_h",
|
||||
"horizontalStretchAreas": [ 13, 20, 26, 36 ],
|
||||
"verticalStretchAreas": [ 14, 21, 26, 41 ],
|
||||
"tiling": false,
|
||||
"minWidth": 48,
|
||||
"minHeight": 48,
|
||||
"rightWidth": 8,
|
||||
"leftWidth": 8,
|
||||
"bottomHeight": 8,
|
||||
"topHeight": 8,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"offsetXspeed": 0,
|
||||
"offsetYspeed": 0,
|
||||
"frameDuration": 0.03,
|
||||
"regions": [],
|
||||
"playMode": 2,
|
||||
"crushMode": 0
|
||||
}
|
||||
},
|
||||
"com.badlogic.gdx.scenes.scene2d.ui.Button$ButtonStyle": {
|
||||
"ButtonStyle": {
|
||||
"default": {
|
||||
"up": "unpressed10patch",
|
||||
"down": "pressed10Patch",
|
||||
@@ -289,14 +346,14 @@
|
||||
"over": "BKey_3_9"
|
||||
}
|
||||
},
|
||||
"com.badlogic.gdx.scenes.scene2d.ui.CheckBox$CheckBoxStyle": {
|
||||
"CheckBoxStyle": {
|
||||
"default": {
|
||||
"checkboxOn": "check",
|
||||
"checkboxOff": "uncheck",
|
||||
"font": "default"
|
||||
}
|
||||
},
|
||||
"com.badlogic.gdx.scenes.scene2d.ui.ImageButton$ImageButtonStyle": {
|
||||
"ImageButtonStyle": {
|
||||
"default": {
|
||||
"imageUp": "unpressed10patch",
|
||||
"imageDown": "pressed10Patch"
|
||||
@@ -316,30 +373,21 @@
|
||||
"imageCheckedOver": "item_frame_selected_hover"
|
||||
}
|
||||
},
|
||||
"com.badlogic.gdx.scenes.scene2d.ui.ImageTextButton$ImageTextButtonStyle": {
|
||||
"ImageTextButtonStyle": {
|
||||
"default": {
|
||||
"font": "default"
|
||||
}
|
||||
},
|
||||
"com.badlogic.gdx.scenes.scene2d.ui.Label$LabelStyle": {
|
||||
"LabelStyle": {
|
||||
"default": {
|
||||
"font": "default"
|
||||
},
|
||||
"big": {
|
||||
"background": {
|
||||
"parent": "default",
|
||||
"font": "default"
|
||||
},
|
||||
"white": {
|
||||
"font": "default"
|
||||
},
|
||||
"whiteBig": {
|
||||
"font": "default"
|
||||
}
|
||||
"nobg": {
|
||||
"font": "black"
|
||||
"background": "background"
|
||||
}
|
||||
},
|
||||
"com.badlogic.gdx.scenes.scene2d.ui.List$ListStyle": {
|
||||
"ListStyle": {
|
||||
"default": {
|
||||
"font": "default",
|
||||
"fontColorSelected": "RGBA_0_216_255_255",
|
||||
@@ -348,7 +396,7 @@
|
||||
"background": "thinwindow10Patch"
|
||||
}
|
||||
},
|
||||
"com.badlogic.gdx.scenes.scene2d.ui.ProgressBar$ProgressBarStyle": {
|
||||
"ProgressBarStyle": {
|
||||
"default-horizontal": {
|
||||
"background": "bar",
|
||||
"knob": "scroll"
|
||||
@@ -358,7 +406,7 @@
|
||||
"knob": "scroll2"
|
||||
}
|
||||
},
|
||||
"com.badlogic.gdx.scenes.scene2d.ui.ScrollPane$ScrollPaneStyle": {
|
||||
"ScrollPaneStyle": {
|
||||
"default": {
|
||||
"background": "windowMain10Patch"
|
||||
},
|
||||
@@ -369,21 +417,20 @@
|
||||
"background": "9patch4"
|
||||
},
|
||||
"nobg": {
|
||||
"background": "dummy",
|
||||
"background": "transparent"
|
||||
}
|
||||
},
|
||||
"com.badlogic.gdx.scenes.scene2d.ui.SelectBox$SelectBoxStyle": {
|
||||
"SelectBoxStyle": {
|
||||
"default": {
|
||||
"font": "default",
|
||||
"fontColor": "RGBA_255_255_255_255",
|
||||
"overFontColor": "RGBA_0_216_255_255",
|
||||
"disabledFontColor": "RGBA_255_255_255_255",
|
||||
"scrollStyle": "default",
|
||||
"listStyle": "default",
|
||||
"background": "unpressed10patch"
|
||||
"listStyle": "default"
|
||||
}
|
||||
},
|
||||
"com.badlogic.gdx.scenes.scene2d.ui.Slider$SliderStyle": {
|
||||
"SliderStyle": {
|
||||
"default-horizontal": {
|
||||
"background": "thinwindow10Patch",
|
||||
"knob": "scroll"
|
||||
@@ -393,7 +440,7 @@
|
||||
"knob": "scroll2"
|
||||
}
|
||||
},
|
||||
"com.badlogic.gdx.scenes.scene2d.ui.SplitPane$SplitPaneStyle": {
|
||||
"SplitPaneStyle": {
|
||||
"default-horizontal": {
|
||||
"handle": "scroll2"
|
||||
},
|
||||
@@ -401,7 +448,7 @@
|
||||
"handle": "scroll"
|
||||
}
|
||||
},
|
||||
"com.badlogic.gdx.scenes.scene2d.ui.TextButton$TextButtonStyle": {
|
||||
"TextButtonStyle": {
|
||||
"default": {
|
||||
"parent": "default",
|
||||
"font": "default",
|
||||
@@ -425,9 +472,16 @@
|
||||
"pressedOffsetY": -3,
|
||||
"unpressedOffsetX": 6,
|
||||
"checkedOffsetX": 6
|
||||
},
|
||||
"menu": {
|
||||
"font": "default",
|
||||
"up": "Button10Patch",
|
||||
"down": "button_down_10patch",
|
||||
"over": "button_hover_10Patch",
|
||||
"pressedOffsetY": -2
|
||||
}
|
||||
},
|
||||
"com.badlogic.gdx.scenes.scene2d.ui.TextField$TextFieldStyle": {
|
||||
"TextFieldStyle": {
|
||||
"default": {
|
||||
"font": "default",
|
||||
"fontColor": "RGBA_255_255_255_255",
|
||||
@@ -437,19 +491,24 @@
|
||||
"selection": "select"
|
||||
}
|
||||
},
|
||||
"com.badlogic.gdx.scenes.scene2d.ui.Touchpad$TouchpadStyle": {
|
||||
"TextTooltipStyle": {
|
||||
"default": {
|
||||
"label": "default"
|
||||
}
|
||||
},
|
||||
"TouchpadStyle": {
|
||||
"default": {
|
||||
"background": "touchBackground",
|
||||
"knob": "touchKnob"
|
||||
}
|
||||
},
|
||||
"com.badlogic.gdx.scenes.scene2d.ui.Tree$TreeStyle": {
|
||||
"TreeStyle": {
|
||||
"default": {
|
||||
"plus": "unpressed",
|
||||
"minus": "pressed"
|
||||
}
|
||||
},
|
||||
"com.badlogic.gdx.scenes.scene2d.ui.Window$WindowStyle": {
|
||||
"WindowStyle": {
|
||||
"default": {
|
||||
"background": "windowMain10Patch",
|
||||
"titleFont": "default",
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 17 KiB |
@@ -3,6 +3,24 @@ size: 480,1008
|
||||
format: RGBA8888
|
||||
filter: Nearest,Nearest
|
||||
repeat: none
|
||||
c
|
||||
xy: 368,80
|
||||
size: 16, 16
|
||||
b
|
||||
xy: 384,80
|
||||
size: 16, 16
|
||||
r
|
||||
xy: 368,96
|
||||
size: 16, 16
|
||||
g
|
||||
xy: 384,96
|
||||
size: 16, 16
|
||||
u
|
||||
xy: 368,112
|
||||
size: 16, 16
|
||||
w
|
||||
xy: 384,112
|
||||
size: 16, 16
|
||||
CardBack
|
||||
xy: 0, 0
|
||||
size: 48, 64
|
||||
@@ -13,7 +31,19 @@ Life
|
||||
xy: 48, 16
|
||||
size: 16, 16
|
||||
Mana
|
||||
xy: 192, 912
|
||||
xy: 48, 32
|
||||
size: 16, 16
|
||||
Deck
|
||||
xy: 48, 48
|
||||
size: 16, 16
|
||||
Item
|
||||
xy: 0, 64
|
||||
size: 16, 16
|
||||
Status
|
||||
xy: 16, 64
|
||||
size: 16, 16
|
||||
Menu
|
||||
xy: 32, 64
|
||||
size: 16, 16
|
||||
SolRing
|
||||
xy: 320, 144
|
||||
@@ -171,7 +201,7 @@ Blood
|
||||
Cheese
|
||||
xy: 80, 768
|
||||
size: 16, 16
|
||||
Gold
|
||||
GoldStack
|
||||
xy: 208, 816
|
||||
size: 16, 16
|
||||
Treasure
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 273 KiB After Width: | Height: | Size: 275 KiB |
@@ -20,7 +20,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "done",
|
||||
"text": "Back",
|
||||
"text": "tr(lblBack)",
|
||||
"width": 48,
|
||||
"height": 20,
|
||||
"x": 5,
|
||||
@@ -28,8 +28,8 @@
|
||||
} ,
|
||||
{
|
||||
"type": "Label",
|
||||
"style":"background",
|
||||
"name": "gold",
|
||||
"text": "$",
|
||||
"width": 48,
|
||||
"height": 20,
|
||||
"x": 380,
|
||||
@@ -38,7 +38,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "start",
|
||||
"text": "Start",
|
||||
"text": "tr(lblBattle)",
|
||||
"width": 48,
|
||||
"height": 20,
|
||||
"x": 430,
|
||||
|
||||
@@ -28,8 +28,8 @@
|
||||
} ,
|
||||
{
|
||||
"type": "Label",
|
||||
"style":"background",
|
||||
"name": "gold",
|
||||
"text": "$",
|
||||
"width": 48,
|
||||
"height": 20,
|
||||
"x": 65,
|
||||
@@ -38,7 +38,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "start",
|
||||
"text": "Start",
|
||||
"text": "tr(lblBattle)",
|
||||
"width": 48,
|
||||
"height": 20,
|
||||
"x": 125,
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "return",
|
||||
"text": "Back",
|
||||
"text": "tr(lblBack)",
|
||||
"width": 100,
|
||||
"height": 30,
|
||||
"x": 365,
|
||||
@@ -29,7 +29,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "rename",
|
||||
"text": "Rename Deck",
|
||||
"text": "tr(lblRename)",
|
||||
"width": 100,
|
||||
"height": 30,
|
||||
"x": 365,
|
||||
@@ -38,7 +38,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "edit",
|
||||
"text": "Edit Deck",
|
||||
"text": "tr(lblEdit)",
|
||||
"width": 100,
|
||||
"height": 30,
|
||||
"x": 365,
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "return",
|
||||
"text": "Back",
|
||||
"text": "tr(lblBack)",
|
||||
"width": 86,
|
||||
"height": 30,
|
||||
"x": 4,
|
||||
@@ -29,7 +29,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "rename",
|
||||
"text": "Rename Deck",
|
||||
"text": "tr(lblRename)",
|
||||
"width": 86,
|
||||
"height": 30,
|
||||
"x": 92,
|
||||
@@ -38,7 +38,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "edit",
|
||||
"text": "Edit Deck",
|
||||
"text": "tr(lblEdit)",
|
||||
"width": 86,
|
||||
"height": 30,
|
||||
"x": 180,
|
||||
|
||||
@@ -85,7 +85,8 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "deck",
|
||||
"text": "Deck",
|
||||
"style":"menu",
|
||||
"text": "{Scale=200%}[+Deck]",
|
||||
"width": 40,
|
||||
"height": 36,
|
||||
"x": 428,
|
||||
@@ -94,7 +95,8 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "inventory",
|
||||
"text": "Inventory",
|
||||
"style":"menu",
|
||||
"text": "{Scale=200%}[+Item]",
|
||||
"width": 40,
|
||||
"height": 36,
|
||||
"x": 428,
|
||||
@@ -104,7 +106,8 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "statistic",
|
||||
"text": "Status",
|
||||
"style":"menu",
|
||||
"text": "{Scale=200%}[+Status]",
|
||||
"width": 40,
|
||||
"height": 36,
|
||||
"x": 428,
|
||||
@@ -113,7 +116,8 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "menu",
|
||||
"text": "Menu",
|
||||
"style":"menu",
|
||||
"text": "{Scale=200%}[+Menu]",
|
||||
"width": 40,
|
||||
"height": 36,
|
||||
"x": 428,
|
||||
|
||||
@@ -76,7 +76,8 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "deck",
|
||||
"text": "Deck",
|
||||
"style":"menu",
|
||||
"text": "{Scale=200%}[+Deck]",
|
||||
"width": 64,
|
||||
"height": 36,
|
||||
"x": 416,
|
||||
@@ -85,7 +86,8 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "inventory",
|
||||
"text": "Inventory",
|
||||
"style":"menu",
|
||||
"text": "{Scale=200%}[+Item]",
|
||||
"width": 64,
|
||||
"height": 36,
|
||||
"x": 416,
|
||||
@@ -95,7 +97,8 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "statistic",
|
||||
"text": "Status",
|
||||
"style":"menu",
|
||||
"text": "{Scale=200%}[+Status]",
|
||||
"width": 64,
|
||||
"height": 36,
|
||||
"x": 416,
|
||||
@@ -104,7 +107,8 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "menu",
|
||||
"text": "Menu",
|
||||
"style":"menu",
|
||||
"text": "{Scale=200%}[+Menu]",
|
||||
"width": 64,
|
||||
"height": 36,
|
||||
"x": 416,
|
||||
|
||||
@@ -60,7 +60,6 @@
|
||||
"name": "lifePoints",
|
||||
"width": 48,
|
||||
"height": 16,
|
||||
"fontSize": 1,
|
||||
"x": 234,
|
||||
"y": 64
|
||||
},
|
||||
@@ -70,7 +69,6 @@
|
||||
"font": "default",
|
||||
"width": 48,
|
||||
"height": 3,
|
||||
"fontSize": 1,
|
||||
"x": 234,
|
||||
"y": 85
|
||||
},
|
||||
@@ -80,14 +78,14 @@
|
||||
"font": "default",
|
||||
"width": 48,
|
||||
"height": 3,
|
||||
"fontSize": 1,
|
||||
"x": 234,
|
||||
"y": 104
|
||||
},
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "deck",
|
||||
"text": "Deck",
|
||||
"style":"menu",
|
||||
"text": "{Scale=200%}[+Deck]",
|
||||
"width": 64,
|
||||
"height": 32,
|
||||
"x": 206,
|
||||
@@ -96,7 +94,8 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "inventory",
|
||||
"text": "Inventory",
|
||||
"style":"menu",
|
||||
"text": "{Scale=200%}[+Item]",
|
||||
"width": 64,
|
||||
"height": 32,
|
||||
"x": 206,
|
||||
@@ -106,7 +105,8 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "statistic",
|
||||
"text": "Status",
|
||||
"style":"menu",
|
||||
"text": "{Scale=200%}[+Status]",
|
||||
"width": 64,
|
||||
"height": 32,
|
||||
"x": 206,
|
||||
@@ -115,7 +115,8 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "menu",
|
||||
"text": "Menu",
|
||||
"style":"menu",
|
||||
"text": "{Scale=200%}[+Menu]",
|
||||
"width": 64,
|
||||
"height": 32,
|
||||
"x": 206,
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
{
|
||||
"type": "Label",
|
||||
"name": "tempHitPoints",
|
||||
"text": "tr(lblTempHitPoints)",
|
||||
"font": "default",
|
||||
"width": 100,
|
||||
"height": 30,
|
||||
@@ -48,7 +49,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "sell",
|
||||
"text": "Sell cards",
|
||||
"text": "tr(lblSell)",
|
||||
"width": 100,
|
||||
"height": 30,
|
||||
"x": 190,
|
||||
@@ -66,7 +67,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "done",
|
||||
"text": "Leave",
|
||||
"text": "tr(lblBack)",
|
||||
"width": 100,
|
||||
"height": 30,
|
||||
"x": 320,
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
{
|
||||
"type": "Label",
|
||||
"name": "tempHitPoints",
|
||||
"text": "tr(lblTempHitPoints)",
|
||||
"font": "default",
|
||||
"width": 100,
|
||||
"height": 30,
|
||||
@@ -48,7 +49,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "sell",
|
||||
"text": "Sell cards",
|
||||
"text": "tr(lblSell)",
|
||||
"width": 100,
|
||||
"height": 30,
|
||||
"x": 165,
|
||||
@@ -66,7 +67,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "done",
|
||||
"text": "Leave",
|
||||
"text": "tr(lblBack)",
|
||||
"width": 100,
|
||||
"height": 30,
|
||||
"x": 165,
|
||||
|
||||
@@ -88,7 +88,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "return",
|
||||
"text": "Back",
|
||||
"text": "tr(lblBack)",
|
||||
"width": 60,
|
||||
"height": 30,
|
||||
"x": 400,
|
||||
|
||||
@@ -115,7 +115,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "return",
|
||||
"text": "Back",
|
||||
"text": "tr(lblBack)",
|
||||
"width": 80,
|
||||
"height": 30,
|
||||
"x": 184,
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "done",
|
||||
"text": "Take all",
|
||||
"text": "tr(lblLeave)",
|
||||
"width": 48,
|
||||
"height": 30,
|
||||
"x": 420,
|
||||
@@ -36,7 +36,8 @@
|
||||
{
|
||||
"type": "Label",
|
||||
"name": "gold",
|
||||
"text": "$",
|
||||
"style":"background",
|
||||
"text": "[+Gold]",
|
||||
"width": 48,
|
||||
"height": 30,
|
||||
"x": 420,
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "done",
|
||||
"text": "Take all",
|
||||
"text": "tr(lblLeave)",
|
||||
"width": 128,
|
||||
"height": 32,
|
||||
"x": 140,
|
||||
@@ -36,7 +36,8 @@
|
||||
{
|
||||
"type": "Label",
|
||||
"name": "gold",
|
||||
"text": "$",
|
||||
"style":"background",
|
||||
"text": "[+Gold]",
|
||||
"width": 128,
|
||||
"height": 32,
|
||||
"x": 16,
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "done",
|
||||
"text": "{lblBack}",
|
||||
"text": "tr(lblBack)",
|
||||
"width": 48,
|
||||
"height": 20,
|
||||
"x": 5,
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "done",
|
||||
"text": "{lblBack}",
|
||||
"text": "tr(lblBack)",
|
||||
"width": 48,
|
||||
"height": 20,
|
||||
"x": 5,
|
||||
|
||||
@@ -21,72 +21,64 @@
|
||||
{
|
||||
"type": "Label",
|
||||
"name" : "titleL",
|
||||
"text": "{lblCreateACharacter}",
|
||||
"text": "{SIZE=150%}[BLACK]tr(lblCreateACharacter)",
|
||||
"width": 128,
|
||||
"height": 16,
|
||||
"scale": 2,
|
||||
"fontSize": 1.5,
|
||||
"fontColor": "0x000000FF",
|
||||
"x": 76,
|
||||
"y": 16
|
||||
} ,
|
||||
{
|
||||
"type": "Label",
|
||||
"name" : "nameL",
|
||||
"text": "{lblName}:",
|
||||
"text": "[BLACK]tr(lblName):",
|
||||
"width": 128,
|
||||
"height": 16,
|
||||
"font" : "black",
|
||||
"x": 75,
|
||||
"y": 96
|
||||
},
|
||||
{
|
||||
"type": "Label",
|
||||
"name" : "raceL",
|
||||
"text": "{lblRace}:",
|
||||
"text": "[BLACK]tr(lblRace):",
|
||||
"width": 128,
|
||||
"height": 16,
|
||||
"font" : "black",
|
||||
"x": 75,
|
||||
"yOffset": 8
|
||||
},
|
||||
{
|
||||
"type": "Label",
|
||||
"name" : "genderL",
|
||||
"text": "{lblGender}:",
|
||||
"text": "[BLACK]tr(lblGender):",
|
||||
"width": 128,
|
||||
"height": 16,
|
||||
"font" : "black",
|
||||
"x": 75,
|
||||
"yOffset": 8
|
||||
},
|
||||
{
|
||||
"type": "Label",
|
||||
"name" : "difficultyL",
|
||||
"text": "{lblDifficulty}:",
|
||||
"text": "[BLACK]tr(lblDifficulty):",
|
||||
"width": 128,
|
||||
"height": 16,
|
||||
"font" : "black",
|
||||
"x": 75,
|
||||
"yOffset": 8
|
||||
},
|
||||
{
|
||||
"type": "Label",
|
||||
"name" : "colorIdL",
|
||||
"text": "{lblColors}:",
|
||||
"text": "[BLACK]tr(lblColors):",
|
||||
"width": 128,
|
||||
"height": 16,
|
||||
"font" : "black",
|
||||
"x": 75,
|
||||
"yOffset": 8
|
||||
},
|
||||
{
|
||||
"type": "Label",
|
||||
"name" : "modeL",
|
||||
"text": "{lblMode}",
|
||||
"text": "[BLACK]tr(lblMode)",
|
||||
"width": 128,
|
||||
"height": 16,
|
||||
"font" : "black",
|
||||
"x": 75,
|
||||
"yOffset": 8
|
||||
},
|
||||
@@ -168,7 +160,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "back",
|
||||
"text": "{lblBack}",
|
||||
"text": "tr(lblBack)",
|
||||
"width": 100,
|
||||
"height": 30,
|
||||
"x": 348,
|
||||
@@ -177,7 +169,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "start",
|
||||
"text": "{lblStart}",
|
||||
"text": "tr(lblStart)",
|
||||
"width": 100,
|
||||
"height": 30,
|
||||
"x": 348,
|
||||
|
||||
@@ -21,72 +21,64 @@
|
||||
{
|
||||
"type": "Label",
|
||||
"name" : "titleL",
|
||||
"text": "{lblCreateACharacter}",
|
||||
"text": "{SIZE=150%}[BLACK]tr(lblCreateACharacter)",
|
||||
"width": 128,
|
||||
"height": 32,
|
||||
"scale": 2,
|
||||
"fontSize": 1.5,
|
||||
"fontColor": "0x000000FF",
|
||||
"x": 30,
|
||||
"y": 66
|
||||
} ,
|
||||
{
|
||||
"type": "Label",
|
||||
"name" : "nameL",
|
||||
"text": "{lblName}:",
|
||||
"text": "[BLACK]tr(lblName):",
|
||||
"width": 128,
|
||||
"height": 24,
|
||||
"fontColor": "0x000000FF",
|
||||
"x": 16,
|
||||
"y": 140
|
||||
},
|
||||
{
|
||||
"type": "Label",
|
||||
"name" : "raceL",
|
||||
"text": "{lblRace}:",
|
||||
"text": "[BLACK]tr(lblRace):",
|
||||
"width": 128,
|
||||
"height": 24,
|
||||
"fontColor": "0x000000FF",
|
||||
"x": 16,
|
||||
"yOffset": 8
|
||||
},
|
||||
{
|
||||
"type": "Label",
|
||||
"name" : "genderL",
|
||||
"text": "{lblGender}:",
|
||||
"text": "[BLACK]tr(lblGender):",
|
||||
"width": 128,
|
||||
"height": 24,
|
||||
"fontColor": "0x000000FF",
|
||||
"x": 16,
|
||||
"yOffset": 8
|
||||
},
|
||||
{
|
||||
"type": "Label",
|
||||
"name" : "difficultyL",
|
||||
"text": "{lblDifficulty}:",
|
||||
"text": "[BLACK]tr(lblDifficulty):",
|
||||
"width": 128,
|
||||
"height": 24,
|
||||
"fontColor": "0x000000FF",
|
||||
"x": 16,
|
||||
"yOffset": 8
|
||||
},
|
||||
{
|
||||
"type": "Label",
|
||||
"name" : "colorIdL",
|
||||
"text": "{lblColors}:",
|
||||
"text": "[BLACK]tr(lblColors):",
|
||||
"width": 128,
|
||||
"height": 24,
|
||||
"font" : "black",
|
||||
"x": 16,
|
||||
"yOffset": 8
|
||||
},
|
||||
{
|
||||
"type": "Label",
|
||||
"name" : "modeL",
|
||||
"text": "{lblMode}",
|
||||
"text": "[BLACK]tr(lblMode)",
|
||||
"width": 128,
|
||||
"height": 24,
|
||||
"font" : "black",
|
||||
"x": 16,
|
||||
"yOffset": 8
|
||||
},
|
||||
@@ -167,7 +159,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "back",
|
||||
"text": "{lblBack}",
|
||||
"text": "tr(lblBack)",
|
||||
"width": 64,
|
||||
"height": 28,
|
||||
"x": 32,
|
||||
@@ -176,7 +168,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "start",
|
||||
"text": "{lblStart}",
|
||||
"text": "tr(lblStart)",
|
||||
"width": 64,
|
||||
"height": 28,
|
||||
"x": 165,
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "return",
|
||||
"text": "Back",
|
||||
"text": "tr(lblBack)",
|
||||
"width": 100,
|
||||
"height": 30,
|
||||
"x": 368,
|
||||
@@ -53,15 +53,10 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "save",
|
||||
"text": "saveLoad",
|
||||
"width": 100,
|
||||
"height": 30,
|
||||
"x": 368,
|
||||
"y": 220
|
||||
},
|
||||
{
|
||||
"type": "Table",
|
||||
"font": "default"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -44,7 +44,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "return",
|
||||
"text": "Back",
|
||||
"text": "tr(lblBack)",
|
||||
"width": 120,
|
||||
"height": 32,
|
||||
"x": 10,
|
||||
@@ -53,7 +53,6 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "save",
|
||||
"text": "saveLoad",
|
||||
"width": 120,
|
||||
"height": 32,
|
||||
"x": 140,
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "return",
|
||||
"text": "Back",
|
||||
"text": "tr(lblBack)",
|
||||
"width": 52,
|
||||
"height": 30,
|
||||
"x": 415,
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "return",
|
||||
"text": "Back",
|
||||
"text": "tr(lblBack)",
|
||||
"width": 250,
|
||||
"height": 32,
|
||||
"x": 10,
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "done",
|
||||
"text": "Done",
|
||||
"text": "tr(lblBack)",
|
||||
"x": 400,
|
||||
"y": 240,
|
||||
"width": 70,
|
||||
@@ -71,7 +71,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "BBlack",
|
||||
"text": "Black",
|
||||
"text": "tr(lblBlack)",
|
||||
"x": 15,
|
||||
"y": 120,
|
||||
"width": 45,
|
||||
@@ -80,7 +80,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "BBlue",
|
||||
"text": "Blue",
|
||||
"text": "tr(lblBlue)",
|
||||
"x": 65,
|
||||
"y": 120,
|
||||
"width": 45,
|
||||
@@ -89,7 +89,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "BGreen",
|
||||
"text": "Green",
|
||||
"text": "tr(lblGreen)",
|
||||
"x": 115,
|
||||
"y": 120,
|
||||
"width": 45,
|
||||
@@ -98,7 +98,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "BRed",
|
||||
"text": "Red",
|
||||
"text": "tr(lblRed)",
|
||||
"x": 165,
|
||||
"y": 120,
|
||||
"width": 45,
|
||||
@@ -107,7 +107,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "BWhite",
|
||||
"text": "White",
|
||||
"text": "tr(lblWhite)",
|
||||
"x": 215,
|
||||
"y": 120,
|
||||
"width": 45,
|
||||
@@ -116,7 +116,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "BColorless",
|
||||
"text": "Colorless",
|
||||
"text": "tr(lblColorless)",
|
||||
"x": 265,
|
||||
"y": 120,
|
||||
"width": 45,
|
||||
@@ -125,7 +125,6 @@
|
||||
{
|
||||
"type": "Label",
|
||||
"name": "gold",
|
||||
"text": "$",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"width": 120,
|
||||
@@ -134,7 +133,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "pull",
|
||||
"text": "Pull",
|
||||
"text": "tr(lblDraw)",
|
||||
"x": 360,
|
||||
"y": 180,
|
||||
"width": 90,
|
||||
@@ -143,7 +142,7 @@
|
||||
{
|
||||
"type": "Label",
|
||||
"name": "colorLabel",
|
||||
"text": "Colors",
|
||||
"text": "tr(lblColors)",
|
||||
"x": 10,
|
||||
"y": 90,
|
||||
"width": 100,
|
||||
@@ -152,7 +151,7 @@
|
||||
{
|
||||
"type": "Label",
|
||||
"name": "vnXYKZJw_P5wMnHa1tH7-3",
|
||||
"text": "Plane",
|
||||
"text": "tr(lblPlane)",
|
||||
"x": 10,
|
||||
"y": 30,
|
||||
"width": 100,
|
||||
@@ -170,7 +169,7 @@
|
||||
{
|
||||
"type": "Label",
|
||||
"name": "vnXYKZJw_P5wMnHa1tH7-5",
|
||||
"text": "Mana Cost",
|
||||
"text": "tr(lblManaCost)",
|
||||
"x": 10,
|
||||
"y": 150,
|
||||
"width": 100,
|
||||
@@ -215,7 +214,7 @@
|
||||
{
|
||||
"type": "Label",
|
||||
"name": "vnXYKZJw_P5wMnHa1tH7-10",
|
||||
"text": "Rarity",
|
||||
"text": "tr(lblRarity)",
|
||||
"x": 10,
|
||||
"y": 210,
|
||||
"width": 100,
|
||||
@@ -224,7 +223,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "BCommon",
|
||||
"text": "Common",
|
||||
"text": "tr(lblCommon)",
|
||||
"x": 10,
|
||||
"y": 240,
|
||||
"width": 70,
|
||||
@@ -233,7 +232,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "BUncommon",
|
||||
"text": "Uncommon",
|
||||
"text": "tr(lblUncommon)",
|
||||
"x": 90,
|
||||
"y": 240,
|
||||
"width": 70,
|
||||
@@ -242,7 +241,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "BRare",
|
||||
"text": "Rare",
|
||||
"text": "tr(lblRare)",
|
||||
"x": 170,
|
||||
"y": 240,
|
||||
"width": 70,
|
||||
@@ -260,7 +259,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "BResetEdition",
|
||||
"text": "Reset",
|
||||
"text": "tr(lblReset)",
|
||||
"x": 250,
|
||||
"y": 60,
|
||||
"width": 70,
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "done",
|
||||
"text": "Done",
|
||||
"text": "tr(lblBack)",
|
||||
"x": 175,
|
||||
"y": 150,
|
||||
"width": 70,
|
||||
@@ -71,7 +71,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "BBlack",
|
||||
"text": "Black",
|
||||
"text": "tr(lblBlack)",
|
||||
"x": 58,
|
||||
"y": 290,
|
||||
"width": 45,
|
||||
@@ -80,7 +80,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "BBlue",
|
||||
"text": "Blue",
|
||||
"text": "tr(lblBlue)",
|
||||
"x": 113,
|
||||
"y": 290,
|
||||
"width": 45,
|
||||
@@ -89,7 +89,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "BGreen",
|
||||
"text": "Green",
|
||||
"text": "tr(lblGreen)",
|
||||
"x": 168,
|
||||
"y": 290,
|
||||
"width": 45,
|
||||
@@ -98,7 +98,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "BRed",
|
||||
"text": "Red",
|
||||
"text": "tr(lblRed)",
|
||||
"x": 58,
|
||||
"y": 320,
|
||||
"width": 45,
|
||||
@@ -107,7 +107,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "BWhite",
|
||||
"text": "White",
|
||||
"text": "tr(lblWhite)",
|
||||
"x": 113,
|
||||
"y": 320,
|
||||
"width": 45,
|
||||
@@ -116,7 +116,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "BColorless",
|
||||
"text": "Colorless",
|
||||
"text": "tr(lblColorless)",
|
||||
"x": 168,
|
||||
"y": 320,
|
||||
"width": 45,
|
||||
@@ -125,7 +125,6 @@
|
||||
{
|
||||
"type": "Label",
|
||||
"name": "gold",
|
||||
"text": "$",
|
||||
"x": 150,
|
||||
"y": 0,
|
||||
"width": 120,
|
||||
@@ -134,7 +133,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "pull",
|
||||
"text": "Pull",
|
||||
"text": "tr(lblDraw)",
|
||||
"x": 16,
|
||||
"y": 150,
|
||||
"width": 97,
|
||||
@@ -143,7 +142,7 @@
|
||||
{
|
||||
"type": "Label",
|
||||
"name": "colorLabel",
|
||||
"text": "Colors",
|
||||
"text": "tr(lblColors)",
|
||||
"x": 10,
|
||||
"y": 260,
|
||||
"width": 100,
|
||||
@@ -152,7 +151,7 @@
|
||||
{
|
||||
"type": "Label",
|
||||
"name": "vnXYKZJw_P5wMnHa1tH7-3",
|
||||
"text": "Plane",
|
||||
"text": "tr(lblPlane)",
|
||||
"x": 10,
|
||||
"y": 190,
|
||||
"width": 100,
|
||||
@@ -170,7 +169,7 @@
|
||||
{
|
||||
"type": "Label",
|
||||
"name": "vnXYKZJw_P5wMnHa1tH7-5",
|
||||
"text": "Mana Cost",
|
||||
"text": "tr(lblManaCost)",
|
||||
"x": 10,
|
||||
"y": 360,
|
||||
"width": 100,
|
||||
@@ -215,7 +214,7 @@
|
||||
{
|
||||
"type": "Label",
|
||||
"name": "vnXYKZJw_P5wMnHa1tH7-10",
|
||||
"text": "Rarity",
|
||||
"text": "tr(lblRarity)",
|
||||
"x": 10,
|
||||
"y": 427,
|
||||
"width": 100,
|
||||
@@ -224,7 +223,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "BCommon",
|
||||
"text": "Common",
|
||||
"text": "tr(lblCommon)",
|
||||
"x": 20,
|
||||
"y": 450,
|
||||
"width": 50,
|
||||
@@ -233,7 +232,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "BUncommon",
|
||||
"text": "Uncommon",
|
||||
"text": "tr(lblUncommon)",
|
||||
"x": 80,
|
||||
"y": 450,
|
||||
"width": 50,
|
||||
@@ -242,7 +241,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "BRare",
|
||||
"text": "Rare",
|
||||
"text": "tr(lblRare)",
|
||||
"x": 140,
|
||||
"y": 450,
|
||||
"width": 50,
|
||||
@@ -260,7 +259,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "BResetEdition",
|
||||
"text": "Reset",
|
||||
"text": "tr(lblReset)",
|
||||
"x": 195,
|
||||
"y": 220,
|
||||
"width": 70,
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "Start",
|
||||
"text": "New Game",
|
||||
"text": "tr(lblNewGame)",
|
||||
"width": 80,
|
||||
"height": 30,
|
||||
"x": 160,
|
||||
@@ -21,7 +21,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "Start+",
|
||||
"text": "New Game +",
|
||||
"text": "tr(lblNewGame) +",
|
||||
"width": 80,
|
||||
"height": 30,
|
||||
"x": 240,
|
||||
@@ -30,7 +30,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "Load",
|
||||
"text": "Load",
|
||||
"text": "tr(lblLoad)",
|
||||
"width": 160,
|
||||
"height": 30,
|
||||
"x": 160,
|
||||
@@ -39,7 +39,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "Save",
|
||||
"text": "Save",
|
||||
"text": "tr(lblSave)",
|
||||
"width": 160,
|
||||
"height": 30,
|
||||
"x": 160,
|
||||
@@ -48,7 +48,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "Resume",
|
||||
"text": "Resume",
|
||||
"text": "tr(lblResume)",
|
||||
"width": 160,
|
||||
"height": 30,
|
||||
"x": 160,
|
||||
@@ -57,7 +57,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "Continue",
|
||||
"text": "Continue",
|
||||
"text": "tr(lblContinue)",
|
||||
"width": 160,
|
||||
"height": 30,
|
||||
"x": 160,
|
||||
@@ -66,7 +66,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "Settings",
|
||||
"text": "Settings",
|
||||
"text": "tr(lblSettings)",
|
||||
"width": 160,
|
||||
"height": 30,
|
||||
"x": 160,
|
||||
@@ -75,7 +75,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "Exit",
|
||||
"text": "Exit",
|
||||
"text": "tr(lblExit)",
|
||||
"width": 75,
|
||||
"height": 30,
|
||||
"x": 160,
|
||||
@@ -84,7 +84,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "Switch",
|
||||
"text": "Classic",
|
||||
"text": "tr(lblClassic)",
|
||||
"width": 75,
|
||||
"height": 30,
|
||||
"x": 245,
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "Start",
|
||||
"text": "New Game",
|
||||
"text": "tr(lblNewGame)",
|
||||
"width": 238,
|
||||
"height": 48,
|
||||
"x": 16,
|
||||
@@ -21,7 +21,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "Start+",
|
||||
"text": "New Game +",
|
||||
"text": "tr(lblNewGame) +",
|
||||
"width": 238,
|
||||
"height": 48,
|
||||
"x": 16,
|
||||
@@ -30,7 +30,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "Load",
|
||||
"text": "Load",
|
||||
"text": "tr(lblLoad)",
|
||||
"width": 238,
|
||||
"height": 48,
|
||||
"x": 16,
|
||||
@@ -39,7 +39,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "Save",
|
||||
"text": "Save",
|
||||
"text": "tr(lblSave)",
|
||||
"width": 238,
|
||||
"height": 48,
|
||||
"x": 16,
|
||||
@@ -48,7 +48,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "Resume",
|
||||
"text": "Resume",
|
||||
"text": "tr(lblResume)",
|
||||
"width": 238,
|
||||
"height": 48,
|
||||
"x": 16,
|
||||
@@ -57,7 +57,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "Settings",
|
||||
"text": "Settings",
|
||||
"text": "tr(lblSettings)",
|
||||
"width": 238,
|
||||
"height": 48,
|
||||
"x": 16,
|
||||
@@ -66,7 +66,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "Switch",
|
||||
"text": "Classic",
|
||||
"text": "tr(lblClassic)",
|
||||
"width": 238,
|
||||
"height": 48,
|
||||
"x": 16,
|
||||
@@ -75,7 +75,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "Exit",
|
||||
"text": "Exit",
|
||||
"text": "tr(lblExit)",
|
||||
"width": 238,
|
||||
"height": 48,
|
||||
"x": 16,
|
||||
@@ -84,7 +84,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "Continue",
|
||||
"text": "Continue",
|
||||
"text": "tr(lblContinue)",
|
||||
"width": 238,
|
||||
"height": 48,
|
||||
"x": 16,
|
||||
|
||||
@@ -50,17 +50,17 @@
|
||||
"y": 102,
|
||||
"width": 80,
|
||||
"height": 24,
|
||||
"font": "black"
|
||||
"fontColor":"black"
|
||||
},
|
||||
{
|
||||
"type": "Label",
|
||||
"name": "wins",
|
||||
"text": "Win:",
|
||||
"text": "tr(lblWinProper):",
|
||||
"x": 330,
|
||||
"y": 102,
|
||||
"width": 80,
|
||||
"height": 24,
|
||||
"font": "black"
|
||||
"fontColor":"black"
|
||||
},
|
||||
{
|
||||
"type": "Label",
|
||||
@@ -69,17 +69,17 @@
|
||||
"y": 113,
|
||||
"width": 80,
|
||||
"height": 24,
|
||||
"font": "black"
|
||||
"fontColor":"black"
|
||||
},
|
||||
{
|
||||
"type": "Label",
|
||||
"name": "loss",
|
||||
"text": "Loss:",
|
||||
"text": "tr(lblLossProper):",
|
||||
"x": 330,
|
||||
"y": 113,
|
||||
"width": 80,
|
||||
"height": 24,
|
||||
"font": "black"
|
||||
"fontColor":"black"
|
||||
},
|
||||
{
|
||||
"type": "Label",
|
||||
@@ -88,17 +88,17 @@
|
||||
"y": 125,
|
||||
"width": 80,
|
||||
"height": 24,
|
||||
"font": "black"
|
||||
"fontColor":"black"
|
||||
},
|
||||
{
|
||||
"type": "Label",
|
||||
"name": "winloss",
|
||||
"text": "Win Loss Ratio:",
|
||||
"text": "tr(lblWinProper)/tr(lblLossProper):",
|
||||
"x": 330,
|
||||
"y": 125,
|
||||
"width": 80,
|
||||
"height": 24,
|
||||
"font": "black"
|
||||
"fontColor":"black"
|
||||
},
|
||||
{
|
||||
"type": "Scroll",
|
||||
@@ -112,7 +112,7 @@
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "return",
|
||||
"text": "Back",
|
||||
"text": "tr(lblBack)",
|
||||
"width": 100,
|
||||
"height": 30,
|
||||
"x": 335,
|
||||
@@ -143,12 +143,11 @@
|
||||
"y": 20,
|
||||
"width": 80,
|
||||
"height": 24,
|
||||
"font": "black"
|
||||
"fontColor":"black"
|
||||
},
|
||||
{
|
||||
"type": "Label",
|
||||
"name": "lifePoints",
|
||||
"font": "black",
|
||||
"name": "[BLACK]lifePoints",
|
||||
"width": 64,
|
||||
"height": 16,
|
||||
"x": 410,
|
||||
@@ -157,7 +156,7 @@
|
||||
{
|
||||
"type": "Label",
|
||||
"name": "money",
|
||||
"font": "black",
|
||||
"fontColor":"black",
|
||||
"width": 64,
|
||||
"height": 16,
|
||||
"x": 410,
|
||||
|
||||
@@ -50,17 +50,17 @@
|
||||
"y": 56,
|
||||
"width": 26,
|
||||
"height": 24,
|
||||
"font": "black"
|
||||
"fontColor":"black"
|
||||
},
|
||||
{
|
||||
"type": "Label",
|
||||
"name": "wins",
|
||||
"text": "Win:",
|
||||
"text": "tr(lblWinProper):",
|
||||
"x": 98,
|
||||
"y": 56,
|
||||
"width": 60,
|
||||
"height": 24,
|
||||
"font": "black"
|
||||
"fontColor":"black"
|
||||
},
|
||||
{
|
||||
"type": "Label",
|
||||
@@ -69,17 +69,17 @@
|
||||
"y": 68,
|
||||
"width": 26,
|
||||
"height": 24,
|
||||
"font": "black"
|
||||
"fontColor":"black"
|
||||
},
|
||||
{
|
||||
"type": "Label",
|
||||
"name": "loss",
|
||||
"text": "Loss:",
|
||||
"text": "tr(lblLossProper):",
|
||||
"x": 98,
|
||||
"y": 68,
|
||||
"width": 60,
|
||||
"height": 24,
|
||||
"font": "black"
|
||||
"fontColor":"black"
|
||||
},
|
||||
{
|
||||
"type": "Label",
|
||||
@@ -88,22 +88,22 @@
|
||||
"y": 80,
|
||||
"width": 26,
|
||||
"height": 24,
|
||||
"font": "black"
|
||||
"fontColor":"black"
|
||||
},
|
||||
{
|
||||
"type": "Label",
|
||||
"name": "winloss",
|
||||
"text": "Win Loss Ratio:",
|
||||
"text": "tr(lblWinProper)/tr(lblLossProper):",
|
||||
"x": 98,
|
||||
"y": 80,
|
||||
"width": 60,
|
||||
"height": 24,
|
||||
"font": "black"
|
||||
"fontColor":"black"
|
||||
},
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "return",
|
||||
"text": "Back",
|
||||
"text": "tr(lblBack)",
|
||||
"width": 260,
|
||||
"height": 30,
|
||||
"x": 5,
|
||||
@@ -116,7 +116,7 @@
|
||||
"y": 4,
|
||||
"width": 80,
|
||||
"height": 24,
|
||||
"font": "black"
|
||||
"fontColor":"black"
|
||||
},
|
||||
{
|
||||
"type": "Image",
|
||||
@@ -139,7 +139,7 @@
|
||||
{
|
||||
"type": "Label",
|
||||
"name": "lifePoints",
|
||||
"font": "black",
|
||||
"fontColor":"black",
|
||||
"width": 64,
|
||||
"height": 16,
|
||||
"x": 118,
|
||||
@@ -148,7 +148,7 @@
|
||||
{
|
||||
"type": "Label",
|
||||
"name": "money",
|
||||
"font": "black",
|
||||
"fontColor":"black",
|
||||
"width": 64,
|
||||
"height": 16,
|
||||
"x": 118,
|
||||
|
||||
@@ -477,7 +477,7 @@
|
||||
{
|
||||
"name": "Change",
|
||||
"equipmentSlot": "Right",
|
||||
"iconName": "Gold",
|
||||
"iconName": "GoldStack",
|
||||
"effect": {
|
||||
"startBattleWithCard": [
|
||||
"c_a_gold_draw"
|
||||
|
||||
@@ -19,8 +19,8 @@
|
||||
"rewards": [
|
||||
{ "type": "item","count":1, "itemName": "White rune" },
|
||||
{ "type": "item","count":1, "itemName": "White Staff" },
|
||||
{ "type": "mana","count":25, },
|
||||
{ "type": "life","count":1, }
|
||||
{ "type": "mana","count":2 },
|
||||
{ "type": "life","count":1 }
|
||||
|
||||
]
|
||||
|
||||
@@ -45,8 +45,8 @@
|
||||
"rewards": [
|
||||
{ "type": "item","count":1, "itemName": "Red rune" },
|
||||
{ "type": "item","count":1, "itemName": "Red Staff" },
|
||||
{ "type": "mana","count":25, },
|
||||
{ "type": "life","count":1, }
|
||||
{ "type": "mana","count":2 },
|
||||
{ "type": "life","count":1 }
|
||||
|
||||
]
|
||||
|
||||
@@ -71,8 +71,8 @@
|
||||
"rewards": [
|
||||
{ "type": "item","count":1, "itemName": "Blue rune" },
|
||||
{ "type": "item","count":1, "itemName": "Blue Staff" },
|
||||
{ "type": "mana","count":25, },
|
||||
{ "type": "life","count":1, }
|
||||
{ "type": "mana","count":2 },
|
||||
{ "type": "life","count":1 }
|
||||
|
||||
]
|
||||
|
||||
@@ -98,12 +98,12 @@
|
||||
"rewards": [
|
||||
{ "type": "item","count":1, "itemName": "Black rune" },
|
||||
{ "type": "item","count":1, "itemName": "Black Staff" },
|
||||
{ "type": "mana","count":25, },
|
||||
{ "type": "life","count":1, }
|
||||
{ "type": "mana","count":2 },
|
||||
{ "type": "life","count":1 }
|
||||
|
||||
]
|
||||
|
||||
}
|
||||
},
|
||||
{
|
||||
"name":"GreenEquipment",
|
||||
"spriteAtlas":"maps/tileset/buildings.atlas",
|
||||
@@ -125,13 +125,12 @@
|
||||
"rewards": [
|
||||
{ "type": "item","count":1, "itemName": "Green rune" },
|
||||
{ "type": "item","count":1, "itemName": "Green Staff" },
|
||||
{ "type": "mana","count":25, },
|
||||
{ "type": "life","count":1, }
|
||||
{ "type": "mana","count":2 },
|
||||
{ "type": "life","count":1 }
|
||||
|
||||
]
|
||||
|
||||
}
|
||||
,{
|
||||
},{
|
||||
"name":"Equipment",
|
||||
"spriteAtlas":"maps/tileset/buildings.atlas",
|
||||
"sprite":"EquipmentShop",
|
||||
|
||||
@@ -1,24 +1,24 @@
|
||||
package forge.util;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.RejectedExecutionException;
|
||||
|
||||
import forge.card.CardEdition;
|
||||
import forge.item.IPaperCard;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
|
||||
import forge.ImageKeys;
|
||||
import forge.StaticData;
|
||||
import forge.card.CardEdition;
|
||||
import forge.gui.FThreads;
|
||||
import forge.item.IPaperCard;
|
||||
import forge.item.PaperCard;
|
||||
import forge.localinstance.properties.ForgeConstants;
|
||||
import forge.localinstance.properties.ForgePreferences;
|
||||
import forge.model.FModel;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.RejectedExecutionException;
|
||||
|
||||
public abstract class ImageFetcher {
|
||||
private static final ExecutorService threadPool = ThreadUtil.getServicePool();
|
||||
// see https://scryfall.com/docs/api/languages and
|
||||
// https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
|
||||
private static final HashMap<String, String> langCodeMap = new HashMap<>();
|
||||
@@ -209,7 +209,7 @@ public abstract class ImageFetcher {
|
||||
}
|
||||
};
|
||||
try {
|
||||
threadPool.submit(getDownloadTask(downloadUrls.toArray(new String[0]), destPath, notifyObservers));
|
||||
ThreadUtil.getServicePool().submit(getDownloadTask(downloadUrls.toArray(new String[0]), destPath, notifyObservers));
|
||||
} catch (RejectedExecutionException re) {
|
||||
re.printStackTrace();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user