Example usage for com.badlogic.gdx.scenes.scene2d.utils ClickListener ClickListener

List of usage examples for com.badlogic.gdx.scenes.scene2d.utils ClickListener ClickListener

Introduction

In this page you can find the example usage for com.badlogic.gdx.scenes.scene2d.utils ClickListener ClickListener.

Prototype

public ClickListener(int button) 

Source Link

Usage

From source file:ateamproject.kezuino.com.github.network.rmi.Client.java

@Override
public void registerPackets() {
    packets.registerFunc(PacketKick.class, packet -> {
        if (packet.getSender() == null) {
            new Dialog("Kicked", ((BaseScreen) game.getScreen()).getSkin()) {
                {//from  w ww  . j a va2 s  .com
                    text(packet.getReason());
                    button("Oke");

                    addListener(new ClickListener(0) {
                        @Override
                        public void clicked(InputEvent event, float x, float y) {
                            game.setScreen(new MainScreen(game));
                        }
                    });
                }
            }.show(((BaseScreen) game.getScreen()).getStage());
            return true;
        } else {
            try {
                if (packet.getReceivers().length > 0) {
                    for (UUID receiver : packet.getReceivers()) {
                        this.rmi.getServer().kickClient(packet.getSender(), receiver, packet.getReasonType(),
                                packet.getReason());
                    }
                } else {
                    this.rmi.getServer().kickClient(packet.getSender(), null, packet.getReasonType(),
                            packet.getReason());
                }
            } catch (RemoteException ex) {
                Logger.getLogger(Client.class.getName()).log(Level.SEVERE, null, ex);
            }
            return true;
        }
    });

    packets.registerFunc(PacketLoginAuthenticate.class, packet -> {
        PacketLoginAuthenticate.ReturnData data = null;
        try {
            data = getRmi().getServer().login(packet.getEmailAddress(), packet.getPassword(), getRmi());
        } catch (Exception e) {
            data = new PacketLoginAuthenticate.ReturnData(null, null, null, null, "Server is niet online.",
                    false);
        }

        if (data != null) {
            if (data.getPrivateId() == null) {
                this.setEmailaddress(null);
                this.setUsername(null);
                this.setId(null);
                this.setPublicId(null);
            } else {
                this.setEmailaddress(data.getEmailadress());
                this.setUsername(data.getUsername());
                this.setId(data.getPrivateId());
                this.setPublicId(data.getPublicId());
                System.out.printf("Logged in as: (Username: %s), (Email: %s), (Private: %s), (Public: %s)%n",
                        data.getUsername(), data.getEmailadress(), data.getPrivateId(), data.getPublicId());
            }
        }

        return data;
    });

    packets.registerAction(PacketLogout.class, packet -> {

        try {
            getRmi().getServer().logout(getId());
        } catch (RemoteException e) {
            e.printStackTrace();
        }
    });

    packets.registerFunc(PacketHighScore.class, (packet) -> {
        try {
            return getRmi().getServer().setScore(packet.getSender(), packet.getScore());
        } catch (RemoteException ex) {
            Logger.getLogger(MainScreen.class.getName()).log(Level.SEVERE, null, ex);
        }
        return false;
    });

    packets.registerFunc(PacketCreateLobby.class, (p) -> {

        try {
            return getRmi().getServer().createLobby(p.getSender(), p.getLobbyname(), p.getClanname());
        } catch (RemoteException ex) {
            Logger.getLogger(ateamproject.kezuino.com.github.network.rmi.Client.class.getName())
                    .log(Level.SEVERE, null, ex);
        }
        return null;
    });

    packets.registerFunc(PacketGetLobbies.class, (p) -> {
        try {
            return getRmi().getServer().getLobbies(p.getSender(), p.isClanGame());
        } catch (RemoteException ex) {
            Logger.getLogger(ateamproject.kezuino.com.github.network.rmi.Client.class.getName())
                    .log(Level.SEVERE, null, ex);
        }
        return null;
    });

    packets.registerAction(PacketScreenUpdate.class, packet -> {
        if (game.getScreen().getClass().equals(packet.getScreenClass())) {
            RefreshableScreen screen = (RefreshableScreen) game.getScreen();
            screen.refresh();
        }
    });

    packets.registerFunc(PacketGetClans.class, (p) -> {
        try {
            return getRmi().getServer().getClans(p.getSender());
        } catch (RemoteException ex) {
            Logger.getLogger(ateamproject.kezuino.com.github.network.rmi.Client.class.getName())
                    .log(Level.SEVERE, null, ex);
        }

        return null;
    });

    packets.registerAction(PacketReloadClans.class, (p) -> {
        // run methode op de serverbase .getclans
        try {
            getRmi().getServer().setClans(p.getSender());
        } catch (RemoteException ex) {
            Logger.getLogger(ateamproject.kezuino.com.github.network.rmi.Client.class.getName())
                    .log(Level.SEVERE, null, ex);
        }
    });

    packets.registerFunc(PacketJoinLobby.class, (p) -> {
        try {
            return getRmi().getServer().joinLobby(p.getLobbyId(), p.getSender());
        } catch (RemoteException ex) {
            Logger.getLogger(ateamproject.kezuino.com.github.network.rmi.Client.class.getName())
                    .log(Level.SEVERE, null, ex);
        }
        return null;
    });

    packets.registerFunc(PacketLoginCreateNewUser.class, (p) -> {
        try {
            return getRmi().getServer().loginCreateUser(p.getSender(), p.getUsername(), p.getEmail());
        } catch (RemoteException ex) {
            Logger.getLogger(ateamproject.kezuino.com.github.network.rmi.Client.class.getName())
                    .log(Level.SEVERE, null, ex);
        }

        return false;
    });

    packets.registerFunc(PacketLoginUserExists.class, (p) -> {
        try {
            return getRmi().getServer().doesUserExists(p.getEmail());
        } catch (RemoteException ex) {
            Logger.getLogger(ateamproject.kezuino.com.github.network.rmi.Client.class.getName())
                    .log(Level.SEVERE, null, ex);
        }

        return false;
    });

    packets.registerFunc(PacketGetKickInformation.class, (p) -> {
        try {
            return getRmi().getServer().getKickInformation(p.getSender());
        } catch (RemoteException ex) {
            Logger.getLogger(ateamproject.kezuino.com.github.network.rmi.Client.class.getName())
                    .log(Level.SEVERE, null, ex);
        }

        return false;
    });

    packets.registerFunc(PacketCreateClan.class, (p) -> {
        try {
            return getRmi().getServer().createClan(p.getSender(), p.getClanName());
        } catch (RemoteException ex) {
            Logger.getLogger(ateamproject.kezuino.com.github.network.rmi.Client.class.getName())
                    .log(Level.SEVERE, null, ex);
        }

        return false;
    });

    packets.registerFunc(PacketFillTable.class, (p) -> {
        try {
            return getRmi().getServer().clanFillTable(p.getEmailadres());
        } catch (RemoteException ex) {
            Logger.getLogger(ateamproject.kezuino.com.github.network.rmi.Client.class.getName())
                    .log(Level.SEVERE, null, ex);
        }

        return false;
    });

    packets.registerFunc(PacketGetEmail.class, (p) -> {
        try {
            return getRmi().getServer().getEmail(p.getSender());
        } catch (RemoteException ex) {
            Logger.getLogger(ateamproject.kezuino.com.github.network.rmi.Client.class.getName())
                    .log(Level.SEVERE, null, ex);
        }

        return false;
    });

    packets.registerFunc(PacketGetInvitation.class, (p) -> {
        try {
            return getRmi().getServer().clanGetInvitation(p.getSender(), p.getClanName());
        } catch (RemoteException ex) {
            Logger.getLogger(ateamproject.kezuino.com.github.network.rmi.Client.class.getName())
                    .log(Level.SEVERE, null, ex);
        }

        return false;
    });

    packets.registerFunc(PacketGetManagement.class, (p) -> {
        try {
            return getRmi().getServer().getManagement(p.getSender(), p.getClanName());
        } catch (RemoteException ex) {
            Logger.getLogger(ateamproject.kezuino.com.github.network.rmi.Client.class.getName())
                    .log(Level.SEVERE, null, ex);
        }

        return false;
    });

    packets.registerFunc(PacketGetPeople.class, (p) -> {
        try {
            return getRmi().getServer().getPeople(p.getClanName());
        } catch (RemoteException ex) {
            Logger.getLogger(ateamproject.kezuino.com.github.network.rmi.Client.class.getName())
                    .log(Level.SEVERE, null, ex);
        }

        return false;
    });

    packets.registerFunc(PacketGetUsername.class, (p) -> {
        try {
            return getRmi().getServer().getUsername(p.getEmailadres());
        } catch (RemoteException ex) {
            Logger.getLogger(ateamproject.kezuino.com.github.network.rmi.Client.class.getName())
                    .log(Level.SEVERE, null, ex);
        }

        return false;
    });

    packets.registerFunc(PacketHandleInvitation.class, (p) -> {
        try {
            return getRmi().getServer().handleInvitation(p.getInvite(), p.getClanName(), p.getEmailadres(),
                    p.getNameOfInvitee());
        } catch (RemoteException ex) {
            Logger.getLogger(ateamproject.kezuino.com.github.network.rmi.Client.class.getName())
                    .log(Level.SEVERE, null, ex);
        }

        return false;
    });

    packets.registerFunc(PacketHandleManagement.class, (p) -> {
        try {
            return getRmi().getServer().handleManagement(p.getManage(), p.getClanName(), p.getEmailadres());
        } catch (RemoteException ex) {
            Logger.getLogger(ateamproject.kezuino.com.github.network.rmi.Client.class.getName())
                    .log(Level.SEVERE, null, ex);
        }

        return false;
    });

    packets.registerFunc(PacketSetUsername.class, (p) -> {
        try {
            return getRmi().getServer().setUsername(p.getName(), p.getEmailaddress(), p.getSender());
        } catch (RemoteException ex) {
            Logger.getLogger(ateamproject.kezuino.com.github.network.rmi.Client.class.getName())
                    .log(Level.SEVERE, null, ex);
        }

        return false;
    });

    packets.registerAction(PacketSetKickInformation.class, packet -> {
        try {
            getRmi().getServer().setKickInformation(packet.getSender(), packet.getPersonToVoteFor());
        } catch (RemoteException e) {
            e.printStackTrace();
        }
    });

    packets.registerAction(PacketClientJoined.class, p -> {
        if (game.getScreen() instanceof LobbyScreen) {
            LobbyScreen t = (LobbyScreen) game.getScreen();
            t.addMember(p.getJoinenId(), p.getUsername());
        }
    });

    packets.registerFunc(PacketLobbyMembers.class, packet -> {
        try {
            // return all current members in the lobby
            return getRmi().getServer().getLobbyMembers(packet.getLobbyId());

        } catch (RemoteException ex) {
            Logger.getLogger(Client.class.getName()).log(Level.SEVERE, null, ex);
        }
        return null;
    });

    packets.registerAction(PacketLaunchGame.class, p -> {
        if (p.getSender() != null) {
            // Request came from client..
            try {
                rmi.getServer().launchGame(p.getSender(), p.getLevel(), p.getScore());
            } catch (RemoteException e) {
                e.printStackTrace();
            }
        } else {
            // Request came from server..
            if (p.isPaused()) {
                Gdx.app.postRunnable(() -> {
                    // Sync data of pactales already send to connected clients with host.
                    try {
                        List<PacketGetGameClients.Data> data = getRmi().getServer()
                                .getGameClients(Client.getInstance().getId());

                        for (PacketGetGameClients.Data d : data) {
                            Pactale player = BaseScreen.getSession().getPlayer(d.getIndex());

                            player.setId(d.getPublicId());
                            player.setColor(
                                    ateamproject.kezuino.com.github.network.Game.SELECTABLE_COLORS[player
                                            .getPlayerIndex()]);
                        }
                    } catch (RemoteException e) {
                        e.printStackTrace();
                    }

                    game.setScreen(new GameScreen(game));
                    ((GameScreen) game.getScreen()).start();
                });
            } else {
                // Request came from server.. resume game.
                Gdx.app.postRunnable(() -> BaseScreen.getSession().resume());
            }
        }
    });

    packets.registerAction(PacketCreateGameObject.class, p -> {
        GameSession session = BaseScreen.getSession();
        if (session == null) {
            System.out.printf("Tried to create object: '%s' but no GameSession was set.%n", p.getTypeName());
            return;
        }

        GameObject object = null;
        try {
            String className = GameObject.class.getName();
            className = className.substring(0, className.lastIndexOf('.'));
            object = (GameObject) Class.forName(className + '.' + p.getTypeName()).newInstance();
        } catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) {
            e.printStackTrace();
        }

        if (object == null) {
            throw new IllegalStateException(
                    String.format("Cannot create GameObject of type: '%s'", p.getTypeName()));
        }
        object.setId(p.getId());
        object.setStartingPosition(p.getPosition());
        object.setDirection(p.getDirection());
        object.setExactPosition(p.getPosition());
        object.setMap(session.getMap());
        object.setMovementSpeed(p.getSpeed());

        Color color = Color.WHITE.cpy();
        Color.rgba8888ToColor(color, p.getColor());
        object.setColor(color);

        if (object instanceof Pactale) {
            Pactale pactale = (Pactale) object;
            pactale.setPlayerIndex(p.getIndex());
            final GameObject finalObject = object;
            Gdx.app.postRunnable(() -> finalObject.setAnimation(new Animation(true,
                    Assets.getTexture(finalObject.getClass().getSimpleName().toLowerCase() + ".png"))));
        } else if (object instanceof Enemy) {
            final Enemy enemy = (Enemy) object;

            // Only host should generate enemy paths. Clients will receive them from the host.
            enemy.setDisablePathfinding(!Client.getInstance().isHost());
            Gdx.app.postRunnable(() -> enemy.setAnimation(
                    new Animation(Assets.getTexture(enemy.getClass().getSimpleName().toLowerCase() + ".png"))));
        }

        session.getMap().addGameObject(object);
        session.setObjectsLoaded(session.getObjectsLoaded() + 1);

        System.out.printf("Loaded (%s): %d/%d%n", object.getClass().getSimpleName(), session.getObjectsLoaded(),
                session.getObjectsToLoad());

        if (session.getObjectsToLoad() == session.getObjectsLoaded()) {
            send(new PacketSetLoadStatus(PacketSetLoadStatus.LoadStatus.ObjectsLoaded, null));
        }
    });

    packets.registerAction(PacketCreateItem.class, packet -> {
        GameSession session = BaseScreen.getSession();
        if (session == null) {
            System.out.printf("Tried to create object: '%s' but no GameSession was set.%n", "item");
            return;
        }

        // Create item.
        Item item = new Item(packet.getType().toString(), packet.getPosition(), packet.getType());
        item.setId(packet.getObjId());
        item.setMap(session.getMap());

        Gdx.app.postRunnable(() -> item.setTexture(
                new TextureRegion(Assets.getTexture(item.getItemType().name().toLowerCase() + ".png"))));
        session.getMap().getNode(item.getExactPosition()).setItem(item);

        // Update load status.
        session.setObjectsLoaded(session.getObjectsLoaded() + 1);
        System.out.printf("Loaded (%s): %d/%d%n", item.getClass().getSimpleName(), session.getObjectsLoaded(),
                session.getObjectsToLoad());

        if (session.getObjectsToLoad() == session.getObjectsLoaded()) {
            send(new PacketSetLoadStatus(PacketSetLoadStatus.LoadStatus.ObjectsLoaded, null));
        }
    });

    packets.registerAction(PacketLobbySetDetails.class, p -> {
        try {
            rmi.getServer().setLobbyDetails(p.getSender(), p.getData());
        } catch (RemoteException e) {
            e.printStackTrace();
        }
    });

    packets.registerFunc(PacketLobbyGetDetails.class, p -> {
        PacketLobbySetDetails.Data data = p.getResult();

        // TODO: Update lobby screen with new information.
        if (data.getName() != null) {
            System.out.println("New lobby name: " + data.getName());
        }
        if (data.getMap() != null) {
            System.out.println("New lobby map: " + data.getMap());
        }

        return data;
    });

    packets.registerAction(PacketLoadGame.class, p -> {
        // Set this session as the new main session.
        GameSession session = new GameSession(p.getLevel(), p.getScore());
        BaseScreen.setSession(session);
        MapLoader loader = Map.getLoader(session, p.getMap(), p.getLevel());

        EnumSet<MapLoader.MapObjectTypes> excluded = null;
        if (p.isMaster()) {
            // Load everything and synchronize with server.
            excluded = EnumSet.noneOf(MapLoader.MapObjectTypes.class);
            loader.addConsumer(Enemy.class, obj -> {
                try {
                    getRmi().getServer().createObject(p.getSender(), Enemy.class.getSimpleName(),
                            obj.getExactPosition(), obj.getDirection(), obj.getMovementSpeed(), obj.getId(),
                            Color.argb8888(obj.getColor()), 0);
                } catch (RemoteException e) {
                    e.printStackTrace();
                }
            });
            loader.addConsumer(Pactale.class, obj -> {
                if (obj.getPlayerIndex() == 0) {
                    obj.setId(getPublicId());
                }

                try {
                    getRmi().getServer().createObject(p.getSender(), Pactale.class.getSimpleName(),
                            obj.getExactPosition(), obj.getDirection(), obj.getMovementSpeed(), obj.getId(),
                            Color.argb8888(obj.getColor()), obj.getPlayerIndex());
                } catch (RemoteException e) {
                    e.printStackTrace();
                }
            });
            loader.addConsumer(Item.class, obj -> {
                try {
                    getRmi().getServer().createItem(p.getSender(), obj.getId(), obj.getItemType(),
                            obj.getExactPosition());
                } catch (RemoteException e) {
                    e.printStackTrace();
                }
            });
        } else {
            // Exclude everything that's network dependant.
            excluded = EnumSet.of(MapLoader.MapObjectTypes.ENEMY, MapLoader.MapObjectTypes.PACTALE,
                    MapLoader.MapObjectTypes.ITEM);
        }

        // Load map (on OpenGL thread).
        final EnumSet<MapLoader.MapObjectTypes> finalExcluded = excluded;
        Gdx.app.postRunnable(() -> {
            loader.getTypesToLoad().removeAll(finalExcluded);
            loader.setPlayerLimit(p.getPlayerLimit());
            loader.load();
            session.setMap(loader.getMap());

            // Tell the game that we are done loading.
            if (p.isMaster()) {
                send(new PacketSetLoadStatus(PacketSetLoadStatus.LoadStatus.ObjectsLoaded, null));
            } else {
                send(new PacketSetLoadStatus(PacketSetLoadStatus.LoadStatus.MapLoaded, null));
            }
        });
    });

    packets.registerAction(PacketSetLoadStatus.class, packet -> {
        try {
            getRmi().getServer().setLoadStatus(packet.getSender(), packet.getStatus());
        } catch (RemoteException e) {
            e.printStackTrace();
        }
    });

    packets.registerAction(PacketUpdateProgress.class, packet -> {
        switch (packet.getId()) {
        case "game_load_objects":
            if (BaseScreen.getSession() == null) {
                System.out.println(
                        "Warning: PacketUpdateProgress received but was not expected. GameSession is null.");
                return;
            }
            BaseScreen.getSession().setObjectsToLoad(packet.getProgress());
            break;
        }
    });

    packets.registerAction(PacketShootProjectile.class, packet -> {
        // If client sended it..send this private id to server.
        if (packet.getSender() != null && packet.getSender().equals(getId())) {
            try {
                getRmi().getServer().shootProjectile(packet.getExactPosition(), packet.getDirection(),
                        packet.getSender());
            } catch (RemoteException e) {
                e.printStackTrace();
            }
        } else {
            if (BaseScreen.getSession().getPlayer(packet.getSender()) != null) {
                Gdx.app.postRunnable(() -> {
                    // Server sended this.
                    BaseScreen.getSession().getPlayer(packet.getSender())
                            .shootProjectile(packet.getExactPosition(), packet.getDirection());
                });
            }
        }
    });

    packets.registerAction(PacketObjectMove.class, packet -> {
        if (packet.getSender() != null && packet.getSender().equals(getId())) {
            try {
                getRmi().getServer().objectSetDirection(packet.getSender(), packet.getObject(),
                        packet.getFrom(), packet.getTo());
            } catch (RemoteException e) {
                e.printStackTrace();
            }
        } else {
            // Server sent this.
            GameObject object = BaseScreen.getSession().findObject(packet.getObject());
            if (object != null) {
                object.setExactPosition(packet.getFrom());
                object.setDirection(Direction.getDirection((int) packet.getFrom().x, (int) packet.getFrom().y,
                        (int) packet.getTo().x, (int) packet.getTo().y));
            }
        }
    });

    packets.registerAction(PacketPlayerDied.class, packet -> {
        if (packet.getSender() != null && packet.getSender().equals(getId())) {
            try {
                getRmi().getServer().playerDied(packet.getSender());
            } catch (RemoteException e) {
                e.printStackTrace();
            }
        } else {
            BaseScreen.getSession().getPlayer(packet.getSender()).setInactive();
        }
    });

    packets.registerAction(PacketBalloonMessage.class, packet -> {
        if (packet.getSender() != null && packet.getSender().equals(getId())) {
            try {
                getRmi().getServer().balloonMessage(packet.getSender(), packet.getTypeName(),
                        packet.getPosition(), packet.getFollowTarget());
            } catch (RemoteException e) {
                e.printStackTrace();
            }
        } else {
            // Create balloon on OpenGL thread.
            Gdx.app.postRunnable(() -> {
                try {
                    BalloonMessage message = ((BalloonMessage) Class
                            .forName(BalloonMessage.class.getPackage().getName() + ".messages.Balloon"
                                    + packet.getTypeName())
                            .newInstance());
                    if (packet.getFollowTarget() != null) {
                        message.setFollowObject(BaseScreen.getSession().findObject(packet.getFollowTarget()));
                    } else {
                        message.setPosition(packet.getPosition());
                    }
                    message.addBalloonMessage();
                } catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) {
                    e.printStackTrace();
                }
            });
        }
    });

    packets.registerAction(PacketRemoveItem.class, packet -> {
        if (packet.getSender() != null && packet.getSender().equals(getId())) {
            try {
                getRmi().getServer().removeItem(packet.getSender(), packet.getPlayer(), packet.getItemId(),
                        packet.getItemType());
            } catch (RemoteException ex) {
                ex.printStackTrace();
            }
        } else {
            Item foundItem;

            if ((foundItem = BaseScreen.getSession().findItem(packet.getItemId())) != null) {
                foundItem.activate(BaseScreen.getSession().getPlayer(packet.getPlayer()));
                foundItem.getNode().removeItem();
            }
        }
    });

    packets.registerAction(PacketScoreChanged.class, packet -> {
        if (packet.getSender() != null && packet.getSender().equals(getId())) {
            try {
                getRmi().getServer().changeScore(packet.getSender(), packet.getManipulationType(),
                        packet.getChange());
            } catch (RemoteException ex) {
                ex.printStackTrace();
            }
        } else {
            Score currentScore = BaseScreen.getSession().getScore();

            switch (packet.getManipulationType()) {
            case DECREASE:
                currentScore.decrease(packet.getChange());
                break;
            case INCREASE:
                currentScore.increase(packet.getChange());
                break;
            }
        }
    });

    packets.registerFunc(PacketGetHighscores.class, packet -> {
        java.util.Map<String, Integer> returnMap = new HashMap<>();
        try {
            returnMap = getRmi().getServer().getHighscores(packet.getSender());
        } catch (RemoteException ex) {
            Logger.getLogger(Client.class.getName()).log(Level.SEVERE, null, ex);
        }
        return returnMap;
    });
}

From source file:com.forerunnergames.peril.client.ui.screens.game.play.modes.classic.dialogs.armymovement.AbstractArmyMovementDialog.java

License:Open Source License

protected AbstractArmyMovementDialog(final ClassicModePlayScreenWidgetFactory widgetFactory, final String title,
        final Stage stage, final DialogListener listener)

{
    // @formatter:off
    super(widgetFactory,
            DialogStyle.builder().windowStyle(StyleSettings.ARMY_MOVEMENT_DIALOG_WINDOW_STYLE).modal(false)
                    .movable(true).size(862, 484).position(481, ScreenSettings.REFERENCE_SCREEN_HEIGHT - 164)
                    .title(title).titleHeight(58).messageBox(false).border(28).buttonSize(90, 32).debug(DEBUG)
                    .build(),/*  w  ww. j a v a 2 s .  c  o  m*/
            stage, listener);
    // @formatter:on

    Arguments.checkIsNotNull(widgetFactory, "widgetFactory");
    Arguments.checkIsNotNull(stage, "stage");

    this.widgetFactory = widgetFactory;

    sourceCountryNameLabel = widgetFactory.createArmyMovementDialogCountryNameLabel();
    targetCountryNameLabel = widgetFactory.createArmyMovementDialogCountryNameLabel();

    slider = widgetFactory.createArmyMovementDialogSlider(new ChangeListener() {
        @Override
        public void changed(final ChangeEvent event, final Actor actor) {
            updateCountryArmies();
            updateSubmitability();
        }
    });

    minButton = widgetFactory.createArmyMovementDialogMinButton(new ClickListener(Input.Buttons.LEFT) {
        @Override
        public void clicked(final InputEvent event, final float x, final float y) {
            setSliderToMinValue();
        }
    });

    minusButton = widgetFactory.createArmyMovementDialogMinusButton(new ClickListener(Input.Buttons.LEFT) {
        @Override
        public void clicked(final InputEvent event, final float x, final float y) {
            decrementSlider();
        }
    });

    plusButton = widgetFactory.createArmyMovementDialogPlusButton(new ClickListener(Input.Buttons.LEFT) {
        @Override
        public void clicked(final InputEvent event, final float x, final float y) {
            incrementSlider();
        }
    });

    maxButton = widgetFactory.createArmyMovementDialogMaxButton(new ClickListener(Input.Buttons.LEFT) {
        @Override
        public void clicked(final InputEvent event, final float x, final float y) {
            setSliderToMaxValue();
        }
    });

    sourceCountryStack = new Stack();
    targetCountryStack = new Stack();
    sourceCountryStack.setDebug(DEBUG, true);
    targetCountryStack.setDebug(DEBUG, true);

    final Table sourceCountryStackTable = new Table();
    sourceCountryStackCell = sourceCountryStackTable.add(sourceCountryStack)
            .padRight(SOURCE_COUNTRY_ARROW_WIDTH);
    sourceCountryStackTable.setDebug(DEBUG, true);

    final Table targetCountryStackTable = new Table();
    targetCountryStackCell = targetCountryStackTable.add(targetCountryStack)
            .padLeft(TARGET_COUNTRY_ARROW_WIDTH);
    targetCountryStackTable.setDebug(DEBUG, true);

    final Table sourceCountryTable = new Table();
    sourceCountryTable.add(sourceCountryStackTable);
    sourceCountryTable.setClip(true);
    sourceCountryTable.setDebug(DEBUG, true);

    final Table targetCountryTable = new Table();
    targetCountryTable.add(targetCountryStackTable);
    targetCountryTable.setClip(true);
    targetCountryTable.setDebug(DEBUG, true);

    final Table countryTable = new Table().center();
    countryTable.add(sourceCountryTable).width(COUNTRY_BOX_WIDTH).maxHeight(COUNTRY_BOX_HEIGHT)
            .spaceRight(SOURCE_TARGET_COUNTRY_BOX_SPACING).padLeft(COUNTRY_BOX_INNER_PADDING)
            .padRight(COUNTRY_BOX_INNER_PADDING);
    countryTable.add(targetCountryTable).width(COUNTRY_BOX_WIDTH).maxHeight(COUNTRY_BOX_HEIGHT)
            .spaceLeft(SOURCE_TARGET_COUNTRY_BOX_SPACING).padLeft(COUNTRY_BOX_INNER_PADDING)
            .padRight(COUNTRY_BOX_INNER_PADDING);
    countryTable.setDebug(DEBUG, true);

    final Table sliderTable = new Table();
    sliderTable.add(minButton).width(20).spaceRight(7);
    sliderTable.add(minusButton).width(30).spaceLeft(7).spaceRight(10);
    sliderTable.add(slider).width(382).height(12).spaceLeft(10).spaceRight(10);
    sliderTable.add(plusButton).width(30).spaceLeft(10).spaceRight(7);
    sliderTable.add(maxButton).width(20).spaceLeft(7);
    sliderTable.setDebug(DEBUG, true);

    getContentTable().defaults().space(0).pad(0);
    getContentTable().top();
    getContentTable().row().size(COUNTRY_NAME_BOX_WIDTH, COUNTRY_NAME_BOX_HEIGHT).spaceBottom(1);
    getContentTable().add(sourceCountryNameLabel);
    getContentTable().add(targetCountryNameLabel);
    getContentTable().row().colspan(2).height(COUNTRY_BOX_HEIGHT).spaceTop(1);
    getContentTable().add(countryTable).padLeft(2).padRight(2).padTop(COUNTRY_BOX_INNER_PADDING - 2)
            .padBottom(COUNTRY_BOX_INNER_PADDING);
    getContentTable().row().colspan(2).top().padTop(29);
    getContentTable().add(sliderTable);

    addListener(new InputListener() {
        @Override
        public boolean keyDown(final InputEvent event, final int keycode) {
            if (!isShown())
                return false;

            switch (keycode) {
            case Input.Keys.LEFT: {
                decrementSlider();

                return true;
            }
            case Input.Keys.RIGHT: {
                incrementSlider();

                return true;
            }
            default: {
                return false;
            }
            }
        }
    });
}

From source file:com.forerunnergames.peril.client.ui.screens.game.play.modes.classic.dice.AbstractDie.java

License:Open Source License

protected AbstractDie(final int index, final DieFaceValue defaultFaceValue, final ImageButton button) {
    Arguments.checkIsNotNull(button, "button");
    Arguments.checkIsNotNull(defaultFaceValue, "defaultFaceValue");
    Arguments.checkIsNotNull(button, "button");

    this.index = index;
    this.defaultFaceValue = defaultFaceValue;
    this.button = button;

    // @formatter:off

    registerActionOnTransitionFrom(DieState.ENABLED, DieStateTransition.ON_HOVER_START,
            new DieStateTransitionAction() {
                @Override//from w  w  w . j  av  a 2 s  .  c o  m
                public void onTransition(final DieState toState) {
                    stopSpinning();
                    refreshAssets(toState);
                }
            });

    registerActionOnTransitionFrom(DieState.DISABLED, DieStateTransition.ON_HOVER_START,
            new DieStateTransitionAction() {
                @Override
                public void onTransition(final DieState toState) {
                    stopSpinning();
                    refreshAssets(toState);
                }
            });

    registerActionOnTransitionFrom(DieState.ENABLING, DieStateTransition.ON_HOVER_END,
            new DieStateTransitionAction() {
                @Override
                public void onTransition(final DieState toState) {
                    startSpinning();
                    refreshAssets(toState);
                }
            });

    registerActionOnTransitionFrom(DieState.DISABLING, DieStateTransition.ON_HOVER_END,
            new DieStateTransitionAction() {
                @Override
                public void onTransition(final DieState toState) {
                    startSpinning();
                    refreshAssets(toState);
                }
            });

    registerActionOnTransitionFrom(DieState.ENABLING, DieStateTransition.ON_CLICK,
            new DieStateTransitionAction() {
                @Override
                public void onTransition(final DieState toState) {
                    enable();
                }
            });

    registerActionOnTransitionFrom(DieState.DISABLING, DieStateTransition.ON_CLICK,
            new DieStateTransitionAction() {
                @Override
                public void onTransition(final DieState toState) {
                    disable();
                }
            });

    // @formatter:on

    button.addListener(new ClickListener(Input.Buttons.LEFT) {
        @Override
        public void enter(final InputEvent event, final float x, final float y, final int pointer,
                final Actor fromActor) {
            super.enter(event, x, y, pointer, fromActor);

            currentState = currentState.transition(DieStateTransition.ON_HOVER_START, transitionActionsTable);
        }

        @Override
        public void exit(final InputEvent event, final float x, final float y, final int pointer,
                final Actor toActor) {
            super.exit(event, x, y, pointer, toActor);

            currentState = currentState.transition(DieStateTransition.ON_HOVER_END, transitionActionsTable);
        }

        @Override
        public void clicked(final InputEvent event, final float x, final float y) {
            currentState = currentState.transition(DieStateTransition.ON_CLICK, transitionActionsTable);
        }
    });

    resetAll();
}

From source file:com.forerunnergames.peril.client.ui.screens.game.play.modes.classic.phasehandlers.ReinforcementDialog.java

License:Open Source License

public ReinforcementDialog(final ClassicModePlayScreenWidgetFactory widgetFactory, final Stage stage,
        final PersonBox personBox, final CancellableDialogListener listener)

{
    // @formatter:off
    super(widgetFactory,
            DialogStyle.builder().modal(false).windowStyle(StyleSettings.REINFORCEMENT_DIALOG_WINDOW_STYLE)
                    .buttonTextPaddingVertical(0).buttonTextPaddingHorizontal(10).border(10).messageBox(false)
                    .debug(DEBUG).build(),
            stage, listener);//  ww w  .  ja  v a  2s  . c o  m
    // @formatter:on

    Arguments.checkIsNotNull(widgetFactory, "widgetFactory");
    Arguments.checkIsNotNull(stage, "stage");
    Arguments.checkIsNotNull(personBox, "personBox");

    this.widgetFactory = widgetFactory;
    this.stage = stage;
    this.personBox = personBox;

    slider = widgetFactory.createArmyMovementDialogSlider(new ChangeListener() {
        @Override
        public void changed(final ChangeEvent event, final Actor actor) {
            updateArmies();
            updateSubmitability();
        }
    });

    minButton = widgetFactory.createArmyMovementDialogMinButton(new ClickListener(Input.Buttons.LEFT) {
        @Override
        public void clicked(final InputEvent event, final float x, final float y) {
            setSliderToMinValue();
        }
    });

    minusButton = widgetFactory.createArmyMovementDialogMinusButton(new ClickListener(Input.Buttons.LEFT) {
        @Override
        public void clicked(final InputEvent event, final float x, final float y) {
            decrementSlider();
        }
    });

    plusButton = widgetFactory.createArmyMovementDialogPlusButton(new ClickListener(Input.Buttons.LEFT) {
        @Override
        public void clicked(final InputEvent event, final float x, final float y) {
            incrementSlider();
        }
    });

    maxButton = widgetFactory.createArmyMovementDialogMaxButton(new ClickListener(Input.Buttons.LEFT) {
        @Override
        public void clicked(final InputEvent event, final float x, final float y) {
            setSliderToMaxValue();
        }
    });

    final Table sliderTable = new Table();
    sliderTable.add(minButton).width(20).spaceRight(7);
    sliderTable.add(minusButton).width(30).spaceLeft(7).spaceRight(10);
    sliderTable.add(slider).width(191).height(12).spaceLeft(10).spaceRight(10);
    sliderTable.add(plusButton).width(30).spaceLeft(10).spaceRight(7);
    sliderTable.add(maxButton).width(20).spaceLeft(7);
    sliderTable.setDebug(DEBUG, true);

    getContentTable().defaults().space(0).pad(0);
    getContentTable().top();
    getContentTable().add(sliderTable).padBottom(10);

    addListener(new InputListener() {
        @Override
        public boolean keyDown(final InputEvent event, final int keycode) {
            if (!isShown())
                return false;

            switch (keycode) {
            case Input.Keys.LEFT: {
                decrementSlider();

                return true;
            }
            case Input.Keys.RIGHT: {
                incrementSlider();

                return true;
            }
            default: {
                return false;
            }
            }
        }
    });
}

From source file:com.forerunnergames.peril.client.ui.screens.menus.main.MainMenuScreen.java

License:Open Source License

public MainMenuScreen(final MenuScreenWidgetFactory widgetFactory, final ScreenChanger screenChanger,
        final ScreenSize screenSize, final MouseInput mouseInput, final Batch batch,
        final MBassador<Event> eventBus) {
    super(widgetFactory, screenChanger, screenSize, mouseInput, batch, eventBus);

    quitDialog = createQuitDialog("Are you sure you want to quit Peril?",
            new CancellableDialogListenerAdapter() {
                @Override/*from  w  w  w .j a v  a  2  s  . c om*/
                public void onSubmit() {
                    Gdx.app.exit();
                }
            });

    addTitle("MAIN MENU", Align.left, 60);

    addMenuChoiceSpacer(42);

    addMenuChoice("PLAY", new ClickListener(Input.Buttons.LEFT) {
        @Override
        public void clicked(final InputEvent event, final float x, final float y) {
            toScreen(ScreenId.GAME_MODES_MENU);
        }
    });

    addMenuChoiceSpacer(10);

    addMenuChoice("SETTINGS", new ClickListener(Input.Buttons.LEFT) {
        @Override
        public void clicked(final InputEvent event, final float x, final float y) {
            // TODO Implement
        }
    });

    addMenuChoiceSpacer(10);

    addMenuChoice("QUIT", new ClickListener(Input.Buttons.LEFT) {
        @Override
        public void clicked(final InputEvent event, final float x, final float y) {
            quitDialog.show();
        }
    });
}

From source file:com.forerunnergames.peril.client.ui.screens.menus.modes.classic.ClassicGameModeMenuScreen.java

License:Open Source License

public ClassicGameModeMenuScreen(final MenuScreenWidgetFactory widgetFactory, final ScreenChanger screenChanger,
        final ScreenSize screenSize, final MouseInput mouseInput, final Batch batch,
        final MBassador<Event> eventBus) {
    super(widgetFactory, screenChanger, screenSize, mouseInput, batch, eventBus);

    addTitle("CLASSIC MODE", Align.left, 60);

    addMenuChoiceSpacer(42);//from  www.  ja v a  2 s .com

    addMenuChoice("CREATE GAME", new ClickListener(Input.Buttons.LEFT) {
        @Override
        public void clicked(final InputEvent event, final float x, final float y) {
            toScreen(ScreenId.CLASSIC_GAME_MODE_CREATE_GAME_MENU);
        }
    });

    addMenuChoiceSpacer(10);

    addMenuChoice("JOIN GAME", new ClickListener(Input.Buttons.LEFT) {
        @Override
        public void clicked(final InputEvent event, final float x, final float y) {
            toScreen(ScreenId.CLASSIC_GAME_MODE_JOIN_GAME_MENU);
        }
    });

    addBackButton(new ClickListener(Input.Buttons.LEFT) {
        @Override
        public void clicked(final InputEvent event, final float x, final float y) {
            toScreen(ScreenId.GAME_MODES_MENU);
        }
    });
}

From source file:com.forerunnergames.peril.client.ui.screens.menus.modes.classic.creategame.ClassicGameModeCreateGameMenuScreen.java

License:Open Source License

public ClassicGameModeCreateGameMenuScreen(final MenuScreenWidgetFactory widgetFactory,
        final ScreenChanger screenChanger, final ScreenSize screenSize, final MouseInput mouseInput,
        final Batch batch, final CountryCounter countryCounter, final MBassador<Event> eventBus)

{
    super(widgetFactory, screenChanger, screenSize, mouseInput, batch, eventBus);

    Arguments.checkIsNotNull(widgetFactory, "widgetFactory");
    Arguments.checkIsNotNull(countryCounter, "countryCounter");

    this.widgetFactory = widgetFactory;
    this.countryCounter = countryCounter;

    errorDialog = createErrorDialog();//ww  w.j a  v  a2s.  c  om

    addTitle(TITLE_TEXT, Align.bottomLeft, 40);
    addSubTitle(SUBTITLE_TEXT);

    playerNameTextField = widgetFactory.createPlayerNameTextField();
    clanAcronymTextField = widgetFactory.createClanAcronymTextField();
    serverNameTextField = widgetFactory.createServerNameTextField();

    clanAcronymCheckBox = widgetFactory.createClanAcronymCheckBox(new ChangeListener() {
        @Override
        public void changed(final ChangeEvent event, final Actor actor) {
            clanAcronymTextField.setText(clanAcronymCheckBox.isChecked() ? clanAcronymTextField.getText() : "");
            clanAcronymTextField.setDisabled(!clanAcronymCheckBox.isChecked());
        }
    });

    clanAcronymCheckBox.setChecked(!clanAcronymTextField.getText().isEmpty());
    clanAcronymTextField.setDisabled(!clanAcronymCheckBox.isChecked());

    // @formatter:off
    humanPlayerLimitLabel = widgetFactory
            .createPlayerLimitLabel(String.valueOf(InputSettings.INITIAL_CLASSIC_MODE_HUMAN_PLAYER_LIMIT));
    aiPlayerLimitLabel = widgetFactory
            .createPlayerLimitLabel(String.valueOf(InputSettings.INITIAL_CLASSIC_MODE_AI_PLAYER_LIMIT));
    playMapNameLabel = widgetFactory.createPlayMapNameLabel();
    totalCountryCount = calculateCurrentPlayMapTotalCountryCount();
    // @formatter:on

    customizeHumanPlayersButton = widgetFactory
            .createCustomizePlayersButton(new ClickListener(Input.Buttons.LEFT) {
                @Override
                public void clicked(final InputEvent event, final float x, final float y) {
                    // TODO Show Players Dialog.

                    updateHumanPlayerLimit();
                    updateWinPercentSelectBoxItems();
                }
            });

    customizeAiPlayersButton = widgetFactory
            .createCustomizePlayersButton(new ClickListener(Input.Buttons.LEFT) {
                @Override
                public void clicked(final InputEvent event, final float x, final float y) {
                    // TODO Show Players Dialog.

                    updateAiPlayerLimit();
                    updateWinPercentSelectBoxItems();
                }
            });

    customizePlayMapButton = widgetFactory.createCustomizePlayMapButton(new ClickListener(Input.Buttons.LEFT) {
        @Override
        public void clicked(final InputEvent event, final float x, final float y) {
            // TODO Show Play Map Dialog.

            // TODO Add refresh button to Play Map Dialog to re-load play maps.
            playMaps = loadPlayMaps();

            currentPlayMap = nextPlayMap();
            playMapNameLabel.setText(currentPlayMap.getName());
            totalCountryCount = calculateCurrentPlayMapTotalCountryCount();
            updateWinPercentSelectBoxItems();
        }
    });

    // @formatter:off
    spectatorLimitSelectBox = widgetFactory.createSpectatorsSelectBox();
    final Array<Integer> spectatorLimits = new Array<>(
            ClassicGameRules.MAX_SPECTATORS - ClassicGameRules.MIN_SPECTATORS + 1);
    for (int i = ClassicGameRules.MIN_SPECTATORS; i <= ClassicGameRules.MAX_SPECTATORS; ++i) {
        spectatorLimits.add(i);
    }
    spectatorLimitSelectBox.setItems(spectatorLimits);
    spectatorLimitSelectBox.setSelected(InputSettings.INITIAL_SPECTATOR_LIMIT);
    // @formatter:off

    // @formatter:on
    initialCountryAssignmentSelectBox = widgetFactory.createInitialCountryAssignmentSelectBox();
    final Array<String> initialCountryAssignments = new Array<>(InitialCountryAssignment.count());
    for (final InitialCountryAssignment initialCountryAssignment : InitialCountryAssignment.values()) {
        initialCountryAssignments.add(Strings.toProperCase(initialCountryAssignment.name()));
    }
    initialCountryAssignmentSelectBox.setItems(initialCountryAssignments);
    initialCountryAssignmentSelectBox
            .setSelected(Strings.toProperCase(InputSettings.INITIAL_CLASSIC_MODE_COUNTRY_ASSIGNMENT.name()));
    // @formatter:on

    winPercentSelectBox = widgetFactory.createWinPercentSelectBox();
    updateWinPercentSelectBoxItems();
    selectInitialWinPercentItem();

    // @formatter:off
    playerSettingsSectionTitleLabel = widgetFactory.createPlayerSettingsSectionTitleLabel();
    playerNameSettingLabel = widgetFactory.createPlayerNameSettingLabel();
    clanTagSettingLabel = widgetFactory.createClanTagSettingLabel();
    gameSettingsSectionTitleLabel = widgetFactory.createGameSettingsSectionTitleLabel();
    serverNameSettingLabel = widgetFactory.createMenuSettingLabel(SERVER_NAME_SETTING_LABEL_TEXT);
    humanPlayerLimitSettingLabel = widgetFactory.createMenuSettingLabel(HUMAN_PLAYERS_SETTING_LABEL_TEXT);
    aiPlayerLimitSettingLabel = widgetFactory.createMenuSettingLabel(AI_PLAYERS_SETTING_LABEL_TEXT);
    spectatorLimitSettingLabel = widgetFactory.createMenuSettingLabel(SPECTATORS_SETTING_SETTING_LABEL_TEXT);
    playMapSettingLabel = widgetFactory.createMenuSettingLabel(PLAY_MAP_SETTING_LABEL_TEXT);
    winPercentSettingLabel = widgetFactory.createMenuSettingLabel(WIN_PERCENT_SETTING_LABEL_TEXT);
    initialCountryAssignmentSettingLabel = widgetFactory
            .createMenuSettingLabel(INITIAL_COUNTRY_ASSIGNMENT_SETTING_LABEL_TEXT);
    // @formatter:on

    final VerticalGroup verticalGroup = new VerticalGroup();
    verticalGroup.align(Align.topLeft);

    final Table playerSettingsTable = new Table().top().left();
    playerSettingsTable.add().height(23);
    playerSettingsTable.row();
    playerSettingsTable.add(playerSettingsSectionTitleLabel).size(540, 40).fill().padLeft(60).left();

    playerSettingsTable.row();

    final Table playerNameTable = new Table();
    playerNameTable.add(playerNameSettingLabel).size(150, 40).fill().padLeft(90).left().spaceRight(10);
    playerNameTable.add(playerNameTextField).size(270, 28).fill().left().spaceLeft(10);
    playerSettingsTable.add(playerNameTable).left();

    playerSettingsTable.row();

    final Table clanTable = new Table();
    clanTable.add(clanTagSettingLabel).size(150, 40).fill().padLeft(90).left().spaceRight(10);
    clanTable.add(clanAcronymCheckBox).size(20, 20).fill().left().spaceLeft(10).spaceRight(8);
    clanTable.add(clanAcronymTextField).size(80, 28).fill().left().spaceLeft(8);
    playerSettingsTable.add(clanTable).left();

    verticalGroup.addActor(playerSettingsTable);

    final Table gameSettingsTable = new Table().top().left();
    gameSettingsTable.row();
    gameSettingsTable.add().height(20);
    gameSettingsTable.row();
    gameSettingsTable.add(gameSettingsSectionTitleLabel).size(540, 40).fill().padLeft(60).left();

    gameSettingsTable.row();

    final Table serverNameTable = new Table();
    serverNameTable.add(serverNameSettingLabel).size(150, 40).fill().padLeft(90).left().spaceRight(10);
    serverNameTable.add(serverNameTextField).size(270, 28).fill().left().spaceLeft(10);
    gameSettingsTable.add(serverNameTable).left();

    gameSettingsTable.row();

    final Table playMapTable = new Table();
    playMapTable.add(playMapSettingLabel).size(150, 40).fill().padLeft(90).left().spaceRight(10);
    playMapTable.add(playMapNameLabel).size(238, 28).fill().left().spaceLeft(10).spaceRight(4);
    playMapTable.add(customizePlayMapButton).size(28, 28).fill().left().spaceLeft(4);
    gameSettingsTable.add(playMapTable).left();

    gameSettingsTable.row();

    final Table humanPlayersTable = new Table();
    humanPlayersTable.add(humanPlayerLimitSettingLabel).size(150, 40).fill().padLeft(90).left().spaceRight(10);
    humanPlayersTable.add(humanPlayerLimitLabel).size(76, 28).fill().left().spaceLeft(10).spaceRight(4);
    humanPlayersTable.add(customizeHumanPlayersButton).size(28, 28).fill().left().spaceLeft(4);
    gameSettingsTable.add(humanPlayersTable).left();

    gameSettingsTable.row();

    final Table aiPlayersTable = new Table();
    aiPlayersTable.add(aiPlayerLimitSettingLabel).size(150, 40).fill().padLeft(90).left().spaceRight(10);
    aiPlayersTable.add(aiPlayerLimitLabel).size(76, 28).fill().left().spaceLeft(10).spaceRight(4);
    aiPlayersTable.add(customizeAiPlayersButton).size(28, 28).fill().left().spaceLeft(4);
    gameSettingsTable.add(aiPlayersTable).left();

    gameSettingsTable.row();

    final Table spectatorsTable = new Table();
    spectatorsTable.add(spectatorLimitSettingLabel).size(150, 40).fill().padLeft(90).left().spaceRight(10);
    spectatorsTable.add(spectatorLimitSelectBox).size(108, 28).fill().left().spaceLeft(10);
    gameSettingsTable.add(spectatorsTable).left();

    gameSettingsTable.row();

    final Table winPercentTable = new Table();
    winPercentTable.add(winPercentSettingLabel).size(150, 40).fill().padLeft(90).left().spaceRight(10);
    winPercentTable.add(winPercentSelectBox).size(108, 28).fill().left().spaceLeft(10);
    gameSettingsTable.add(winPercentTable).left();

    gameSettingsTable.row();

    // @formatter:off
    final Table initialCountryAssignmentTable = new Table();
    initialCountryAssignmentTable.add(initialCountryAssignmentSettingLabel).size(150, 40).fill().padLeft(90)
            .left().spaceRight(10);
    initialCountryAssignmentTable.add(initialCountryAssignmentSelectBox).size(108, 28).fill().left()
            .spaceLeft(10);
    gameSettingsTable.add(initialCountryAssignmentTable).left();
    // @formatter:on

    verticalGroup.addActor(gameSettingsTable);

    addContent(verticalGroup);

    addBackButton(new ClickListener(Input.Buttons.LEFT) {
        @Override
        public void clicked(final InputEvent event, final float x, final float y) {
            contractMenuBar(new Runnable() {
                @Override
                public void run() {
                    toScreen(ScreenId.CLASSIC_GAME_MODE_MENU);
                }
            });
        }
    });

    forwardButton = addForwardButton(FORWARD_BUTTON_TEXT, new ChangeListener() {
        @Override
        public void changed(final ChangeEvent event, final Actor actor) {
            if (currentPlayMap.equals(PlayMapMetadata.NULL)) {
                errorDialog.setMessage(new DefaultMessage("Please select a valid map before continuing."));
                errorDialog.show();
                return;
            }

            final String playerName = playerNameTextField.getText();

            if (!GameSettings.isValidPlayerNameWithoutClanTag(playerName)) {
                errorDialog.setMessage(new DefaultMessage(
                        Strings.format("Invalid player name: \'{}\'\n\nValid player name rules:\n\n{}",
                                playerName, GameSettings.VALID_PLAYER_NAME_DESCRIPTION)));
                errorDialog.show();
                return;
            }

            final String clanAcronym = clanAcronymTextField.getText();

            if (!clanAcronymTextField.isDisabled() && !GameSettings.isValidHumanClanAcronym(clanAcronym)) {
                errorDialog.setMessage(new DefaultMessage(
                        Strings.format("Invalid clan tag: \'{}\'\n\nValid clan tag rules:\n\n{}", clanAcronym,
                                GameSettings.VALID_CLAN_ACRONYM_DESCRIPTION)));
                errorDialog.show();
                return;
            }

            final String playerNameWithOptionalClanTag = GameSettings
                    .getHumanPlayerNameWithOptionalClanTag(playerName, clanAcronym);
            final int humanPlayerLimit = getHumanPlayerLimit();
            final int aiPlayerLimit = getAiPlayerLimit();
            final int spectatorLimit = getSpectatorLimit();
            final int winPercent = winPercentSelectBox.getSelected();
            final InitialCountryAssignment initialCountryAssignment = InitialCountryAssignment
                    .valueOf(Strings.toCase(initialCountryAssignmentSelectBox.getSelected(), LetterCase.UPPER));
            final PersonLimits personLimits = PersonLimits.builder().humanPlayers(humanPlayerLimit)
                    .aiPlayers(aiPlayerLimit).spectators(spectatorLimit).build();
            final GameRules gameRules = GameRulesFactory.create(GameMode.CLASSIC, personLimits, winPercent,
                    totalCountryCount, initialCountryAssignment);
            final GameConfiguration gameConfig = new DefaultGameConfiguration(GameMode.CLASSIC, currentPlayMap,
                    gameRules);
            final String serverName = serverNameTextField.getText();

            if (!NetworkSettings.isValidServerName(serverName)) {
                errorDialog.setMessage(new DefaultMessage(
                        Strings.format("Invalid server name: \'{}\'\n\nValid server name rules:\n\n{}",
                                serverName, NetworkSettings.VALID_SERVER_NAME_DESCRIPTION)));
                errorDialog.show();
                return;
            }

            toScreen(ScreenId.MENU_TO_PLAY_LOADING);

            // The menu-to-play loading screen is now active & can therefore receive events.

            publishAsync(new CreateGameEvent(serverName, gameConfig, playerNameWithOptionalClanTag));
        }
    });
}

From source file:com.forerunnergames.peril.client.ui.screens.menus.modes.classic.joingame.ClassicGameModeJoinGameMenuScreen.java

License:Open Source License

public ClassicGameModeJoinGameMenuScreen(final MenuScreenWidgetFactory widgetFactory,
        final ScreenChanger screenChanger, final ScreenSize screenSize, final MouseInput mouseInput,
        final Batch batch, final MBassador<Event> eventBus) {
    super(widgetFactory, screenChanger, screenSize, mouseInput, batch, eventBus);

    Arguments.checkIsNotNull(widgetFactory, "widgetFactory");

    this.widgetFactory = widgetFactory;

    errorDialog = createErrorDialog();/*from www .ja  v a2s  .c  o m*/

    addTitle("JOIN GAME", Align.bottomLeft, 40);
    addSubTitle("CLASSIC MODE");

    playerNameTextField = widgetFactory.createPlayerNameTextField();
    clanAcronymTextField = widgetFactory.createClanAcronymTextField();
    serverAddressTextField = widgetFactory.createServerAddressTextField();

    clanAcronymCheckBox = widgetFactory.createClanAcronymCheckBox(new ChangeListener() {
        @Override
        public void changed(final ChangeEvent event, final Actor actor) {
            clanAcronymTextField.setText(clanAcronymCheckBox.isChecked() ? clanAcronymTextField.getText() : "");
            clanAcronymTextField.setDisabled(!clanAcronymCheckBox.isChecked());
        }
    });

    clanAcronymCheckBox.setChecked(!clanAcronymTextField.getText().isEmpty());
    clanAcronymTextField.setDisabled(!clanAcronymCheckBox.isChecked());

    playerSettingsSectionTitleLabel = widgetFactory.createPlayerSettingsSectionTitleLabel();
    playerNameSettingLabel = widgetFactory.createPlayerNameSettingLabel();
    clanTagSettingLabel = widgetFactory.createClanTagSettingLabel();
    gameSettingsSectionTitleLabel = widgetFactory.createGameSettingsSectionTitleLabel();
    serverAddressSettingLabel = widgetFactory.createMenuSettingLabel("Server Address");

    final VerticalGroup verticalGroup = new VerticalGroup();
    verticalGroup.align(Align.topLeft);

    // @formatter:off
    final Table playerSettingsTable = new Table().top().left();
    playerSettingsTable.add().height(23).colspan(5);
    playerSettingsTable.row();
    playerSettingsTable.add(playerSettingsSectionTitleLabel).size(538, 42).fill().padLeft(60).padRight(60)
            .left().colspan(5);
    playerSettingsTable.row();
    playerSettingsTable.add(playerNameSettingLabel).size(150, 40).fill().padLeft(90).left().spaceRight(10);
    playerSettingsTable.add(playerNameTextField).size(204, 28).fill().left().colspan(3).spaceLeft(10);
    playerSettingsTable.add().expandX().fill();
    playerSettingsTable.row();
    playerSettingsTable.add(clanTagSettingLabel).size(150, 40).fill().padLeft(90).left().spaceRight(10);
    playerSettingsTable.add(clanAcronymCheckBox).size(18, 18).fill().left().spaceLeft(10).spaceRight(10);
    playerSettingsTable.add(clanAcronymTextField).size(74, 28).fill().left().spaceLeft(10);
    playerSettingsTable.add().width(102).fill();
    playerSettingsTable.add().expandX().fill();
    verticalGroup.addActor(playerSettingsTable);
    // @formatter:on

    // @formatter:off
    final Table gameSettingsTable = new Table().top().left();
    gameSettingsTable.row();
    gameSettingsTable.add().height(18).colspan(3);
    gameSettingsTable.row();
    gameSettingsTable.add(gameSettingsSectionTitleLabel).size(538, 42).fill().padLeft(60).padRight(60).left()
            .colspan(3);
    gameSettingsTable.row();
    gameSettingsTable.add(serverAddressSettingLabel).size(150, 40).fill().padLeft(90).left().spaceRight(10);
    gameSettingsTable.add(serverAddressTextField).size(204, 28).fill().left().spaceLeft(10);
    gameSettingsTable.add().expandX().fill();
    verticalGroup.addActor(gameSettingsTable);
    // @formatter:on

    addContent(verticalGroup);

    addBackButton(new ClickListener(Input.Buttons.LEFT) {
        @Override
        public void clicked(final InputEvent event, final float x, final float y) {
            contractMenuBar(new Runnable() {
                @Override
                public void run() {
                    toScreen(ScreenId.CLASSIC_GAME_MODE_MENU);
                }
            });
        }
    });

    forwardButton = addForwardButton("JOIN GAME", new ChangeListener() {
        @Override
        public void changed(final ChangeEvent event, final Actor actor) {
            final String playerName = playerNameTextField.getText();

            if (!GameSettings.isValidPlayerNameWithoutClanTag(playerName)) {
                errorDialog.setMessage(new DefaultMessage(
                        Strings.format("Invalid player name: \'{}\'\n\nValid player name rules:\n\n{}",
                                playerName, GameSettings.VALID_PLAYER_NAME_DESCRIPTION)));
                errorDialog.show();
                return;
            }

            final String clanAcronym = clanAcronymTextField.getText();

            if (!clanAcronymTextField.isDisabled() && !GameSettings.isValidHumanClanAcronym(clanAcronym)) {
                errorDialog.setMessage(new DefaultMessage(
                        Strings.format("Invalid clan tag: \'{}\'\n\nValid clan tag rules:\n\n{}", clanAcronym,
                                GameSettings.VALID_CLAN_ACRONYM_DESCRIPTION)));
                errorDialog.show();
                return;
            }

            final String playerNameWithOptionalClanTag = GameSettings
                    .getHumanPlayerNameWithOptionalClanTag(playerName, clanAcronym);
            final String serverAddress = serverAddressTextField.getText();

            if (!NetworkSettings.isValidServerAddress(serverAddress)) {
                errorDialog.setMessage(new DefaultMessage(
                        Strings.format("Invalid server address: \'{}\'\n\nValid server address rules:\n\n{}",
                                serverAddress, NetworkSettings.VALID_SERVER_ADDRESS_DESCRIPTION)));
                errorDialog.show();
                return;
            }

            toScreen(ScreenId.MENU_TO_PLAY_LOADING);

            // The menu-to-play loading screen is now active & can therefore receive events.

            publishAsync(new JoinGameEvent(playerNameWithOptionalClanTag, serverAddress));
        }
    });
}

From source file:com.forerunnergames.peril.client.ui.screens.menus.modes.GameModesMenuScreen.java

License:Open Source License

public GameModesMenuScreen(final MenuScreenWidgetFactory widgetFactory, final ScreenChanger screenChanger,
        final ScreenSize screenSize, final MouseInput mouseInput, final Batch batch,
        final MBassador<Event> eventBus) {
    super(widgetFactory, screenChanger, screenSize, mouseInput, batch, eventBus);

    addTitle("GAME MODES", Align.left, 60);

    addMenuChoiceSpacer(42);/*w w w  .  ja v  a  2 s  .c o  m*/

    addMenuChoice("CLASSIC", new ClickListener(Input.Buttons.LEFT) {
        @Override
        public void clicked(final InputEvent event, final float x, final float y) {
            toScreen(ScreenId.CLASSIC_GAME_MODE_MENU);
        }
    });

    addMenuChoiceSpacer(10);

    addMenuChoice("PERIL", new ClickListener(Input.Buttons.LEFT) {
        @Override
        public void clicked(final InputEvent event, final float x, final float y) {
            // TODO Production: Go to PerilGameModeMenuScreen.
            // toScreen (ScreenId.PERIL_GAME_MODE_MENU);
        }
    });

    addBackButton(new ClickListener(Input.Buttons.LEFT) {
        @Override
        public void clicked(final InputEvent event, final float x, final float y) {
            toScreen(ScreenId.MAIN_MENU);
        }
    });
}

From source file:com.forerunnergames.peril.client.ui.screens.menus.modes.peril.PerilGameModeMenuScreen.java

License:Open Source License

public PerilGameModeMenuScreen(final MenuScreenWidgetFactory widgetFactory, final ScreenChanger screenChanger,
        final ScreenSize screenSize, final MouseInput mouseInput, final Batch batch,
        final MBassador<Event> eventBus) {
    super(widgetFactory, screenChanger, screenSize, mouseInput, batch, eventBus);

    addTitle("PERIL MODE", Align.left, 60);

    addMenuChoiceSpacer(42);/*from w ww.jav a2 s  .  c  o  m*/

    addMenuChoice("CREATE GAME", new ClickListener(Input.Buttons.LEFT) {
        @Override
        public void clicked(final InputEvent event, final float x, final float y) {
            toScreen(ScreenId.PLAY_PERIL);
        }
    });

    addMenuChoiceSpacer(10);

    addMenuChoice("JOIN GAME", new ClickListener(Input.Buttons.LEFT) {
        @Override
        public void clicked(final InputEvent event, final float x, final float y) {
            toScreen(ScreenId.PLAY_PERIL);
        }
    });

    addBackButton(new ClickListener(Input.Buttons.LEFT) {
        @Override
        public void clicked(final InputEvent event, final float x, final float y) {
            toScreen(ScreenId.GAME_MODES_MENU);
        }
    });
}