mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 20:28:00 +00:00
initial AdventureMode port
- todo needed adventure application startup upon pressing the adventure mode button
This commit is contained in:
@@ -1,26 +0,0 @@
|
||||
package forge.adventure.scene;
|
||||
|
||||
/**
|
||||
* Enum of all scenes
|
||||
*/
|
||||
public enum SceneType {
|
||||
StartScene(new forge.adventure.scene.StartScene()),
|
||||
NewGameScene(new forge.adventure.scene.NewGameScene()),
|
||||
SettingsScene(new forge.adventure.scene.SettingsScene()),
|
||||
GameScene(new forge.adventure.scene.GameScene()),
|
||||
DuelScene(new forge.adventure.scene.DuelScene()),
|
||||
SaveLoadScene(new forge.adventure.scene.SaveLoadScene()),
|
||||
DeckEditScene(new forge.adventure.scene.DeckEditScene()),
|
||||
TileMapScene(new forge.adventure.scene.TileMapScene()),
|
||||
RewardScene(new forge.adventure.scene.RewardScene()),
|
||||
InnScene(new forge.adventure.scene.InnScene()),
|
||||
DeckSelectScene(new forge.adventure.scene.DeckSelectScene()),
|
||||
ShopScene(new forge.adventure.scene.ShopScene()),
|
||||
PlayerStatisticScene(new forge.adventure.scene.PlayerStatisticScene());
|
||||
|
||||
|
||||
public final forge.adventure.scene.Scene instance;
|
||||
SceneType(forge.adventure.scene.Scene scene) {
|
||||
this.instance = scene;
|
||||
}
|
||||
}
|
||||
@@ -22,6 +22,7 @@ public class Localizer {
|
||||
|
||||
private Locale locale;
|
||||
private ResourceBundle resourceBundle;
|
||||
private boolean silent = false;
|
||||
|
||||
public static Localizer getInstance() {
|
||||
if (instance == null) {
|
||||
@@ -60,7 +61,11 @@ public class Localizer {
|
||||
|
||||
public String getMessageorUseDefault(final String key, final String defaultValue, final Object... messageArguments) {
|
||||
try {
|
||||
return getMessage(key, messageArguments);
|
||||
silent = true;
|
||||
String value = getMessage(key, messageArguments);
|
||||
if (value.contains("INVALID PROPERTY:"))
|
||||
return defaultValue;
|
||||
return value;
|
||||
} catch (Exception e) {
|
||||
return defaultValue;
|
||||
}
|
||||
@@ -73,14 +78,17 @@ public class Localizer {
|
||||
//formatter = new MessageFormat(resourceBundle.getString(key.toLowerCase()), locale);
|
||||
formatter = new MessageFormat(resourceBundle.getString(key), locale);
|
||||
} catch (final IllegalArgumentException | MissingResourceException e) {
|
||||
e.printStackTrace();
|
||||
if (!silent)
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
if (formatter == null) {
|
||||
if (formatter == null && !silent) {
|
||||
System.err.println("INVALID PROPERTY: '" + key + "' -- Translation Needed?");
|
||||
return "INVALID PROPERTY: '" + key + "' -- Translation Needed?";
|
||||
}
|
||||
|
||||
silent = false;
|
||||
|
||||
formatter.setLocale(locale);
|
||||
|
||||
String formattedMessage = "CHAR ENCODING ERROR";
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.badlogic.gdx.Gdx;
|
||||
import com.badlogic.gdx.Input.Keys;
|
||||
import com.badlogic.gdx.graphics.GL20;
|
||||
import com.badlogic.gdx.utils.Clipboard;
|
||||
import forge.adventure.AdventureApplicationAdapter;
|
||||
import forge.animation.ForgeAnimation;
|
||||
import forge.assets.AssetsDownloader;
|
||||
import forge.assets.FSkin;
|
||||
@@ -71,6 +72,7 @@ public class Forge implements ApplicationListener {
|
||||
public static boolean isPortraitMode = false;
|
||||
public static boolean gameInProgress = false;
|
||||
public static boolean disposeTextures = false;
|
||||
public static boolean isAdventureMode = false;
|
||||
public static int cacheSize = 400;
|
||||
public static int totalDeviceRAM = 0;
|
||||
public static int androidVersion = 0;
|
||||
@@ -252,7 +254,19 @@ public class Forge implements ApplicationListener {
|
||||
/*for (FScreen fScreen : Dscreens)
|
||||
System.out.println(fScreen.toString());*/
|
||||
}
|
||||
public static void openHomeDefault() {
|
||||
openHomeScreen(-1, null); //default for startup
|
||||
splashScreen = null;
|
||||
if (isLandscapeMode()) { //open preferred new game screen by default if landscape mode
|
||||
NewGameMenu.getPreferredScreen().open();
|
||||
}
|
||||
}
|
||||
public static void openAdventure() {
|
||||
splashScreen = null;
|
||||
isAdventureMode = true;
|
||||
//how to insert adventure startup / adapter here??
|
||||
|
||||
}
|
||||
protected void afterDbLoaded() {
|
||||
stopContinuousRendering(); //save power consumption by disabling continuous rendering once assets loaded
|
||||
|
||||
@@ -261,14 +275,11 @@ public class Forge implements ApplicationListener {
|
||||
SoundSystem.instance.setBackgroundMusic(MusicPlaylist.MENUS); //start background music
|
||||
destroyThis = false; //Allow back()
|
||||
Gdx.input.setCatchKey(Keys.MENU, true);
|
||||
openHomeScreen(-1, null); //default for startup
|
||||
splashScreen = null;
|
||||
|
||||
afterDBloaded = true;
|
||||
splashScreen.setShowModeSelector(true);
|
||||
|
||||
boolean isLandscapeMode = isLandscapeMode();
|
||||
if (isLandscapeMode) { //open preferred new game screen by default if landscape mode
|
||||
NewGameMenu.getPreferredScreen().open();
|
||||
}
|
||||
|
||||
//adjust height modifier
|
||||
adjustHeightModifier(getScreenWidth(), getScreenHeight());
|
||||
@@ -534,7 +545,7 @@ public class Forge implements ApplicationListener {
|
||||
graphics.begin(screenWidth, screenHeight);
|
||||
screen.screenPos.setSize(screenWidth, screenHeight);
|
||||
if (screen.getRotate180()) {
|
||||
graphics.startRotateTransform(screenWidth / 2, screenHeight / 2, 180);
|
||||
graphics.startRotateTransform(screenWidth / 2f, screenHeight / 2f, 180);
|
||||
}
|
||||
screen.draw(graphics);
|
||||
if (screen.getRotate180()) {
|
||||
@@ -545,7 +556,7 @@ public class Forge implements ApplicationListener {
|
||||
overlay.screenPos.setSize(screenWidth, screenHeight);
|
||||
overlay.setSize(screenWidth, screenHeight); //update overlay sizes as they're rendered
|
||||
if (overlay.getRotate180()) {
|
||||
graphics.startRotateTransform(screenWidth / 2, screenHeight / 2, 180);
|
||||
graphics.startRotateTransform(screenWidth / 2f, screenHeight / 2f, 180);
|
||||
}
|
||||
overlay.draw(graphics);
|
||||
if (overlay.getRotate180()) {
|
||||
@@ -770,6 +781,9 @@ public class Forge implements ApplicationListener {
|
||||
if (currentScreen != null) {
|
||||
currentScreen.buildTouchListeners(x, y, potentialListeners);
|
||||
}
|
||||
if (splashScreen != null) {
|
||||
splashScreen.buildTouchListeners(x, y, potentialListeners);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
package forge.adventure.character;
|
||||
|
||||
import com.badlogic.gdx.graphics.g2d.*;
|
||||
import com.badlogic.gdx.graphics.g2d.Animation;
|
||||
import com.badlogic.gdx.graphics.g2d.Batch;
|
||||
import com.badlogic.gdx.graphics.g2d.Sprite;
|
||||
import com.badlogic.gdx.graphics.g2d.TextureAtlas;
|
||||
import com.badlogic.gdx.graphics.g2d.TextureRegion;
|
||||
import com.badlogic.gdx.math.Vector2;
|
||||
import com.badlogic.gdx.scenes.scene2d.Actor;
|
||||
import com.badlogic.gdx.utils.Array;
|
||||
@@ -1,10 +1,10 @@
|
||||
package forge.adventure.character;
|
||||
|
||||
import com.badlogic.gdx.math.Vector2;
|
||||
import forge.adventure.player.AdventurePlayer;
|
||||
import forge.adventure.stage.GameStage;
|
||||
import forge.adventure.util.Config;
|
||||
import forge.adventure.util.Current;
|
||||
import forge.adventure.player.AdventurePlayer;
|
||||
|
||||
/**
|
||||
* Class that will represent the player sprite on the map
|
||||
@@ -55,7 +55,7 @@ public class RewardsEditor extends JComponent{
|
||||
public RewardsEditor()
|
||||
{
|
||||
|
||||
list.setCellRenderer(new RewardsEditor.RewardDataRenderer());
|
||||
list.setCellRenderer(new RewardDataRenderer());
|
||||
list.addListSelectionListener(e -> updateEdit());
|
||||
addButton("add",e->addReward());
|
||||
addButton("remove",e->remove());
|
||||
@@ -5,7 +5,12 @@ import com.badlogic.gdx.graphics.g2d.TextureRegion;
|
||||
import com.google.common.collect.Lists;
|
||||
import forge.adventure.data.DifficultyData;
|
||||
import forge.adventure.data.HeroListData;
|
||||
import forge.adventure.util.*;
|
||||
import forge.adventure.util.CardUtil;
|
||||
import forge.adventure.util.Config;
|
||||
import forge.adventure.util.Reward;
|
||||
import forge.adventure.util.SaveFileContent;
|
||||
import forge.adventure.util.SaveFileData;
|
||||
import forge.adventure.util.SignalList;
|
||||
import forge.adventure.world.WorldSave;
|
||||
import forge.deck.CardPool;
|
||||
import forge.deck.Deck;
|
||||
@@ -10,11 +10,19 @@ import forge.adventure.player.AdventurePlayer;
|
||||
import forge.assets.FImage;
|
||||
import forge.assets.FSkinFont;
|
||||
import forge.assets.FSkinImage;
|
||||
import forge.deck.*;
|
||||
import forge.deck.CardPool;
|
||||
import forge.deck.Deck;
|
||||
import forge.deck.DeckFormat;
|
||||
import forge.deck.DeckSection;
|
||||
import forge.deck.FDeckViewer;
|
||||
import forge.gui.FThreads;
|
||||
import forge.item.InventoryItem;
|
||||
import forge.item.PaperCard;
|
||||
import forge.itemmanager.*;
|
||||
import forge.itemmanager.CardManager;
|
||||
import forge.itemmanager.ColumnDef;
|
||||
import forge.itemmanager.ItemColumn;
|
||||
import forge.itemmanager.ItemManager;
|
||||
import forge.itemmanager.ItemManagerConfig;
|
||||
import forge.itemmanager.filters.ItemFilter;
|
||||
import forge.localinstance.properties.ForgePreferences;
|
||||
import forge.menu.FCheckBoxMenuItem;
|
||||
@@ -25,7 +33,10 @@ import forge.model.FModel;
|
||||
import forge.screens.FScreen;
|
||||
import forge.screens.LoadingOverlay;
|
||||
import forge.screens.TabPageScreen;
|
||||
import forge.toolbox.*;
|
||||
import forge.toolbox.FContainer;
|
||||
import forge.toolbox.FEvent;
|
||||
import forge.toolbox.FLabel;
|
||||
import forge.toolbox.GuiChoose;
|
||||
import forge.util.Callback;
|
||||
import forge.util.ItemPool;
|
||||
import forge.util.Localizer;
|
||||
@@ -69,24 +80,24 @@ import java.util.Map;
|
||||
((CardManagerPage)page).refresh();
|
||||
}
|
||||
for (TabPage<AdventureDeckEditor> tabPage : tabPages) {
|
||||
((AdventureDeckEditor.DeckEditorPage)tabPage).initialize();
|
||||
((DeckEditorPage)tabPage).initialize();
|
||||
}
|
||||
}
|
||||
private static AdventureDeckEditor.DeckEditorPage[] getPages() {
|
||||
private static DeckEditorPage[] getPages() {
|
||||
final Localizer localizer = Localizer.getInstance();
|
||||
|
||||
return new AdventureDeckEditor.DeckEditorPage[] {
|
||||
new AdventureDeckEditor.CatalogPage(ItemManagerConfig.QUEST_EDITOR_POOL, localizer.getMessage("lblInventory"), FSkinImage.QUEST_BOX),
|
||||
new AdventureDeckEditor.DeckSectionPage(DeckSection.Main, ItemManagerConfig.QUEST_DECK_EDITOR),
|
||||
new AdventureDeckEditor.DeckSectionPage(DeckSection.Sideboard, ItemManagerConfig.QUEST_DECK_EDITOR)
|
||||
return new DeckEditorPage[] {
|
||||
new CatalogPage(ItemManagerConfig.QUEST_EDITOR_POOL, localizer.getMessage("lblInventory"), FSkinImage.QUEST_BOX),
|
||||
new DeckSectionPage(DeckSection.Main, ItemManagerConfig.QUEST_DECK_EDITOR),
|
||||
new DeckSectionPage(DeckSection.Sideboard, ItemManagerConfig.QUEST_DECK_EDITOR)
|
||||
};
|
||||
}
|
||||
private AdventureDeckEditor.CatalogPage catalogPage;
|
||||
private AdventureDeckEditor.DeckSectionPage mainDeckPage;
|
||||
private AdventureDeckEditor.DeckSectionPage sideboardPage;
|
||||
private AdventureDeckEditor.DeckSectionPage commanderPage;
|
||||
private CatalogPage catalogPage;
|
||||
private DeckSectionPage mainDeckPage;
|
||||
private DeckSectionPage sideboardPage;
|
||||
private DeckSectionPage commanderPage;
|
||||
|
||||
protected final AdventureDeckEditor.DeckHeader deckHeader = add(new AdventureDeckEditor.DeckHeader());
|
||||
protected final DeckHeader deckHeader = add(new DeckHeader());
|
||||
protected final FLabel lblName = deckHeader.add(new FLabel.Builder().font(FSkinFont.get(16)).insets(new Vector2(Utils.scale(5), 0)).build());
|
||||
private final FLabel btnMoreOptions = deckHeader.add(new FLabel.Builder().text("...").font(FSkinFont.get(20)).align(Align.center).pressedColor(Header.BTN_PRESSED_COLOR).build());
|
||||
|
||||
@@ -99,11 +110,11 @@ import java.util.Map;
|
||||
|
||||
//cache specific pages
|
||||
for (TabPage<AdventureDeckEditor> tabPage : tabPages) {
|
||||
if (tabPage instanceof AdventureDeckEditor.CatalogPage) {
|
||||
catalogPage = (AdventureDeckEditor.CatalogPage) tabPage;
|
||||
if (tabPage instanceof CatalogPage) {
|
||||
catalogPage = (CatalogPage) tabPage;
|
||||
}
|
||||
else if (tabPage instanceof AdventureDeckEditor.DeckSectionPage) {
|
||||
AdventureDeckEditor.DeckSectionPage deckSectionPage = (AdventureDeckEditor.DeckSectionPage) tabPage;
|
||||
else if (tabPage instanceof DeckSectionPage) {
|
||||
DeckSectionPage deckSectionPage = (DeckSectionPage) tabPage;
|
||||
switch (deckSectionPage.deckSection) {
|
||||
case Main:
|
||||
case Schemes:
|
||||
@@ -131,7 +142,7 @@ import java.util.Map;
|
||||
final Localizer localizer = Localizer.getInstance();
|
||||
|
||||
addItem(new FMenuItem(localizer.getMessage("btnCopyToClipboard"), Forge.hdbuttons ? FSkinImage.HDEXPORT : FSkinImage.BLANK, e1 -> FDeckViewer.copyDeckToClipboard(getDeck())));
|
||||
((AdventureDeckEditor.DeckEditorPage)getSelectedPage()).buildDeckMenu(this);
|
||||
((DeckEditorPage)getSelectedPage()).buildDeckMenu(this);
|
||||
}
|
||||
};
|
||||
menu.show(btnMoreOptions, 0, btnMoreOptions.getHeight());
|
||||
@@ -149,19 +160,19 @@ import java.util.Map;
|
||||
public Deck getDeck() {
|
||||
return AdventurePlayer.current().getSelectedDeck();
|
||||
}
|
||||
protected AdventureDeckEditor.CatalogPage getCatalogPage() {
|
||||
protected CatalogPage getCatalogPage() {
|
||||
return catalogPage;
|
||||
}
|
||||
|
||||
protected AdventureDeckEditor.DeckSectionPage getMainDeckPage() {
|
||||
protected DeckSectionPage getMainDeckPage() {
|
||||
return mainDeckPage;
|
||||
}
|
||||
|
||||
protected AdventureDeckEditor.DeckSectionPage getSideboardPage() {
|
||||
protected DeckSectionPage getSideboardPage() {
|
||||
return sideboardPage;
|
||||
}
|
||||
|
||||
protected AdventureDeckEditor.DeckSectionPage getCommanderPage() {
|
||||
protected DeckSectionPage getCommanderPage() {
|
||||
return commanderPage;
|
||||
}
|
||||
|
||||
@@ -222,7 +233,7 @@ import java.util.Map;
|
||||
}
|
||||
}
|
||||
|
||||
protected static abstract class CardManagerPage extends AdventureDeckEditor.DeckEditorPage {
|
||||
protected static abstract class CardManagerPage extends DeckEditorPage {
|
||||
private final ItemManagerConfig config;
|
||||
protected final CardManager cardManager = add(new CardManager(false));
|
||||
|
||||
@@ -233,7 +244,7 @@ import java.util.Map;
|
||||
cardManager.setContextMenuBuilder(new ItemManager.ContextMenuBuilder<PaperCard>() {
|
||||
@Override
|
||||
public void buildMenu(final FDropDownMenu menu, final PaperCard card) {
|
||||
AdventureDeckEditor.CardManagerPage.this.buildMenu(menu, card);
|
||||
CardManagerPage.this.buildMenu(menu, card);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -488,7 +499,7 @@ import java.util.Map;
|
||||
}
|
||||
}
|
||||
|
||||
protected static class CatalogPage extends AdventureDeckEditor.CardManagerPage {
|
||||
protected static class CatalogPage extends CardManagerPage {
|
||||
private boolean initialized, needRefreshWhenShown;
|
||||
|
||||
protected CatalogPage(ItemManagerConfig config, String caption0, FImage icon0) {
|
||||
@@ -631,7 +642,7 @@ import java.util.Map;
|
||||
}
|
||||
}
|
||||
|
||||
protected static class DeckSectionPage extends AdventureDeckEditor.CardManagerPage {
|
||||
protected static class DeckSectionPage extends CardManagerPage {
|
||||
private final String captionPrefix;
|
||||
private final DeckSection deckSection;
|
||||
|
||||
@@ -3,14 +3,19 @@ package forge.adventure.scene;
|
||||
import com.badlogic.gdx.Input;
|
||||
import com.badlogic.gdx.graphics.Color;
|
||||
import com.badlogic.gdx.scenes.scene2d.InputEvent;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.*;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.Dialog;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.Label;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.ScrollPane;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.Table;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.TextButton;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.TextField;
|
||||
import com.badlogic.gdx.scenes.scene2d.utils.ClickListener;
|
||||
import com.badlogic.gdx.utils.Align;
|
||||
import com.badlogic.gdx.utils.IntMap;
|
||||
import forge.adventure.AdventureApplicationAdapter;
|
||||
import forge.adventure.player.AdventurePlayer;
|
||||
import forge.adventure.util.Controls;
|
||||
import forge.adventure.util.Current;
|
||||
import forge.adventure.player.AdventurePlayer;
|
||||
|
||||
public class DeckSelectScene extends UIScene {
|
||||
private final IntMap<TextButton> buttons = new IntMap<>();
|
||||
@@ -5,9 +5,9 @@ import forge.LobbyPlayer;
|
||||
import forge.adventure.AdventureApplicationAdapter;
|
||||
import forge.adventure.character.EnemySprite;
|
||||
import forge.adventure.character.PlayerSprite;
|
||||
import forge.adventure.player.AdventurePlayer;
|
||||
import forge.adventure.util.Config;
|
||||
import forge.adventure.util.Current;
|
||||
import forge.adventure.player.AdventurePlayer;
|
||||
import forge.assets.FSkin;
|
||||
import forge.deck.Deck;
|
||||
import forge.game.GameRules;
|
||||
@@ -24,7 +24,12 @@ import forge.sound.MusicPlaylist;
|
||||
import forge.sound.SoundSystem;
|
||||
import forge.trackable.TrackableCollection;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* DuelScene
|
||||
@@ -2,13 +2,13 @@ package forge.adventure.scene;
|
||||
|
||||
import com.badlogic.gdx.Input;
|
||||
import forge.Forge;
|
||||
import forge.gui.error.BugReporter;
|
||||
import forge.screens.match.MatchController;
|
||||
import forge.toolbox.FContainer;
|
||||
import forge.toolbox.FDisplayObject;
|
||||
import forge.toolbox.FGestureAdapter;
|
||||
import forge.toolbox.FOverlay;
|
||||
import forge.util.Utils;
|
||||
import forge.gui.error.BugReporter;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -2,16 +2,16 @@ package forge.adventure.scene;
|
||||
|
||||
import com.badlogic.gdx.Gdx;
|
||||
import com.badlogic.gdx.graphics.GL20;
|
||||
import forge.adventure.AdventureApplicationAdapter;
|
||||
import forge.Forge;
|
||||
import forge.Graphics;
|
||||
import forge.adventure.AdventureApplicationAdapter;
|
||||
import forge.animation.ForgeAnimation;
|
||||
import forge.assets.ImageCache;
|
||||
import forge.gamemodes.match.LobbySlotType;
|
||||
import forge.interfaces.IUpdateable;
|
||||
import forge.screens.FScreen;
|
||||
import forge.toolbox.FDisplayObject;
|
||||
import forge.toolbox.FOverlay;
|
||||
import forge.gamemodes.match.LobbySlotType;
|
||||
import forge.interfaces.IUpdateable;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -9,14 +9,14 @@ import com.badlogic.gdx.scenes.scene2d.utils.ClickListener;
|
||||
import com.badlogic.gdx.utils.Array;
|
||||
import forge.adventure.AdventureApplicationAdapter;
|
||||
import forge.adventure.character.ShopActor;
|
||||
import forge.assets.ImageCache;
|
||||
import forge.adventure.player.AdventurePlayer;
|
||||
import forge.adventure.pointofintrest.PointOfInterestChanges;
|
||||
import forge.adventure.util.CardUtil;
|
||||
import forge.adventure.util.Current;
|
||||
import forge.adventure.util.Reward;
|
||||
import forge.adventure.util.RewardActor;
|
||||
import forge.adventure.player.AdventurePlayer;
|
||||
import forge.adventure.pointofintrest.PointOfInterestChanges;
|
||||
import forge.adventure.world.WorldSave;
|
||||
import forge.assets.ImageCache;
|
||||
|
||||
/**
|
||||
* Displays the rewards of a fight or a treasure
|
||||
@@ -4,7 +4,13 @@ import com.badlogic.gdx.Input;
|
||||
import com.badlogic.gdx.graphics.Color;
|
||||
import com.badlogic.gdx.graphics.Texture;
|
||||
import com.badlogic.gdx.scenes.scene2d.InputEvent;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.*;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.Dialog;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.Image;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.Label;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.ScrollPane;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.Table;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.TextButton;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.TextField;
|
||||
import com.badlogic.gdx.scenes.scene2d.utils.ClickListener;
|
||||
import com.badlogic.gdx.scenes.scene2d.utils.TextureRegionDrawable;
|
||||
import com.badlogic.gdx.utils.Align;
|
||||
26
forge-gui-mobile/src/forge/adventure/scene/SceneType.java
Normal file
26
forge-gui-mobile/src/forge/adventure/scene/SceneType.java
Normal file
@@ -0,0 +1,26 @@
|
||||
package forge.adventure.scene;
|
||||
|
||||
/**
|
||||
* Enum of all scenes
|
||||
*/
|
||||
public enum SceneType {
|
||||
StartScene(new StartScene()),
|
||||
NewGameScene(new NewGameScene()),
|
||||
SettingsScene(new SettingsScene()),
|
||||
GameScene(new GameScene()),
|
||||
DuelScene(new DuelScene()),
|
||||
SaveLoadScene(new SaveLoadScene()),
|
||||
DeckEditScene(new DeckEditScene()),
|
||||
TileMapScene(new TileMapScene()),
|
||||
RewardScene(new RewardScene()),
|
||||
InnScene(new InnScene()),
|
||||
DeckSelectScene(new DeckSelectScene()),
|
||||
ShopScene(new ShopScene()),
|
||||
PlayerStatisticScene(new PlayerStatisticScene());
|
||||
|
||||
|
||||
public final Scene instance;
|
||||
SceneType(Scene scene) {
|
||||
this.instance = scene;
|
||||
}
|
||||
}
|
||||
@@ -6,7 +6,13 @@ 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.ui.CheckBox;
|
||||
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.Slider;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.Table;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.TextField;
|
||||
import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener;
|
||||
import com.badlogic.gdx.utils.Align;
|
||||
import forge.adventure.AdventureApplicationAdapter;
|
||||
@@ -42,7 +42,7 @@ public class StartScene extends UIScene {
|
||||
}
|
||||
|
||||
public boolean settings() {
|
||||
AdventureApplicationAdapter.instance.switchScene(forge.adventure.scene.SceneType.SettingsScene.instance);
|
||||
AdventureApplicationAdapter.instance.switchScene(SceneType.SettingsScene.instance);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -3,11 +3,11 @@ package forge.adventure.scene;
|
||||
import com.badlogic.gdx.Gdx;
|
||||
import com.badlogic.gdx.graphics.GL20;
|
||||
import com.badlogic.gdx.maps.tiled.TiledMap;
|
||||
import forge.adventure.pointofintrest.PointOfInterest;
|
||||
import forge.adventure.stage.MapStage;
|
||||
import forge.adventure.stage.PointOfInterestMapRenderer;
|
||||
import forge.adventure.util.Config;
|
||||
import forge.adventure.util.TemplateTmxMapLoader;
|
||||
import forge.adventure.pointofintrest.PointOfInterest;
|
||||
import forge.adventure.world.WorldSave;
|
||||
|
||||
/**
|
||||
@@ -12,17 +12,23 @@ import com.badlogic.gdx.math.Vector2;
|
||||
import com.badlogic.gdx.scenes.scene2d.Group;
|
||||
import com.badlogic.gdx.utils.Array;
|
||||
import forge.adventure.AdventureApplicationAdapter;
|
||||
import forge.adventure.character.*;
|
||||
import forge.adventure.character.CharacterSprite;
|
||||
import forge.adventure.character.EnemySprite;
|
||||
import forge.adventure.character.EntryActor;
|
||||
import forge.adventure.character.MapActor;
|
||||
import forge.adventure.character.OnCollide;
|
||||
import forge.adventure.character.ShopActor;
|
||||
import forge.adventure.character.TextureSprite;
|
||||
import forge.adventure.data.RewardData;
|
||||
import forge.adventure.data.ShopData;
|
||||
import forge.adventure.data.WorldData;
|
||||
import forge.adventure.pointofintrest.PointOfInterestChanges;
|
||||
import forge.adventure.scene.DuelScene;
|
||||
import forge.adventure.scene.RewardScene;
|
||||
import forge.adventure.scene.SceneType;
|
||||
import forge.adventure.util.Config;
|
||||
import forge.adventure.util.Current;
|
||||
import forge.adventure.util.Reward;
|
||||
import forge.adventure.pointofintrest.PointOfInterestChanges;
|
||||
import forge.adventure.world.WorldSave;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -9,7 +9,11 @@ import forge.adventure.character.EnemySprite;
|
||||
import forge.adventure.data.BiomeData;
|
||||
import forge.adventure.data.EnemyData;
|
||||
import forge.adventure.data.WorldData;
|
||||
import forge.adventure.scene.*;
|
||||
import forge.adventure.scene.DuelScene;
|
||||
import forge.adventure.scene.RewardScene;
|
||||
import forge.adventure.scene.Scene;
|
||||
import forge.adventure.scene.SceneType;
|
||||
import forge.adventure.scene.TileMapScene;
|
||||
import forge.adventure.util.Current;
|
||||
import forge.adventure.util.SaveFileContent;
|
||||
import forge.adventure.util.SaveFileData;
|
||||
@@ -25,7 +25,7 @@ import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import static forge.adventure.data.RewardData.*;
|
||||
import static forge.adventure.data.RewardData.generateAllCards;
|
||||
|
||||
/**
|
||||
* Utility class to deck generation and card filtering
|
||||
@@ -5,7 +5,14 @@ import com.badlogic.gdx.graphics.g2d.BitmapFont;
|
||||
import com.badlogic.gdx.graphics.g2d.TextureAtlas;
|
||||
import com.badlogic.gdx.scenes.scene2d.Actor;
|
||||
import com.badlogic.gdx.scenes.scene2d.InputEvent;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.*;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.CheckBox;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.Dialog;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.Label;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.SelectBox;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.Skin;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.Slider;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.TextButton;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.TextField;
|
||||
import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener;
|
||||
import com.badlogic.gdx.scenes.scene2d.utils.ClickListener;
|
||||
|
||||
@@ -5,7 +5,11 @@ import com.badlogic.gdx.graphics.PixmapIO;
|
||||
import com.badlogic.gdx.math.Rectangle;
|
||||
import com.badlogic.gdx.math.Vector2;
|
||||
|
||||
import java.io.*;
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.ObjectInputStream;
|
||||
import java.io.ObjectOutputStream;
|
||||
import java.util.HashMap;
|
||||
|
||||
public class SaveFileData extends HashMap<String,byte[]>
|
||||
@@ -16,7 +16,7 @@ import java.io.ObjectOutputStream;
|
||||
public abstract class Serializer {
|
||||
|
||||
|
||||
static public void WritePixmap(java.io.ObjectOutputStream out, Pixmap pixmap) throws IOException {
|
||||
static public void WritePixmap(ObjectOutputStream out, Pixmap pixmap) throws IOException {
|
||||
|
||||
if (pixmap != null) {
|
||||
PixmapIO.PNG png = new PixmapIO.PNG();
|
||||
@@ -18,7 +18,7 @@ public class TemplateTmxMapLoader extends TmxMapLoader {
|
||||
FileHandle tmxFile;
|
||||
|
||||
@Override
|
||||
protected TiledMap loadTiledMap(FileHandle tmxFile, TmxMapLoader.Parameters parameter, ImageResolver imageResolver) {
|
||||
protected TiledMap loadTiledMap(FileHandle tmxFile, Parameters parameter, ImageResolver imageResolver) {
|
||||
this.tmxFile = tmxFile;
|
||||
return super.loadTiledMap(tmxFile, parameter, imageResolver);
|
||||
}
|
||||
@@ -5,7 +5,13 @@ import com.badlogic.gdx.graphics.Texture;
|
||||
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.ui.*;
|
||||
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.ScrollPane;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.TextButton;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.TextField;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.Window;
|
||||
import com.badlogic.gdx.scenes.scene2d.utils.ClickListener;
|
||||
import com.badlogic.gdx.scenes.scene2d.utils.TextureRegionDrawable;
|
||||
import com.badlogic.gdx.utils.Array;
|
||||
@@ -8,7 +8,11 @@ import com.badlogic.gdx.math.Vector2;
|
||||
import com.badlogic.gdx.scenes.scene2d.Actor;
|
||||
import com.badlogic.gdx.utils.Disposable;
|
||||
import com.badlogic.gdx.utils.Json;
|
||||
import forge.adventure.data.*;
|
||||
import forge.adventure.data.BiomeData;
|
||||
import forge.adventure.data.BiomeSpriteData;
|
||||
import forge.adventure.data.BiomeTerrainData;
|
||||
import forge.adventure.data.PointOfInterestData;
|
||||
import forge.adventure.data.WorldData;
|
||||
import forge.adventure.pointofintrest.PointOfInterest;
|
||||
import forge.adventure.pointofintrest.PointOfInterestMap;
|
||||
import forge.adventure.scene.Scene;
|
||||
@@ -9,9 +9,13 @@ import forge.adventure.util.SaveFileData;
|
||||
import forge.adventure.util.SignalList;
|
||||
import forge.deck.Deck;
|
||||
import forge.localinstance.properties.ForgeProfileProperties;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.io.*;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.ObjectInputStream;
|
||||
import java.io.ObjectOutputStream;
|
||||
import java.util.HashMap;
|
||||
import java.util.zip.DeflaterOutputStream;
|
||||
import java.util.zip.InflaterInputStream;
|
||||
@@ -79,7 +83,7 @@ public class WorldSave {
|
||||
}
|
||||
return true;
|
||||
}
|
||||
public static boolean isSafeFile(@NotNull String name) {
|
||||
public static boolean isSafeFile(String name) {
|
||||
return filenameToSlot(name)!= INVALID_SAVE_SLOT;
|
||||
}
|
||||
static public int filenameToSlot(String name) {
|
||||
@@ -9,14 +9,18 @@ import forge.Graphics;
|
||||
import forge.assets.FSkinColor;
|
||||
import forge.assets.FSkinFont;
|
||||
import forge.assets.FSkinTexture;
|
||||
import forge.toolbox.FButton;
|
||||
import forge.toolbox.FContainer;
|
||||
import forge.toolbox.FEvent;
|
||||
import forge.toolbox.FProgressBar;
|
||||
import forge.util.Localizer;
|
||||
|
||||
public class SplashScreen extends FContainer {
|
||||
private TextureRegion background;
|
||||
private final FProgressBar progressBar;
|
||||
private FSkinFont disclaimerFont;
|
||||
private boolean preparedForDialogs;
|
||||
private boolean preparedForDialogs, showModeSelector, init;
|
||||
private FButton btnAdventure, btnHome;
|
||||
|
||||
public SplashScreen() {
|
||||
progressBar = new FProgressBar();
|
||||
@@ -63,14 +67,74 @@ public class SplashScreen extends FContainer {
|
||||
preparedForDialogs = true;
|
||||
}
|
||||
|
||||
public void setShowModeSelector(boolean value) {
|
||||
showModeSelector = value;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void drawBackground(Graphics g) {
|
||||
if (showModeSelector)
|
||||
showSelector(g);
|
||||
else
|
||||
showSplash(g);
|
||||
}
|
||||
private void showSelector(Graphics g) {
|
||||
g.drawImage(FSkinTexture.BG_TEXTURE, 0, 0, getWidth(), getHeight());
|
||||
|
||||
float x, y, w, h;
|
||||
float backgroundRatio = (float) background.getRegionWidth() / background.getRegionHeight();
|
||||
float screenRatio = getWidth() / getHeight();
|
||||
if (backgroundRatio > screenRatio) {
|
||||
x = 0;
|
||||
w = getWidth();
|
||||
h = getWidth() * backgroundRatio;
|
||||
y = (getHeight() - h) / 2;
|
||||
}
|
||||
else {
|
||||
y = 0;
|
||||
h = getHeight();
|
||||
w = getHeight() / backgroundRatio;
|
||||
x = (getWidth() - w) / 2;
|
||||
}
|
||||
g.drawImage(background, x, y, w, h);
|
||||
y += h * 295f / 450f;
|
||||
float padding = 20f / 450f * w;
|
||||
float height = 57f / 450f * h;
|
||||
|
||||
if (!init) {
|
||||
btnAdventure = new FButton(Localizer.getInstance().getMessageorUseDefault("lblAdventureMode", "Adventure Mode"));
|
||||
btnAdventure.setCommand(new FEvent.FEventHandler() {
|
||||
@Override
|
||||
public void handleEvent(FEvent e) {
|
||||
Forge.openAdventure();
|
||||
}
|
||||
});
|
||||
btnHome = new FButton(Localizer.getInstance().getMessageorUseDefault("lblClassicMode", "Classic Mode"));
|
||||
btnHome.setCommand(new FEvent.FEventHandler() {
|
||||
@Override
|
||||
public void handleEvent(FEvent e) {
|
||||
Forge.openHomeDefault();
|
||||
}
|
||||
});
|
||||
float btn_w = (w - 2 * padding);
|
||||
float btn_x = x + padding;
|
||||
float btn_y = y + padding;
|
||||
btnHome.setFont(FSkinFont.get(22));
|
||||
btnAdventure.setFont(FSkinFont.get(22));
|
||||
btnHome.setBounds(btn_x, btn_y, btn_w, height);
|
||||
add(btnHome);
|
||||
btnAdventure.setBounds(btn_x, btn_y+height+padding/2, btn_w, height);
|
||||
add(btnAdventure);
|
||||
init = true;
|
||||
}
|
||||
}
|
||||
private void showSplash(Graphics g) {
|
||||
if (background == null) { return; }
|
||||
|
||||
g.drawImage(FSkinTexture.BG_TEXTURE, 0, 0, getWidth(), getHeight());
|
||||
|
||||
float x, y, w, h;
|
||||
float backgroundRatio = background.getRegionWidth() / background.getRegionHeight();
|
||||
float backgroundRatio = (float) background.getRegionWidth() / background.getRegionHeight();
|
||||
float screenRatio = getWidth() / getHeight();
|
||||
if (backgroundRatio > screenRatio) {
|
||||
x = 0;
|
||||
|
||||
@@ -135,8 +135,10 @@ public abstract class FDisplayObject {
|
||||
//TODO: mouse detection on android?
|
||||
if (Forge.afterDBloaded && !GuiBase.isAndroid()) {
|
||||
Forge.hoveredCount = listeners.size();
|
||||
if (!Forge.getCurrentScreen().toString().contains("Match"))
|
||||
Forge.hoveredCount = 1;
|
||||
if (Forge.getCurrentScreen() != null) {
|
||||
if (!Forge.getCurrentScreen().toString().contains("Match"))
|
||||
Forge.hoveredCount = 1;
|
||||
}
|
||||
if (exact) {
|
||||
setHovered(this.enabled && this.visible && ((FCardPanel) this).renderedCardContains(screenToLocalX(screenX), screenToLocalY(screenY)) && Forge.hoveredCount < 2);
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user