Randoloot/scripts/items/item_definition.gd
2026-10-12 22:16:09 +02:00

33 lines
1.3 KiB
GDScript

extends Resource
class_name ItemDefinition
enum Category { WEAPON, SHIELD, ARMOR, REACTOR, ENGINE, ACTIVE_EXTENSION, COMPUTER }
enum WeaponKind { PLASMA, MACHINE_GUN, LASER, MISSILE }
@export var item_id: String = ""
@export var display_name: String = ""
@export var icon: Texture2D
@export var category: Category = Category.ENGINE
@export_multiline var description: String = ""
@export var primary_stat: String = ""
@export var primary_value: float = 0.0
@export var stat_suffix: String = ""
@export var energy_regeneration_bonus: float = 0.0
@export var weapon_kind: WeaponKind = WeaponKind.PLASMA
@export var fire_interval: float = 0.25
@export var weapon_cooldown: float = 0.0
@export var missile_homing: bool = true
@export var laser_pulse_duration: float = 0.08
@export var projectile_speed: float = 0.0
@export var weapon_range: float = 0.0
@export var energy_cost: float = 0.0
@export_range(0.0, 1.0, 0.05) var energy_damage_exponent: float = 0.5
@export_range(0.0, 1.0, 0.01) var energy_per_addon: float = 0.05
@export var active_ability: ActiveAbility
@export_group("Losowanie zakresu obrażeń broni (poziom 1)")
@export_range(1, 10000) var damage_lower_roll_min: int = 1
@export_range(1, 10000) var damage_lower_roll_max: int = 4
@export_range(1, 10000) var damage_spread_roll_min: int = 2
@export_range(1, 10000) var damage_spread_roll_max: int = 4