1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-05-27 22:41:56 +08:00
Files
fallingshrimp 7a0cf96d7d feat: 添加武器升华系统及相关UI组件
实现武器升华功能,包括:
- 新增SublimateOption类处理升华选项
- 添加SublimateOptionHandler UI组件
- 在武器卡片中集成升华界面
- 重构武器描述生成逻辑
- 新增钻石资源消耗机制
- 优化UI布局和样式
- 修复多处类型引用错误
2026-05-10 11:49:17 +08:00

440 lines
14 KiB
Plaintext

[gd_scene format=3 uid="uid://cvogxi7mktumf"]
[ext_resource type="Script" uid="uid://ds3j3f82li68h" path="res://scripts/Statemachine/EntityBase.gd" id="1_mvol6"]
[ext_resource type="Texture2D" uid="uid://dwwpkn4q07ja2" path="res://icon.svg" id="2_7lpu0"]
[ext_resource type="AudioStream" uid="uid://cn876dtp1ypqx" path="res://resources/sounds/effect/Collect.wav" id="2_qt0aq"]
[ext_resource type="PackedScene" uid="uid://dcjqjqere8ets" path="res://components/UI/EntityStateBar.tscn" id="2_uje1g"]
[sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_tiuhe"]
properties/0/path = NodePath(".:displayName")
properties/0/spawn = true
properties/0/replication_mode = 1
properties/1/path = NodePath(".:position")
properties/1/spawn = true
properties/1/replication_mode = 1
properties/2/path = NodePath("texture/animator/animatree:parameters/blend_position")
properties/2/spawn = true
properties/2/replication_mode = 1
properties/3/path = NodePath(".:health")
properties/3/spawn = true
properties/3/replication_mode = 1
[sub_resource type="SpriteFrames" id="SpriteFrames_wcqpm"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("2_7lpu0")
}],
"loop": true,
"name": &"idle",
"speed": 5.0
}, {
"frames": [],
"loop": true,
"name": &"walk",
"speed": 5.0
}]
[sub_resource type="SpriteFrames" id="SpriteFrames_tiuhe"]
[sub_resource type="CircleShape2D" id="CircleShape2D_buhm1"]
radius = 40.0
[sub_resource type="Animation" id="Animation_sxh2u"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:scale")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(-1, 1)]
}
[sub_resource type="Animation" id="Animation_vxanw"]
resource_name = "left"
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:scale")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(-1, 1)]
}
[sub_resource type="Animation" id="Animation_nuh11"]
resource_name = "left"
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:scale")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(1, 1)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_daot2"]
_data = {
&"RESET": SubResource("Animation_sxh2u"),
&"left": SubResource("Animation_vxanw"),
&"right": SubResource("Animation_nuh11")
}
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_ao5k4"]
animation = &"left"
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_611yr"]
animation = &"right"
[sub_resource type="AnimationNodeBlendSpace1D" id="AnimationNodeBlendSpace1D_51ube"]
blend_point_0/node = SubResource("AnimationNodeAnimation_ao5k4")
blend_point_0/pos = -1.0
blend_point_1/node = SubResource("AnimationNodeAnimation_611yr")
blend_point_1/pos = 1.0
snap = 1.0
[sub_resource type="Animation" id="Animation_3wcjn"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
[sub_resource type="Animation" id="Animation_wl2we"]
resource_name = "hurt"
length = 0.1
step = 0.1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.099999994),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(18.892157, 18.892157, 18.892157, 1), Color(1, 1, 1, 1)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_kbmff"]
_data = {
&"RESET": SubResource("Animation_3wcjn"),
&"hurt": SubResource("Animation_wl2we")
}
[sub_resource type="Animation" id="Animation_n7kxn"]
length = 0.001
tracks/0/type = "bezier"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:scale:x")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"handle_modes": PackedInt32Array(0),
"points": PackedFloat32Array(1, -0.25, 0, 0.25, 0),
"times": PackedFloat32Array(0)
}
tracks/1/type = "bezier"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath(".:scale:y")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"handle_modes": PackedInt32Array(0),
"points": PackedFloat32Array(1, -0.25, 0, 0.25, 0),
"times": PackedFloat32Array(0)
}
tracks/2/type = "bezier"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath(".:modulate:a")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"handle_modes": PackedInt32Array(0),
"points": PackedFloat32Array(1, -0.25, 0, 0.25, 0),
"times": PackedFloat32Array(0)
}
[sub_resource type="Animation" id="Animation_lg0kn"]
resource_name = "exit"
step = 0.1
tracks/0/type = "bezier"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:scale:x")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"handle_modes": PackedInt32Array(0, 0),
"points": PackedFloat32Array(2, -0.25, 0, 0.25, 0, 1, -0.25, 0, 0.25, 0),
"times": PackedFloat32Array(0, 1)
}
tracks/1/type = "bezier"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath(".:scale:y")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"handle_modes": PackedInt32Array(0, 0),
"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0, 1, -0.25, 0, 0.25, 0),
"times": PackedFloat32Array(0, 1)
}
tracks/2/type = "bezier"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath(".:modulate:a")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"handle_modes": PackedInt32Array(0, 0),
"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0, 1, -0.25, 0, 0.25, 0),
"times": PackedFloat32Array(0, 1)
}
[sub_resource type="Animation" id="Animation_nfj4q"]
resource_name = "exit"
step = 0.1
tracks/0/type = "bezier"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:scale:x")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"handle_modes": PackedInt32Array(0, 0),
"points": PackedFloat32Array(1, -0.25, 0, 0.25, 0, 2, -0.25, 0, 0.25, 0),
"times": PackedFloat32Array(0, 1)
}
tracks/1/type = "bezier"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath(".:scale:y")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"handle_modes": PackedInt32Array(0, 0),
"points": PackedFloat32Array(1, -0.25, 0, 0.25, 0, 0, -0.25, 0, 0.25, 0),
"times": PackedFloat32Array(0, 1)
}
tracks/2/type = "bezier"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath(".:modulate:a")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"handle_modes": PackedInt32Array(0, 0),
"points": PackedFloat32Array(1, -0.25, 0, 0.25, 0, 0, -0.25, 0, 0.25, 0),
"times": PackedFloat32Array(0, 1)
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_vvkcp"]
_data = {
&"RESET": SubResource("Animation_n7kxn"),
&"enter": SubResource("Animation_lg0kn"),
&"exit": SubResource("Animation_nfj4q")
}
[sub_resource type="Curve" id="Curve_cs3iy"]
_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_r5gvu"]
curve = SubResource("Curve_cs3iy")
[sub_resource type="Curve" id="Curve_uf1fy"]
_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_cofpe"]
curve = SubResource("Curve_uf1fy")
[sub_resource type="Gradient" id="Gradient_nkkgg"]
colors = PackedColorArray(1, 0, 0, 1, 1, 0.84375, 0, 1)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_j74g5"]
gradient = SubResource("Gradient_nkkgg")
[sub_resource type="Gradient" id="Gradient_m6h1v"]
colors = PackedColorArray(1, 1, 1, 1, 0, 0, 0, 1)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_j8vyx"]
gradient = SubResource("Gradient_m6h1v")
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_kndb2"]
particle_flag_disable_z = true
emission_shape = 1
emission_sphere_radius = 50.0
angle_min = 1.07288e-05
angle_max = 360.0
angle_curve = SubResource("CurveTexture_cofpe")
direction = Vector3(-1, 0, 0)
spread = 15.0
initial_velocity_max = 100.0
gravity = Vector3(0, 0, 0)
scale_min = 5.0
scale_max = 15.0
color_ramp = SubResource("GradientTexture1D_j8vyx")
color_initial_ramp = SubResource("GradientTexture1D_j74g5")
alpha_curve = SubResource("CurveTexture_r5gvu")
[sub_resource type="Curve" id="Curve_bdwpn"]
_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_vvfxd"]
curve = SubResource("Curve_bdwpn")
[sub_resource type="Curve" id="Curve_kwqoa"]
_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_065by"]
curve = SubResource("Curve_kwqoa")
[sub_resource type="Gradient" id="Gradient_futl5"]
colors = PackedColorArray(1, 0, 0, 1, 0.394531, 0, 0, 1)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_4n0se"]
gradient = SubResource("Gradient_futl5")
[sub_resource type="Gradient" id="Gradient_qttew"]
colors = PackedColorArray(1, 1, 1, 1, 0.597656, 0.597656, 0.597656, 1)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_joqdg"]
gradient = SubResource("Gradient_qttew")
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_f3xas"]
particle_flag_disable_z = true
angle_min = 1.07288e-05
angle_max = 360.0
angle_curve = SubResource("CurveTexture_065by")
direction = Vector3(-1, 0, 0)
spread = 180.0
initial_velocity_max = 150.0
gravity = Vector3(0, 200, 0)
scale_min = 3.0
scale_max = 8.0
color_ramp = SubResource("GradientTexture1D_joqdg")
color_initial_ramp = SubResource("GradientTexture1D_4n0se")
alpha_curve = SubResource("CurveTexture_vvfxd")
[sub_resource type="CircleShape2D" id="CircleShape2D_34h7q"]
[node name="EntityBase" type="CharacterBody2D" unique_id=335589593]
script = ExtResource("1_mvol6")
[node name="syncer" type="MultiplayerSynchronizer" parent="." unique_id=410089973]
unique_name_in_owner = true
replication_config = SubResource("SceneReplicationConfig_tiuhe")
[node name="weaponStore" type="Node2D" parent="." unique_id=1319091445]
unique_name_in_owner = true
[node name="sounds" type="Node2D" parent="." unique_id=1554185633]
unique_name_in_owner = true
[node name="sprint" type="AudioStreamPlayer2D" parent="sounds" unique_id=771326921]
[node name="heal" type="AudioStreamPlayer2D" parent="sounds" unique_id=522032588]
[node name="miss" type="AudioStreamPlayer2D" parent="sounds" unique_id=254579113]
[node name="hurt" type="AudioStreamPlayer2D" parent="sounds" unique_id=540822672]
[node name="collect" type="AudioStreamPlayer2D" parent="sounds" unique_id=1921709906]
stream = ExtResource("2_qt0aq")
[node name="die" type="AudioStreamPlayer2D" parent="sounds" unique_id=1599661867]
[node name="attack0" type="AudioStreamPlayer2D" parent="sounds" unique_id=244425603]
[node name="texture" type="AnimatedSprite2D" parent="." unique_id=1960766921]
unique_name_in_owner = true
position = Vector2(0, -50)
sprite_frames = SubResource("SpriteFrames_wcqpm")
animation = &"idle"
[node name="staticBackground" type="Sprite2D" parent="texture" unique_id=226001108]
[node name="staticAnimation" type="AnimatedSprite2D" parent="texture" unique_id=2086220178]
sprite_frames = SubResource("SpriteFrames_tiuhe")
[node name="hurtbox" type="Area2D" parent="texture" unique_id=1090146637]
unique_name_in_owner = true
[node name="hitbox" type="CollisionShape2D" parent="texture/hurtbox" unique_id=1089476696]
shape = SubResource("CircleShape2D_buhm1")
[node name="animator" type="AnimationPlayer" parent="texture" unique_id=998341823]
unique_name_in_owner = true
libraries/ = SubResource("AnimationLibrary_daot2")
[node name="animatree" type="AnimationTree" parent="texture/animator" unique_id=1984427152]
unique_name_in_owner = true
root_node = NodePath("%animator/..")
tree_root = SubResource("AnimationNodeBlendSpace1D_51ube")
anim_player = NodePath("..")
parameters/blend_position = 1.36
[node name="hurtAnimator" type="AnimationPlayer" parent="texture" unique_id=975738660]
unique_name_in_owner = true
libraries/ = SubResource("AnimationLibrary_kbmff")
[node name="stageAnimator" type="AnimationPlayer" parent="texture" unique_id=461345469]
unique_name_in_owner = true
libraries/ = SubResource("AnimationLibrary_vvkcp")
[node name="weapons" type="Node2D" parent="texture" unique_id=1686065375]
unique_name_in_owner = true
[node name="trailParticle" type="GPUParticles2D" parent="texture" unique_id=1437586204]
unique_name_in_owner = true
z_index = -1
amount = 300
process_material = SubResource("ParticleProcessMaterial_kndb2")
[node name="deadParticle" type="GPUParticles2D" parent="texture" unique_id=1910187205]
unique_name_in_owner = true
emitting = false
amount = 100
one_shot = true
explosiveness = 1.0
process_material = SubResource("ParticleProcessMaterial_f3xas")
[node name="statebar" parent="." unique_id=1990457668 instance=ExtResource("2_uje1g")]
unique_name_in_owner = true
position = Vector2(0, -100)
[node name="damageAnchor" type="Node2D" parent="statebar" unique_id=621457960]
unique_name_in_owner = true
position = Vector2(0, -20)
[node name="movebox" type="CollisionShape2D" parent="." unique_id=1340839290]
shape = SubResource("CircleShape2D_34h7q")