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 0000000..0f53493 Binary files /dev/null and b/art/multiplayer_menu/connect_to.png differ