From d9e05e12df189ce85451dd70b42c9a27b62fbb7b Mon Sep 17 00:00:00 2001 From: Sage Vaillancourt Date: Sun, 27 May 2018 02:20:51 -0400 Subject: [PATCH] Multiplayer fixes and UI update --- Main.gd | 15 ++++--- Main.tscn | 8 ++-- Networking.gd | 5 +++ Networking.tscn | 23 +++++++++-- OtherPlayer.tscn | 14 +++---- Player.gd | 60 ++++++++++++++++++---------- UpgradeMenu.gd | 6 +++ art/multiplayer_menu/connect_to.png | Bin 0 -> 37060 bytes 8 files changed, 92 insertions(+), 39 deletions(-) create mode 100644 art/multiplayer_menu/connect_to.png diff --git a/Main.gd b/Main.gd index 4ec3c1b..91b6970 100644 --- a/Main.gd +++ b/Main.gd @@ -13,6 +13,7 @@ var rectangle_opacity = 1 const BADDIE_WAIT_TIME_DEFAULT = 5 func _ready(): + $ColorRect.visible = true var mainmenu = preload("res://MainMenu.tscn").instance() add_child(mainmenu) mainmenu.connect("multiplayer_menu", self, "_open_multiplayer_menu") @@ -80,20 +81,20 @@ func BaddieTimer(): total_bads_spawned += 1 if $BaddieTimer.wait_time > 0.5: - $BaddieTimer.wait_time = $BaddieTimer.wait_time * 0.99 + $BaddieTimer.wait_time = $BaddieTimer.wait_time * 0.975 if total_bads_spawned == a_round_of_bads: bad_health_multi *= 1.5 badposition.x = 1200 badposition.y = (randi()%410) + 50 if get_tree().is_network_server(): - rpc("spawnBad", bad_type, badposition) + rpc("spawnBad", bad_type, badposition, bad_health_multi) else: - spawnBad(bad_type, badposition) + spawnBad(bad_type, badposition, bad_health_multi) else: total_bads_spawned = 0 -sync func spawnBad(bad_type, position): ### sync func ? +sync func spawnBad(bad_type, position, health_multi): ### sync func ? var bad if bad_type == 0: bad = FirstBad.instance() @@ -104,7 +105,7 @@ sync func spawnBad(bad_type, position): ### sync func ? add_child(bad) bad.connect("dead", self, "_on_bad_death") - bad.health_multi = bad_health_multi + bad.health_multi = health_multi bad.position = position func _on_PauseButton_pressed(): @@ -150,6 +151,10 @@ func _input(event): else: touchy_shooty = true +func other_shooting_upgrade(id, other_bullet_delay): + prints("Other player shooting speed upgrade") + $OtherPlayer.timer.set_wait_time(other_bullet_delay) + func _on_Player_multiplayer_movement(id, position, is_shooting): $OtherPlayer.visible = true $OtherPlayer.username = str(id) diff --git a/Main.tscn b/Main.tscn index e393769..d146d13 100644 --- a/Main.tscn +++ b/Main.tscn @@ -27,7 +27,7 @@ animations = [ { "speed": 5.0 } ] -[node name="Main" type="Node"] +[node name="Main" type="Node" index="0"] script = ExtResource( 1 ) _sections_unfolded = [ "Pause" ] @@ -146,6 +146,7 @@ align = 1 [node name="ColorRect" type="ColorRect" parent="." index="7"] +visible = false anchor_left = 0.0 anchor_top = 0.0 anchor_right = 0.0 @@ -159,6 +160,7 @@ mouse_default_cursor_shape = 0 size_flags_horizontal = 1 size_flags_vertical = 1 color = Color( 0, 0, 0, 1 ) +_sections_unfolded = [ "Visibility" ] [node name="Pause" type="AnimatedSprite" parent="." index="8"] @@ -176,12 +178,12 @@ _sections_unfolded = [ "Transform", "Visibility" ] [connection signal="multiplayer_movement" from="Player" to="." method="_on_Player_multiplayer_movement"] +[connection signal="other_shooting_upgrade" from="Player" to="." method="other_shooting_upgrade"] + [connection signal="restart_game" from="Player" to="." method="_on_Player_restart_game"] [connection signal="restart_game" from="Player" to="Mothership" method="_on_Player_restart_game"] -[connection signal="shooting_speed_upgrade" from="Player" to="." method="_on_Player_shooting_speed_upgrade"] - [connection signal="update_display" from="Player" to="." method="_on_Player_update_display"] [connection signal="timeout" from="BaddieTimer" to="." method="BaddieTimer"] diff --git a/Networking.gd b/Networking.gd index dae1273..85973c1 100644 --- a/Networking.gd +++ b/Networking.gd @@ -31,6 +31,9 @@ func _on_Server_pressed(): $EnterIP.visible = false $ServerEntry.visible = false $ServerAcceptIcon.visible = false + $ConnectTo.visible = true + $StartServer.visible = false + $Server.visible = false func _on_Client_pressed(): server_ip = $ServerEntry.text @@ -68,6 +71,7 @@ remote func register_player(id, info): rpc_id(id, "register_player", peer_id, player_info[peer_id]) prints(player_info[id], id) emit_signal("player_info", player_info) + prints(player_info) # Call function to update lobby UI here @@ -97,6 +101,7 @@ func _on_BackToMain_pressed(): $StartServer.visible = false $ServerAcceptIcon.visible = false $EnterIP.visible = false + $ConnectTo.visible = false func _on_UsernameEntry_text_changed(new_text): my_info = {name = new_text, color = my_info.color} diff --git a/Networking.tscn b/Networking.tscn index 101f940..13eaecb 100644 --- a/Networking.tscn +++ b/Networking.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=15 format=2] +[gd_scene load_steps=17 format=2] [ext_resource path="res://Networking.gd" type="Script" id=1] [ext_resource path="res://art/multiplayer_menu/start_server.png" type="Texture" id=2] @@ -6,6 +6,7 @@ [ext_resource path="res://art/multiplayer_menu/back.png" type="Texture" id=4] [ext_resource path="res://art/multiplayer_menu/checkmark.png" type="Texture" id=5] [ext_resource path="res://art/multiplayer_menu/enter_ip.png" type="Texture" id=6] +[ext_resource path="res://art/multiplayer_menu/connect_to.png" type="Texture" id=7] [sub_resource type="BitmapFont" id=1] @@ -79,7 +80,16 @@ animations = [ { "speed": 5.0 } ] -[node name="Networking" type="Node" index="0"] +[sub_resource type="SpriteFrames" id=9] + +animations = [ { +"frames": [ ExtResource( 7 ) ], +"loop": true, +"name": "default", +"speed": 5.0 +} ] + +[node name="Networking" type="Node"] pause_mode = 2 script = ExtResource( 1 ) @@ -281,7 +291,6 @@ animation = "default" [node name="ServerIP" type="Label" parent="." index="9"] -visible = false anchor_left = 0.0 anchor_top = 0.0 anchor_right = 0.0 @@ -385,6 +394,14 @@ frames = SubResource( 8 ) animation = "default" _sections_unfolded = [ "Transform" ] +[node name="ConnectTo" type="AnimatedSprite" parent="." index="16"] + +visible = false +position = Vector2( 788.86, 170.073 ) +scale = Vector2( 0.553802, 0.553802 ) +frames = SubResource( 9 ) +animation = "default" + [connection signal="pressed" from="Client" to="." method="_on_Client_pressed"] [connection signal="pressed" from="Name" to="." method="_on_Name_pressed"] diff --git a/OtherPlayer.tscn b/OtherPlayer.tscn index daaecf5..05e3af6 100644 --- a/OtherPlayer.tscn +++ b/OtherPlayer.tscn @@ -4,7 +4,7 @@ [ext_resource path="res://art/player/Rocket1.png" type="Texture" id=2] [ext_resource path="res://art/player/Rocket2.png" type="Texture" id=3] -[sub_resource type="GDScript" id=3] +[sub_resource type="GDScript" id=1] script/source = "extends Area2D @@ -129,7 +129,7 @@ func shoot(): timer.start()" _sections_unfolded = [ "Resource" ] -[sub_resource type="SpriteFrames" id=1] +[sub_resource type="SpriteFrames" id=2] animations = [ { "frames": [ ExtResource( 2 ), ExtResource( 3 ) ], @@ -138,13 +138,13 @@ animations = [ { "speed": 15.0 } ] -[sub_resource type="CapsuleShape2D" id=2] +[sub_resource type="CapsuleShape2D" id=3] custom_solver_bias = 0.0 radius = 12.8998 height = 40.4125 -[node name="OtherPlayer" type="Area2D" index="0"] +[node name="OtherPlayer" type="Area2D"] input_pickable = true gravity_point = true @@ -156,7 +156,7 @@ collision_layer = 29 collision_mask = 29 audio_bus_override = false audio_bus_name = "Master" -script = SubResource( 3 ) +script = SubResource( 1 ) Laser = ExtResource( 1 ) [node name="AnimatedSprite" type="AnimatedSprite" parent="." index="0"] @@ -164,14 +164,14 @@ Laser = ExtResource( 1 ) modulate = Color( 0.276855, 0.445152, 0.84375, 1 ) position = Vector2( 1.01175, 7.07602 ) scale = Vector2( 0.2, 0.2 ) -frames = SubResource( 1 ) +frames = SubResource( 2 ) animation = "default" _sections_unfolded = [ "Visibility" ] [node name="CollisionShape2D" type="CollisionShape2D" parent="." index="1"] position = Vector2( 45.5518, -3.09424 ) -shape = SubResource( 2 ) +shape = SubResource( 3 ) [node name="Username" type="Label" parent="." index="2"] diff --git a/Player.gd b/Player.gd index 1892a64..442cf67 100644 --- a/Player.gd +++ b/Player.gd @@ -5,6 +5,8 @@ signal update_display # tells parent to update points display signal refund # will tell parent a refund is occuring, for display signal shooting_speed_upgrade # signals that a shooting speed upgrade has occured signal ship_speed_upgrade +signal other_shooting_upgrade +signal other_ship_speed_upgrade signal shooting_speed_fully_upgraded signal ship_speed_fully_upgraded signal restart_game @@ -62,24 +64,32 @@ var shooting_speed_upgrade = SHOOTING_SPEED_UPGRADE_DEFAULT var ship_speed_upgrade = SHIP_SPEED_UPGRADE_DEFAULT func upgradeMenu(): + menu_open = true var upgmenu = preload("res://UpgradeMenu.tscn").instance() add_child(upgmenu) upgmenu.connect("refund", self, "_refund_button") upgmenu.connect("bullet_delay_upgrade", self, "upgradeBulletDelay_button") upgmenu.connect("ship_speed_upgrade", self, "upgradeShipSpeed_button") + upgmenu.connect("menu_closed", self, "menuClosed") upgmenu.bullet_delay_tier = bullet_delay_tier upgmenu.ship_speed_tier = ship_speed_tier - get_tree().paused = true + if !get_tree().has_network_peer(): + get_tree().paused = true + +func menuClosed(): + menu_open = false func upgradeShipSpeed_button(): upgradeShipSpeed() emit_signal("update_display") - get_tree().paused = true + if !get_tree().has_network_peer(): + get_tree().paused = true func upgradeBulletDelay_button(): upgradeBulletDelay() emit_signal("update_display") - get_tree().paused = true + if !get_tree().has_network_peer(): + get_tree().paused = true func upgradeBulletDelay(): if (bullet_delay == BULLET_DELAY_TIER1 && money >= BULLET_DELAY_TIER2_COST): @@ -111,7 +121,9 @@ func upgradeBulletDelay(): shooting_speed_upgrade *= 1.1 bullet_delay_tier += 1 timer.set_wait_time(bullet_delay) - prints(bullet_delay) + + rpc("other_shooting_speed_upgrade", get_tree().get_network_unique_id(), bullet_delay) + prints("rpc other_shootng_speed_upgrade", get_tree().get_network_unique_id(), bullet_delay) func upgradeShipSpeed(): prints("func upgradeShipSpeed():") @@ -142,6 +154,7 @@ func upgradeShipSpeed(): money -= ship_speed_upgrade ship_value += ship_speed_upgrade ship_speed_upgrade *= 1.1 + prints(ship_speed) func _ready(): @@ -190,27 +203,32 @@ var y_down = false var is_shooting +var menu_open = false func moveto(finger_position): - if (finger_position.x > position.x && finger_position.x < 800): - velocity.x += 1 - x_up = true - if position.x > finger_position.x: - velocity.x -= 1 - x_down = true - if (finger_position.y - 100 > position.y && finger_position.x < 800): - velocity.y += 1 - y_up = true - if (position.y > finger_position.y - 100 && finger_position.x < 800): - velocity.y -= 1 - y_down = true -# if (finger_position.x >= 800 && can_shoot): -# shoot() -# if get_tree().has_network_peer(): -# rpc("move_player", get_tree().get_network_unique_id(), position, ~can_shoot) + if !menu_open: + if (finger_position.x > position.x && finger_position.x < 800): + velocity.x += 1 + x_up = true + if position.x > finger_position.x: + velocity.x -= 1 + x_down = true + if (finger_position.y - 100 > position.y && finger_position.x < 800): + velocity.y += 1 + y_up = true + if (position.y > finger_position.y - 100 && finger_position.x < 800): + velocity.y -= 1 + y_down = true + # if (finger_position.x >= 800 && can_shoot): + # shoot() + # if get_tree().has_network_peer(): + # rpc("move_player", get_tree().get_network_unique_id(), position, ~can_shoot) remote func move_player(id, position, is_shooting): emit_signal("multiplayer_movement", id, position, is_shooting) +remote func other_shooting_speed_upgrade(id, bullet_delay): + emit_signal("other_shooting_upgrade", id, bullet_delay) + var velocity = Vector2() # the player's movement vector func _process(delta): @@ -240,7 +258,7 @@ func _process(delta): is_shooting = true if get_tree().has_network_peer(): - rpc("move_player", get_tree().get_network_unique_id(), position, is_shooting) + rpc_unreliable("move_player", get_tree().get_network_unique_id(), position, is_shooting) if ((Input.is_action_pressed("ui_accept") || shoot_down == true) && can_shoot == true): shoot() diff --git a/UpgradeMenu.gd b/UpgradeMenu.gd index ef13c2f..694edd1 100644 --- a/UpgradeMenu.gd +++ b/UpgradeMenu.gd @@ -6,6 +6,7 @@ signal bullet_delay_upgrade signal ship_speed_upgrade signal add_laser signal plasma_lasers +signal menu_closed var bullet_delay_tier var shooting_speed_tier @@ -17,6 +18,10 @@ func _ready(): $ShootingSpeedUpgrade/Icon.frame = bullet_delay_tier ship_speed_tier = get_parent().ship_speed_tier $ShipSpeedUpgrade/Icon.frame = ship_speed_tier + if get_tree().has_network_peer(): + $ColorRect.color = Color(1,1,1,0.5) + else: + $ColorRect.color = Color(1,1,1,0.5) func _process(delta): $ShootingSpeedUpgrade/Icon.frame = bullet_delay_tier @@ -28,6 +33,7 @@ func _process(delta): func _on_Button_pressed(): get_tree().paused = false + emit_signal("menu_closed") queue_free() func _on_Refund_pressed(): diff --git a/art/multiplayer_menu/connect_to.png b/art/multiplayer_menu/connect_to.png new file mode 100644 index 0000000000000000000000000000000000000000..0f53493538d41a478374202447cad5e31ed167a8 GIT binary patch literal 37060 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