diff --git a/icon.png b/icon.png index a160b57..26eb051 100644 Binary files a/icon.png and b/icon.png differ diff --git a/source/assets/scripts/player_handlers/player_body_handler.gd b/source/assets/scripts/player_handlers/player_body_handler.gd index 6662f61..51ad3d7 100644 --- a/source/assets/scripts/player_handlers/player_body_handler.gd +++ b/source/assets/scripts/player_handlers/player_body_handler.gd @@ -67,7 +67,6 @@ var weaponAngle = 0 var particleTexture = ImageTexture.new() var particleImage = Image.new() - func _ready(): weaponPositionalOffset = Vector2(-$"weaponHolder/Player-character-theme-gun-na3".texture.get_width() * $"weaponHolder/Player-character-theme-gun-na3".scale.x / 2,-$"weaponHolder/Player-character-theme-gun-na3".texture.get_height() * $"weaponHolder/Player-character-theme-gun-na3".scale.y / 2) + Vector2(-$weaponHolder.get_shape().get_radius(), 0) $"weaponHolder/Player-character-theme-gun".position = weaponPositionalOffset diff --git a/source/assets/scripts/server_handlers/trinity_site_level.gd b/source/assets/scripts/server_handlers/trinity_site_level.gd index 1a1543e..da34bc5 100644 --- a/source/assets/scripts/server_handlers/trinity_site_level.gd +++ b/source/assets/scripts/server_handlers/trinity_site_level.gd @@ -3,6 +3,9 @@ extends Node2D var current_spawn_location_instance_number = 1 var current_player_location_instance_number = null +var gameControllerStates = {"singleplayer": false, "waiting": true, "allowMove": false, "allowShoot": false, "allowAim": false, "allowInput": false, "allowMenu": true, "simulatingEnvironment": false, "players": {}, "activePlayer": null} +var activePlayerIndicator = "0" +var gameTimer = 0 func _ready() -> void: get_tree().connect("network_peer_disconnected", self, "_player_disconnected") @@ -10,6 +13,35 @@ func _ready() -> void: if get_tree().is_network_server(): setup_player_positions() +func _process(delta): + gameTimer += delta + if not gameControllerStates["singleplayer"]: + if gameControllerStates["waiting"] and gameControllerStates["players"] != {} and not gameControllerStates["simulatingEnvironment"]: + if gameTimer > 5: + # Wait for tanks to fall to the ground + gameControllerStates["allowMove"] = true + gameControllerStates["activePlayer"] = gameControllerStates["players"][activePlayerIndicator] + gameControllerStates["waiting"] = false + gameTimer = 0 + if gameControllerStates["allowMove"]: + # Get the active player and allow their inputs to have effect. + print("Awaiting player input and processing it to adjust location and rotation") + # DO FOR EACH PLAYER - ONE AFTER THE OTHER + if gameControllerStates["allowAim"] and gameControllerStates["allowInput"]: + # Get the active player and allow their input into adjusting function. + print("Awaiting player input and processing it to adjust aim.") + # DO FOR EACH PLAYER - AT THE SAME TIME + if gameControllerStates["allowShooot"]: + # Enable function locking feature and prepare for shooting phase -- simulatingEnvironment = true + print("Awaiting player function confirmation.") + # DO FOR EACH PLAYER - AT THE SAME TIME + if gameControllerStates["simulatingEnvironment"]: + # Ignore player input, request player weapons to fire the bullets and account for the damages. + # Reset the cycle back to the move stage if neither player won the game. + print("Game result: undetermined, returning to move phase.") + if gameControllerStates["singleplayer"]: + # Do not interrupt user input -> only request checking for victory. + print("Singleplayer mode selected, awaiting game result.") func setup_player_positions() -> void: for player in PersistentNodes.get_children():