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 06fdfd1586 feat(武器系统): 添加灵魂等级机制并重构武器升级逻辑
- 在UI中添加灵魂资源显示和操作按钮
- 修改武器升级公式加入灵魂等级系数
- 实现灵魂的提取和镶嵌功能
- 为武器卡牌添加灵魂等级颜色映射
- 初始化玩家灵魂资源为10个
2025-09-20 07:01:17 +08:00

24 lines
1.0 KiB
GDScript

@tool
extends Weapon
class_name LGBTWeapon
func update(to: int, origin: Dictionary, _entity: EntityBase):
origin["atk"] += 5 * to * soulLevel
origin["count"] += to * soulLevel
origin["power"] += 0.05 * to * soulLevel
origin["trace"] += 0.25 * to * soulLevel
origin["angle"] /= 1.05 ** soulLevel * to
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