Merge remote-tracking branch 'origin/main'
commit
017ff1f860
|
@ -8,5 +8,10 @@
|
|||
60,
|
||||
40
|
||||
]
|
||||
}
|
||||
},
|
||||
"themes": [
|
||||
"tutorial",
|
||||
"cave",
|
||||
"castle"
|
||||
]
|
||||
}
|
|
@ -1,43 +1,43 @@
|
|||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,+,+,+,+,+,+,+,+,+,,,,,,,,,,,,,,,,,,,,,+,+,+,+,+,+,+,+,+,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,,,,
|
||||
,,,,,,+,+,+,+,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,,,,+,+,+,+,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,,,,
|
||||
,,,,,,#,#,#,#,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,,,,#,#,#,#,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,,,,+,+,+,+,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,+,+,+,+,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,#,#,#,#,+,+,+,+,,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,,,,
|
||||
,,,+,+,+,+,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,,,,
|
||||
,,,#,#,#,#,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,,+,+,+,+,+,+,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,+,+,+,+,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,#,#,#,#,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,+,+,+,+,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,,,,
|
||||
,,C,,,,,,,,,,#,#,#,#,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,D,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,S,S,S,S,,,,,,,,,,,L,,,,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,,,,
|
||||
+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,#,#,#,#,#,#,#,#,#,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,#,#,#,#,#,#,#,#,#,+,+,+,+,+,+,+,,,,,,,,,,
|
||||
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,,,,,,,,,,
|
||||
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,,,,,,,,,,
|
||||
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,,,,,,,,,,
|
||||
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,,,,,,,,,,
|
||||
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
AP,34,id=lever,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
BF,32,requires_or=lever,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,+,+,+,+,+,+,+,+,+,,,,,,,,,,,,,,,,,,,,,+,+,+,+,+,+,+,+,+,,,,,,
|
||||
,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,
|
||||
,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,
|
||||
,,,,,,+,+,+,+,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,,,,+,+,+,+,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,
|
||||
,,,,,,#,#,#,#,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,,,,#,#,#,#,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,
|
||||
,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,
|
||||
,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,
|
||||
,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,,,,+,+,+,+,#,#,#,#,#,#,#,#,#,,,,,,
|
||||
,,,,,,,,,,,,+,+,+,+,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,#,#,#,#,,,,,,
|
||||
,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,#,#,#,#,+,+,+,+,,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,
|
||||
,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,
|
||||
,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,
|
||||
,,,+,+,+,+,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,
|
||||
,,,#,#,#,#,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,,+,+,+,+,+,+,#,#,#,#,#,#,#,#,#,,,,,,
|
||||
,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,,,,,,
|
||||
,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,+,+,+,+,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,
|
||||
,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,#,#,#,#,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,
|
||||
,,,,,,,,,,,,+,+,+,+,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,
|
||||
,,C,,,,,,,,,,#,#,#,#,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,D,,
|
||||
,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,,,,
|
||||
,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,,,S,S,S,S,,,,,,,,,,,L,,,,#,#,#,#,#,#,#,#,#,,,,,,
|
||||
+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,#,#,#,#,#,#,#,#,#,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,#,#,#,#,#,#,#,#,#,+,+,+,+,+,+
|
||||
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
||||
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
||||
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
||||
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
||||
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
AP,34,id=lever,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
BF,32,requires_or=lever,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
|
@ -6,18 +6,18 @@
|
|||
#,#,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,C,,,#
|
||||
#,#,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#
|
||||
#,#,>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#
|
||||
#,#,>,,,,,,,,,,,,,,,,,,,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,S,S,S,S,S,S,S,S,+,+,+,+,+,+,+,+,+,#
|
||||
#,#,>,,,,,,,,,,,,,,,,,,,+,+,+,+,S,S,S,S,S,+,+,+,+,+,S,S,S,S,S,+,+,+,+,+,S,S,S,S,S,+,+,+,+,+,+,+,+,+,#
|
||||
#,#,>,,,,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
||||
#,#,>,,,,,,,,,,,,M,,,,,,,,,#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#
|
||||
#,#,>,,,,,,,,,,,,,,,,,,,,,#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#
|
||||
#,#,>,,,,,,,,,,,,,,,,,,,,,#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#
|
||||
#,#,,,,,,,,,,,,,,,,,,,,,,G,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#
|
||||
#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#
|
||||
#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#
|
||||
#,,,,,,,,,,,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#
|
||||
#,L,,,,,,,,,,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#
|
||||
#,,L,,,,,,,,,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#
|
||||
#,+,+,+,+,+,+,+,+,+,+,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,+,+,+,+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#
|
||||
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#
|
||||
#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,L,,#
|
||||
#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,L,,,#
|
||||
#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+,+,+,+,+,+,+,#
|
||||
#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#,#,#,#,#,#,#,#
|
||||
#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#
|
||||
|
@ -39,8 +39,8 @@
|
|||
#,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,#
|
||||
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
BF,20,id=lever_2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
B,17,id=lever_1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
BE,20,id=lever_2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
C,17,id=lever_1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
X,13,requires_or=lever_1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
C,27,requires_or=lever_2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
O,11,size=2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
|
@ -22,7 +22,7 @@ r,,,,,,,,,,,,,,,,,,,~,+,+,|,,,,,,,,,,,,,,,~,+,+,+,+,+,+,|,,,,,,,,,,,,,,<,l
|
|||
r,,,,,,,,,,,,,,,,,,,-,-,-,-,,,,,,,,,,,,,,,-,-,-,-,-,-,-,-,,,,,,,,,,,,,,<,l
|
||||
r,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,<,l
|
||||
#,+,+,+,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,<,l
|
||||
#,-,-,-,-,,,,,,~,+,+,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,l
|
||||
#,-,-,-,-,,,,,,~,+,+,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,<,l
|
||||
r,,,,,,,,,,-,-,-,-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~,+,+,+,+,+,+,+,+,+,+,#
|
||||
r,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-,-,-,-,-,-,-,-,-,-,-,#
|
||||
r,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,l
|
||||
|
|
|
|
@ -1,5 +1,5 @@
|
|||
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
||||
#,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,S,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
||||
#,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
||||
#,,,,,,,,,,,,,,,,,,,,,<,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
||||
#,,,,,,,,,,,,,,,,,,,,,<,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
||||
#,,,,,,,,,,,,,,,,,,,,,<,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
||||
|
|
|
|
@ -1,4 +1,11 @@
|
|||
[
|
||||
{
|
||||
"name": "playground",
|
||||
"theme": "tutorial",
|
||||
"abilities": [
|
||||
],
|
||||
"file": "playground.csv"
|
||||
},
|
||||
{
|
||||
"name": "0-tutorial",
|
||||
"theme": "tutorial",
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,,,,,,,M,,,,,,,,,,C,,,,,,,,,,,D,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,P,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
,,,,,,,,,,,,L,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
||||
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
||||
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
||||
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
||||
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
||||
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
||||
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
||||
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
||||
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
S,29,size=2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
M,31,id=lever_1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
F,30,id=pressure_plate_1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||
AN,29,requires_and=lever_1;pressure_plate_1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
|
|
@ -1,6 +1,8 @@
|
|||
import json
|
||||
from typing import Optional
|
||||
|
||||
from level.Level import Level
|
||||
from physics import ConstantsParser
|
||||
|
||||
|
||||
class LevelManager:
|
||||
|
@ -34,4 +36,20 @@ class LevelManager:
|
|||
levels_by_theme[level.theme].append(level)
|
||||
return levels_by_theme
|
||||
|
||||
def find_next_level(self, level: Level) -> Optional[Level]:
|
||||
"""
|
||||
Find the next element in the theme using THEME. If the last element from a theme is reached, the first element
|
||||
of the next theme is returned. If the last THEME is reached, return None.
|
||||
:param level: The level to find the next level from
|
||||
:return: The next level or None
|
||||
"""
|
||||
levels_by_theme = self.get_levels_by_theme()
|
||||
theme_index = ConstantsParser.CONFIG.themes.index(level.theme)
|
||||
level_index = levels_by_theme[level.theme].index(level)
|
||||
|
||||
if level_index + 1 < len(levels_by_theme[level.theme]):
|
||||
return levels_by_theme[level.theme][level_index + 1]
|
||||
elif theme_index + 1 < len(ConstantsParser.CONFIG.themes):
|
||||
return levels_by_theme[ConstantsParser.CONFIG.themes[theme_index + 1]][0]
|
||||
else:
|
||||
return None
|
||||
|
|
|
@ -1,12 +1,14 @@
|
|||
from level.Level import Level
|
||||
from level.elements.static.ReceiverLevelElement import ReceiverLevelElement
|
||||
from physics.SpriteManager import SpriteManager
|
||||
from physics.TickData import TickData
|
||||
from sprite.SpritesheetManager import SpritesheetManager
|
||||
|
||||
|
||||
class GoalDoorReceiverLevelElement(ReceiverLevelElement):
|
||||
def __init__(self, tile: dict, level: Level, level_screen_manager: 'LevelScreenManager'):
|
||||
super().__init__(tile, level, level_screen_manager)
|
||||
self.is_collider = False
|
||||
|
||||
def load(self, sprite_manager: SpriteManager, spritesheet_manager: SpritesheetManager, level: Level):
|
||||
self.spritesheet = spritesheet_manager.get_sheet('goal_door')
|
||||
|
@ -17,4 +19,11 @@ class GoalDoorReceiverLevelElement(ReceiverLevelElement):
|
|||
super().set_active(active)
|
||||
self.set_animation_state('open' if self.active_state else 'close')
|
||||
self.is_collider = False
|
||||
self.register_collisions = not self.active_state
|
||||
self.register_collisions = self.active_state
|
||||
|
||||
def tick(self, tick_data: TickData):
|
||||
super().tick(tick_data)
|
||||
for collision in self.get_collides_with():
|
||||
if collision.secondary_sprite.id == 'player':
|
||||
if self.active_state:
|
||||
self.level_screen_manager.player_success()
|
||||
|
|
|
@ -3,7 +3,7 @@ from level.elements.static.StaticLevelElement import StaticLevelElement
|
|||
from physics.SpriteManager import SpriteManager
|
||||
from sprite.SpritesheetManager import SpritesheetManager
|
||||
|
||||
from project.physics.TickData import TickData
|
||||
from physics.TickData import TickData
|
||||
|
||||
BLOCK_TYPES = {
|
||||
'A': 'staubsauger'
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
from abc import abstractmethod
|
||||
|
||||
import pygame.time
|
||||
|
||||
from level.Level import Level
|
||||
from level.elements.LoadedLevel import LoadedLevel
|
||||
from level.selection.ScreenManager import ScreenManager
|
||||
|
@ -29,6 +31,10 @@ class LevelScreenManager(ScreenManager):
|
|||
def tick(self, tick_data: TickData):
|
||||
if tick_data.key_manager.is_keymap_down(KeyManager.KEY_ESCAPE):
|
||||
self.main_loop.select_level_selection(self.level.theme)
|
||||
pygame.time.delay(100)
|
||||
|
||||
def player_death(self):
|
||||
self.main_loop.player_death(self.level)
|
||||
|
||||
def player_success(self):
|
||||
self.main_loop.player_success(self.level)
|
||||
|
|
|
@ -3,6 +3,7 @@ from typing import Optional
|
|||
from level.Level import Level
|
||||
from level.LevelManager import LevelManager
|
||||
from level.selection.ScreenManager import ScreenManager
|
||||
from physics import ConstantsParser
|
||||
from physics.SpriteManager import SpriteManager, DrawLayers
|
||||
from physics.TickData import TickData
|
||||
from sprite.PositionScale import PositionScale
|
||||
|
@ -23,7 +24,7 @@ class LevelSelectionScreenManager(ScreenManager):
|
|||
|
||||
self.level_manager = level_manager
|
||||
self.levels_by_theme = self.level_manager.get_levels_by_theme()
|
||||
self.themes = ['tutorial', 'cave', 'castle']
|
||||
self.themes = ConstantsParser.CONFIG.themes
|
||||
|
||||
self.level_labels: list[TextLabel] = []
|
||||
self.theme_label: Optional[TextLabel] = None
|
||||
|
|
|
@ -19,21 +19,22 @@ class MainMenuScreenManager(ScreenManager):
|
|||
self.main_loop.select_level_selection()
|
||||
|
||||
def go_to_options_screen(self, click):
|
||||
self.destroy()
|
||||
if click.is_click_down(ClickEvent.CLICK_LEFT):
|
||||
self.main_loop.select_options()
|
||||
|
||||
def initialize(self):
|
||||
size = CoordinateTransform.transform_screen_to_world(self.main_loop.window_size, self.main_loop.screen_transform)
|
||||
|
||||
self.create_button("START", size[0] * 0.5, size[1] * 0.5)
|
||||
self.create_button("OPTIONS", size[0] * 0.5, size[1] * 0.65)
|
||||
self.create_button("START", size[0] * 0.5, size[1] * 0.5, 70)
|
||||
self.create_button("SCREEN SIZE", size[0] * 0.5, size[1] * 0.7, 40)
|
||||
|
||||
def create_button(self, name: str, x_position, y_position):
|
||||
label = TextLabel(name, x_position, y_position, font_size=70, alignment="center")
|
||||
def create_button(self, name: str, x_position, y_position, font_size):
|
||||
label = TextLabel(name, x_position, y_position, font_size, alignment="center")
|
||||
self.add_element(DrawLayers.UI, label)
|
||||
label.position_scale.scale = (1, 1)
|
||||
if name == "START":
|
||||
label.add_click_listener(lambda click: self.go_to_menu(click))
|
||||
elif name == "OPTIONS":
|
||||
elif name == "SCREEN SIZE":
|
||||
label.add_click_listener(lambda click: self.go_to_options_screen(click))
|
||||
|
||||
def destroy(self):
|
||||
|
|
|
@ -0,0 +1,51 @@
|
|||
from level.selection.ScreenManager import ScreenManager
|
||||
from physics.SpriteManager import DrawLayers, SpriteManager
|
||||
from physics.TickData import TickData
|
||||
from sprite.PositionScale import PositionScale
|
||||
from sprite.SpritesheetManager import SpritesheetManager
|
||||
from ui_elements import CoordinateTransform
|
||||
from ui_elements.KeyManager import KeyManager
|
||||
from ui_elements.TextLabel import TextLabel
|
||||
|
||||
|
||||
class OptionsScreenManager(ScreenManager):
|
||||
def __init__(self, sprite_manager: SpriteManager, spritesheet_manager: SpritesheetManager, main_loop):
|
||||
super().__init__(sprite_manager, spritesheet_manager, main_loop)
|
||||
|
||||
def create_label(self, name: str, x_position, y_position, font_size):
|
||||
label = TextLabel(name, x_position, y_position, font_size, alignment="left")
|
||||
self.add_element(DrawLayers.UI, label)
|
||||
label.position_scale.scale = (1, 1)
|
||||
self.create_button(name, label)
|
||||
|
||||
def create_button(self, name: str, label: TextLabel):
|
||||
if name == "SMALL":
|
||||
label.add_click_listener(lambda click: self.make_small_screen(click))
|
||||
elif name == "MEDIUM":
|
||||
label.add_click_listener(lambda click: self.make_medium_screen(click))
|
||||
elif name == "LARGE":
|
||||
label.add_click_listener(lambda click: self.make_large_screen(click))
|
||||
|
||||
def make_small_screen(self, click):
|
||||
self.main_loop.update_position_scale(PositionScale((0, 0), (1, 1)))
|
||||
|
||||
def make_medium_screen(self, click):
|
||||
self.main_loop.update_position_scale(PositionScale((0, 0), (1.25, 1.25)))
|
||||
|
||||
def make_large_screen(self, click):
|
||||
self.main_loop.update_position_scale(PositionScale((0, 0), (1.5, 1.5)))
|
||||
|
||||
def initialize(self):
|
||||
size = CoordinateTransform.transform_screen_to_world(self.main_loop.window_size,
|
||||
self.main_loop.screen_transform)
|
||||
self.create_label("SCREEN SIZE", size[0] * 0.2, size[1] * 0.2, font_size=70)
|
||||
self.create_label("SMALL", size[0] * 0.15, size[1] * 0.6, font_size=30)
|
||||
self.create_label("MEDIUM", size[0] * 0.45, size[1] * 0.6, font_size=30)
|
||||
self.create_label("LARGE", size[0] * 0.75, size[1] * 0.6, font_size=30)
|
||||
|
||||
def destroy(self):
|
||||
super().destroy()
|
||||
|
||||
def tick(self, tick_data: TickData):
|
||||
if tick_data.key_manager.is_keymap_down(KeyManager.KEY_ESCAPE):
|
||||
self.main_loop.select_main_menu()
|
|
@ -8,6 +8,7 @@ from level.LevelManager import LevelManager
|
|||
from level.selection.LevelScreenManager import LevelScreenManager
|
||||
from level.selection.LevelSelectionScreenManager import LevelSelectionScreenManager
|
||||
from level.selection.MainMenuScreenManager import MainMenuScreenManager
|
||||
from level.selection.OptionsScreenManager import OptionsScreenManager
|
||||
from level.selection.ScreenManager import ScreenManager
|
||||
from physics import ConstantsParser
|
||||
from physics.SpriteManager import SpriteManager
|
||||
|
@ -46,6 +47,7 @@ class MainLoop:
|
|||
self.GAME_STATE_MENU = 'main_menu'
|
||||
self.GAME_STATE_LEVEL_SELECTION = 'level_selection'
|
||||
self.GAME_STATE_LEVEL = 'level'
|
||||
self.GAME_STATE_OPTIONS = 'options'
|
||||
|
||||
self.screen_transform: PositionScale = PositionScale((0, 0), (1.5, 1.5))
|
||||
self.window_size: tuple[float, float] = (1, 1)
|
||||
|
@ -101,9 +103,16 @@ class MainLoop:
|
|||
def player_death(self, level: Level):
|
||||
self.select_level(level)
|
||||
|
||||
def player_success(self, level: Level):
|
||||
next_level = self.parsed_levels_manager.find_next_level(level)
|
||||
self.select_level(next_level)
|
||||
|
||||
def select_main_menu(self):
|
||||
self.set_game_state(self.GAME_STATE_MENU)
|
||||
|
||||
def select_options(self):
|
||||
self.set_game_state(self.GAME_STATE_OPTIONS)
|
||||
|
||||
def set_game_state(self, game_state: str):
|
||||
self.game_state = game_state
|
||||
|
||||
|
@ -122,6 +131,10 @@ class MainLoop:
|
|||
self.screen_manager = LevelSelectionScreenManager(
|
||||
self.sprite_manager, self.spritesheet_manager, self, self.parsed_levels_manager
|
||||
)
|
||||
elif self.game_state == self.GAME_STATE_OPTIONS:
|
||||
self.screen_manager = OptionsScreenManager(
|
||||
self.sprite_manager, self.spritesheet_manager, self,
|
||||
)
|
||||
else:
|
||||
print('Invalid game state', self.game_state)
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@ class ConstantsParser:
|
|||
parsed = json.load(open(file))
|
||||
self.level_size = (parsed['level']['level_size'][0], parsed['level']['level_size'][1])
|
||||
self.block_size = (parsed['level']['block_size'][0], parsed['level']['block_size'][1])
|
||||
self.themes = parsed['themes']
|
||||
|
||||
|
||||
CONFIG = ConstantsParser("data/config/config.json")
|
||||
|
|
|
@ -62,6 +62,15 @@ class PhysicsElementsHandler:
|
|||
and not sprite.id == 'player':
|
||||
skip_sprites.append(sprite)
|
||||
continue
|
||||
|
||||
# remove all skip sprites that are closer than 100 pixels to the player
|
||||
players = [sprite for sprite in sprites if hasattr(sprite, 'id') and sprite.id == 'player']
|
||||
if len(players) > 0:
|
||||
player = players[0]
|
||||
for sprite in skip_sprites:
|
||||
if sprite.position_scale.position[1] - player.position_scale.position[1] < 200:
|
||||
skip_sprites.remove(sprite)
|
||||
|
||||
sorted_dynamic_sprites = [sprite for sprite in sorted_dynamic_sprites if sprite not in skip_sprites]
|
||||
|
||||
closest_sprites: dict[UiElement, list[tuple[int, StaticSprite]]] = {}
|
||||
|
|
Loading…
Reference in New Issue