|
|
|
|
@@ -112,12 +112,36 @@ func update_hud():
|
|
|
|
|
osScoreGameLabel.text = str(round_status["os_game_score"])
|
|
|
|
|
|
|
|
|
|
roundNumberLabel.text = "Round " + str(round_status["round_number"])
|
|
|
|
|
|
|
|
|
|
func find_weapon_name_by_number(number):
|
|
|
|
|
var name = ""
|
|
|
|
|
for weapon in game_settings["weapons"].keys():
|
|
|
|
|
if (game_settings["weapons"][weapon].number == number):
|
|
|
|
|
name = weapon
|
|
|
|
|
return name
|
|
|
|
|
|
|
|
|
|
@rpc("authority", "call_local", "reliable")
|
|
|
|
|
func change_weapon(new_weapon_number):
|
|
|
|
|
properties["reloading"] = false
|
|
|
|
|
var weapons = $"Head/Camera/Hand".get_children()
|
|
|
|
|
for weapon in weapons:
|
|
|
|
|
weapon.visible = false
|
|
|
|
|
weapons[new_weapon_number].visible = true
|
|
|
|
|
print("Changing weapon: " + str(new_weapon_number))
|
|
|
|
|
#if (properties["is_playable"]):
|
|
|
|
|
#properties["current_weapon"] = properties["weapons"][find_weapon_name_by_number(new_weapon_number)]
|
|
|
|
|
#properties["reloading"] = false
|
|
|
|
|
|
|
|
|
|
func find_weapon_in_inventory(number):
|
|
|
|
|
var found_weapon
|
|
|
|
|
print("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAa: " + str(properties["weapons"]))
|
|
|
|
|
for weapon in properties["weapons"].values():
|
|
|
|
|
#var a:Dictionary = properties["weapons"]
|
|
|
|
|
#a.
|
|
|
|
|
print("Checking: " + str(weapon))
|
|
|
|
|
if weapon["number"] == number:
|
|
|
|
|
found_weapon = weapon
|
|
|
|
|
break
|
|
|
|
|
return found_weapon
|
|
|
|
|
|
|
|
|
|
func find_weapon_by_number(number):
|
|
|
|
|
var found_weapon
|
|
|
|
|
@@ -162,7 +186,9 @@ func update_weapon_raycast():
|
|
|
|
|
weapon_raycast.target_position = weapon_raycast.to_local(raycast.to_global(raycast.target_position) - weapon_raycast.position)
|
|
|
|
|
|
|
|
|
|
func try_shoot():
|
|
|
|
|
var current_weapon = game_settings["weapons"].find_key(find_weapon_by_number(properties["current_weapon"]["number"]))
|
|
|
|
|
print(str(properties["current_weapon"]))
|
|
|
|
|
#var current_weapon = game_settings["weapons"].find_key(find_weapon_by_number(properties["current_weapon"]["number"]))
|
|
|
|
|
var current_weapon = find_weapon_name_by_number(properties["current_weapon"]["number"])#game_settings["weapons"].find_key(find_weapon_by_number(properties["current_weapon"]["number"]))
|
|
|
|
|
var current_weapon_settings = game_settings["weapons"][current_weapon]
|
|
|
|
|
properties["reloading"] = false
|
|
|
|
|
|
|
|
|
|
@@ -196,16 +222,17 @@ func reload():
|
|
|
|
|
func _unhandled_input(event):
|
|
|
|
|
if (!properties["is_playable"]): return
|
|
|
|
|
|
|
|
|
|
var weapon_change = 0
|
|
|
|
|
if Input.is_action_pressed("MWU"):
|
|
|
|
|
var weapon_number = wrap(properties["current_weapon"]["number"] + 1, 0, game_settings["weapons"].size())
|
|
|
|
|
properties["current_weapon"] = find_current_weapon_by_number(weapon_number)
|
|
|
|
|
if (!properties["offline_mode"]): Networking.change_weapon.rpc_id(1, multiplayer.get_unique_id(), properties["current_weapon"]["number"])
|
|
|
|
|
change_weapon(properties["current_weapon"]["number"])
|
|
|
|
|
weapon_change = 1
|
|
|
|
|
if Input.is_action_pressed("MWD"):
|
|
|
|
|
var weapon_number = wrap(properties["current_weapon"]["number"] - 1, 0, game_settings["weapons"].size())
|
|
|
|
|
properties["current_weapon"] = find_current_weapon_by_number(weapon_number)
|
|
|
|
|
if (!properties["offline_mode"]): Networking.change_weapon.rpc_id(1, multiplayer.get_unique_id(), properties["current_weapon"]["number"])
|
|
|
|
|
change_weapon(properties["current_weapon"]["number"])
|
|
|
|
|
weapon_change = -1
|
|
|
|
|
if (weapon_change != 0):
|
|
|
|
|
var new_weapon_number = wrap(properties["current_weapon"]["number"] + weapon_change, 0, game_settings["weapons"].size())
|
|
|
|
|
properties["current_weapon"] = find_weapon_in_inventory(new_weapon_number)
|
|
|
|
|
|
|
|
|
|
print(str(properties["current_weapon"]))
|
|
|
|
|
Networking.change_weapon.rpc_id(1, multiplayer.get_unique_id(), properties["current_weapon"]["number"])
|
|
|
|
|
|
|
|
|
|
if event is InputEventMouseMotion:
|
|
|
|
|
rotate_y(-event.relative.x * SENSETIVITY)
|
|
|
|
|
@@ -232,7 +259,7 @@ func _physics_process(delta):
|
|
|
|
|
|
|
|
|
|
if Input.is_action_just_pressed("reload"):
|
|
|
|
|
var current_weapon = game_settings["weapons"].find_key(find_weapon_by_number(properties["current_weapon"]["number"]))
|
|
|
|
|
if (!properties["offline_mode"]): Networking.client_reloading.rpc_id(1, multiplayer.get_unique_id())
|
|
|
|
|
Networking.client_reloading.rpc_id(1, multiplayer.get_unique_id())
|
|
|
|
|
properties["reloading"] = true
|
|
|
|
|
get_tree().create_timer(game_settings["weapons"][current_weapon]["reload"]).connect("timeout", reload)
|
|
|
|
|
|
|
|
|
|
|