diff --git a/components/Bullets/NuclearBomb.tscn b/components/Bullets/NuclearBomb.tscn index da35614..e064771 100644 --- a/components/Bullets/NuclearBomb.tscn +++ b/components/Bullets/NuclearBomb.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=10 format=3 uid="uid://6aetx86j5ue"] +[gd_scene load_steps=11 format=3 uid="uid://6aetx86j5ue"] [ext_resource type="PackedScene" uid="uid://crtdkysmnkith" path="res://components/Abstracts/BulletBase.tscn" id="1_dpea6"] [ext_resource type="Texture2D" uid="uid://gs6jd1qxkl74" path="res://resources/bullets/nuclear-bomb/bomb.png" id="2_1kyo5"] @@ -6,7 +6,13 @@ [ext_resource type="Shader" path="res://shaders/FilledRing.gdshader" id="4_dheb6"] [ext_resource type="Script" path="res://scripts/Statemachine/ShaderStage.gd" id="4_wb270"] -[sub_resource type="ShaderMaterial" id="ShaderMaterial_s7tor"] +[sub_resource type="ShaderMaterial" id="ShaderMaterial_e6cfa"] +shader = ExtResource("4_dheb6") +shader_parameter/inner = 1.0 +shader_parameter/outer = 1.0 +shader_parameter/alpha = 1.0 + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_rcpby"] shader = ExtResource("4_dheb6") shader_parameter/inner = 0.98 shader_parameter/outer = 1.0 @@ -40,14 +46,21 @@ indisDamage = true canDamageSelf = true autoDestroyOnHitMap = false -[node name="warn" type="Node2D" parent="." index="0"] +[node name="warnbg" type="Node2D" parent="." index="0"] unique_name_in_owner = true -material = SubResource("ShaderMaterial_s7tor") +material = SubResource("ShaderMaterial_e6cfa") script = ExtResource("4_wb270") -size = Vector2(0, 0) +size = Vector2(200, 200) +color = Color(0, 0, 0, 0.2) + +[node name="warn" type="Node2D" parent="." index="1"] +unique_name_in_owner = true +material = SubResource("ShaderMaterial_rcpby") +script = ExtResource("4_wb270") +size = Vector2(200, 200) color = Color(1, 0, 0, 1) -[node name="texture" parent="." index="1"] +[node name="texture" parent="." index="2"] sprite_frames = SubResource("SpriteFrames_mku0w") [node name="anchor" type="Node2D" parent="texture" index="1"] @@ -64,5 +77,5 @@ label_settings = SubResource("LabelSettings_asfas") horizontal_alignment = 1 vertical_alignment = 1 -[node name="hitbox" parent="." index="2"] +[node name="hitbox" parent="." index="3"] shape = SubResource("CircleShape2D_nhppq") diff --git a/components/Characters/Rooster.tscn b/components/Characters/Rooster.tscn index fa820b4..01e99a9 100644 --- a/components/Characters/Rooster.tscn +++ b/components/Characters/Rooster.tscn @@ -1,10 +1,11 @@ -[gd_scene load_steps=16 format=3 uid="uid://bm7ymrri6pykb"] +[gd_scene load_steps=17 format=3 uid="uid://bm7ymrri6pykb"] [ext_resource type="PackedScene" uid="uid://cvogxi7mktumf" path="res://components/Abstracts/EntityBase.tscn" id="1_e5pl8"] [ext_resource type="Script" path="res://scripts/Contents/Characters/Rooster.gd" id="2_oqdqd"] [ext_resource type="Texture2D" uid="uid://fn8qx72clh38" path="res://resources/characters/cock/rooster-a.svg" id="2_q0j6j"] [ext_resource type="AudioStream" uid="uid://dclinyhu256xi" path="res://resources/sounds/effect/Low Whoosh.mp3" id="3_4syso"] [ext_resource type="Texture2D" uid="uid://ci2ik43ce82uy" path="res://resources/characters/cock/rooster-b.svg" id="3_b0fgx"] +[ext_resource type="PackedScene" uid="uid://b2qhes4apaxsj" path="res://components/Weapons/NuclearBomb.tscn" id="3_eikw3"] [ext_resource type="PackedScene" uid="uid://c0n3igy4hucrg" path="res://components/Weapons/PurpleCrystal.tscn" id="3_ms5sq"] [ext_resource type="PackedScene" uid="uid://frwt0fgrpskb" path="res://components/Weapons/Meowmere.tscn" id="3_pbssk"] [ext_resource type="AudioStream" uid="uid://cdrevrq7n6yqa" path="res://resources/sounds/effect/Boing.mp3" id="4_66s6c"] @@ -46,13 +47,16 @@ displayName = "公鸡" [node name="weaponStore" parent="." index="0"] process_mode = 4 -[node name="Meowmere" parent="weaponStore" index="0" instance=ExtResource("3_pbssk")] +[node name="NuclearBomb" parent="weaponStore" index="0" instance=ExtResource("3_eikw3")] +offset_bottom = 352.0 + +[node name="Meowmere" parent="weaponStore" index="1" instance=ExtResource("3_pbssk")] offset_bottom = 374.0 -[node name="PurpleCrystal" parent="weaponStore" index="1" instance=ExtResource("3_ms5sq")] +[node name="PurpleCrystal" parent="weaponStore" index="2" instance=ExtResource("3_ms5sq")] debugRebuild = false -[node name="VectorStar" parent="weaponStore" index="2" instance=ExtResource("6_fvy5n")] +[node name="VectorStar" parent="weaponStore" index="3" instance=ExtResource("6_fvy5n")] debugRebuild = false [node name="sprint" parent="sounds" index="0"] diff --git a/scripts/Contents/Bullets/NuclearBomb.gd b/scripts/Contents/Bullets/NuclearBomb.gd index 158d8cc..5a02879 100644 --- a/scripts/Contents/Bullets/NuclearBomb.gd +++ b/scripts/Contents/Bullets/NuclearBomb.gd @@ -4,6 +4,7 @@ class_name NuclearBomb @onready var label: Label = $"%label" @onready var anchor: Node2D = $"%anchor" @onready var warn: ShaderStage = $"%warn" +@onready var warnbg: ShaderStage = $"%warnbg" var countdown = 10000 var radius = 500 @@ -11,6 +12,7 @@ var radius = 500 func spawn(): hitbox.disabled = true hitbox.shape.radius = radius + warnbg.size = Vector2.ONE * 2 * radius anchor.global_rotation = 0 func ai(): speed *= 0.99 @@ -23,5 +25,5 @@ func ai(): func destroy(_b): EffectController.create(ComponentManager.getEffect("NuclearExplosion"), global_position).shot() hitbox.disabled = false - CameraManager.shake(5000, 500, func(_c, t, r): return t * r) # 震屏强度随进度递减 + CameraManager.shake(5000, 300, func(_c, t, r): return t * r) # 震屏强度随进度递减 await TickTool.frame(5) diff --git a/shaders/FilledRing.gdshader b/shaders/FilledRing.gdshader index e69de29..1ba83df 100644 --- a/shaders/FilledRing.gdshader +++ b/shaders/FilledRing.gdshader @@ -0,0 +1,13 @@ +shader_type canvas_item; +uniform float inner:hint_range(0.0, 1.0, 0.01)=0.5; +uniform float outer:hint_range(0.0, 1.0, 0.01)=0.75; +uniform float alpha:hint_range(0.0, 1.0, 0.1)=0.5; +void fragment() { + vec2 center=vec2(0.5); + float dist=distance(UV,center)*2.0; + if(dist