diff options
-rw-r--r-- | client/audio/sound.gd | 4 | ||||
-rw-r--r-- | client/audio/sound.tscn | 7 | ||||
-rw-r--r-- | client/game.gd | 9 | ||||
-rw-r--r-- | client/menu/announce_title.gd | 42 | ||||
-rw-r--r-- | client/menu/announce_title.gd.uid | 1 | ||||
-rw-r--r-- | client/menu/overlay.gd | 4 | ||||
-rw-r--r-- | client/menu/overlay.tscn | 372 | ||||
-rw-r--r-- | client/menu/sounds/game_start.ogg | bin | 0 -> 73234 bytes | |||
-rw-r--r-- | client/menu/sounds/game_start.ogg.import | 19 | ||||
-rw-r--r-- | client/player/controllable_player.gd | 3 | ||||
-rw-r--r-- | locale/en.ini | 4 |
11 files changed, 458 insertions, 7 deletions
diff --git a/client/audio/sound.gd b/client/audio/sound.gd index 5b875b4e..8c7649aa 100644 --- a/client/audio/sound.gd +++ b/client/audio/sound.gd @@ -17,6 +17,7 @@ extends Node @onready var click_sound = $UI/Click @onready var hover_sound = $UI/Hover +@onready var game_start_sound = $UI/GameStart @onready var music_node : Node = $Music var item_sounds: Dictionary = {} @@ -45,6 +46,9 @@ func play_click(): func play_hover(): hover_sound.play() +func play_game_start(): + game_start_sound.play() + func play_hover_maybe(element): # Don't play hover sound when focus is changed by clicking using a mouse. # TODO: Clean up this code and find a proper solution. diff --git a/client/audio/sound.tscn b/client/audio/sound.tscn index 11d1a4e2..49851f9a 100644 --- a/client/audio/sound.tscn +++ b/client/audio/sound.tscn @@ -1,8 +1,9 @@ -[gd_scene load_steps=4 format=3 uid="uid://d3h243yic44rr"] +[gd_scene load_steps=5 format=3 uid="uid://d3h243yic44rr"] [ext_resource type="Script" uid="uid://cho8r5m78a4ur" path="res://audio/sound.gd" id="1_b0qb1"] [ext_resource type="AudioStream" uid="uid://cpyn511c5mtni" path="res://menu/sounds/click.ogg" id="2_mhrce"] [ext_resource type="AudioStream" uid="uid://dtr1khfyqr56o" path="res://menu/sounds/hover.ogg" id="3_qft2s"] +[ext_resource type="AudioStream" uid="uid://dft3m8utnxhs7" path="res://menu/sounds/game_start.ogg" id="4_le874"] [node name="Sound" type="Node3D"] script = ExtResource("1_b0qb1") @@ -17,6 +18,10 @@ bus = &"SFX" stream = ExtResource("3_qft2s") bus = &"SFX" +[node name="GameStart" type="AudioStreamPlayer" parent="UI"] +stream = ExtResource("4_le874") +bus = &"SFX" + [node name="Music" type="Node" parent="."] [node name="MainMenu" type="AudioStreamPlayer" parent="Music"] diff --git a/client/game.gd b/client/game.gd index 13d7403a..89a8f0f1 100644 --- a/client/game.gd +++ b/client/game.gd @@ -59,7 +59,7 @@ var in_lobby := false var is_replay := false var tutorial_running := false var tutorial_queue := [] -var last_position := Vector2(0, 0) +var last_position = null # : Vector2? var players := {} @@ -131,6 +131,7 @@ func handle_packet(p): if p.id == my_player_id: set_join_state(JoinState.SPECTATING) follow_camera.target = $Center + last_position = null for h in player.hand: if h != null: h.queue_free() @@ -138,13 +139,15 @@ func handle_packet(p): player.is_despawning = true update_players.emit(players) "movement": + if not players.has(p.player): return var player_instance: Player = players[p.player] player_instance.update_position(p.pos, p.rot, p.boost) if p.player == my_player_id: last_position = p.pos "movement_sync": if not players.has(my_player_id): return var player_instance: ControllablePlayer = players[my_player_id] - player_instance.position_ = last_position + if last_position != null: + player_instance.position_ = last_position "move_item": if "player" in p.from and "player" in p.to: players[p.from.player[0]].pass_to(players[p.to.player[0]], int(p.from.player[1]), int(p.to.player[1])) @@ -317,6 +320,8 @@ func handle_packet(p): menu.submenu("res://menu/document/document.tscn", p["data"]) "score": menu.submenu("res://menu/rating/rating.tscn", [p.data.stars, p.data.points]) + "announce_start": + overlay.announce_start() "server_message": var mstr := get_message_str(p.message) if p.error: diff --git a/client/menu/announce_title.gd b/client/menu/announce_title.gd new file mode 100644 index 00000000..227e184f --- /dev/null +++ b/client/menu/announce_title.gd @@ -0,0 +1,42 @@ +# Hurry Curry! - a game about cooking +# Copyright (C) 2025 Hurry Curry! contributors +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, version 3 of the License only. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <https://www.gnu.org/licenses/>. +# +extends Control + +@onready var init_delay: Timer = $InitialDelay +@onready var prep_timer: Timer = $PreperationTimer +@onready var anim_player: AnimationPlayer = $AnimationPlayer +@onready var label: Label = $Center/Node2D/Label + +func announce_start() -> void: + init_delay.start() + await init_delay.timeout + + Sound.play_game_start() + show() + label.text = tr("c.announce.ready") + anim_player.play("fade_in") + await anim_player.animation_finished + prep_timer.start() + await prep_timer.timeout + anim_player.play("fade_out") + await anim_player.animation_finished + + label.text = tr("c.announce.go") + anim_player.play("fade_in") + await anim_player.animation_finished + anim_player.play("fade_out") + await anim_player.animation_finished + hide() diff --git a/client/menu/announce_title.gd.uid b/client/menu/announce_title.gd.uid new file mode 100644 index 00000000..e57b9722 --- /dev/null +++ b/client/menu/announce_title.gd.uid @@ -0,0 +1 @@ +uid://ci08whhm2ej1m diff --git a/client/menu/overlay.gd b/client/menu/overlay.gd index 3ec5e860..d4e2e3d3 100644 --- a/client/menu/overlay.gd +++ b/client/menu/overlay.gd @@ -28,6 +28,7 @@ var points: int = 0 @onready var timer: Timer = $Timer @onready var seconds_label: Label = $Time/Paper/Line/Seconds @onready var decimals_label: Label = $Time/Paper/Line/Decimals +@onready var announcement = $Announcement func update(failed_: int, completed_: int, points_: int, time: float): if failed_ - failed: @@ -55,6 +56,9 @@ func set_ingame(_state: bool, lobby: bool): else: show() +func announce_start(): + announcement.announce_start() + func _process(delta): failed_label.scale = G.interpolate(failed_label.scale, Vector2(1, 1), delta * 4.) completed_label.scale = G.interpolate(completed_label.scale, Vector2(1, 1), delta * 4.) diff --git a/client/menu/overlay.tscn b/client/menu/overlay.tscn index 0b45255e..1b3b4632 100644 --- a/client/menu/overlay.tscn +++ b/client/menu/overlay.tscn @@ -1,13 +1,331 @@ -[gd_scene load_steps=6 format=3 uid="uid://bpikve6wlsjfl"] +[gd_scene load_steps=14 format=3 uid="uid://bpikve6wlsjfl"] [ext_resource type="Theme" uid="uid://b0qmvo504e457" path="res://menu/theme/theme/theme.tres" id="1_4kujw"] [ext_resource type="Script" uid="uid://mcgg3q0l03dx" path="res://menu/overlay.gd" id="2_kbjds"] [ext_resource type="Texture2D" uid="uid://chxkwohi56cxx" path="res://menu/textures/paper_texture.tres" id="3_oum5g"] [ext_resource type="FontFile" uid="uid://bo4vh5xkpvrh1" path="res://menu/theme/fonts/font-sansita-swashed.woff2" id="3_u54fv"] +[ext_resource type="Script" uid="uid://ci08whhm2ej1m" path="res://menu/announce_title.gd" id="5_874f2"] [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_04ujj"] bg_color = Color(0, 0, 0, 0) +[sub_resource type="FontVariation" id="FontVariation_8f216"] +base_font = ExtResource("3_u54fv") +variation_embolden = 0.5 + +[sub_resource type="Animation" id="Animation_kmsgw"] +resource_name = "fade_in" +length = 0.5 +tracks/0/type = "bezier" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Center/Node2D:scale:x") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"handle_modes": PackedInt32Array(0, 0), +"points": PackedFloat32Array(1e-05, -0.25, 0, 0.25, 0, 1, -0.25, 0, 0.25, 0), +"times": PackedFloat32Array(0, 0.5) +} +tracks/1/type = "bezier" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Center/Node2D:scale:y") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"handle_modes": PackedInt32Array(0, 0), +"points": PackedFloat32Array(1e-05, -0.25, 0, 0.25, 0, 1, -0.25, 0, 0.25, 0), +"times": PackedFloat32Array(0, 0.5) +} +tracks/2/type = "bezier" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Center/Node2D:modulate:r") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"handle_modes": PackedInt32Array(0, 0), +"points": PackedFloat32Array(1, -0.25, 0, 0.25, 0, 1, -0.25, 0, 0.25, 0), +"times": PackedFloat32Array(0, 0.5) +} +tracks/3/type = "bezier" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Center/Node2D:modulate:g") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"handle_modes": PackedInt32Array(0, 0), +"points": PackedFloat32Array(1, -0.25, 0, 0.25, 0, 1, -0.25, 0, 0.25, 0), +"times": PackedFloat32Array(0, 0.5) +} +tracks/4/type = "bezier" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Center/Node2D:modulate:b") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"handle_modes": PackedInt32Array(0, 0), +"points": PackedFloat32Array(1, -0.25, 0, 0.25, 0, 1, -0.25, 0, 0.25, 0), +"times": PackedFloat32Array(0, 0.5) +} +tracks/5/type = "bezier" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("Center/Node2D:modulate:a") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"handle_modes": PackedInt32Array(0, 0), +"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0, 1, -0.25, 0, 0.25, 0), +"times": PackedFloat32Array(0, 0.5) +} + +[sub_resource type="Animation" id="Animation_owy7i"] +length = 0.001 +tracks/0/type = "bezier" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Center/Node2D:scale:x") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"handle_modes": PackedInt32Array(0), +"points": PackedFloat32Array(1e-05, -0.25, 0, 0.25, 0), +"times": PackedFloat32Array(0) +} +tracks/1/type = "bezier" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Center/Node2D:scale:y") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"handle_modes": PackedInt32Array(0), +"points": PackedFloat32Array(1e-05, -0.25, 0, 0.25, 0), +"times": PackedFloat32Array(0) +} +tracks/2/type = "bezier" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Center/Node2D:modulate:r") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"handle_modes": PackedInt32Array(0), +"points": PackedFloat32Array(1, -0.25, 0, 0.25, 0), +"times": PackedFloat32Array(0) +} +tracks/3/type = "bezier" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Center/Node2D:modulate:g") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"handle_modes": PackedInt32Array(0), +"points": PackedFloat32Array(1, -0.25, 0, 0.25, 0), +"times": PackedFloat32Array(0) +} +tracks/4/type = "bezier" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Center/Node2D:modulate:b") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"handle_modes": PackedInt32Array(0), +"points": PackedFloat32Array(1, -0.25, 0, 0.25, 0), +"times": PackedFloat32Array(0) +} +tracks/5/type = "bezier" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("Center/Node2D:modulate:a") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"handle_modes": PackedInt32Array(0), +"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0), +"times": PackedFloat32Array(0) +} + +[sub_resource type="Animation" id="Animation_x6gse"] +resource_name = "fade_out" +tracks/0/type = "bezier" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Center/Node2D:modulate:r") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"handle_modes": PackedInt32Array(0, 0), +"points": PackedFloat32Array(1, -0.25, 0, 0.25, 0, 1, -0.25, 0, 0.25, 0), +"times": PackedFloat32Array(0, 1) +} +tracks/1/type = "bezier" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Center/Node2D:modulate:g") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"handle_modes": PackedInt32Array(0, 0), +"points": PackedFloat32Array(1, -0.25, 0, 0.25, 0, 1, -0.25, 0, 0.25, 0), +"times": PackedFloat32Array(0, 1) +} +tracks/2/type = "bezier" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Center/Node2D:modulate:b") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"handle_modes": PackedInt32Array(0, 0), +"points": PackedFloat32Array(1, -0.25, 0, 0.25, 0, 1, -0.25, 0, 0.25, 0), +"times": PackedFloat32Array(0, 1) +} +tracks/3/type = "bezier" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Center/Node2D:modulate:a") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"handle_modes": PackedInt32Array(0, 0), +"points": PackedFloat32Array(1, -0.25, 0, 0.25, 0, 0, -0.25, 0, 0.25, 0), +"times": PackedFloat32Array(0, 1) +} + +[sub_resource type="Animation" id="Animation_874f2"] +resource_name = "fade_in_and_out" +length = 0.8 +tracks/0/type = "bezier" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Center/Node2D:modulate:r") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"handle_modes": PackedInt32Array(0, 0, 0), +"points": PackedFloat32Array(1, -0.25, 0, 0.25, 0, 1, -0.25, 0, 0.25, 0, 1, -0.25, 0, 0.25, 0), +"times": PackedFloat32Array(0, 0.3, 0.8) +} +tracks/1/type = "bezier" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Center/Node2D:modulate:g") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"handle_modes": PackedInt32Array(0, 0, 0), +"points": PackedFloat32Array(1, -0.25, 0, 0.25, 0, 1, -0.25, 0, 0.25, 0, 1, -0.25, 0, 0.25, 0), +"times": PackedFloat32Array(0, 0.3, 0.8) +} +tracks/2/type = "bezier" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Center/Node2D:modulate:b") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"handle_modes": PackedInt32Array(0, 0, 0), +"points": PackedFloat32Array(1, -0.25, 0, 0.25, 0, 1, -0.25, 0, 0.25, 0, 1, -0.25, 0, 0.25, 0), +"times": PackedFloat32Array(0, 0.3, 0.8) +} +tracks/3/type = "bezier" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Center/Node2D:modulate:a") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"handle_modes": PackedInt32Array(0, 0, 0), +"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0, 1, -0.25, 0, 0.25, 0, 0, -0.25, 0, 0.25, 0), +"times": PackedFloat32Array(0, 0.3, 0.8) +} +tracks/4/type = "bezier" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Center/Node2D:scale:x") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"handle_modes": PackedInt32Array(0, 0), +"points": PackedFloat32Array(1e-05, -0.25, 0, 0.25, 0, 2, -0.25, 0, 0.25, 0), +"times": PackedFloat32Array(0, 0.8) +} +tracks/5/type = "bezier" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("Center/Node2D:scale:y") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"handle_modes": PackedInt32Array(0, 0), +"points": PackedFloat32Array(1e-05, -0.25, 0, 0.25, 0, 2, -0.25, 0, 0.25, 0), +"times": PackedFloat32Array(0, 0.8) +} + +[sub_resource type="Animation" id="Animation_deqe4"] +resource_name = "fade_out_quick" +length = 0.25 +tracks/0/type = "bezier" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Center/Node2D:modulate:r") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"handle_modes": PackedInt32Array(0, 0), +"points": PackedFloat32Array(1, -0.125, 0, 0.125, 0, 1, -0.125, 0, 0.125, 0), +"times": PackedFloat32Array(0, 0.25) +} +tracks/1/type = "bezier" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Center/Node2D:modulate:g") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"handle_modes": PackedInt32Array(0, 0), +"points": PackedFloat32Array(1, -0.125, 0, 0.125, 0, 1, -0.125, 0, 0.125, 0), +"times": PackedFloat32Array(0, 0.25) +} +tracks/2/type = "bezier" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Center/Node2D:modulate:b") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"handle_modes": PackedInt32Array(0, 0), +"points": PackedFloat32Array(1, -0.125, 0, 0.125, 0, 1, -0.125, 0, 0.125, 0), +"times": PackedFloat32Array(0, 0.25) +} +tracks/3/type = "bezier" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Center/Node2D:modulate:a") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"handle_modes": PackedInt32Array(0, 0), +"points": PackedFloat32Array(1, -0.125, 0, 0.125, 0, 0, -0.125, 0, 0.125, 0), +"times": PackedFloat32Array(0, 0.25) +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_deqe4"] +_data = { +&"RESET": SubResource("Animation_owy7i"), +&"fade_in": SubResource("Animation_kmsgw"), +&"fade_in_and_out": SubResource("Animation_874f2"), +&"fade_out": SubResource("Animation_x6gse"), +&"fade_out_quick": SubResource("Animation_deqe4") +} + [node name="Overlay" type="PanelContainer"] layout_direction = 2 anchors_preset = 15 @@ -183,3 +501,55 @@ theme_override_colors/font_color = Color(0, 0, 0, 1) theme_override_fonts/font = ExtResource("3_u54fv") theme_override_font_sizes/font_size = 45 text = "00" + +[node name="Announcement" type="Control" parent="."] +visible = false +layout_mode = 2 +script = ExtResource("5_874f2") + +[node name="Center" type="Control" parent="Announcement"] +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="Node2D" type="Node2D" parent="Announcement/Center"] +modulate = Color(1, 1, 1, 0) +scale = Vector2(1e-05, 1e-05) + +[node name="Label" type="Label" parent="Announcement/Center/Node2D"] +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -375.0 +offset_top = -50.0 +offset_right = 375.0 +offset_bottom = 50.0 +grow_horizontal = 2 +grow_vertical = 2 +size_flags_vertical = 1 +theme_override_colors/font_outline_color = Color(0.564706, 0.207843, 0.266667, 1) +theme_override_constants/outline_size = 20 +theme_override_fonts/font = SubResource("FontVariation_8f216") +theme_override_font_sizes/font_size = 64 +text = "GO!" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="AnimationPlayer" type="AnimationPlayer" parent="Announcement"] +libraries = { +&"": SubResource("AnimationLibrary_deqe4") +} + +[node name="PreperationTimer" type="Timer" parent="Announcement"] +one_shot = true + +[node name="InitialDelay" type="Timer" parent="Announcement"] +wait_time = 0.5 +one_shot = true diff --git a/client/menu/sounds/game_start.ogg b/client/menu/sounds/game_start.ogg Binary files differnew file mode 100644 index 00000000..3282ff99 --- /dev/null +++ b/client/menu/sounds/game_start.ogg diff --git a/client/menu/sounds/game_start.ogg.import b/client/menu/sounds/game_start.ogg.import new file mode 100644 index 00000000..d5533df7 --- /dev/null +++ b/client/menu/sounds/game_start.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://dft3m8utnxhs7" +path="res://.godot/imported/game_start.ogg-7259109543b1a82c5ba32427a075813a.oggvorbisstr" + +[deps] + +source_file="res://menu/sounds/game_start.ogg" +dest_files=["res://.godot/imported/game_start.ogg-7259109543b1a82c5ba32427a075813a.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/client/player/controllable_player.gd b/client/player/controllable_player.gd index 04899716..e23bc675 100644 --- a/client/player/controllable_player.gd +++ b/client/player/controllable_player.gd @@ -30,7 +30,6 @@ var velocity_ := Vector2(0, 0) var direction := Vector2(0, 0) var stamina := 0. var chat_open := false -var enable_input := true var input_rotation = 0 var vibration_timer := Timer.new() @@ -152,7 +151,7 @@ func collide(dt: float): velocity_.y += norm.y * f * dt func is_input_enabled() -> bool: - return not game.menu.covered and enable_input + return not game.menu.covered and not Global.game_paused func update_touch_scrolls(): # TODO: Don't call this function every frame, but only when input menu diff --git a/locale/en.ini b/locale/en.ini index e455c8eb..138c6e65 100644 --- a/locale/en.ini +++ b/locale/en.ini @@ -1,4 +1,6 @@ [hurrycurry] +c.announce.go=GO! +c.announce.ready=READY? c.chat.write_message=Write message c.credits.contributors=with contributions from c.credits.developed_by=developed by @@ -288,4 +290,4 @@ s.tutorial.put_on=Place on {0} s.tutorial.serve=Serve the meal here s.tutorial.take_now=Take this item quickly! s.tutorial.take=Take {0} from here -s.tutorial.wait_finish=… +s.tutorial.wait_finish=…
\ No newline at end of file |