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

feat(武器系统): 重构LGBT武器和彩虹旗召唤物

调整LGBT武器属性计算公式,增加角度和数量参数
为彩虹旗召唤物添加多子弹发射和延迟发射功能
修改子弹追踪逻辑和穿透属性
更新武器描述和能量消耗
This commit is contained in:
2025-11-07 22:31:51 +08:00
parent 287f29695d
commit 675219e0f8
10 changed files with 79 additions and 32 deletions
+1 -1
View File
@@ -11,7 +11,7 @@ func ai():
speed *= 1.05
speed = clamp(speed, 0, 20)
if is_instance_valid(tracer) and timeLived() < maxTraceTime:
PresetBulletAI.trace(self, tracer.getTrackingAnchor(), clamp(speed / 50 * tracePower, 0, 1))
PresetBulletAI.trace(self, tracer.getTrackingAnchor(), tracePower)
PresetBulletAI.forward(self, rotation)
func destroy(_b):
EffectController.create(ComponentManager.getEffect("LGBTBoom"), position).shot()
+19 -12
View File
@@ -3,22 +3,29 @@ extends SummonBase
var atk: float = 0
var maxTraceTime: float = 0
var tracePower: float = 0
var count: int = 0
var angle: float = 0
func register():
fields[FieldStore.Entity.MAX_HEALTH] = 500
attackCooldownMap[0] = 250
fields[FieldStore.Entity.MAX_HEALTH] = 150
attackCooldownMap[0] = 1000
func ai():
tryAttack(0)
func attack(type):
if type == 0:
var tracer = EntityTool.findClosetEntity(position, get_tree(), false, true)
for bullet in BulletBase.generate(
ComponentManager.getBullet("LGBTBullet"),
self,
findWeaponAnchor("normal"),
position.angle_to_point(tracer.position)
):
bullet.tracer = tracer
bullet.damage = atk
bullet.maxTraceTime = maxTraceTime
bullet.tracePower = tracePower
var startAngle = position.angle_to_point(tracer.getTrackingAnchor()) + deg_to_rad(randf_range(-90, 90))
for i in count:
if !is_instance_valid(tracer):
break
for bullet in BulletBase.generate(
ComponentManager.getBullet("LGBTBullet"),
myMaster,
findWeaponAnchor("normal"),
startAngle + deg_to_rad(i * angle)
):
bullet.tracer = tracer
bullet.damage = atk
bullet.maxTraceTime = maxTraceTime
bullet.tracePower = tracePower
await TickTool.millseconds(50)
+1 -1
View File
@@ -8,7 +8,7 @@ var from: float = 0
var to: float = 0
var per: int = 0
static var current: int = 9
static var current: int = 0
static var WAVE_NORMAL = [
Wave.create("Hen", 1, 5, false, 0, INF, 1),
Wave.create("Chick", 0, 0, true, 9, INF, 15),
+7 -3
View File
@@ -3,13 +3,17 @@ extends Weapon
class_name LGBTWeapon
func update(to: int, origin: Dictionary, _entity: EntityBase):
origin["atk"] += 5 * to * soulLevel
origin["power"] += 0.05 * to * soulLevel
origin["trace"] += 0.25 * to * soulLevel
origin["angle"] /= 1 + 0.05 * to * soulLevel
origin["count"] += 1 * soulLevel
origin["atk"] += 3 * to * soulLevel
origin["power"] += 0.02 * to * soulLevel
origin["trace"] += 0.1 * to * soulLevel
return origin
func attack(entity: EntityBase):
var summon = entity.summon(ComponentManager.getSummon("LGBTFlag"), true)
summon.atk = readStore("atk")
summon.maxTraceTime = readStore("trace") * 1000
summon.tracePower = readStore("power")
summon.count = readStore("count")
summon.angle = readStore("angle")
return true