package Roguelike.Levels.TownEvents; import Roguelike.Global; import Roguelike.Screens.GameScreen; import Roguelike.UI.ButtonKeyboardHelper; import Roguelike.UI.Seperator; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.scenes.scene2d.InputEvent; import com.badlogic.gdx.scenes.scene2d.ui.Label; import com.badlogic.gdx.scenes.scene2d.ui.Skin; import com.badlogic.gdx.scenes.scene2d.ui.Table; import com.badlogic.gdx.scenes.scene2d.ui.TextButton; import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; import com.badlogic.gdx.utils.Align; import com.badlogic.gdx.utils.ObjectMap; import com.badlogic.gdx.utils.XmlReader; import java.util.HashMap; /** * Created by Philip on 09-Feb-16. */ public class TextTownEvent extends AbstractTownEvent { String text; String reward; @Override public void evaluate( ObjectMap<String, String> flags ) { Skin skin = Global.loadSkin(); Table message = new Table(); message.defaults().pad( 10 ); Label title = new Label("Event", skin, "title"); message.add( title ).expandX().left(); message.row(); message.add( new Seperator( skin ) ).expandX().fillX(); message.row(); Table messageBody = new Table(); Label messageText = new Label( text, skin); messageText.setWrap( true ); messageBody.add( messageText ).expand().fillX(); messageBody.row(); if (reward != null) { Label rewardText = new Label( reward, skin ); rewardText.setColor( Color.GOLD ); rewardText.setWrap( true ); rewardText.setAlignment( Align.center ); messageBody.add( rewardText ).expand().fillX(); messageBody.row(); } message.add( messageBody ).expand().fill(); message.row(); message.add( new Seperator( skin ) ).expandX().fillX(); message.row(); TextButton continueButton = new TextButton( "Continue", skin ); continueButton.addListener( new ClickListener( ) { public void clicked( InputEvent event, float x, float y ) { GameScreen.Instance.clearContextMenu( true ); } } ); message.add( continueButton ).colspan( 2 ).expandX().fillX(); message.row(); GameScreen.Instance.queueContextMenu( message, new ButtonKeyboardHelper( continueButton ) ); } @Override public void parse( XmlReader.Element xml ) { text = xml.getText(); reward = xml.getAttribute( "RewardMessage", null ); } }