extends Resource class_name Item const TYPE_ICON = preload("res://common/icons/backpack.svg") const ACTION_ICON = preload("res://common/icons/swipe-down.svg") const ENERGY_ICON = preload("res://common/icons/bolt.svg") const ONE_TIME_ICON = preload("res://common/icons/circle-number-1.svg") var name: String : get = get_item_name var description: String : get = get_description var icon: Texture2D : get = get_icon var usage_zone_radius: int = 5 : get = get_usage_zone_radius var energy_usage : int = 1 : get = get_energy_used func get_item_name() -> String: return name func get_description() -> String: return description func get_icon() -> Texture2D: return icon func get_energy_used() -> int: return energy_usage func get_usage_zone_radius() -> int: return usage_zone_radius func get_usage_object_affected(_i : InspectableEntity) -> bool: return false func is_one_time_use(): return false func can_use(_player : Player, zone: Player.ActionZone) -> bool: return false func use_text() -> String: return "" func use(_player : Player, zone: Player.ActionZone): return false func card_info() -> CardInfo: var info = CardInfo.new( get_item_name() ) info.texture = icon info.type_icon = TYPE_ICON info.stats.append( CardStatInfo.new( "Cost %d energy" % energy_usage, ENERGY_ICON ) ) if is_one_time_use(): info.stats.append( CardStatInfo.new( "One time use", ONE_TIME_ICON ) ) var effect_section = CardSectionInfo.new( "Effect", get_description() ) effect_section.title_icon = ACTION_ICON if energy_usage > 0: effect_section.title_icon = ENERGY_ICON info.sections.append(effect_section) return info func get_particles() -> Array[Particles.Parameters]: return []