1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-05-28 15:01:53 +08:00

feat(游戏内容): 添加能量方块角色和矢量核心武器

添加新的能量方块角色实体及其相关资源文件
新增矢量核心武器卡牌配置
调整彩虹糖的数值平衡
修改波次生成逻辑,允许Boss波次生成小怪
修复红水晶子弹在发射者无效时的崩溃问题
This commit is contained in:
2026-04-26 14:02:02 +08:00
parent b94a289b17
commit e2da3ec86e
8 changed files with 62 additions and 6 deletions
+1
View File
@@ -13,6 +13,7 @@ func ai():
func destroy(_beacuseMap: bool):
hitbox.shape.radius = radius
EffectController.create(ComponentManager.getEffect("RedCrystalExplosion"), global_position).shot()
if !is_instance_valid(launcher):return
for i in randi_range(1, count):
for bullet in BulletBase.generate(ComponentManager.getBullet("CrystalBlock"), launcher, position, deg_to_rad(randf_range(0, 360))):
if bullet is CrystalBlockBullet:
@@ -0,0 +1,18 @@
extends EntityBase
class_name EnergyBlockEntity
func register():
fields[FieldStore.Entity.MAX_HEALTH] = 5000
hit.connect(
func(damage: float, bullet: BulletBase, _crit: bool):
bullet.launcher.storeEnergy(damage)
)
attackCooldownMap[0] = 0
func ai():
tryAttack(0)
func attack(type: int):
if type == 0:
var track = getTrackingAnchor()
var bullet = BulletTool.findClosetBulletCanDamage(track, get_tree(), self , 200)
if is_instance_valid(bullet):
BulletBase.generate(ComponentManager.getBullet("Parrier"), self , track, track.angle_to_point(bullet.position))
@@ -0,0 +1 @@
uid://du30qanswie6y
+5 -3
View File
@@ -48,10 +48,12 @@ static var WAVE_MOWING = [
Wave.create("Hen", 15, 30, false, 0, INF, 1),
Wave.create("Cat", 15, 30, false, 0, INF, 1),
Wave.create("Dog", 15, 30, false, 0, INF, 1),
Wave.create("MTY", 1, 5, false, 0, INF, 1),
Wave.create("MTY", 0, 2, false, 0, INF, 1),
Wave.create("EnergyBlock", 0, 1, true, 0, INF, 1),
]
static var WAVE_TESTMOB = [
Wave.create("MTY", 1, 1, false, 0, INF, 1)
Wave.create("EnergyBlock", 1, 1, true, 0, INF, 1),
# Wave.create("MTY", 1, 1, false, 0, INF, 1),
]
static var WAVE_EMPTY = []
static var waveReleaseConfig = [WAVE_TESTBOSS, 1]
@@ -90,7 +92,7 @@ static func entityCountOf(wave: Wave) -> int:
if canSpawn(wave):
if wave.isBoss:
return 1
elif !hasBoss():
elif !hasBoss() || GameRule.canSpawnMobWhenBossWave:
return randi_range(ceil(wave.minCount), floor(wave.maxCount * (1 + GameRule.entityCountBoostPerWave * current)))
return 0
static func getNextBossInfo() -> Array: