mirror of
https://github.com/Rundll86/Dog-Lynx-And-HCN.git
synced 2026-05-28 06:51:54 +08:00
feat: 完善火山子弹相关内容与木羊犬属性
- 为火山子弹添加动画轨迹粒子与攻击速度适配逻辑 - 调整木羊犬的字段数值 - 修复子弹切割速度的缩放逻辑 - 新增能量最大值的实体属性处理器
This commit is contained in:
@@ -79,6 +79,42 @@ tracks/5/keys = {
|
|||||||
"update": 1,
|
"update": 1,
|
||||||
"values": [false]
|
"values": [false]
|
||||||
}
|
}
|
||||||
|
tracks/6/type = "value"
|
||||||
|
tracks/6/imported = false
|
||||||
|
tracks/6/enabled = true
|
||||||
|
tracks/6/path = NodePath("anchor/textureSword/trailRight:visible")
|
||||||
|
tracks/6/interp = 1
|
||||||
|
tracks/6/loop_wrap = true
|
||||||
|
tracks/6/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [true]
|
||||||
|
}
|
||||||
|
tracks/7/type = "value"
|
||||||
|
tracks/7/imported = false
|
||||||
|
tracks/7/enabled = true
|
||||||
|
tracks/7/path = NodePath("anchor/textureSword/trailLine:visible")
|
||||||
|
tracks/7/interp = 1
|
||||||
|
tracks/7/loop_wrap = true
|
||||||
|
tracks/7/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [true]
|
||||||
|
}
|
||||||
|
tracks/8/type = "value"
|
||||||
|
tracks/8/imported = false
|
||||||
|
tracks/8/enabled = true
|
||||||
|
tracks/8/path = NodePath("%textureSword/trailLeft:visible")
|
||||||
|
tracks/8/interp = 1
|
||||||
|
tracks/8/loop_wrap = true
|
||||||
|
tracks/8/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [false]
|
||||||
|
}
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_oinqg"]
|
[sub_resource type="Animation" id="Animation_oinqg"]
|
||||||
resource_name = "destroy"
|
resource_name = "destroy"
|
||||||
@@ -199,6 +235,42 @@ tracks/7/keys = {
|
|||||||
"update": 1,
|
"update": 1,
|
||||||
"values": [true, false, true, false, true, false, true, false, true]
|
"values": [true, false, true, false, true, false, true, false, true]
|
||||||
}
|
}
|
||||||
|
tracks/8/type = "value"
|
||||||
|
tracks/8/imported = false
|
||||||
|
tracks/8/enabled = true
|
||||||
|
tracks/8/path = NodePath("anchor/textureSword/trailRight:visible")
|
||||||
|
tracks/8/interp = 1
|
||||||
|
tracks/8/loop_wrap = true
|
||||||
|
tracks/8/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.8, 0.95, 1.35),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [false, true, false, false]
|
||||||
|
}
|
||||||
|
tracks/9/type = "value"
|
||||||
|
tracks/9/imported = false
|
||||||
|
tracks/9/enabled = true
|
||||||
|
tracks/9/path = NodePath("anchor/textureSword/trailLine:visible")
|
||||||
|
tracks/9/interp = 1
|
||||||
|
tracks/9/loop_wrap = true
|
||||||
|
tracks/9/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.15, 0.2, 1.65, 1.8),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [false, true, false, true, false]
|
||||||
|
}
|
||||||
|
tracks/10/type = "value"
|
||||||
|
tracks/10/imported = false
|
||||||
|
tracks/10/enabled = true
|
||||||
|
tracks/10/path = NodePath("%textureSword/trailLeft:visible")
|
||||||
|
tracks/10/interp = 1
|
||||||
|
tracks/10/loop_wrap = true
|
||||||
|
tracks/10/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 1.2, 1.35),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [false, true, false]
|
||||||
|
}
|
||||||
|
|
||||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_w1utg"]
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_w1utg"]
|
||||||
_data = {
|
_data = {
|
||||||
@@ -207,6 +279,51 @@ _data = {
|
|||||||
&"spawn": SubResource("Animation_o5h0y")
|
&"spawn": SubResource("Animation_o5h0y")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Curve" id="Curve_1sgli"]
|
||||||
|
_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
|
||||||
|
point_count = 2
|
||||||
|
|
||||||
|
[sub_resource type="CurveTexture" id="CurveTexture_b5nxd"]
|
||||||
|
curve = SubResource("Curve_1sgli")
|
||||||
|
|
||||||
|
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_xrrxo"]
|
||||||
|
particle_flag_disable_z = true
|
||||||
|
direction = Vector3(1, 1, 0)
|
||||||
|
spread = 0.0
|
||||||
|
initial_velocity_min = 100.0
|
||||||
|
initial_velocity_max = 100.0
|
||||||
|
gravity = Vector3(0, 0, 0)
|
||||||
|
tangential_accel_min = 99.99999
|
||||||
|
tangential_accel_max = 99.99999
|
||||||
|
alpha_curve = SubResource("CurveTexture_b5nxd")
|
||||||
|
|
||||||
|
[sub_resource type="Curve" id="Curve_b5nxd"]
|
||||||
|
_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
|
||||||
|
point_count = 2
|
||||||
|
|
||||||
|
[sub_resource type="CurveTexture" id="CurveTexture_xrrxo"]
|
||||||
|
curve = SubResource("Curve_b5nxd")
|
||||||
|
|
||||||
|
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_b5pv2"]
|
||||||
|
particle_flag_disable_z = true
|
||||||
|
direction = Vector3(-1, -1, 0)
|
||||||
|
spread = 0.0
|
||||||
|
initial_velocity_min = 100.0
|
||||||
|
initial_velocity_max = 100.0
|
||||||
|
gravity = Vector3(0, 0, 0)
|
||||||
|
tangential_accel_min = -100.0
|
||||||
|
tangential_accel_max = -100.0
|
||||||
|
alpha_curve = SubResource("CurveTexture_xrrxo")
|
||||||
|
|
||||||
|
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_1sgli"]
|
||||||
|
particle_flag_disable_z = true
|
||||||
|
direction = Vector3(-1, 1, 0)
|
||||||
|
spread = 0.0
|
||||||
|
initial_velocity_min = 300.0
|
||||||
|
initial_velocity_max = 300.0
|
||||||
|
gravity = Vector3(0, 0, 0)
|
||||||
|
alpha_curve = SubResource("CurveTexture_b5nxd")
|
||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_1sgli"]
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_1sgli"]
|
||||||
size = Vector2(23.999994, 153)
|
size = Vector2(23.999994, 153)
|
||||||
|
|
||||||
@@ -233,6 +350,30 @@ texture = ExtResource("2_wwxm2")
|
|||||||
|
|
||||||
[node name="audio" type="AudioStreamPlayer2D" parent="texture/anchor/textureSword" index="0" unique_id=167399724]
|
[node name="audio" type="AudioStreamPlayer2D" parent="texture/anchor/textureSword" index="0" unique_id=167399724]
|
||||||
|
|
||||||
|
[node name="trailRight" type="GPUParticles2D" parent="texture/anchor/textureSword" index="1" unique_id=1304800613]
|
||||||
|
z_index = -1
|
||||||
|
amount = 12
|
||||||
|
texture = ExtResource("2_wwxm2")
|
||||||
|
preprocess = 2.0
|
||||||
|
local_coords = true
|
||||||
|
process_material = SubResource("ParticleProcessMaterial_xrrxo")
|
||||||
|
|
||||||
|
[node name="trailLeft" type="GPUParticles2D" parent="texture/anchor/textureSword" index="2" unique_id=1450319379]
|
||||||
|
visible = false
|
||||||
|
z_index = -1
|
||||||
|
texture = ExtResource("2_wwxm2")
|
||||||
|
preprocess = 2.0
|
||||||
|
local_coords = true
|
||||||
|
process_material = SubResource("ParticleProcessMaterial_b5pv2")
|
||||||
|
|
||||||
|
[node name="trailLine" type="GPUParticles2D" parent="texture/anchor/textureSword" index="3" unique_id=946145693]
|
||||||
|
z_index = -1
|
||||||
|
amount = 12
|
||||||
|
texture = ExtResource("2_wwxm2")
|
||||||
|
preprocess = 2.0
|
||||||
|
local_coords = true
|
||||||
|
process_material = SubResource("ParticleProcessMaterial_1sgli")
|
||||||
|
|
||||||
[node name="hitbox" parent="." index="1" unique_id=175349408 node_paths=PackedStringArray("target")]
|
[node name="hitbox" parent="." index="1" unique_id=175349408 node_paths=PackedStringArray("target")]
|
||||||
position = Vector2(199.99998, 0.081461266)
|
position = Vector2(199.99998, 0.081461266)
|
||||||
rotation = 0.00040731629
|
rotation = 0.00040731629
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ slogan = "恪守使命不离不弃"
|
|||||||
avatar = ExtResource("2_fi2nw")
|
avatar = ExtResource("2_fi2nw")
|
||||||
description = "每隔3秒发动格挡。"
|
description = "每隔3秒发动格挡。"
|
||||||
fields = Array[int]([0, 8, 3])
|
fields = Array[int]([0, 8, 3])
|
||||||
fieldValues = Array[float]([50.0, 0.15, -0.35])
|
fieldValues = Array[float]([100.0, 0.2, 0.0])
|
||||||
|
|
||||||
[node name="avatarTexture" parent="wrapper" parent_id_path=PackedInt32Array(2023039659) index="0" unique_id=1334645594]
|
[node name="avatarTexture" parent="wrapper" parent_id_path=PackedInt32Array(2023039659) index="0" unique_id=1334645594]
|
||||||
texture = ExtResource("2_fi2nw")
|
texture = ExtResource("2_fi2nw")
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ var dmg5: float = 0
|
|||||||
var splitAngle: float = 10
|
var splitAngle: float = 10
|
||||||
|
|
||||||
func spawn():
|
func spawn():
|
||||||
|
animator.speed_scale = launcher.fields[FieldStore.Entity.ATTACK_SPEED] * 0.75
|
||||||
setupCuttable(0.2)
|
setupCuttable(0.2)
|
||||||
func ai():
|
func ai():
|
||||||
PresetBulletAI.lockLauncher(self , launcher, true)
|
PresetBulletAI.lockLauncher(self , launcher, true)
|
||||||
|
|||||||
@@ -131,13 +131,13 @@ func setupCuttable(cutSpeed: float):
|
|||||||
func(body):
|
func(body):
|
||||||
var entity = EntityTool.fromHurtbox(body)
|
var entity = EntityTool.fromHurtbox(body)
|
||||||
if entity:
|
if entity:
|
||||||
speedScale = cutSpeed
|
speedScale *= cutSpeed
|
||||||
)
|
)
|
||||||
area_exited.connect(
|
area_exited.connect(
|
||||||
func(body):
|
func(body):
|
||||||
var entity = EntityTool.fromHurtbox(body)
|
var entity = EntityTool.fromHurtbox(body)
|
||||||
if entity:
|
if entity:
|
||||||
speedScale = 1
|
speedScale /= cutSpeed
|
||||||
)
|
)
|
||||||
func getDamage():
|
func getDamage():
|
||||||
return baseDamage * damageMultipliers[usingDamageMultiplier]
|
return baseDamage * damageMultipliers[usingDamageMultiplier]
|
||||||
|
|||||||
@@ -116,15 +116,19 @@ static var entityMinValueMap = {
|
|||||||
Entity.DAMAGE_MULTIPILER: 0.01
|
Entity.DAMAGE_MULTIPILER: 0.01
|
||||||
}
|
}
|
||||||
static var entityApplier = {
|
static var entityApplier = {
|
||||||
Entity.MAX_HEALTH: func(entity: EntityBase, value):
|
Entity.MAX_HEALTH: func(entity: EntityBase, value: float):
|
||||||
entity.health += value
|
entity.health += value
|
||||||
entity.statebar.forceSync()
|
entity.statebar.forceSync()
|
||||||
return true
|
return true
|
||||||
,
|
,
|
||||||
Entity.EXTRA_APPLE_MAX: func(entity, value):
|
Entity.EXTRA_APPLE_MAX: func(entity: EntityBase, value: float):
|
||||||
entity.inventoryMax[ItemStore.ItemType.APPLE] += value
|
entity.inventoryMax[ItemStore.ItemType.APPLE] += value
|
||||||
return true
|
return true
|
||||||
,
|
,
|
||||||
|
Entity.MAX_ENERGY: func(entity: EntityBase, value: float):
|
||||||
|
entity.energy += value
|
||||||
|
return true
|
||||||
|
,
|
||||||
}
|
}
|
||||||
static var entityViewCastMap = {
|
static var entityViewCastMap = {
|
||||||
Entity.EXTRA_APPLE_MAX: func(entity, _value):
|
Entity.EXTRA_APPLE_MAX: func(entity, _value):
|
||||||
|
|||||||
Reference in New Issue
Block a user