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

feat: 重构World工具,添加WorldManager类,更新波次生成逻辑,增强敌人管理功能

This commit is contained in:
2025-08-26 17:38:45 +08:00
parent 9a10e87cb0
commit 96b26f01be
5 changed files with 13 additions and 7 deletions
-1
View File
@@ -2,7 +2,6 @@ extends EntityBase
class_name Rooster
func _ready():
fields[FieldStore.Entity.MAX_HEALTH] = 500
super._ready()
func ai():
+6 -3
View File
@@ -12,7 +12,8 @@ static var current: int = 0
static var countBoost: float = 0.1 # 每波增加的敌人数量百分比,指数级
static var data: Array[Wave] = [
# entity, minCount, maxCount, isBoss, from, to, per
create(preload("res://components/Characters/Hen.tscn"), 1, 5, false, 0, INF, 1)
create(preload("res://components/Characters/Hen.tscn"), 1, 5, false, 0, INF, 1),
create(preload("res://components/Characters/Chick.tscn"), 0, 0, true, 1, INF, 2)
]
static func create(
@@ -35,8 +36,10 @@ static func create(
return wave
static func entityCountOf(wave: Wave) -> int:
if wave.from <= current and wave.to >= current and int(current - wave.from) % wave.per == 0:
print("abc")
return randi_range(int(wave.minCount), int(wave.maxCount * ((1 + countBoost) ** current)))
if wave.isBoss:
return 1
else:
return randi_range(int(wave.minCount), int(wave.maxCount * ((1 + countBoost) ** current)))
return 0
static func spawn():
for i in range(len(data)):
+2
View File
@@ -139,3 +139,5 @@ static func generate(
if addToWorld:
WorldManager.rootNode.add_child(instance)
return instance
static func mobCount():
return len(WorldManager.tree.get_nodes_in_group("mobs"))
@@ -7,4 +7,6 @@ static var tree: SceneTree
func _ready():
tree = get_tree()
rootNode = self
Wave.next()
func _physics_process(_delta):
if EntityBase.mobCount() == 0:
Wave.next()