rename gauntlet→candy_survival + rewrite Candy Survival per boss design
- Rename enum GAUNTLET→CANDY_SURVIVAL, all gauntlet_*→candy_survival_* - Rename files: gauntlet_manager→candy_survival_manager, candy_cannon→candy_survival_npc, gauntlet.tscn→candy_survival.tscn - Rewrite candy_survival_manager.gd: blueprints, candy stack, Mekton delivery, Sugar Rush, knock/ghost charges, sticky-as-wall - Update player_movement_manager.gd: smack→knock system, ghost integration - All Candy Survival issues (#54-57, #65-70) retitled per boss design - Shared managers (goals_cycle, goal, player_race, playerboard, turn) untouched
This commit is contained in:
@@ -26,10 +26,10 @@ signal sng_go_duration_changed(duration: int)
|
||||
signal sng_stop_duration_changed(duration: int)
|
||||
signal sng_required_goals_changed(goals: int)
|
||||
|
||||
# Gauntlet settings signals
|
||||
signal gauntlet_round_duration_changed(duration: int)
|
||||
signal gauntlet_growth_interval_changed(interval: float)
|
||||
signal gauntlet_cells_per_tick_changed(cells: Dictionary)
|
||||
# Candy Survival settings signals
|
||||
signal candy_survival_duration_changed(duration: int)
|
||||
signal candy_survival_growth_interval_changed(interval: float)
|
||||
signal candy_survival_cells_per_tick_changed(cells: Dictionary)
|
||||
|
||||
# Room data structure
|
||||
var current_room: Dictionary = {}
|
||||
@@ -69,10 +69,10 @@ var sng_go_duration: int = 20
|
||||
var sng_stop_duration: int = 4
|
||||
var sng_required_goals: int = 8
|
||||
|
||||
# Gauntlet settings
|
||||
var gauntlet_round_duration: int = 180
|
||||
var gauntlet_growth_interval: float = 3.0 # seconds between growth ticks
|
||||
var gauntlet_cells_per_tick: Dictionary = {
|
||||
# Candy Survival settings
|
||||
var candy_survival_round_duration: int = 180
|
||||
var candy_survival_growth_interval: float = 3.0 # seconds between growth ticks
|
||||
var candy_survival_cells_per_tick: Dictionary = {
|
||||
"phase1": [4, 6],
|
||||
"phase2": [6, 8],
|
||||
"phase3": [8, 10],
|
||||
@@ -84,7 +84,7 @@ var rematch_votes: Array = [] # [player_id, ...]
|
||||
# Character and area selection
|
||||
var available_characters: Array[String] = ["Copper", "Dabro", "Gatot", "Pip", "Random"]
|
||||
var available_areas: Array[String] = []
|
||||
var available_game_modes: Array[String] = ["Freemode", "Stop n Go", "Candy Pump Survival"]
|
||||
var available_game_modes: Array[String] = ["Freemode", "Stop n Go", "Candy Survival"]
|
||||
var selected_area: String = "Freemode Arena" # Host-controlled
|
||||
var game_mode: String = "Freemode" # Host-controlled
|
||||
var local_character_index: int = 0 # Local player's character index
|
||||
@@ -139,8 +139,8 @@ func _update_available_areas(mode: String) -> void:
|
||||
available_areas = ["Freemode Arena", "Classic", "Colloseum"]
|
||||
"Stop n Go":
|
||||
available_areas = ["Stop N Go Arena"]
|
||||
"Candy Pump Survival":
|
||||
available_areas = ["Gauntlet Arena"]
|
||||
"Candy Survival":
|
||||
available_areas = ["Candy Survival Arena"]
|
||||
_:
|
||||
available_areas = ["Classic"]
|
||||
|
||||
@@ -513,35 +513,35 @@ func sync_sng_required_goals(goals: int) -> void:
|
||||
emit_signal("sng_required_goals_changed", goals)
|
||||
|
||||
# =============================================================================
|
||||
# Gauntlet Settings
|
||||
# Candy Survival Settings
|
||||
# =============================================================================
|
||||
|
||||
func set_gauntlet_round_duration(duration: int) -> void:
|
||||
gauntlet_round_duration = duration
|
||||
if is_host: rpc("sync_gauntlet_round_duration", duration)
|
||||
func set_candy_survival_round_duration(duration: int) -> void:
|
||||
candy_survival_round_duration = duration
|
||||
if is_host: rpc("sync_candy_survival_round_duration", duration)
|
||||
|
||||
@rpc("authority", "call_local", "reliable")
|
||||
func sync_gauntlet_round_duration(duration: int) -> void:
|
||||
gauntlet_round_duration = duration
|
||||
emit_signal("gauntlet_round_duration_changed", duration)
|
||||
func sync_candy_survival_round_duration(duration: int) -> void:
|
||||
candy_survival_round_duration = duration
|
||||
emit_signal("candy_survival_duration_changed", duration)
|
||||
|
||||
func set_gauntlet_growth_interval(interval: float) -> void:
|
||||
gauntlet_growth_interval = interval
|
||||
if is_host: rpc("sync_gauntlet_growth_interval", interval)
|
||||
func set_candy_survival_growth_interval(interval: float) -> void:
|
||||
candy_survival_growth_interval = interval
|
||||
if is_host: rpc("sync_candy_survival_growth_interval", interval)
|
||||
|
||||
@rpc("authority", "call_local", "reliable")
|
||||
func sync_gauntlet_growth_interval(interval: float) -> void:
|
||||
gauntlet_growth_interval = interval
|
||||
emit_signal("gauntlet_growth_interval_changed", interval)
|
||||
func sync_candy_survival_growth_interval(interval: float) -> void:
|
||||
candy_survival_growth_interval = interval
|
||||
emit_signal("candy_survival_growth_interval_changed", interval)
|
||||
|
||||
func set_gauntlet_cells_per_tick(cells: Dictionary) -> void:
|
||||
gauntlet_cells_per_tick = cells
|
||||
if is_host: rpc("sync_gauntlet_cells_per_tick", cells)
|
||||
func set_candy_survival_cells_per_tick(cells: Dictionary) -> void:
|
||||
candy_survival_cells_per_tick = cells
|
||||
if is_host: rpc("sync_candy_survival_cells_per_tick", cells)
|
||||
|
||||
@rpc("authority", "call_local", "reliable")
|
||||
func sync_gauntlet_cells_per_tick(cells: Dictionary) -> void:
|
||||
gauntlet_cells_per_tick = cells
|
||||
emit_signal("gauntlet_cells_per_tick_changed", cells)
|
||||
func sync_candy_survival_cells_per_tick(cells: Dictionary) -> void:
|
||||
candy_survival_cells_per_tick = cells
|
||||
emit_signal("candy_survival_cells_per_tick_changed", cells)
|
||||
|
||||
# =============================================================================
|
||||
# Character Selection
|
||||
@@ -699,8 +699,8 @@ func set_game_mode(mode: String) -> void:
|
||||
set_area("Free Mode Area")
|
||||
elif mode == "Stop n Go" and "Stop n Go Area" in available_areas:
|
||||
set_area("Stop n Go Area")
|
||||
elif mode == "Candy Pump Survival" and "Gauntlet Arena" in available_areas:
|
||||
set_area("Gauntlet Arena")
|
||||
elif mode == "Candy Survival" and "Candy Survival Arena" in available_areas:
|
||||
set_area("Candy Survival Arena")
|
||||
|
||||
@rpc("authority", "call_local", "reliable")
|
||||
func sync_game_mode(mode: String) -> void:
|
||||
@@ -713,8 +713,8 @@ func sync_game_mode(mode: String) -> void:
|
||||
selected_area = "Free Mode Area"
|
||||
elif mode == "Stop n Go" and "Stop n Go Area" in available_areas:
|
||||
selected_area = "Stop n Go Area"
|
||||
elif mode == "Candy Pump Survival" and "Gauntlet Arena" in available_areas:
|
||||
selected_area = "Gauntlet Arena"
|
||||
elif mode == "Candy Survival" and "Candy Survival Arena" in available_areas:
|
||||
selected_area = "Candy Survival Arena"
|
||||
elif selected_area not in available_areas:
|
||||
selected_area = available_areas[0]
|
||||
|
||||
@@ -740,10 +740,10 @@ func start_game(force: bool = false) -> void:
|
||||
rpc("sync_sng_go_duration", sng_go_duration)
|
||||
rpc("sync_sng_stop_duration", sng_stop_duration)
|
||||
rpc("sync_sng_required_goals", sng_required_goals)
|
||||
# Sync gauntlet settings
|
||||
rpc("sync_gauntlet_round_duration", gauntlet_round_duration)
|
||||
rpc("sync_gauntlet_growth_interval", gauntlet_growth_interval)
|
||||
rpc("sync_gauntlet_cells_per_tick", gauntlet_cells_per_tick)
|
||||
# Sync Candy Survival settings
|
||||
rpc("sync_candy_survival_round_duration", candy_survival_round_duration)
|
||||
rpc("sync_candy_survival_growth_interval", candy_survival_growth_interval)
|
||||
rpc("sync_candy_survival_cells_per_tick", candy_survival_cells_per_tick)
|
||||
# Sync game mode
|
||||
rpc("sync_game_mode", game_mode)
|
||||
|
||||
@@ -816,9 +816,9 @@ func request_room_info(requester_id: int, requester_name: String, requester_char
|
||||
rpc_id(requester_id, "sync_sng_go_duration", sng_go_duration)
|
||||
rpc_id(requester_id, "sync_sng_stop_duration", sng_stop_duration)
|
||||
rpc_id(requester_id, "sync_sng_required_goals", sng_required_goals)
|
||||
rpc_id(requester_id, "sync_gauntlet_round_duration", gauntlet_round_duration)
|
||||
rpc_id(requester_id, "sync_gauntlet_growth_interval", gauntlet_growth_interval)
|
||||
rpc_id(requester_id, "sync_gauntlet_cells_per_tick", gauntlet_cells_per_tick)
|
||||
rpc_id(requester_id, "sync_candy_survival_round_duration", candy_survival_round_duration)
|
||||
rpc_id(requester_id, "sync_candy_survival_growth_interval", candy_survival_growth_interval)
|
||||
rpc_id(requester_id, "sync_candy_survival_cells_per_tick", candy_survival_cells_per_tick)
|
||||
rpc_id(requester_id, "sync_game_mode", game_mode)
|
||||
rpc_id(requester_id, "sync_area", selected_area)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user