feat: Introduce the Stop N Go game mode, including its manager script, arena assets, and associated HUD elements.

This commit is contained in:
Yogi Wiguna
2026-03-13 10:32:25 +08:00
parent 6242c4e37e
commit 877a238a82
18 changed files with 2523 additions and 13 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 409 KiB

@@ -0,0 +1,41 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://7ob0ngjlgtmd"
path.s3tc="res://.godot/imported/Stone_block_long_Texture.png-0916a5c742113eb3be58bac35b1278b3.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://assets/models/arena/stop_n_go/Stone_block_long_Texture.png"
dest_files=["res://.godot/imported/Stone_block_long_Texture.png-0916a5c742113eb3be58bac35b1278b3.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0
Binary file not shown.

After

Width:  |  Height:  |  Size: 553 KiB

@@ -0,0 +1,41 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cvi8bb0l0pn0d"
path.s3tc="res://.godot/imported/Stone_block_small_Texture.png-5b2cf09ec63234ab1655f2d2ca03a82c.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://assets/models/arena/stop_n_go/Stone_block_small_Texture.png"
dest_files=["res://.godot/imported/Stone_block_small_Texture.png-5b2cf09ec63234ab1655f2d2ca03a82c.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 MiB

@@ -0,0 +1,41 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b2rgdlbnieeul"
path.s3tc="res://.godot/imported/Terrain ground tex.png-4303acc83134165028ce344cbe26e46b.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://assets/models/arena/stop_n_go/Terrain ground tex.png"
dest_files=["res://.godot/imported/Terrain ground tex.png-4303acc83134165028ce344cbe26e46b.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0
Binary file not shown.
+2206
View File
@@ -0,0 +1,2206 @@
{
"asset":{
"generator":"Khronos glTF Blender I/O v4.3.47",
"version":"2.0"
},
"extensionsUsed":[
"KHR_materials_specular",
"KHR_materials_ior"
],
"scene":0,
"scenes":[
{
"name":"Scene",
"nodes":[
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22
]
}
],
"nodes":[
{
"mesh":0,
"name":"main arena.004",
"scale":[
0.22499999403953552,
1.9959089756011963,
0.11975452303886414
]
},
{
"mesh":1,
"name":"Sphere.001",
"scale":[
0.005803623236715794,
0.0049767219461500645,
0.004496674053370953
],
"translation":[
-0.055770393460989,
0.003608123166486621,
-0.004823249764740467
]
},
{
"mesh":2,
"name":"Plane.001",
"scale":[
0.0034827415365725756,
0.004634810145944357,
0.006916309706866741
],
"translation":[
-0.04505850002169609,
0,
0.0035353871062397957
]
},
{
"mesh":3,
"name":"Plane.006",
"scale":[
0.0034827415365725756,
0.004634810145944357,
0.006916309706866741
],
"translation":[
0.003373265266418457,
0,
-0.02043066918849945
]
},
{
"mesh":4,
"name":"Sphere.002",
"scale":[
0.0038787275552749634,
0.003326085628941655,
0.003005256177857518
],
"translation":[
0.00680779293179512,
0.002815220272168517,
-0.02868368849158287
]
},
{
"mesh":5,
"name":"Sphere.003",
"scale":[
0.0038787275552749634,
0.003326085628941655,
0.003005256177857518
],
"translation":[
0.0014904364943504333,
0.0028152205049991608,
-0.030357349663972855
]
},
{
"mesh":6,
"name":"Sphere.004",
"scale":[
0.005359253380447626,
0.004595666192471981,
0.004152374807745218
],
"translation":[
0.011845184490084648,
0.002835826948285103,
-0.027879592031240463
]
},
{
"mesh":7,
"name":"Sphere.005",
"scale":[
0.0017389787826687098,
0.0014912086771801114,
0.0013473688159137964
],
"translation":[
0.008469723165035248,
0.0007759020081721246,
-0.022855835035443306
]
},
{
"mesh":8,
"name":"Sphere.006",
"scale":[
0.001265876111574471,
0.001085513737052679,
0.0009808065369725227
],
"translation":[
0.010377485305070877,
0.0007759020081721246,
-0.02249426394701004
]
},
{
"mesh":9,
"name":"Forest_Decor.001",
"rotation":[
0,
-0.164804145693779,
0,
0.9863263368606567
],
"scale":[
0.005186327267438173,
0.005186327733099461,
0.005186327267438173
],
"translation":[
-0.012720957398414612,
-0.0001821359619498253,
0.024246981367468834
]
},
{
"mesh":10,
"name":"Forest_Decor.002",
"rotation":[
0,
-0.164804145693779,
0,
0.9863263368606567
],
"scale":[
0.005186327267438173,
0.005186327733099461,
0.005186327267438173
],
"translation":[
0.04886207357048988,
-0.0001821359619498253,
-0.022931696847081184
]
},
{
"mesh":11,
"name":"Plane.002",
"rotation":[
0,
-0.5259101986885071,
0,
0.8505401015281677
],
"scale":[
0.004052003379911184,
0.0028916909359395504,
0.004052003379911184
],
"translation":[
-0.11124057322740555,
0.007224146742373705,
0.06012773886322975
]
},
{
"mesh":12,
"name":"Plane.003",
"rotation":[
0,
-0.6388241648674011,
0,
0.7693527936935425
],
"scale":[
0.004052003379911184,
0.0028916909359395504,
0.004052003379911184
],
"translation":[
-0.11131810396909714,
0.002968195825815201,
-0.03941084071993828
]
},
{
"mesh":13,
"name":"Plane.004",
"rotation":[
0,
-0.6388241648674011,
0,
0.7693527936935425
],
"scale":[
0.004052003379911184,
0.0028916909359395504,
0.004052003379911184
],
"translation":[
0.10732132196426392,
0.007224148605018854,
0.04156006872653961
]
},
{
"mesh":14,
"name":"Plane.005",
"rotation":[
0,
-0.6388241648674011,
0,
0.7693527936935425
],
"scale":[
0.004052003379911184,
0.0028916909359395504,
0.004052003379911184
],
"translation":[
0.10845796763896942,
0.007224149536341429,
-0.058021701872348785
]
},
{
"mesh":15,
"name":"Forest_Tree.002",
"rotation":[
0.083919458091259,
0,
-0.9964725375175476,
0
],
"scale":[
-0.0032216208055615425,
-0.0032216222025454044,
-0.0032216208055615425
],
"translation":[
0.014929338358342648,
0,
0.015636136755347252
]
},
{
"mesh":16,
"name":"Forest_Tree.003",
"rotation":[
0.7215996384620667,
0,
-0.6923105716705322,
0
],
"scale":[
-0.003221621038392186,
-0.0032216222025454044,
-0.003221621038392186
],
"translation":[
0.01378126721829176,
0,
0.024845784530043602
]
},
{
"mesh":17,
"name":"Forest_Tree.001",
"rotation":[
0.8514568209648132,
0,
-0.52442467212677,
0
],
"scale":[
-0.003221620572730899,
-0.0032216222025454044,
-0.003221620572730899
],
"translation":[
-0.021189488470554352,
0,
-0.014957407489418983
]
},
{
"mesh":18,
"name":"Forest_Tree.004",
"rotation":[
0.9855759143829346,
0,
0.16923397779464722,
0
],
"scale":[
-0.003221621038392186,
-0.0032216222025454044,
-0.003221621038392186
],
"translation":[
-0.029653552919626236,
0,
-0.01876467652618885
]
},
{
"mesh":19,
"name":"Forest_Flower.002",
"scale":[
0.0023976201191544533,
0.0023976201191544533,
0.0023976201191544533
],
"translation":[
0.02693251706659794,
1.740034895192366e-05,
-0.009150011464953423
]
},
{
"mesh":20,
"name":"Forest_Flower.001",
"scale":[
0.0023976201191544533,
0.0023976201191544533,
0.0023976201191544533
],
"translation":[
-0.026713529601693153,
1.740034895192366e-05,
-0.0039378199726343155
]
},
{
"mesh":21,
"name":"Forest_Flower.003",
"scale":[
0.0023976201191544533,
0.0023976201191544533,
0.0023976201191544533
],
"translation":[
0.0737062320113182,
1.740034895192366e-05,
-0.013610062189400196
]
},
{
"mesh":22,
"name":"Forest_Tree.005",
"rotation":[
0.083919458091259,
0,
-0.9964725375175476,
0
],
"scale":[
-0.003391371574252844,
-0.003374690655618906,
-0.003912908956408501
],
"translation":[
0.04525196552276611,
0,
-0.002133963629603386
]
}
],
"materials":[
{
"doubleSided":true,
"name":"Active_ground",
"pbrMetallicRoughness":{
"baseColorTexture":{
"index":0
},
"metallicFactor":0,
"roughnessFactor":0.5
}
},
{
"doubleSided":true,
"name":"Stone Block_1 floor",
"pbrMetallicRoughness":{
"baseColorTexture":{
"index":1
},
"metallicFactor":0,
"roughnessFactor":0.5
}
},
{
"doubleSided":true,
"name":"Stone Block_2 floor",
"pbrMetallicRoughness":{
"baseColorTexture":{
"index":2
},
"metallicFactor":0,
"roughnessFactor":0.5
}
},
{
"doubleSided":true,
"name":"forest_tekton_statue_1_tex",
"pbrMetallicRoughness":{
"baseColorTexture":{
"index":3
},
"metallicFactor":0,
"roughnessFactor":0.5
}
},
{
"doubleSided":true,
"name":"forest_paving_2_tex",
"pbrMetallicRoughness":{
"baseColorTexture":{
"index":4
},
"metallicFactor":0,
"roughnessFactor":0.5
}
},
{
"doubleSided":true,
"name":"Material.004",
"pbrMetallicRoughness":{
"baseColorTexture":{
"index":5
},
"metallicFactor":0,
"roughnessFactor":0.5
}
},
{
"doubleSided":true,
"extensions":{
"KHR_materials_specular":{
"specularFactor":0.20000000298023224
},
"KHR_materials_ior":{
"ior":1.4500000476837158
}
},
"name":"tree_1_tex",
"pbrMetallicRoughness":{
"baseColorTexture":{
"index":6
},
"metallicFactor":0,
"roughnessFactor":0.5
}
},
{
"doubleSided":true,
"name":"forest_flower_1_tex",
"pbrMetallicRoughness":{
"baseColorTexture":{
"index":7
},
"metallicFactor":0,
"roughnessFactor":0.5
}
}
],
"meshes":[
{
"name":"Plane.012",
"primitives":[
{
"attributes":{
"POSITION":0,
"NORMAL":1,
"TEXCOORD_0":2
},
"indices":3,
"material":0
}
]
},
{
"name":"Sphere.002",
"primitives":[
{
"attributes":{
"POSITION":4,
"NORMAL":5,
"TEXCOORD_0":6
},
"indices":7,
"material":1
}
]
},
{
"name":"Plane.004",
"primitives":[
{
"attributes":{
"POSITION":8,
"NORMAL":9,
"TEXCOORD_0":10
},
"indices":11,
"material":2
}
]
},
{
"name":"Plane.010",
"primitives":[
{
"attributes":{
"POSITION":12,
"NORMAL":13,
"TEXCOORD_0":14
},
"indices":11,
"material":2
}
]
},
{
"name":"Sphere.001",
"primitives":[
{
"attributes":{
"POSITION":15,
"NORMAL":16,
"TEXCOORD_0":17
},
"indices":7,
"material":1
}
]
},
{
"name":"Sphere.003",
"primitives":[
{
"attributes":{
"POSITION":18,
"NORMAL":19,
"TEXCOORD_0":20
},
"indices":7,
"material":1
}
]
},
{
"name":"Sphere.004",
"primitives":[
{
"attributes":{
"POSITION":21,
"NORMAL":22,
"TEXCOORD_0":23
},
"indices":7,
"material":1
}
]
},
{
"name":"Sphere.005",
"primitives":[
{
"attributes":{
"POSITION":24,
"NORMAL":25,
"TEXCOORD_0":26
},
"indices":7,
"material":1
}
]
},
{
"name":"Sphere.006",
"primitives":[
{
"attributes":{
"POSITION":27,
"NORMAL":28,
"TEXCOORD_0":29
},
"indices":7,
"material":1
}
]
},
{
"name":"Cube.006",
"primitives":[
{
"attributes":{
"POSITION":30,
"NORMAL":31,
"TEXCOORD_0":32
},
"indices":33,
"material":3
},
{
"attributes":{
"POSITION":34,
"NORMAL":35,
"TEXCOORD_0":36
},
"indices":37,
"material":4
}
]
},
{
"name":"Cube.001",
"primitives":[
{
"attributes":{
"POSITION":38,
"NORMAL":39,
"TEXCOORD_0":40
},
"indices":33,
"material":3
},
{
"attributes":{
"POSITION":41,
"NORMAL":42,
"TEXCOORD_0":43
},
"indices":37,
"material":4
}
]
},
{
"name":"Plane.005",
"primitives":[
{
"attributes":{
"POSITION":44,
"NORMAL":45,
"TEXCOORD_0":46
},
"indices":47,
"material":5
}
]
},
{
"name":"Plane.007",
"primitives":[
{
"attributes":{
"POSITION":48,
"NORMAL":49,
"TEXCOORD_0":50
},
"indices":47,
"material":5
}
]
},
{
"name":"Plane.008",
"primitives":[
{
"attributes":{
"POSITION":51,
"NORMAL":52,
"TEXCOORD_0":53
},
"indices":47,
"material":5
}
]
},
{
"name":"Plane.009",
"primitives":[
{
"attributes":{
"POSITION":54,
"NORMAL":55,
"TEXCOORD_0":56
},
"indices":47,
"material":5
}
]
},
{
"name":"Cylinder.002",
"primitives":[
{
"attributes":{
"POSITION":57,
"NORMAL":58,
"TEXCOORD_0":59
},
"indices":60,
"material":6
}
]
},
{
"name":"Cylinder.003",
"primitives":[
{
"attributes":{
"POSITION":61,
"NORMAL":62,
"TEXCOORD_0":63
},
"indices":64,
"material":6
}
]
},
{
"name":"Cylinder.001",
"primitives":[
{
"attributes":{
"POSITION":65,
"NORMAL":66,
"TEXCOORD_0":67
},
"indices":60,
"material":6
}
]
},
{
"name":"Cylinder.004",
"primitives":[
{
"attributes":{
"POSITION":68,
"NORMAL":69,
"TEXCOORD_0":70
},
"indices":64,
"material":6
}
]
},
{
"name":"Cylinder.019",
"primitives":[
{
"attributes":{
"POSITION":71,
"NORMAL":72,
"TEXCOORD_0":73
},
"indices":74,
"material":7
}
]
},
{
"name":"Cylinder.005",
"primitives":[
{
"attributes":{
"POSITION":75,
"NORMAL":76,
"TEXCOORD_0":77
},
"indices":74,
"material":7
}
]
},
{
"name":"Cylinder.006",
"primitives":[
{
"attributes":{
"POSITION":78,
"NORMAL":79,
"TEXCOORD_0":80
},
"indices":74,
"material":7
}
]
},
{
"name":"Cylinder.007",
"primitives":[
{
"attributes":{
"POSITION":81,
"NORMAL":82,
"TEXCOORD_0":83
},
"indices":60,
"material":6
}
]
}
],
"textures":[
{
"sampler":0,
"source":0
},
{
"sampler":0,
"source":1
},
{
"sampler":0,
"source":1
},
{
"sampler":0,
"source":2
},
{
"sampler":0,
"source":1
},
{
"sampler":0,
"source":3
},
{
"sampler":0,
"source":4
},
{
"sampler":0,
"source":5
}
],
"images":[
{
"mimeType":"image/png",
"name":"Terrain ground tex",
"uri":"Terrain%20ground%20tex.png"
},
{
"mimeType":"image/png",
"name":"Stone_block_small_Texture",
"uri":"Stone_block_small_Texture.png"
},
{
"mimeType":"image/png",
"name":"forest_tekton_statue_UV_tex",
"uri":"forest_tekton_statue_UV_tex.png"
},
{
"mimeType":"image/png",
"name":"Stone_block_long_Texture",
"uri":"Stone_block_long_Texture.png"
},
{
"mimeType":"image/png",
"name":"tree_1_tex",
"uri":"tree_1_tex.png"
},
{
"mimeType":"image/png",
"name":"forest_flower_1_tex",
"uri":"forest_flower_1_tex.png"
}
],
"accessors":[
{
"bufferView":0,
"componentType":5126,
"count":1738,
"max":[
1,
0.0036194785498082638,
1
],
"min":[
-1,
0,
-1
],
"type":"VEC3"
},
{
"bufferView":1,
"componentType":5126,
"count":1738,
"type":"VEC3"
},
{
"bufferView":2,
"componentType":5126,
"count":1738,
"type":"VEC2"
},
{
"bufferView":3,
"componentType":5123,
"count":7776,
"type":"SCALAR"
},
{
"bufferView":4,
"componentType":5126,
"count":314,
"max":[
0.6869632005691528,
0.5238402485847473,
1.0634205341339111
],
"min":[
-0.7331855297088623,
-0.7147781848907471,
-0.987740695476532
],
"type":"VEC3"
},
{
"bufferView":5,
"componentType":5126,
"count":314,
"type":"VEC3"
},
{
"bufferView":6,
"componentType":5126,
"count":314,
"type":"VEC2"
},
{
"bufferView":7,
"componentType":5123,
"count":600,
"type":"SCALAR"
},
{
"bufferView":8,
"componentType":5126,
"count":1763,
"max":[
1,
1.1278119087219238,
1
],
"min":[
-1,
0,
-1
],
"type":"VEC3"
},
{
"bufferView":9,
"componentType":5126,
"count":1763,
"type":"VEC3"
},
{
"bufferView":10,
"componentType":5126,
"count":1763,
"type":"VEC2"
},
{
"bufferView":11,
"componentType":5123,
"count":5028,
"type":"SCALAR"
},
{
"bufferView":12,
"componentType":5126,
"count":1763,
"max":[
1,
1.1278119087219238,
1
],
"min":[
-1,
0,
-1
],
"type":"VEC3"
},
{
"bufferView":13,
"componentType":5126,
"count":1763,
"type":"VEC3"
},
{
"bufferView":14,
"componentType":5126,
"count":1763,
"type":"VEC2"
},
{
"bufferView":15,
"componentType":5126,
"count":314,
"max":[
0.6869632005691528,
0.5238402485847473,
1.0634205341339111
],
"min":[
-0.7331855297088623,
-0.7147781848907471,
-0.987740695476532
],
"type":"VEC3"
},
{
"bufferView":16,
"componentType":5126,
"count":314,
"type":"VEC3"
},
{
"bufferView":17,
"componentType":5126,
"count":314,
"type":"VEC2"
},
{
"bufferView":18,
"componentType":5126,
"count":314,
"max":[
0.6869632005691528,
0.5238402485847473,
1.0634205341339111
],
"min":[
-0.7331855297088623,
-0.7147781848907471,
-0.987740695476532
],
"type":"VEC3"
},
{
"bufferView":19,
"componentType":5126,
"count":314,
"type":"VEC3"
},
{
"bufferView":20,
"componentType":5126,
"count":314,
"type":"VEC2"
},
{
"bufferView":21,
"componentType":5126,
"count":314,
"max":[
0.6869632005691528,
0.5238402485847473,
1.0634205341339111
],
"min":[
-0.7331855297088623,
-0.7147781848907471,
-0.987740695476532
],
"type":"VEC3"
},
{
"bufferView":22,
"componentType":5126,
"count":314,
"type":"VEC3"
},
{
"bufferView":23,
"componentType":5126,
"count":314,
"type":"VEC2"
},
{
"bufferView":24,
"componentType":5126,
"count":314,
"max":[
0.6869632005691528,
0.5238402485847473,
1.0634205341339111
],
"min":[
-0.7331855297088623,
-0.7147781848907471,
-0.987740695476532
],
"type":"VEC3"
},
{
"bufferView":25,
"componentType":5126,
"count":314,
"type":"VEC3"
},
{
"bufferView":26,
"componentType":5126,
"count":314,
"type":"VEC2"
},
{
"bufferView":27,
"componentType":5126,
"count":314,
"max":[
0.6869632005691528,
0.5238402485847473,
1.0634205341339111
],
"min":[
-0.7331855297088623,
-0.7147781848907471,
-0.987740695476532
],
"type":"VEC3"
},
{
"bufferView":28,
"componentType":5126,
"count":314,
"type":"VEC3"
},
{
"bufferView":29,
"componentType":5126,
"count":314,
"type":"VEC2"
},
{
"bufferView":30,
"componentType":5126,
"count":737,
"max":[
1.1727004051208496,
2.6721489429473877,
0.7173086404800415
],
"min":[
-1.1727005243301392,
0.7023022174835205,
-0.7459119558334351
],
"type":"VEC3"
},
{
"bufferView":31,
"componentType":5126,
"count":737,
"type":"VEC3"
},
{
"bufferView":32,
"componentType":5126,
"count":737,
"type":"VEC2"
},
{
"bufferView":33,
"componentType":5123,
"count":3744,
"type":"SCALAR"
},
{
"bufferView":34,
"componentType":5126,
"count":303,
"max":[
0.8961244821548462,
0.7482583522796631,
0.9588603377342224
],
"min":[
-0.9713014960289001,
0.03511708974838257,
-0.9145033955574036
],
"type":"VEC3"
},
{
"bufferView":35,
"componentType":5126,
"count":303,
"type":"VEC3"
},
{
"bufferView":36,
"componentType":5126,
"count":303,
"type":"VEC2"
},
{
"bufferView":37,
"componentType":5123,
"count":1506,
"type":"SCALAR"
},
{
"bufferView":38,
"componentType":5126,
"count":737,
"max":[
1.1727004051208496,
2.6721489429473877,
0.7173086404800415
],
"min":[
-1.1727005243301392,
0.7023022174835205,
-0.7459119558334351
],
"type":"VEC3"
},
{
"bufferView":39,
"componentType":5126,
"count":737,
"type":"VEC3"
},
{
"bufferView":40,
"componentType":5126,
"count":737,
"type":"VEC2"
},
{
"bufferView":41,
"componentType":5126,
"count":303,
"max":[
0.8961244821548462,
0.7482583522796631,
0.9588603377342224
],
"min":[
-0.9713014960289001,
0.03511708974838257,
-0.9145033955574036
],
"type":"VEC3"
},
{
"bufferView":42,
"componentType":5126,
"count":303,
"type":"VEC3"
},
{
"bufferView":43,
"componentType":5126,
"count":303,
"type":"VEC2"
},
{
"bufferView":44,
"componentType":5126,
"count":1737,
"max":[
1.8604826927185059,
2.341214418411255,
1.1608856916427612
],
"min":[
-1.8689509630203247,
0,
-1.1515741348266602
],
"type":"VEC3"
},
{
"bufferView":45,
"componentType":5126,
"count":1737,
"type":"VEC3"
},
{
"bufferView":46,
"componentType":5126,
"count":1737,
"type":"VEC2"
},
{
"bufferView":47,
"componentType":5123,
"count":3600,
"type":"SCALAR"
},
{
"bufferView":48,
"componentType":5126,
"count":1737,
"max":[
1.8604826927185059,
2.341214418411255,
1.1608856916427612
],
"min":[
-1.8689509630203247,
0,
-1.1515741348266602
],
"type":"VEC3"
},
{
"bufferView":49,
"componentType":5126,
"count":1737,
"type":"VEC3"
},
{
"bufferView":50,
"componentType":5126,
"count":1737,
"type":"VEC2"
},
{
"bufferView":51,
"componentType":5126,
"count":1737,
"max":[
1.8604826927185059,
2.341214418411255,
1.1608856916427612
],
"min":[
-1.8689509630203247,
0,
-1.1515741348266602
],
"type":"VEC3"
},
{
"bufferView":52,
"componentType":5126,
"count":1737,
"type":"VEC3"
},
{
"bufferView":53,
"componentType":5126,
"count":1737,
"type":"VEC2"
},
{
"bufferView":54,
"componentType":5126,
"count":1737,
"max":[
1.8604826927185059,
2.341214418411255,
1.1608856916427612
],
"min":[
-1.8689509630203247,
0,
-1.1515741348266602
],
"type":"VEC3"
},
{
"bufferView":55,
"componentType":5126,
"count":1737,
"type":"VEC3"
},
{
"bufferView":56,
"componentType":5126,
"count":1737,
"type":"VEC2"
},
{
"bufferView":57,
"componentType":5126,
"count":810,
"max":[
1.6455037593841553,
2.6637349128723145,
1.4824063777923584
],
"min":[
-1.2488160133361816,
-0.046790242195129395,
-2.7289047241210938
],
"type":"VEC3"
},
{
"bufferView":58,
"componentType":5126,
"count":810,
"type":"VEC3"
},
{
"bufferView":59,
"componentType":5126,
"count":810,
"type":"VEC2"
},
{
"bufferView":60,
"componentType":5123,
"count":3612,
"type":"SCALAR"
},
{
"bufferView":61,
"componentType":5126,
"count":1240,
"max":[
1.6455037593841553,
2.6637349128723145,
1.4824063777923584
],
"min":[
-1.6364567279815674,
-0.046790242195129395,
-2.9283547401428223
],
"type":"VEC3"
},
{
"bufferView":62,
"componentType":5126,
"count":1240,
"type":"VEC3"
},
{
"bufferView":63,
"componentType":5126,
"count":1240,
"type":"VEC2"
},
{
"bufferView":64,
"componentType":5123,
"count":5568,
"type":"SCALAR"
},
{
"bufferView":65,
"componentType":5126,
"count":810,
"max":[
1.6455037593841553,
2.6637349128723145,
1.4824063777923584
],
"min":[
-1.2488160133361816,
-0.046790242195129395,
-2.7289047241210938
],
"type":"VEC3"
},
{
"bufferView":66,
"componentType":5126,
"count":810,
"type":"VEC3"
},
{
"bufferView":67,
"componentType":5126,
"count":810,
"type":"VEC2"
},
{
"bufferView":68,
"componentType":5126,
"count":1240,
"max":[
1.6455037593841553,
2.6637349128723145,
1.4824063777923584
],
"min":[
-1.6364567279815674,
-0.046790242195129395,
-2.9283547401428223
],
"type":"VEC3"
},
{
"bufferView":69,
"componentType":5126,
"count":1240,
"type":"VEC3"
},
{
"bufferView":70,
"componentType":5126,
"count":1240,
"type":"VEC2"
},
{
"bufferView":71,
"componentType":5126,
"count":1282,
"max":[
1.3402063846588135,
2.42311692237854,
1.169303059577942
],
"min":[
-1.3402063846588135,
-0.007258892059326172,
-1.149379014968872
],
"type":"VEC3"
},
{
"bufferView":72,
"componentType":5126,
"count":1282,
"type":"VEC3"
},
{
"bufferView":73,
"componentType":5126,
"count":1282,
"type":"VEC2"
},
{
"bufferView":74,
"componentType":5123,
"count":5664,
"type":"SCALAR"
},
{
"bufferView":75,
"componentType":5126,
"count":1282,
"max":[
1.3402063846588135,
2.42311692237854,
1.169303059577942
],
"min":[
-1.3402063846588135,
-0.007258892059326172,
-1.149379014968872
],
"type":"VEC3"
},
{
"bufferView":76,
"componentType":5126,
"count":1282,
"type":"VEC3"
},
{
"bufferView":77,
"componentType":5126,
"count":1282,
"type":"VEC2"
},
{
"bufferView":78,
"componentType":5126,
"count":1282,
"max":[
1.3402063846588135,
2.42311692237854,
1.169303059577942
],
"min":[
-1.3402063846588135,
-0.007258892059326172,
-1.149379014968872
],
"type":"VEC3"
},
{
"bufferView":79,
"componentType":5126,
"count":1282,
"type":"VEC3"
},
{
"bufferView":80,
"componentType":5126,
"count":1282,
"type":"VEC2"
},
{
"bufferView":81,
"componentType":5126,
"count":810,
"max":[
1.6455037593841553,
2.6637349128723145,
1.4824063777923584
],
"min":[
-1.2488160133361816,
-0.046790242195129395,
-2.7289047241210938
],
"type":"VEC3"
},
{
"bufferView":82,
"componentType":5126,
"count":810,
"type":"VEC3"
},
{
"bufferView":83,
"componentType":5126,
"count":810,
"type":"VEC2"
}
],
"bufferViews":[
{
"buffer":0,
"byteLength":20856,
"byteOffset":0,
"target":34962
},
{
"buffer":0,
"byteLength":20856,
"byteOffset":20856,
"target":34962
},
{
"buffer":0,
"byteLength":13904,
"byteOffset":41712,
"target":34962
},
{
"buffer":0,
"byteLength":15552,
"byteOffset":55616,
"target":34963
},
{
"buffer":0,
"byteLength":3768,
"byteOffset":71168,
"target":34962
},
{
"buffer":0,
"byteLength":3768,
"byteOffset":74936,
"target":34962
},
{
"buffer":0,
"byteLength":2512,
"byteOffset":78704,
"target":34962
},
{
"buffer":0,
"byteLength":1200,
"byteOffset":81216,
"target":34963
},
{
"buffer":0,
"byteLength":21156,
"byteOffset":82416,
"target":34962
},
{
"buffer":0,
"byteLength":21156,
"byteOffset":103572,
"target":34962
},
{
"buffer":0,
"byteLength":14104,
"byteOffset":124728,
"target":34962
},
{
"buffer":0,
"byteLength":10056,
"byteOffset":138832,
"target":34963
},
{
"buffer":0,
"byteLength":21156,
"byteOffset":148888,
"target":34962
},
{
"buffer":0,
"byteLength":21156,
"byteOffset":170044,
"target":34962
},
{
"buffer":0,
"byteLength":14104,
"byteOffset":191200,
"target":34962
},
{
"buffer":0,
"byteLength":3768,
"byteOffset":205304,
"target":34962
},
{
"buffer":0,
"byteLength":3768,
"byteOffset":209072,
"target":34962
},
{
"buffer":0,
"byteLength":2512,
"byteOffset":212840,
"target":34962
},
{
"buffer":0,
"byteLength":3768,
"byteOffset":215352,
"target":34962
},
{
"buffer":0,
"byteLength":3768,
"byteOffset":219120,
"target":34962
},
{
"buffer":0,
"byteLength":2512,
"byteOffset":222888,
"target":34962
},
{
"buffer":0,
"byteLength":3768,
"byteOffset":225400,
"target":34962
},
{
"buffer":0,
"byteLength":3768,
"byteOffset":229168,
"target":34962
},
{
"buffer":0,
"byteLength":2512,
"byteOffset":232936,
"target":34962
},
{
"buffer":0,
"byteLength":3768,
"byteOffset":235448,
"target":34962
},
{
"buffer":0,
"byteLength":3768,
"byteOffset":239216,
"target":34962
},
{
"buffer":0,
"byteLength":2512,
"byteOffset":242984,
"target":34962
},
{
"buffer":0,
"byteLength":3768,
"byteOffset":245496,
"target":34962
},
{
"buffer":0,
"byteLength":3768,
"byteOffset":249264,
"target":34962
},
{
"buffer":0,
"byteLength":2512,
"byteOffset":253032,
"target":34962
},
{
"buffer":0,
"byteLength":8844,
"byteOffset":255544,
"target":34962
},
{
"buffer":0,
"byteLength":8844,
"byteOffset":264388,
"target":34962
},
{
"buffer":0,
"byteLength":5896,
"byteOffset":273232,
"target":34962
},
{
"buffer":0,
"byteLength":7488,
"byteOffset":279128,
"target":34963
},
{
"buffer":0,
"byteLength":3636,
"byteOffset":286616,
"target":34962
},
{
"buffer":0,
"byteLength":3636,
"byteOffset":290252,
"target":34962
},
{
"buffer":0,
"byteLength":2424,
"byteOffset":293888,
"target":34962
},
{
"buffer":0,
"byteLength":3012,
"byteOffset":296312,
"target":34963
},
{
"buffer":0,
"byteLength":8844,
"byteOffset":299324,
"target":34962
},
{
"buffer":0,
"byteLength":8844,
"byteOffset":308168,
"target":34962
},
{
"buffer":0,
"byteLength":5896,
"byteOffset":317012,
"target":34962
},
{
"buffer":0,
"byteLength":3636,
"byteOffset":322908,
"target":34962
},
{
"buffer":0,
"byteLength":3636,
"byteOffset":326544,
"target":34962
},
{
"buffer":0,
"byteLength":2424,
"byteOffset":330180,
"target":34962
},
{
"buffer":0,
"byteLength":20844,
"byteOffset":332604,
"target":34962
},
{
"buffer":0,
"byteLength":20844,
"byteOffset":353448,
"target":34962
},
{
"buffer":0,
"byteLength":13896,
"byteOffset":374292,
"target":34962
},
{
"buffer":0,
"byteLength":7200,
"byteOffset":388188,
"target":34963
},
{
"buffer":0,
"byteLength":20844,
"byteOffset":395388,
"target":34962
},
{
"buffer":0,
"byteLength":20844,
"byteOffset":416232,
"target":34962
},
{
"buffer":0,
"byteLength":13896,
"byteOffset":437076,
"target":34962
},
{
"buffer":0,
"byteLength":20844,
"byteOffset":450972,
"target":34962
},
{
"buffer":0,
"byteLength":20844,
"byteOffset":471816,
"target":34962
},
{
"buffer":0,
"byteLength":13896,
"byteOffset":492660,
"target":34962
},
{
"buffer":0,
"byteLength":20844,
"byteOffset":506556,
"target":34962
},
{
"buffer":0,
"byteLength":20844,
"byteOffset":527400,
"target":34962
},
{
"buffer":0,
"byteLength":13896,
"byteOffset":548244,
"target":34962
},
{
"buffer":0,
"byteLength":9720,
"byteOffset":562140,
"target":34962
},
{
"buffer":0,
"byteLength":9720,
"byteOffset":571860,
"target":34962
},
{
"buffer":0,
"byteLength":6480,
"byteOffset":581580,
"target":34962
},
{
"buffer":0,
"byteLength":7224,
"byteOffset":588060,
"target":34963
},
{
"buffer":0,
"byteLength":14880,
"byteOffset":595284,
"target":34962
},
{
"buffer":0,
"byteLength":14880,
"byteOffset":610164,
"target":34962
},
{
"buffer":0,
"byteLength":9920,
"byteOffset":625044,
"target":34962
},
{
"buffer":0,
"byteLength":11136,
"byteOffset":634964,
"target":34963
},
{
"buffer":0,
"byteLength":9720,
"byteOffset":646100,
"target":34962
},
{
"buffer":0,
"byteLength":9720,
"byteOffset":655820,
"target":34962
},
{
"buffer":0,
"byteLength":6480,
"byteOffset":665540,
"target":34962
},
{
"buffer":0,
"byteLength":14880,
"byteOffset":672020,
"target":34962
},
{
"buffer":0,
"byteLength":14880,
"byteOffset":686900,
"target":34962
},
{
"buffer":0,
"byteLength":9920,
"byteOffset":701780,
"target":34962
},
{
"buffer":0,
"byteLength":15384,
"byteOffset":711700,
"target":34962
},
{
"buffer":0,
"byteLength":15384,
"byteOffset":727084,
"target":34962
},
{
"buffer":0,
"byteLength":10256,
"byteOffset":742468,
"target":34962
},
{
"buffer":0,
"byteLength":11328,
"byteOffset":752724,
"target":34963
},
{
"buffer":0,
"byteLength":15384,
"byteOffset":764052,
"target":34962
},
{
"buffer":0,
"byteLength":15384,
"byteOffset":779436,
"target":34962
},
{
"buffer":0,
"byteLength":10256,
"byteOffset":794820,
"target":34962
},
{
"buffer":0,
"byteLength":15384,
"byteOffset":805076,
"target":34962
},
{
"buffer":0,
"byteLength":15384,
"byteOffset":820460,
"target":34962
},
{
"buffer":0,
"byteLength":10256,
"byteOffset":835844,
"target":34962
},
{
"buffer":0,
"byteLength":9720,
"byteOffset":846100,
"target":34962
},
{
"buffer":0,
"byteLength":9720,
"byteOffset":855820,
"target":34962
},
{
"buffer":0,
"byteLength":6480,
"byteOffset":865540,
"target":34962
}
],
"samplers":[
{
"magFilter":9729,
"minFilter":9987
}
],
"buffers":[
{
"byteLength":872020,
"uri":"Terrain.bin"
}
]
}
@@ -0,0 +1,42 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://c8v5ehnf3s1ut"
path="res://.godot/imported/Terrain.gltf-c727a544f574f1f4cd0808dd390e94ae.scn"
[deps]
source_file="res://assets/models/arena/stop_n_go/Terrain.gltf"
dest_files=["res://.godot/imported/Terrain.gltf-c727a544f574f1f4cd0808dd390e94ae.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/root_script=null
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_name_suffixes=true
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
materials/extract=0
materials/extract_format=0
materials/extract_path=""
_subresources={}
gltf/naming_version=2
gltf/embedded_image_handling=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 602 KiB

@@ -0,0 +1,41 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://1pufjwqt2pi"
path.s3tc="res://.godot/imported/forest_flower_1_tex.png-87bc2c1fa7ec42b6cb91f92c484c026d.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://assets/models/arena/stop_n_go/forest_flower_1_tex.png"
dest_files=["res://.godot/imported/forest_flower_1_tex.png-87bc2c1fa7ec42b6cb91f92c484c026d.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0
Binary file not shown.

After

Width:  |  Height:  |  Size: 766 KiB

@@ -0,0 +1,41 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://di7vsupgsdis"
path.s3tc="res://.godot/imported/forest_tekton_statue_UV_tex.png-eca0715f4e0df888d477bdde8ddbb5df.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://assets/models/arena/stop_n_go/forest_tekton_statue_UV_tex.png"
dest_files=["res://.godot/imported/forest_tekton_statue_UV_tex.png-eca0715f4e0df888d477bdde8ddbb5df.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0
Binary file not shown.

After

Width:  |  Height:  |  Size: 652 KiB

@@ -0,0 +1,41 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cyanmglrm5r8k"
path.s3tc="res://.godot/imported/tree_1_tex.png-b3e743f0517baed84d3e6b20b4095f9a.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://assets/models/arena/stop_n_go/tree_1_tex.png"
dest_files=["res://.godot/imported/tree_1_tex.png-b3e743f0517baed84d3e6b20b4095f9a.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0
+1 -1
View File
@@ -851,7 +851,7 @@ func _assign_stop_n_go_spawn_positions(all_players: Array):
return
var col = 0
var current_row = 1
var current_row = 3
for player in all_players:
var assigned_pos = Vector2i(col, current_row)
+1 -1
View File
@@ -14,7 +14,7 @@ var player: Node3D
# Bounds Definitions { min_x, max_x, min_z, max_z }
var bounds_freemode = { "min_x": 3.0, "max_x": 11.0, "min_z": 15.0, "max_z": 22.5 }
var bounds_stop_n_go = { "min_x": 3.0, "max_x": 18.5, "min_z": 15.0, "max_z": 17.5 }
var bounds_stop_n_go = { "min_x": 3.0, "max_x": 19.5, "min_z": 15.0, "max_z": 19.5 }
var bounds_doors = { "min_x": 7.0, "max_x": 7.0, "min_z": 25.8, "max_z": 25.8 } # Static overlook
func initialize(p_camera: Camera3D, _p_shake_manager: Node):
+27 -11
View File
@@ -36,7 +36,7 @@ var phase_timer: float = 15.0 # Initialized dynamically later
var is_active: bool = false
var player_missions: Dictionary = {} # player_id -> {target_tile: int, required: int, current: int}
var finish_line_x: int = 21 # Right side of the map for win condition
var finish_line_x: int = 22 # Right side of the map for win condition
# Tile IDs
const TILE_WALKABLE = 0
@@ -291,7 +291,7 @@ func _setup_arena():
@rpc("authority", "call_remote", "reliable")
func sync_arena_setup():
print("[StopNGo] Client: Syncing Arena Setup (22x10)...")
print("[StopNGo] Client: Syncing Arena Setup (23x12)...")
_apply_arena_setup()
func _apply_arena_setup():
@@ -303,8 +303,8 @@ func _apply_arena_setup():
if not gridmap: return
# Set Size for Stop n Go explicitly, bypassing setters that wipe the map
gridmap.set("columns", 22)
gridmap.set("rows", 10)
gridmap.set("columns", 23)
gridmap.set("rows", 12)
# Clear existing items on all layers
gridmap.clear()
@@ -312,16 +312,32 @@ func _apply_arena_setup():
# Dynamic Safe Zone: No static safe columns anymore
# Safe zone spawns randomly during gameplay
var non_walkable_coords = [
Vector2i(0,0), Vector2i(1,0), Vector2i(2,0), Vector2i(3,0), Vector2i(4,0), Vector2i(5,0), Vector2i(6,0), Vector2i(7,0), Vector2i(8,0), Vector2i(9,0), Vector2i(10,0), Vector2i(13,0), Vector2i(19,0), Vector2i(20,0), Vector2i(21,0), Vector2i(22,0),
Vector2i(0,1), Vector2i(1,1), Vector2i(2,1), Vector2i(3,1), Vector2i(6,1),
Vector2i(0,2), Vector2i(1,2), Vector2i(2,2), Vector2i(3,2),
Vector2i(17,9), Vector2i(18,9), Vector2i(19,9), Vector2i(20,9), Vector2i(21,9), Vector2i(22,9),
Vector2i(11,10), Vector2i(12,10), Vector2i(13,10), Vector2i(15,10), Vector2i(16,10), Vector2i(17,10), Vector2i(18,10), Vector2i(19,10), Vector2i(20,10), Vector2i(21,10), Vector2i(22,10),
Vector2i(0,11), Vector2i(4,11), Vector2i(5,11), Vector2i(6,11), Vector2i(9,11), Vector2i(10,11), Vector2i(11,11), Vector2i(12,11), Vector2i(13,11), Vector2i(14,11), Vector2i(15,11), Vector2i(16,11), Vector2i(17,11), Vector2i(18,11), Vector2i(19,11), Vector2i(20,11), Vector2i(21,11), Vector2i(22,11)
]
# Create bands based on X (Horizontal Progress)
for x in range(gridmap.columns):
var tile_id = TILE_WALKABLE
if x == 0:
tile_id = TILE_START
elif x == gridmap.columns - 1:
tile_id = TILE_FINISH
for z in range(gridmap.rows):
var current_pos = Vector2i(x, z)
if current_pos in non_walkable_coords:
gridmap.set_cell_item(Vector3i(x, 0, z), -1) # empty space / void
gridmap.set_cell_item(Vector3i(x, 1, z), TILE_OBSTACLE) # wall block
continue
var tile_id = TILE_WALKABLE
if x == 0:
tile_id = TILE_START
elif x == gridmap.columns - 1:
tile_id = TILE_FINISH
gridmap.set_cell_item(Vector3i(x, 0, z), tile_id)
gridmap.set_cell_item(Vector3i(x, 1, z), -1)
# Note: Specific obstacles removed as per user request to replace with random ones.
# MISSION TILES: Moved to start_game_mode() to ensure they spawn AFTER walls.
@@ -346,7 +362,7 @@ func _spawn_mission_tiles():
if not gridmap: return
# Forbidden Zones (Start, Finish) - No items here
var forbidden_x = [0, 21]
var forbidden_x = [0, gridmap.columns - 1]
# Goal items: Heart(7), Diamond(8), Star(9), Coin(10)
var goal_items = [7, 8, 9, 10]