1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-06-05 11:17:13 +08:00

feat(游戏结束): 添加子弹显示名称并改进死亡信息显示

- 为所有子弹类型添加displayName属性用于显示
- 修改GameOver面板显示死亡原因,包含子弹名称和发射者
- 更新死亡原因文本格式为富文本样式
- 移除GameOver面板中多余的LabelSettings资源
This commit is contained in:
2025-09-13 20:52:19 +08:00
parent 3c1f89f807
commit 08f3067c7f
14 changed files with 155 additions and 149 deletions
+1
View File
@@ -8,6 +8,7 @@ radius = 63.1269
[node name="BearSprint" instance=ExtResource("1_qcnih")]
script = ExtResource("2_87hcl")
displayName = "猛冲"
[node name="hitbox" parent="." index="1"]
shape = SubResource("CircleShape2D_rirs4")
@@ -122,6 +122,7 @@ alpha_curve = SubResource("CurveTexture_wjo54")
position = Vector2(-34, -24)
script = ExtResource("2_uqsop")
allColor = SubResource("GradientTexture1D_e0qv5")
displayName = "七彩矢"
autoLoopAnimation = true
[node name="texture" parent="." index="0"]
@@ -133,6 +133,7 @@ height = 86.0
[node name="ForeverRainbow" instance=ExtResource("1_sltl7")]
script = ExtResource("2_wwmq8")
allColor = SubResource("GradientTexture1D_gcnu1")
displayName = "永恒彩虹"
lifeTime = 11000.0
indisDamage = true
autoSpawnAnimation = true
@@ -120,6 +120,7 @@ modulate = Color(1, 1, 1, 0)
scale = Vector2(1e-05, 1e-05)
script = ExtResource("2_0kdtj")
allColor = SubResource("GradientTexture1D_ikq3n")
displayName = "太阳舞"
autoSpawnAnimation = true
freeAfterSpawn = true
+1 -1
View File
@@ -205,12 +205,12 @@ height = 500.0
[node name="ChickLaser" instance=ExtResource("1_eb54j")]
script = ExtResource("2_7g0f0")
displayName = "冷冻激光"
metadata/_edit_vertical_guides_ = [688.0, 189.0]
[node name="rect" parent="texture" index="0"]
material = SubResource("ShaderMaterial_x6ivr")
offset_left = 188.0
offset_top = 0.0
offset_right = 238.0
offset_bottom = 500.0
+1
View File
@@ -8,6 +8,7 @@ radius = 63.1269
[node name="ChickSprint" instance=ExtResource("1_hvhrf")]
script = ExtResource("2_fecvj")
displayName = "猛冲"
[node name="hitbox" parent="." index="1"]
shape = SubResource("CircleShape2D_rirs4")
+1
View File
@@ -91,6 +91,7 @@ alpha_curve = SubResource("CurveTexture_diybr")
[node name="Diamond" instance=ExtResource("1_8udva")]
script = ExtResource("2_yxtyj")
displayName = "冰钻石"
lifeTime = 5000.0
indisDamage = true
+1
View File
@@ -8,6 +8,7 @@ size = Vector2(50, 50)
[node name="FireScan" instance=ExtResource("1_cqre5")]
script = ExtResource("2_qprdp")
displayName = "狱炎"
lifeDistance = 200.0
[node name="hitbox" parent="." index="1"]
+1
View File
@@ -62,6 +62,7 @@ radius = 19.2354
[node name="Star" instance=ExtResource("1_x6yf7")]
script = ExtResource("2_y4b0l")
displayName = "星星"
lifeTime = 1000.0
autoLoopAnimation = true
@@ -1,4 +1,4 @@
[gd_scene load_steps=8 format=3 uid="uid://beo6s1kudbbve"]
[gd_scene load_steps=7 format=3 uid="uid://beo6s1kudbbve"]
[ext_resource type="PackedScene" uid="uid://d3qojeqa3difn" path="res://components/Abstracts/FullscreenPanelBase.tscn" id="1_u2ynr"]
[ext_resource type="Script" path="res://scripts/Contents/Panels/GameOver.gd" id="2_6cd45"]
@@ -12,10 +12,6 @@ bg_color = Color(1, 0, 0, 0.3)
font = ExtResource("3_oynlg")
font_size = 50
[sub_resource type="LabelSettings" id="LabelSettings_ndokf"]
font = ExtResource("3_oynlg")
font_color = Color(0.710938, 0.710938, 0.710938, 1)
[node name="GameOver" instance=ExtResource("1_u2ynr")]
offset_top = 0.0
offset_bottom = 0.0
@@ -29,22 +25,24 @@ layout_mode = 2
size_flags_vertical = 3
theme_override_styles/panel = SubResource("StyleBoxFlat_7gbuu")
[node name="VBoxContainer" type="VBoxContainer" parent="content/wrapper/container" index="0"]
[node name="wrapper" type="VBoxContainer" parent="content/wrapper/container" index="0"]
layout_mode = 2
alignment = 1
[node name="text" type="Label" parent="content/wrapper/container/VBoxContainer" index="0"]
[node name="text" type="Label" parent="content/wrapper/container/wrapper" index="0"]
layout_mode = 2
size_flags_horizontal = 4
text = "败北"
label_settings = SubResource("LabelSettings_17i5j")
[node name="deadreason" type="Label" parent="content/wrapper/container/VBoxContainer" index="1"]
[node name="deadreason" type="RichTextLabel" parent="content/wrapper/container/wrapper" index="1"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 4
text = "死亡原因"
label_settings = SubResource("LabelSettings_ndokf")
bbcode_enabled = true
text = "[color=gray]死亡原因[/color]"
fit_content = true
autowrap_mode = 0
[node name="audio" type="AudioStreamPlayer2D" parent="." index="2"]
unique_name_in_owner = true
+133 -133
View File
@@ -1,135 +1,135 @@
[
"%s被杀死了,",
"%s被掏空了,",
"%s被谋杀了,",
"%s的脸被撕烂了,",
"%s的内脏被扯掉了,",
"%s被毁灭了,",
"%s的头骨被压碎了,",
"%s被屠杀了,",
"%s被刺穿了,",
"%s被撕成两半了,",
"%s被斩首了,",
"%s的手臂没了,",
"%s看着自己的内脏变成了“外脏”,",
"%s被野蛮地解剖了,",
"%s的四肢被扯掉了,",
"%s的身体血肉模糊了,",
"%s的重要器官毁了,",
"%s变成了一滩肉,",
"%s被踢出了游戏,",
"%s被折成两半了,",
"%s被腰斩了,",
"%s被千刀万剐了,",
"%s求死的愿望实现了,",
"%s被削肉去骨了,",
"%s的挣扎终于停止了,",
"%s的脑袋搬家了,",
"%s的肠子被扯出来了,",
"%s的旅程结束了,",
"%s被送去见奥库瑞姆了,",
"%s被浸渍了,",
"%s被放干了血,",
"%s被送到了骷髅区,",
"%s被自发切除了脑叶,",
"%s被压成了肉酱,",
"%s被碾成了肉泥,",
"%s的骨头被敲得粉碎,",
"%s成了怪物的食物,",
"%s的家被重塑了,",
"%s被迫自愿献血了,",
"%s的天灵盖被掀了,",
"%s的头顶被削掉了,",
"%s的零件放错了位置,",
"%s被打成了爽口酱汁,",
"%s的脊椎被扯掉了,",
"%s的存活纪录被终结了,",
"%s接受了强制截肢,",
"%s的脖子被折断了,",
"%s被撕成了碎片,",
"%s重伤不治,",
"%s被告知阳寿已尽,",
"%s的无能被展示了,",
"%s的灵魂被抽离了,",
"%s经历了仁慈的安乐死,",
"%s被自下而上地吃掉了,",
"%s被去骨了,",
"%s的两个肾都被偷了,",
"%s的堕落结束了,",
"%s的椎间盘脱出了,",
"%s的遗体被捐赠给了科学,",
"%s的大脑变成了果酱,",
"%s变成了下酒菜,",
"%s被送到了农场,",
"%s咽下了最后一口气,",
"%s的心跳停止了,",
"%s的头部挨了一记猛的,",
"%s被抹杀了,",
"%s受了脱套伤,",
"%s被剥了皮,",
"%s被围杀了,",
"%s被打屁股了,",
"%s被抓到了,",
"%s被杀掉了,",
"%s被放进水晶棺里了,",
"%s已经被埋了,",
"%s很快就会被遗忘,",
"%s被劈了,",
"%s摔死了,",
"%s没有反弹,",
"%s发明了重力,",
"%s领悟了“抛出窗外”的意思,",
"%s自由……自由落体了,",
"%s尝试了滑冰上坡,",
"%s认为自己会飞,",
"%s留下了一个大坑,",
"%s忘记了自己绝妙的想法,",
"%s忘了呼吸,",
"%s与鱼同眠,",
"%s溺死了,",
"%s成了鲨鱼的食物,",
"%s试图饮尽湖水,",
"%s发现了亚特兰蒂斯,",
"%s忘了带毛巾,",
"%s被熔化了,",
"%s被烧成了灰,",
"%s试图在熔岩中游泳,",
"%s喜欢在岩浆中玩耍,",
"%s不擅长玩“地板是熔岩”,",
"%s无法把火扑灭,",
"%s被烧成了焦炭,",
"%s被烧得只剩渣了,",
"%s成了全熟牛排,",
"%s被狱火吞噬了,",
"%s无法找到解药,",
"%s无法呼吸,",
"%s被活埋了,",
"%s无法控制瓦数,",
"%s变成了电池,",
"%s的生命力从正变负,",
"%s成了避雷针,",
"%s碎成渣了,",
"%s拼不起来了,",
"%s需要扫掉了,",
"%s变成了另一个土堆,",
"%s的腿长到脑袋那儿了,",
"%s未能成形,",
"%s饿死了,",
"%s找不到食物,",
"%s忘记吃东西了,",
"%s被舔了,",
"%s被血肉墙亲了!",
"%s试图逃跑,",
"%s被杀死了……",
"%s被捅了,",
"%s被黑暗中的什么东西杀死了!",
"%s成了宇航员,",
"%s现在是太空垃圾,",
"%s脱离了轨道,",
"%s已飞升,",
"%s已离开游戏,",
"%s跳起了舞,",
"%s被开发者玩死了,",
"%s被*刻意的游戏设计*杀死了!",
"%s菜死了,"
"[b]%s[/b]被杀死了,",
"[b]%s[/b]被掏空了,",
"[b]%s[/b]被谋杀了,",
"[b]%s[/b]的脸被撕烂了,",
"[b]%s[/b]的内脏被扯掉了,",
"[b]%s[/b]被毁灭了,",
"[b]%s[/b]的头骨被压碎了,",
"[b]%s[/b]被屠杀了,",
"[b]%s[/b]被刺穿了,",
"[b]%s[/b]被撕成两半了,",
"[b]%s[/b]被斩首了,",
"[b]%s[/b]的手臂没了,",
"[b]%s[/b]看着自己的内脏变成了“外脏”,",
"[b]%s[/b]被野蛮地解剖了,",
"[b]%s[/b]的四肢被扯掉了,",
"[b]%s[/b]的身体血肉模糊了,",
"[b]%s[/b]的重要器官毁了,",
"[b]%s[/b]变成了一滩肉,",
"[b]%s[/b]被踢出了游戏,",
"[b]%s[/b]被折成两半了,",
"[b]%s[/b]被腰斩了,",
"[b]%s[/b]被千刀万剐了,",
"[b]%s[/b]求死的愿望实现了,",
"[b]%s[/b]被削肉去骨了,",
"[b]%s[/b]的挣扎终于停止了,",
"[b]%s[/b]的脑袋搬家了,",
"[b]%s[/b]的肠子被扯出来了,",
"[b]%s[/b]的旅程结束了,",
"[b]%s[/b]被送去见奥库瑞姆了,",
"[b]%s[/b]被浸渍了,",
"[b]%s[/b]被放干了血,",
"[b]%s[/b]被送到了骷髅区,",
"[b]%s[/b]被自发切除了脑叶,",
"[b]%s[/b]被压成了肉酱,",
"[b]%s[/b]被碾成了肉泥,",
"[b]%s[/b]的骨头被敲得粉碎,",
"[b]%s[/b]成了怪物的食物,",
"[b]%s[/b]的家被重塑了,",
"[b]%s[/b]被迫自愿献血了,",
"[b]%s[/b]的天灵盖被掀了,",
"[b]%s[/b]的头顶被削掉了,",
"[b]%s[/b]的零件放错了位置,",
"[b]%s[/b]被打成了爽口酱汁,",
"[b]%s[/b]的脊椎被扯掉了,",
"[b]%s[/b]的存活纪录被终结了,",
"[b]%s[/b]接受了强制截肢,",
"[b]%s[/b]的脖子被折断了,",
"[b]%s[/b]被撕成了碎片,",
"[b]%s[/b]重伤不治,",
"[b]%s[/b]被告知阳寿已尽,",
"[b]%s[/b]的无能被展示了,",
"[b]%s[/b]的灵魂被抽离了,",
"[b]%s[/b]经历了仁慈的安乐死,",
"[b]%s[/b]被自下而上地吃掉了,",
"[b]%s[/b]被去骨了,",
"[b]%s[/b]的两个肾都被偷了,",
"[b]%s[/b]的堕落结束了,",
"[b]%s[/b]的椎间盘脱出了,",
"[b]%s[/b]的遗体被捐赠给了科学,",
"[b]%s[/b]的大脑变成了果酱,",
"[b]%s[/b]变成了下酒菜,",
"[b]%s[/b]被送到了农场,",
"[b]%s[/b]咽下了最后一口气,",
"[b]%s[/b]的心跳停止了,",
"[b]%s[/b]的头部挨了一记猛的,",
"[b]%s[/b]被抹杀了,",
"[b]%s[/b]受了脱套伤,",
"[b]%s[/b]被剥了皮,",
"[b]%s[/b]被围杀了,",
"[b]%s[/b]被打屁股了,",
"[b]%s[/b]被抓到了,",
"[b]%s[/b]被杀掉了,",
"[b]%s[/b]被放进水晶棺里了,",
"[b]%s[/b]已经被埋了,",
"[b]%s[/b]很快就会被遗忘,",
"[b]%s[/b]被劈了,",
"[b]%s[/b]摔死了,",
"[b]%s[/b]没有反弹,",
"[b]%s[/b]发明了重力,",
"[b]%s[/b]领悟了“抛出窗外”的意思,",
"[b]%s[/b]自由……自由落体了,",
"[b]%s[/b]尝试了滑冰上坡,",
"[b]%s[/b]认为自己会飞,",
"[b]%s[/b]留下了一个大坑,",
"[b]%s[/b]忘记了自己绝妙的想法,",
"[b]%s[/b]忘了呼吸,",
"[b]%s[/b]与鱼同眠,",
"[b]%s[/b]溺死了,",
"[b]%s[/b]成了鲨鱼的食物,",
"[b]%s[/b]试图饮尽湖水,",
"[b]%s[/b]发现了亚特兰蒂斯,",
"[b]%s[/b]忘了带毛巾,",
"[b]%s[/b]被熔化了,",
"[b]%s[/b]被烧成了灰,",
"[b]%s[/b]试图在熔岩中游泳,",
"[b]%s[/b]喜欢在岩浆中玩耍,",
"[b]%s[/b]不擅长玩“地板是熔岩”,",
"[b]%s[/b]无法把火扑灭,",
"[b]%s[/b]被烧成了焦炭,",
"[b]%s[/b]被烧得只剩渣了,",
"[b]%s[/b]成了全熟牛排,",
"[b]%s[/b]被狱火吞噬了,",
"[b]%s[/b]无法找到解药,",
"[b]%s[/b]无法呼吸,",
"[b]%s[/b]被活埋了,",
"[b]%s[/b]无法控制瓦数,",
"[b]%s[/b]变成了电池,",
"[b]%s[/b]的生命力从正变负,",
"[b]%s[/b]成了避雷针,",
"[b]%s[/b]碎成渣了,",
"[b]%s[/b]拼不起来了,",
"[b]%s[/b]需要扫掉了,",
"[b]%s[/b]变成了另一个土堆,",
"[b]%s[/b]的腿长到脑袋那儿了,",
"[b]%s[/b]未能成形,",
"[b]%s[/b]饿死了,",
"[b]%s[/b]找不到食物,",
"[b]%s[/b]忘记吃东西了,",
"[b]%s[/b]被舔了,",
"[b]%s[/b]被血肉墙亲了!",
"[b]%s[/b]试图逃跑,",
"[b]%s[/b]被杀死了……",
"[b]%s[/b]被捅了,",
"[b]%s[/b]被黑暗中的什么东西杀死了!",
"[b]%s[/b]成了宇航员,",
"[b]%s[/b]现在是太空垃圾,",
"[b]%s[/b]脱离了轨道,",
"[b]%s[/b]已飞升,",
"[b]%s[/b]已离开游戏,",
"[b]%s[/b]跳起了舞,",
"[b]%s[/b]被开发者玩死了,",
"[b]%s[/b]被*刻意的游戏设计*杀死了!",
"[b]%s[/b]菜死了,"
]
+3 -3
View File
@@ -1,10 +1,10 @@
@tool
extends FullscreenPanelBase
@onready var audio = $"%audio"
@onready var deadreason = $"%deadreason"
@onready var audio: AudioStreamPlayer2D = $"%audio"
@onready var deadreason: RichTextLabel = $"%deadreason"
func beforeOpen(args: Array = []):
audio.play()
var reasonTemplate = MathTool.randc_from(GameRule.deadReasons)
deadreason.text = (reasonTemplate + "凶手是%s") % args
deadreason.text = ("[color=gray]" + reasonTemplate + "凶手是[b]%s[/b]的[b]%s[/b]。[/color]") % args
+1
View File
@@ -1,6 +1,7 @@
extends Area2D
class_name BulletBase
@export var displayName: String = "未知子弹"
@export var speed: float = 10.0
@export var damage: float = 10.0
@export var penerate: float = 0.0
+1 -2
View File
@@ -290,7 +290,7 @@ func tryDie(by: BulletBase):
)
if isPlayer():
if UIState.player == self:
UIState.setPanel("GameOver", [displayName, by.launcher.displayName])
UIState.setPanel("GameOver", [displayName, by.launcher.displayName, by.displayName])
EffectController.create(preload("res://components/Effects/DeadBlood.tscn"), texture.global_position).shot()
await die()
func tryHeal(count: float):
@@ -299,7 +299,6 @@ func tryHeal(count: float):
playSound("heal")
healed.emit(heal(count * fields.get(FieldStore.Entity.HEAL_ABILITY)))
healthChanged.emit(health)
func findWeaponAnchor(weaponName: String):
var anchor = $"%weapons".get_node_or_null(weaponName)
if anchor is Node2D: