Compare commits
38 Commits
c02ae0302c
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
5dbf7fcf1f
|
|||
|
70eaa9514a
|
|||
|
befb117d85
|
|||
|
54a2ee3022
|
|||
|
ce3f590715
|
|||
|
39fc7d549a
|
|||
|
8902e28d31
|
|||
|
f15850b022
|
|||
|
46765031e4
|
|||
|
2cda920e15
|
|||
|
93467760db
|
|||
|
6be9927752
|
|||
|
1343b18753
|
|||
|
e0986d4708
|
|||
|
d018ed3e6e
|
|||
|
133afa9c06
|
|||
|
c4b1d029aa
|
|||
|
c8d7a56934
|
|||
|
4f9d1dfcb6
|
|||
|
d092a39115
|
|||
|
9263626ca2
|
|||
|
87aba81f32
|
|||
|
4aa955246b
|
|||
|
f9c511d6bb
|
|||
|
7f8d9d7e9b
|
|||
|
27c36d880d
|
|||
|
c1e355637e
|
|||
|
7b3a8bca0f
|
|||
|
2105a0e8af
|
|||
|
7ee7614c6c
|
|||
|
4b9c0006a6
|
|||
|
42ed4dd099
|
|||
|
97da3982d1
|
|||
|
b380e218f6
|
|||
|
1131996d77
|
|||
|
825b084a68
|
|||
|
1d6f53a70e
|
|||
|
2e73a012d1
|
3
.gitignore
vendored
@@ -36,3 +36,6 @@ JGame2D
|
||||
|
||||
### Local Game Settings ###
|
||||
gamedata
|
||||
|
||||
|
||||
/system.txt
|
||||
|
||||
BIN
MapEditor.jar
Normal file
50
assets/maps/dungeon01.map
Normal file
@@ -0,0 +1,50 @@
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 36 17 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 17 17 32 32 32 32 32 17 17 17 17 17 17 32 32 32 32 32 32 32 32 32 32 17 17 17 17 17 17 32 32 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 17 32 32 32 32 17 17 17 17 17 17 17 17 32 32 32 32 32 32 32 32 17 17 17 17 32 32 17 32 32 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 17 17 17 17 17 17 17 17 17 17 17 17 17 32 32 32 32 17 17 17 17 17 17 17 32 32 32 17 17 32 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 17 17 17 17 17 17 17 17 32 32 32 17 17 17 17 17 17 17 32 32 32 32 32 17 32 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 32 17 17 17 17 17 17 32 32 32 17 17 17 17 17 17 32 32 32 32 32 32 32 17 17 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 32 32 32 32 17 32 32 32 32 17 17 17 17 32 32 32 32 32 32 32 32 32 17 17 17 17 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 32 32 32 32 17 32 32 32 17 17 17 32 32 32 32 32 32 32 32 32 32 17 17 17 17 17 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 32 17 17 17 17 17 32 32 17 17 17 32 32 17 32 32 32 32 32 32 32 17 17 17 17 17 17 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 17 17 17 32 17 17 17 32 32 17 32 32 32 32 17 32 32 32 32 32 32 17 17 17 17 17 17 17 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 17 17 32 32 32 32 32 32 32 32 17 32 32 32 17 32 32 17 17 17 17 17 32 32 17 17 17 32 32 17 17 17 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 17 17 17 17 17 32 32 32 32 32 17 32 32 32 17 32 32 17 17 17 17 17 32 17 17 32 32 32 32 32 17 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 17 17 17 17 17 32 32 32 32 32 17 32 32 32 17 32 32 17 17 17 17 17 17 17 32 32 32 32 32 32 17 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 17 17 17 17 17 32 32 32 32 32 17 32 32 32 17 32 32 32 17 17 17 17 32 32 32 32 32 32 32 32 17 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 17 17 17 17 17 32 32 32 32 32 17 32 32 32 17 17 32 32 32 32 32 32 32 32 32 32 32 32 32 32 17 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 17 32 32 32 32 32 32 32 17 32 17 17 17 17 32 32 32 32 32 32 32 32 32 32 32 32 32 32 17 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 17 32 32 32 32 32 32 32 17 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 17 17 17 17 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 17 32 32 32 17 17 17 17 17 17 17 17 32 32 32 32 32 32 32 32 32 32 32 32 17 17 17 17 17 17 17 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 17 32 32 17 17 17 17 17 17 17 17 17 17 32 32 32 32 32 32 32 32 32 17 17 17 17 17 17 17 17 17 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 17 17 17 17 17 17 17 17 17 17 17 17 17 32 32 32 32 32 32 32 32 32 17 17 17 17 17 17 17 17 17 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 17 17 17 17 17 17 17 17 17 17 17 17 17 32 32 32 32 32 32 32 32 32 17 17 17 17 17 17 17 17 17 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 32 32 17 17 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 32 32 32 17 17 32 32 32 32 32 32 32 17 32 32 32 32 32 17 17 17 32 32 32 32 17 17 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 32 32 32 17 17 32 32 32 32 32 32 32 17 32 32 32 32 32 32 32 32 32 32 32 17 17 17 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 32 32 32 17 17 32 32 32 32 32 32 32 17 32 32 32 32 32 32 32 32 32 32 32 32 17 17 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 32 32 32 17 17 32 32 32 32 32 32 32 17 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 32 32 32 17 17 32 32 32 32 32 32 17 17 17 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 32 32 32 17 17 32 32 32 32 32 32 17 17 17 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 32 17 17 17 17 17 17 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 32 17 17 17 17 17 17 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 17 17 17 17 17 17 17 17 17 17 17 17 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 17 17 17 17 17 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 17 32 32 32 32 32 17 17 17 17 17 17 32 32 32 32 32 32 32 32 32 32 32 17 17 17 17 17 17 32 32 17 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 17 32 32 32 32 32 17 17 17 17 17 17 32 32 32 32 32 32 32 32 32 32 17 17 17 17 17 17 32 32 32 17 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 17 17 17 32 32 32 32 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 32 32 32 17 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 17 37 17 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 17 17 17 17 17 32 32 32 17 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 17 17 17 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
50
assets/maps/dungeon02.map
Normal file
@@ -0,0 +1,50 @@
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 17 17 17 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 17 17 17 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 17 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 17 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 17 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 17 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 17 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 17 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 32 32 32 32 32 32 17 17 17 17 17 17 17 17 17 17 32 32 32 32 32 32 32 32 32 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 32 32 32 32 17 17 17 17 17 17 17 17 17 17 17 17 17 17 32 32 32 32 32 32 32 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 32 32 32 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 32 32 32 32 32 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 32 32 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 32 32 32 32 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 32 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 32 32 32 32 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 32 32 32 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 32 32 32 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 32 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 32 32 32 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 32 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 32 32 32 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 32 32 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 32 32 32 32 32 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 32 32 32 32 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 32 32 32 32 32 32 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 32 32 32 32 32 32 17 17 17 17 17 17 17 17 17 17 17 17 32 32 32 32 32 32 32 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 17 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 17 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 17 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 17 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 17 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 17 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 17 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 17 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 17 17 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 17 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 17 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 17 17 17 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 17 17 17 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 17 37 17 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
50
assets/maps/editoredmap.map
Normal file
@@ -0,0 +1,50 @@
|
||||
18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 27 18 18 18 18 18 18 18 18 18 18 18 18 18 18 27 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 27 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 27 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 18 18 18 18 18 18 27 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
27 18 27 18 18 18 18 18 27 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 2 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 21 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 5 14 14 14 22 30 30 30 30 30 22 14 14 14 14 14 14 22 14 14 30 14 14 22 14 11 18 27 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 5 14 25 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 26 14 11 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 27 18 5 22 10 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 15 30 11 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 5 14 10 6 32 1 1 1 1 1 1 4 6 32 1 1 1 1 1 1 1 4 6 15 14 11 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 5 30 10 6 15 31 3 3 3 3 23 10 6 15 31 3 3 3 3 3 23 10 6 15 22 11 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 27 18 5 30 10 6 15 11 18 18 18 18 5 10 6 15 11 18 18 18 18 18 5 10 6 15 14 11 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 5 14 10 6 15 34 9 9 9 9 17 10 6 15 34 9 9 9 9 9 17 10 6 15 14 11 18 18 18 27 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 27 5 22 10 6 8 16 16 16 16 16 16 12 6 8 16 16 16 16 16 16 16 12 6 15 14 11 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 5 14 10 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 15 14 11 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
27 18 18 5 14 10 6 32 1 1 1 1 1 1 4 6 32 1 1 1 1 1 1 1 4 6 15 22 11 18 18 18 18 18 18 18 18 27 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 27 18 5 30 10 6 15 31 3 3 3 3 23 10 6 15 31 3 3 3 3 3 23 10 6 15 30 11 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 5 14 10 6 15 11 18 18 18 18 5 10 6 15 11 18 18 18 18 18 5 10 6 15 14 11 18 18 18 27 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 5 14 10 6 15 34 9 9 9 9 17 10 6 15 34 9 9 9 9 9 17 10 6 15 14 11 18 18 18 18 18 18 27 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 5 22 10 6 8 16 16 16 16 16 16 12 6 8 16 16 16 16 16 16 16 12 6 15 14 11 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 27 18 5 14 10 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 15 14 11 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 5 30 19 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 22 11 18 18 18 18 18 27 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
27 18 18 5 14 30 14 14 14 22 14 30 30 14 14 22 14 14 14 30 14 14 14 22 14 30 14 14 11 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 28 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 0 18 18 18 27 18 18 18 18 27 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 27 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 27 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 18 18 18 18 27 18 18 18 18 27 18 18 18 18 18 18 18 18 18 18 27 18 18 18 18 18 18 18 27 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 18 18 18 18 18 18 18 27 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 18 27 18 18 18 27 27 18 18 18 27 18 18 18 18 18 27 18 18 18 18 18 18 18 18 27 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 27 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
50
assets/maps/indoor01.map
Normal file
@@ -0,0 +1,50 @@
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 32 32 32 32 32 32 32 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 32 34 34 34 34 34 32 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 32 34 34 35 34 34 32 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 32 34 34 34 34 34 32 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 32 34 34 34 34 34 32 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 32 34 34 34 34 34 32 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 32 34 34 34 34 34 32 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 32 32 32 0 32 32 32 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
@@ -1,12 +0,0 @@
|
||||
1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1
|
||||
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
|
||||
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
|
||||
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
|
||||
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
|
||||
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
|
||||
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
|
||||
1 0 0 0 0 0 2 2 2 2 0 0 0 0 0 1
|
||||
1 0 0 0 0 0 2 2 2 2 0 0 0 0 0 1
|
||||
1 0 0 0 0 0 2 2 2 2 0 0 0 0 0 1
|
||||
1 0 0 0 0 0 2 2 2 2 0 0 0 0 0 1
|
||||
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
|
||||
@@ -1,50 +0,0 @@
|
||||
12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12
|
||||
12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12
|
||||
12 12 12 12 12 12 12 13 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 12 12 12 12 12 12 12 13 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12
|
||||
12 12 12 12 13 12 12 12 12 12 12 13 12 12 12 12 12 12 13 12 12 12 12 12 12 12 12 13 12 12 12 12 12 12 12 12 12 12 12 12 12 13 12 12 12 12 12 12 12 12
|
||||
12 12 12 12 12 12 12 12 12 13 12 12 12 12 12 13 12 12 12 12 12 12 12 13 12 12 12 12 12 12 12 13 12 12 13 12 12 12 13 12 12 12 12 12 12 12 12 12 12 12
|
||||
12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 12 12 12 12 12 12 12 13 12 12 12 12 12 12 13 12 12 12 12 12 12 13 12 12 12 12 12 12
|
||||
12 12 12 12 12 13 22 20 20 20 20 20 20 20 23 12 12 12 22 20 20 20 20 20 20 20 20 23 12 12 12 22 20 20 20 20 20 20 20 20 20 20 23 12 12 12 12 12 12 12
|
||||
12 12 12 12 12 12 18 41 40 40 40 40 40 41 19 20 20 20 21 41 10 10 11 10 10 10 10 19 20 20 20 21 41 10 35 33 33 33 33 33 33 36 17 12 12 13 12 12 12 12
|
||||
12 12 13 12 12 12 18 41 40 39 39 39 40 41 41 41 41 41 41 41 10 14 15 15 15 16 10 41 41 41 41 41 41 41 31 26 26 26 26 26 26 30 17 12 12 12 12 12 12 12
|
||||
12 12 12 12 12 12 18 41 40 39 39 39 40 41 41 41 41 41 41 41 10 17 12 12 12 18 10 41 41 41 41 41 41 41 31 26 26 26 26 26 26 30 17 12 12 12 12 12 12 12
|
||||
12 12 12 13 12 12 18 41 40 39 39 39 40 41 41 41 41 41 41 41 10 17 12 12 12 18 11 41 41 41 41 41 41 41 31 26 26 26 26 26 26 30 17 12 13 12 12 12 12 12
|
||||
12 12 12 12 13 12 18 41 40 39 39 39 40 41 41 41 41 41 41 41 10 19 20 20 20 21 10 41 41 41 41 41 41 41 31 26 26 26 26 26 26 30 17 12 12 12 12 12 12 12
|
||||
12 12 12 12 12 12 18 41 40 40 39 40 40 41 41 41 41 41 41 41 11 10 35 33 36 10 10 10 10 10 10 10 10 10 37 28 28 29 26 27 28 38 17 13 12 12 12 12 12 12
|
||||
12 12 12 12 12 12 18 41 41 41 10 41 41 41 41 41 41 41 41 41 41 41 31 26 30 41 41 41 41 41 41 41 41 41 41 41 41 31 26 30 14 15 25 12 12 12 12 12 12 12
|
||||
12 12 12 12 13 12 18 41 41 41 10 41 41 41 41 41 41 41 41 41 41 41 31 26 30 41 41 41 41 41 41 41 41 41 41 41 41 31 26 30 17 12 12 12 12 13 12 12 12 12
|
||||
12 12 12 12 12 12 24 15 16 41 10 41 41 41 41 41 41 41 41 41 41 41 31 26 30 41 41 41 41 41 41 41 41 41 41 41 41 31 26 30 17 12 12 12 12 12 12 12 12 12
|
||||
12 12 12 12 12 12 12 12 18 41 10 41 41 41 41 41 41 41 41 41 41 41 31 26 30 10 10 10 41 41 41 41 41 41 41 41 41 31 26 30 17 12 12 12 12 12 13 12 12 12
|
||||
12 12 13 12 12 12 12 22 21 41 10 41 41 41 41 41 41 41 41 41 41 41 31 26 30 41 41 41 41 41 41 41 41 41 41 35 33 34 26 30 17 12 12 13 12 12 12 12 12 12
|
||||
12 12 12 12 12 12 12 18 10 10 10 41 41 41 41 41 41 41 41 41 41 41 31 26 30 41 41 41 41 41 41 41 41 41 41 31 26 26 26 30 17 12 12 12 12 12 12 12 12 12
|
||||
12 12 12 13 12 12 12 18 10 41 41 41 41 41 41 41 41 41 41 41 41 10 31 26 30 10 41 41 41 41 41 41 41 41 41 31 26 27 28 38 17 12 13 12 12 12 12 12 12 12
|
||||
12 12 12 12 12 12 12 18 10 41 41 41 10 35 33 33 33 33 33 33 33 33 34 26 32 33 33 33 33 33 33 33 33 33 33 34 26 30 10 41 17 12 12 12 12 12 12 12 12 12
|
||||
12 12 12 12 12 13 12 18 10 41 41 41 11 31 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 30 10 14 25 12 12 12 12 12 12 12 12 12
|
||||
12 12 12 12 12 12 13 18 10 10 41 41 10 37 28 28 28 28 28 28 28 28 29 26 27 28 28 28 28 28 28 28 28 28 28 29 26 30 10 17 12 13 12 12 12 12 12 12 12 12
|
||||
12 12 12 12 12 12 12 24 16 10 41 41 10 41 41 41 41 41 41 41 41 10 31 26 30 10 41 41 41 41 41 41 41 41 41 31 26 30 10 17 12 12 12 12 13 12 12 12 12 12
|
||||
12 12 12 12 12 12 12 12 18 10 41 41 10 41 41 41 41 41 41 41 41 41 31 26 30 41 41 41 41 41 41 41 41 41 41 31 26 30 11 17 12 12 12 12 12 12 12 12 12 12
|
||||
12 12 12 12 12 13 12 22 21 10 41 41 10 10 10 41 41 41 41 41 41 41 31 26 30 41 41 41 41 41 41 41 41 41 41 31 26 30 10 17 12 12 12 13 12 12 12 12 12 12
|
||||
12 12 12 12 12 12 12 18 10 10 41 41 41 41 10 41 41 41 41 41 41 41 31 26 30 41 41 41 41 41 41 41 41 41 41 31 26 30 10 17 12 12 12 12 12 12 12 12 12 12
|
||||
12 12 12 13 12 12 12 18 10 41 41 41 41 41 10 41 41 41 41 41 41 41 31 26 30 41 41 10 41 41 41 41 41 41 41 31 26 30 10 17 12 13 12 12 12 12 12 12 12 12
|
||||
12 12 12 12 12 12 12 18 10 41 41 41 41 41 10 41 41 41 41 41 41 41 31 26 30 41 41 41 41 41 10 41 41 41 41 31 26 30 10 17 12 12 12 12 12 12 12 12 12 12
|
||||
12 12 12 12 12 12 13 18 10 10 10 10 10 10 10 41 41 41 41 41 41 41 31 26 30 41 41 41 41 41 10 41 41 41 41 37 28 38 10 17 12 12 12 12 13 12 12 12 12 12
|
||||
12 12 12 12 12 12 12 18 10 10 11 10 10 10 10 41 41 41 41 41 41 41 31 26 30 41 41 41 41 41 41 41 41 41 41 41 10 41 14 25 12 12 13 12 12 12 12 12 12 12
|
||||
12 12 12 12 12 12 12 24 16 10 10 10 10 10 10 41 41 41 41 41 41 41 31 26 30 41 41 41 41 41 41 41 41 41 41 10 10 10 17 12 12 12 12 12 12 12 12 12 12 12
|
||||
12 12 12 12 12 13 12 12 18 10 10 10 10 11 10 41 41 41 41 41 41 41 31 26 30 41 41 41 41 41 41 41 41 41 41 10 10 10 17 12 12 12 12 12 12 12 13 12 12 12
|
||||
12 12 12 12 12 12 12 12 18 11 10 10 10 10 10 41 41 41 41 41 41 41 31 26 30 41 41 41 41 41 41 41 41 41 41 10 10 11 17 12 12 13 12 12 12 12 12 12 12 12
|
||||
12 12 12 12 12 12 12 12 18 10 10 10 10 10 10 41 41 41 41 41 41 41 31 26 30 41 41 41 41 41 41 41 41 41 41 10 10 10 17 12 12 12 12 12 12 12 12 12 12 12
|
||||
12 12 12 12 13 12 12 22 21 41 41 41 41 41 41 41 41 41 41 41 41 41 37 28 38 41 41 41 41 41 41 41 41 41 41 11 10 10 19 23 12 12 12 12 12 12 12 12 12 12
|
||||
12 12 12 12 12 12 12 18 41 41 41 41 41 41 41 41 41 41 41 10 10 10 10 10 10 10 10 41 41 41 41 41 41 41 10 10 10 10 10 19 23 12 12 12 13 12 12 12 12 12
|
||||
12 12 12 12 12 12 13 18 41 41 41 41 41 41 41 41 41 41 10 10 10 10 10 10 10 10 10 10 41 41 10 41 41 10 10 10 10 10 10 10 17 12 12 12 12 12 12 12 12 12
|
||||
12 12 12 12 12 12 12 18 10 41 41 41 41 41 41 41 41 41 10 11 10 10 10 10 10 11 10 10 41 41 41 41 10 10 10 10 10 11 10 10 17 12 13 12 12 12 12 12 12 12
|
||||
12 12 12 12 12 12 12 18 10 41 41 41 41 10 41 41 41 41 10 10 11 10 10 10 10 10 10 10 10 41 41 41 10 10 10 10 10 41 10 10 17 12 12 12 12 12 12 12 12 12
|
||||
12 12 13 12 12 12 12 18 10 41 41 41 41 41 41 41 41 41 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 41 10 10 10 10 10 17 12 12 12 12 13 12 12 12 12
|
||||
12 12 12 12 12 12 12 18 10 41 41 41 41 10 41 14 15 15 16 10 10 10 10 10 11 10 10 14 15 15 16 10 10 10 10 10 10 10 11 10 17 12 12 12 12 12 12 13 12 12
|
||||
12 12 12 12 12 12 12 18 41 41 41 41 41 41 14 25 12 12 24 16 10 10 10 10 10 10 14 25 12 12 18 10 10 41 10 10 41 10 10 10 17 12 12 12 12 12 12 12 12 12
|
||||
12 12 12 12 13 12 12 24 15 15 15 15 15 15 25 12 12 12 12 24 15 15 15 15 15 15 25 12 13 12 24 16 10 11 10 10 10 10 14 15 25 12 13 12 12 12 12 12 12 12
|
||||
12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 12 12 12 12 12 12 12 12 12 12 12 12 24 15 15 15 15 15 15 25 12 12 12 12 12 12 12 13 12 12 12
|
||||
12 12 12 12 12 12 12 12 12 12 12 13 12 12 12 12 13 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 12 12 12 12 12 12 13 12 12 12 12 12 12
|
||||
12 12 12 12 12 12 13 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 12 12 12 12 13 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12
|
||||
12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 12 12 12 12 12 13 12 12 12 12 12 12 12 12 12 12 12 13 12 12 12 12 12 12 13 12 12 12 12 12 12 12 12 12 12
|
||||
12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 12 12 12 12
|
||||
12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12
|
||||
@@ -1,50 +0,0 @@
|
||||
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
|
||||
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
|
||||
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 0 2 2 2 2 2 0 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
|
||||
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
|
||||
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
|
||||
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
|
||||
4 4 4 4 4 4 4 4 1 1 1 1 1 4 4 4 4 4 4 4 4 2 2 2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
|
||||
4 4 4 4 4 4 4 4 1 3 3 3 1 4 4 4 4 4 4 4 0 0 0 0 0 0 0 4 4 4 4 4 4 0 5 5 5 5 5 5 5 4 4 4 4 4 4 4 4 4
|
||||
4 4 4 4 4 4 4 4 1 3 3 3 1 4 4 4 4 4 4 4 4 0 0 0 0 0 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 4 4 4 4 4 4 4 4
|
||||
4 4 4 4 4 4 4 4 1 3 3 3 1 4 4 4 4 4 4 4 4 4 0 0 0 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 4 4 4 4 4 4 4 4
|
||||
4 4 4 4 4 4 4 4 1 3 3 3 1 4 4 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 4 4 4 4 4 4 4 4
|
||||
4 4 4 4 4 4 4 4 1 1 0 1 1 4 4 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 4 4 4 4 4 4 4 4
|
||||
4 4 4 4 4 4 4 4 4 4 0 4 4 4 4 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 4 4 4 4 4 4 4 4 4
|
||||
4 4 4 4 4 4 4 4 4 4 0 4 4 4 4 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 4 4 4
|
||||
4 4 4 4 4 4 4 4 4 4 0 4 4 4 4 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 4 4 4
|
||||
4 4 4 4 4 4 4 4 4 4 0 4 4 4 4 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 4 4 4
|
||||
4 4 4 4 4 4 4 4 0 0 0 4 4 4 4 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 4 4 4
|
||||
4 4 4 4 4 4 4 4 0 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 4 4 4
|
||||
4 4 4 4 4 4 4 4 0 4 4 4 4 4 4 4 4 4 4 4 4 4 0 5 0 4 4 4 4 4 4 4 4 4 4 4 5 5 5 4 4 4 4 4 4 4 4 4 4 4
|
||||
4 4 4 4 4 4 4 4 0 4 4 4 4 4 4 4 4 4 4 4 4 0 0 5 0 0 4 4 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 4 4 4 4 4
|
||||
4 4 4 4 4 4 4 4 0 4 4 4 4 4 4 4 4 4 4 4 0 0 0 5 0 0 0 4 4 4 4 4 4 4 4 5 5 4 4 4 4 4 4 4 4 4 4 4 4 4
|
||||
4 4 4 4 4 4 4 4 0 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4 4
|
||||
4 4 4 4 4 4 4 4 0 4 4 4 0 4 4 4 4 4 4 4 0 0 0 5 0 0 0 4 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 4 4 4 4 4
|
||||
4 4 4 4 4 4 4 4 0 4 4 4 0 4 4 4 4 4 4 4 4 0 0 5 0 0 4 4 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 4 4 4 4 4
|
||||
4 4 4 4 4 4 4 4 0 4 4 4 0 4 4 4 4 4 4 4 4 4 0 5 0 4 4 4 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 4 4 4 4 4
|
||||
4 4 4 4 4 4 4 4 0 4 4 4 0 0 0 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 4 4 4 4 4
|
||||
4 4 4 4 4 4 4 4 0 4 4 4 4 4 0 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 4 4 4 4 4
|
||||
4 4 4 4 4 4 4 4 0 4 4 4 4 4 0 4 4 4 4 4 4 4 4 5 4 4 4 0 4 4 4 4 4 4 4 0 5 4 4 4 4 4 4 4 4 4 4 4 4 4
|
||||
4 4 4 4 4 4 4 4 0 4 4 4 4 4 0 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 0 4 4 4 4 4 5 4 4 4 4 4 4 4 4 4 4 4 4 4
|
||||
4 4 4 4 4 4 4 4 0 0 0 0 0 0 0 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 0 4 4 4 4 4 5 4 4 4 4 4 4 4 4 4 4 4 4 4
|
||||
4 4 4 4 4 4 4 4 0 0 0 0 0 0 0 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 4 4 4 4 0 4 4 4 4 4 4 4 4 4 4 4 4 4
|
||||
4 4 4 4 4 4 4 4 0 0 0 0 0 0 0 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 4 4 4 0 0 0 4 4 4 4 4 4 4 4 4 4 4 4
|
||||
4 4 4 4 4 4 4 4 0 0 0 0 0 0 0 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 4 4 4 0 0 0 4 4 4 4 4 4 4 4 4 4 4 4
|
||||
4 4 4 4 4 4 4 4 0 0 0 0 0 0 0 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 4 4 4 0 0 0 4 4 4 4 4 4 4 4 4 4 4 4
|
||||
4 4 4 4 4 4 4 4 0 0 0 0 0 0 0 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 4 4 4 0 0 0 4 4 4 4 4 4 4 4 4 4 4 4
|
||||
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 4 4 4 0 0 0 4 4 4 4 4 4 4 4 4 4 4 4
|
||||
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 0 0 0 0 0 0 0 0 4 4 4 4 4 4 4 0 0 0 0 0 4 4 4 4 4 4 4 4 4 4 4
|
||||
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 0 0 0 0 0 0 0 0 0 0 4 4 0 4 4 0 0 0 0 0 0 4 4 4 4 4 4 4 4 4 4 4
|
||||
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 0 0 0 0 0 0 0 0 0 0 4 4 4 4 0 0 0 0 0 0 0 4 4 4 4 4 4 4 4 4 4 4
|
||||
4 4 4 4 4 4 4 4 4 4 4 4 4 0 4 4 4 4 0 0 0 0 0 0 0 0 0 0 0 4 4 4 0 0 0 0 0 4 0 4 4 4 4 4 4 4 4 4 4 4
|
||||
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 4 4 4 4 4 4 4 4 4 4 4
|
||||
4 4 4 4 4 4 4 4 4 4 4 4 4 0 4 4 4 4 4 0 0 0 0 0 0 0 0 4 4 4 4 0 0 0 0 0 0 0 0 4 4 4 4 4 4 4 4 4 4 4
|
||||
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 0 0 0 0 0 0 4 4 4 4 4 0 0 4 0 0 4 0 0 4 4 4 4 4 4 4 4 4 4 4
|
||||
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 0 0 0 0 0 0 4 4 4 4 4 4 4 4 4 4 4 4
|
||||
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
|
||||
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
|
||||
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
|
||||
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
|
||||
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
|
||||
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
|
||||
76
assets/maps/tiledata
Normal file
@@ -0,0 +1,76 @@
|
||||
000.png
|
||||
false
|
||||
001.png
|
||||
false
|
||||
002.png
|
||||
false
|
||||
003.png
|
||||
false
|
||||
004.png
|
||||
false
|
||||
005.png
|
||||
false
|
||||
006.png
|
||||
false
|
||||
007.png
|
||||
false
|
||||
008.png
|
||||
false
|
||||
009.png
|
||||
false
|
||||
010.png
|
||||
false
|
||||
011.png
|
||||
false
|
||||
012.png
|
||||
false
|
||||
013.png
|
||||
false
|
||||
014.png
|
||||
false
|
||||
015.png
|
||||
false
|
||||
016.png
|
||||
true
|
||||
017.png
|
||||
false
|
||||
018.png
|
||||
true
|
||||
019.png
|
||||
true
|
||||
020.png
|
||||
true
|
||||
021.png
|
||||
true
|
||||
022.png
|
||||
true
|
||||
023.png
|
||||
true
|
||||
024.png
|
||||
true
|
||||
025.png
|
||||
true
|
||||
026.png
|
||||
true
|
||||
027.png
|
||||
true
|
||||
028.png
|
||||
true
|
||||
029.png
|
||||
true
|
||||
030.png
|
||||
true
|
||||
031.png
|
||||
true
|
||||
032.png
|
||||
true
|
||||
033.png
|
||||
false
|
||||
034.png
|
||||
false
|
||||
035.png
|
||||
true
|
||||
036.png
|
||||
false
|
||||
037.png
|
||||
false
|
||||
76
assets/maps/tiledata (old)
Normal file
@@ -0,0 +1,76 @@
|
||||
035.png
|
||||
true
|
||||
026.png
|
||||
true
|
||||
019.png
|
||||
true
|
||||
018.png
|
||||
true
|
||||
000.png
|
||||
false
|
||||
009.png
|
||||
false
|
||||
037.png
|
||||
false
|
||||
007.png
|
||||
false
|
||||
034.png
|
||||
false
|
||||
028.png
|
||||
true
|
||||
008.png
|
||||
false
|
||||
001.png
|
||||
false
|
||||
036.png
|
||||
false
|
||||
005.png
|
||||
false
|
||||
021.png
|
||||
true
|
||||
013.png
|
||||
false
|
||||
023.png
|
||||
true
|
||||
032.png
|
||||
true
|
||||
029.png
|
||||
true
|
||||
031.png
|
||||
true
|
||||
033.png
|
||||
true
|
||||
014.png
|
||||
false
|
||||
025.png
|
||||
true
|
||||
016.png
|
||||
true
|
||||
003.png
|
||||
false
|
||||
024.png
|
||||
true
|
||||
030.png
|
||||
true
|
||||
004.png
|
||||
false
|
||||
010.png
|
||||
false
|
||||
027.png
|
||||
true
|
||||
012.png
|
||||
false
|
||||
006.png
|
||||
false
|
||||
015.png
|
||||
false
|
||||
020.png
|
||||
true
|
||||
017.png
|
||||
false
|
||||
011.png
|
||||
false
|
||||
022.png
|
||||
true
|
||||
002.png
|
||||
false
|
||||
@@ -1,50 +0,0 @@
|
||||
12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12
|
||||
12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12
|
||||
12 12 12 12 12 12 12 13 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 12 12 12 12 12 12 12 13 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12
|
||||
12 12 12 12 13 12 12 12 12 12 12 13 12 12 12 12 12 12 13 12 12 12 12 12 12 12 12 13 12 12 12 12 12 12 12 12 12 12 12 12 12 13 12 12 12 12 12 12 12 12
|
||||
12 12 12 12 12 12 12 12 12 13 12 12 12 12 12 13 12 12 12 12 12 12 12 13 12 12 12 12 12 12 12 13 12 12 13 12 12 12 13 12 12 12 12 12 12 12 12 12 12 12
|
||||
12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 12 12 12 12 12 12 12 13 12 12 12 12 12 12 13 12 12 12 12 12 12 13 12 12 12 12 12 12
|
||||
12 12 12 12 12 12 12 13 22 20 20 20 20 20 20 20 23 12 22 20 20 20 20 20 20 20 20 23 12 12 12 22 20 20 20 20 20 20 20 20 20 20 23 12 12 12 12 12 12 12
|
||||
12 12 12 12 12 12 12 12 18 41 40 40 40 40 40 41 19 20 21 41 10 10 11 10 10 10 10 19 20 20 20 21 41 10 35 33 33 33 33 33 33 36 17 12 12 13 12 12 12 12
|
||||
12 12 13 12 12 12 12 12 18 41 40 39 39 39 40 41 41 41 41 41 10 14 15 15 15 16 10 41 41 41 41 41 41 41 31 26 26 26 26 26 26 30 17 12 12 12 12 12 12 12
|
||||
12 12 12 12 12 12 12 12 18 41 40 39 39 39 40 41 41 41 41 41 10 17 12 12 12 18 10 41 41 41 41 41 41 41 31 26 26 26 26 26 26 30 17 12 12 12 12 12 12 12
|
||||
12 12 12 13 12 12 12 12 18 41 40 39 39 39 40 41 41 41 41 41 10 17 12 12 12 18 11 41 41 41 41 41 41 41 31 26 26 26 26 26 26 30 17 12 13 12 12 12 12 12
|
||||
12 12 12 12 13 12 12 12 18 41 40 39 39 39 40 41 41 41 41 41 10 19 20 20 20 21 10 41 41 41 41 41 41 41 31 26 26 26 26 26 26 30 17 12 12 12 12 12 12 12
|
||||
12 12 12 12 12 12 12 12 18 41 40 40 39 40 40 41 41 41 41 41 11 10 35 33 36 10 10 10 10 10 10 10 10 10 37 28 28 29 26 27 28 38 17 13 12 12 12 12 12 12
|
||||
12 12 12 12 12 12 12 12 18 41 41 41 10 41 41 41 41 41 41 41 41 41 31 26 30 41 41 41 41 41 41 41 41 41 41 41 41 31 26 30 14 15 25 12 12 12 12 12 12 12
|
||||
12 12 12 12 13 12 12 12 24 16 41 41 10 41 41 41 41 41 41 41 41 41 31 26 30 41 41 41 41 41 41 41 41 41 41 41 41 31 26 30 17 12 12 12 12 13 12 12 12 12
|
||||
12 12 12 12 12 12 12 12 12 18 41 41 10 41 41 41 41 41 41 41 41 41 31 26 30 41 41 41 41 41 41 41 41 41 41 41 41 31 26 30 17 12 12 12 12 12 12 12 12 12
|
||||
12 12 12 12 12 12 12 12 22 21 41 41 10 41 41 41 41 41 41 41 41 41 31 26 30 10 10 10 41 41 41 41 41 41 41 41 41 31 26 30 17 12 12 12 12 12 13 12 12 12
|
||||
12 12 13 12 12 12 12 22 21 41 41 41 10 41 41 41 41 41 41 41 41 41 31 26 30 41 41 41 41 41 41 41 41 41 41 35 33 34 26 30 17 12 12 13 12 12 12 12 12 12
|
||||
12 12 12 12 12 12 12 18 41 41 10 10 10 41 41 41 41 41 41 41 41 41 31 26 30 41 41 41 41 41 41 41 41 41 41 31 26 26 26 30 17 12 12 12 12 12 12 12 12 12
|
||||
12 12 12 13 12 12 12 18 41 41 10 41 41 41 41 41 41 41 41 41 41 10 31 26 30 10 41 41 41 41 41 41 41 41 41 31 26 27 28 38 17 12 13 12 12 12 12 12 12 12
|
||||
12 12 12 12 12 12 12 18 41 41 10 41 41 10 35 33 33 33 33 33 33 33 34 26 32 33 33 33 33 36 41 41 41 35 33 34 26 30 10 41 17 12 12 12 12 12 12 12 12 12
|
||||
12 12 12 12 12 13 12 18 41 41 10 41 41 11 31 26 26 26 26 26 26 26 26 26 26 26 26 26 26 30 10 10 10 31 26 26 26 30 10 14 25 12 12 12 12 12 12 12 12 12
|
||||
12 12 12 12 12 12 13 18 41 41 10 41 41 10 37 28 28 28 28 28 28 28 29 26 27 28 28 28 28 38 41 41 41 37 28 29 26 30 10 17 12 13 12 12 12 12 12 12 12 12
|
||||
12 12 12 12 12 12 12 24 16 41 10 41 41 10 41 41 41 41 41 41 41 10 31 26 30 10 41 41 41 41 41 41 41 41 41 31 26 30 10 17 12 12 12 12 13 12 12 12 12 12
|
||||
12 12 12 12 12 12 12 12 18 41 10 41 41 10 41 41 41 41 41 41 41 41 31 26 30 41 41 41 41 41 41 41 41 41 41 31 26 30 11 17 12 12 12 12 12 12 12 12 12 12
|
||||
12 12 12 12 12 13 12 22 21 41 10 41 41 10 10 41 41 41 41 41 41 41 31 26 30 41 41 41 41 41 41 41 41 41 41 31 26 30 10 17 12 12 12 13 12 12 12 12 12 12
|
||||
12 12 12 12 12 12 12 18 41 41 10 41 41 41 10 41 41 41 41 41 41 41 31 26 30 41 41 41 41 41 41 41 41 41 41 31 26 30 10 17 12 12 12 12 12 12 12 12 12 12
|
||||
12 12 12 13 12 12 12 18 41 41 10 41 41 41 10 41 41 41 41 41 41 41 31 26 30 41 41 10 41 41 41 41 41 41 41 31 26 30 10 17 12 13 12 12 12 12 12 12 12 12
|
||||
12 12 12 12 12 12 12 18 41 41 10 41 41 41 10 41 41 41 41 41 41 41 31 26 30 41 41 41 41 41 10 41 41 41 41 31 26 30 10 17 12 12 12 12 12 12 12 12 12 12
|
||||
12 12 12 12 12 12 13 18 41 41 10 10 10 10 10 10 41 41 41 41 41 41 31 26 30 41 41 41 41 41 10 41 41 41 41 37 28 38 10 17 12 12 12 12 13 12 12 12 12 12
|
||||
12 12 12 12 12 12 12 18 41 41 11 10 10 10 10 10 41 41 41 41 41 41 31 26 30 41 41 41 41 41 41 41 41 41 41 41 10 41 14 25 12 12 13 12 12 12 12 12 12 12
|
||||
12 12 12 12 12 12 12 24 16 41 10 10 10 10 10 10 41 41 41 41 41 41 31 26 30 41 41 41 41 41 41 41 41 41 41 10 10 10 17 12 12 12 12 12 12 12 12 12 12 12
|
||||
12 12 12 12 12 13 12 12 18 41 10 10 10 11 10 10 41 41 41 41 41 41 31 26 30 41 41 41 41 41 41 41 41 41 41 10 10 10 17 12 12 12 12 12 12 12 13 12 12 12
|
||||
12 12 12 12 12 12 12 12 18 41 10 10 10 10 10 10 41 41 41 41 41 41 31 26 30 41 41 41 41 41 41 41 41 41 41 10 10 11 17 12 12 13 12 12 12 12 12 12 12 12
|
||||
12 12 12 12 12 12 12 12 18 41 10 10 10 10 10 10 41 41 41 41 41 41 31 26 30 41 41 41 41 41 41 41 41 41 41 10 10 10 17 12 12 12 12 12 12 12 12 12 12 12
|
||||
12 12 12 12 13 12 12 22 21 41 41 41 41 41 41 41 41 41 41 41 41 41 37 28 38 41 41 41 41 41 41 41 41 41 41 11 10 10 19 23 12 12 12 12 12 12 12 12 12 12
|
||||
12 12 12 12 12 12 12 18 41 41 41 41 41 41 41 41 41 41 41 41 10 10 10 10 10 10 10 41 41 41 41 41 41 41 10 10 10 10 10 19 23 12 12 12 13 12 12 12 12 12
|
||||
12 12 12 12 12 12 13 18 41 41 41 41 41 41 41 41 41 41 41 10 10 10 10 10 10 10 10 10 41 41 10 41 41 10 10 10 10 10 10 10 17 12 12 12 12 12 12 12 12 12
|
||||
12 12 12 12 12 12 12 18 41 41 41 41 41 41 41 41 41 41 41 11 10 10 10 10 10 11 10 10 41 41 41 41 10 10 10 10 10 11 10 10 17 12 13 12 12 12 12 12 12 12
|
||||
12 12 12 12 12 12 12 18 41 41 42 41 41 41 41 41 41 41 41 10 11 10 10 10 10 10 10 10 10 41 41 41 10 10 10 10 10 41 10 10 17 12 12 12 12 12 12 12 12 12
|
||||
12 12 13 12 12 12 12 18 41 41 10 41 41 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 41 10 10 10 10 10 17 12 12 12 12 13 12 12 12 12
|
||||
12 12 12 12 12 12 12 18 41 41 10 10 10 10 41 14 15 15 16 10 10 10 10 10 11 10 10 14 15 15 16 10 10 10 10 10 10 10 11 10 17 12 12 12 12 12 12 13 12 12
|
||||
12 12 12 12 12 12 12 18 41 41 41 41 41 41 14 25 12 12 24 16 10 10 10 10 10 10 14 25 12 12 18 10 10 41 10 10 41 10 10 10 17 12 12 12 12 12 12 12 12 12
|
||||
12 12 12 12 13 12 12 24 15 15 15 15 15 15 25 12 12 12 12 24 15 15 15 15 15 15 25 12 13 12 24 16 10 11 10 10 10 10 14 15 25 12 13 12 12 12 12 12 12 12
|
||||
12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 12 12 12 12 12 12 12 12 12 12 12 12 24 15 15 15 15 15 15 25 12 12 12 12 12 12 12 13 12 12 12
|
||||
12 12 12 12 12 12 12 12 12 12 12 13 12 12 12 12 13 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 12 12 12 12 12 12 13 12 12 12 12 12 12
|
||||
12 12 12 12 12 12 13 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 12 12 12 12 13 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12
|
||||
12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 12 12 12 12 12 13 12 12 12 12 12 12 12 12 12 12 12 13 12 12 12 12 12 12 13 12 12 12 12 12 12 12 12 12 12
|
||||
12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 12 12 12 12
|
||||
12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12
|
||||
50
assets/maps/worldmap.map
Normal file
@@ -0,0 +1,50 @@
|
||||
18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 18 18 19 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 19 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 19 18 18 18 18 18 18 18 19 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 19 18 18 18 18 18 18 18 18 18 18 19 18 18 18 18 19 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 18 18 18 18 18 19 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 19 18 19 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 18 28 26 26 26 26 26 26 26 29 18 28 26 26 26 26 26 26 26 26 29 18 18 18 28 26 26 26 26 26 26 26 26 26 26 29 18 18 18 18 18 18 18
|
||||
18 19 18 18 18 18 18 18 24 16 32 32 32 32 32 16 25 26 27 16 1 1 1 1 1 1 1 25 26 26 26 27 16 1 12 10 10 10 10 10 10 13 23 18 18 19 18 18 18 18
|
||||
18 18 18 18 18 18 18 18 24 16 32 17 17 17 32 16 16 16 16 16 1 20 21 21 21 22 1 16 16 16 16 16 16 16 8 3 3 3 3 3 3 7 23 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 18 24 16 32 17 36 17 32 16 16 16 16 16 1 23 18 18 18 24 1 16 16 16 16 16 16 16 8 3 3 3 3 3 3 7 23 18 18 18 18 19 18 18
|
||||
18 18 18 18 18 18 18 18 24 16 32 17 17 17 32 16 16 16 16 16 1 23 18 18 18 24 1 16 16 16 16 16 16 16 8 3 3 3 3 3 3 7 23 19 18 18 18 18 18 18
|
||||
18 18 19 18 18 18 18 18 24 16 32 17 17 17 32 16 16 16 16 16 1 25 26 26 26 27 1 16 16 16 16 16 16 16 8 3 3 3 3 3 3 7 23 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 19 18 18 24 16 32 32 17 32 32 16 16 16 16 16 1 1 12 10 13 1 1 1 1 1 1 1 1 1 14 5 5 6 3 4 5 15 23 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 18 24 16 16 16 1 16 16 16 16 16 16 16 16 16 8 3 7 16 16 16 16 16 16 16 16 16 16 16 16 8 3 7 20 21 31 18 18 18 19 18 18 18
|
||||
18 18 18 18 18 18 18 18 30 22 16 16 1 16 16 16 16 16 16 16 16 16 8 3 7 16 16 16 16 16 16 16 16 16 16 16 16 8 3 7 23 18 18 18 18 18 18 18 18 18
|
||||
18 19 18 18 18 18 18 19 18 24 16 16 1 16 16 16 16 16 16 16 16 16 8 3 7 16 16 16 16 16 16 16 16 16 16 16 16 8 3 7 23 19 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 18 28 27 16 16 1 16 16 16 16 16 16 16 16 16 8 3 7 1 1 1 16 16 16 16 16 16 16 16 16 8 3 7 23 18 18 19 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 28 27 16 16 16 1 16 16 16 16 16 16 16 16 16 8 3 7 16 16 16 16 16 16 16 16 16 16 12 10 11 3 7 23 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 24 16 16 1 1 1 16 16 16 16 16 16 16 16 16 8 3 7 16 16 16 16 16 16 16 16 16 16 8 3 3 3 7 23 18 18 18 18 18 19 18 18 18
|
||||
18 18 18 18 18 19 18 24 16 16 1 16 16 16 16 16 16 16 16 16 16 1 8 3 7 1 16 16 16 16 16 16 16 16 16 8 3 4 5 15 23 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 24 16 16 1 16 16 1 12 10 10 10 10 10 10 10 11 3 9 10 10 10 10 13 16 16 16 12 10 11 3 7 1 16 23 18 18 19 18 18 18 18 18 18
|
||||
18 18 18 19 18 18 18 24 16 16 1 16 16 1 8 3 3 3 3 3 3 3 3 3 3 3 3 3 3 7 1 1 1 8 3 3 3 7 1 20 31 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 24 16 16 1 16 16 1 14 5 5 5 5 5 5 5 6 3 4 5 5 5 5 15 16 16 16 14 5 6 3 7 2 23 18 18 19 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 30 22 16 1 16 16 1 16 16 16 16 16 16 16 1 8 3 7 1 16 16 16 16 16 16 16 16 16 8 3 7 1 23 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 18 24 16 1 16 16 1 16 16 16 16 16 16 16 16 8 3 7 16 16 16 16 16 16 16 16 16 16 8 3 7 1 23 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 28 27 16 1 16 16 1 1 16 16 16 16 16 16 16 8 3 7 16 16 16 16 16 16 16 16 16 16 8 3 7 1 23 18 18 18 18 18 18 19 18 18 18
|
||||
18 18 18 19 18 18 18 24 16 16 1 16 16 16 1 16 16 16 16 16 16 16 8 3 7 16 16 16 16 16 16 16 16 16 16 8 3 7 1 23 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 24 16 16 1 16 16 16 1 16 16 16 16 16 16 16 8 3 7 1 1 1 16 16 16 16 16 16 16 8 3 7 1 23 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 24 16 16 1 16 16 16 1 16 16 16 16 16 16 16 8 3 7 16 16 1 16 16 16 16 16 16 16 8 3 7 1 23 18 18 19 18 18 18 18 18 18 18
|
||||
18 18 19 18 18 18 18 24 16 16 1 1 1 1 1 1 16 16 16 16 16 16 8 3 7 16 16 1 16 16 1 16 16 16 16 14 5 15 1 23 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 24 16 16 1 2 1 1 1 1 16 16 16 16 16 16 8 3 7 16 16 1 16 16 1 16 16 16 16 16 1 16 20 31 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 19 30 22 16 1 1 1 1 1 1 16 16 16 16 16 16 8 3 7 16 16 1 1 1 1 16 16 16 16 16 1 1 23 18 19 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 18 24 16 1 1 1 2 1 1 16 16 16 16 16 16 8 3 7 16 16 16 16 16 16 16 16 16 16 1 1 1 23 18 18 18 18 18 18 18 18 19 18 18
|
||||
18 18 18 18 18 18 18 18 24 16 1 1 1 1 1 1 16 16 16 16 16 16 8 3 7 16 16 16 16 16 16 16 16 16 16 1 1 2 23 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 19 18 18 18 24 16 1 1 1 1 1 1 16 16 16 16 16 16 8 3 7 16 16 16 16 16 16 16 16 16 16 1 1 1 23 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 28 27 16 16 16 16 16 16 16 16 16 16 16 16 16 14 5 15 16 16 16 16 16 16 16 16 16 16 1 1 1 25 29 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 24 16 16 16 16 16 16 16 16 16 16 16 16 1 1 1 1 1 1 1 16 16 16 16 16 16 16 1 1 1 1 1 25 29 18 18 19 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 24 16 16 16 16 16 16 16 16 16 16 16 1 1 1 1 2 1 1 1 1 16 16 1 16 16 1 1 2 1 1 1 1 23 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 24 16 16 16 16 16 16 16 16 16 16 16 1 1 1 1 1 1 1 1 1 16 16 16 16 1 1 1 1 1 1 1 1 23 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 24 16 16 33 16 16 16 16 16 16 16 16 1 1 1 1 1 1 1 2 1 1 16 16 16 1 1 1 1 1 16 1 2 23 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 19 18 24 16 16 1 16 16 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 16 1 1 1 1 1 23 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 24 16 16 1 1 1 1 16 20 21 21 22 1 1 1 1 1 1 1 1 20 21 21 22 1 1 1 1 1 1 1 1 1 23 18 18 18 18 18 18 18 18 18
|
||||
18 19 18 18 18 18 18 24 16 16 16 16 16 16 20 31 18 18 30 22 1 1 1 1 1 1 20 31 18 18 24 1 1 16 1 1 16 1 1 1 23 18 18 18 18 18 19 18 18 18
|
||||
18 18 18 18 18 18 18 30 21 21 21 21 21 21 31 18 18 18 18 30 21 21 21 21 21 21 31 18 18 18 30 22 1 1 1 1 1 1 20 21 31 18 19 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 18 18 18 18 18 18 18 19 18 18 18 18 18 18 18 18 18 18 18 18 18 19 18 18 30 21 21 21 21 21 21 31 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 19 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 19 18 18 18 18 18 18 19 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 18 18 19 18 18 18 18 18 18 18 18 18 18 18 18 18 19 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 19 18 18 18 18
|
||||
18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
|
||||
50
assets/maps/worldmap_old_.map
Normal file
@@ -0,0 +1,50 @@
|
||||
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
|
||||
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
|
||||
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
|
||||
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
|
||||
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
|
||||
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
|
||||
3 3 3 3 3 3 3 3 9 1 1 1 1 1 1 1 18 3 9 1 1 1 1 1 1 1 1 18 3 3 3 9 1 1 1 1 1 1 1 1 1 1 18 3 3 3 3 3 3 3
|
||||
3 3 3 3 3 3 3 3 25 23 17 17 17 17 17 23 22 1 29 23 11 11 11 11 11 11 11 22 1 1 1 29 23 11 30 28 28 28 28 28 28 15 16 3 3 3 3 3 3 3
|
||||
3 3 3 3 3 3 3 3 25 23 17 34 34 34 17 23 23 23 23 23 11 33 14 14 14 36 11 23 23 23 23 23 23 23 10 24 24 24 24 24 24 7 16 3 3 3 3 3 3 3
|
||||
3 3 3 3 3 3 3 3 25 23 17 34 12 34 17 23 23 23 23 23 11 16 3 3 3 25 11 23 23 23 23 23 23 23 10 24 24 24 24 24 24 7 16 3 3 3 3 3 3 3
|
||||
3 3 3 3 3 3 3 3 25 23 17 34 34 34 17 23 23 23 23 23 11 16 3 3 3 25 11 23 23 23 23 23 23 23 10 24 24 24 24 24 24 7 16 3 3 3 3 3 3 3
|
||||
3 3 3 3 3 3 3 3 25 23 17 34 34 34 17 23 23 23 23 23 11 22 1 1 1 29 11 23 23 23 23 23 23 23 10 24 24 24 24 24 24 7 16 3 3 3 3 3 3 3
|
||||
3 3 3 3 3 3 3 3 25 23 17 17 11 17 17 23 23 23 23 23 11 11 30 28 15 11 11 11 11 11 11 11 11 11 11 13 13 31 24 27 13 32 16 3 3 3 3 3 3 3
|
||||
3 3 3 3 3 3 3 3 25 23 23 23 11 23 23 23 23 23 23 23 23 23 10 24 7 23 23 23 23 23 23 23 23 23 23 23 23 10 24 7 33 14 19 3 3 3 3 3 3 3
|
||||
3 3 3 3 3 3 3 3 26 36 23 23 11 23 23 23 23 23 23 23 23 23 10 24 7 23 23 23 23 23 23 23 23 23 23 23 23 10 24 7 16 3 3 3 3 3 3 3 3 3
|
||||
3 3 3 3 3 3 3 3 3 25 23 23 11 23 23 23 23 23 23 23 23 23 10 24 7 23 23 23 23 23 23 23 23 23 23 23 23 10 24 7 16 3 3 3 3 3 3 3 3 3
|
||||
3 3 3 3 3 3 3 3 9 29 23 23 11 23 23 23 23 23 23 23 23 23 10 24 7 11 11 11 23 23 23 23 23 23 23 23 23 10 24 7 16 3 3 3 3 3 3 3 3 3
|
||||
3 3 3 3 3 3 3 9 29 23 23 23 11 23 23 23 23 23 23 23 23 23 10 24 7 23 23 23 23 23 23 23 23 23 23 30 28 35 24 7 16 3 3 3 3 3 3 3 3 3
|
||||
3 3 3 3 3 3 3 25 23 23 11 11 11 23 23 23 23 23 23 23 23 23 10 24 7 23 23 23 23 23 23 23 23 23 23 10 24 24 24 7 16 3 3 3 3 3 3 3 3 3
|
||||
3 3 3 3 3 3 3 25 23 23 11 23 23 23 23 23 23 23 23 23 23 11 10 24 7 11 23 23 23 23 23 23 23 23 23 10 24 27 13 32 16 3 3 3 3 3 3 3 3 3
|
||||
3 3 3 3 3 3 3 25 23 23 11 23 23 11 30 28 28 28 28 28 28 28 35 24 5 28 28 28 28 15 23 23 23 30 28 35 24 7 11 23 16 3 3 3 3 3 3 3 3 3
|
||||
3 3 3 3 3 3 3 25 23 23 11 23 23 11 10 24 24 24 24 24 24 24 24 24 24 24 24 24 24 7 11 11 11 10 24 24 24 7 11 33 19 3 3 3 3 3 3 3 3 3
|
||||
3 3 3 3 3 3 3 25 23 23 11 23 23 11 21 13 13 13 13 13 13 13 31 24 27 13 13 13 13 32 23 23 23 21 13 31 24 7 11 16 3 3 3 3 3 3 3 3 3 3
|
||||
3 3 3 3 3 3 3 26 36 23 11 23 23 11 23 23 23 23 23 23 23 11 10 24 7 23 23 23 23 23 23 23 23 23 23 10 24 7 11 16 3 3 3 3 3 3 3 3 3 3
|
||||
3 3 3 3 3 3 3 3 25 23 11 23 23 11 23 23 23 23 23 23 23 23 10 24 7 23 23 23 23 23 23 23 23 23 23 10 24 7 11 16 3 3 3 3 3 3 3 3 3 3
|
||||
3 3 3 3 3 3 3 9 29 23 11 23 23 11 11 23 23 23 23 23 23 23 10 24 7 23 23 23 23 23 23 23 23 23 23 10 24 7 11 16 3 3 3 3 3 3 3 3 3 3
|
||||
3 3 3 3 3 3 3 25 23 23 11 23 23 23 11 23 23 23 23 23 23 23 10 24 7 23 23 23 23 23 23 23 23 23 23 10 24 7 11 16 3 3 3 3 3 3 3 3 3 3
|
||||
3 3 3 3 3 3 3 25 23 23 11 23 23 23 11 23 23 23 23 23 23 23 10 24 7 11 11 11 23 23 23 23 23 23 23 10 24 7 11 16 3 3 3 3 3 3 3 3 3 3
|
||||
3 3 3 3 3 3 3 25 23 23 11 23 23 23 11 23 23 23 23 23 23 23 10 24 7 23 23 11 23 23 23 23 23 23 23 10 24 7 11 16 3 3 3 3 3 3 3 3 3 3
|
||||
3 3 3 3 3 3 3 25 23 23 11 11 11 11 11 11 23 23 23 23 23 23 10 24 7 23 23 11 11 11 11 23 23 23 23 21 13 32 11 16 3 3 3 3 3 3 3 3 3 3
|
||||
3 3 3 3 3 3 3 25 23 23 11 11 11 11 11 11 23 23 23 23 23 23 10 24 7 23 23 23 23 23 23 23 23 23 23 23 11 23 33 3 3 3 3 3 3 3 3 3 3 3
|
||||
3 3 3 3 3 3 3 26 36 23 11 11 11 11 11 11 23 23 23 23 23 23 10 24 7 23 23 23 23 23 23 23 23 23 23 23 11 11 16 3 3 3 3 3 3 3 3 3 3 3
|
||||
3 3 3 3 3 3 3 3 25 23 11 11 11 11 11 11 23 23 23 23 23 23 10 24 7 23 23 23 23 23 23 23 23 23 23 11 11 11 16 3 3 3 3 3 3 3 3 3 3 3
|
||||
3 3 3 3 3 3 3 3 25 23 11 11 11 11 11 11 23 23 23 23 23 23 10 24 7 23 23 23 23 23 23 23 23 23 23 11 11 11 16 3 3 3 3 3 3 3 3 3 3 3
|
||||
3 3 3 3 3 3 3 3 25 23 11 11 11 11 11 11 23 23 23 23 23 23 10 24 7 23 23 23 23 23 23 23 23 23 23 11 11 11 16 3 3 3 3 3 3 3 3 3 3 3
|
||||
3 3 3 3 3 3 3 9 29 23 23 23 23 23 23 23 23 23 23 23 23 23 21 13 32 23 23 23 23 23 23 23 23 23 23 11 11 11 22 18 3 3 3 3 3 3 3 3 3 3
|
||||
3 3 3 3 3 3 3 25 23 23 23 23 23 23 23 23 23 23 23 23 11 11 11 11 11 11 11 23 23 23 23 23 23 23 11 11 11 11 11 22 18 3 3 3 3 3 3 3 3 3
|
||||
3 3 3 3 3 3 3 25 23 23 23 23 23 23 23 23 23 23 23 11 11 11 11 11 11 11 11 11 23 23 23 23 23 11 11 11 11 11 11 11 16 3 3 3 3 3 3 3 3 3
|
||||
3 3 3 3 3 3 3 25 23 23 23 23 23 23 23 23 23 23 23 11 11 11 11 11 11 11 11 11 23 23 23 23 11 11 11 11 11 11 11 11 16 3 3 3 3 3 3 3 3 3
|
||||
3 3 3 3 3 3 3 25 23 23 20 23 23 23 23 23 23 23 23 11 11 11 11 11 11 11 11 11 11 23 23 23 11 11 11 11 11 11 11 11 16 3 3 3 3 3 3 3 3 3
|
||||
3 3 3 3 3 3 3 25 23 23 11 23 23 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 16 3 3 3 3 3 3 3 3 3
|
||||
3 3 3 3 3 3 3 25 23 23 11 11 11 11 23 33 14 14 36 11 11 11 11 11 11 11 11 33 14 14 36 11 11 11 11 11 11 11 11 11 16 3 3 3 3 3 3 3 3 3
|
||||
3 3 3 3 3 3 3 25 23 23 23 23 23 23 33 3 3 3 26 36 11 11 11 11 11 11 33 19 3 3 25 11 11 11 11 11 11 11 11 11 16 3 3 3 3 3 3 3 3 3
|
||||
3 3 3 3 3 3 3 26 14 14 14 14 14 14 19 3 3 3 3 26 14 14 14 14 14 14 19 3 3 3 26 36 11 11 11 11 11 11 33 14 19 3 3 3 3 3 3 3 3 3
|
||||
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 26 14 14 14 14 14 14 19 3 3 3 3 3 3 3 3 3 3 3
|
||||
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
|
||||
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
|
||||
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
|
||||
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
|
||||
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
|
||||
BIN
assets/player/guarding/boy_guard_down.png
Normal file
|
After Width: | Height: | Size: 6.3 KiB |
BIN
assets/player/guarding/boy_guard_left.png
Normal file
|
After Width: | Height: | Size: 6.3 KiB |
BIN
assets/player/guarding/boy_guard_right.png
Normal file
|
After Width: | Height: | Size: 6.3 KiB |
BIN
assets/player/guarding/boy_guard_up.png
Normal file
|
After Width: | Height: | Size: 6.1 KiB |
BIN
assets/tiles/000.png
Normal file
|
After Width: | Height: | Size: 5.2 KiB |
|
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 6.2 KiB |
|
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 5.8 KiB |
|
Before Width: | Height: | Size: 6.7 KiB After Width: | Height: | Size: 6.7 KiB |
|
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 6.2 KiB |
|
Before Width: | Height: | Size: 5.9 KiB After Width: | Height: | Size: 5.9 KiB |
|
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 6.1 KiB |
|
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 6.1 KiB |
|
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 6.1 KiB |
|
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 6.1 KiB |
|
Before Width: | Height: | Size: 5.9 KiB After Width: | Height: | Size: 5.9 KiB |
|
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 6.2 KiB |
|
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 5.8 KiB |
|
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 5.8 KiB |
|
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 5.8 KiB |
|
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 5.8 KiB |
|
Before Width: | Height: | Size: 5.9 KiB After Width: | Height: | Size: 5.9 KiB |
|
Before Width: | Height: | Size: 6.0 KiB After Width: | Height: | Size: 6.0 KiB |
|
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 5.8 KiB |
|
Before Width: | Height: | Size: 6.3 KiB After Width: | Height: | Size: 6.3 KiB |
|
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 6.2 KiB |
|
Before Width: | Height: | Size: 5.9 KiB After Width: | Height: | Size: 5.9 KiB |
|
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 6.2 KiB |
|
Before Width: | Height: | Size: 6.0 KiB After Width: | Height: | Size: 6.0 KiB |
|
Before Width: | Height: | Size: 6.0 KiB After Width: | Height: | Size: 6.0 KiB |
|
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 6.1 KiB |
|
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 5.7 KiB |
|
Before Width: | Height: | Size: 6.0 KiB After Width: | Height: | Size: 6.0 KiB |
|
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 5.6 KiB |
|
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 5.6 KiB |
|
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 5.8 KiB |
|
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 5.8 KiB |
|
Before Width: | Height: | Size: 5.9 KiB After Width: | Height: | Size: 5.9 KiB |
|
Before Width: | Height: | Size: 6.6 KiB After Width: | Height: | Size: 6.6 KiB |
|
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 6.2 KiB |
|
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 6.2 KiB |
BIN
assets/tiles/036.png
Normal file
|
After Width: | Height: | Size: 6.1 KiB |
BIN
assets/tiles/037.png
Normal file
|
After Width: | Height: | Size: 6.3 KiB |
@@ -1,4 +1,4 @@
|
||||
package de.miaurizius.jgame2d.ai;
|
||||
package de.miaurizius.jgame2d.aStar;
|
||||
|
||||
public class Node {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package de.miaurizius.jgame2d.ai;
|
||||
package de.miaurizius.jgame2d.aStar;
|
||||
|
||||
import de.miaurizius.jgame2d.core.GamePanel;
|
||||
|
||||
@@ -1,20 +1,37 @@
|
||||
package de.miaurizius.jgame2d.core;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.IOException;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
public class Boot {
|
||||
|
||||
public static final Logger logger = Logger.getLogger("JDGame2D");
|
||||
public static JFrame window;
|
||||
public static GamePanel gamePanel;
|
||||
|
||||
static void main() {
|
||||
static {
|
||||
try {
|
||||
gamePanel = new GamePanel();
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
generateWindow();
|
||||
|
||||
gamePanel.setupGame();
|
||||
gamePanel.startGameThread();
|
||||
}
|
||||
|
||||
public static void generateWindow() {
|
||||
window = new JFrame();
|
||||
window.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
|
||||
window.setResizable(false);
|
||||
window.setTitle("JGame2D");
|
||||
|
||||
GamePanel gamePanel = new GamePanel();
|
||||
window.add(gamePanel);
|
||||
|
||||
gamePanel.config.load();
|
||||
@@ -24,9 +41,6 @@ public class Boot {
|
||||
|
||||
window.setLocationRelativeTo(null);
|
||||
window.setVisible(true);
|
||||
|
||||
gamePanel.setupGame();
|
||||
gamePanel.startGameThread();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,11 +1,15 @@
|
||||
package de.miaurizius.jgame2d.core;
|
||||
|
||||
import de.miaurizius.jgame2d.ai.PathFinder;
|
||||
import de.miaurizius.jgame2d.aStar.PathFinder;
|
||||
import de.miaurizius.jgame2d.core.enums.GameState;
|
||||
import de.miaurizius.jgame2d.core.enums.Map;
|
||||
import de.miaurizius.jgame2d.core.handlers.*;
|
||||
import de.miaurizius.jgame2d.data.Config;
|
||||
import de.miaurizius.jgame2d.data.SaveLoad;
|
||||
import de.miaurizius.jgame2d.entity.Entity;
|
||||
import de.miaurizius.jgame2d.entity.Player;
|
||||
import de.miaurizius.jgame2d.environment.EnvironmentManager;
|
||||
import de.miaurizius.jgame2d.tile.MiniMap;
|
||||
import de.miaurizius.jgame2d.tile.TileManager;
|
||||
import de.miaurizius.jgame2d.tile.interactive.InteractiveTile;
|
||||
|
||||
@@ -14,6 +18,7 @@ import javax.sound.sampled.FloatControl;
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Comparator;
|
||||
import java.util.logging.Level;
|
||||
@@ -37,8 +42,8 @@ public class GamePanel extends JPanel implements Runnable {
|
||||
public Graphics2D fg2;
|
||||
|
||||
// WORLD SETTINGS
|
||||
public final int maxWorldCol = 50;
|
||||
public final int maxWorldRow = 50;
|
||||
public int maxWorldCol = 50;
|
||||
public int maxWorldRow = 50;
|
||||
public Map currentMap = Map.OVERWORLD;
|
||||
|
||||
//FPS
|
||||
@@ -56,6 +61,9 @@ public class GamePanel extends JPanel implements Runnable {
|
||||
public Sound music = new Sound();
|
||||
public Config config = new Config(this);
|
||||
public PathFinder pFinder = new PathFinder(this);
|
||||
public EnvironmentManager eManager = new EnvironmentManager(this);
|
||||
public MiniMap mapMan = new MiniMap(this);
|
||||
public SaveLoad saveLoad = new SaveLoad(this);
|
||||
Thread gameThread;
|
||||
|
||||
// ENTITY AND OBJECT
|
||||
@@ -71,7 +79,7 @@ public class GamePanel extends JPanel implements Runnable {
|
||||
// GAME STATE
|
||||
public GameState gameState;
|
||||
|
||||
public GamePanel() {
|
||||
public GamePanel() throws IOException {
|
||||
this.setPreferredSize(new Dimension(screenWidth, screenHeight));
|
||||
this.setBackground(Color.black);
|
||||
this.setDoubleBuffered(true);
|
||||
@@ -146,6 +154,7 @@ public class GamePanel extends JPanel implements Runnable {
|
||||
}
|
||||
}
|
||||
for(Entity entity : iTile[currentMap.getIndex()]) if(entity != null) entity.update();
|
||||
eManager.update();
|
||||
break;
|
||||
case PAUSE:
|
||||
break;
|
||||
@@ -162,6 +171,11 @@ public class GamePanel extends JPanel implements Runnable {
|
||||
return;
|
||||
}
|
||||
|
||||
if(gameState == GameState.MAP) {
|
||||
mapMan.drawFullMapScreen(fg2);
|
||||
return;
|
||||
}
|
||||
|
||||
// GAME
|
||||
tileM.draw(fg2);
|
||||
for(Entity entity : iTile[currentMap.getIndex()]) if(entity != null) entity.draw(fg2);
|
||||
@@ -177,6 +191,13 @@ public class GamePanel extends JPanel implements Runnable {
|
||||
for(Entity entity : entityList) entity.draw(fg2);
|
||||
entityList.clear();
|
||||
|
||||
// ENVIRONMENT
|
||||
eManager.draw(fg2);
|
||||
|
||||
// MINI MAP
|
||||
mapMan.drawMiniMap(fg2);
|
||||
|
||||
// UI
|
||||
ui.draw(fg2);
|
||||
|
||||
long drawEnd = System.nanoTime();
|
||||
@@ -229,6 +250,7 @@ public class GamePanel extends JPanel implements Runnable {
|
||||
assetSetter.setNPC();
|
||||
assetSetter.setMonster();
|
||||
assetSetter.setITiles();
|
||||
eManager.setup();
|
||||
gameState = GameState.TITLE;
|
||||
|
||||
tempScreen = new BufferedImage(screenWidth, screenHeight, BufferedImage.TYPE_INT_RGB);
|
||||
@@ -244,18 +266,16 @@ public class GamePanel extends JPanel implements Runnable {
|
||||
fScreenWidth = Boot.window.getWidth();
|
||||
fScreenHeight = Boot.window.getHeight();
|
||||
}
|
||||
public void retry() {
|
||||
public void resetGame(boolean restart) {
|
||||
player.setDefaultPositions();
|
||||
player.restoreLife();
|
||||
player.restoreStatus();
|
||||
assetSetter.setNPC();
|
||||
assetSetter.setMonster();
|
||||
}
|
||||
public void restart() {
|
||||
|
||||
if(!restart) return;
|
||||
player.setDefaultValues();
|
||||
assetSetter.setObject();
|
||||
assetSetter.setNPC();
|
||||
assetSetter.setMonster();
|
||||
assetSetter.setITiles();
|
||||
eManager.lighting.resetDay();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import de.miaurizius.jgame2d.core.enums.GameState;
|
||||
import de.miaurizius.jgame2d.entity.Entity;
|
||||
import de.miaurizius.jgame2d.entity.item.CoinObj;
|
||||
import de.miaurizius.jgame2d.entity.item.HeartObj;
|
||||
import de.miaurizius.jgame2d.environment.Lighting;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.image.BufferedImage;
|
||||
@@ -16,16 +17,17 @@ public class UI {
|
||||
|
||||
GamePanel panel;
|
||||
Graphics2D graphics2d;
|
||||
Font font;
|
||||
BufferedImage heart_full, heart_half, heart_blank, coin;
|
||||
ArrayList<String> messages = new ArrayList<>();
|
||||
ArrayList<Integer> messageCounter = new ArrayList<>();
|
||||
public Font font;
|
||||
public String currentDialogue;
|
||||
public Entity tradingNPC;
|
||||
public int commandNum;
|
||||
public int playerSlotCol, playerSlotRow;
|
||||
public int npcSlotCol, npcSlotRow;
|
||||
private int transCounter;
|
||||
private int transCount;
|
||||
private int sleepCount;
|
||||
|
||||
// SUB-STATES
|
||||
public TradeState tradeState = TradeState.SELECT;
|
||||
@@ -64,6 +66,7 @@ public class UI {
|
||||
case GAMEOVER -> drawGameOverScreen();
|
||||
case TRANSITION -> drawTransitionScreen();
|
||||
case TRADE -> drawTradeScreen();
|
||||
case SLEEP -> drawSleepScreen();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -194,11 +197,33 @@ public class UI {
|
||||
for(int i = 0; i < entity.inventory.size(); i++) {
|
||||
|
||||
// EQUIP CURSOR
|
||||
if(entity.inventory.get(i) == entity.currentWeapon || entity.inventory.get(i) == entity.currentShield) {
|
||||
if(
|
||||
entity.inventory.get(i) == entity.currentWeapon ||
|
||||
entity.inventory.get(i) == entity.currentShield ||
|
||||
entity.inventory.get(i) == entity.currentLight
|
||||
) {
|
||||
graphics2d.setColor(new Color(240, 190,90));
|
||||
graphics2d.fillRoundRect(slotX, slotY, panel.tileSize, panel.tileSize, 10, 10);
|
||||
}
|
||||
graphics2d.drawImage(entity.inventory.get(i).down1, slotX, slotY, null);
|
||||
|
||||
// AMOUNT
|
||||
if(entity == panel.player && entity.inventory.get(i).amt > 1) {
|
||||
graphics2d.setFont(graphics2d.getFont().deriveFont(32F));
|
||||
int amtX;
|
||||
int amtY;
|
||||
String amtS = String.valueOf(entity.inventory.get(i).amt);
|
||||
amtX = getAlignedToRightX(amtS, slotX+44);
|
||||
amtY = slotY + panel.tileSize;
|
||||
|
||||
// SHADOW
|
||||
graphics2d.setColor(new Color(60, 60, 60));
|
||||
graphics2d.drawString(amtS, amtX, amtY);
|
||||
// NUMBER
|
||||
graphics2d.setColor(Color.white);
|
||||
graphics2d.drawString(amtS, amtX-3, amtY-3);
|
||||
}
|
||||
|
||||
slotX += slotSize;
|
||||
if (i == 4 || i == 9 || i == 14) {
|
||||
slotX = slotXStart;
|
||||
@@ -344,20 +369,20 @@ public class UI {
|
||||
x = getCenteredX(text);
|
||||
y += panel.tileSize*4;
|
||||
graphics2d.drawString(text, x, y);
|
||||
if(commandNum == 0) graphics2d.drawString(">", x-panel.tileSize, y);
|
||||
if(commandNum == 0) graphics2d.drawString(">", x-panel.tileSize, y);
|
||||
|
||||
text = "Return to title";
|
||||
x = getCenteredX(text);
|
||||
y += 55;
|
||||
graphics2d.drawString(text, x, y);
|
||||
if(commandNum == 1) graphics2d.drawString(">", x-panel.tileSize, y);
|
||||
if(commandNum == 1) graphics2d.drawString(">", x-panel.tileSize, y);
|
||||
}
|
||||
private void drawTransitionScreen() {
|
||||
transCounter++;
|
||||
graphics2d.setColor(new Color(0,0,0, transCounter*5));
|
||||
transCount++;
|
||||
graphics2d.setColor(new Color(0,0,0, transCount *5));
|
||||
graphics2d.fillRect(0, 0, panel.screenWidth, panel.screenHeight);
|
||||
if(transCounter != 50) return;
|
||||
transCounter = 0;
|
||||
if(transCount != 50) return;
|
||||
transCount = 0;
|
||||
panel.gameState = GameState.PLAY;
|
||||
panel.currentMap = panel.eventH.tempMap;
|
||||
panel.player.worldX = panel.tileSize * panel.eventH.tempCol;
|
||||
@@ -373,6 +398,24 @@ public class UI {
|
||||
}
|
||||
panel.keyH.spacePressed = false;
|
||||
}
|
||||
private void drawSleepScreen() {
|
||||
sleepCount++;
|
||||
if(sleepCount < 120) {
|
||||
panel.eManager.lighting.filterAlpha += 0.01F;
|
||||
if(panel.eManager.lighting.filterAlpha >= 1F) panel.eManager.lighting.filterAlpha = 1F;
|
||||
}
|
||||
if(sleepCount >= 120) {
|
||||
panel.eManager.lighting.filterAlpha -= 0.01F;
|
||||
if(panel.eManager.lighting.filterAlpha <= 0F) {
|
||||
panel.eManager.lighting.filterAlpha = 0F;
|
||||
sleepCount = 0;
|
||||
panel.eManager.lighting.dayCount = 0;
|
||||
panel.eManager.lighting.dayState = Lighting.DayState.DAY;
|
||||
panel.gameState = GameState.PLAY;
|
||||
panel.player.getPlayerImage();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// TRADING
|
||||
private void tradeSelect() {
|
||||
@@ -450,15 +493,14 @@ public class UI {
|
||||
drawDialogueScreen();
|
||||
return;
|
||||
}
|
||||
if(panel.player.inventory.size() == panel.player.maxInvSize) {
|
||||
tradeState = TradeState.SELECT;
|
||||
panel.gameState = GameState.DIALOGUE;
|
||||
currentDialogue = "Your inventory is full!";
|
||||
drawDialogueScreen();
|
||||
if(panel.player.canObtainItem(tradingNPC.inventory.get(itemIndex))) {
|
||||
panel.player.coins -= tradingNPC.inventory.get(itemIndex).price;
|
||||
return;
|
||||
}
|
||||
panel.player.coins -= tradingNPC.inventory.get(itemIndex).price;
|
||||
panel.player.inventory.add(tradingNPC.inventory.get(itemIndex));
|
||||
tradeState = TradeState.SELECT;
|
||||
panel.gameState = GameState.DIALOGUE;
|
||||
currentDialogue = "Your inventory is full!";
|
||||
drawDialogueScreen();
|
||||
}
|
||||
}
|
||||
private void tradeSell() {
|
||||
@@ -499,7 +541,8 @@ public class UI {
|
||||
currentDialogue = "You cannot sell an equipped item!";
|
||||
return;
|
||||
}
|
||||
panel.player.inventory.remove(itemIndex);
|
||||
if(panel.player.inventory.get(itemIndex).amt <= 1) panel.player.inventory.remove(itemIndex);
|
||||
else panel.player.inventory.get(itemIndex).amt--;
|
||||
panel.player.coins += Integer.parseInt(price);
|
||||
}
|
||||
}
|
||||
@@ -693,6 +736,7 @@ public class UI {
|
||||
if(commandNum == 1) {
|
||||
graphics2d.drawString(">", textX-25, textY);
|
||||
if(panel.keyH.spacePressed) optionState = OptionState.OVERVIEW;
|
||||
panel.resetGame(true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -5,6 +5,14 @@ public enum Direction {
|
||||
UP,
|
||||
DOWN,
|
||||
LEFT,
|
||||
RIGHT
|
||||
RIGHT;
|
||||
|
||||
public Direction getOpposite() {
|
||||
return switch (this) {
|
||||
case UP -> DOWN;
|
||||
case DOWN -> UP;
|
||||
case LEFT -> RIGHT;
|
||||
case RIGHT -> LEFT;
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -6,10 +6,11 @@ public enum EntityType {
|
||||
NPC,
|
||||
MONSTER,
|
||||
ITEM,
|
||||
WORLD,
|
||||
OBSTACLE,
|
||||
PICKUP,
|
||||
PROJECTILE,
|
||||
WEAPON,
|
||||
LIGHT,
|
||||
SHIELD;
|
||||
|
||||
public enum WeaponType {
|
||||
|
||||
@@ -13,5 +13,7 @@ public enum GameState {
|
||||
GAMEOVER,
|
||||
TRANSITION,
|
||||
TRADE,
|
||||
SLEEP,
|
||||
MAP,
|
||||
|
||||
}
|
||||
|
||||
@@ -2,8 +2,8 @@ package de.miaurizius.jgame2d.core.enums;
|
||||
|
||||
public enum Map {
|
||||
|
||||
OVERWORLD("world3", 0),
|
||||
HUT("hut", 1);
|
||||
OVERWORLD("worldmap", 0),
|
||||
HUT("indoor01", 1);
|
||||
|
||||
private final String name;
|
||||
private final int index;
|
||||
|
||||
@@ -3,9 +3,12 @@ package de.miaurizius.jgame2d.core.handlers;
|
||||
import de.miaurizius.jgame2d.core.GamePanel;
|
||||
import de.miaurizius.jgame2d.core.enums.Map;
|
||||
import de.miaurizius.jgame2d.entity.item.*;
|
||||
import de.miaurizius.jgame2d.entity.monster.OrcMON;
|
||||
import de.miaurizius.jgame2d.entity.npc.MerchantNPC;
|
||||
import de.miaurizius.jgame2d.entity.npc.OldManNPC;
|
||||
import de.miaurizius.jgame2d.entity.monster.GreenSlimeMON;
|
||||
import de.miaurizius.jgame2d.entity.obstacle.ChestObj;
|
||||
import de.miaurizius.jgame2d.entity.obstacle.DoorObj;
|
||||
import de.miaurizius.jgame2d.tile.interactive.DryTreeTI;
|
||||
|
||||
public class AssetSetter {
|
||||
@@ -18,29 +21,24 @@ public class AssetSetter {
|
||||
|
||||
public void setObject() {
|
||||
int i = 0;
|
||||
panel.obj[Map.OVERWORLD.getIndex()][i] = new HeartObj(panel);
|
||||
panel.obj[Map.OVERWORLD.getIndex()][i].worldX = panel.tileSize*25;
|
||||
panel.obj[Map.OVERWORLD.getIndex()][i].worldY = panel.tileSize*23;
|
||||
i++;
|
||||
|
||||
panel.obj[Map.OVERWORLD.getIndex()][i] = new CoinObj(panel);
|
||||
panel.obj[Map.OVERWORLD.getIndex()][i].worldX = panel.tileSize*21;
|
||||
panel.obj[Map.OVERWORLD.getIndex()][i].worldY = panel.tileSize*19;
|
||||
i++;
|
||||
|
||||
panel.obj[Map.OVERWORLD.getIndex()][i] = new AxeObj(panel);
|
||||
panel.obj[Map.OVERWORLD.getIndex()][i].worldX = panel.tileSize*33;
|
||||
panel.obj[Map.OVERWORLD.getIndex()][i].worldY = panel.tileSize*21;
|
||||
i++;
|
||||
|
||||
panel.obj[Map.OVERWORLD.getIndex()][i] = new IronShieldObj(panel);
|
||||
panel.obj[Map.OVERWORLD.getIndex()][i].worldX = panel.tileSize*35;
|
||||
panel.obj[Map.OVERWORLD.getIndex()][i].worldY = panel.tileSize*21;
|
||||
panel.obj[Map.OVERWORLD.getIndex()][i] = new DoorObj(panel);
|
||||
panel.obj[Map.OVERWORLD.getIndex()][i].worldX = panel.tileSize*14;
|
||||
panel.obj[Map.OVERWORLD.getIndex()][i].worldY = panel.tileSize*28;
|
||||
i++;
|
||||
|
||||
panel.obj[Map.OVERWORLD.getIndex()][i] = new PotionObj(panel);
|
||||
panel.obj[Map.OVERWORLD.getIndex()][i].worldX = panel.tileSize*22;
|
||||
panel.obj[Map.OVERWORLD.getIndex()][i].worldY = panel.tileSize*27;
|
||||
panel.obj[Map.OVERWORLD.getIndex()][i] = new DoorObj(panel);
|
||||
panel.obj[Map.OVERWORLD.getIndex()][i].worldX = panel.tileSize*12;
|
||||
panel.obj[Map.OVERWORLD.getIndex()][i].worldY = panel.tileSize*12;
|
||||
i++;
|
||||
|
||||
panel.obj[Map.OVERWORLD.getIndex()][i] = new ChestObj(panel, new KeyObj(panel));
|
||||
panel.obj[Map.OVERWORLD.getIndex()][i].worldX = panel.tileSize*30;
|
||||
panel.obj[Map.OVERWORLD.getIndex()][i].worldY = panel.tileSize*29;
|
||||
i++;
|
||||
}
|
||||
|
||||
@@ -79,6 +77,11 @@ public class AssetSetter {
|
||||
panel.monster[Map.OVERWORLD.getIndex()][i] = new GreenSlimeMON(panel);
|
||||
panel.monster[Map.OVERWORLD.getIndex()][i].worldX = panel.tileSize*38;
|
||||
panel.monster[Map.OVERWORLD.getIndex()][i].worldY = panel.tileSize*42;
|
||||
|
||||
i++;
|
||||
panel.monster[Map.OVERWORLD.getIndex()][i] = new OrcMON(panel);
|
||||
panel.monster[Map.OVERWORLD.getIndex()][i].worldX = panel.tileSize*12;
|
||||
panel.monster[Map.OVERWORLD.getIndex()][i].worldY = panel.tileSize*33;
|
||||
}
|
||||
|
||||
public void setITiles() {
|
||||
@@ -91,6 +94,19 @@ public class AssetSetter {
|
||||
panel.iTile[Map.OVERWORLD.getIndex()][i] = new DryTreeTI(panel,32,12);i++;
|
||||
panel.iTile[Map.OVERWORLD.getIndex()][i] = new DryTreeTI(panel,33,12);i++;
|
||||
|
||||
panel.iTile[Map.OVERWORLD.getIndex()][i] = new DryTreeTI(panel,30,21);i++;
|
||||
|
||||
panel.iTile[Map.OVERWORLD.getIndex()][i] = new DryTreeTI(panel,25,27);i++;
|
||||
panel.iTile[Map.OVERWORLD.getIndex()][i] = new DryTreeTI(panel,26,27);i++;
|
||||
panel.iTile[Map.OVERWORLD.getIndex()][i] = new DryTreeTI(panel,27,27);i++;
|
||||
panel.iTile[Map.OVERWORLD.getIndex()][i] = new DryTreeTI(panel,27,28);i++;
|
||||
panel.iTile[Map.OVERWORLD.getIndex()][i] = new DryTreeTI(panel,27,29);i++;
|
||||
panel.iTile[Map.OVERWORLD.getIndex()][i] = new DryTreeTI(panel,27,30);i++;
|
||||
panel.iTile[Map.OVERWORLD.getIndex()][i] = new DryTreeTI(panel,27,31);i++;
|
||||
panel.iTile[Map.OVERWORLD.getIndex()][i] = new DryTreeTI(panel,28,31);i++;
|
||||
panel.iTile[Map.OVERWORLD.getIndex()][i] = new DryTreeTI(panel,29,31);i++;
|
||||
panel.iTile[Map.OVERWORLD.getIndex()][i] = new DryTreeTI(panel,30,31);i++;
|
||||
|
||||
panel.iTile[Map.OVERWORLD.getIndex()][i] = new DryTreeTI(panel,18,40);i++;
|
||||
panel.iTile[Map.OVERWORLD.getIndex()][i] = new DryTreeTI(panel,17,40);i++;
|
||||
panel.iTile[Map.OVERWORLD.getIndex()][i] = new DryTreeTI(panel,16,40);i++;
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package de.miaurizius.jgame2d.core.handlers;
|
||||
|
||||
import de.miaurizius.jgame2d.core.GamePanel;
|
||||
import de.miaurizius.jgame2d.core.enums.Direction;
|
||||
import de.miaurizius.jgame2d.entity.Entity;
|
||||
|
||||
public class CollisionHandler {
|
||||
@@ -25,7 +26,11 @@ public class CollisionHandler {
|
||||
|
||||
int tileNum1, tileNum2;
|
||||
|
||||
switch(entity.direction) {
|
||||
// TEMP DIRECTION FOR KNOCKBACK
|
||||
Direction direction = entity.direction;
|
||||
if(entity.knockback) direction = entity.knockbackDirection;
|
||||
|
||||
switch(direction) {
|
||||
case UP:
|
||||
entityTopRow = (entityTopWorldY - entity.speed)/panel.tileSize;
|
||||
tileNum1 = panel.tileM.mapTileNum[panel.currentMap.getIndex()][entityLeftCol][entityTopRow];
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package de.miaurizius.jgame2d.core.handlers;
|
||||
|
||||
import de.miaurizius.jgame2d.core.Boot;
|
||||
import de.miaurizius.jgame2d.core.GamePanel;
|
||||
import de.miaurizius.jgame2d.core.enums.Direction;
|
||||
import de.miaurizius.jgame2d.core.enums.GameState;
|
||||
@@ -7,6 +8,7 @@ import de.miaurizius.jgame2d.core.enums.Map;
|
||||
import de.miaurizius.jgame2d.entity.Entity;
|
||||
|
||||
import java.awt.*;
|
||||
import java.util.logging.Level;
|
||||
|
||||
public class EventHandler {
|
||||
|
||||
@@ -104,10 +106,15 @@ public class EventHandler {
|
||||
panel.gameState = GameState.DIALOGUE;
|
||||
panel.player.attackCancel = true;
|
||||
panel.playSE(2);
|
||||
panel.ui.currentDialogue = "You drank the holy water.\nYour life has been recovered!\nBut all monsters respawned... \nGood luck!";
|
||||
panel.player.life = panel.player.maxLife;
|
||||
panel.ui.currentDialogue = "You saved your progress!";
|
||||
//panel.player.life = panel.player.maxLife;
|
||||
canTouchEvent = false;
|
||||
panel.assetSetter.setMonster();
|
||||
try {
|
||||
panel.saveLoad.save();
|
||||
} catch (Exception e) {
|
||||
Boot.logger.log(Level.SEVERE, "Saving game failed!", e);
|
||||
}
|
||||
}
|
||||
private void changeMap(Map map, int col, int row) {
|
||||
panel.gameState = GameState.TRANSITION;
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package de.miaurizius.jgame2d.core.handlers;
|
||||
|
||||
import de.miaurizius.jgame2d.core.Boot;
|
||||
import de.miaurizius.jgame2d.core.GamePanel;
|
||||
import de.miaurizius.jgame2d.core.UI;
|
||||
import de.miaurizius.jgame2d.core.enums.GameState;
|
||||
@@ -7,10 +8,11 @@ import de.miaurizius.jgame2d.core.enums.Map;
|
||||
|
||||
import java.awt.event.KeyEvent;
|
||||
import java.awt.event.KeyListener;
|
||||
import java.util.logging.Level;
|
||||
|
||||
public class KeyHandler implements KeyListener {
|
||||
|
||||
public boolean upPressed, downPressed, leftPressed, rightPressed, spacePressed, shotKeyPressed;
|
||||
public boolean upPressed, downPressed, leftPressed, rightPressed, spacePressed, shotKeyPressed, CTLKeyPressed;
|
||||
public GamePanel panel;
|
||||
public boolean debug;
|
||||
|
||||
@@ -34,7 +36,15 @@ public class KeyHandler implements KeyListener {
|
||||
panel.playMusic(0);
|
||||
break;
|
||||
case 1:
|
||||
// add later
|
||||
System.out.printf("Loading config...%n");
|
||||
try {
|
||||
panel.config.load();
|
||||
panel.saveLoad.load();
|
||||
panel.gameState = GameState.PLAY;
|
||||
panel.playMusic(0);
|
||||
} catch (Exception e) {
|
||||
Boot.logger.log(Level.SEVERE, "Failed to load config", e);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
System.exit(0);
|
||||
@@ -50,9 +60,13 @@ public class KeyHandler implements KeyListener {
|
||||
case KeyEvent.VK_S, KeyEvent.VK_DOWN -> downPressed = true;
|
||||
case KeyEvent.VK_A, KeyEvent.VK_LEFT -> leftPressed = true;
|
||||
case KeyEvent.VK_D, KeyEvent.VK_RIGHT -> rightPressed = true;
|
||||
case KeyEvent.VK_CONTROL -> CTLKeyPressed = true;
|
||||
case KeyEvent.VK_SPACE -> spacePressed = true;
|
||||
//case KeyEvent.VK_F -> shotKeyPressed = true;
|
||||
|
||||
// MINI MAP TOGGLE
|
||||
case KeyEvent.VK_X -> panel.mapMan.miniMapOn = !panel.mapMan.miniMapOn;
|
||||
|
||||
// DEBUG OPTIONS
|
||||
case KeyEvent.VK_T -> debug = !debug;
|
||||
case KeyEvent.VK_R -> {for(Map m : Map.values()) panel.tileM.loadMap(m);}
|
||||
@@ -64,6 +78,7 @@ public class KeyHandler implements KeyListener {
|
||||
panel.ui.commandNum = 0;
|
||||
}
|
||||
case KeyEvent.VK_C -> panel.gameState = GameState.CHARACTER;
|
||||
case KeyEvent.VK_M -> panel.gameState = GameState.MAP;
|
||||
}
|
||||
}
|
||||
private void handlePause(int code) {
|
||||
@@ -147,11 +162,12 @@ public class KeyHandler implements KeyListener {
|
||||
if(panel.ui.commandNum == 0) {
|
||||
panel.gameState = GameState.PLAY;
|
||||
panel.playMusic(0);
|
||||
panel.retry();
|
||||
panel.resetGame(false);
|
||||
}
|
||||
if(panel.ui.commandNum == 1) {
|
||||
panel.gameState = GameState.TITLE;
|
||||
panel.restart();
|
||||
panel.ui.commandNum = 0;
|
||||
panel.resetGame(true);
|
||||
panel.stopMusic();
|
||||
}
|
||||
}
|
||||
@@ -181,6 +197,12 @@ public class KeyHandler implements KeyListener {
|
||||
if(code == KeyEvent.VK_ESCAPE) panel.ui.tradeState = UI.TradeState.SELECT;
|
||||
}
|
||||
}
|
||||
private void handleMap(int code) {
|
||||
switch (code) {
|
||||
// EXIT STATE
|
||||
case KeyEvent.VK_M, KeyEvent.VK_ESCAPE -> panel.gameState = GameState.PLAY;
|
||||
}
|
||||
}
|
||||
|
||||
// UTILITY
|
||||
private void playerInventory(int code) {
|
||||
@@ -254,6 +276,7 @@ public class KeyHandler implements KeyListener {
|
||||
case CHARACTER -> handleCharacter(code);
|
||||
case GAMEOVER -> handleGameOver(code);
|
||||
case TRADE -> handleTrade(code);
|
||||
case MAP -> handleMap(code);
|
||||
}
|
||||
}
|
||||
@Override
|
||||
@@ -264,6 +287,7 @@ public class KeyHandler implements KeyListener {
|
||||
case KeyEvent.VK_S, KeyEvent.VK_DOWN -> downPressed = false;
|
||||
case KeyEvent.VK_A, KeyEvent.VK_LEFT -> leftPressed = false;
|
||||
case KeyEvent.VK_D, KeyEvent.VK_RIGHT -> rightPressed = false;
|
||||
case KeyEvent.VK_CONTROL -> CTLKeyPressed = false;
|
||||
case KeyEvent.VK_F -> shotKeyPressed = false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,6 +34,9 @@ public class Sound {
|
||||
load(11, "assets/sounds/cuttree.wav");
|
||||
load(12, "assets/sounds/gameover.wav");
|
||||
load(13, "assets/sounds/stairs.wav");
|
||||
load(14, "assets/sounds/sleep.wav");
|
||||
load(15, "assets/sounds/blocked.wav");
|
||||
load(16, "assets/sounds/parry.wav");
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
package de.miaurizius.jgame2d.core;
|
||||
package de.miaurizius.jgame2d.data;
|
||||
|
||||
import de.miaurizius.jgame2d.core.GamePanel;
|
||||
|
||||
import java.io.*;
|
||||
import java.util.HashMap;
|
||||
@@ -10,9 +12,12 @@ public class Config {
|
||||
private final GamePanel panel;
|
||||
private final HashMap<String, String> settings = new HashMap<>();
|
||||
|
||||
public Config(GamePanel panel) {
|
||||
public Config(GamePanel panel) throws IOException {
|
||||
this.panel = panel;
|
||||
for (Setting option : Setting.values()) settings.put(option.name, null);
|
||||
new File("gamedata").mkdirs();
|
||||
new File("gamedata/save").mkdirs();
|
||||
new File("gamedata/config").createNewFile();
|
||||
}
|
||||
|
||||
// GENERAL
|
||||
28
src/de/miaurizius/jgame2d/data/DataStorage.java
Normal file
@@ -0,0 +1,28 @@
|
||||
package de.miaurizius.jgame2d.data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class DataStorage implements Serializable {
|
||||
|
||||
// PLAYER STATS
|
||||
int level;
|
||||
int maxLife;
|
||||
int life;
|
||||
int maxMana;
|
||||
int strength;
|
||||
int dexterity;
|
||||
int attack;
|
||||
int defense;
|
||||
int exp;
|
||||
int nextLevelExp;
|
||||
int coins;
|
||||
int worldX, worldY;
|
||||
|
||||
// PLAYER INVENTORY
|
||||
List<String> itemNames = new ArrayList<>();
|
||||
List<Integer> itemAmounts = new ArrayList<>();
|
||||
|
||||
|
||||
}
|
||||
82
src/de/miaurizius/jgame2d/data/SaveLoad.java
Normal file
@@ -0,0 +1,82 @@
|
||||
package de.miaurizius.jgame2d.data;
|
||||
|
||||
import de.miaurizius.jgame2d.core.GamePanel;
|
||||
import de.miaurizius.jgame2d.entity.Entity;
|
||||
|
||||
import java.io.*;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
|
||||
public class SaveLoad {
|
||||
|
||||
GamePanel panel;
|
||||
|
||||
public SaveLoad(GamePanel panel) {
|
||||
this.panel = panel;
|
||||
}
|
||||
|
||||
public Entity getObject(String itemName) {
|
||||
Entity obj;
|
||||
try {
|
||||
obj = (Entity) Class.forName(itemName).getDeclaredConstructor().newInstance(panel);
|
||||
} catch (ClassNotFoundException | NoSuchMethodException | InstantiationException | IllegalAccessException |
|
||||
InvocationTargetException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
return obj;
|
||||
}
|
||||
|
||||
public void save() throws IOException {
|
||||
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("gamedata/save/savegame.dat"));
|
||||
DataStorage ds = new DataStorage();
|
||||
|
||||
// PLAYER STATS
|
||||
ds.level = panel.player.level;
|
||||
ds.maxLife = panel.player.maxLife;
|
||||
ds.life = panel.player.life;
|
||||
ds.maxMana = panel.player.maxMana;
|
||||
ds.strength = panel.player.strength;
|
||||
ds.dexterity = panel.player.dexterity;
|
||||
ds.attack = panel.player.attack;
|
||||
ds.defense = panel.player.defense;
|
||||
ds.exp = panel.player.exp;
|
||||
ds.nextLevelExp = panel.player.nextLevelExp;
|
||||
ds.coins = panel.player.coins;
|
||||
ds.worldX = panel.player.worldX;
|
||||
ds.worldY = panel.player.worldY;
|
||||
|
||||
// PLAYER INVENTORY
|
||||
for(int i = 0; i < panel.player.inventory.size(); i++) {
|
||||
ds.itemNames.add(panel.player.inventory.get(i).getClass().getName());
|
||||
ds.itemAmounts.add(panel.player.inventory.get(i).amt);
|
||||
}
|
||||
|
||||
// WRITE
|
||||
oos.writeObject(ds);
|
||||
}
|
||||
|
||||
public void load() throws ClassNotFoundException, IOException {
|
||||
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("gamedata/save/savegame.dat"));
|
||||
DataStorage ds = (DataStorage) ois.readObject();
|
||||
|
||||
panel.player.level = ds.level;
|
||||
panel.player.maxLife = ds.maxLife;
|
||||
panel.player.life = ds.life;
|
||||
panel.player.maxMana = ds.maxMana;
|
||||
panel.player.strength = ds.strength;
|
||||
panel.player.dexterity = ds.dexterity;
|
||||
panel.player.attack = ds.attack;
|
||||
panel.player.defense = ds.defense;
|
||||
panel.player.exp = ds.exp;
|
||||
panel.player.nextLevelExp = ds.nextLevelExp;
|
||||
panel.player.coins = ds.coins;
|
||||
panel.player.worldX = ds.worldX;
|
||||
panel.player.worldY = ds.worldY;
|
||||
|
||||
for(int i = 0; i < ds.itemNames.size(); i++) {
|
||||
Entity obj = getObject(ds.itemNames.get(i));
|
||||
obj.amt = ds.itemAmounts.get(i);
|
||||
panel.player.inventory.add(obj);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -14,6 +14,8 @@ import java.awt.image.BufferedImage;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
import java.util.logging.Level;
|
||||
|
||||
public class Entity {
|
||||
@@ -21,9 +23,11 @@ public class Entity {
|
||||
protected GamePanel panel;
|
||||
public BufferedImage up1, up2, down1, down2, left1, left2, right1, right2;
|
||||
public BufferedImage attackUp1, attackUp2, attackDown1, attackDown2, attackLeft1, attackLeft2, attackRight1, attackRight2;
|
||||
public BufferedImage guardUp, guardDown, guardLeft, guardRight;
|
||||
public BufferedImage image, image2, image3;
|
||||
public Rectangle solidArea = new Rectangle(0, 0, 48, 48);
|
||||
public Rectangle attackArea = new Rectangle(0, 0, 0, 0);
|
||||
public Entity attacker;
|
||||
public int solidAreaDefaultX, solidAreaDefaultY;
|
||||
public boolean collision;
|
||||
protected String[] dialogue = new String[20];
|
||||
@@ -35,22 +39,29 @@ public class Entity {
|
||||
int dialogueIndex;
|
||||
public boolean collisionOn;
|
||||
public boolean invincible;
|
||||
boolean attacking;
|
||||
public boolean transparent;
|
||||
public boolean attacking;
|
||||
public boolean alive = true;
|
||||
public boolean dying;
|
||||
public boolean hpBarOn;
|
||||
public boolean consumable;
|
||||
public boolean onPath;
|
||||
public boolean knockback;
|
||||
public boolean guarding;
|
||||
public Direction knockbackDirection;
|
||||
|
||||
// COUNTER
|
||||
public int spriteCounter;
|
||||
public int spriteCount;
|
||||
public int actionLock;
|
||||
public int invincibleCount;
|
||||
public int shotAvailableCount;
|
||||
int dyingCount;
|
||||
int hpBarCounter;
|
||||
int hpBarCount;
|
||||
int knockbackCount;
|
||||
|
||||
// CHARACTER ATTRIBUTES
|
||||
public EntityType type;
|
||||
public int defaultSpeed;
|
||||
public String name;
|
||||
public int speed;
|
||||
public int maxLife;
|
||||
@@ -67,8 +78,9 @@ public class Entity {
|
||||
public int mana;
|
||||
public Entity currentWeapon;
|
||||
public Entity currentShield;
|
||||
public Entity currentLight;
|
||||
public Projectile projectile;
|
||||
public ArrayList<Entity> inventory = new ArrayList<>();
|
||||
public List<Entity> inventory = new ArrayList<>();
|
||||
public final int maxInvSize = 20;
|
||||
|
||||
// ITEM ATTRIBUTES
|
||||
@@ -79,6 +91,10 @@ public class Entity {
|
||||
public int useCost;
|
||||
public int value;
|
||||
public int price;
|
||||
public int knockbackVal;
|
||||
public boolean stackable;
|
||||
public int amt = 1;
|
||||
public float lightRadius;
|
||||
|
||||
public Entity(GamePanel panel) {
|
||||
this.panel = panel;
|
||||
@@ -86,33 +102,55 @@ public class Entity {
|
||||
|
||||
// DEFAULT
|
||||
public void update() {
|
||||
setAction();
|
||||
checkCollision();
|
||||
if(knockback) {
|
||||
checkCollision();
|
||||
if(collisionOn) {
|
||||
knockbackCount = 0;
|
||||
knockback = false;
|
||||
speed = defaultSpeed;
|
||||
invincibleCounting();
|
||||
return;
|
||||
}
|
||||
|
||||
if(!collisionOn) {
|
||||
switch (direction) {
|
||||
switch(knockbackDirection) {
|
||||
case UP -> worldY -= speed;
|
||||
case DOWN -> worldY += speed;
|
||||
case LEFT ->worldX -= speed;
|
||||
case RIGHT -> worldX += speed;
|
||||
}
|
||||
}
|
||||
|
||||
spriteCounter++;
|
||||
if(spriteCounter > 24) {
|
||||
if(spriteNum == 1) spriteNum = 2;
|
||||
else if(spriteNum == 2) spriteNum = 1;
|
||||
else spriteNum = 0;
|
||||
spriteCounter = 0;
|
||||
}
|
||||
knockbackCount++;
|
||||
if(knockbackCount != 10) {
|
||||
invincibleCounting();
|
||||
return;
|
||||
}
|
||||
|
||||
// INVINCIBLE COUNTER
|
||||
if(!invincible) return;
|
||||
invincibleCount++;
|
||||
if(invincibleCount > 40) {
|
||||
invincible = false;
|
||||
invincibleCount = 0;
|
||||
knockback = false;
|
||||
knockbackCount = 0;
|
||||
speed = defaultSpeed;
|
||||
} else if(attacking) attacking();
|
||||
else {
|
||||
setAction();
|
||||
checkCollision();
|
||||
|
||||
if(!collisionOn) {
|
||||
switch (direction) {
|
||||
case UP -> worldY -= speed;
|
||||
case DOWN -> worldY += speed;
|
||||
case LEFT ->worldX -= speed;
|
||||
case RIGHT -> worldX += speed;
|
||||
}
|
||||
}
|
||||
|
||||
spriteCount++;
|
||||
if(spriteCount > 24) {
|
||||
if(spriteNum == 1) spriteNum = 2;
|
||||
else if(spriteNum == 2) spriteNum = 1;
|
||||
else spriteNum = 0;
|
||||
spriteCount = 0;
|
||||
}
|
||||
}
|
||||
invincibleCounting();
|
||||
}
|
||||
public void draw(Graphics2D graphics2d) {
|
||||
int screenX = worldX - panel.player.worldX + panel.player.screenX;
|
||||
@@ -132,9 +170,9 @@ public class Entity {
|
||||
graphics2d.setColor(new Color(255, 0, 30));
|
||||
graphics2d.fillRect(screenX, screenY-5, (int) ((double) panel.tileSize/maxLife)*life, 10);
|
||||
|
||||
hpBarCounter++;
|
||||
if(hpBarCounter > 600) { //bar disappears after 10 seconds
|
||||
hpBarCounter = 0;
|
||||
hpBarCount++;
|
||||
if(hpBarCount > 600) { //bar disappears after 10 seconds
|
||||
hpBarCount = 0;
|
||||
hpBarOn = false;
|
||||
}
|
||||
}
|
||||
@@ -142,17 +180,17 @@ public class Entity {
|
||||
// DRAW ENTITY
|
||||
if(invincible) {
|
||||
hpBarOn = true;
|
||||
hpBarCounter = 0;
|
||||
changeOpacity(graphics2d, 0.4f);
|
||||
hpBarCount = 0;
|
||||
if(transparent) changeOpacity(graphics2d, 0.4f);
|
||||
}
|
||||
if(dying) dyingAnimation(graphics2d);
|
||||
if(type == EntityType.PLAYER) { // only modify sprite render position for player because I dont know yet how monster attack sprite are gonna look
|
||||
if(type == EntityType.PLAYER || name.equals("orc")) { // only modify sprite render position for player because I dont know yet how monster attack sprite are gonna look
|
||||
if(attacking) graphics2d.drawImage(parseSpriteATK(),
|
||||
(direction == Direction.LEFT) ? screenX - panel.tileSize : screenX,
|
||||
(direction == Direction.UP) ? screenY - panel.tileSize : screenY, null);
|
||||
else if(guarding) graphics2d.drawImage(parseSpriteGRD(), screenX, screenY, null);
|
||||
else graphics2d.drawImage(parseSprite(), screenX, screenY, null);
|
||||
} else graphics2d.drawImage(parseSprite(), screenX, screenY, null);
|
||||
|
||||
changeOpacity(graphics2d, 1f);
|
||||
}
|
||||
|
||||
@@ -165,13 +203,65 @@ public class Entity {
|
||||
// INTERACTION
|
||||
public void setAction() {}
|
||||
public void damageReaction() {}
|
||||
public void attacking() {
|
||||
if(panel.player.attackCancel && type == EntityType.PLAYER) return;
|
||||
spriteCount++;
|
||||
if(spriteCount <= 5) spriteNum = 1;
|
||||
if(spriteCount > 5 && spriteCount <= 25) {
|
||||
spriteNum = 2;
|
||||
int currentWorldX = worldX;
|
||||
int currentWorldY = worldY;
|
||||
int solidAreaWidth = solidArea.width;
|
||||
int solidAreaHeight = solidArea.height;
|
||||
|
||||
switch(direction) {
|
||||
case UP -> worldY -= attackArea.height;
|
||||
case DOWN -> worldY += attackArea.height;
|
||||
case LEFT -> worldX -= attackArea.width;
|
||||
case RIGHT -> worldX += attackArea.width;
|
||||
}
|
||||
solidArea.width = attackArea.width;
|
||||
solidArea.height = attackArea.height;
|
||||
|
||||
if(type == EntityType.MONSTER) if(panel.collisionH.checkPlayer(this)) damagePlayer(attack);
|
||||
|
||||
if(type == EntityType.PLAYER) {
|
||||
int monsterIndex = panel.collisionH.checkEntity(this, panel.monster[panel.currentMap.getIndex()]);
|
||||
panel.player.damageMonster(monsterIndex, this, attack, currentWeapon.knockbackVal);
|
||||
|
||||
int iTileIndex = panel.collisionH.checkEntity(this, panel.iTile[panel.currentMap.getIndex()]);
|
||||
panel.player.interactTile(iTileIndex);
|
||||
}
|
||||
|
||||
worldX = currentWorldX;
|
||||
worldY = currentWorldY;
|
||||
solidArea.width = solidAreaWidth;
|
||||
solidArea.height = solidAreaHeight;
|
||||
|
||||
}
|
||||
if(spriteCount > 25) {
|
||||
spriteNum = 1;
|
||||
spriteCount = 0;
|
||||
attacking = false;
|
||||
}
|
||||
}
|
||||
public void damagePlayer(int attack) {
|
||||
if(panel.player.invincible) return;
|
||||
panel.playSE(6);
|
||||
|
||||
boolean block = panel.player.guarding && panel.player.direction == this.direction.getOpposite();
|
||||
int damage = attack - panel.player.defense;
|
||||
panel.player.life -= Math.max(damage, 0);
|
||||
|
||||
if(block) {
|
||||
panel.playSE(15);
|
||||
damage = 0;
|
||||
} else panel.playSE(6);
|
||||
|
||||
panel.player.life -= Math.max(damage, (block ? 0 : 1));
|
||||
|
||||
if(damage != 0) {
|
||||
setKnockback(panel.player, this, knockbackVal);
|
||||
panel.player.transparent = true;
|
||||
}
|
||||
panel.player.invincible = true;
|
||||
}
|
||||
public void speak() {
|
||||
@@ -201,7 +291,8 @@ public class Entity {
|
||||
alive = false;
|
||||
}
|
||||
}
|
||||
public void use(Entity entity) {
|
||||
public boolean use(Entity entity) {
|
||||
return false;
|
||||
} //If entity is consumable
|
||||
public void checkDrop() {
|
||||
|
||||
@@ -227,6 +318,42 @@ public class Entity {
|
||||
}
|
||||
}
|
||||
}
|
||||
public void interact() {
|
||||
|
||||
}
|
||||
public int getDetected(Entity user, Entity[][] target, String targetName) {
|
||||
int index = 999;
|
||||
int nextWorldX = user.getLeftX();
|
||||
int nextWorldY = user.getTopY();
|
||||
|
||||
switch(user.direction) {
|
||||
case UP -> nextWorldY = user.getTopY()-panel.player.speed;
|
||||
case DOWN -> nextWorldY = user.getBottomY()+panel.player.speed;
|
||||
case LEFT -> nextWorldX = user.getLeftX()-panel.player.speed;
|
||||
case RIGHT -> nextWorldX = user.getRightX()+panel.player.speed;
|
||||
}
|
||||
int col = nextWorldX / panel.tileSize;
|
||||
int row = nextWorldY / panel.tileSize;
|
||||
|
||||
for(int i = 0; i < target[panel.currentMap.getIndex()].length; i++) {
|
||||
if(target[panel.currentMap.getIndex()][i] == null) continue;
|
||||
if(
|
||||
target[panel.currentMap.getIndex()][i].getCol() == col &&
|
||||
target[panel.currentMap.getIndex()][i].getRow() == row &&
|
||||
target[panel.currentMap.getIndex()][i].name.equalsIgnoreCase(targetName)
|
||||
) {
|
||||
index = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return index;
|
||||
}
|
||||
public void setKnockback(Entity target, Entity attacker, int knockbackVal) {
|
||||
this.attacker = attacker;
|
||||
target.knockbackDirection = attacker.direction;
|
||||
target.speed += knockbackVal;
|
||||
target.knockback = true;
|
||||
}
|
||||
|
||||
// PARTICLE SETUP
|
||||
public Color getParticleColor() {
|
||||
@@ -257,6 +384,42 @@ public class Entity {
|
||||
panel.particleList.add(p4);
|
||||
}
|
||||
|
||||
// GETTERS
|
||||
public int getLeftX() {
|
||||
return worldX + solidArea.x;
|
||||
}
|
||||
public int getRightX() {
|
||||
return worldX + solidArea.x + solidArea.width;
|
||||
}
|
||||
public int getTopY() {
|
||||
return worldY + solidArea.y;
|
||||
}
|
||||
public int getBottomY() {
|
||||
return worldY + solidArea.y + solidArea.height;
|
||||
}
|
||||
public int getCol() {
|
||||
return (worldX + solidArea.x) / panel.tileSize;
|
||||
}
|
||||
public int getRow() {
|
||||
return (worldY + solidArea.y) / panel.tileSize;
|
||||
}
|
||||
public int dX(Entity target) {
|
||||
return Math.abs(worldX - target.worldX);
|
||||
}
|
||||
public int dY(Entity target) {
|
||||
return Math.abs(worldY - target.worldY);
|
||||
}
|
||||
public int dTile(Entity target) {
|
||||
//if(Objects.equals(name, "orc")) System.out.println("dX: " + dX(target) + " dY: " + dY(target));
|
||||
return (dX(target) + dY(target)) / panel.tileSize;
|
||||
}
|
||||
public int getGoalCol(Entity target) {
|
||||
return (target.worldX+target.solidArea.x)/panel.tileSize;
|
||||
}
|
||||
public int getGoalRow(Entity target) {
|
||||
return (target.worldY+target.solidArea.y)/panel.tileSize;
|
||||
}
|
||||
|
||||
// SETTING THINGS UP
|
||||
BufferedImage parseSprite() {
|
||||
return switch (direction) {
|
||||
@@ -274,6 +437,14 @@ public class Entity {
|
||||
case RIGHT -> (spriteNum == 1) ? attackRight1 : attackRight2;
|
||||
};
|
||||
}
|
||||
BufferedImage parseSpriteGRD() {
|
||||
return switch (direction) {
|
||||
case UP -> guardUp;
|
||||
case DOWN -> guardDown;
|
||||
case LEFT -> guardLeft;
|
||||
case RIGHT -> guardRight;
|
||||
};
|
||||
}
|
||||
public BufferedImage initEntitySprites(String name) {
|
||||
try {
|
||||
return Utility.scaleImage(ImageIO.read(new FileInputStream("assets/" + name + ".png")), panel.tileSize, panel.tileSize);
|
||||
@@ -334,5 +505,118 @@ public class Entity {
|
||||
}
|
||||
} else onPath = false;
|
||||
}
|
||||
public void followPlayer() {
|
||||
int goalCol = panel.player.getCol();
|
||||
int goalRow = panel.player.getRow();
|
||||
|
||||
int startCol = (worldX + solidArea.x) / panel.tileSize;
|
||||
int startRow = (worldY + solidArea.y) / panel.tileSize;
|
||||
|
||||
panel.pFinder.setNodes(startCol, startRow, goalCol, goalRow);
|
||||
|
||||
if (panel.pFinder.search()) {
|
||||
int nextCol = panel.pFinder.pathList.getFirst().col;
|
||||
int nextRow = panel.pFinder.pathList.getFirst().row;
|
||||
|
||||
int enLeftX = worldX + solidArea.x;
|
||||
int enTopY = worldY + solidArea.y;
|
||||
|
||||
int targetX = nextCol * panel.tileSize;
|
||||
int targetY = nextRow * panel.tileSize;
|
||||
|
||||
// UP
|
||||
if (nextRow < startRow) {
|
||||
if (enLeftX < targetX) direction = Direction.RIGHT;
|
||||
else if (enLeftX > targetX) direction = Direction.LEFT;
|
||||
else direction = Direction.UP;
|
||||
}
|
||||
// DOWN
|
||||
else if (nextRow > startRow) {
|
||||
if (enLeftX < targetX) direction = Direction.RIGHT;
|
||||
else if (enLeftX > targetX) direction = Direction.LEFT;
|
||||
else direction = Direction.DOWN;
|
||||
|
||||
}
|
||||
else if (nextCol < startCol) { // DOWN LEFT
|
||||
if (enTopY < targetY) direction = Direction.DOWN;
|
||||
else if (enTopY > targetY) direction = Direction.UP;
|
||||
else direction = Direction.LEFT;
|
||||
}
|
||||
else if (nextCol > startCol) { // RIGHT
|
||||
if (enTopY < targetY) direction = Direction.DOWN;
|
||||
else if (enTopY > targetY) direction = Direction.UP;
|
||||
else direction = Direction.RIGHT;
|
||||
}
|
||||
}
|
||||
}
|
||||
public void checkStopChasing(Entity target, int distance, int rate) {
|
||||
//if(Objects.equals(name, "orc")) System.out.println("dTile: " + dTile(target) + " distance: " + distance);
|
||||
if(dTile(target) > distance) onPath = false;
|
||||
}
|
||||
public void checkStartChasing(Entity target, int distance, int rate) {
|
||||
if(dTile(target) < distance) onPath = true;
|
||||
}
|
||||
public void checkShooting(int rate, int shotInterval) {
|
||||
if(new Random().nextInt(rate) == 0 && projectile.alive == false && shotAvailableCount == shotInterval) {
|
||||
projectile.set(worldX, worldY, direction, true, this);
|
||||
|
||||
// CHECK VACANCY
|
||||
for(int ii = 0; ii < panel.projectileList.size(); ii++) {
|
||||
if(panel.projectileList.get(ii) == null) {
|
||||
panel.projectileList.set(ii, projectile);
|
||||
break;
|
||||
}
|
||||
}
|
||||
shotAvailableCount = 0;
|
||||
}
|
||||
}
|
||||
public void checkAttack(int rate, int straight, int horizontal) {
|
||||
boolean targetInRange = false;
|
||||
int xDist = dX(panel.player);
|
||||
int yDist = dY(panel.player);
|
||||
|
||||
switch(direction) {
|
||||
case UP -> {
|
||||
if(panel.player.worldY < worldY && yDist < straight && xDist < horizontal) targetInRange = true;
|
||||
}
|
||||
case DOWN -> {
|
||||
if(panel.player.worldY > worldY && yDist < straight && xDist < horizontal) targetInRange = true;
|
||||
}
|
||||
case LEFT -> {
|
||||
if(panel.player.worldX < worldX && xDist < straight && yDist < horizontal) targetInRange = true;
|
||||
}
|
||||
case RIGHT -> {
|
||||
if(panel.player.worldX > worldX && xDist < straight && yDist < horizontal) targetInRange = true;
|
||||
}
|
||||
}
|
||||
|
||||
if(targetInRange)
|
||||
if (new Random().nextInt(rate) == 0) {
|
||||
attacking = true;
|
||||
spriteNum = 1;
|
||||
spriteCount = 0;
|
||||
shotAvailableCount = 0;
|
||||
}
|
||||
}
|
||||
public void setRandomDirection() {
|
||||
actionLock++;
|
||||
if(actionLock == 120) { //lock action for x frames
|
||||
Random rand = new Random();
|
||||
int i = rand.nextInt(100)+1; //Generate number between 1 and 100
|
||||
if(i <= 25) direction = Direction.UP;
|
||||
if(i > 25 && i <= 50) direction = Direction.DOWN;
|
||||
if(i > 50 && i <= 75) direction = Direction.LEFT;
|
||||
if(i > 75) direction = Direction.RIGHT;
|
||||
actionLock = 0;
|
||||
}
|
||||
}
|
||||
public void invincibleCounting() {
|
||||
if(!invincible) return;
|
||||
invincibleCount++;
|
||||
if(invincibleCount > 40) {
|
||||
invincible = false;
|
||||
invincibleCount = 0;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -4,22 +4,25 @@ import de.miaurizius.jgame2d.core.*;
|
||||
import de.miaurizius.jgame2d.core.enums.Direction;
|
||||
import de.miaurizius.jgame2d.core.enums.EntityType;
|
||||
import de.miaurizius.jgame2d.core.enums.GameState;
|
||||
import de.miaurizius.jgame2d.core.enums.Map;
|
||||
import de.miaurizius.jgame2d.core.handlers.KeyHandler;
|
||||
import de.miaurizius.jgame2d.entity.item.KeyObj;
|
||||
import de.miaurizius.jgame2d.entity.item.ShieldWoodObj;
|
||||
import de.miaurizius.jgame2d.entity.item.SwordNormalObj;
|
||||
import de.miaurizius.jgame2d.entity.projectile.FireballObj;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.image.BufferedImage;
|
||||
|
||||
public class Player extends Entity {
|
||||
|
||||
KeyHandler keyH;
|
||||
public final int screenX;
|
||||
public final int screenY;
|
||||
private int standCount;
|
||||
|
||||
// STATE
|
||||
public boolean attackCancel;
|
||||
public boolean lightUpdated;
|
||||
|
||||
public Player(GamePanel panel, KeyHandler keyH) {
|
||||
super(panel);
|
||||
@@ -42,16 +45,60 @@ public class Player extends Entity {
|
||||
setDefaultValues();
|
||||
getPlayerImage();
|
||||
getPlayerAttackImage();
|
||||
getGuardImages();
|
||||
}
|
||||
|
||||
// DEFAULT
|
||||
public void update() {
|
||||
if(life > maxLife) life = maxLife;
|
||||
|
||||
if(attacking) {
|
||||
if(knockback) {
|
||||
collisionOn = false;
|
||||
panel.collisionH.checkTile(this);
|
||||
panel.collisionH.checkObject(this, false);
|
||||
panel.collisionH.checkEntity(this, panel.npc[panel.currentMap.getIndex()]);
|
||||
// panel.collisionH.checkEntity(this, panel.monster[panel.currentMap.getIndex()]);
|
||||
panel.collisionH.checkEntity(this, panel.iTile[panel.currentMap.getIndex()]);
|
||||
if(collisionOn) {
|
||||
knockbackCount = 0;
|
||||
knockback = false;
|
||||
speed = defaultSpeed;
|
||||
invincibleCounting();
|
||||
return;
|
||||
}
|
||||
|
||||
switch(knockbackDirection) {
|
||||
case UP -> worldY -= speed;
|
||||
case DOWN -> worldY += speed;
|
||||
case LEFT -> worldX -= speed;
|
||||
case RIGHT -> worldX += speed;
|
||||
}
|
||||
|
||||
knockbackCount++;
|
||||
if(knockbackCount != 10) {
|
||||
invincibleCounting();
|
||||
return;
|
||||
}
|
||||
|
||||
knockback = false;
|
||||
knockbackCount = 0;
|
||||
speed = defaultSpeed;
|
||||
invincibleCounting();
|
||||
return;
|
||||
} else if(attacking) {
|
||||
attacking();
|
||||
invincibleCounting();
|
||||
return;
|
||||
}
|
||||
|
||||
// BLOCKING
|
||||
if(keyH.CTLKeyPressed) {
|
||||
guarding = true;
|
||||
transparent = false;
|
||||
invincibleCounting();
|
||||
return;
|
||||
}
|
||||
|
||||
// MOVEMENT
|
||||
if(keyH.upPressed || keyH.downPressed || keyH.leftPressed || keyH.rightPressed || keyH.spacePressed) {
|
||||
if(!keyH.spacePressed) {
|
||||
@@ -87,7 +134,7 @@ public class Player extends Entity {
|
||||
switch (direction) {
|
||||
case UP -> worldY -= speed;
|
||||
case DOWN -> worldY += speed;
|
||||
case LEFT ->worldX -= speed;
|
||||
case LEFT -> worldX -= speed;
|
||||
case RIGHT -> worldX += speed;
|
||||
}
|
||||
}
|
||||
@@ -95,19 +142,27 @@ public class Player extends Entity {
|
||||
if(keyH.spacePressed && !attackCancel) {
|
||||
panel.playSE(7);
|
||||
attacking = true;
|
||||
spriteCounter = 0;
|
||||
spriteCount = 0;
|
||||
}
|
||||
|
||||
attackCancel = false;
|
||||
panel.keyH.spacePressed = false;
|
||||
guarding = false;
|
||||
|
||||
spriteCounter++;
|
||||
if(spriteCounter > 12) {
|
||||
spriteCount++;
|
||||
if(spriteCount > 12) {
|
||||
if(spriteNum == 1) spriteNum = 2;
|
||||
else if(spriteNum == 2) spriteNum = 1;
|
||||
else spriteNum = 0;
|
||||
spriteCounter = 0;
|
||||
spriteCount = 0;
|
||||
}
|
||||
} else {
|
||||
standCount++;
|
||||
if(standCount == 20) {
|
||||
spriteNum = 1;
|
||||
standCount = 0;
|
||||
}
|
||||
guarding = false;
|
||||
}
|
||||
|
||||
if(panel.keyH.shotKeyPressed && !projectile.alive) {
|
||||
@@ -118,14 +173,11 @@ public class Player extends Entity {
|
||||
|
||||
// INVINCIBLE COUNTER
|
||||
if(!invincible) return;
|
||||
invincibleCount++;
|
||||
if(invincibleCount > 60) {
|
||||
invincible = false;
|
||||
invincibleCount = 0;
|
||||
}
|
||||
invincibleCounting();
|
||||
|
||||
if(life <= 0) {
|
||||
panel.gameState = GameState.GAMEOVER;
|
||||
invincibleCount = 0;
|
||||
panel.ui.commandNum = -1;
|
||||
panel.stopMusic();
|
||||
panel.playSE(12);
|
||||
@@ -136,17 +188,25 @@ public class Player extends Entity {
|
||||
public void pickObject(int index) {
|
||||
if(index == 999 || panel.obj[panel.currentMap.getIndex()][index] == null) return;
|
||||
|
||||
// PICKUP ONLY
|
||||
// PICKUP ONLY ITEMS
|
||||
if(panel.obj[panel.currentMap.getIndex()][index].type == EntityType.PICKUP) {
|
||||
panel.obj[panel.currentMap.getIndex()][index].use(this);
|
||||
panel.obj[panel.currentMap.getIndex()][index] = null;
|
||||
return;
|
||||
}
|
||||
// OBSTACLES
|
||||
if(panel.obj[panel.currentMap.getIndex()][index].type == EntityType.OBSTACLE) {
|
||||
if(!keyH.spacePressed) return;
|
||||
attackCancel = true;
|
||||
panel.obj[panel.currentMap.getIndex()][index].interact();
|
||||
return;
|
||||
}
|
||||
// INVENTORY ITEMS
|
||||
else {
|
||||
if(inventory.size() == maxInvSize) {
|
||||
if(!canObtainItem(panel.obj[panel.currentMap.getIndex()][index])) {
|
||||
panel.ui.addMessage("Your inventory is full!");
|
||||
return;
|
||||
}
|
||||
inventory.add(panel.obj[panel.currentMap.getIndex()][index]);
|
||||
panel.playSE(1);
|
||||
panel.ui.addMessage("Picked up " + panel.obj[panel.currentMap.getIndex()][index].name + "!");
|
||||
}
|
||||
@@ -159,52 +219,13 @@ public class Player extends Entity {
|
||||
|
||||
int damage = panel.monster[panel.currentMap.getIndex()][index].attack - defense;
|
||||
|
||||
if(damage > 0) {
|
||||
panel.playSE(6);
|
||||
life -= damage;
|
||||
invincible = true;
|
||||
}
|
||||
panel.playSE(6);
|
||||
life -= Math.max(damage, 0);
|
||||
if(damage != 0) panel.player.transparent = true;
|
||||
invincible = true;
|
||||
|
||||
}
|
||||
public void attacking() {
|
||||
if(attackCancel) return;
|
||||
spriteCounter++;
|
||||
if(spriteCounter <= 5) spriteNum = 1;
|
||||
if(spriteCounter > 5 && spriteCounter <= 25) {
|
||||
spriteNum = 2;
|
||||
int currentWorldX = worldX;
|
||||
int currentWorldY = worldY;
|
||||
int solidAreaWidth = solidArea.width;
|
||||
int solidAreaHeight = solidArea.height;
|
||||
|
||||
switch(direction) {
|
||||
case UP -> worldY -= attackArea.height;
|
||||
case DOWN -> worldY += attackArea.height;
|
||||
case LEFT -> worldX -= attackArea.width;
|
||||
case RIGHT -> worldX += attackArea.width;
|
||||
}
|
||||
solidArea.width = attackArea.width;
|
||||
solidArea.height = attackArea.height;
|
||||
|
||||
int monsterIndex = panel.collisionH.checkEntity(this, panel.monster[panel.currentMap.getIndex()]);
|
||||
damageMonster(monsterIndex, attack);
|
||||
|
||||
int iTileIndex = panel.collisionH.checkEntity(this, panel.iTile[panel.currentMap.getIndex()]);
|
||||
interactTile(iTileIndex);
|
||||
|
||||
worldX = currentWorldX;
|
||||
worldY = currentWorldY;
|
||||
solidArea.width = solidAreaWidth;
|
||||
solidArea.height = solidAreaHeight;
|
||||
|
||||
}
|
||||
if(spriteCounter > 25) {
|
||||
spriteNum = 1;
|
||||
spriteCounter = 0;
|
||||
attacking = false;
|
||||
}
|
||||
}
|
||||
public void damageMonster(int index, int attack) {
|
||||
public void damageMonster(int index, Entity attacker, int attack, int knockbackVal) {
|
||||
if(index == 999) return;
|
||||
if(panel.monster[panel.currentMap.getIndex()][index].invincible) return;
|
||||
|
||||
@@ -212,7 +233,9 @@ public class Player extends Entity {
|
||||
|
||||
if(damage > 0) {
|
||||
panel.playSE(5);
|
||||
if(knockbackVal > 0) setKnockback(panel.monster[panel.currentMap.getIndex()][index], attacker, knockbackVal);
|
||||
panel.monster[panel.currentMap.getIndex()][index].life -= damage;
|
||||
panel.monster[panel.currentMap.getIndex()][index].transparent = true;
|
||||
panel.monster[panel.currentMap.getIndex()][index].invincible = true;
|
||||
}
|
||||
|
||||
@@ -224,6 +247,7 @@ public class Player extends Entity {
|
||||
checkLevelUp();
|
||||
}
|
||||
}
|
||||
|
||||
public void interactTile(int index) {
|
||||
if(index == 999 || !panel.iTile[panel.currentMap.getIndex()][index].destructible || panel.iTile[panel.currentMap.getIndex()][index].invincible) return;
|
||||
if(!panel.iTile[panel.currentMap.getIndex()][index].meetItemReq(this)) return;
|
||||
@@ -274,19 +298,37 @@ public class Player extends Entity {
|
||||
currentShield = selectedItem;
|
||||
getDefense();
|
||||
}
|
||||
if(selectedItem.consumable) {
|
||||
selectedItem.use(this);
|
||||
inventory.remove(itemIndex);
|
||||
if(selectedItem.type == EntityType.LIGHT) {
|
||||
if(currentLight == selectedItem) currentLight = null; else currentLight = selectedItem;
|
||||
lightUpdated = true;
|
||||
}
|
||||
if(selectedItem.consumable)
|
||||
if(selectedItem.use(this))
|
||||
if(selectedItem.amt > 1) selectedItem.amt--; else inventory.remove(selectedItem);
|
||||
}
|
||||
public void setDefaultPositions() {
|
||||
worldX = panel.tileSize * 23;
|
||||
worldY = panel.tileSize * 21;
|
||||
direction = Direction.DOWN;
|
||||
}
|
||||
public void restoreLife() {
|
||||
public void restoreStatus() {
|
||||
life = maxLife;
|
||||
invincible = false;
|
||||
transparent = false;
|
||||
attacking = false;
|
||||
guarding = false;
|
||||
knockback = false;
|
||||
lightUpdated = true;
|
||||
}
|
||||
public void getSleepingImage(BufferedImage image) {
|
||||
down1 = image;
|
||||
down2 = image;
|
||||
up1 = image;
|
||||
up2 = image;
|
||||
left1 = image;
|
||||
left2 = image;
|
||||
right1 = image;
|
||||
right2 = image;
|
||||
}
|
||||
|
||||
// SETTING THINGS UP
|
||||
@@ -294,11 +336,8 @@ public class Player extends Entity {
|
||||
worldX = panel.tileSize * 23;
|
||||
worldY = panel.tileSize * 21;
|
||||
|
||||
// worldX = panel.tileSize * 12;
|
||||
// worldY = panel.tileSize * 12;
|
||||
// panel.currentMap = Map.HUT;
|
||||
|
||||
speed = 4;
|
||||
defaultSpeed = 4;
|
||||
speed = defaultSpeed;
|
||||
direction = Direction.DOWN;
|
||||
|
||||
// PLAYER STATUS (1 heart = 2 lives)
|
||||
@@ -309,9 +348,10 @@ public class Player extends Entity {
|
||||
dexterity = 1;
|
||||
exp = 0;
|
||||
nextLevelExp = 5;
|
||||
coins = 0;
|
||||
coins = 500;
|
||||
currentWeapon = new SwordNormalObj(panel);
|
||||
currentShield = new ShieldWoodObj(panel);
|
||||
currentLight = null;
|
||||
projectile = new FireballObj(panel);
|
||||
attack = getAttack();
|
||||
defense = getDefense();
|
||||
@@ -320,6 +360,7 @@ public class Player extends Entity {
|
||||
inventory.clear();
|
||||
inventory.add(currentWeapon);
|
||||
inventory.add(currentShield);
|
||||
inventory.add(new KeyObj(panel));
|
||||
}
|
||||
public int getAttack() {
|
||||
attackArea = currentWeapon.attackArea;
|
||||
@@ -362,5 +403,44 @@ public class Player extends Entity {
|
||||
break;
|
||||
}
|
||||
}
|
||||
public void getGuardImages() {
|
||||
guardUp = initEntitySprites("player/guarding/boy_guard_up");
|
||||
guardDown = initEntitySprites("player/guarding/boy_guard_down");
|
||||
guardLeft = initEntitySprites("player/guarding/boy_guard_left");
|
||||
guardRight = initEntitySprites("player/guarding/boy_guard_right");
|
||||
}
|
||||
public int searchItemInInventory(String itemName) {
|
||||
for(int i = 0; i < inventory.size(); i++) {
|
||||
if(inventory.get(i).name.equals(itemName)) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return 999;
|
||||
}
|
||||
public boolean canObtainItem(Entity item) {
|
||||
int i = searchItemInInventory(item.name);
|
||||
if(item.stackable) {
|
||||
if(i != 999) {
|
||||
inventory.get(i).amt++;
|
||||
return true;
|
||||
} else if(inventory.size() != maxInvSize) {
|
||||
inventory.add(item);
|
||||
return true;
|
||||
}
|
||||
} else if(inventory.size() != maxInvSize) {
|
||||
inventory.add(item);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@Override
|
||||
public void invincibleCounting() {
|
||||
if(!invincible) return;
|
||||
invincibleCount++;
|
||||
if(invincibleCount > 60) {
|
||||
invincible = false;
|
||||
invincibleCount = 0;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@ public class AxeObj extends Entity {
|
||||
weaponType = EntityType.WeaponType.AXE;
|
||||
down1 = initEntitySprites("/objects/axe");
|
||||
price = 50;
|
||||
knockbackVal = 10;
|
||||
|
||||
attackValue = 2;
|
||||
attackArea.width = 30;
|
||||
|
||||
@@ -18,9 +18,10 @@ public class CoinObj extends Entity {
|
||||
down1 = initEntitySprites("/objects/coin_bronze");
|
||||
}
|
||||
|
||||
public void use(Entity entity) {
|
||||
public boolean use(Entity entity) {
|
||||
panel.playSE(1);
|
||||
panel.ui.addMessage("Coin +"+value);
|
||||
panel.player.coins += value;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,10 +22,12 @@ public class HeartObj extends Entity {
|
||||
image3 = initEntitySprites("objects/heart_blank");
|
||||
}
|
||||
|
||||
public void use(Entity entity) {
|
||||
@Override
|
||||
public boolean use(Entity entity) {
|
||||
panel.playSE(2);
|
||||
panel.ui.addMessage("Life +"+value);
|
||||
entity.life += value;
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package de.miaurizius.jgame2d.entity.item;
|
||||
|
||||
import de.miaurizius.jgame2d.core.GamePanel;
|
||||
import de.miaurizius.jgame2d.core.enums.EntityType;
|
||||
import de.miaurizius.jgame2d.core.enums.GameState;
|
||||
import de.miaurizius.jgame2d.entity.Entity;
|
||||
|
||||
public class KeyObj extends Entity {
|
||||
@@ -11,9 +12,25 @@ public class KeyObj extends Entity {
|
||||
name = "Normal Key";
|
||||
description = "[" + name + "]\nIt opens a door.";
|
||||
type = EntityType.ITEM;
|
||||
consumable = true;
|
||||
down1 = initEntitySprites("objects/key");
|
||||
|
||||
price = 50;
|
||||
stackable = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean use(Entity entity) {
|
||||
panel.gameState = GameState.DIALOGUE;
|
||||
int objIndex = getDetected(entity, panel.obj, "door");
|
||||
if(objIndex == 999) {
|
||||
panel.ui.currentDialogue = "What are you doing?\nThere is no door nearby.";
|
||||
return false;
|
||||
}
|
||||
panel.ui.currentDialogue = "You used a " + name + "!\nThe door is now open.";
|
||||
panel.playSE(3);
|
||||
panel.obj[panel.currentMap.getIndex()][objIndex] = null;
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
19
src/de/miaurizius/jgame2d/entity/item/LanternObj.java
Normal file
@@ -0,0 +1,19 @@
|
||||
package de.miaurizius.jgame2d.entity.item;
|
||||
|
||||
import de.miaurizius.jgame2d.core.GamePanel;
|
||||
import de.miaurizius.jgame2d.core.enums.EntityType;
|
||||
import de.miaurizius.jgame2d.entity.Entity;
|
||||
|
||||
public class LanternObj extends Entity {
|
||||
|
||||
public LanternObj(GamePanel panel) {
|
||||
super(panel);
|
||||
type = EntityType.LIGHT;
|
||||
name = "Lantern";
|
||||
down1 = initEntitySprites("objects/lantern");
|
||||
description = "[" + name + "]\nA lantern that lights up\nthe surrounding area.";
|
||||
price = 100;
|
||||
lightRadius = 250;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -21,15 +21,17 @@ public class PotionObj extends Entity {
|
||||
description = "[" + name + "]\nHeals your life by " + value + ".";
|
||||
|
||||
price = 50;
|
||||
stackable = true;
|
||||
}
|
||||
|
||||
public void use(Entity entity) {
|
||||
public boolean use(Entity entity) {
|
||||
panel.gameState = GameState.DIALOGUE;
|
||||
panel.ui.currentDialogue = "You drank a " + name + "!\n" +
|
||||
"Your life has been recovered by " + value + ".";
|
||||
entity.life += value;
|
||||
if(panel.player.life > panel.player.maxLife) panel.player.life = panel.player.maxLife;
|
||||
panel.playSE(2);
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -15,6 +15,7 @@ public class SwordNormalObj extends Entity {
|
||||
weaponType = EntityType.WeaponType.SWORD;
|
||||
down1 = initEntitySprites("objects/sword_normal");
|
||||
price = 50;
|
||||
knockbackVal = 2;
|
||||
|
||||
attackValue = 1;
|
||||
attackArea.width = 36;
|
||||
|
||||
31
src/de/miaurizius/jgame2d/entity/item/TentObj.java
Normal file
@@ -0,0 +1,31 @@
|
||||
package de.miaurizius.jgame2d.entity.item;
|
||||
|
||||
import de.miaurizius.jgame2d.core.GamePanel;
|
||||
import de.miaurizius.jgame2d.core.enums.EntityType;
|
||||
import de.miaurizius.jgame2d.core.enums.GameState;
|
||||
import de.miaurizius.jgame2d.entity.Entity;
|
||||
|
||||
public class TentObj extends Entity {
|
||||
|
||||
public TentObj(GamePanel panel) {
|
||||
super(panel);
|
||||
|
||||
type = EntityType.ITEM;
|
||||
consumable = true;
|
||||
name = "Tent";
|
||||
down1 = initEntitySprites("objects/tent");
|
||||
description = "[" + name + "]\nA small tent to rest\nuntil next morning.";
|
||||
price = 200;
|
||||
stackable = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean use(Entity entity) {
|
||||
panel.gameState = GameState.SLEEP;
|
||||
panel.playSE(14);
|
||||
panel.player.life = panel.player.maxLife;
|
||||
panel.player.mana = panel.player.maxMana;
|
||||
panel.player.getSleepingImage(down1);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,6 @@
|
||||
package de.miaurizius.jgame2d.entity.monster;
|
||||
|
||||
import de.miaurizius.jgame2d.core.GamePanel;
|
||||
import de.miaurizius.jgame2d.core.enums.Direction;
|
||||
import de.miaurizius.jgame2d.core.enums.EntityType;
|
||||
import de.miaurizius.jgame2d.entity.Entity;
|
||||
import de.miaurizius.jgame2d.entity.item.CoinObj;
|
||||
@@ -17,7 +16,8 @@ public class GreenSlimeMON extends Entity {
|
||||
super(panel);
|
||||
type = EntityType.MONSTER;
|
||||
name = "green-slime";
|
||||
speed = 1;
|
||||
defaultSpeed = 1;
|
||||
speed = defaultSpeed;
|
||||
maxLife = 4;
|
||||
life = maxLife;
|
||||
attack = 5;
|
||||
@@ -25,6 +25,8 @@ public class GreenSlimeMON extends Entity {
|
||||
exp = 2;
|
||||
projectile = new RockObj(panel);
|
||||
|
||||
knockbackVal = 5;
|
||||
|
||||
solidArea.x = 3;
|
||||
solidArea.y = 18;
|
||||
solidArea.width = 42;
|
||||
@@ -37,27 +39,18 @@ public class GreenSlimeMON extends Entity {
|
||||
|
||||
// INTERACTION
|
||||
public void setAction() {
|
||||
actionLock++;
|
||||
|
||||
if(actionLock == 120) { //lock action for x frames
|
||||
Random rand = new Random();
|
||||
int i = rand.nextInt(100)+1; //Generate number between 1 and 100
|
||||
if(i <= 25) direction = Direction.UP;
|
||||
if(i > 25 && i <= 50) direction = Direction.DOWN;
|
||||
if(i > 50 && i <= 75) direction = Direction.LEFT;
|
||||
if(i > 75) direction = Direction.RIGHT;
|
||||
actionLock = 0;
|
||||
if(!onPath) checkStartChasing(panel.player, 5 ,100);
|
||||
checkStopChasing(panel.player, 10, 100);
|
||||
if(onPath) {
|
||||
followPlayer();
|
||||
return;
|
||||
}
|
||||
|
||||
// int i = new Random().nextInt(100)+1;
|
||||
// if(i > 99 && !projectile.alive) {
|
||||
// projectile.set(worldX, worldY, direction, true, this);
|
||||
// panel.projectileList.add(projectile);
|
||||
// }
|
||||
setRandomDirection();
|
||||
checkShooting(200, 30);
|
||||
}
|
||||
public void damageReaction() {
|
||||
actionLock = 0;
|
||||
direction = panel.player.direction;
|
||||
onPath = true;
|
||||
}
|
||||
public void checkDrop() {
|
||||
int i = new Random().nextInt(100)+1;
|
||||
|
||||
79
src/de/miaurizius/jgame2d/entity/monster/OrcMON.java
Normal file
@@ -0,0 +1,79 @@
|
||||
package de.miaurizius.jgame2d.entity.monster;
|
||||
|
||||
import de.miaurizius.jgame2d.core.GamePanel;
|
||||
import de.miaurizius.jgame2d.core.enums.EntityType;
|
||||
import de.miaurizius.jgame2d.entity.Entity;
|
||||
import de.miaurizius.jgame2d.entity.item.CoinObj;
|
||||
import de.miaurizius.jgame2d.entity.item.HeartObj;
|
||||
import de.miaurizius.jgame2d.entity.item.PotionObj;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
public class OrcMON extends Entity {
|
||||
|
||||
public OrcMON(GamePanel panel) {
|
||||
super(panel);
|
||||
type = EntityType.MONSTER;
|
||||
name = "orc";
|
||||
defaultSpeed = 1;
|
||||
speed = defaultSpeed;
|
||||
maxLife = 10;
|
||||
life = maxLife;
|
||||
attack = 8;
|
||||
defense = 2;
|
||||
exp = 10;
|
||||
|
||||
solidArea.x = 4;
|
||||
solidArea.y = 4;
|
||||
solidArea.width = 40;
|
||||
solidArea.height = 44;
|
||||
solidAreaDefaultX = solidArea.x;
|
||||
solidAreaDefaultY = solidArea.y;
|
||||
|
||||
attackArea.width = panel.tileSize;
|
||||
attackArea.height = panel.tileSize;
|
||||
|
||||
getImage();
|
||||
getAttackImage();
|
||||
}
|
||||
|
||||
// INTERACTION
|
||||
public void setAction() {
|
||||
if(!onPath) checkStartChasing(panel.player, 10 ,100); else followPlayer();
|
||||
checkStopChasing(panel.player, 15, 100);
|
||||
setRandomDirection();
|
||||
if(!attacking) checkAttack(50, panel.tileSize*4, panel.tileSize);
|
||||
}
|
||||
public void damageReaction() {
|
||||
actionLock = 0;
|
||||
onPath = true;
|
||||
}
|
||||
public void checkDrop() {
|
||||
int i = new Random().nextInt(100)+1;
|
||||
if(i < 50) dropItem(new CoinObj(panel));
|
||||
if(i >= 50 && i < 75) dropItem(new HeartObj(panel));
|
||||
if(i >= 75 && i < 100) dropItem(new PotionObj(panel));
|
||||
}
|
||||
|
||||
// SETTING THINGS UP
|
||||
public void getImage() {
|
||||
up1 = initEntitySprites("monster/orc_up_1");
|
||||
up2 = initEntitySprites("monster/orc_up_2");
|
||||
down1 = initEntitySprites("monster/orc_down_1");
|
||||
down2 = initEntitySprites("monster/orc_down_2");
|
||||
left1 = initEntitySprites("monster/orc_left_1");
|
||||
left2 = initEntitySprites("monster/orc_left_2");
|
||||
right1 = initEntitySprites("monster/orc_right_1");
|
||||
right2 = initEntitySprites("monster/orc_right_2");
|
||||
}
|
||||
public void getAttackImage() {
|
||||
attackUp1 = initEntitySprites("monster/orc_attack_up_1", panel.tileSize, panel.tileSize * 2);
|
||||
attackUp2 = initEntitySprites("monster/orc_attack_up_2", panel.tileSize, panel.tileSize * 2);
|
||||
attackDown1 = initEntitySprites("monster/orc_attack_down_1", panel.tileSize, panel.tileSize * 2);
|
||||
attackDown2 = initEntitySprites("monster/orc_attack_down_2", panel.tileSize, panel.tileSize * 2);
|
||||
attackLeft1 = initEntitySprites("monster/orc_attack_left_1", panel.tileSize*2, panel.tileSize);
|
||||
attackLeft2 = initEntitySprites("monster/orc_attack_left_2", panel.tileSize*2, panel.tileSize);
|
||||
attackRight1 = initEntitySprites("monster/orc_attack_right_1", panel.tileSize*2, panel.tileSize);
|
||||
attackRight2 = initEntitySprites("monster/orc_attack_right_2", panel.tileSize*2, panel.tileSize);
|
||||
}
|
||||
}
|
||||
@@ -49,6 +49,8 @@ public class MerchantNPC extends Entity {
|
||||
inventory.add(new AxeObj(panel));
|
||||
inventory.add(new ShieldWoodObj(panel));
|
||||
inventory.add(new IronShieldObj(panel));
|
||||
inventory.add(new LanternObj(panel));
|
||||
inventory.add(new TentObj(panel));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import de.miaurizius.jgame2d.core.GamePanel;
|
||||
import de.miaurizius.jgame2d.core.enums.EntityType;
|
||||
import de.miaurizius.jgame2d.entity.Entity;
|
||||
|
||||
import java.awt.*;
|
||||
import java.util.Random;
|
||||
|
||||
public class OldManNPC extends Entity {
|
||||
@@ -29,10 +30,10 @@ public class OldManNPC extends Entity {
|
||||
|
||||
public void setAction() {
|
||||
|
||||
if(onPath) {
|
||||
searchPath(12, 9);
|
||||
return;
|
||||
}
|
||||
// if(onPath) {
|
||||
// searchPath(12, 9);
|
||||
// return;
|
||||
// }
|
||||
|
||||
actionLock++;
|
||||
if(actionLock != 120) return; //lock action for x frames
|
||||
|
||||
56
src/de/miaurizius/jgame2d/entity/obstacle/ChestObj.java
Normal file
@@ -0,0 +1,56 @@
|
||||
package de.miaurizius.jgame2d.entity.obstacle;
|
||||
|
||||
import de.miaurizius.jgame2d.core.GamePanel;
|
||||
import de.miaurizius.jgame2d.core.enums.EntityType;
|
||||
import de.miaurizius.jgame2d.core.enums.GameState;
|
||||
import de.miaurizius.jgame2d.entity.Entity;
|
||||
|
||||
public class ChestObj extends Entity {
|
||||
|
||||
GamePanel panel;
|
||||
Entity loot;
|
||||
boolean opened;
|
||||
|
||||
public ChestObj(GamePanel panel, Entity loot) {
|
||||
super(panel);
|
||||
this.panel = panel;
|
||||
this.loot = loot;
|
||||
type = EntityType.OBSTACLE;
|
||||
name = "chest";
|
||||
|
||||
image = initEntitySprites("objects/chest");
|
||||
image2 = initEntitySprites("objects/chest_opened");
|
||||
down1 = image;
|
||||
collision = true;
|
||||
|
||||
solidArea.x = 4;
|
||||
solidArea.y = 16;
|
||||
solidArea.width = 40;
|
||||
solidArea.height = 32;
|
||||
solidAreaDefaultX = solidArea.x;
|
||||
solidAreaDefaultY = solidArea.y;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void interact() {
|
||||
panel.gameState = GameState.DIALOGUE;
|
||||
|
||||
if(opened) {
|
||||
panel.ui.currentDialogue = "It's already empty...";
|
||||
return;
|
||||
}
|
||||
panel.playSE(3);
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("You open the chest and find a ").append(loot.name).append("!");
|
||||
if(!panel.player.canObtainItem(loot)) {
|
||||
sb.append("\nBut your inventory is full...");
|
||||
panel.ui.currentDialogue = sb.toString();
|
||||
return;
|
||||
}
|
||||
sb.append("\nYou obtain the ").append(loot.name).append("!");
|
||||
down1 = image2;
|
||||
opened = true;
|
||||
panel.ui.currentDialogue = sb.toString();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,13 +1,19 @@
|
||||
package de.miaurizius.jgame2d.entity.world;
|
||||
package de.miaurizius.jgame2d.entity.obstacle;
|
||||
|
||||
import de.miaurizius.jgame2d.core.GamePanel;
|
||||
import de.miaurizius.jgame2d.core.enums.EntityType;
|
||||
import de.miaurizius.jgame2d.core.enums.GameState;
|
||||
import de.miaurizius.jgame2d.entity.Entity;
|
||||
|
||||
public class DoorObj extends Entity {
|
||||
|
||||
GamePanel panel;
|
||||
|
||||
public DoorObj(GamePanel panel) {
|
||||
super(panel);
|
||||
this.panel = panel;
|
||||
name = "door";
|
||||
type = EntityType.OBSTACLE;
|
||||
down1 = initEntitySprites("objects/door");
|
||||
collision = true;
|
||||
|
||||
@@ -19,4 +25,10 @@ public class DoorObj extends Entity {
|
||||
solidAreaDefaultY = solidArea.y;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void interact() {
|
||||
panel.gameState = GameState.DIALOGUE;
|
||||
panel.ui.currentDialogue = "You need a key to open this.";
|
||||
}
|
||||
|
||||
}
|
||||
@@ -8,6 +8,7 @@ import de.miaurizius.jgame2d.entity.Entity;
|
||||
public class Projectile extends Entity {
|
||||
|
||||
Entity user;
|
||||
//TODO: parry projectiles: https://youtu.be/8KitXuxcuqI?list=PL_QPQmz5C6WUF-pOQDsbsKbaBZqXj4qSq&t=75
|
||||
|
||||
public Projectile(GamePanel panel) {
|
||||
super(panel);
|
||||
@@ -27,7 +28,7 @@ public class Projectile extends Entity {
|
||||
if(user.type == EntityType.PLAYER) {
|
||||
int monsterIndex = panel.collisionH.checkEntity(this, panel.monster[panel.currentMap.getIndex()]);
|
||||
if(monsterIndex != 999) {
|
||||
panel.player.damageMonster(monsterIndex, attack);
|
||||
panel.player.damageMonster(monsterIndex, this, attack, knockbackVal);
|
||||
generateParticle(user.projectile, panel.monster[panel.currentMap.getIndex()][monsterIndex]);
|
||||
alive = false;
|
||||
}
|
||||
@@ -54,12 +55,12 @@ public class Projectile extends Entity {
|
||||
return;
|
||||
}
|
||||
|
||||
spriteCounter++;
|
||||
if(spriteCounter > 12) {
|
||||
spriteCount++;
|
||||
if(spriteCount > 12) {
|
||||
if(spriteNum == 1) spriteNum = 2;
|
||||
else if(spriteNum == 2) spriteNum = 1;
|
||||
else spriteNum = 0;
|
||||
spriteCounter = 0;
|
||||
spriteCount = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
package de.miaurizius.jgame2d.entity.world;
|
||||
|
||||
import de.miaurizius.jgame2d.core.GamePanel;
|
||||
import de.miaurizius.jgame2d.entity.Entity;
|
||||
|
||||
public class ChestObj extends Entity {
|
||||
|
||||
public ChestObj(GamePanel panel) {
|
||||
super(panel);
|
||||
name = "chest";
|
||||
down1 = initEntitySprites("objects/chest");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package de.miaurizius.jgame2d.environment;
|
||||
|
||||
import de.miaurizius.jgame2d.core.GamePanel;
|
||||
|
||||
import java.awt.*;
|
||||
|
||||
public class EnvironmentManager {
|
||||
|
||||
GamePanel panel;
|
||||
public Lighting lighting;
|
||||
|
||||
public EnvironmentManager(GamePanel panel) {
|
||||
this.panel = panel;
|
||||
}
|
||||
|
||||
public void draw(Graphics2D g2) {
|
||||
lighting.draw(g2);
|
||||
}
|
||||
|
||||
// SETTING THINGS UP
|
||||
public void setup() {
|
||||
lighting = new Lighting(panel);
|
||||
}
|
||||
public void update() {
|
||||
lighting.update();
|
||||
}
|
||||
|
||||
}
|
||||
136
src/de/miaurizius/jgame2d/environment/Lighting.java
Normal file
@@ -0,0 +1,136 @@
|
||||
package de.miaurizius.jgame2d.environment;
|
||||
|
||||
import de.miaurizius.jgame2d.core.GamePanel;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.image.BufferedImage;
|
||||
|
||||
public class Lighting {
|
||||
|
||||
GamePanel panel;
|
||||
BufferedImage darknessFilter;
|
||||
public int dayCount;
|
||||
public DayState dayState = DayState.DAY;
|
||||
public float filterAlpha;
|
||||
|
||||
public Lighting(GamePanel panel) {
|
||||
this.panel = panel;
|
||||
setLightSource();
|
||||
}
|
||||
|
||||
public void draw(Graphics2D g2) {
|
||||
g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, filterAlpha));
|
||||
g2.drawImage(darknessFilter, 0, 0, null);
|
||||
g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1F));
|
||||
|
||||
// DEBUG
|
||||
if(panel.keyH.debug) {
|
||||
String s;
|
||||
switch (dayState) {
|
||||
case DAY -> s = "DAY";
|
||||
case DUSK -> s = "DUSK";
|
||||
case NIGHT -> s = "NIGHT";
|
||||
case DAWN -> s = "DAWN";
|
||||
default -> s = "UNKNOWN";
|
||||
}
|
||||
g2.setColor(Color.white);
|
||||
g2.setFont(g2.getFont().deriveFont(50f));
|
||||
g2.drawString(s + " " + dayCount, 700, 500);
|
||||
}
|
||||
}
|
||||
public void update() {
|
||||
if(panel.player.lightUpdated) {
|
||||
setLightSource();
|
||||
panel.player.lightUpdated = false;
|
||||
}
|
||||
|
||||
switch (dayState) {
|
||||
case DAY -> {
|
||||
dayCount++;
|
||||
if (dayCount > 36000) { //10 minutes
|
||||
dayState = DayState.DUSK;
|
||||
dayCount = 0;
|
||||
}
|
||||
}
|
||||
case DUSK -> {
|
||||
filterAlpha += 0.001f;
|
||||
if (filterAlpha > 1f) {
|
||||
filterAlpha = 1f;
|
||||
dayState = DayState.NIGHT;
|
||||
}
|
||||
}
|
||||
case NIGHT -> {
|
||||
dayCount++;
|
||||
if (dayCount > 36000) { //10 minutes
|
||||
dayState = DayState.DAWN;
|
||||
dayCount = 0;
|
||||
}
|
||||
}
|
||||
case DAWN -> {
|
||||
filterAlpha -= 0.001f;
|
||||
if (filterAlpha < 0f) {
|
||||
filterAlpha = 0f;
|
||||
dayState = DayState.DAY;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
public void resetDay() {
|
||||
dayState = DayState.DAY;
|
||||
filterAlpha = 0f;
|
||||
dayCount = 0;
|
||||
}
|
||||
|
||||
// ...
|
||||
public void setLightSource() {
|
||||
darknessFilter = new BufferedImage(panel.screenWidth, panel.screenHeight, BufferedImage.TYPE_INT_ARGB);
|
||||
Graphics2D g2 = darknessFilter.createGraphics();
|
||||
|
||||
int centerX = panel.player.screenX + panel.tileSize/2;
|
||||
int centerY = panel.player.screenY + panel.tileSize/2;
|
||||
|
||||
RadialGradientPaint gPaint = getRadialGradientPaint(centerX, centerY, 0F,0F, 0.1F);
|
||||
g2.setPaint(gPaint);
|
||||
|
||||
g2.fillRect(0, 0, panel.screenWidth, panel.screenHeight);
|
||||
g2.dispose();
|
||||
}
|
||||
|
||||
// UTILITY
|
||||
private RadialGradientPaint getRadialGradientPaint(int centerX, int centerY, float r, float g, float b) {
|
||||
Color[] color = new Color[] {
|
||||
new Color(r, g, b, 0.1f),
|
||||
new Color(r, g, b, 0.42f),
|
||||
new Color(r, g, b, 0.52f),
|
||||
new Color(r, g, b, 0.61f),
|
||||
new Color(r, g, b, 0.69f),
|
||||
new Color(r, g, b, 0.76f),
|
||||
new Color(r, g, b, 0.82f),
|
||||
new Color(r, g, b, 0.87f),
|
||||
new Color(r, g, b, 0.91f),
|
||||
new Color(r, g, b, 0.94f),
|
||||
new Color(r, g, b, 0.96f),
|
||||
new Color(r, g, b, 0.97f)
|
||||
};
|
||||
|
||||
final int lim = 3;
|
||||
if(panel.player.currentLight == null) {
|
||||
for(int i = 0; i < lim; i++) {
|
||||
color[i] = color[lim];
|
||||
}
|
||||
}
|
||||
|
||||
float[] fraction = new float[] {
|
||||
0f, 0.4f, 0.5f, 0.6f, 0.65f, 0.7f, 0.75f, 0.8f, 0.85f, 0.9f, 0.95f, 1f
|
||||
};
|
||||
return new RadialGradientPaint(centerX, centerY, (panel.player.currentLight == null ? 75 : panel.player.currentLight.lightRadius), fraction, color);
|
||||
}
|
||||
|
||||
public enum DayState {
|
||||
DAY,
|
||||
DUSK,
|
||||
NIGHT,
|
||||
DAWN,
|
||||
}
|
||||
|
||||
}
|
||||
93
src/de/miaurizius/jgame2d/tile/MiniMap.java
Normal file
@@ -0,0 +1,93 @@
|
||||
package de.miaurizius.jgame2d.tile;
|
||||
|
||||
import de.miaurizius.jgame2d.core.GamePanel;
|
||||
import de.miaurizius.jgame2d.core.enums.Map;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.io.IOException;
|
||||
|
||||
public class MiniMap extends TileManager {
|
||||
|
||||
GamePanel panel;
|
||||
BufferedImage worldMap[];
|
||||
public boolean miniMapOn;
|
||||
|
||||
public MiniMap(GamePanel panel) throws IOException {
|
||||
super(panel);
|
||||
this.panel = panel;
|
||||
createWorldMap();
|
||||
}
|
||||
|
||||
public void createWorldMap() {
|
||||
worldMap = new BufferedImage[Map.values().length];
|
||||
int worldMapWidth = panel.maxWorldCol * panel.tileSize;
|
||||
int worldMapHeight = panel.maxWorldRow * panel.tileSize;
|
||||
|
||||
for (int i = 0; i < Map.values().length; i++) {
|
||||
worldMap[i] = new BufferedImage(worldMapWidth, worldMapHeight, BufferedImage.TYPE_INT_ARGB);
|
||||
Graphics2D g2 = worldMap[i].createGraphics();
|
||||
|
||||
int col = 0;
|
||||
int row = 0;
|
||||
|
||||
while(col < panel.maxWorldCol && row < panel.maxWorldRow) {
|
||||
int tileNum = mapTileNum[i][col][row];
|
||||
int x = col * panel.tileSize;
|
||||
int y = row * panel.tileSize;
|
||||
g2.drawImage(panel.tileM.tile[tileNum].image, x, y, null);
|
||||
col++;
|
||||
if(col != panel.maxWorldCol) continue;
|
||||
col = 0;
|
||||
row++;
|
||||
}
|
||||
g2.dispose();
|
||||
}
|
||||
}
|
||||
|
||||
public void drawFullMapScreen(Graphics2D g2) {
|
||||
// BACKGROUND
|
||||
g2.setColor(Color.black);
|
||||
g2.fillRect(0, 0, panel.screenWidth, panel.screenHeight);
|
||||
|
||||
// DRAW MAP
|
||||
int width = 500;
|
||||
int height = 500;
|
||||
int x = panel.screenWidth / 2 - width / 2;
|
||||
int y = panel.screenHeight / 2 - height / 2;
|
||||
g2.drawImage(worldMap[panel.currentMap.getIndex()], x, y, width, height, null);
|
||||
|
||||
// DRAW PLAYER
|
||||
double scale = (double)(panel.tileSize * panel.maxWorldCol)/width;
|
||||
int playerX = (int)(x + panel.player.worldX/scale);
|
||||
int playerY = (int)(y + panel.player.worldY/scale);
|
||||
int playerSize = (int)(panel.tileSize/scale);
|
||||
g2.drawImage(panel.player.down1, playerX, playerY, playerSize, playerSize, null);
|
||||
|
||||
// HINT
|
||||
g2.setFont(panel.ui.font.deriveFont(32F));
|
||||
g2.setColor(Color.white);
|
||||
g2.drawString("Press M to close", 750, 550);
|
||||
}
|
||||
|
||||
public void drawMiniMap(Graphics2D g2) {
|
||||
if(!miniMapOn) return;
|
||||
|
||||
// DRAW MAP
|
||||
int width = 300;
|
||||
int height = 300;
|
||||
int x = panel.screenWidth - width - 50;
|
||||
int y = 50;
|
||||
g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.8f));
|
||||
g2.drawImage(worldMap[panel.currentMap.getIndex()], x, y, width, height, null);
|
||||
|
||||
// DRAW PLAYER
|
||||
double scale = (double)(panel.tileSize * panel.maxWorldCol)/width;
|
||||
int playerX = (int)(x + panel.player.worldX/scale);
|
||||
int playerY = (int)(y + panel.player.worldY/scale);
|
||||
int playerSize = (int)(panel.tileSize/3);
|
||||
g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f));
|
||||
g2.drawImage(panel.player.down1, playerX-6, playerY-6, playerSize, playerSize, null);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -8,6 +8,7 @@ import de.miaurizius.jgame2d.core.enums.Map;
|
||||
import javax.imageio.ImageIO;
|
||||
import java.awt.*;
|
||||
import java.io.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.logging.Level;
|
||||
|
||||
public class TileManager {
|
||||
@@ -15,19 +16,52 @@ public class TileManager {
|
||||
GamePanel panel;
|
||||
public Tile[] tile;
|
||||
public int[][][] mapTileNum;
|
||||
ArrayList<String> filesNames = new ArrayList<>();
|
||||
ArrayList<String> collisionStatus = new ArrayList<>();
|
||||
|
||||
public TileManager(GamePanel panel) {
|
||||
public TileManager(GamePanel panel) throws IOException {
|
||||
this.panel = panel;
|
||||
tile = new Tile[50];
|
||||
mapTileNum = new int[Map.values().length][panel.maxWorldCol][panel.maxWorldRow];
|
||||
|
||||
InputStream is = new FileInputStream("assets/maps/tiledata");
|
||||
BufferedReader br = new BufferedReader(new InputStreamReader(is));
|
||||
|
||||
// READ TILE DATA FROM FILE
|
||||
try {
|
||||
String line;
|
||||
while((line = br.readLine()) != null) {
|
||||
filesNames.add(line);
|
||||
collisionStatus.add(br.readLine());
|
||||
}
|
||||
br.close();
|
||||
} catch(IOException e) {
|
||||
Boot.logger.log(Level.SEVERE, "Could not read tile data file", e);
|
||||
}
|
||||
|
||||
tile = new Tile[filesNames.size()];
|
||||
getTileImage();
|
||||
|
||||
// GETTING WORLD SIZES
|
||||
is = new FileInputStream("assets/maps/editoredmap.map");
|
||||
br = new BufferedReader(new InputStreamReader(is));
|
||||
try {
|
||||
String line = br.readLine();
|
||||
String maxTile[] = line.split(" ");
|
||||
panel.maxWorldCol = maxTile.length;
|
||||
panel.maxWorldRow = maxTile.length;
|
||||
mapTileNum = new int[Map.values().length][panel.maxWorldCol][panel.maxWorldRow];
|
||||
|
||||
br.close();
|
||||
} catch(IOException e) {
|
||||
Boot.logger.log(Level.SEVERE, "Could not read map size data", e);
|
||||
}
|
||||
|
||||
for(Map m : Map.values()) loadMap(m);
|
||||
}
|
||||
|
||||
public void initializeTile(int i, String name, boolean col) {
|
||||
try {
|
||||
tile[i] = new Tile();
|
||||
tile[i].image = ImageIO.read(new FileInputStream("assets/tiles/" + name + ".png"));
|
||||
tile[i].image = ImageIO.read(new FileInputStream("assets/tiles/" + name));
|
||||
tile[i].collision = col;
|
||||
} catch(IOException e) {
|
||||
Boot.logger.log(Level.SEVERE, "Could not load tile", e);
|
||||
@@ -35,61 +69,14 @@ public class TileManager {
|
||||
}
|
||||
|
||||
public void getTileImage() {
|
||||
// PLACEHOLDER
|
||||
initializeTile(0, "grass00", false);
|
||||
initializeTile(2, "grass00", false);
|
||||
initializeTile(3, "grass00", false);
|
||||
initializeTile(4, "grass00", false);
|
||||
initializeTile(5, "grass00", false);
|
||||
initializeTile(6, "grass00", false);
|
||||
initializeTile(7, "grass00", false);
|
||||
initializeTile(8, "grass00", false);
|
||||
initializeTile(9, "grass00", false);
|
||||
|
||||
// GRASS
|
||||
initializeTile(10, "grass00", false);
|
||||
initializeTile(11, "grass01", false);
|
||||
|
||||
// WATER
|
||||
initializeTile(12, "water00", true);
|
||||
initializeTile(13, "water01", true);
|
||||
initializeTile(14, "water02", true);
|
||||
initializeTile(15, "water03", true);
|
||||
initializeTile(16, "water04", true);
|
||||
initializeTile(17, "water05", true);
|
||||
initializeTile(18, "water06", true);
|
||||
initializeTile(19, "water07", true);
|
||||
initializeTile(20, "water08", true);
|
||||
initializeTile(21, "water09", true);
|
||||
initializeTile(22, "water10", true);
|
||||
initializeTile(23, "water11", true);
|
||||
initializeTile(24, "water12", true);
|
||||
initializeTile(25, "water13", true);
|
||||
|
||||
// ROAD
|
||||
initializeTile(26, "road00", false);
|
||||
initializeTile(27, "road01", false);
|
||||
initializeTile(28, "road02", false);
|
||||
initializeTile(29, "road03", false);
|
||||
initializeTile(30, "road04", false);
|
||||
initializeTile(31, "road05", false);
|
||||
initializeTile(32, "road06", false);
|
||||
initializeTile(33, "road07", false);
|
||||
initializeTile(34, "road08", false);
|
||||
initializeTile(35, "road09", false);
|
||||
initializeTile(36, "road10", false);
|
||||
initializeTile(37, "road11", false);
|
||||
initializeTile(38, "road12", false);
|
||||
|
||||
// WORLD
|
||||
initializeTile(39, "earth", false);
|
||||
initializeTile(40, "wall", true);
|
||||
initializeTile(41, "tree", true);
|
||||
|
||||
//
|
||||
initializeTile(42, "hut", false);
|
||||
initializeTile(43, "floor01", false);
|
||||
initializeTile(44, "table01", true);
|
||||
for(int i = 0; i < filesNames.size(); i++) {
|
||||
String fileName;
|
||||
boolean collision;
|
||||
fileName = filesNames.get(i);
|
||||
collision = Boolean.parseBoolean(collisionStatus.get(i));
|
||||
initializeTile(i, fileName, collision);
|
||||
}
|
||||
|
||||
for (Tile tile : tile) {
|
||||
if(tile == null) continue;
|
||||
|
||||