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:
@@ -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
|
||||
Reference in New Issue
Block a user