This commit is contained in:
patrick_pluto 2024-08-03 22:24:08 +02:00
parent 812821b510
commit 8435fb0cf8
9 changed files with 140 additions and 36 deletions

View file

@ -11,7 +11,7 @@ extends StaticBody3D
const TARGET = 100
var current = 0
var pc_occupied = [0, 0, 0,]
var pc_occupied = [0, 0, 0]
var pc_body = [0, 0, 0]
@ -33,7 +33,6 @@ func _on_computer_tick_timeout():
func _on_pc_1_area_body_entered(body):
if pc_occupied[0] == 0:
body.has_method("_input")
pc_occupied[0] = 1
pc_body[0] = body

View file

@ -16,3 +16,7 @@ func _ready():
func _on_start_pressed():
Server.send_playerinfo(get_tree().root.get_node("create/player_customization/name").text, multiplayer.get_unique_id())
Server.start_game.rpc(Server.players)
func _input(event):
if Input.is_action_just_pressed("escape"):
get_tree().change_scene_to_file("res://menus/main_menu.tscn")

View file

@ -13,5 +13,9 @@ var players = 0
func _process(delta):
pass
func reset():
computers = 0
players = 0

View file

@ -20,3 +20,8 @@ func _on_join_pressed():
func _on_timer_timeout():
Server.send_playerinfo.rpc($player_customization/name.text, multiplayer.get_unique_id())
func _input(event):
if Input.is_action_just_pressed("escape"):
get_tree().change_scene_to_file("res://menus/main_menu.tscn")

View file

@ -33,12 +33,18 @@ func _ready():
npc = true
func _physics_process(delta):
if Input.is_action_just_pressed("escape"):
get_tree().change_scene_to_file("res://menus/main_menu.tscn")
Game.reset()
Server.reset()
if enabled:
if not is_on_floor():
velocity.y -= gravity * delta
if Input.is_action_just_pressed("jump") and is_on_floor():
velocity.y = JUMP_VELOCITY
@ -98,7 +104,6 @@ func _on_detect_hit_body_entered(body):
func captured(beast):
if !npc:
$in_bag.visible = true
print(beast)
$time_in_bag.start()
visible = false
enabled = false

View file

@ -18,6 +18,15 @@ var label
var map
var character = preload("res://objects/player.tscn")
func reset():
players = {}
players_numbered = []
label = null
map = null
character = preload("res://objects/player.tscn")
if multiplayer != null:
multiplayer.multiplayer_peer = null
func join_game(ip):
var peer = ENetMultiplayerPeer.new()
var error = peer.create_client(ip, PORT)
@ -40,7 +49,6 @@ func send_playerinfo(name, id):
players[id] = name
label = get_tree().root.get_node("create/player_list/list")
label.text = ""
print(players)
for w in players:
if done == 1:
label.text = str(label.text +"\n" + players[w])
@ -53,8 +61,10 @@ func send_playerinfo(name, id):
func start_game(server_players):
players = server_players
players_numbered = players.keys()
get_tree().change_scene_to_file("res://maps/base_map.tscn")
map = get_tree().root.get_node(".")
var success = get_tree().change_scene_to_file("res://maps/base_map.tscn")
while !get_tree().root.has_node("./map/"):
await get_tree().create_timer(0.001).timeout
map = get_tree().root.get_node("./map/")
var i = 0
for w in players:
var player = character.instantiate()
@ -68,28 +78,24 @@ func start_game(server_players):
@rpc("any_peer", "call_remote", "unreliable")
func sync_player(node_name, position, rotation):
var current_character = get_tree().root.get_node("./"+node_name)
var current_character = get_tree().root.get_node("./map/"+node_name)
current_character.position = position
current_character.rotation = rotation
@rpc("authority", "call_remote", "reliable")
@rpc("authority", "call_local", "reliable")
func sync_computers(node_name, current):
var current_character = get_tree().root.get_node("./map/"+node_name)
current_character.current = current
@rpc("authority", "call_local", "reliable")
func sync_beast(player):
var current_character = get_tree().root.get_node("./"+"player"+str(player))
var current_character = get_tree().root.get_node("./map/player"+str(player))
current_character.beast_init()
@rpc("any_peer", "call_local", "reliable")
func player_hit(target, beast):
target = get_tree().root.get_node("./"+target)
beast = get_tree().root.get_node("./"+beast)
map = get_tree().root.get_node(".")
print(target)
print(beast)
print(map)
target = get_tree().root.get_node("./map/"+target)
beast = get_tree().root.get_node("./map/"+beast)
target.captured(beast)
beast.got_one(target)