package net.fe; import java.util.List; import net.fe.fightStage.FightStage; import org.lwjgl.input.Keyboard; import org.newdawn.slick.Color; import chu.engine.Entity; import chu.engine.Game; import chu.engine.KeyboardEvent; import chu.engine.anim.AudioPlayer; import chu.engine.anim.Renderer; public abstract class ConfirmationMessage extends Entity{ private boolean yesHover; private float[] repeatTimers = new float[4]; public ConfirmationMessage() { super(190, 140); renderDepth = 0.001f; yesHover = false; } public void beginStep(){ List<KeyboardEvent> keys = Game.getKeys(); if (Keyboard.isKeyDown(Keyboard.KEY_LEFT) && repeatTimers[2] == 0) { repeatTimers[2] = 0.12f; yesHover = !yesHover; AudioPlayer.playAudio("cursor2", 1, 1); } if (Keyboard.isKeyDown(Keyboard.KEY_RIGHT) && repeatTimers[3] == 0) { repeatTimers[3] = 0.12f; yesHover = !yesHover; AudioPlayer.playAudio("cursor2", 1, 1); } for(KeyboardEvent ke : keys) { if(ke.state) { if(ke.key == Keyboard.KEY_RETURN || ke.key == Keyboard.KEY_Z) { AudioPlayer.playAudio("select", 1, 1); if(yesHover) confirm(); else cancel(); destroy(); } if(ke.key == Keyboard.KEY_X){ AudioPlayer.playAudio("cancel", 1, 1); cancel(); destroy(); } } } for(int i=0; i<repeatTimers.length; i++) { if(repeatTimers[i] > 0) { repeatTimers[i] -= Game.getDeltaSeconds(); if(repeatTimers[i] < 0) repeatTimers[i] = 0; } } } public void render(){ Renderer.drawRectangle(0, 0, 480, 320, renderDepth, new Color(0,0,0,0.5f)); Renderer.drawBorderedRectangle(x, y, x+100, y+40, renderDepth, FightStage.NEUTRAL, FightStage.BORDER_LIGHT, FightStage.BORDER_DARK); Renderer.drawString("default_med", "Are you sure?", x+2, y+2, renderDepth); if(yesHover) Renderer.setColor(Color.green); Renderer.drawString("default_med", "YES", x+5, y+20, renderDepth); if(!yesHover) Renderer.setColor(Color.green); else Renderer.setColor(null); Renderer.drawString("default_med", "NO", x+55, y+20, renderDepth); Renderer.setColor(null); } public abstract void confirm(); public void cancel(){ } }