mirror of
https://github.com/Rundll86/Dog-Lynx-And-HCN.git
synced 2026-06-03 18:27:13 +08:00
refactor(网络同步): 重构实体同步逻辑和玩家生成流程
- 将EntityBase的health改为@export变量以便同步 - 添加MultiplayerSynchronizer节点处理网络同步 - 修改Wave.next()方法处理EncodedObjectAsID类型 - 添加findPlayer方法通过名称查找玩家 - 调整玩家生成流程,确保UIState.player正确设置
This commit is contained in:
@@ -63,6 +63,7 @@ func startMultiplayerGame():
|
||||
func startSingleplayerGame():
|
||||
MultiplayerState.isMultiplayer = false
|
||||
EntityBase.generatePlayer(playerNameInput.text)
|
||||
UIState.player = EntityBase.findPlayer(playerNameInput.text)
|
||||
WorldManager.rootNode.spawnWave()
|
||||
UIState.closeCurrentPanel()
|
||||
|
||||
|
||||
@@ -71,8 +71,8 @@ static func entityCountOf(wave: Wave) -> int:
|
||||
else:
|
||||
return randi_range(ceil(wave.minCount), floor(wave.maxCount * (1 + GameRule.entityCountBoostPerWave * current)))
|
||||
return 0
|
||||
static func spawn() -> Array[Wave]:
|
||||
var result: Array[Wave] = []
|
||||
static func spawn() -> Array:
|
||||
var result: Array = []
|
||||
for i in range(len(data)):
|
||||
var wave: Wave = data[i]
|
||||
for j in range(entityCountOf(wave)):
|
||||
@@ -80,8 +80,10 @@ static func spawn() -> Array[Wave]:
|
||||
currentWave.entityPosition = MathTool.randv2_range(500)
|
||||
result.append(currentWave)
|
||||
return result
|
||||
static func next(waves: Array[Wave]):
|
||||
static func next(waves: Array):
|
||||
for wave in waves:
|
||||
if wave is EncodedObjectAsID:
|
||||
wave = instance_from_id(wave.get_instance_id())
|
||||
EntityBase.generate(ComponentManager.getCharacter(wave.entity), wave.entityPosition, true, wave.isBoss)
|
||||
current += 1
|
||||
static func startWith(wave: int):
|
||||
|
||||
Reference in New Issue
Block a user