胖子游戏基本流程

This commit is contained in:
cakipaul 2025-07-31 05:24:11 +08:00
parent ea27b36e02
commit 78e87f35bc
16 changed files with 126 additions and 124 deletions

View File

@ -283,3 +283,4 @@ c03_s08_囚室绳子,绑得很死,直接解不开绳子。,,,,,
c03_s08_囚室醒过来,?这里是,,,,, c03_s08_囚室醒过来,?这里是,,,,,
c03_s08_囚室看到脚印,?又是脚印,,,,, c03_s08_囚室看到脚印,?又是脚印,,,,,
c03_s08_囚室符纸,妖物者,本自造化而生,具灵识,知求生,与万类本无别。人言有异,是以别之。,,,,, c03_s08_囚室符纸,妖物者,本自造化而生,具灵识,知求生,与万类本无别。人言有异,是以别之。,,,,,
c03_s09_胖子干尸,?胖子干尸,,,,,

1 keys zh_CN _character _notes _tags zh_SH en
283 c03_s08_囚室醒过来 ?这里是
284 c03_s08_囚室看到脚印 ?又是脚印
285 c03_s08_囚室符纸 妖物者,本自造化而生,具灵识,知求生,与万类本无别。人言有异,是以别之。
286 c03_s09_胖子干尸 ?胖子干尸

View File

@ -371,6 +371,8 @@
?又是脚印 [ID:c03_s08_囚室看到脚印] ?又是脚印 [ID:c03_s08_囚室看到脚印]
妖物者,本自造化而生,具灵识,知求生,与万类本无别。人言有异,是以别之。 [ID:c03_s08_囚室符纸] 妖物者,本自造化而生,具灵识,知求生,与万类本无别。人言有异,是以别之。 [ID:c03_s08_囚室符纸]
# s09 棺材房 # s09 棺材房
?胖子干尸 [ID:c03_s09_胖子干尸]
=> END => END
~ Notes_c04 ~ Notes_c04

View File

@ -7,3 +7,4 @@
[resource] [resource]
script = ExtResource("3_soveh") script = ExtResource("3_soveh")
audios = Array[AudioStream]([ExtResource("1_vboyp"), ExtResource("2_evogo")]) audios = Array[AudioStream]([ExtResource("1_vboyp"), ExtResource("2_evogo")])
db = -7

View File

@ -76,9 +76,9 @@ func _unhandled_input(event: InputEvent) -> void:
if quit_closeup_on_cancel and not _holding_cancel_before_exit: if quit_closeup_on_cancel and not _holding_cancel_before_exit:
get_viewport().set_input_as_handled() get_viewport().set_input_as_handled()
_exit() _exit()
# 在有特写界面时,阻塞 interact 输入 # # 在有特写界面时,不能阻塞 interact 输入,因为可能 inspcet prop
elif event.is_action_pressed("interact"): # elif event.is_action_pressed("interact"):
get_viewport().set_input_as_handled() # get_viewport().set_input_as_handled()
###### TOOL BUTTON ###### TOOL BUTTON

View File

@ -45,7 +45,6 @@ const GROUND_SCENE_PATH_DICT: Dictionary[String, Dictionary] = {
"c03_s10": {"path": "uid://clgwc3jcqarpe", "name": "胖子游戏1"}, "c03_s10": {"path": "uid://clgwc3jcqarpe", "name": "胖子游戏1"},
"c03_s11": {"path": "uid://shgrg8qcr1cu", "name": "胖子游戏2"}, "c03_s11": {"path": "uid://shgrg8qcr1cu", "name": "胖子游戏2"},
"c03_s12": {"path": "uid://cxabqg87g4vxc", "name": "胖子游戏3"}, "c03_s12": {"path": "uid://cxabqg87g4vxc", "name": "胖子游戏3"},
"c03_s13": {"path": "uid://s6odh172gpbr", "name": "胖子游戏4"},
"c04_s01": {"path": "uid://drjnu33pga6i5", "name": "父母房间"}, "c04_s01": {"path": "uid://drjnu33pga6i5", "name": "父母房间"},
} }

View File

@ -41,6 +41,7 @@ func _on_ground_ready() -> void:
if interactable_body.icount > 0: if interactable_body.icount > 0:
closeup符纸.show() closeup符纸.show()
if interactable_body.interacted_times > 0: if interactable_body.interacted_times > 0:
pickable转轮.enabled = true
body_sprite.frame = 3 body_sprite.frame = 3
if ambush血脚印.played: if ambush血脚印.played:
ambush血脚印.get_node("血脚印").frame = 8 ambush血脚印.get_node("血脚印").frame = 8
@ -72,6 +73,8 @@ func _on_body_interacted(success: bool) -> void:
await Util.wait(1.0) await Util.wait(1.0)
SceneManager.unlock_player() SceneManager.unlock_player()
if success: if success:
SceneManager.disable_prop_item("prop_菜刀")
pickable转轮.enabled = true
SceneManager.lock_player() SceneManager.lock_player()
body_sprite.play() body_sprite.play()
await body_sprite.animation_finished await body_sprite.animation_finished

View File

@ -278,6 +278,8 @@ texture = ExtResource("14_htuhx")
position = Vector2(420, 56) position = Vector2(420, 56)
sign_mark_offset = Vector2(27.55, 0) sign_mark_offset = Vector2(27.55, 0)
action = 3 action = 3
title_filter = "c03"
note_key = "c03_s09_胖子干尸"
[node name="Sfx2D棺材呼吸声" type="AudioStreamPlayer2D" parent="Ground/DeployLayer" index="4"] [node name="Sfx2D棺材呼吸声" type="AudioStreamPlayer2D" parent="Ground/DeployLayer" index="4"]
position = Vector2(341, 45) position = Vector2(341, 45)
@ -294,6 +296,7 @@ metadata/_custom_type_script = "uid://wapo47a1oddf"
position = Vector2(338, 54) position = Vector2(338, 54)
texture = ExtResource("7_kdfpp") texture = ExtResource("7_kdfpp")
packed_scene = ExtResource("7_klnhf") packed_scene = ExtResource("7_klnhf")
quit_closeup_on_cancel = false
sign_mark_offset = Vector2(0, -21.53) sign_mark_offset = Vector2(0, -21.53)
collision_width_and_x = Vector2(100.52, 0) collision_width_and_x = Vector2(100.52, 0)

View File

@ -30,5 +30,6 @@ func _check_first_enter() -> void:
if not data["has_entered"]: if not data["has_entered"]:
SceneManager.lock_player(0, 5, true) SceneManager.lock_player(0, 5, true)
set_data("has_entered", true) set_data("has_entered", true)
await SceneManager.pause_and_hide_player_sprite(1.5) SceneManager.pause_and_hide_player_sprite(1.5)
await SceneManager.get_player().animation_finished
SceneManager.unlock_player() SceneManager.unlock_player()

View File

@ -21,22 +21,20 @@ func _ready() -> void:
func _setup_node_reference() -> void: func _setup_node_reference() -> void:
pass pass
func _on_ground_ready() -> void: func _on_ground_ready() -> void:
pass pass
func eat_meat() -> void: func eat_meat() -> void:
var light_pivot = $"../DeployLayer/LightPivot"
SceneManager.lock_player() SceneManager.lock_player()
$"../DeployLayer/Ambush吃肉".enabled = false $"../DeployLayer/Ambush吃肉".enabled = false
await SceneManager.get_player().walk_to_x(850.0).finished await SceneManager.get_player().walk_to_x(850.0).finished
# 第一帧没有瘦子,后面才有 # 第一帧没有瘦子,后面才有
var player = SceneManager.get_player() as MainPlayer var player = SceneManager.get_player() as MainPlayer
var sprite = $"../DeployLayer/Pro吃肉" as ProAnimatedSprite2D player.reparent_light(light_pivot)
sprite.play() play("eat_meat")
sprite.frame = 1 await animation_finished
player.hide_sprite = true
await sprite.animation_finished
SceneManager.unlock_player() SceneManager.unlock_player()
# c03_meat_grinder: 0:初始化 1:已装转盘 2:绞肉机演出 3:演出结束 # c03_meat_grinder: 0:初始化 1:已装转盘 2:绞肉机演出 3:演出结束
EventManager.set_stage_if_greater("c03_meat_grinder", 2) EventManager.set_stage_if_greater("c03_meat_grinder", 2)

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=10 format=3 uid="uid://cxabqg87g4vxc"] [gd_scene load_steps=12 format=3 uid="uid://cxabqg87g4vxc"]
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_ly8ge"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_ly8ge"]
[ext_resource type="Script" uid="uid://f4uampm47832" path="res://scene/ground/scene/c03/s12_胖子游戏3.gd" id="2_c01lu"] [ext_resource type="Script" uid="uid://f4uampm47832" path="res://scene/ground/scene/c03/s12_胖子游戏3.gd" id="2_c01lu"]
@ -9,7 +9,91 @@
[ext_resource type="SpriteFrames" uid="uid://cb3b44a1jpybb" path="res://asset/art/gif/c03_胖子游戏/c03_胖子游戏第四段/c03_胖子游戏第四段_frames.tres" id="10_7x1vi"] [ext_resource type="SpriteFrames" uid="uid://cb3b44a1jpybb" path="res://asset/art/gif/c03_胖子游戏/c03_胖子游戏第四段/c03_胖子游戏第四段_frames.tres" id="10_7x1vi"]
[ext_resource type="PackedScene" uid="uid://bnf3lkcbpx1ar" path="res://scene/entity/ambush.tscn" id="11_sul0a"] [ext_resource type="PackedScene" uid="uid://bnf3lkcbpx1ar" path="res://scene/entity/ambush.tscn" id="11_sul0a"]
[sub_resource type="Animation" id="Animation_c01lu"]
resource_name = "eat_meat"
length = 10.0
capture_included = true
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("DeployLayer/LightPivot:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.42, 0.7, 3.31, 4.75, 5.79, 9.4, 9.68, 10),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1),
"update": 0,
"values": [Vector2(850, 95), Vector2(875, 75), Vector2(892, 47), Vector2(940, 20), Vector2(944, 21), Vector2(959, 11), Vector2(977, -13), Vector2(977, 13), Vector2(968, 176)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("DeployLayer/Pro吃肉:frame")
tracks/1/interp = 1
tracks/1/loop_wrap = false
tracks/1/keys = {
"times": PackedFloat32Array(0, 10),
"transitions": PackedFloat32Array(1, 1),
"update": 2,
"values": [1, 48]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("MainPlayer:hide_sprite")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0.0333333),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
[sub_resource type="Animation" id="Animation_ay855"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("DeployLayer/LightPivot:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(850, 95)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("DeployLayer/Pro吃肉:frame")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [0]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("MainPlayer:hide_sprite")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_k01ve"] [sub_resource type="AnimationLibrary" id="AnimationLibrary_k01ve"]
_data = {
&"RESET": SubResource("Animation_ay855"),
&"eat_meat": SubResource("Animation_c01lu")
}
[node name="S12" type="Node2D"] [node name="S12" type="Node2D"]
metadata/_edit_horizontal_guides_ = [-627.0] metadata/_edit_horizontal_guides_ = [-627.0]
@ -63,6 +147,9 @@ trigger_mode = "interact"
one_shot = false one_shot = false
hook_method = "eat_meat" hook_method = "eat_meat"
[node name="LightPivot" type="Marker2D" parent="Ground/DeployLayer" index="4"]
position = Vector2(850, 95)
[node name="MainPlayer" parent="Ground" index="5"] [node name="MainPlayer" parent="Ground" index="5"]
position = Vector2(69, 95) position = Vector2(69, 95)
character = "胖子游戏" character = "胖子游戏"

View File

@ -1,45 +0,0 @@
@tool
extends AnimationRoot
# 覆盖该方法
func _default_data() -> Dictionary:
return {}
func _ready() -> void:
super._ready()
if Engine.is_editor_hint():
return
#region node_reference
#endregion
# 读取设置变量名
func _setup_node_reference() -> void:
pass
func _on_ground_ready() -> void:
pass
func eat_meat() -> void:
SceneManager.lock_player()
$"../DeployLayer/Ambush吃肉".enabled = false
await SceneManager.get_player().walk_to_x(850.0).finished
# 第一帧没有瘦子,后面才有
var player = SceneManager.get_player() as MainPlayer
var sprite = $"../DeployLayer/Pro吃肉" as ProAnimatedSprite2D
sprite.play()
sprite.frame = 1
player.hide_sprite = true
await sprite.animation_finished
SceneManager.unlock_player()
# c03_meat_grinder: 0:初始化 1:已装转盘 2:绞肉机演出 3:演出结束
EventManager.set_stage_if_greater("c03_meat_grinder", 2)
SceneManager.get_ground_loader().transition_to_scene("c03_s07", "2")

View File

@ -1 +0,0 @@
uid://ddawqvg4fjxv6

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=10 format=3 uid="uid://s6odh172gpbr"] [gd_scene load_steps=10 format=3 uid="uid://ban8firg4ti5x"]
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_via7g"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_via7g"]
[ext_resource type="Script" uid="uid://f4uampm47832" path="res://scene/ground/scene/c03/s12_胖子游戏3.gd" id="2_f2euj"] [ext_resource type="Script" uid="uid://f4uampm47832" path="res://scene/ground/scene/c03/s12_胖子游戏3.gd" id="2_f2euj"]

View File

@ -13,7 +13,7 @@ signal exit(arg)
func _ready() -> void: func _ready() -> void:
layer = GlobalConfig.CANVAS_LAYER_LITTLE_GAME layer = GlobalConfig.CANVAS_LAYER_LITTLE_GAME
drag_wizardpaper.picked.connect(func(_a): drag_wizardpaper.picked.connect(func(_a):
SceneManager.enable_important_item("prop_符纸", false) SceneManager.enable_important_item("prop_符纸")
) )
drag_newspaper.picked.connect(func(_a): drag_newspaper.picked.connect(func(_a):
sfx_newspaper.play() sfx_newspaper.play()

View File

@ -36,38 +36,38 @@ func _on_knife_interacted() -> void:
### TODO 读纸条时,开始准备横版的呼吸声(呼吸声与棺材怪爬墙活动分在两个音频文件) ### TODO 读纸条时,开始准备横版的呼吸声(呼吸声与棺材怪爬墙活动分在两个音频文件)
# 退出阅读马上进入横版,出现棺材怪爬墙活动的声音 # 退出阅读马上进入横版,出现棺材怪爬墙活动的声音
func _on_note_interacted() -> void: func _on_note_interacted() -> void:
EventManager.set_stage("c03_coffin", 2)
hover_note.hide() hover_note.hide()
%"沾血的纸条".show() EventManager.set_stage("c03_coffin", 2)
displaying_bloody_note = true SceneManager.enable_important_item("prop_沾血的纸条")
await SceneManager.get_inspector().quit_and_hidden
exit.emit(true)
var displaying_bloody_note := false # 0: 需要浆糊 1: 需要刀把 2: 已完成
# 0: 刀柄 1: 浆糊 2: 刀把
var knife_state := 0 var knife_state := 0
func _unhandled_input(event: InputEvent) -> void: func _unhandled_input(event: InputEvent) -> void:
if event.is_action_pressed("cancel"): if event.is_action_pressed("cancel") and coffin_stage == 0:
get_viewport().set_input_as_handled() get_viewport().set_input_as_handled()
SceneManager.reset_temp_disabled_props() SceneManager.reset_temp_disabled_props()
exit.emit(displaying_bloody_note) exit.emit(false)
if event.is_action_pressed("interact"): if event.is_action_pressed("interact") and coffin_stage == 0:
get_viewport().set_input_as_handled()
var prop = SceneManager.get_current_prop() var prop = SceneManager.get_current_prop()
var valid = false
if knife_state == 0: if knife_state == 0:
valid = prop == "prop_浆糊" get_viewport().set_input_as_handled()
if valid: if prop == "prop_浆糊":
knife_state = 1 knife_state = 1
$"Sfx使用浆糊".play() $"Sfx使用浆糊".play()
%"胶水".show() %"胶水".show()
SceneManager.disable_prop_item_temp("prop_浆糊") SceneManager.disable_prop_item_temp("prop_浆糊")
else:
SceneManager.get_prop_hud().on_toggle_invalid_prop()
elif knife_state == 1: elif knife_state == 1:
valid = prop == "prop_刀把" get_viewport().set_input_as_handled()
if valid: if prop == "prop_刀把":
knife_state = 2 knife_state = 2
%"刀有柄".show() %"刀有柄".show()
SceneManager.disable_prop_item_temp("prop_刀把") SceneManager.disable_prop_item_temp("prop_刀把")
hover_knife.freezing = false hover_knife.freezing = false
if not valid: else:
SceneManager.get_prop_hud().on_toggle_invalid_prop() SceneManager.get_prop_hud().on_toggle_invalid_prop()

View File

@ -1,16 +1,12 @@
[gd_scene load_steps=17 format=3 uid="uid://btmen4wc4uhhj"] [gd_scene load_steps=13 format=3 uid="uid://btmen4wc4uhhj"]
[ext_resource type="Script" uid="uid://cj22vg4dn44qk" path="res://scene/ground/script/c03/s09_closeup棺材特写.gd" id="1_6v1ol"] [ext_resource type="Script" uid="uid://cj22vg4dn44qk" path="res://scene/ground/script/c03/s09_closeup棺材特写.gd" id="1_6v1ol"]
[ext_resource type="Texture2D" uid="uid://d03ja5ujdmyce" path="res://asset/art/scene/c03/s09_棺材房/棺材互动/棺材特写.png" id="2_6xi18"] [ext_resource type="Texture2D" uid="uid://d03ja5ujdmyce" path="res://asset/art/scene/c03/s09_棺材房/棺材互动/棺材特写.png" id="2_6xi18"]
[ext_resource type="AudioStream" uid="uid://c57eu0dnr821k" path="res://asset/audio/sfx/交互/sfx_检阅道具.ogg" id="2_bgvp8"] [ext_resource type="AudioStream" uid="uid://c57eu0dnr821k" path="res://asset/audio/sfx/交互/sfx_检阅道具.ogg" id="2_bgvp8"]
[ext_resource type="Texture2D" uid="uid://cbql1i4hblmt1" path="res://asset/art/ui/遮罩/inspect特写通用遮罩.png" id="2_f6kiq"] [ext_resource type="Texture2D" uid="uid://cbql1i4hblmt1" path="res://asset/art/ui/遮罩/inspect特写通用遮罩.png" id="2_f6kiq"]
[ext_resource type="PackedScene" uid="uid://dmysq4sxx8iqh" path="res://scene/entity/ux/content_inspector.tscn" id="3_6xi18"]
[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="3_mobd5"] [ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="3_mobd5"]
[ext_resource type="AudioStream" uid="uid://has5y3j2yyp7" path="res://asset/audio/sfx/UI/纸条包裹钥匙.ogg" id="4_7k28m"] [ext_resource type="AudioStream" uid="uid://has5y3j2yyp7" path="res://asset/audio/sfx/UI/纸条包裹钥匙.ogg" id="4_7k28m"]
[ext_resource type="Texture2D" uid="uid://bihf4gpj0r1jj" path="res://asset/art/scene/c03/s09_棺材房/棺材互动/棺材纸条.png" id="4_bgvp8"]
[ext_resource type="Texture2D" uid="uid://f186lvt5y2ql" path="res://asset/art/ui/遮罩/inspect背景遮罩.png" id="5_mobd5"]
[ext_resource type="Texture2D" uid="uid://ush0d2g8uj08" path="res://asset/art/scene/c03/s09_棺材房/棺材互动/带血的纸条.png" id="6_ok7al"] [ext_resource type="Texture2D" uid="uid://ush0d2g8uj08" path="res://asset/art/scene/c03/s09_棺材房/棺材互动/带血的纸条.png" id="6_ok7al"]
[ext_resource type="Script" uid="uid://dpocj5al0rvai" path="res://ui/text_helper.gd" id="6_t53mt"]
[ext_resource type="PackedScene" uid="uid://bkk1rxx36ghrl" path="res://scene/entity/ux/hover_light_click_area.tscn" id="10_t53mt"] [ext_resource type="PackedScene" uid="uid://bkk1rxx36ghrl" path="res://scene/entity/ux/hover_light_click_area.tscn" id="10_t53mt"]
[ext_resource type="Texture2D" uid="uid://bkn0cytl435yw" path="res://asset/art/scene/c03/s09_棺材房/棺材互动/刀.png" id="11_ok7al"] [ext_resource type="Texture2D" uid="uid://bkn0cytl435yw" path="res://asset/art/scene/c03/s09_棺材房/棺材互动/刀.png" id="11_ok7al"]
[ext_resource type="Texture2D" uid="uid://cd76oamv0msug" path="res://asset/art/scene/c03/s09_棺材房/棺材互动/胶水.png" id="13_i378g"] [ext_resource type="Texture2D" uid="uid://cd76oamv0msug" path="res://asset/art/scene/c03/s09_棺材房/棺材互动/胶水.png" id="13_i378g"]
@ -110,46 +106,3 @@ updater_event = &"c03_coffin"
updater_mode = "shower" updater_mode = "shower"
updater_stages = Array[int]([0]) updater_stages = Array[int]([0])
metadata/_custom_type_script = "uid://0wjaho6qkg6s" metadata/_custom_type_script = "uid://0wjaho6qkg6s"
[node name="沾血的纸条" type="TextureRect" parent="."]
unique_name_in_owner = true
visible = false
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("4_bgvp8")
[node name="ContentInspector" parent="沾血的纸条" instance=ExtResource("3_6xi18")]
layout_mode = 1
[node name="遮罩" type="TextureRect" parent="沾血的纸条/ContentInspector"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
texture = ExtResource("5_mobd5")
[node name="Label" type="Label" parent="沾血的纸条/ContentInspector/遮罩"]
custom_minimum_size = Vector2(180, 0)
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -60.0
offset_top = -15.5
offset_right = 60.0
offset_bottom = 15.5
grow_horizontal = 2
grow_vertical = 2
text = "文开,近日几条丘八又上门,娘仍未告诉他们你在何处,如今世道乱,苟活不耻,保命为上,盼望与儿早日重逢。"
vertical_alignment = 1
autowrap_mode = 3
script = ExtResource("6_t53mt")
translation_key = "prop_沾血的纸条_说明"