diff --git a/addons/enhanced_gridmap/meshlibrary/default.tres b/addons/enhanced_gridmap/meshlibrary/default.tres index 404ca64..20efe18 100644 --- a/addons/enhanced_gridmap/meshlibrary/default.tres +++ b/addons/enhanced_gridmap/meshlibrary/default.tres @@ -10,6 +10,7 @@ [ext_resource type="ArrayMesh" uid="uid://bqvqj3fhf5x51" path="res://assets/models/tiles/tile_ghost.tres" id="6_r32il"] [ext_resource type="ArrayMesh" uid="uid://cv4bedhida00g" path="res://assets/models/tiles/tile_star.tres" id="7_p5epg"] [ext_resource type="ArrayMesh" uid="uid://gpnl4cjrivor" path="res://assets/models/tiles/tile_speed.tres" id="7_sx8rm"] +[ext_resource type="ArrayMesh" uid="uid://onkud44h3we1" path="res://assets/models/meshes/safe_zone.res" id="8_cg50n"] [ext_resource type="ArrayMesh" uid="uid://dx41n2x8v30r1" path="res://assets/models/meshes/crack.res" id="10_r32il"] [ext_resource type="Texture2D" uid="uid://dpkx1a780pvwv" path="res://assets/textures/tile_diamond.png" id="10_sx8rm"] @@ -95,7 +96,7 @@ item/1/shapes = [] item/1/navigation_mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) item/1/navigation_layers = 1 item/2/name = "safe_zone" -item/2/mesh = ExtResource("3_8v5xv") +item/2/mesh = ExtResource("8_cg50n") item/2/mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) item/2/mesh_cast_shadow = 1 item/2/shapes = [] diff --git a/assets/models/meshes/safe_zone.res b/assets/models/meshes/safe_zone.res new file mode 100644 index 0000000..8d85197 Binary files /dev/null and b/assets/models/meshes/safe_zone.res differ diff --git a/assets/models/meshes/start.res b/assets/models/meshes/start.res index 5cd4a13..a4615b5 100644 Binary files a/assets/models/meshes/start.res and b/assets/models/meshes/start.res differ diff --git a/assets/textures/start_n_finish.jpg b/assets/textures/start_n_finish.jpg new file mode 100644 index 0000000..aceb3eb Binary files /dev/null and b/assets/textures/start_n_finish.jpg differ diff --git a/assets/textures/start_n_finish.jpg.import b/assets/textures/start_n_finish.jpg.import new file mode 100644 index 0000000..9895ad5 --- /dev/null +++ b/assets/textures/start_n_finish.jpg.import @@ -0,0 +1,41 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cw1nmpknfgbuu" +path.s3tc="res://.godot/imported/start_n_finish.jpg-f99b3789c83f30a48c1d54337a904fe9.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://assets/textures/start_n_finish.jpg" +dest_files=["res://.godot/imported/start_n_finish.jpg-f99b3789c83f30a48c1d54337a904fe9.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 diff --git a/scripts/managers/stop_n_go_manager.gd b/scripts/managers/stop_n_go_manager.gd index 8d1c476..e2bc708 100644 --- a/scripts/managers/stop_n_go_manager.gd +++ b/scripts/managers/stop_n_go_manager.gd @@ -22,7 +22,8 @@ var finish_line_x: int = 21 # Right side of the map for win condition # Tile IDs const TILE_WALKABLE = 0 -const TILE_START = 2 # Start Line +const TILE_START = 3 # Start Line +const TILE_FINISH = 3 # Finish Line const TILE_SAFE = 2 # Green Safe Zone const TILE_OBSTACLE = 4 # Wall @@ -143,7 +144,7 @@ func _update_stop_timer_visuals(): var hbox = stop_timer_node.get_node_or_null("HBox") if hbox: stop_segments.clear() - for i in range(4): + for i in range(3): var seg = hbox.get_node_or_null("Segment%d" % i) if seg: stop_segments.append(seg) @@ -173,9 +174,9 @@ func _update_stop_timer_visuals(): stop_timer_node.visible = true if current_phase == Phase.GO: - # GO Phase: All dim unless in last 4 seconds + # GO Phase: All dim unless in last 3 seconds for i in range(stop_segments.size()): - var threshold = 4.0 - i + var threshold = 3.0 - i if phase_timer <= threshold: stop_segments[i].add_theme_stylebox_override("panel", lit_style) else: @@ -277,6 +278,8 @@ func _apply_arena_setup(): var tile_id = TILE_WALKABLE if x == 0: tile_id = TILE_START + elif x == gridmap.columns - 1: + tile_id = TILE_FINISH elif x in safe_columns: tile_id = TILE_SAFE @@ -352,16 +355,14 @@ func _spawn_mission_tiles(): if base_tile == TILE_OBSTACLE: continue - # Randomly populate other floors with goal tiles - # 30% chance to have a tile to avoid overcrowding - if randf() < 0.3: - var tile_type = goal_items[randi() % goal_items.size()] - gridmap.set_cell_item(Vector3i(x, 1, z), tile_type) - - # Sync to clients - var main = get_node("/root/Main") - if main: - main.rpc("sync_grid_item", x, 1, z, tile_type) + # Spawn tiles on all floors (100% density) + var tile_type = goal_items[randi() % goal_items.size()] + gridmap.set_cell_item(Vector3i(x, 1, z), tile_type) + + # Sync to clients + var main = get_node("/root/Main") + if main: + main.rpc("sync_grid_item", x, 1, z, tile_type) func _assign_missions(): # NO-OP: Missions are now achievement-based (Complete 3 Goals) @@ -384,7 +385,7 @@ func check_movement_violation(player_id: int, from: Vector2i, to: Vector2i) -> b # Usually implies checking if you ARE in a safe zone. var tile_from = gridmap.get_cell_item(Vector3i(from.x, 0, from.y)) - if tile_from != TILE_SAFE: + if tile_from != TILE_SAFE and tile_from != TILE_START and tile_from != TILE_FINISH: _penalize_player(player_id) return true return false