diff --git a/asset/art/prop/c02/新小猫身体_特写.png b/asset/art/prop/c02/新小猫身体_特写.png new file mode 100644 index 00000000..4337337d Binary files /dev/null and b/asset/art/prop/c02/新小猫身体_特写.png differ diff --git a/asset/art/prop/c02/新小猫身体_特写.png.import b/asset/art/prop/c02/新小猫身体_特写.png.import new file mode 100644 index 00000000..fc4b6c3f --- /dev/null +++ b/asset/art/prop/c02/新小猫身体_特写.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d1s177c4g74ra" +path="res://.godot/imported/新小猫身体_特写.png-59ebc4bce6f6620afd77c561a002bf10.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://asset/art/prop/c02/新小猫身体_特写.png" +dest_files=["res://.godot/imported/新小猫身体_特写.png-59ebc4bce6f6620afd77c561a002bf10.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/asset/dialogue/item_description.dialogue b/asset/dialogue/item_description.dialogue index 615e5c0a..1651d04c 100644 --- a/asset/dialogue/item_description.dialogue +++ b/asset/dialogue/item_description.dialogue @@ -65,7 +65,7 @@ # c02 火柴 [#texture=c02/火柴.png] [ID:prop_火柴] 小猫玩具的脑袋 [#texture=c02/新小猫头.png] [ID:prop_小猫玩具的脑袋] -无头小猫玩具 [#texture=c02/新小猫身体.png] [ID:prop_无头小猫玩具] +无头小猫玩具 [#texture=c02/新小猫身体.png] [#inspect=c02/新小猫身体_特写.png] [ID:prop_无头小猫玩具] 小猫玩具 [#texture=c02/新小猫全身.png] [ID:prop_小猫玩具完整] 撕下的照片(上) [#texture=c02/照片_上.png] [ID:prop_撕下的照片上] 老虎钳 [#texture=c02/老虎钳物品.png][#inspect=c02/老虎钳.png] [ID:prop_老虎钳] diff --git a/scene/ground/camera/camera_focus_marker.gd b/scene/ground/camera/camera_focus_marker.gd index f27a7cab..771e0a77 100644 --- a/scene/ground/camera/camera_focus_marker.gd +++ b/scene/ground/camera/camera_focus_marker.gd @@ -16,7 +16,7 @@ class_name CameraFocusMarker extends Camera2D # @export var limit_top := 0 # @export var limit_bottom := 316.0 @export var zoom_ratio := 1.0 -var speed := 3.0 +var speed := 2.0 var _tweeked_position := Vector2.ZERO @@ -67,16 +67,13 @@ func _physics_process(delta: float) -> void: if focusing_node is MainPlayer: # player 的焦点在脚底,所以需要偏移 player 的高度。注意 y 轴是向下的,所以是减去 player 的高度 target_position.y -= focusing_node.current_animation_config.os_height * 0.7 - # easing with speed - var new_position = lerp(global_position, target_position, speed * delta) - # var new_position = global_position + (target_position - global_position) * speed * delta # clamp the position var margin = half_screen_size / zoom_ratio - # var margin = half_screen_size margin.y += shaded_height - new_position.x = clamp(new_position.x, limit_left + margin.x, limit_right - margin.x) - new_position.y = clamp(new_position.y, limit_top + margin.y, limit_bottom - margin.y) - global_position = new_position + target_position.x = clamp(target_position.x, limit_left + margin.x, limit_right - margin.x) + target_position.y = clamp(target_position.y, limit_top + margin.y, limit_bottom - margin.y) + # easing with speed + global_position = lerp(global_position, target_position, speed * delta) # var taget_zoom = lerpf(zoom.x, zoom_ratio, speed * delta) # zoom = Vector2(taget_zoom, taget_zoom) zoom = Vector2(zoom_ratio, zoom_ratio) diff --git a/scene/ground/scene/c02/s08_animation.gd b/scene/ground/scene/c02/s08_animation.gd index 9722b64f..6d1e002e 100644 --- a/scene/ground/scene/c02/s08_animation.gd +++ b/scene/ground/scene/c02/s08_animation.gd @@ -46,7 +46,8 @@ func _on_ground_ready() -> void: boxcat_portal.enabled = true boxcat_portal.get_node("PointLight2D2").enabled = true boxcat_portal.get_node("Sprite2D").texture = preload("uid://efhwoqtn21d8") # e_墙上纸张_boxcat - $"../DeployLayer/Closeup画".enabled = false + else: + $"../DeployLayer/Closeup画".enabled = true if boxcat_played: $"../DeployLayer/portal_left".status = "opened" # 玩过小猫游戏,画框内容更新 禁止再进入 diff --git a/scene/ground/scene/c02/s08_瞎子卧室.tscn b/scene/ground/scene/c02/s08_瞎子卧室.tscn index 51d10f9b..d7015d18 100644 --- a/scene/ground/scene/c02/s08_瞎子卧室.tscn +++ b/scene/ground/scene/c02/s08_瞎子卧室.tscn @@ -191,6 +191,7 @@ texture_scale = 0.15 [node name="Closeup画" parent="Ground/DeployLayer" index="3" instance=ExtResource("10_a48k2")] position = Vector2(214, -19) packed_scene = ExtResource("11_mc126") +enabled = false [node name="Note画上脚印" parent="Ground/DeployLayer" index="4" instance=ExtResource("14_1ws4i")] position = Vector2(214, -19) diff --git a/scene/ground/scene/c02/s09_裂缝.tscn b/scene/ground/scene/c02/s09_裂缝.tscn index 9e9be25e..02f3aa62 100644 --- a/scene/ground/scene/c02/s09_裂缝.tscn +++ b/scene/ground/scene/c02/s09_裂缝.tscn @@ -698,11 +698,11 @@ texture = ExtResource("17_drmtd") [node name="PointLight2D" type="PointLight2D" parent="Ground/DeployLayer/大老鼠"] [node name="Ambush老鼠" parent="Ground/DeployLayer" index="11" instance=ExtResource("6_6xql4")] -position = Vector2(3230, 60) +position = Vector2(3822.5, 60.5) hook_method = "mouse_animation" [node name="老鼠衔大洋" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="12"] -position = Vector2(3229, 68) +position = Vector2(3846, 65) sprite_frames = ExtResource("5_p4f1j") animation = &"老鼠衔大洋进洞" diff --git a/scene/ground/scene/c02/s10_空房间.tscn b/scene/ground/scene/c02/s10_空房间.tscn index 5015f173..ebd4855c 100644 --- a/scene/ground/scene/c02/s10_空房间.tscn +++ b/scene/ground/scene/c02/s10_空房间.tscn @@ -111,6 +111,7 @@ matched_sign_texture = null [node name="Note进入隧道询问" parent="Ground/DeployLayer" index="2" instance=ExtResource("7_th1ek")] position = Vector2(362, 20) +enabled = false mode = "ballon" dialogue = "c02" note_sign_texture = ExtResource("8_to1d1") diff --git a/scene/ground/script/c02/敲门游戏.gd b/scene/ground/script/c02/敲门游戏.gd index 571436e6..471a0f1c 100644 --- a/scene/ground/script/c02/敲门游戏.gd +++ b/scene/ground/script/c02/敲门游戏.gd @@ -17,6 +17,9 @@ func _ready() -> void: layer = GlobalConfig.CANVAS_LAYER_LITTLE_GAME button.pressed.connect(_on_button_pressed) fail_time = Time.get_ticks_msec() + button.disabled = true + DialogueManager.show_dialogue_balloon(dialogue, "c02_s03_敲门游戏intro") + await DialogueManager.dialogue_ended if ( # 未偷听,或已敲门成功,则禁用 not ArchiveManager.get_global_value("c02_eavesdrop_finished", false) @@ -24,11 +27,8 @@ func _ready() -> void: or ArchiveManager.get_global_value("c02_meat_given", false) ): button.disabled = true - return - button.disabled = true - DialogueManager.show_dialogue_balloon(dialogue, "c02_s03_敲门游戏intro") - await DialogueManager.dialogue_ended - button.disabled = false + else: + button.disabled = false var current_id = 0 diff --git a/scene/little_game/八音盒/八音盒.gd b/scene/little_game/八音盒/八音盒.gd index 20785ece..3064fe94 100644 --- a/scene/little_game/八音盒/八音盒.gd +++ b/scene/little_game/八音盒/八音盒.gd @@ -26,7 +26,7 @@ var audio_auto = preload("res://asset/audio/sfx/game/八音盒/自走八音盒.m @onready var s3 = $"All/OpenedBox/Panel/Marker2D4" as Marker2D @onready var danzhu = $"All/Drawer/Draggable1" as Draggable2D -@onready var maotou = $"All/Drawer/Draggable2" as Draggable2D +@onready var xiaomao = $"All/Drawer/Draggable2" as Draggable2D @onready var xiaochan = $"All/Drawer/Draggable3" as Draggable2D var slots: PackedVector2Array = [] @@ -68,14 +68,14 @@ func _ready() -> void: pic.queue_free() if ArchiveManager.get_global_value("c02_musicbox_danzhu_taken"): danzhu.queue_free() - if ArchiveManager.get_global_value("c02_musicbox_maotou_taken"): - maotou.queue_free() + if ArchiveManager.get_global_value("c02_musicbox_xiaomao_taken"): + xiaomao.queue_free() if ArchiveManager.get_global_value("c02_musicbox_xiaochan_taken"): xiaochan.queue_free() pic.picked.connect(_on_prop_picked.bind("pic")) danzhu.picked.connect(_on_prop_picked.bind("danzhu")) - maotou.picked.connect(_on_prop_picked.bind("maotou")) + xiaomao.picked.connect(_on_prop_picked.bind("xiaomao")) xiaochan.picked.connect(_on_prop_picked.bind("xiaochan")) d1.picked.connect(_on_picked) diff --git a/scene/little_game/弹珠游戏/弹珠游戏.gd b/scene/little_game/弹珠游戏/弹珠游戏.gd index 7b7fc33a..fcb70251 100644 --- a/scene/little_game/弹珠游戏/弹珠游戏.gd +++ b/scene/little_game/弹珠游戏/弹珠游戏.gd @@ -32,7 +32,7 @@ func _ready() -> void: checkout_round(0) else: intro() - label.hide() + label.modulate.a = 0 func intro(): @@ -44,7 +44,7 @@ func intro(): get_tree().call_group(balls_name, "hide_away") pivot.get_child(0).modulate.a = 0 DialogueManager.show_dialogue_balloon_scene(self, dialogue_c02, "c02_弹珠游戏0") - await dialogue_ended + await ball_dialogue_ended func intro_finished(): @@ -201,12 +201,12 @@ func _on_hit_ball_callback(): if round_id == 0: round_ready = false _success_dialogue() - await dialogue_ended + await ball_dialogue_ended checkout_round(1) elif round_id == 1 and hit_count >= 3: round_ready = false _success_dialogue() - await dialogue_ended + await ball_dialogue_ended checkout_round(2) elif round_id == 2 and hit_count >= 5: round_ready = false @@ -232,7 +232,7 @@ func _on_hit_boundary(): # 后面的回合必须每次都击中球 get_tree().call_group("Balls" + str(round_id), "ease_out") DialogueManager.show_dialogue_balloon_scene(self, dialogue_c02, "c02_弹珠游戏fail") - await dialogue_ended + await ball_dialogue_ended reload_round() else: reload_hand_ball() @@ -248,7 +248,7 @@ func game_win() -> void: $BallsFalling.emitting = true pivot.visible = false DialogueManager.show_dialogue_balloon_scene(self, dialogue_c02, "c02_弹珠游戏4") - await dialogue_ended + await ball_dialogue_ended await get_tree().create_timer(3.0).timeout exit.emit(true) @@ -272,7 +272,7 @@ func _unhandled_input(event: InputEvent) -> void: # get_viewport().set_input_as_handled() -signal dialogue_ended +signal ball_dialogue_ended ## The current line var dialogue_line: DialogueLine: @@ -297,17 +297,19 @@ func start( func apply_dialogue_line() -> void: var translation_key = dialogue_line.translation_key label.text = ("[wave amp=10.0 freq=5.0][shake rate=4.0 level=3] " + tr(translation_key)) - label.show() - # 因为版权问题,有些 mp3 文件打不开,所以使用 ogg 格式 - var audio_path = "res://asset/audio/peiyin/ogg/%s.ogg" % translation_key - if FileAccess.file_exists(audio_path): - var stream = load(audio_path) - audio_player.stream = stream - audio_player.play() - await audio_player.finished - await get_tree().create_timer(1.0).timeout - else: - push_warning("No audio file found for " + translation_key) - await get_tree().create_timer(3.0).timeout - label.hide() - dialogue_ended.emit() + var tween = create_tween() + tween.tween_property(label, "modulate:a", 1.0, 0.5) + tween.tween_interval(2.0) + tween.tween_property(label, "modulate:a", 0.0, 0.5) + # # 因为版权问题,有些 mp3 文件打不开,所以使用 ogg 格式 + # var audio_path = "res://asset/audio/peiyin/ogg/%s.ogg" % translation_key + # if FileAccess.file_exists(audio_path): + # var stream = load(audio_path) + # audio_player.stream = stream + # audio_player.play() + # await audio_player.finished + # await get_tree().create_timer(1.0).timeout + # else: + # push_warning("No audio file found for " + translation_key) + # await get_tree().create_timer(3.0).timeout + ball_dialogue_ended.emit() diff --git a/scene/little_game/弹珠游戏/弹珠游戏.tscn b/scene/little_game/弹珠游戏/弹珠游戏.tscn index 43e08e5c..692525a6 100644 --- a/scene/little_game/弹珠游戏/弹珠游戏.tscn +++ b/scene/little_game/弹珠游戏/弹珠游戏.tscn @@ -4,7 +4,7 @@ [ext_resource type="Texture2D" uid="uid://bvf8b057baglw" path="res://asset/art/little_game/弹珠/bg_弹珠游戏.png" id="2_bm1k0"] [ext_resource type="Texture2D" uid="uid://bs4tp4amd1kkm" path="res://asset/art/little_game/弹珠/抱手.png" id="3_3kvx4"] [ext_resource type="AudioStream" uid="uid://bb6njoaxi2hbx" path="res://asset/audio/sfx/game/弹珠游戏/hit.ogg" id="3_co06r"] -[ext_resource type="FontVariation" uid="uid://1ryw42kej6lv" path="res://config/font_ui.tres" id="3_ctokx"] +[ext_resource type="FontFile" uid="uid://bnxdsxp7dst7f" path="res://asset/font/锐字太空混元像素简繁-闪 超黑_mianfeiziti.com.ttf" id="3_ctokx"] [ext_resource type="PackedScene" uid="uid://bbcfjksjlyfx5" path="res://scene/little_game/弹珠游戏/ball.tscn" id="4_bm1k0"] [ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_co06r"] [ext_resource type="Texture2D" uid="uid://btplp6xvmc6sx" path="res://asset/art/little_game/弹珠/手屈伸/0.png" id="4_fk3jp"] @@ -275,7 +275,7 @@ offset_top = -1.0 offset_right = 100.0 offset_bottom = 78.0 grow_horizontal = 2 -theme_override_constants/margin_top = 52 +theme_override_constants/margin_top = 100 [node name="RichTextLabel" type="RichTextLabel" parent="MarginContainer"] unique_name_in_owner = true @@ -283,11 +283,10 @@ custom_minimum_size = Vector2(300, 0) layout_mode = 2 size_flags_horizontal = 4 size_flags_vertical = 4 -theme_override_colors/default_color = Color(0.856067, 0.856067, 0.856067, 1) -theme_override_colors/font_outline_color = Color(0.401628, 0.253369, 0.0745033, 1) -theme_override_constants/outline_size = 5 +theme_override_colors/default_color = Color(0.686241, 0.191934, 0.178785, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) theme_override_fonts/normal_font = ExtResource("3_ctokx") -theme_override_font_sizes/normal_font_size = 20 +theme_override_font_sizes/normal_font_size = 40 bbcode_enabled = true text = "[wave amp=10.0 freq=5.0][shake rate=4.0 level=3] 弹珠拿出来" fit_content = true