181 lines
4.5 KiB
GDScript
181 lines
4.5 KiB
GDScript
class_name TestCardData
|
|
extends RefCounted
|
|
|
|
## Factory for creating test CardData objects without CardDatabase autoload
|
|
## Use these methods in unit tests to create cards with specific properties
|
|
|
|
|
|
static func create_forward(
|
|
id: String = "test-forward-001",
|
|
card_name: String = "Test Forward",
|
|
element: Enums.Element = Enums.Element.FIRE,
|
|
cost: int = 3,
|
|
power: int = 5000,
|
|
is_generic: bool = false,
|
|
abilities: Array[CardDatabase.AbilityData] = []
|
|
) -> CardDatabase.CardData:
|
|
var card = CardDatabase.CardData.new()
|
|
card.id = id
|
|
card.name = card_name
|
|
card.type = Enums.CardType.FORWARD
|
|
card.elements.append(element)
|
|
card.cost = cost
|
|
card.power = power
|
|
card.is_generic = is_generic
|
|
card.abilities = abilities
|
|
return card
|
|
|
|
|
|
static func create_backup(
|
|
id: String = "test-backup-001",
|
|
card_name: String = "Test Backup",
|
|
element: Enums.Element = Enums.Element.FIRE,
|
|
cost: int = 2,
|
|
is_generic: bool = false
|
|
) -> CardDatabase.CardData:
|
|
var card = CardDatabase.CardData.new()
|
|
card.id = id
|
|
card.name = card_name
|
|
card.type = Enums.CardType.BACKUP
|
|
card.elements.append(element)
|
|
card.cost = cost
|
|
card.power = 0
|
|
card.is_generic = is_generic
|
|
return card
|
|
|
|
|
|
static func create_summon(
|
|
id: String = "test-summon-001",
|
|
card_name: String = "Test Summon",
|
|
element: Enums.Element = Enums.Element.FIRE,
|
|
cost: int = 2,
|
|
has_ex_burst: bool = false
|
|
) -> CardDatabase.CardData:
|
|
var card = CardDatabase.CardData.new()
|
|
card.id = id
|
|
card.name = card_name
|
|
card.type = Enums.CardType.SUMMON
|
|
card.elements.append(element)
|
|
card.cost = cost
|
|
card.has_ex_burst = has_ex_burst
|
|
return card
|
|
|
|
|
|
static func create_light_forward(
|
|
id: String = "test-light-001",
|
|
card_name: String = "Light Forward",
|
|
cost: int = 5,
|
|
power: int = 9000
|
|
) -> CardDatabase.CardData:
|
|
var card = CardDatabase.CardData.new()
|
|
card.id = id
|
|
card.name = card_name
|
|
card.type = Enums.CardType.FORWARD
|
|
card.elements.append(Enums.Element.LIGHT)
|
|
card.cost = cost
|
|
card.power = power
|
|
return card
|
|
|
|
|
|
static func create_dark_forward(
|
|
id: String = "test-dark-001",
|
|
card_name: String = "Dark Forward",
|
|
cost: int = 5,
|
|
power: int = 9000
|
|
) -> CardDatabase.CardData:
|
|
var card = CardDatabase.CardData.new()
|
|
card.id = id
|
|
card.name = card_name
|
|
card.type = Enums.CardType.FORWARD
|
|
card.elements.append(Enums.Element.DARK)
|
|
card.cost = cost
|
|
card.power = power
|
|
return card
|
|
|
|
|
|
static func create_multi_element_forward(
|
|
id: String = "test-multi-001",
|
|
card_name: String = "Multi Element Forward",
|
|
elements: Array[Enums.Element] = [Enums.Element.FIRE, Enums.Element.ICE],
|
|
cost: int = 4,
|
|
power: int = 7000
|
|
) -> CardDatabase.CardData:
|
|
var card = CardDatabase.CardData.new()
|
|
card.id = id
|
|
card.name = card_name
|
|
card.type = Enums.CardType.FORWARD
|
|
for elem in elements:
|
|
card.elements.append(elem)
|
|
card.cost = cost
|
|
card.power = power
|
|
return card
|
|
|
|
|
|
static func create_haste_forward(
|
|
id: String = "test-haste-001",
|
|
card_name: String = "Haste Forward",
|
|
element: Enums.Element = Enums.Element.FIRE,
|
|
cost: int = 3,
|
|
power: int = 5000
|
|
) -> CardDatabase.CardData:
|
|
var card = CardDatabase.CardData.new()
|
|
card.id = id
|
|
card.name = card_name
|
|
card.type = Enums.CardType.FORWARD
|
|
card.elements.append(element)
|
|
card.cost = cost
|
|
card.power = power
|
|
|
|
var haste_ability = CardDatabase.AbilityData.new()
|
|
haste_ability.type = Enums.AbilityType.FIELD
|
|
haste_ability.effect = "Haste"
|
|
card.abilities.append(haste_ability)
|
|
|
|
return card
|
|
|
|
|
|
static func create_brave_forward(
|
|
id: String = "test-brave-001",
|
|
card_name: String = "Brave Forward",
|
|
element: Enums.Element = Enums.Element.WIND,
|
|
cost: int = 4,
|
|
power: int = 6000
|
|
) -> CardDatabase.CardData:
|
|
var card = CardDatabase.CardData.new()
|
|
card.id = id
|
|
card.name = card_name
|
|
card.type = Enums.CardType.FORWARD
|
|
card.elements.append(element)
|
|
card.cost = cost
|
|
card.power = power
|
|
|
|
var brave_ability = CardDatabase.AbilityData.new()
|
|
brave_ability.type = Enums.AbilityType.FIELD
|
|
brave_ability.effect = "Brave"
|
|
card.abilities.append(brave_ability)
|
|
|
|
return card
|
|
|
|
|
|
static func create_first_strike_forward(
|
|
id: String = "test-first-strike-001",
|
|
card_name: String = "First Strike Forward",
|
|
element: Enums.Element = Enums.Element.LIGHTNING,
|
|
cost: int = 3,
|
|
power: int = 4000
|
|
) -> CardDatabase.CardData:
|
|
var card = CardDatabase.CardData.new()
|
|
card.id = id
|
|
card.name = card_name
|
|
card.type = Enums.CardType.FORWARD
|
|
card.elements.append(element)
|
|
card.cost = cost
|
|
card.power = power
|
|
|
|
var first_strike_ability = CardDatabase.AbilityData.new()
|
|
first_strike_ability.type = Enums.AbilityType.FIELD
|
|
first_strike_ability.effect = "First Strike"
|
|
card.abilities.append(first_strike_ability)
|
|
|
|
return card
|