33 lines
796 B
GDScript
33 lines
796 B
GDScript
class_name ShopEntry
|
|
extends RefCounted
|
|
|
|
var role: int
|
|
var element: int = -1 ## -1 = elementlos
|
|
var sold: bool = false
|
|
|
|
|
|
func _init(p_role: int = 0, p_element: int = -1) -> void:
|
|
role = p_role
|
|
element = p_element
|
|
|
|
|
|
func price() -> int:
|
|
return Data.PRICE_NONE if element < 0 else Data.PRICE_ELEMENT
|
|
|
|
|
|
func color() -> Color:
|
|
return Data.NONE_COLOR if element < 0 else Data.ELEMENT_COLORS[element]
|
|
|
|
|
|
func label() -> String:
|
|
var e: String = "Neutral" if element < 0 else Data.ELEMENT_NAMES[element]
|
|
return e + "\n" + Data.ROLE_NAMES[role]
|
|
|
|
|
|
## Neutrale Avatare bekommen die beim Kauf gewählte Spezialisierung.
|
|
func to_avatar(chosen_element: int) -> Avatar:
|
|
var e := element if element >= 0 else chosen_element
|
|
var a := Avatar.new(role, [e] as Array[int], 1)
|
|
a.invested = price()
|
|
return a
|