Godot Version
godot_v4.1.3
Question
I set a few onready variables with nodes. Everything worked, but when i use a function activated by a signal from a difrent scene, all of this variables are null. How can I fix it?
extends Node2D
var Player1= "guild_dwarves_first"
var Player2 = "cave_goblins_first"
var activePlayer = 1
const resPath = "res://Resources/Cards/"
@onready var DB = $DeckDB
@onready var CardScene = preload("res://Scenes/card.tscn")
@onready var DrawPile = [$"Board/Player 1/Draw", $"Board/Player 2/Draw"]
@onready var Magic = [$"Board/Player 1/Magic", $"Board/Player 2/Magic"]
@onready var Discard = [$"Board/Player 1/Discard", $"Board/Player 2/Discard"]
@onready var Hand = [$"Board/Player 1/Hand", $"Board/Player 2/Hand"]
@onready var Battleground = $"Board/BattleGround"
var GamePhase = "build_magic"
func _ready():
prepare() #This appears first, and all variables have their nodes
func field_activated(field):
#Magic = [$"Board/Player 1/Magic", $"Board/Player 2/Magic"] #I tried this, but doesn't work neither
var card
if GamePhase == "summon":
pass
if GamePhase == "event":
pass
if GamePhase == "move":
pass
if GamePhase == "attack":
pass
if GamePhase == "build_magic":
if field.get_child_count() != 0:
card = field.get_child(0)
field.remove_child(card)
card.reverse()
Magic[activePlayer].add_child(card) #This appears later, and all variables are null
extends ColorRect
signal active_filed
func _ready():
var main = preload("res://Scenes/main.tscn").instantiate()
connect("active_filed",Callable(main, "field_activated"))
func _on_gui_input(event):
if event.is_action_pressed("click"):
active_filed.emit(self)