Merge branch 'demo'
3
.gitignore
vendored
@ -13,4 +13,5 @@ mono_crash.*.json
|
|||||||
mono_crash.*.blob
|
mono_crash.*.blob
|
||||||
|
|
||||||
# misc
|
# misc
|
||||||
*.log
|
*.log
|
||||||
|
scene/ground/scene/debug_archive.txt
|
||||||
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 150 KiB After Width: | Height: | Size: 149 KiB |
Before Width: | Height: | Size: 310 KiB After Width: | Height: | Size: 311 KiB |
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 6.9 KiB After Width: | Height: | Size: 6.9 KiB |
Before Width: | Height: | Size: 7.6 KiB After Width: | Height: | Size: 7.6 KiB |
@ -27,7 +27,7 @@ ui_new_archive,已创建新存档,,,,,New save file created
|
|||||||
ui_auto_saved,自动保存成功,,,,,Auto save successful
|
ui_auto_saved,自动保存成功,,,,,Auto save successful
|
||||||
ui_notify_important_item_update,重要物品已更新,,,,,Important items updated
|
ui_notify_important_item_update,重要物品已更新,,,,,Important items updated
|
||||||
ui_notify_note_update,线索笔记已更新,,,,,Clue notes updated
|
ui_notify_note_update,线索笔记已更新,,,,,Clue notes updated
|
||||||
ui_notify_mem_update,回忆已更新,,,,,"Memories updated"
|
ui_notify_mem_update,回忆已更新,,,,,Memories updated
|
||||||
ui_center_notify_press_e_to_interact,按 E 可与场景互动,,,,,Press E to interact
|
ui_center_notify_press_e_to_interact,按 E 可与场景互动,,,,,Press E to interact
|
||||||
ui_center_notify_press_q_to_exit,按 Q 可退出,,,,,Press Q to exit
|
ui_center_notify_press_q_to_exit,按 Q 可退出,,,,,Press Q to exit
|
||||||
ui_center_notify_use_prop,按 E 使用道具,,,,,Press E to use item
|
ui_center_notify_use_prop,按 E 使用道具,,,,,Press E to use item
|
||||||
@ -187,7 +187,7 @@ c02_小蝉盒子特写,我会在盒子里一直陪着你 :3,,,,,I'll stay with y
|
|||||||
c02_小蝉恨他们,我恨他们!,,,,,I hate them!
|
c02_小蝉恨他们,我恨他们!,,,,,I hate them!
|
||||||
c02_火灾等待准备,还没准备好点火呢,,,,,Not ready to start the fire yet
|
c02_火灾等待准备,还没准备好点火呢,,,,,Not ready to start the fire yet
|
||||||
c02_霸凌救小蝉开始,啊!我得想办法帮帮她...,,,,,Ah! I need to find a way to help her...
|
c02_霸凌救小蝉开始,啊!我得想办法帮帮她...,,,,,Ah! I need to find a way to help her...
|
||||||
c02_点火前阻止右移,没时间浪费了!想想办法救出小蝉...,,,,,No time to waste! Think of a way to save Little Chan...
|
c02_点火前阻止右移,没时间浪费了,我得点个火引走这些小孩,,,,,"There's no time to waste! I have to light a fire to scare these kids away."
|
||||||
c02_看到小蝉上楼,?!,,,,,?!
|
c02_看到小蝉上楼,?!,,,,,?!
|
||||||
c02_看到杂物堆消失,楼梯口的杂物消失了...,,,,,The clutter at the stairway has disappeared...
|
c02_看到杂物堆消失,楼梯口的杂物消失了...,,,,,The clutter at the stairway has disappeared...
|
||||||
c02_demo感谢试玩,感谢试玩,,,,,Thank you for playing
|
c02_demo感谢试玩,感谢试玩,,,,,Thank you for playing
|
||||||
|
|
@ -264,7 +264,7 @@
|
|||||||
#火灾
|
#火灾
|
||||||
还没准备好点火呢 [ID:c02_火灾等待准备]
|
还没准备好点火呢 [ID:c02_火灾等待准备]
|
||||||
啊!我得想办法帮帮她... [ID:c02_霸凌救小蝉开始]
|
啊!我得想办法帮帮她... [ID:c02_霸凌救小蝉开始]
|
||||||
没时间浪费了!想想办法救出小蝉... [ID:c02_点火前阻止右移]
|
没时间浪费了,我得点个火引走这些小孩 [ID:c02_点火前阻止右移]
|
||||||
# 结尾
|
# 结尾
|
||||||
?! [ID:c02_看到小蝉上楼]
|
?! [ID:c02_看到小蝉上楼]
|
||||||
楼梯口的杂物消失了... [ID:c02_看到杂物堆消失]
|
楼梯口的杂物消失了... [ID:c02_看到杂物堆消失]
|
||||||
|
@ -17,9 +17,12 @@ var shake_ignore_boundary := false
|
|||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
|
reset_speed()
|
||||||
if not focusing_node:
|
if not focusing_node:
|
||||||
push_error("Focusing node not found")
|
push_error("Focusing node not found")
|
||||||
|
|
||||||
|
func reset_speed() -> void:
|
||||||
|
speed = 2.0
|
||||||
|
|
||||||
func shake_camera(strength := 6.0, recovery_speed := 2.0, ignore_boundary := true):
|
func shake_camera(strength := 6.0, recovery_speed := 2.0, ignore_boundary := true):
|
||||||
shake_strength = strength
|
shake_strength = strength
|
||||||
@ -68,7 +71,7 @@ func _physics_process(delta: float) -> void:
|
|||||||
# handle shake
|
# handle shake
|
||||||
if shake_strength > 0.0:
|
if shake_strength > 0.0:
|
||||||
# 让 shake_strength 逐帧衰减
|
# 让 shake_strength 逐帧衰减
|
||||||
shake_recovery_speed = min(0.1, shake_recovery_speed)
|
shake_recovery_speed = max(0.1, shake_recovery_speed)
|
||||||
shake_strength = lerpf(shake_strength, 0.0, shake_recovery_speed * delta)
|
shake_strength = lerpf(shake_strength, 0.0, shake_recovery_speed * delta)
|
||||||
# [-shake_strength, +shake_strength] 范围内的同时,尽可能偏离中心
|
# [-shake_strength, +shake_strength] 范围内的同时,尽可能偏离中心
|
||||||
# 在 0 – 2π 之间随机一个方向,在 _last_shake_angle 的对角范围
|
# 在 0 – 2π 之间随机一个方向,在 _last_shake_angle 的对角范围
|
||||||
|
@ -29,9 +29,9 @@ func _on_ground_ready() -> void:
|
|||||||
var camera = SceneManager.get_camera_marker()
|
var camera = SceneManager.get_camera_marker()
|
||||||
camera.limit_top = -1000
|
camera.limit_top = -1000
|
||||||
camera.limit_bottom = 158
|
camera.limit_bottom = 158
|
||||||
await Util.wait(1.0)
|
await SceneManager.ground_start
|
||||||
# 相机抖动
|
# 相机抖动
|
||||||
camera.shake_camera()
|
camera.shake_camera(6.0, 1.5)
|
||||||
# 不显示玩家,锁定玩家移动
|
# 不显示玩家,锁定玩家移动
|
||||||
SceneManager.lock_player()
|
SceneManager.lock_player()
|
||||||
main_character = $"../DeployLayer/车夫与吕萍"
|
main_character = $"../DeployLayer/车夫与吕萍"
|
||||||
|
@ -847,7 +847,7 @@ size = Vector2(20, 70)
|
|||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_7kxvk"]
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_7kxvk"]
|
||||||
resource_local_to_scene = true
|
resource_local_to_scene = true
|
||||||
size = Vector2(20, 70)
|
size = Vector2(60, 70)
|
||||||
|
|
||||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_wywax"]
|
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_wywax"]
|
||||||
playback_mode = 1
|
playback_mode = 1
|
||||||
@ -1111,6 +1111,7 @@ texture = ExtResource("21_2rktm")
|
|||||||
[node name="Interactable老鼠洞" parent="Ground/DeployLayer" index="11" instance=ExtResource("7_0d746")]
|
[node name="Interactable老鼠洞" parent="Ground/DeployLayer" index="11" instance=ExtResource("7_0d746")]
|
||||||
position = Vector2(618, 50)
|
position = Vector2(618, 50)
|
||||||
enabled = false
|
enabled = false
|
||||||
|
collision_width_and_x = Vector2(60, 0)
|
||||||
one_shot_max_times = 2
|
one_shot_max_times = 2
|
||||||
disable_prop_after_interacted = true
|
disable_prop_after_interacted = true
|
||||||
prop_key = "prop_小鞋子1"
|
prop_key = "prop_小鞋子1"
|
||||||
|
@ -168,14 +168,16 @@ func look_back_hole():
|
|||||||
var laizi = $"../DeployLayer/癞子偷窥"
|
var laizi = $"../DeployLayer/癞子偷窥"
|
||||||
laizi.visible = true
|
laizi.visible = true
|
||||||
var camera = SceneManager.get_camera_marker() as CameraFocusMarker
|
var camera = SceneManager.get_camera_marker() as CameraFocusMarker
|
||||||
|
# 保证 camera 可以紧跟着运行
|
||||||
|
camera.speed = 100.0
|
||||||
# 去掉洞口中间遮挡
|
# 去掉洞口中间遮挡
|
||||||
var occluder = $"../AmbientLayer/下洞口Occluder/LightOccluder2DMid"
|
var occluder = $"../AmbientLayer/下洞口Occluder/LightOccluder2DMid"
|
||||||
var tween = create_tween()
|
var tween = create_tween()
|
||||||
tween.tween_interval(0.4)
|
tween.tween_interval(0.4)
|
||||||
# 镜头右侧 limit 设置到 room_camera_r_limit + 100
|
# 镜头右侧 limit 设置到 room_camera_r_limit + 100
|
||||||
tween.tween_property(camera, "limit_right", room_camera_r_limit + 100, 1.0)
|
tween.tween_property(camera, "zoom_ratio", 1.1, 1.0)
|
||||||
tween.parallel().tween_property(camera, "zoom_ratio", 1.1, 1.0)
|
tween.parallel().tween_property(camera, "limit_right", room_camera_r_limit + 100, 1.5)
|
||||||
tween.tween_callback(func(): occluder.visible = false)
|
tween.tween_callback(occluder.hide)
|
||||||
tween.tween_interval(0.5)
|
tween.tween_interval(0.5)
|
||||||
tween.tween_callback($"Sfx癞子对视惊吓".play)
|
tween.tween_callback($"Sfx癞子对视惊吓".play)
|
||||||
tween.tween_interval(0.5)
|
tween.tween_interval(0.5)
|
||||||
@ -183,7 +185,7 @@ func look_back_hole():
|
|||||||
tween.tween_property(darker_light, "energy", 1.0, 3.0)
|
tween.tween_property(darker_light, "energy", 1.0, 3.0)
|
||||||
tween.tween_property(camera, "limit_right", room_camera_r_limit, 1.0)
|
tween.tween_property(camera, "limit_right", room_camera_r_limit, 1.0)
|
||||||
tween.parallel().tween_property(camera, "zoom_ratio", 1.0, 1.0)
|
tween.parallel().tween_property(camera, "zoom_ratio", 1.0, 1.0)
|
||||||
|
tween.tween_callback(camera.reset_speed)
|
||||||
|
|
||||||
func _on_shocked():
|
func _on_shocked():
|
||||||
SceneManager.pop_debug_dialog_info("音效", "惊吓")
|
SceneManager.pop_debug_dialog_info("音效", "惊吓")
|
||||||
|
@ -1,266 +0,0 @@
|
|||||||
{
|
|
||||||
"c01_s05_院长房间": {
|
|
||||||
"global": {
|
|
||||||
"enabled_items": {},
|
|
||||||
"player_x": 30.0
|
|
||||||
},
|
|
||||||
"ground": {
|
|
||||||
&"AnimationPlayer": {
|
|
||||||
"intro_played": true
|
|
||||||
},
|
|
||||||
&"ambush鸡毛掸子": {
|
|
||||||
"played": false
|
|
||||||
},
|
|
||||||
&"oneshot纸片": {
|
|
||||||
"interacted_times": 0
|
|
||||||
},
|
|
||||||
&"钢琴": {
|
|
||||||
"interacted_times": 0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"c01_s06_孤儿院长廊围墙": {
|
|
||||||
"global": {
|
|
||||||
"enabled_items": {},
|
|
||||||
"player_x": 1300.0
|
|
||||||
},
|
|
||||||
"ground": {
|
|
||||||
&"AnimationPlayer": {},
|
|
||||||
&"Interactable桌椅": {
|
|
||||||
"interacted_times": 0
|
|
||||||
},
|
|
||||||
&"四小孩画鬼差的对话ambush": {
|
|
||||||
"played": false
|
|
||||||
},
|
|
||||||
&"桌椅ambush1": {
|
|
||||||
"played": false
|
|
||||||
},
|
|
||||||
&"桌椅ambush2": {
|
|
||||||
"played": false
|
|
||||||
},
|
|
||||||
&"桌椅ambush3": {
|
|
||||||
"played": false
|
|
||||||
},
|
|
||||||
&"猫鼠游戏失败ambush": {
|
|
||||||
"played": false
|
|
||||||
},
|
|
||||||
&"猫鼠游戏开始ambush": {
|
|
||||||
"played": false
|
|
||||||
},
|
|
||||||
&"猫鼠游戏胜利ambush": {
|
|
||||||
"played": false
|
|
||||||
},
|
|
||||||
&"猫鼠游戏重置ambush": {
|
|
||||||
"played": false
|
|
||||||
},
|
|
||||||
&"门口ambush": {
|
|
||||||
"played": false
|
|
||||||
},
|
|
||||||
&"门口对话ambush": {
|
|
||||||
"played": false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"c01_s08_书店": {
|
|
||||||
"global": {
|
|
||||||
"c01_shelf_game_success": false,
|
|
||||||
"enabled_items": {
|
|
||||||
"prop_信碎片1": true,
|
|
||||||
"prop_信碎片2": true
|
|
||||||
},
|
|
||||||
"envelope_game_success": false,
|
|
||||||
"player_x": 30.0
|
|
||||||
},
|
|
||||||
"ground": {
|
|
||||||
&"Ambush梯子": {
|
|
||||||
"played": false
|
|
||||||
},
|
|
||||||
&"Ambush银元": {
|
|
||||||
"played": false
|
|
||||||
},
|
|
||||||
&"Ambush首次进店": {
|
|
||||||
"played": false
|
|
||||||
},
|
|
||||||
&"AnimationPlayer": {},
|
|
||||||
&"Interactable信件书桌": {
|
|
||||||
"interacted_times": 0
|
|
||||||
},
|
|
||||||
&"Interactable报纸柜台": {
|
|
||||||
"interacted_times": 0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"c02_s03_院子": {
|
|
||||||
"global": {
|
|
||||||
"c02_ball_game_stage": 0,
|
|
||||||
"c02_burning": false,
|
|
||||||
"c02_burning_end_stage": 0,
|
|
||||||
"c02_counter_pushed_out": false,
|
|
||||||
"c02_eavesdrop_finished": false,
|
|
||||||
&"c02_got_pliers": 0,
|
|
||||||
"c02_madman_interacted_stage": 0,
|
|
||||||
"c02_open_gate_first_failed": false,
|
|
||||||
"c02_ready_to_fire": false,
|
|
||||||
"c02_show_grounded_coins": false,
|
|
||||||
"c02_watched_the_well": false,
|
|
||||||
"enabled_items": {
|
|
||||||
"prop_小鞋子2": true,
|
|
||||||
"prop_火柴": true,
|
|
||||||
"prop_老虎钳": true
|
|
||||||
},
|
|
||||||
"handnote_c02_gate_chain": 0,
|
|
||||||
"handnote_c02_map_1Right": 0,
|
|
||||||
"handnote_c02_meat_knockDoor": 0,
|
|
||||||
"player_x": 1600.0
|
|
||||||
},
|
|
||||||
"ground": {
|
|
||||||
&"Ambush保卫科旁边os": {
|
|
||||||
"played": false
|
|
||||||
},
|
|
||||||
&"Ambush偷听对话": {
|
|
||||||
"played": false
|
|
||||||
},
|
|
||||||
&"Ambush惊悚闪电": {
|
|
||||||
"played": false
|
|
||||||
},
|
|
||||||
&"Ambush点火游戏阻挡右移": {
|
|
||||||
"played": false
|
|
||||||
},
|
|
||||||
&"Ambush等待的小蝉": {
|
|
||||||
"played": false
|
|
||||||
},
|
|
||||||
&"Ambush老虎钳后小蝉跑": {
|
|
||||||
"played": false
|
|
||||||
},
|
|
||||||
&"Ambush要下雨了": {
|
|
||||||
"played": false
|
|
||||||
},
|
|
||||||
&"Ambush闷雷纸人": {
|
|
||||||
"played": false
|
|
||||||
},
|
|
||||||
&"Ambush霸凌": {
|
|
||||||
"played": false
|
|
||||||
},
|
|
||||||
&"AnimationPlayer": {},
|
|
||||||
&"Closeup井": {
|
|
||||||
"interacted_times": 0
|
|
||||||
},
|
|
||||||
&"Closeup敲门游戏": {
|
|
||||||
"interacted_times": 0
|
|
||||||
},
|
|
||||||
&"Interactable柜子": {
|
|
||||||
"interacted_times": 0
|
|
||||||
},
|
|
||||||
&"Interactable铁门": {
|
|
||||||
"interacted_times": 0
|
|
||||||
},
|
|
||||||
&"Pickable小鞋子": {
|
|
||||||
"picked": false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"c02_s05_一楼内侧楼道": {
|
|
||||||
"global": {
|
|
||||||
"c02_madman_hitwall": true,
|
|
||||||
"c02_madman_interacted_stage": 0,
|
|
||||||
"c02_meat_dropping": false,
|
|
||||||
"c02_meat_given": false,
|
|
||||||
"enabled_items": {
|
|
||||||
"prop_奇怪的肉": true,
|
|
||||||
"prop_粘鼠板": true
|
|
||||||
},
|
|
||||||
"handnote_c02_map_1Left": 0,
|
|
||||||
"handnote_c02_meat_knockDoor": 0,
|
|
||||||
"handnote_c02_meat_stopMouse": 0,
|
|
||||||
"handnote_c02_xchan_sheKnowsMe": 0,
|
|
||||||
"player_x": 30.0
|
|
||||||
},
|
|
||||||
"ground": {
|
|
||||||
&"Ambush小蝉消失": {
|
|
||||||
"played": false
|
|
||||||
},
|
|
||||||
&"Ambush更新一楼地图": {
|
|
||||||
"played": false
|
|
||||||
},
|
|
||||||
&"Ambush杂物堆": {
|
|
||||||
"played": false
|
|
||||||
},
|
|
||||||
&"Ambush老鼠叼肉": {
|
|
||||||
"played": false
|
|
||||||
},
|
|
||||||
&"AnimationPlayer": {},
|
|
||||||
&"Closeup戏台": {
|
|
||||||
"interacted_times": 0
|
|
||||||
},
|
|
||||||
&"Closeup拿人偶后记忆闪回": {
|
|
||||||
"interacted_times": 0
|
|
||||||
},
|
|
||||||
&"Interactable粘鼠板": {
|
|
||||||
"interacted_times": 0
|
|
||||||
},
|
|
||||||
&"Pickable掉落的肉": {
|
|
||||||
"picked": false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"c02_s06_二楼": {
|
|
||||||
"global": {
|
|
||||||
"c02_2f_xchan_run_away": 0,
|
|
||||||
"c02_ball_game_stage": 1,
|
|
||||||
"c02_burning_end_stage": 0,
|
|
||||||
"c02_madman_hitwall": false,
|
|
||||||
"c02_mouse_follow_player": false,
|
|
||||||
"c02_s02_mouse_push_shoe": false,
|
|
||||||
"c02_the_blind_room_unlocked": true,
|
|
||||||
&"current_chapter_stage": 3,
|
|
||||||
"enabled_items": {
|
|
||||||
"prop_小鞋子1": true,
|
|
||||||
"prop_小鞋子2": true,
|
|
||||||
"prop_火柴": true
|
|
||||||
},
|
|
||||||
"handnote_c02_map_2": 0,
|
|
||||||
"handnote_c02_shoe_giveToMouce": 0,
|
|
||||||
"player_x": 600.0
|
|
||||||
},
|
|
||||||
"ground": {
|
|
||||||
&"Ambush三男孩": {
|
|
||||||
"played": false
|
|
||||||
},
|
|
||||||
&"Ambush小蝉偷看": {
|
|
||||||
"played": false
|
|
||||||
},
|
|
||||||
&"Ambush解锁二楼地图": {
|
|
||||||
"played": false
|
|
||||||
},
|
|
||||||
&"Ambush走到尽头后小蝉跑": {
|
|
||||||
"played": false
|
|
||||||
},
|
|
||||||
&"AnimationPlayer": {},
|
|
||||||
&"Closeup弹珠游戏": {
|
|
||||||
"interacted_times": 0
|
|
||||||
},
|
|
||||||
&"Closeup水盆": {
|
|
||||||
"interacted_times": 0
|
|
||||||
},
|
|
||||||
&"Closeup谢幕演出": {
|
|
||||||
"interacted_times": 0
|
|
||||||
},
|
|
||||||
&"Interactable老鼠洞": {
|
|
||||||
"interacted_times": 0
|
|
||||||
},
|
|
||||||
&"煤油灯": {
|
|
||||||
"interacted_times": 0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"c03_s02_瞎子新卧室": {
|
|
||||||
"global": {
|
|
||||||
&"c03_eavesdrop_luren": 0,
|
|
||||||
"enabled_items": {},
|
|
||||||
"player_x": 30.0
|
|
||||||
},
|
|
||||||
"ground": {
|
|
||||||
&"AnimationPlayer": {}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|