Skip to content

Commit e2048b9

Browse files
committed
Merge remote-tracking branch 'origin/aside'
2 parents 6bd061f + 700d330 commit e2048b9

File tree

7 files changed

+99
-22
lines changed

7 files changed

+99
-22
lines changed

res/levels/custom_level.png

69 Bytes
Loading

src/com/redomar/game/Game.java

Lines changed: 38 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ public class Game extends Canvas implements Runnable {
4444
private static String Jdata_UserName = "";
4545
private static String Jdata_IP = "127.0.0.1";
4646
private static boolean changeLevel = false;
47+
private static boolean npc = false;
4748
private static int map = 0;
4849

4950
private JFrame frame;
@@ -62,7 +63,7 @@ public class Game extends Canvas implements Runnable {
6263
private InputHandler input;
6364
private WindowHandler window;
6465
private LevelHandler level;
65-
private static Player player;
66+
private Player player;
6667
private Dummy dummy;
6768
private Music music = new Music();
6869
private Time time = new Time();
@@ -125,10 +126,21 @@ public void setMap(String Map_str) {
125126
setLevel(new LevelHandler(Map_str));
126127
setPlayer(new PlayerMP(getLevel(), 100, 100, input,
127128
Jdata_UserName, null, -1));
128-
dummy = new Dummy(getLevel(), "h", 215, 215, 500, 543);
129-
level.addEntity(dummy);
130129
level.addEntity(player);
131130
}
131+
132+
public static void npcSpawn(){
133+
if(isNpc() == true){
134+
game.setDummy(new Dummy(Game.getLevel(), "h", 215, 215, 500, 543));
135+
game.level.addEntity(Game.getDummy());
136+
}
137+
}
138+
139+
public static void npcKill(){
140+
if(isNpc() == false){
141+
game.level.removeEntity(Game.getDummy());
142+
}
143+
}
132144

133145
public synchronized void start() {
134146
running = true;
@@ -235,15 +247,15 @@ public void render() {
235247
musicThread.start();
236248
notActive = false;
237249
} else {
238-
System.out.println("Canceled");
250+
System.out.println("[GAME] Canceled music option");
239251
input.setPlayMusic(false);
240252
}
241253
}
242254
}
243255

244-
if (input.isChangeLevel() == true && getTickCount() % 60 == 0){
256+
if (isChangeLevel() == true && getTickCount() % 60 == 0){
245257
Game.setChangeLevel(true);
246-
input.setChangeLevel(false);
258+
setChangeLevel(false);
247259
}
248260

249261
if (changeLevel == true){
@@ -354,15 +366,15 @@ public void setSocketClient(GameClient socketClient) {
354366
}
355367

356368
public static Player getPlayer() {
357-
return player;
369+
return game.player;
358370
}
359371

360372
public void setPlayer(Player player) {
361-
Game.player = player;
373+
game.player = player;
362374
}
363375

364-
public LevelHandler getLevel() {
365-
return level;
376+
public static LevelHandler getLevel() {
377+
return game.level;
366378
}
367379

368380
public void setLevel(LevelHandler level) {
@@ -417,4 +429,20 @@ public static void setMap(int map) {
417429
Game.map = map;
418430
}
419431

432+
public static boolean isNpc() {
433+
return npc;
434+
}
435+
436+
public static void setNpc(boolean npc) {
437+
Game.npc = npc;
438+
}
439+
440+
public static Dummy getDummy() {
441+
return game.dummy;
442+
}
443+
444+
public void setDummy(Dummy dummy) {
445+
this.dummy = dummy;
446+
}
447+
420448
}

src/com/redomar/game/InputHandler.java

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ public void toggle(boolean isPressed) {
3434
private Key left = new Key();
3535
private Key right = new Key();
3636
private boolean PlayMusic = false;
37-
private boolean ChangeLevel = false;
3837
private int map;
3938

4039
public void keyPressed(KeyEvent e) {
@@ -74,7 +73,23 @@ public void toggleKey(int keyCode, boolean isPressed) {
7473
// map--;
7574
// }
7675
if(Game.getMap() == 2){
77-
this.setChangeLevel(true);
76+
Game.setChangeLevel(true);
77+
Game.getLevel().removeEntity(Game.getDummy());
78+
Game.setNpc(false);
79+
}
80+
}
81+
if (keyCode == KeyEvent.VK_N){
82+
if(Game.isNpc() == false){
83+
Game.setNpc(true);
84+
Game.npcSpawn();
85+
System.out.println("[GAME] Dummy has been spawned");
86+
}
87+
}
88+
if (keyCode == KeyEvent.VK_K){
89+
if(Game.isNpc() == true){
90+
Game.setNpc(false);
91+
Game.npcKill();
92+
System.out.println("[GAME] Dummy has been despawned");
7893
}
7994
}
8095
}
@@ -95,14 +110,6 @@ public void setPlayMusic(boolean playMusic) {
95110
PlayMusic = playMusic;
96111
}
97112

98-
public boolean isChangeLevel() {
99-
return ChangeLevel;
100-
}
101-
102-
public void setChangeLevel(boolean changeLevel) {
103-
ChangeLevel = changeLevel;
104-
}
105-
106113
public Key getUp() {
107114
return up;
108115
}

src/com/redomar/game/entities/Mob.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ public abstract class Mob extends Entity {
1515
protected int movingDir = 1;
1616
protected int scale = 1;
1717
protected boolean isSwimming = false;
18+
protected boolean isMagma = false;
1819
protected boolean changeLevels = false;
1920
protected int ticker;
2021

src/com/redomar/game/entities/Player.java

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public void tick() {
6060
if (level.getTile(this.getX() >> 3, this.getY() >> 3).getId() == 4) {
6161
isSwimming = true;
6262
}
63-
63+
6464
if (isSwimming && level.getTile(this.getX() >> 3, this.getY() >> 3).getId() != 4) {
6565
isSwimming = false;
6666
}
@@ -69,6 +69,14 @@ public void tick() {
6969
changeLevels = true;
7070
}
7171

72+
if (level.getTile(this.getX() >> 3, this.getY() >> 3).getId() == 12) {
73+
isMagma = true;
74+
}
75+
76+
if (isMagma && level.getTile(this.getX() >> 3, this.getY() >> 3).getId() != 12){
77+
isMagma = false;
78+
}
79+
7280
tickCount++;
7381
}
7482

@@ -117,12 +125,36 @@ public void render(Screen screen) {
117125
screen.render(xOffset + 8, yOffset + 3, 31 + 31 * 32, waterColour,
118126
0x01, 1);
119127
}
128+
129+
if (isMagma) {
130+
int waterColour = 0;
131+
yOffset += 4;
132+
133+
colour = Colours.get(-1, 111, -1, 310);
134+
135+
if (tickCount % 60 < 15) {
136+
waterColour = Colours.get(-1, -1, 541, -1);
137+
} else if (15 <= tickCount % 60 && tickCount % 60 < 30) {
138+
yOffset--;
139+
waterColour = Colours.get(-1, 521, 510, -1);
140+
} else if (30 <= tickCount % 60 && tickCount % 60 < 45) {
141+
waterColour = Colours.get(-1, 510, -1, 521);
142+
} else {
143+
yOffset--;
144+
waterColour = Colours.get(-1, -1, 521, 510);
145+
}
146+
147+
screen.render(xOffset, yOffset + 3, 31 + 31 * 32, waterColour,
148+
0x00, 1);
149+
screen.render(xOffset + 8, yOffset + 3, 31 + 31 * 32, waterColour,
150+
0x01, 1);
151+
}
120152

121153
screen.render((xOffset + (modifier * flipTop)), yOffset,
122154
(xTile + yTile * 32), colour, flipTop, scale);
123155
screen.render((xOffset + modifier - (modifier * flipTop)), yOffset,
124156
((xTile + 1) + yTile * 32), colour, flipTop, scale);
125-
if (!isSwimming) {
157+
if (!isSwimming && !isMagma) {
126158
screen.render((xOffset + (modifier * flipBottom)),
127159
(yOffset + modifier), (xTile + (yTile + 1) * 32), colour,
128160
flipBottom, scale);

src/com/redomar/game/level/LevelHandler.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,10 @@ public void addEntity(Entity entity) {
150150
this.getEntities().add(entity);
151151
}
152152

153+
public void removeEntity(Entity entity) {
154+
this.getEntities().remove(entity);
155+
}
156+
153157
public void removeEntity(String username) {
154158
int index = 0;
155159
for(Entity e : getEntities()){

src/com/redomar/game/level/tiles/Tile.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ public abstract class Tile {
1919
private static final Tile CHEST_b = new BasicSolidTile(9, 1, 1, Colours.get(333, 111, 420, 000), 0xFFFF0002);
2020
private static final Tile CARPET_red = new BasicTile(10, 5, 0, Colours.get(-1, 311, 411, 311), 0xFFAA3636);
2121
private static final Tile PORTAL = new AnimatedTile(11, new int[][] { { 3, 5 }, { 4, 5 }, { 5, 5 }, { 6, 5 }, { 7, 5 }, { 8, 5 }, { 9, 5 }, { 10, 5 } }, Colours.get(-1, 005, 305, -1), 0xFF00EAFF, 100);
22+
private static final Tile MAGMA = new AnimatedTile(12, new int [][] { { 0, 5 }, { 1, 5 }, { 2, 5 }, { 1, 5 } }, Colours.get(-1, 400, 511, -1), 0xFFF00F0F, 1000);
2223

2324
protected byte id;
2425
protected boolean solid;
@@ -111,4 +112,8 @@ public static Tile getPortal() {
111112
return PORTAL;
112113
}
113114

115+
public static Tile getMagma() {
116+
return MAGMA;
117+
}
118+
114119
}

0 commit comments

Comments
 (0)