1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-05-30 07:51:54 +08:00

feat(游戏模式): 添加游戏模式选择功能并优化UI状态管理

实现游戏模式选择功能,包括无尽波次、Boss Rush和割草模式
添加游戏模式与波次数据的映射关系
优化UI状态管理,新增selectingFeed状态控制UI元素显示
重构Starter面板布局,添加游戏模式选项
为EnergyBlock添加掉落物品配置
This commit is contained in:
2026-05-03 16:03:02 +08:00
parent be151c5317
commit 2a602b0be2
10 changed files with 119 additions and 71 deletions
+5 -1
View File
@@ -8,7 +8,11 @@ extends FullscreenPanelBase
@onready var title2: Label = $%title2
func _ready():
startBtn.pressed.connect(func(): UIState.closeCurrentPanel())
startBtn.pressed.connect(
func():
UIState.closeCurrentPanel()
StarterPanel.selectingFeed = false
)
func beforeOpen(_args: Array = []):
clearFeeds()
+21 -15
View File
@@ -2,24 +2,29 @@
extends FullscreenPanelBase
class_name StarterPanel
@onready var diffEdit: HSlider = $"%diffEdit"
@onready var startSingleplayerBtn: Button = $"%startSingleplayerBtn"
@onready var startMultiplayerBtn: Button = $"%startMultiplayerBtn"
@onready var levelShow: Label = $"%levelShow"
@onready var hostInput: LineEdit = $"%hostInput"
@onready var portInput: LineEdit = $"%portInput"
@onready var launchBtn: Button = $"%launchBtn"
@onready var connectBtn: Button = $"%connectBtn"
@onready var maxPlayerInput: LineEdit = $"%maxPlayerInput"
@onready var connectionState: Label = $"%connectionState"
@onready var disconnectBtn: Button = $"%disconnectBtn"
@onready var playerNameInput: LineEdit = $"%playerNameInput"
@onready var diffEdit: HSlider = $%diffEdit
@onready var playerNameInput: LineEdit = $%playerNameInput
@onready var gamemodeOption: OptionButton = $%gamemodeOption
@onready var startSingleplayerBtn: Button = $%startSingleplayerBtn
@onready var startMultiplayerBtn: Button = $%startMultiplayerBtn
@onready var levelShow: Label = $%levelShow
@onready var hostInput: LineEdit = $%hostInput
@onready var portInput: LineEdit = $%portInput
@onready var launchBtn: Button = $%launchBtn
@onready var connectBtn: Button = $%connectBtn
@onready var maxPlayerInput: LineEdit = $%maxPlayerInput
@onready var connectionState: Label = $%connectionState
@onready var disconnectBtn: Button = $%disconnectBtn
@onready var serverConfig: VBoxContainer = $%serverConfig
@onready var players: VBoxContainer = $%players
@onready var playersList: VBoxContainer = $%list
var historyStack
@onready var serverConfig: VBoxContainer = $"%serverConfig"
@onready var players: VBoxContainer = $"%players"
@onready var playersList: VBoxContainer = $"%list"
static var buildingShader: bool = true
static var selectingFeed: bool = true
static var GAMEMODE_MAP_WAVE = [Wave.WAVE_NORMAL, Wave.WAVE_BOSSRUSH, Wave.WAVE_MOWING]
@rpc("any_peer")
func mutexPlayer(player: String):
@@ -66,6 +71,7 @@ func startMultiplayerGame():
func startSingleplayerGame():
MultiplayerState.isMultiplayer = false
MultiplayerState.playerName = playerNameInput.text
Wave.usingWaveData = GAMEMODE_MAP_WAVE[gamemodeOption.selected]
UIState.player = EntityBase.generatePlayer(playerNameInput.text)
WorldManager.rootNode.spawnWave(Vector2.ZERO)
UIState.setPanel("CompilingTip")