feat: implement Tekton Doors game mode with arena setup, portal management, connection randomization, and game state timers.
This commit is contained in:
@@ -55,7 +55,8 @@ func _ready():
|
||||
# Safety check: Don't auto-randomize if game mode manages its own arena
|
||||
if not (ResourceLoader.exists("res://scripts/managers/lobby_manager.gd") \
|
||||
and get_node_or_null("/root/LobbyManager") \
|
||||
and get_node("/root/LobbyManager").game_mode == "Stop n Go"):
|
||||
and (get_node("/root/LobbyManager").game_mode == "Stop n Go" \
|
||||
or get_node("/root/LobbyManager").game_mode == "Tekton Doors")):
|
||||
randomize_grid()
|
||||
validate_item_indices()
|
||||
|
||||
@@ -118,7 +119,7 @@ func generate_grid(floor_index: int = -1):
|
||||
var rng = RandomNumberGenerator.new()
|
||||
rng.randomize()
|
||||
var shape = rng.randi() % 4 # 0-3 (Rect, Islands, Maze, Rooms)
|
||||
generator.generate_map(self, columns, rows, shape)
|
||||
generator.generate_map(self , columns, rows, shape)
|
||||
else:
|
||||
generate_floor(0)
|
||||
|
||||
@@ -137,7 +138,7 @@ func generate_grid(floor_index: int = -1):
|
||||
var rng = RandomNumberGenerator.new()
|
||||
rng.randomize()
|
||||
var shape = rng.randi() % 4
|
||||
generator.generate_map(self, columns, rows, shape)
|
||||
generator.generate_map(self , columns, rows, shape)
|
||||
else:
|
||||
clear_floor(floor_index)
|
||||
generate_floor(floor_index)
|
||||
@@ -213,8 +214,16 @@ func set_floor_data(floor_index: int, data: PackedInt32Array):
|
||||
|
||||
for i in range(0, count, 3):
|
||||
var x = data[i]
|
||||
var z = data[i+1]
|
||||
var item = data[i+2]
|
||||
var z = data[i + 1]
|
||||
var item = data[i + 2]
|
||||
|
||||
# WALL-SAFETY CHECK: Skip if item is a tile (7-20) and Floor 0 is a wall
|
||||
if floor_index == 1 and item >= 7 and item <= 20:
|
||||
var f0 = get_cell_item(Vector3i(x, 0, z))
|
||||
if f0 != -1 and f0 in non_walkable_items:
|
||||
# Skip illegal placement from synced data
|
||||
continue
|
||||
|
||||
set_cell_item(Vector3i(x, floor_index, z), item)
|
||||
|
||||
update_grid_data()
|
||||
|
||||
Reference in New Issue
Block a user