1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-07-11 20:42:55 +08:00

feat(武器系统): 添加单发武器功能并调整子弹参数

- 在武器结构中新增oneShoot属性用于支持单发武器
- 修改Tree武器的cooldown为0并设置为单发模式
- 调整Parrier子弹的动画轨迹参数
- 更新Rooster角色的武器发射逻辑以支持单发武器
This commit is contained in:
2026-03-18 22:23:31 +08:00
parent 238450bf11
commit a1510abeb9
4 changed files with 16 additions and 7 deletions
+1 -1
View File
@@ -97,7 +97,7 @@ tracks/3/interp = 1
tracks/3/loop_wrap = true tracks/3/loop_wrap = true
tracks/3/keys = { tracks/3/keys = {
"handle_modes": PackedInt32Array(2, 2), "handle_modes": PackedInt32Array(2, 2),
"points": PackedFloat32Array(1, 0, 0, 0.3, 0, 0, -1, 0, 0, 0), "points": PackedFloat32Array(1, 0, 0, 0.1, 0, 0, -1, 0, 0, 0),
"times": PackedFloat32Array(0, 1) "times": PackedFloat32Array(0, 1)
} }
+2 -1
View File
@@ -5,4 +5,5 @@
[node name="Tree" instance=ExtResource("1_0lbwr")] [node name="Tree" instance=ExtResource("1_0lbwr")]
script = ExtResource("2_jsuc8") script = ExtResource("2_jsuc8")
cooldown = 200.0 oneShoot = true
cooldown = 0.0
+12 -5
View File
@@ -49,15 +49,22 @@ func tryLaunch(action: String, weaponIndex: int):
if Input.is_action_just_pressed(action): if Input.is_action_just_pressed(action):
if len(weapons) > weaponIndex: if len(weapons) > weaponIndex:
var weapon = weapons[weaponIndex] var weapon = weapons[weaponIndex]
if weapon.chargable and weapon.canAttackBy(self): if weapon.chargable and weapon.canAttackBy(self ):
chargeStartTime[weaponIndex] = Time.get_ticks_msec() chargeStartTime[weaponIndex] = Time.get_ticks_msec()
chargeParticle.emitting = true chargeParticle.emitting = true
chargeParticle.speed_scale = 1 chargeParticle.speed_scale = 1
if Input.is_action_just_pressed(action):
if len(weapons) > weaponIndex:
var weapon = weapons[weaponIndex]
if weapon.oneShoot:
tryAttack(weaponIndex)
if Input.is_action_pressed(action): if Input.is_action_pressed(action):
if chargeStartTime.has(weaponIndex): if len(weapons) > weaponIndex:
chargeParticle.speed_scale += 0.01 * self.fields.get(FieldStore.Entity.CHARGE_SPEED) var weapon = weapons[weaponIndex]
else: if chargeStartTime.has(weaponIndex):
tryAttack(weaponIndex) chargeParticle.speed_scale += 0.01 * self.fields.get(FieldStore.Entity.CHARGE_SPEED)
elif !weapon.oneShoot:
tryAttack(weaponIndex)
if Input.is_action_just_released(action): if Input.is_action_just_released(action):
if chargeStartTime.has(weaponIndex): if chargeStartTime.has(weaponIndex):
var startTime = chargeStartTime[weaponIndex] var startTime = chargeStartTime[weaponIndex]
+1
View File
@@ -9,6 +9,7 @@ class_name Weapon
@export var soulLevel: int = 1 @export var soulLevel: int = 1
@export var costBeachball: int = 500 @export var costBeachball: int = 500
@export var chargable: bool = false @export var chargable: bool = false
@export var oneShoot: bool = false
@export var store: Dictionary = { @export var store: Dictionary = {
"atk": 10 "atk": 10
} }