mirror of
https://github.com/Rundll86/Dog-Lynx-And-HCN.git
synced 2026-05-28 15:01:53 +08:00
14f43b76b7
- 提高FireScan子弹的伤害值从5到20 - 调整Chick角色的攻击冷却时间,将attackCooldownMap[2]从100增加到2000 - 移除Wave中未使用的chick变量
65 lines
2.2 KiB
GDScript
65 lines
2.2 KiB
GDScript
class_name Wave
|
|
|
|
var entity: PackedScene
|
|
var minCount: int = 1
|
|
var maxCount: int = 1
|
|
var isBoss: bool = false
|
|
var from: float = 0
|
|
var to: float = 0
|
|
var per: int = 0
|
|
|
|
static var current: int = 0
|
|
static var WAVE_NORMAL = [
|
|
Wave.create(preload("res://components/Characters/Hen.tscn"), 1, 5, false, 0, INF, 1),
|
|
Wave.create(preload("res://components/Characters/Chick.tscn"), 0, 0, true, 9, INF, 15),
|
|
Wave.create(preload("res://components/Characters/Bear.tscn"), 0, 0, true, 19, INF, 10),
|
|
]
|
|
static var WAVE_TESTBOSS = [
|
|
Wave.create(preload("res://components/Characters/Chick.tscn"), 0, 0, true, 0, INF, 1),
|
|
Wave.create(preload("res://components/Characters/Bear.tscn"), 0, 0, true, 0, INF, 1),
|
|
Wave.create(preload("res://components/Characters/KukeMC.tscn"), 0, 0, true, 0, INF, 1),
|
|
]
|
|
static var data = []
|
|
|
|
static func customStart():
|
|
var furryr = EntityBase.generate(preload("res://components/Characters/Bear.tscn"), MathTool.randv2_range(500), true, false)
|
|
var kukemc = EntityBase.generate(preload("res://components/Characters/KukeMC.tscn"), MathTool.randv2_range(500), true, false)
|
|
EntityBase.generate(preload("res://components/Characters/Chick.tscn"), MathTool.randv2_range(500), true, false)
|
|
furryr.currentFocusedBoss = kukemc
|
|
kukemc.currentFocusedBoss = furryr
|
|
static func create(
|
|
entity_: PackedScene,
|
|
minCount_: int = 1,
|
|
maxCount_: int = 1,
|
|
isBoss_: bool = false,
|
|
from_: float = 0,
|
|
to_: float = 0,
|
|
per_: int = 0
|
|
) -> Wave:
|
|
var wave = Wave.new()
|
|
wave.entity = entity_
|
|
wave.minCount = minCount_
|
|
wave.maxCount = maxCount_
|
|
wave.isBoss = isBoss_
|
|
wave.from = from_
|
|
wave.to = to_
|
|
wave.per = per_
|
|
return wave
|
|
static func entityCountOf(wave: Wave) -> int:
|
|
if wave.from <= current and wave.to >= current and int(current - wave.from) % wave.per == 0:
|
|
if wave.isBoss:
|
|
return 1
|
|
else:
|
|
return randi_range(ceil(wave.minCount), floor(wave.maxCount * (1 + GameRule.entityCountBoostPerWave * current)))
|
|
return 0
|
|
static func spawn():
|
|
for i in range(len(data)):
|
|
var wave = data[i]
|
|
for j in range(entityCountOf(wave)):
|
|
EntityBase.generate(wave.entity, MathTool.randv2_range(500), true, wave.isBoss)
|
|
static func next():
|
|
if current == 0:
|
|
customStart()
|
|
spawn()
|
|
current += 1
|