Attention | Topic was automatically imported from the old Question2Answer platform. | |
Asked By | Vampi |
The problem
I’m trying to make a card game, in which cards are a class and when instancing (e.g Card.new()) I intend to pass a value with _init so that Card.new(“Cardname”) gives me a card based on the name. Also, I’m new to programming.
The idea is to have a CardDatabase that gets called by a Card Class, so that the specified card is drawn in the board (for now I’m just printing to console instead of this). The Card Class is instanciated by a Hand Class when drawing a Card from a Deck (I just included Hand to make it more easy to test and because I’m still noob). My problem is that when I instance the Card with a parameter it doesn’t change the intended variable, as shown below:
CardDatabase.gd
const DATA = {
"TestCard": {
"Name": "TestCard",
"Effects":
["one", 2],
}
}
Card.gd
class_name Card
onready var CardDatabase = preload("res://CardDatabase.gd")
var CardName:String
var CardInfo = []
func _init(Name: String):
CardName = Name
func _ready():
var CardInfo = [CardDatabase.DATA[CardName].Name,CardDatabase.DATA[CardName].Effects]
print(CardInfo)
Hand.gd
var Card1 = Card.new("TestCard")
func _ready():
print(Card1.CardInfo)
#HERE is the problem, when I run this it returns [] instead of [TestCard,["one",2]]
Thanks in advance