added NPCs and dialogs

This commit is contained in:
musilto9 2020-04-15 23:11:08 +02:00
parent 227c6751fc
commit 11856156fd
40 changed files with 105 additions and 39 deletions

View File

@ -11,14 +11,16 @@ import java.awt.*;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.util.Scanner;
public class Npc extends Person { public class Npc extends Person {
private MapManager mapManager; private MapManager mapManager;
private String name;
public Npc(int x, int y, Map map, MapManager mapManager) { public Npc(int x, int y, String name, Map map, MapManager mapManager) {
super(x, y, map); super(x, y, map);
this.name = name;
this.mapManager = mapManager; this.mapManager = mapManager;
setColor(Color.cyan);
} }
public void move(int endX, int endY) { public void move(int endX, int endY) {
@ -67,11 +69,20 @@ public class Npc extends Person {
public void paint(Graphics2D g) { public void paint(Graphics2D g) {
BufferedImage image = null; BufferedImage image = null;
try { try {
image = ImageIO.read(new File("src/main/resources/characters/Fox/foxi.gif")); File dialogFile = new File("src/main/resources/characters/" + name + ".txt");
Scanner scanner = new Scanner(dialogFile);
scanner.nextLine();
String[] imageInfo = scanner.nextLine().split(" ");
int width = Integer.parseInt(imageInfo[0]);
int height = Integer.parseInt(imageInfo[1]);
int direction = Integer.parseInt(imageInfo[2]);
int offsetX = Integer.parseInt(imageInfo[3]);
int offsetY = Integer.parseInt(imageInfo[4]);
image = ImageIO.read(new File("src/main/resources/characters/" + scanner.nextLine())).getSubimage(width * direction, 0, width, height);
g.drawImage(image, getX() * getSize() + (getSize() / 5) + offsetX,
getY() * getSize() - (getSize() * 3/5) + offsetY, getSize() * 3/5, getSize() * 3/2, null);
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} }
g.drawImage(image, getX() * getSize(),
getY() * getSize(), getSize(), getSize(), null);
} }
} }

View File

@ -31,7 +31,7 @@ public class ImageDialog {
private void parseImage(){ private void parseImage(){
try { try {
image = ImageIO.read(new File("src/main/resources/" + name)); image = ImageIO.read(new File("src/main/resources/characters/" + name));
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} }

View File

@ -25,7 +25,7 @@ public class ImagePerson {
for (int i = 0; i < 3; i++) { for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) { for (int j = 0; j < 4; j++) {
BufferedImage img = image.getSubimage(subimageWidth * i, subimageHeight * j, subimageWidth, subimageHeight); BufferedImage img = image.getSubimage(subimageWidth * i, subimageHeight * j, subimageWidth, subimageHeight);
imagesOfDirection[count] = img; imagesOfDirection[count] = resize(img);
count++; count++;
} }
} }
@ -48,24 +48,24 @@ public class ImagePerson {
public BufferedImage resize(BufferedImage img) { public BufferedImage resize(BufferedImage img) {
Image tmp; Image tmp;
if (subimageWidth > WindowOfFreeMove.CELL_SIZE * 2) { if (subimageWidth > WindowOfFreeMove.CELL_SIZE) {
int newHeight = subimageHeight * WindowOfFreeMove.CELL_SIZE * 2 / subimageWidth; int newHeight = subimageHeight * WindowOfFreeMove.CELL_SIZE / subimageWidth;
tmp = img.getScaledInstance(WindowOfFreeMove.CELL_SIZE * 2, newHeight, Image.SCALE_SMOOTH); tmp = img.getScaledInstance(WindowOfFreeMove.CELL_SIZE, newHeight, Image.SCALE_SMOOTH);
} }
else if (subimageHeight > WindowOfFreeMove.CELL_SIZE * 2) { else if (subimageHeight > WindowOfFreeMove.CELL_SIZE * 2) {
int newWidth = subimageWidth * WindowOfFreeMove.CELL_SIZE * 2 / subimageHeight; int newWidth = subimageWidth * WindowOfFreeMove.CELL_SIZE * 2 / subimageHeight;
tmp = img.getScaledInstance(newWidth, WindowOfFreeMove.CELL_SIZE * 2, Image.SCALE_SMOOTH); tmp = img.getScaledInstance(newWidth, WindowOfFreeMove.CELL_SIZE * 2, Image.SCALE_SMOOTH);
} }
else if (subimageWidth < WindowOfFreeMove.CELL_SIZE && subimageHeight < (WindowOfFreeMove.CELL_SIZE * 2)) { else if (subimageWidth < WindowOfFreeMove.CELL_SIZE && subimageHeight < (WindowOfFreeMove.CELL_SIZE * 2)) {
int newWidth = subimageWidth * WindowOfFreeMove.CELL_SIZE * 2 / subimageHeight; int newWidth = subimageWidth * WindowOfFreeMove.CELL_SIZE / subimageHeight * 3/2;
tmp = img.getScaledInstance(newWidth, (WindowOfFreeMove.CELL_SIZE * 2), Image.SCALE_SMOOTH); tmp = img.getScaledInstance(newWidth, (WindowOfFreeMove.CELL_SIZE * 2), Image.SCALE_SMOOTH);
} }
else { else {
tmp = img.getScaledInstance(subimageWidth, subimageHeight, Image.SCALE_SMOOTH); tmp = img.getScaledInstance(subimageWidth, subimageHeight, Image.SCALE_SMOOTH);
} }
BufferedImage dimg = new BufferedImage(WindowOfFreeMove.CELL_SIZE * 2, WindowOfFreeMove.CELL_SIZE * 2, BufferedImage.TYPE_INT_ARGB); BufferedImage dimg = new BufferedImage(WindowOfFreeMove.CELL_SIZE, WindowOfFreeMove.CELL_SIZE * 2, BufferedImage.TYPE_INT_ARGB);
Graphics2D g2d = dimg.createGraphics(); Graphics2D g2d = dimg.createGraphics();
g2d.drawImage(tmp, (WindowOfFreeMove.CELL_SIZE * 2 - tmp.getWidth(null)) / 2, (WindowOfFreeMove.CELL_SIZE * 2 - tmp.getHeight(null)) / 2, null); g2d.drawImage(tmp, (WindowOfFreeMove.CELL_SIZE - tmp.getWidth(null)) / 2, (WindowOfFreeMove.CELL_SIZE * 2 - tmp.getHeight(null)) / 2, null);
g2d.dispose(); g2d.dispose();
return dimg; return dimg;

View File

@ -110,8 +110,8 @@ public class Map {
String[] trigger = line[x].split(","); String[] trigger = line[x].split(",");
map.addInteractionEvent(new TriggerCell(x, y, trigger[1], new Dialog(window.getDialogBar()), map.getImageCell(), window)); map.addInteractionEvent(new TriggerCell(x, y, trigger[1], new Dialog(window.getDialogBar()), map.getImageCell(), window));
} else if (line[x].equals("SPAWN")) { } else if (line[x].equals("SPAWN")) {
map.setIdExit(0);
map.setSpawnPoint(x, y); map.setSpawnPoint(x, y);
map.idExit = 0;
} else if (line[x].contains("DOOR") && !line[x].contains("DOORTO")) { } else if (line[x].contains("DOOR") && !line[x].contains("DOORTO")) {
String[] door = line[x].split(","); String[] door = line[x].split(",");
if (door.length == 2) if (door.length == 2)

View File

@ -1,6 +1,7 @@
package ruscz.game.gameOfProd.Save; package ruscz.game.gameOfProd.Save;
import ruscz.game.gameOfProd.Cells.ChestCell; import ruscz.game.gameOfProd.Cells.ChestCell;
import ruscz.game.gameOfProd.Cells.Npc;
import ruscz.game.gameOfProd.Cells.TriggerCell; import ruscz.game.gameOfProd.Cells.TriggerCell;
import ruscz.game.gameOfProd.Inventory.InventoryManager; import ruscz.game.gameOfProd.Inventory.InventoryManager;
import ruscz.game.gameOfProd.Inventory.Item; import ruscz.game.gameOfProd.Inventory.Item;
@ -27,6 +28,7 @@ public class LoadManager {
public void loadNewGame() { public void loadNewGame() {
loadMaps(); loadMaps();
loadNpcs();
} }
public void loadSavedGame() { public void loadSavedGame() {
@ -85,6 +87,23 @@ public class LoadManager {
} }
} }
private void loadNpcs() {
try {
File npcsFile = new File("src/main/resources/save/newGame/npcs.txt");
Scanner scanner = new Scanner(npcsFile);
while (scanner.hasNextLine()) {
String name = scanner.nextLine();
File npcFile = new File("src/main/resources/characters/" + name + ".txt");
Scanner sc = new Scanner(npcFile);
String[] position = sc.nextLine().split(" ");
Npc npc = new Npc(Integer.parseInt(position[0]), Integer.parseInt(position[1]), name, Map.findMapByName(position[2], window), mapManager);
Map.findMapByName(position[2], window).setNpcs(npc);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
private void loadPerson() { private void loadPerson() {
try { try {
File personFile = new File("src/main/resources/save/savedGame/person.txt"); File personFile = new File("src/main/resources/save/savedGame/person.txt");

View File

@ -118,7 +118,6 @@ public class Camera {
if (count >= time / 2) { if (count >= time / 2) {
stepX = (int) (-angleY); stepX = (int) (-angleY);
stepY = (int) (-angleX); stepY = (int) (-angleX);
System.out.println(angleX + " " + angleY);
count = 0; count = 0;
} }
} }

View File

@ -151,26 +151,18 @@ public class WindowOfFreeMove extends JLayeredPane {
if (newGame) { if (newGame) {
mapManager.getLoadManager().clearSave(); mapManager.getLoadManager().clearSave();
mapManager.getLoadManager().loadNewGame(); mapManager.getLoadManager().loadNewGame();
Map m5 = Map.findMapByName("m5", this); Map openspace = Map.findMapByName("openspace", this);
setMapManager(m5); setMapManager(openspace);
} }
else { else {
mapManager.getLoadManager().loadSavedGame(); mapManager.getLoadManager().loadSavedGame();
} }
Map boss = Map.findMapByName("boss", this);
int startX = 4;
int startY = 2;
mapManager.createMap(); mapManager.createMap();
isReadyToPaint = true; isReadyToPaint = true;
Npc npc2 = new Npc(startX, startY, boss, mapManager);
boss.setNpcs(npc2);
musicManager = new MusicManager("Town1.wav"); musicManager = new MusicManager("Town1.wav");
musicManager.playMusic(); // musicManager.playMusic();
Timer timer = new Timer(10, actionEvent -> { Timer timer = new Timer(10, actionEvent -> {
mapManager.getActualMap().getPerson().move(); mapManager.getActualMap().getPerson().move();

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -0,0 +1,3 @@
4 2 boss
50 91 0 0 30
boss.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

View File

@ -0,0 +1,3 @@
17 20 openspace
35 86 1 0 30
boy1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

View File

@ -0,0 +1,3 @@
5 1 openspace
35 86 0 0 0
boy2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View File

@ -0,0 +1,3 @@
4 12 openspace
35 84 0 0 0
boy3.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -0,0 +1,3 @@
2 20 openspace
35 84 1 0 30
boy4.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View File

@ -0,0 +1,3 @@
12 20 openspace
35 86 1 0 30
boy5.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

View File

@ -0,0 +1,3 @@
6 1 openspace
35 86 2 0 0
girl1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

@ -0,0 +1,3 @@
7 24 openspace
35 86 1 0 30
girl2.png

View File

@ -1,2 +1,2 @@
32 48 42 93
main.png sprayt_38kh91.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1,7 @@
<image> boy2-face.png
... no, I've not heard anything from him.
<image> girl1-face.png
I mean he would't just vanish, right?
<image> boy2-face.png
Beats me.
<end>

View File

@ -1,2 +1,3 @@
this bad boy can fit so many minecraft servers <image> boy3-face.png
*slaps rack*<br/>this bad boy can fit so many minecraft servers
<end> <end>

View File

@ -1,4 +1,9 @@
<cameraFree> 100 0 35 <cameraFree> 100 0 35
<wait> <wait>
<image> boss-face.png
Oh, hi Mark. Oh, hi Mark.
I know, this is on very short notice<br/>but as you've probably heard,<br/>we kinda need someone on the Game of Prod.
And that someone is gonna be,<br/>you guessed it, you. You start by tomorrow.
You can go now.
Bye.
<end> <end>

View File

@ -3,7 +3,7 @@ BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK
BLOCK EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY MOVETO,4,3,m4 BLOCK BLOCK EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY MOVETO,4,3,m4 BLOCK
BLOCK EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY BLOCK BLOCK EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY BLOCK
BLOCK EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY BLOCK BLOCK EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY BLOCK
BLOCK EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY MOVETO,0,4,openspace BLOCK EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY MOVETO,7,4,openspace
BLOCK EMPTY EMPTY INTER,first-dialog EMPTY INTER,dialog-test EMPTY EMPTY EMPTY BLOCK BLOCK EMPTY EMPTY INTER,first-dialog EMPTY INTER,dialog-test EMPTY EMPTY EMPTY BLOCK
BLOCK EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY BLOCK BLOCK EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY BLOCK
BLOCK EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY BLOCK BLOCK EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY BLOCK

View File

@ -18,10 +18,10 @@
0 476 0 0 0 0 0 0 0 0 0 0 0 0 637 754 0 722 639 8 0 476 0 0 0 0 0 0 0 0 0 0 0 0 637 754 0 722 639 8
0 477 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 0 477 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8
0 423 638 0 636 391 0 636 439 0 0 423 638 0 636 391 0 636 439 0 0 0 638 0 636 391 0 636 439 0 0 0 638 0 636 391 0 636 0 0
0 722 639 0 637 754 0 637 754 0 0 722 639 0 637 754 0 637 754 0 0 722 639 0 637 754 0 637 754 0 0 722 639 0 637 754 0 637 754 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8
0 636 439 0 391 638 0 636 439 0 0 636 439 0 391 638 0 636 439 8 0 636 439 0 391 638 0 636 0 0 0 636 439 0 391 638 0 636 439 8
0 637 754 0 722 639 0 637 754 0 0 637 754 0 722 639 0 637 754 0 0 637 754 0 722 639 0 637 754 0 0 637 754 0 722 639 0 637 754 0
0 0 7 7 7 0 7 7 7 0 0 7 7 7 0 7 7 7 0 0 0 0 7 7 7 0 7 7 7 0 0 7 7 7 0 7 7 7 0 0

View File

@ -1,28 +1,28 @@
20 27 20 27
BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK
BLOCK block block block EMPTY EMPTY EMPTY block BLOCK EMPTY EMPTY EMPTY BLOCK EMPTY EMPTY inter,laugh inter,laugh EMPTY EMPTY BLOCK BLOCK block block block EMPTY block block block BLOCK EMPTY EMPTY EMPTY BLOCK EMPTY EMPTY inter,laugh inter,laugh EMPTY EMPTY BLOCK
BLOCK block EMPTY EMPTY EMPTY EMPTY EMPTY block BLOCK EMPTY EMPTY EMPTY BLOCK EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY BLOCK BLOCK block EMPTY EMPTY EMPTY EMPTY EMPTY block BLOCK EMPTY EMPTY EMPTY BLOCK EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY BLOCK
BLOCK block EMPTY EMPTY EMPTY EMPTY EMPTY block BLOCK,u EMPTY EMPTY EMPTY BLOCK EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY block BLOCK block EMPTY EMPTY EMPTY EMPTY EMPTY block BLOCK,u EMPTY EMPTY EMPTY BLOCK EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY block
BLOCK block EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY DOOR,false EMPTY EMPTY EMPTY BLOCK EMPTY block block block block EMPTY block BLOCK block EMPTY EMPTY EMPTY EMPTY EMPTY TRIGGER,dialog DOOR,false EMPTY EMPTY EMPTY BLOCK EMPTY block block block block EMPTY block
BLOCK BLOCK,d EMPTY BLOCK,d BLOCK,d BLOCK,d EMPTY BLOCK,d BLOCK EMPTY EMPTY EMPTY BLOCK EMPTY block block block block EMPTY block BLOCK BLOCK,d EMPTY BLOCK,d BLOCK,d BLOCK,d EMPTY BLOCK,d BLOCK EMPTY EMPTY EMPTY BLOCK EMPTY block block block block EMPTY block
BLOCK BLOCK DOOR,true,locked,false BLOCK BLOCK BLOCK DOOR,true BLOCK BLOCK EMPTY EMPTY EMPTY BLOCK EMPTY block block block block EMPTY block BLOCK BLOCK DOOR,true,locked,false BLOCK BLOCK BLOCK DOOR,true BLOCK BLOCK EMPTY EMPTY EMPTY BLOCK EMPTY block block block block EMPTY block
BLOCK block EMPTY block BLOCK block EMPTY block BLOCK EMPTY EMPTY EMPTY BLOCK EMPTY block CHEST,confroom block block EMPTY block BLOCK block EMPTY block BLOCK block EMPTY block BLOCK EMPTY EMPTY EMPTY BLOCK EMPTY block CHEST,confroom block block EMPTY block
BLOCK block EMPTY block BLOCK block EMPTY block BLOCK EMPTY EMPTY EMPTY BLOCK EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY BLOCK BLOCK block EMPTY block BLOCK block EMPTY block BLOCK EMPTY EMPTY EMPTY BLOCK EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY BLOCK
BLOCK block EMPTY block BLOCK block EMPTY block BLOCK EMPTY EMPTY EMPTY BLOCK BLOCK,d BLOCK,d BLOCK,d EMPTY BLOCK,d BLOCK,d BLOCK BLOCK block EMPTY block BLOCK block EMPTY block BLOCK EMPTY EMPTY EMPTY BLOCK BLOCK,d BLOCK,d BLOCK,d EMPTY BLOCK,d BLOCK,d BLOCK
BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK EMPTY EMPTY EMPTY BLOCK BLOCK BLOCK BLOCK DOOR,true,blue-key-card BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK EMPTY EMPTY EMPTY BLOCK BLOCK BLOCK BLOCK DOOR,true,blue-key-card BLOCK BLOCK BLOCK
BLOCK EMPTY block block EMPTY inter,minecraft inter,minecraft EMPTY BLOCK EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY BLOCK BLOCK EMPTY block block block block block EMPTY BLOCK EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY BLOCK
BLOCK EMPTY block block EMPTY inter,minecraft inter,minecraft EMPTY BLOCK,u EMPTY EMPTY EMPTY EMPTY EMPTY block EMPTY EMPTY EMPTY block block BLOCK EMPTY block block inter,minecraft block block EMPTY BLOCK,u EMPTY EMPTY EMPTY EMPTY EMPTY block EMPTY EMPTY EMPTY block block
BLOCK EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY DOOR,false EMPTY EMPTY EMPTY EMPTY EMPTY block block EMPTY block block block BLOCK EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY DOOR,false EMPTY EMPTY EMPTY EMPTY EMPTY block block EMPTY block block block
BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY block BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY block
BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK EMPTY moveto,1,2,office EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK EMPTY moveto,1,2,office EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY BLOCK
BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK EMPTY moveto,0,2,m1 EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY block EMPTY block EMPTY BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK EMPTY moveto,7,2,m1 EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY SPAWN block EMPTY block EMPTY BLOCK
BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK EMPTY EMPTY EMPTY EMPTY EMPTY block block EMPTY block block block BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK EMPTY EMPTY EMPTY EMPTY EMPTY block block EMPTY block block block
BLOCK block EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY block BLOCK block EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY block
BLOCK EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY block BLOCK EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY block
BLOCK EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY block EMPTY EMPTY EMPTY block EMPTY EMPTY block BLOCK BLOCK EMPTY block EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY block EMPTY EMPTY block EMPTY block EMPTY BLOCK
BLOCK block block EMPTY block block EMPTY block block EMPTY EMPTY block block EMPTY block block EMPTY block block BLOCK BLOCK block block EMPTY block block EMPTY block block EMPTY EMPTY block block EMPTY block block EMPTY block block BLOCK
BLOCK EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY block BLOCK EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY block
BLOCK EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY block BLOCK EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY block
BLOCK EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY block EMPTY block EMPTY EMPTY EMPTY block block BLOCK EMPTY EMPTY EMPTY EMPTY EMPTY EMPTY block EMPTY EMPTY EMPTY EMPTY block EMPTY block EMPTY EMPTY EMPTY block block
BLOCK block block EMPTY block block EMPTY block block EMPTY EMPTY block block EMPTY block block EMPTY block block BLOCK BLOCK block block EMPTY block block EMPTY block block EMPTY EMPTY block block EMPTY block block EMPTY block block BLOCK
BLOCK BLOCK block block block BLOCK block block block BLOCK BLOCK block block block BLOCK block block block BLOCK BLOCK BLOCK BLOCK block block block BLOCK block block block BLOCK BLOCK block block block BLOCK block block block BLOCK BLOCK

View File

@ -0,0 +1,8 @@
boy1
boy2
boy3
boy4
boy5
girl1
girl2
boss