freeftf/maps/map.gd
Patrick 2dce012535 0.1.0
Added a basic test map, options menu, bug fixes, and much more.
2025-08-08 10:57:42 +02:00

28 lines
1.3 KiB
GDScript

class_name Map
extends Node3D
func _ready() -> void:
if multiplayer.is_server():
randomize()
var random_id: int = Multiplayer.players.keys()[randi_range(0, Multiplayer.players.size() - 1)]
Multiplayer.players[random_id].hunter = true
for i: int in $PlayerSpawners.get_children().size():
if i < Multiplayer.players.size():
var spawner: PlayerSpawner = $PlayerSpawners.get_child(i)
var player: Dictionary = Multiplayer.players[Multiplayer.players.keys()[i]]
spawner.spawn_player(player)
func _on_exit_entered(body: Node3D) -> void:
if multiplayer.is_server() and (body is Player):
var player: Player = body
if !player.hunter and Multiplayer.fuseboxes <= 0:
Multiplayer.players[player.get_multiplayer_authority()].escaped = true
player.get_caught.rpc_id(player.get_multiplayer_authority(), $SpectatorCamera.get_path())
func _process(_delta: float) -> void:
if Multiplayer.fuseboxes <= 0:
(($EscapeArea/Light as CSGBox3D).material as StandardMaterial3D).albedo_color.r8 = 0
(($EscapeArea/Light as CSGBox3D).material as StandardMaterial3D).albedo_color.g8 = 255
else:
(($EscapeArea/Light as CSGBox3D).material as StandardMaterial3D).albedo_color.r8 = 255
(($EscapeArea/Light as CSGBox3D).material as StandardMaterial3D).albedo_color.g8 = 0