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