diff --git a/game.tscn b/game.tscn index fdb4cce..9ca313d 100644 --- a/game.tscn +++ b/game.tscn @@ -1,10 +1,12 @@ -[gd_scene load_steps=19 format=3 uid="uid://jo1lu66y1gx6"] +[gd_scene load_steps=21 format=3 uid="uid://jo1lu66y1gx6"] [ext_resource type="Texture2D" uid="uid://i348o6hqw2dn" path="res://sprites/44389.png" id="1_e2o6t"] [ext_resource type="Script" uid="uid://5qnvkmmtxsw2" path="res://gameManager.gd" id="1_feb5d"] +[ext_resource type="AudioStream" uid="uid://cyyivtye4ngmt" path="res://music/90. Multiplayer Results - Win.mp3" id="3_eow3j"] [ext_resource type="AudioStream" uid="uid://ck06glyqpqy3n" path="res://Battle Mode - Mario Kart DS OST Extended.mp3" id="3_feb5d"] [ext_resource type="AudioStream" uid="uid://igps611ecoc" path="res://0014.wav" id="4_fc0e3"] [ext_resource type="AudioStream" uid="uid://xnhjht3k7qvd" path="res://music/intro.mp3" id="5_7jktm"] +[ext_resource type="AudioStream" uid="uid://b7v7bcgp3iu8u" path="res://music/85. Battle Flyover.mp3" id="7_j5wjh"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_feb5d"] size = Vector2(16, 254) @@ -45,7 +47,7 @@ font_color = Color(0.481789, 0.481789, 0.481789, 1) [sub_resource type="CircleShape2D" id="CircleShape2D_7jktm"] radius = 3.0 -[node name="Game" type="Node2D" node_paths=PackedStringArray("player_spawns_nodes", "starting_shine_nodes", "shine_nodes", "scorecard_container", "elim_timer_label", "game_timer_label", "chime_player", "music_player")] +[node name="Game" type="Node2D" node_paths=PackedStringArray("player_spawns_nodes", "starting_shine_nodes", "shine_nodes", "scorecard_container", "elim_timer_label", "game_timer_label", "chime_player", "music_player", "win_player", "flyover_player", "intro_player", "start_button")] script = ExtResource("1_feb5d") max_shinies = 100 player_spawns_nodes = NodePath("PlayerSpawns") @@ -56,6 +58,10 @@ elim_timer_label = NodePath("GameUI/ElimTimer") game_timer_label = NodePath("GameUI/GameTimer") chime_player = NodePath("Chimer") music_player = NodePath("MusicPlayer") +win_player = NodePath("WinMusic") +flyover_player = NodePath("Flyover") +intro_player = NodePath("IntroPlayer") +start_button = NodePath("GameUI/Button") [node name="Sprite2D" type="Sprite2D" parent="."] texture_filter = 1 @@ -313,6 +319,14 @@ text = "Scoreboard" [node name="scorecard_container" type="VBoxContainer" parent="GameUI/Scoreboard/VBoxContainer"] layout_mode = 2 +[node name="Button" type="Button" parent="GameUI"] +layout_mode = 0 +offset_left = 132.0 +offset_top = 97.0 +offset_right = 228.0 +offset_bottom = 128.0 +text = "Start Game" + [node name="PlayerSpawns" type="Node2D" parent="."] [node name="Point" type="CollisionShape2D" parent="PlayerSpawns"] @@ -439,6 +453,10 @@ position = Vector2(-67, 0) shape = SubResource("CircleShape2D_7jktm") debug_color = Color(0.623589, 0.532808, 0, 0.42) +[node name="WinMusic" type="AudioStreamPlayer" parent="."] +stream = ExtResource("3_eow3j") +volume_db = -19.083 + [node name="MusicPlayer" type="AudioStreamPlayer" parent="."] stream = ExtResource("3_feb5d") volume_db = -20.0 @@ -450,6 +468,11 @@ stream = ExtResource("4_fc0e3") [node name="IntroPlayer" type="AudioStreamPlayer" parent="."] stream = ExtResource("5_7jktm") volume_db = -18.128 + +[node name="Flyover" type="AudioStreamPlayer" parent="."] +stream = ExtResource("7_j5wjh") +volume_db = -20.037 autoplay = true +[connection signal="pressed" from="GameUI/Button" to="." method="_on_start_button_pressed"] [connection signal="finished" from="IntroPlayer" to="." method="_on_intro_player_finished"] diff --git a/gameManager.gd b/gameManager.gd index 0d3236b..265fc03 100644 --- a/gameManager.gd +++ b/gameManager.gd @@ -23,6 +23,10 @@ var players : Array[Player] @export var game_timer_label : Label @export var chime_player : AudioStreamPlayer @export var music_player : AudioStreamPlayer +@export var win_player : AudioStreamPlayer +@export var flyover_player : AudioStreamPlayer +@export var intro_player : AudioStreamPlayer +@export var start_button : Button var state : State = State.prep var game_timer : float = 0 @@ -92,7 +96,7 @@ func _process(delta: float) -> void: chime_player.play(0.9) func elim_players(): - var lowestScore : int = 10 + var lowestScore : int = 99999 var highestScore : int = 0 for player in players: if player.score < lowestScore and player.alive: @@ -104,6 +108,16 @@ func elim_players(): player.alive = false elim_timer = 30 play_next_chime = 5 + check_win_con() + +func check_win_con(): + var gamers : int = 0 + for player in players: + if player.alive: + gamers += 1 + if gamers == 1: + music_player.stop() + win_player.play() func update_ui(): elim_timer_label.text = format_time(elim_timer, false) @@ -129,5 +143,12 @@ func _on_intro_player_finished() -> void: state = State.game music_player.play() for player in players: + player.lifetime = 0 player.start_engine() + + +func _on_start_button_pressed() -> void: + flyover_player.stop() + intro_player.play() + start_button.disabled = true diff --git a/player.gd b/player.gd index 04b7ef3..acff293 100644 --- a/player.gd +++ b/player.gd @@ -34,8 +34,8 @@ func _process(delta: float) -> void: scorecard.score = score scorecard.alive = alive lifetime += delta - if(linear_velocity.length() < 35 and lifetime > 10): - linear_velocity *= 1.1 + if(linear_velocity.length() < 50 and lifetime > 5): + linear_velocity *= 1.4 if(not alive): modulate = Color("ffffff42") contact_monitor = false diff --git a/project.godot b/project.godot index 4f81ec7..83cc1e2 100644 --- a/project.godot +++ b/project.godot @@ -17,7 +17,7 @@ config/icon="res://icon.svg" [display] -window/stretch/mode="viewport" +window/stretch/mode="canvas_items" [global_group] diff --git a/shiny.tscn b/shiny.tscn index ac6fbee..e1e3a4f 100644 --- a/shiny.tscn +++ b/shiny.tscn @@ -4,7 +4,7 @@ [ext_resource type="Texture2D" uid="uid://1ylm3yb3weq8" path="res://sprites/shiny.png" id="1_0iabg"] [sub_resource type="CircleShape2D" id="CircleShape2D_yl8uo"] -radius = 6.0 +radius = 2.0 [sub_resource type="CircleShape2D" id="CircleShape2D_0cndc"] radius = 7.0