[Minimal] Beginning development of game controller

This commit is contained in:
Alan Alexander Cerna 2021-11-10 15:11:51 +02:00
parent 4b07c107c4
commit 60074a2508
3 changed files with 32 additions and 1 deletions

BIN
icon.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 972 KiB

After

Width:  |  Height:  |  Size: 930 KiB

View File

@ -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

View File

@ -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():