mirror of
https://github.com/Rundll86/Dog-Lynx-And-HCN.git
synced 2026-05-28 06:51:54 +08:00
feat(核弹): 添加核弹警告背景并调整爆炸效果
为核弹添加半透明警告背景环,调整爆炸震动强度从500降至300 新增填充环和光照着色器,用于视觉效果 将核弹作为公鸡角色的默认武器
This commit is contained in:
@@ -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")
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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<inner){
|
||||
COLOR.a*=alpha;
|
||||
}else{
|
||||
COLOR.a*=float(inner<dist&&dist<outer);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
shader_type canvas_item;
|
||||
uniform vec4 color:source_color;
|
||||
uniform float mixProgress:hint_range(0.0, 1.0, 0.01)=0.5;
|
||||
void fragment() {
|
||||
float maxDistance=0.5;
|
||||
float dist=distance(UV,vec2(0.5));
|
||||
vec4 mixed=vec4(color.rgb,smoothstep(0,1,(maxDistance-dist)/maxDistance));
|
||||
COLOR=mix(COLOR,mixed,mixProgress);
|
||||
}
|
||||
Reference in New Issue
Block a user