freeftf/maps/map.gd

29 lines
1.3 KiB
GDScript3
Raw Normal View History

2025-07-18 19:32:37 +01:00
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
2025-07-18 19:32:37 +01:00
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]]
2025-07-18 19:32:37 +01:00
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