1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-05-28 06:51:54 +08:00
Files
Dog-Lynx-And-HCN/scripts/Contents/Weapons/LGBTWeapon.gd
T
fallingshrimp 19e7d7691d refactor(武器系统): 调整武器数值显示格式和数据结构
统一武器数值显示格式,将浮点数显示为整数或保留两位小数。修改storeType从数组改为字典结构以提高可读性。调整部分武器参数平衡性,包括BigLaser的时间系数和LGBTWeapon的power增量。移除VectorStarWeapon的mincount升级逻辑。为所有武器组件添加debugRebuild标志和默认500点costBeachball值。在FieldShow.gd中新增INTEGER数据类型处理。更新武器描述模板中的数值格式化逻辑。
2025-09-06 16:11:59 +08:00

24 lines
1006 B
GDScript

@tool
extends Weapon
class_name LGBTWeapon
func update(to: int, origin: Dictionary, _entity: EntityBase):
origin["atk"] += 2 * to
origin["count"] += to
origin["power"] += 0.05 * level
origin["trace"] += 0.25 * level
origin["angle"] /= 1.05 * level
return origin
func attack(entity: EntityBase):
var weaponPos = entity.findWeaponAnchor("normal")
var facingAngle = (get_global_mouse_position() - weaponPos).angle()
var startAngle = facingAngle - deg_to_rad(readStore("angle") * (readStore("count") / 2))
for i in range(int(readStore("count"))):
for j in BulletBase.generate(preload("res://components/Bullets/LGBTBullet.tscn"), entity, weaponPos, startAngle + deg_to_rad(readStore("angle") * i)):
var bullet: LGBTBullet = j
bullet.damage = readStore("atk")
bullet.tracer = EntityTool.findClosetEntity(get_global_mouse_position(), get_tree(), !entity.isPlayer(), entity.isPlayer())
bullet.maxTraceTime = readStore("trace") * 1000
bullet.tracePower = readStore("power")
return true