diff --git a/assets/audios/typewrite/default_tw.wav b/assets/audios/typewrite/default_tw.wav new file mode 100644 index 0000000..9e00333 Binary files /dev/null and b/assets/audios/typewrite/default_tw.wav differ diff --git a/assets/audios/typewrite/default_tw.wav.import b/assets/audios/typewrite/default_tw.wav.import new file mode 100644 index 0000000..5890f4c --- /dev/null +++ b/assets/audios/typewrite/default_tw.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://cg6grs5k5m33n" +path="res://.godot/imported/default_tw.wav-b8234c01d377ca034f868e03cc0f2f97.sample" + +[deps] + +source_file="res://assets/audios/typewrite/default_tw.wav" +dest_files=["res://.godot/imported/default_tw.wav-b8234c01d377ca034f868e03cc0f2f97.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/scenes/gui/dialog_bubble.tscn b/scenes/gui/dialog_bubble.tscn index b7d45bb..c1e1061 100644 --- a/scenes/gui/dialog_bubble.tscn +++ b/scenes/gui/dialog_bubble.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=5 format=3 uid="uid://bkm7365u1mm3o"] +[gd_scene load_steps=6 format=3 uid="uid://bkm7365u1mm3o"] [ext_resource type="Script" path="res://src/scene-scripts/dialogue-system/dialog_bubble.cs" id="1_xtj1q"] [ext_resource type="FontFile" uid="uid://cx6bvqk0ghmjv" path="res://assets/fonts/urbane-rounded-medium.otf" id="2_qrihj"] +[ext_resource type="AudioStream" uid="uid://cg6grs5k5m33n" path="res://assets/audios/typewrite/default_tw.wav" id="2_wg62u"] [ext_resource type="Texture2D" uid="uid://04pdpdvkg2s" path="res://assets/textures/dialogue/dialogue_answer_ninepatch.png" id="3_n3y1v"] [sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_5w2xu"] @@ -10,6 +11,10 @@ script = ExtResource("1_xtj1q") metadata/_edit_use_anchors_ = true +[node name="typewriter_audio_stream" type="AudioStreamPlayer" parent="."] +stream = ExtResource("2_wg62u") +pitch_scale = 0.4 + [node name="typewriter_timer" type="Timer" parent="."] wait_time = 0.05 diff --git a/src/scene-scripts/dialogue-system/dialog_bubble.cs b/src/scene-scripts/dialogue-system/dialog_bubble.cs index 82d72d3..39aeaa2 100644 --- a/src/scene-scripts/dialogue-system/dialog_bubble.cs +++ b/src/scene-scripts/dialogue-system/dialog_bubble.cs @@ -92,7 +92,10 @@ public partial class dialog_bubble : CanvasLayer public void OnTypewriterTimerTimeout() { if (richText.VisibleCharacters < Regex.Replace(richText.Text, @"\[[^]]+\]", "").Length) + { richText.VisibleCharacters++; + GetNode("typewriter_audio_stream").Play(); + } else typewriterTimer.Stop(); } public void MakeAnswerBox(string[] dialogOptions)