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

feat: 添加矢量星武器和子弹功能

实现新的矢量星武器系统,包括武器卡片、子弹行为和粒子效果。主要功能包括:
- 添加VectorStarWeapon.gd武器脚本,支持多子弹发射和追踪目标
- 实现VectorStar.gd子弹脚本,包含初始冲刺和后续追踪逻辑
- 添加相关场景资源和配置
- 将新武器添加到公鸡角色的武器库中
This commit is contained in:
2025-09-06 13:27:00 +08:00
parent b68ef6f340
commit 95db9deb3c
7 changed files with 92 additions and 6 deletions
+18
View File
@@ -0,0 +1,18 @@
extends BulletBase
class_name VectorStar
var tracer: EntityBase = null
var forwardTime: float = 1000
var forwarded: bool = false
func ai():
texture.rotation_degrees *= 1.1
PresetAIs.forward(self, rotation)
if timeLived() <= forwardTime:
speed = 10 * ((forwardTime - timeLived()) / forwardTime)
elif forwarded:
speed = (timeLived() - forwardTime) / 20
else:
forwarded = true
if is_instance_valid(tracer):
rotation = position.angle_to_point(tracer.position)
@@ -0,0 +1,19 @@
@tool
extends Weapon
class_name VectorStarWeapon
func update(to: int, origin: Dictionary, _entity: EntityBase):
origin["atk"] += 2 * to
origin["forwardtime"] /= 1.05 * to
origin["mincount"] += 1 * level
origin["maxcount"] += 1 * level
return origin
func attack(entity: EntityBase):
var weaponPos = entity.findWeaponAnchor("normal")
for i in range(int(randi_range(readStore("mincount"), readStore("maxcount")))):
for j in BulletBase.generate(preload("res://components/Bullets/VectorStar.tscn"), entity, weaponPos, deg_to_rad(randf_range(0, 360))):
var bullet: VectorStar = j
bullet.damage = readStore("atk")
bullet.tracer = EntityTool.findClosetEntity(get_global_mouse_position(), get_tree(), !entity.isPlayer(), entity.isPlayer())
bullet.forwardTime = readStore("forwardtime") * 1000
return true