mirror of
https://github.com/Rundll86/Dog-Lynx-And-HCN.git
synced 2026-05-28 06:51:54 +08:00
feat(游戏结束): 添加死亡原因显示功能
- 新增JsonTool工具类用于解析JSON文件 - 在GameOver面板中添加死亡原因显示标签 - 添加死亡原因JSON数据文件 - 在GameRule中加载死亡原因数据
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=7 format=3 uid="uid://beo6s1kudbbve"]
|
[gd_scene load_steps=8 format=3 uid="uid://beo6s1kudbbve"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://d3qojeqa3difn" path="res://components/Abstracts/FullscreenPanelBase.tscn" id="1_u2ynr"]
|
[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"]
|
[ext_resource type="Script" path="res://scripts/Contents/Panels/GameOver.gd" id="2_6cd45"]
|
||||||
@@ -12,11 +12,16 @@ bg_color = Color(1, 0, 0, 0.3)
|
|||||||
font = ExtResource("3_oynlg")
|
font = ExtResource("3_oynlg")
|
||||||
font_size = 50
|
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")]
|
[node name="GameOver" instance=ExtResource("1_u2ynr")]
|
||||||
visible = false
|
offset_top = 0.0
|
||||||
|
offset_bottom = 0.0
|
||||||
script = ExtResource("2_6cd45")
|
script = ExtResource("2_6cd45")
|
||||||
|
|
||||||
[node name="wrapper" parent="content" index="0"]
|
[node name="wrapper" parent="content" index="1"]
|
||||||
theme_override_constants/separation = 50
|
theme_override_constants/separation = 50
|
||||||
|
|
||||||
[node name="container" type="PanelContainer" parent="content/wrapper" index="0"]
|
[node name="container" type="PanelContainer" parent="content/wrapper" index="0"]
|
||||||
@@ -24,12 +29,23 @@ layout_mode = 2
|
|||||||
size_flags_vertical = 3
|
size_flags_vertical = 3
|
||||||
theme_override_styles/panel = SubResource("StyleBoxFlat_7gbuu")
|
theme_override_styles/panel = SubResource("StyleBoxFlat_7gbuu")
|
||||||
|
|
||||||
[node name="text" type="Label" parent="content/wrapper/container" index="0"]
|
[node name="VBoxContainer" 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"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_horizontal = 4
|
size_flags_horizontal = 4
|
||||||
text = "败北"
|
text = "败北"
|
||||||
label_settings = SubResource("LabelSettings_17i5j")
|
label_settings = SubResource("LabelSettings_17i5j")
|
||||||
|
|
||||||
|
[node name="deadreason" type="Label" parent="content/wrapper/container/VBoxContainer" index="1"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 4
|
||||||
|
text = "死亡原因"
|
||||||
|
label_settings = SubResource("LabelSettings_ndokf")
|
||||||
|
|
||||||
[node name="audio" type="AudioStreamPlayer2D" parent="." index="2"]
|
[node name="audio" type="AudioStreamPlayer2D" parent="." index="2"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
stream = ExtResource("3_n4aax")
|
stream = ExtResource("3_n4aax")
|
||||||
|
|||||||
@@ -0,0 +1,132 @@
|
|||||||
|
[
|
||||||
|
"%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被杀死了,凶手是希腊烈火,"
|
||||||
|
]
|
||||||
@@ -2,6 +2,7 @@
|
|||||||
extends FullscreenPanelBase
|
extends FullscreenPanelBase
|
||||||
|
|
||||||
@onready var audio = $"%audio"
|
@onready var audio = $"%audio"
|
||||||
|
@onready var deadreason = $"%deadreason"
|
||||||
|
|
||||||
func beforeOpen():
|
func beforeOpen():
|
||||||
audio.play()
|
audio.play()
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ enum Difficulty {
|
|||||||
EXPERT,
|
EXPERT,
|
||||||
MASTER,
|
MASTER,
|
||||||
}
|
}
|
||||||
|
static var deadReasons: Array = JsonTool.parseJson("res://resources/constants/deadReasons.json")
|
||||||
static var difficulty: Difficulty = Difficulty.NORMAL # 难度倍数,可以写小数
|
static var difficulty: Difficulty = Difficulty.NORMAL # 难度倍数,可以写小数
|
||||||
static var allowFriendlyFire: bool = false # 是否允许友军伤害
|
static var allowFriendlyFire: bool = false # 是否允许友军伤害
|
||||||
static var bulletSpeedMultiplier: float = 1 # 子弹速度倍率
|
static var bulletSpeedMultiplier: float = 1 # 子弹速度倍率
|
||||||
@@ -26,4 +27,4 @@ static var entityLevelOffsetByWave: float = MathTool.percent(30) # 每波敌人
|
|||||||
static var appleDropRateInfluenceByLuckValue: float = MathTool.percent(2) # 幸运值对苹果掉率的影响
|
static var appleDropRateInfluenceByLuckValue: float = MathTool.percent(2) # 幸运值对苹果掉率的影响
|
||||||
static var critRateInfluenceByLuckValue: float = MathTool.percent(2.5) # 幸运值对暴击率的影响
|
static var critRateInfluenceByLuckValue: float = MathTool.percent(2.5) # 幸运值对暴击率的影响
|
||||||
static var penerateRateInfluenceByLuckValue: float = MathTool.percent(3) # 幸运值对穿透率的影响
|
static var penerateRateInfluenceByLuckValue: float = MathTool.percent(3) # 幸运值对穿透率的影响
|
||||||
static var detainTime: float = 1000 # 血量如果在这个时间内没有改变才会开始播放降低动画
|
static var detainTime: float = 1000 # 血量如果在这个时间内没有改变才会开始播放降低动画
|
||||||
|
|||||||
@@ -0,0 +1,9 @@
|
|||||||
|
class_name JsonTool
|
||||||
|
|
||||||
|
static func parseJson(filePath: String):
|
||||||
|
var file = FileAccess.open(filePath, FileAccess.READ)
|
||||||
|
var json = file.get_as_text()
|
||||||
|
file.close()
|
||||||
|
var jsonObj = JSON.new()
|
||||||
|
jsonObj.parse(json)
|
||||||
|
return jsonObj.data
|
||||||
@@ -8,6 +8,7 @@ static var runningTime: int = 0
|
|||||||
func _ready():
|
func _ready():
|
||||||
tree = get_tree()
|
tree = get_tree()
|
||||||
rootNode = self
|
rootNode = self
|
||||||
|
print(GameRule.deadReasons)
|
||||||
func _physics_process(delta):
|
func _physics_process(delta):
|
||||||
runningTime += delta * 1000
|
runningTime += delta * 1000
|
||||||
if EntityBase.mobCount() == 0:
|
if EntityBase.mobCount() == 0:
|
||||||
|
|||||||
Reference in New Issue
Block a user