1
1
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:
2026-04-03 18:29:14 +08:00
parent f018378053
commit 7e90bd1c1c
29 changed files with 734 additions and 60 deletions
+8 -8
View File
@@ -1,4 +1,4 @@
[gd_scene load_steps=8 format=3 uid="uid://crtdkysmnkith"]
[gd_scene format=3 uid="uid://crtdkysmnkith"]
[ext_resource type="Script" uid="uid://dp7c02tob106n" path="res://scripts/Statemachine/BulletBase.gd" id="1_pklpq"]
@@ -38,19 +38,19 @@ _data = {
[sub_resource type="CircleShape2D" id="CircleShape2D_ecl7m"]
[node name="BulletBase" type="Area2D"]
[node name="BulletBase" type="Area2D" unique_id=5571707]
script = ExtResource("1_pklpq")
[node name="texture" type="AnimatedSprite2D" parent="."]
[node name="texture" type="AnimatedSprite2D" parent="." unique_id=162977358]
unique_name_in_owner = true
sprite_frames = SubResource("SpriteFrames_vypy3")
[node name="animator" type="AnimationPlayer" parent="texture"]
[node name="animator" type="AnimationPlayer" parent="texture" unique_id=1114087117]
unique_name_in_owner = true
libraries = {
&"": SubResource("AnimationLibrary_dxweq")
}
libraries/ = SubResource("AnimationLibrary_dxweq")
[node name="hitbox" type="CollisionShape2D" parent="."]
[node name="audio" type="AudioStreamPlayer2D" parent="texture" unique_id=1167114186]
[node name="hitbox" type="CollisionShape2D" parent="." unique_id=175349408]
unique_name_in_owner = true
shape = SubResource("CircleShape2D_ecl7m")
+116 -24
View File
@@ -2,52 +2,144 @@
[ext_resource type="PackedScene" uid="uid://crtdkysmnkith" path="res://components/Abstracts/BulletBase.tscn" id="1_na6tw"]
[ext_resource type="Script" uid="uid://b7vswg8ju8a0u" path="res://scripts/Contents/Bullets/InfinitySword.gd" id="2_nbqhn"]
[ext_resource type="Texture2D" uid="uid://dbltogf6kgtic" path="res://resources/bullets/infinity-sword/Effect_DangerJumpSlash5.png" id="2_v6780"]
[ext_resource type="Texture2D" uid="uid://bp687pj8b7wv0" path="res://resources/bullets/infinity-sword/Effect_DangerJumpSlash6.png" id="3_nbqhn"]
[ext_resource type="Texture2D" uid="uid://btam58pjvht66" path="res://resources/bullets/infinity-sword/Effect_DangerJumpSlash7.png" id="4_d85mn"]
[ext_resource type="Texture2D" uid="uid://cpaqjor8cb8gb" path="res://resources/bullets/infinity-sword/Effect_DangerJumpSlash8.png" id="5_6n88i"]
[ext_resource type="Texture2D" uid="uid://ckmkpkkxpui3b" path="res://resources/bullets/infinity-sword/Effect_DangerJumpSlash9.png" id="6_bk7mn"]
[ext_resource type="Texture2D" uid="uid://fewvfwxtw5bu" path="res://resources/bullets/infinity-sword/Effect_DangerJumpSlash10.png" id="7_3cvbl"]
[sub_resource type="SpriteFrames" id="SpriteFrames_c741v"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("2_v6780")
}, {
"duration": 1.0,
"texture": ExtResource("3_nbqhn")
}, {
"duration": 1.0,
"texture": ExtResource("4_d85mn")
}, {
"duration": 1.0,
"texture": ExtResource("5_6n88i")
}, {
"duration": 1.0,
"texture": ExtResource("6_bk7mn")
}, {
"duration": 1.0,
"texture": ExtResource("7_3cvbl")
}],
"loop": false,
"name": &"default",
"speed": 15.0
}]
[sub_resource type="Animation" id="Animation_nbqhn"]
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(0, -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(0, -0.25, 0, 0.25, 0),
"times": PackedFloat32Array(0)
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath(".:modulate")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
[sub_resource type="Animation" id="Animation_d85mn"]
resource_name = "destroy"
length = 0.5
step = 0.1
[sub_resource type="Animation" id="Animation_6n88i"]
resource_name = "loop"
loop_mode = 1
step = 0.1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:rotation")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 1),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [0.0, 6.28319]
}
[sub_resource type="Animation" id="Animation_bk7mn"]
resource_name = "spawn"
length = 2.0
step = 0.05
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, 0, 2),
"points": PackedFloat32Array(0, -0.25, 0, 0, 0, 0.5, -0.25, 0, 0, 0, 0.5, 0, 0, 0, 0, 0, -0.25, 0, 0, 0),
"times": PackedFloat32Array(0, 0.15, 1.85, 2)
}
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(2, 0, 0, 0),
"points": PackedFloat32Array(0, 0, 0, 0, 0, 0.5, -0.25, 0, 0, 0, 0.5, 0, 0, 0, 0, 0, -0.25, 0, 0, 0),
"times": PackedFloat32Array(0, 0.15, 1.85, 2)
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath(".:modulate")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.15, 1.85, 2),
"transitions": PackedFloat32Array(1, 1, 1, 1),
"update": 0,
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_3cvbl"]
_data = {
&"RESET": SubResource("Animation_nbqhn"),
&"destroy": SubResource("Animation_d85mn"),
&"loop": SubResource("Animation_6n88i"),
&"spawn": SubResource("Animation_bk7mn")
}
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_v6780"]
radius = 124.0
height = 580.0
[node name="InfinitySword" unique_id=2133299016 instance=ExtResource("1_na6tw")]
script = ExtResource("2_nbqhn")
speed = 25.0
penerate = 1.0
autoSpawnAnimation = true
autoPlayTexture = true
freeAfterSpawn = true
[node name="texture" parent="." index="0"]
[node name="texture" parent="." index="0" unique_id=162977358]
rotation = 2.9485245
scale = Vector2(0.5, 0.5)
scale = Vector2(1e-05, 1e-05)
sprite_frames = SubResource("SpriteFrames_c741v")
frame = 1
[node name="hitbox" parent="." index="1"]
[node name="animator" parent="texture" index="0" unique_id=1114087117]
libraries/ = SubResource("AnimationLibrary_3cvbl")
[node name="hitbox" parent="." index="1" unique_id=175349408]
shape = SubResource("CapsuleShape2D_v6780")
+35 -12
View File
@@ -67,7 +67,6 @@ tracks/0/keys = {
[sub_resource type="Animation" id="Animation_06poh"]
resource_name = "spawn"
length = 3.0
loop_mode = 1
step = 0.1
tracks/0/type = "bezier"
tracks/0/imported = false
@@ -77,7 +76,7 @@ tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"handle_modes": PackedInt32Array(2, 2),
"points": PackedFloat32Array(0, 0, 0, 3.5, 4, -1.57, -1, -2, 0, 0),
"points": PackedFloat32Array(0, 0, 0, 3.5, 4, -1.57, -2, -2, 0, 0),
"times": PackedFloat32Array(0, 3)
}
tracks/1/type = "value"
@@ -87,7 +86,7 @@ tracks/1/path = NodePath(".:modulate")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.9, 2.7, 3),
"times": PackedFloat32Array(0, 0.9, 2.2, 3),
"transitions": PackedFloat32Array(1, 1, 1, 1),
"update": 0,
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
@@ -99,11 +98,28 @@ tracks/2/path = NodePath("%hitbox:disabled")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 2.4, 3),
"times": PackedFloat32Array(0, 2, 3),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [true, false, false]
}
tracks/3/type = "method"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("%texture/..")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(1.3, 2),
"transitions": PackedFloat32Array(1, 1),
"values": [{
"args": [],
"method": &"beReady"
}, {
"args": [],
"method": &"shoot"
}]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_57ptn"]
_data = {
@@ -114,21 +130,28 @@ _data = {
}
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_6ny68"]
radius = 55.20601
height = 389.01526
radius = 141.9448
height = 725.7404
[node name="Wuwei" unique_id=326826451 instance=ExtResource("1_eg848")]
script = ExtResource("2_vxgkj")
penerate = 1.0
autoSpawnAnimation = true
freeAfterSpawn = true
metadata/_edit_vertical_guides_ = [406.0]
[node name="animator" parent="texture" index="0"]
[node name="animator" parent="texture" parent_id_path=PackedInt32Array(162977358) index="0" unique_id=1114087117]
libraries/ = SubResource("AnimationLibrary_57ptn")
[node name="static" type="Sprite2D" parent="texture" index="1" unique_id=892692141]
position = Vector2(136.00002, 0)
scale = Vector2(0.37746382, 0.37746382)
[node name="static" type="Sprite2D" parent="texture" parent_id_path=PackedInt32Array(162977358) index="1" unique_id=892692141]
position = Vector2(300, 0)
texture = ExtResource("2_6ny68")
[node name="hitbox" parent="." index="1"]
position = Vector2(112, -64)
[node name="anchorSpawn" type="Node2D" parent="texture/static" index="0" unique_id=1327931418]
unique_name_in_owner = true
position = Vector2(170.913, -7)
[node name="hitbox" parent="." index="1" unique_id=175349408]
position = Vector2(235, -77)
rotation = -0.29216617
shape = SubResource("CapsuleShape2D_6ny68")
+11 -6
View File
@@ -1,8 +1,9 @@
[gd_scene load_steps=21 format=3 uid="uid://dky8574uqc18r"]
[gd_scene format=3 uid="uid://dky8574uqc18r"]
[ext_resource type="PackedScene" uid="uid://cvogxi7mktumf" path="res://components/Abstracts/EntityBase.tscn" id="1_e5pl8"]
[ext_resource type="Script" uid="uid://cthtupc6dtbav" path="res://scripts/Contents/Characters/Rooster.gd" id="2_oqdqd"]
[ext_resource type="PackedScene" uid="uid://cx7nogfnv7s8t" path="res://components/Weapons/Tree.tscn" id="3_0omr3"]
[ext_resource type="PackedScene" uid="uid://bbrllsqjmx0ie" path="res://components/Weapons/DaoStatue.tscn" id="3_jluqw"]
[ext_resource type="PackedScene" uid="uid://c0n3igy4hucrg" path="res://components/Weapons/PurpleCrystal.tscn" id="3_joj4g"]
[ext_resource type="AudioStream" uid="uid://cdrevrq7n6yqa" path="res://resources/sounds/effect/Boing.mp3" id="4_66s6c"]
[ext_resource type="AudioStream" uid="uid://benyec5bqni0b" path="res://resources/sounds/effect/Chomp.wav" id="4_k0yme"]
@@ -86,14 +87,14 @@ animations = [{
[sub_resource type="CircleShape2D" id="CircleShape2D_h1v0q"]
radius = 61.204575
[node name="Rooster" instance=ExtResource("1_e5pl8")]
[node name="Rooster" unique_id=1711205167 instance=ExtResource("1_e5pl8")]
script = ExtResource("2_oqdqd")
displayName = "公鸡"
useStatic = true
metadata/_edit_horizontal_guides_ = [-188.0]
metadata/_edit_vertical_guides_ = [71.0]
[node name="chargeParticle" type="GPUParticles2D" parent="." index="0"]
[node name="chargeParticle" type="GPUParticles2D" parent="." index="0" unique_id=1592717470]
unique_name_in_owner = true
position = Vector2(0, -54)
amount = 100
@@ -102,11 +103,15 @@ process_material = SubResource("ParticleProcessMaterial_joj4g")
[node name="weaponStore" parent="." index="2"]
process_mode = 4
[node name="PurpleCrystal" parent="weaponStore" index="0" instance=ExtResource("3_joj4g")]
[node name="DaoStatue" parent="weaponStore" index="0" unique_id=265403254 instance=ExtResource("3_jluqw")]
offset_bottom = 470.0
debugRebuild = false
[node name="PurpleCrystal" parent="weaponStore" index="1" unique_id=1666404074 instance=ExtResource("3_joj4g")]
offset_bottom = 350.0
debugRebuild = false
[node name="Tree" parent="weaponStore" index="1" instance=ExtResource("3_0omr3")]
[node name="Tree" parent="weaponStore" index="2" unique_id=2010233768 instance=ExtResource("3_0omr3")]
offset_bottom = 350.0
debugRebuild = false
@@ -136,7 +141,7 @@ animation = &"idle"
position = Vector2(8, -28)
shape = SubResource("CircleShape2D_h1v0q")
[node name="normal" type="Node2D" parent="texture/weapons" index="0"]
[node name="normal" type="Node2D" parent="texture/weapons" index="0" unique_id=1939030218]
position = Vector2(56, -69)
[node name="statebar" parent="." index="5" node_paths=PackedStringArray("entity")]
+130
View File
@@ -0,0 +1,130 @@
[gd_scene format=3 uid="uid://ckf0a3lud88tq"]
[ext_resource type="PackedScene" uid="uid://bcvuuy2m0pke0" path="res://components/Abstracts/EffectBase.tscn" id="1_oasek"]
[ext_resource type="Texture2D" uid="uid://bwc20hfm5jv8o" path="res://resources/effects/danger/Effect_Boss_YiGung_Upper413.png" id="2_56n4r"]
[ext_resource type="AudioStream" uid="uid://g2j01jf3kap8" path="res://resources/sounds/effect/Flash2.ogg" id="2_agkww"]
[ext_resource type="Texture2D" uid="uid://bwtxy88f2hq7v" path="res://resources/effects/danger/Effect_Boss_YiGung_Upper414.png" id="3_agkww"]
[ext_resource type="Texture2D" uid="uid://dexx7re4jsqex" path="res://resources/effects/danger/Effect_Boss_YiGung_Upper1200.png" id="4_rvrve"]
[ext_resource type="Texture2D" uid="uid://dd67ngjhh10ku" path="res://resources/effects/danger/Effect_Boss_YiGung_Upper1201.png" id="5_p01e2"]
[ext_resource type="Texture2D" uid="uid://chkv28f044rwb" path="res://resources/effects/danger/Effect_Boss_YiGung_Upper1202.png" id="6_jaajp"]
[ext_resource type="Texture2D" uid="uid://e3v0u34fvig4" path="res://resources/effects/danger/Effect_Boss_YiGung_Upper1203.png" id="7_lvgcl"]
[ext_resource type="Texture2D" uid="uid://c4k1m2mtwejwk" path="res://resources/effects/danger/Effect_Boss_YiGung_Upper1204.png" id="8_dww55"]
[ext_resource type="Texture2D" uid="uid://c5gkd05tb32u8" path="res://resources/effects/danger/Effect_Boss_YiGung_Upper1205.png" id="9_gwi08"]
[ext_resource type="Texture2D" uid="uid://mo0gjwh5amev" path="res://resources/effects/danger/Effect_Boss_YiGung_Upper1206.png" id="10_qnlj8"]
[sub_resource type="Animation" id="Animation_agkww"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("%texture: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)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("%texture:modulate")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
[sub_resource type="Animation" id="Animation_rvrve"]
resource_name = "spawn"
length = 0.7
step = 0.05
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("%texture:scale")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0.45, 0.7),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(1, 1), Vector2(0, 0)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("%texture:modulate")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0.45, 0.7),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_p01e2"]
_data = {
&"RESET": SubResource("Animation_agkww"),
&"spawn": SubResource("Animation_rvrve")
}
[sub_resource type="SpriteFrames" id="SpriteFrames_cau5v"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("2_56n4r")
}, {
"duration": 1.0,
"texture": ExtResource("3_agkww")
}, {
"duration": 1.0,
"texture": ExtResource("4_rvrve")
}, {
"duration": 1.0,
"texture": ExtResource("5_p01e2")
}, {
"duration": 1.0,
"texture": ExtResource("6_jaajp")
}, {
"duration": 1.0,
"texture": ExtResource("7_lvgcl")
}, {
"duration": 1.0,
"texture": ExtResource("8_dww55")
}, {
"duration": 1.0,
"texture": ExtResource("9_gwi08")
}, {
"duration": 1.0,
"texture": ExtResource("10_qnlj8")
}, {
"duration": 1.0,
"texture": ExtResource("10_qnlj8")
}],
"loop": false,
"name": &"spawn",
"speed": 20.0
}]
[node name="Danger" unique_id=609847951 instance=ExtResource("1_oasek")]
scale = Vector2(0.75, 0.75)
spawnSound = "spawn"
spawnAnimation = "spawn"
spawnTexture = "spawn"
[node name="spawn" parent="sounds" index="0"]
stream = ExtResource("2_agkww")
[node name="animator" parent="stage" index="0"]
libraries/ = SubResource("AnimationLibrary_p01e2")
[node name="texture" parent="stage" index="1"]
sprite_frames = SubResource("SpriteFrames_cau5v")
frame = 9
frame_progress = 1.0
+26 -9
View File
@@ -1,25 +1,39 @@
[gd_scene format=3 uid="uid://bbrllsqjmx0ie"]
[ext_resource type="PackedScene" uid="uid://ckq2cq6m23hq3" path="res://components/Abstracts/WeaponCardBase.tscn" id="1_mps21"]
[ext_resource type="Script" uid="uid://cu42bwm2r05p6" path="res://scripts/Contents/Weapons/DaoStatue.gd" id="2_c82g6"]
[ext_resource type="Texture2D" uid="uid://gwsychqkmv21" path="res://resources/weapons/Statue_Sword_Attack0.png" id="2_gx1sf"]
[ext_resource type="AudioStream" uid="uid://b3jn85pkl143b" path="res://resources/sounds/effect/Flash1.ogg" id="4_y3oaj"]
[node name="DaoStatue" unique_id=265403254 instance=ExtResource("1_mps21")]
script = ExtResource("2_c82g6")
avatarTexture = ExtResource("2_gx1sf")
displayName = "道教石像"
typeTopic = 1
store = {
"atk": 50,
"rate": 0.05
"atk": 30,
"rate1": 0.02,
"rate2": 0.01,
"rate3": 0.1
}
storeType = {
"atk": 1,
"rate": 2
"rate1": 2,
"rate2": 2,
"rate3": 2
}
descriptionTemplate = "挥出[b]无为之剑[/b],蓄力一段时间后挥出
发射一道[b]次元斩[/b],造成$atk点伤害。
攻击速度每降低1%,次元斩伤害+$rate"
descriptionTemplate = "挥出[b]天地之剑[/b],蓄力一段时间后,
发射一道[b]无量斩[/b],造成$atk点伤害。
攻击速度每降低[color=yellow]1%[/color],伤害+$rate2
每失去[color=yellow]1[/color]点生命值,伤害+$rate1
命中时每拥有[color=yellow]1[/color]层[b]气[/b],伤害+$rate3"
cooldown = 3000.0
debugRebuild = true
[node name="attack" parent="sounds" index="0"]
stream = ExtResource("4_y3oaj")
[node name="avatar" parent="container/info" index="0"]
texture = ExtResource("2_gx1sf")
@@ -28,6 +42,9 @@ displayName = "道教石像"
typeTopic = 1
[node name="description" parent="container" index="2"]
text = "[center]挥出[b]无为之剑[/b],蓄力一段时间后挥出
发射一道[b]次元斩[/b],造成[color=cyan]50[/color]点伤害。
攻击速度每降低1%,次元斩伤害+[color=cyan]5.0%[/color][/center]"
text = "[center]挥出[b]天地之剑[/b],蓄力一段时间后,
发射一道[b]无量斩[/b],造成[color=cyan]30[/color]点伤害。
攻击速度每降低[color=yellow]1%[/color],伤害+[color=cyan]1.0%[/color]
每失去[color=yellow]1[/color]点生命值,伤害+[color=cyan]2.0%[/color]
命中时每拥有[color=yellow]1[/color]层[b]气[/b],伤害+[color=cyan]10.0%[/color][/center]"
Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dexx7re4jsqex"
path="res://.godot/imported/Effect_Boss_YiGung_Upper1200.png-6d275bc764d57bf3c5e24d2ce48b899f.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://resources/effects/danger/Effect_Boss_YiGung_Upper1200.png"
dest_files=["res://.godot/imported/Effect_Boss_YiGung_Upper1200.png-6d275bc764d57bf3c5e24d2ce48b899f.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dd67ngjhh10ku"
path="res://.godot/imported/Effect_Boss_YiGung_Upper1201.png-1be3e204662f7aa140cbd6af6c6ec5bf.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://resources/effects/danger/Effect_Boss_YiGung_Upper1201.png"
dest_files=["res://.godot/imported/Effect_Boss_YiGung_Upper1201.png-1be3e204662f7aa140cbd6af6c6ec5bf.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://chkv28f044rwb"
path="res://.godot/imported/Effect_Boss_YiGung_Upper1202.png-206114566d2d02193cc25cc814eb2b19.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://resources/effects/danger/Effect_Boss_YiGung_Upper1202.png"
dest_files=["res://.godot/imported/Effect_Boss_YiGung_Upper1202.png-206114566d2d02193cc25cc814eb2b19.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://e3v0u34fvig4"
path="res://.godot/imported/Effect_Boss_YiGung_Upper1203.png-deddbfcad8017013da76441662014f7a.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://resources/effects/danger/Effect_Boss_YiGung_Upper1203.png"
dest_files=["res://.godot/imported/Effect_Boss_YiGung_Upper1203.png-deddbfcad8017013da76441662014f7a.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c4k1m2mtwejwk"
path="res://.godot/imported/Effect_Boss_YiGung_Upper1204.png-d83cd741cf07e43edab4e7bd12920065.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://resources/effects/danger/Effect_Boss_YiGung_Upper1204.png"
dest_files=["res://.godot/imported/Effect_Boss_YiGung_Upper1204.png-d83cd741cf07e43edab4e7bd12920065.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c5gkd05tb32u8"
path="res://.godot/imported/Effect_Boss_YiGung_Upper1205.png-5b75f37cb61198c1f3fd22e632582d58.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://resources/effects/danger/Effect_Boss_YiGung_Upper1205.png"
dest_files=["res://.godot/imported/Effect_Boss_YiGung_Upper1205.png-5b75f37cb61198c1f3fd22e632582d58.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://mo0gjwh5amev"
path="res://.godot/imported/Effect_Boss_YiGung_Upper1206.png-e7ed0f4b14119872f615be1c67b7d200.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://resources/effects/danger/Effect_Boss_YiGung_Upper1206.png"
dest_files=["res://.godot/imported/Effect_Boss_YiGung_Upper1206.png-e7ed0f4b14119872f615be1c67b7d200.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bwc20hfm5jv8o"
path="res://.godot/imported/Effect_Boss_YiGung_Upper413.png-f6e26e361e2883d771d87e92d52ec6e7.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://resources/effects/danger/Effect_Boss_YiGung_Upper413.png"
dest_files=["res://.godot/imported/Effect_Boss_YiGung_Upper413.png-f6e26e361e2883d771d87e92d52ec6e7.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bwtxy88f2hq7v"
path="res://.godot/imported/Effect_Boss_YiGung_Upper414.png-09915daa075100c93d8379fdad895d70.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://resources/effects/danger/Effect_Boss_YiGung_Upper414.png"
dest_files=["res://.godot/imported/Effect_Boss_YiGung_Upper414.png-09915daa075100c93d8379fdad895d70.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
@@ -1,5 +1,12 @@
extends BulletBase
class_name InfinitySwordBullet
var implused: Array[EntityBase] = []
func ai():
PresetBulletAI.forward(self , rotation)
func succeedToHit(_dmg: float, entity: EntityBase):
if implused.has(entity): return
else:
implused.append(entity)
entity.impluse(Vector2.from_angle(rotation) * 1500)
+18 -1
View File
@@ -1,5 +1,22 @@
extends BulletBase
class_name WuweiBullet
@export var canMove: bool = true
func ai():
if canMove:
PresetBulletAI.lockLauncher(self , launcher, true)
look_at(get_global_mouse_position())
func shoot():
pass
for bullet in BulletBase.generate(
ComponentManager.getBullet("InfinitySword"),
launcher,
position + Vector2.from_angle(rotation) * 400,
rotation
):
if bullet is InfinitySwordBullet:
bullet.baseDamage = baseDamage
func beReady():
canMove = false
EffectController.create(ComponentManager.getEffect("Danger"), findAnchor("Spawn")).shot()
+16
View File
@@ -0,0 +1,16 @@
@tool
extends Weapon
func attack(entity: EntityBase):
for bullet in BulletBase.generate(
ComponentManager.getBullet("Wuwei"),
entity,
entity.position,
entity.position.angle_to_point(get_global_mouse_position())
):
if bullet is WuweiBullet:
bullet.baseDamage = readStore("atk")
bullet.baseDamage *= (readStore("rate2") + 1) ** ((1.0 - entity.fields[FieldStore.Entity.ATTACK_SPEED]) * 100)
bullet.baseDamage *= (readStore("rate1") + 1) ** (entity.fields[FieldStore.Entity.MAX_HEALTH] - entity.health)
bullet.baseDamage *= (readStore("rate3") + 1) ** len(entity.getOrCreateCycleTimer("parry", 2000, 100).bullets)
return true
@@ -0,0 +1 @@
uid://cu42bwm2r05p6
+6
View File
@@ -104,6 +104,12 @@ func _physics_process(_delta: float) -> void:
else:
tryDestroy()
func findAnchor(anch: String):
var node = get_node_or_null("%anchor" + anch)
if node is Node2D:
return node.global_position
else:
return Vector2.ZERO
func setupCuttable(cutSpeed: float):
area_entered.connect(
func(body):