feat: End
This commit is contained in:
@@ -71,6 +71,11 @@ public class RoomChangeEventHandler extends AbstractEventHandler<RoomChangeEvent
|
|||||||
eventManager.emitEvent(new SendSocketMessageEvent(new MovePlayerRoom(newRoom.getId(), oldCords, playerCords)));
|
eventManager.emitEvent(new SendSocketMessageEvent(new MovePlayerRoom(newRoom.getId(), oldCords, playerCords)));
|
||||||
|
|
||||||
gameState.setCurrentRoom(newRoom);
|
gameState.setCurrentRoom(newRoom);
|
||||||
|
if (newRoom.isEnd()) {
|
||||||
|
cz.jzitnik.client.game.setup.scenes.WinScene winScene = new cz.jzitnik.client.game.setup.scenes.WinScene();
|
||||||
|
gameState.setScreen(winScene);
|
||||||
|
winScene.fullRender();
|
||||||
|
}
|
||||||
scheduler.schedule(() -> roomTaskScheduler.setupNewSchedulers(newRoom), 200, TimeUnit.MILLISECONDS);
|
scheduler.schedule(() -> roomTaskScheduler.setupNewSchedulers(newRoom), 200, TimeUnit.MILLISECONDS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,6 +37,9 @@ public class GameRoom {
|
|||||||
@JsonProperty("requirement")
|
@JsonProperty("requirement")
|
||||||
private Requirement requirement;
|
private Requirement requirement;
|
||||||
|
|
||||||
|
@JsonProperty("end")
|
||||||
|
private boolean end;
|
||||||
|
|
||||||
private GameRoom left;
|
private GameRoom left;
|
||||||
private GameRoom right;
|
private GameRoom right;
|
||||||
private GameRoom up;
|
private GameRoom up;
|
||||||
|
|||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package cz.jzitnik.client.game.setup.scenes;
|
||||||
|
|
||||||
|
import cz.jzitnik.client.screens.WinScreen;
|
||||||
|
import cz.jzitnik.client.screens.Screen;
|
||||||
|
import cz.jzitnik.client.screens.scenes.Scene;
|
||||||
|
|
||||||
|
public class WinScene extends Scene {
|
||||||
|
public WinScene() {
|
||||||
|
super(new Screen[]{new WinScreen()}, new OnEndAction.Repeat());
|
||||||
|
}
|
||||||
|
}
|
||||||
46
game/src/main/java/cz/jzitnik/client/screens/WinScreen.java
Normal file
46
game/src/main/java/cz/jzitnik/client/screens/WinScreen.java
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
package cz.jzitnik.client.screens;
|
||||||
|
|
||||||
|
import com.googlecode.lanterna.SGR;
|
||||||
|
import com.googlecode.lanterna.TextColor;
|
||||||
|
import com.googlecode.lanterna.graphics.TextGraphics;
|
||||||
|
import com.googlecode.lanterna.screen.TerminalScreen;
|
||||||
|
import cz.jzitnik.client.annotations.injectors.InjectState;
|
||||||
|
import cz.jzitnik.client.events.KeyboardPressEvent;
|
||||||
|
import cz.jzitnik.client.events.MouseAction;
|
||||||
|
import cz.jzitnik.client.states.TerminalState;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
public class WinScreen extends Screen {
|
||||||
|
@InjectState
|
||||||
|
private TerminalState terminalState;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void fullRender() {
|
||||||
|
TerminalScreen screen = terminalState.getTerminalScreen();
|
||||||
|
screen.clear();
|
||||||
|
TextGraphics tg = terminalState.getTextGraphics();
|
||||||
|
|
||||||
|
int termWidth = screen.getTerminalSize().getColumns();
|
||||||
|
int termHeight = screen.getTerminalSize().getRows();
|
||||||
|
|
||||||
|
String message = "YOU WON!";
|
||||||
|
tg.setForegroundColor(TextColor.ANSI.GREEN);
|
||||||
|
tg.enableModifiers(SGR.BOLD);
|
||||||
|
tg.putString((termWidth - message.length()) / 2, termHeight / 2, message);
|
||||||
|
|
||||||
|
try {
|
||||||
|
screen.refresh(com.googlecode.lanterna.screen.Screen.RefreshType.COMPLETE);
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleMouseAction(MouseAction event) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleKeyboardAction(KeyboardPressEvent event) {
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -138,6 +138,7 @@
|
|||||||
texture: "ROOM6"
|
texture: "ROOM6"
|
||||||
requirement:
|
requirement:
|
||||||
item: "quest_item_final_key"
|
item: "quest_item_final_key"
|
||||||
|
end: true
|
||||||
#objects:
|
#objects:
|
||||||
# - objectType: "exit"
|
# - objectType: "exit"
|
||||||
# cords: { x: 140, y: 40 }
|
# cords: { x: 140, y: 40 }
|
||||||
@@ -171,7 +172,7 @@
|
|||||||
updateRateMs: 700
|
updateRateMs: 700
|
||||||
west: "filler_2"
|
west: "filler_2"
|
||||||
east: "spawn"
|
east: "spawn"
|
||||||
north: null
|
north: "empty_c"
|
||||||
south: "filler_deadend_1"
|
south: "filler_deadend_1"
|
||||||
|
|
||||||
|
|
||||||
@@ -200,7 +201,7 @@
|
|||||||
west: "filler_c_west"
|
west: "filler_c_west"
|
||||||
east: null
|
east: null
|
||||||
north: "boss"
|
north: "boss"
|
||||||
south: null
|
south: "empty_a"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -243,7 +244,7 @@
|
|||||||
|
|
||||||
- id: "filler_1b"
|
- id: "filler_1b"
|
||||||
texture: "ROOM1"
|
texture: "ROOM1"
|
||||||
west: "filler_7"
|
west: "filler_1"
|
||||||
east: null
|
east: null
|
||||||
north: null
|
north: null
|
||||||
south: null
|
south: null
|
||||||
|
|||||||
Reference in New Issue
Block a user