Files
Decked-Out-Defense/scripts/resources/cassette_text.gd

41 lines
1.1 KiB
GDScript

class_name CassetteText
extends Resource
@export var target_type: Array[Data.TargetType]
@export var energy_type: Data.EnergyType
@export var attributes: Dictionary[String, float]
@export var features: Array[Feature]
@export_multiline var text: String
func get_attribute(attribute: String) -> float:
if attributes.has(attribute):
return attributes[attribute]
return 0.0
func set_attribute(attribute: String, value: float) -> void:
attributes[attribute] = value
func get_duplicate() -> CassetteText:
var cassette_text: CassetteText = self.duplicate()
cassette_text.target_type = target_type.duplicate()
cassette_text.attributes = attributes.duplicate()
cassette_text.features = features.duplicate()
return cassette_text
func tower_features_applied() -> CassetteText:
var cassette_text: CassetteText = get_duplicate()
for feature: Feature in features:
feature.attach_to_tower(cassette_text)
return cassette_text
func weapon_features_applied() -> CassetteText:
var cassette_text: CassetteText = get_duplicate()
for feature: Feature in features:
feature.attach_to_weapon(cassette_text)
return cassette_text