Skip to content

Commit f664dac

Browse files
committed
Added new tiles, sounds. Code refactor. New game design.
1 parent 0aa2fcb commit f664dac

File tree

948 files changed

+963
-1067
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

948 files changed

+963
-1067
lines changed

config.ini

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
fullscreen=Off
2-
music_volume=2
2+
music_volume=1
33
se_volume=2

src/main/java/com/khomsi/game/data/DataInitializer.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66
import java.util.ArrayList;
77

88
public class DataInitializer implements Serializable {
9+
//Player Coord
10+
int playerX;
11+
int playerY;
912
//Player stats
1013
int level;
1114
int maxHp;

src/main/java/com/khomsi/game/data/SaveLoad.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ public SaveLoad(GameManager gameManager) {
2121
public void save() {
2222
try (ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream(FILE_PATH))) {
2323
DataInitializer initializer = new DataInitializer();
24+
initializer.playerX = gameManager.player.worldX;
25+
initializer.playerY = gameManager.player.worldY;
26+
2427
initializer.level = gameManager.player.level;
2528
initializer.maxHp = gameManager.player.maxHp;
2629
initializer.hp = gameManager.player.hp;
@@ -33,7 +36,6 @@ public void save() {
3336
initializer.nextLevelXp = gameManager.player.nextLevelXp;
3437
initializer.coin = gameManager.player.coin;
3538
initializer.playerSkin = gameManager.player.playerSkin;
36-
//TODO currently doesn't work
3739
// Save play time and game timer
3840
initializer.savedPlayTime = gameManager.playTime;
3941
initializer.savedGameTimer = gameManager.getGameTimer();
@@ -84,6 +86,9 @@ public boolean load() {
8486
try (ObjectInputStream is = new ObjectInputStream(new FileInputStream(FILE_PATH))) {
8587
//Read object from file
8688
DataInitializer initializer = (DataInitializer) is.readObject();
89+
gameManager.player.worldX = initializer.playerX;
90+
gameManager.player.worldY = initializer.playerY;
91+
8792
gameManager.player.level = initializer.level;
8893
gameManager.player.maxHp = initializer.maxHp;
8994
gameManager.player.hp = initializer.hp;
@@ -137,6 +142,7 @@ public boolean load() {
137142
}
138143
}
139144
}
145+
gameManager.placeObjects.setInteractiveTiles();
140146
} catch (IOException | ClassNotFoundException e) {
141147
System.err.println("Exception " + e.getMessage() + " in " + getClass().getSimpleName());
142148
return false;

src/main/java/com/khomsi/game/entity/mobs/MobDungeonBoss.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import com.khomsi.game.objects.spells.HeartObject;
77
import com.khomsi.game.objects.spells.ManaObject;
88
import com.khomsi.game.objects.interact.CoinBObject;
9-
import com.khomsi.game.objects.outside.DungeonDoorClosedObject;
9+
import com.khomsi.game.objects.dungeon.DungeonDoorClosedObject;
1010

1111
import java.util.Random;
1212

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
package com.khomsi.game.entity.npc.beach;
2+
3+
import com.khomsi.game.entity.Entity;
4+
import com.khomsi.game.main.GameManager;
5+
6+
import java.awt.*;
7+
import java.util.Random;
8+
9+
public class CrabEntity extends Entity {
10+
11+
public CrabEntity(GameManager gameManager) {
12+
super(gameManager);
13+
direction = "up";
14+
speed = 1;
15+
16+
solidArea = new Rectangle();
17+
solidArea.x = 8;
18+
solidArea.y = 16;
19+
20+
solidAreaDefaultX = solidArea.x;
21+
solidAreaDefaultY = solidArea.y;
22+
//boundaries of npc
23+
solidArea.width = 31;
24+
solidArea.height = 32;
25+
dialogueSet = -1;
26+
setDialog();
27+
}
28+
29+
@Override
30+
public void update() {
31+
super.update();
32+
}
33+
34+
public void getImage(String basePath) {
35+
// Loop from 0 to 15 to set up the images
36+
for (int i = 0; i < 16; i++) {
37+
String filename = basePath + String.format("%02d", i);
38+
switch (i) {
39+
case 0 -> down = setup(filename);
40+
case 1 -> down1 = setup(filename);
41+
case 2 -> down2 = setup(filename);
42+
case 3 -> down3 = setup(filename);
43+
44+
case 4 -> right = setup(filename);
45+
case 5 -> right1 = setup(filename);
46+
case 6 -> right2 = setup(filename);
47+
case 7 -> right3 = setup(filename);
48+
49+
case 8 -> up = setup(filename);
50+
case 9 -> up1 = setup(filename);
51+
case 10 -> up2 = setup(filename);
52+
case 11 -> up3 = setup(filename);
53+
54+
case 12 -> left = setup(filename);
55+
case 13 -> left1 = setup(filename);
56+
case 14 -> left2 = setup(filename);
57+
case 15 -> left3 = setup(filename);
58+
}
59+
}
60+
}
61+
62+
63+
private void setDialog() {
64+
dialogues[0][0] = "Scuttle-scuffle!";
65+
dialogues[1][0] = "(Don't touch me, little human!)";
66+
}
67+
68+
//set npc movement
69+
public void setAction() {
70+
lockCounter++;
71+
if (lockCounter == 120) {
72+
Random random = new Random();
73+
int i = random.nextInt(100) + 1;
74+
if (i <= 30) {
75+
direction = "up";
76+
}
77+
if (i <= 30) {
78+
direction = "up";
79+
}
80+
if (i > 30 && i <= 50) {
81+
direction = "down";
82+
}
83+
if (i > 50 && i <= 75) {
84+
direction = "left";
85+
}
86+
if (i > 75) {
87+
direction = "right";
88+
}
89+
lockCounter = 0;
90+
}
91+
}
92+
93+
//Maybe add special stuff, different custom text for this character
94+
public void speak() {
95+
facePlayer();
96+
startDialogue(this, dialogueSet);
97+
dialogueSet++;
98+
99+
if (dialogues[dialogueSet][0] == null) {
100+
dialogueSet = 0;
101+
}
102+
}
103+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.khomsi.game.entity.npc.beach.crab;
2+
3+
import com.khomsi.game.entity.npc.beach.CrabEntity;
4+
import com.khomsi.game.main.GameManager;
5+
6+
public class NpcCrabBlue extends CrabEntity {
7+
8+
public NpcCrabBlue(GameManager gameManager) {
9+
super(gameManager);
10+
getImage("/npc/beach/crab/blue/crab_blue_");
11+
}
12+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.khomsi.game.entity.npc.beach.crab;
2+
3+
import com.khomsi.game.entity.npc.beach.CrabEntity;
4+
import com.khomsi.game.main.GameManager;
5+
6+
public class NpcCrabRed extends CrabEntity {
7+
8+
public NpcCrabRed(GameManager gameManager) {
9+
super(gameManager);
10+
getImage("/npc/beach/crab/red/crab_red_");
11+
}
12+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.khomsi.game.entity.npc.beach.crab;
2+
3+
import com.khomsi.game.entity.npc.beach.CrabEntity;
4+
import com.khomsi.game.main.GameManager;
5+
6+
public class NpcCrabYellow extends CrabEntity {
7+
8+
public NpcCrabYellow(GameManager gameManager) {
9+
super(gameManager);
10+
getImage("/npc/beach/crab/yellow/crab_yellow_");
11+
}
12+
}

src/main/java/com/khomsi/game/entity/npc/object/NpcRock.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22

33
import com.khomsi.game.main.GameManager;
44
import com.khomsi.game.entity.Entity;
5-
import com.khomsi.game.objects.outside.DungeonDoorClosedObject;
6-
import com.khomsi.game.objects.outside.DungeonDoorOpenedObject;
5+
import com.khomsi.game.objects.dungeon.DungeonDoorClosedObject;
6+
import com.khomsi.game.objects.dungeon.DungeonDoorOpenedObject;
77
import com.khomsi.game.tiles.interactive.InteractiveTile;
8-
import com.khomsi.game.tiles.interactive.SwitchPress;
8+
import com.khomsi.game.tiles.interactive.dungeon.SwitchPress;
99

1010
import java.awt.*;
1111
import java.util.Arrays;

src/main/java/com/khomsi/game/entity/player/Player.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,8 @@ public void setDefaultValues() {
8585
public void setDefaultPosition() {
8686
//player position of player
8787
gameManager.currentMap = 0;
88-
worldX = GameManager.TILE_SIZE * 30;
89-
worldY = GameManager.TILE_SIZE * 21;
88+
worldX = GameManager.TILE_SIZE * 29;
89+
worldY = GameManager.TILE_SIZE * 92;
9090
direction = "down";
9191
//TODO remove later(after finishing debugging)
9292
// gameManager.currentMap = 2;

0 commit comments

Comments
 (0)