42 lines
1.7 KiB
GDScript
42 lines
1.7 KiB
GDScript
extends Resource
|
|
class_name ItemDefinition
|
|
|
|
enum Category { WEAPON, SHIELD, ARMOR, REACTOR, ENGINE, ACTIVE_EXTENSION, COMPUTER, CONSUMABLE }
|
|
enum WeaponKind { PLASMA, MACHINE_GUN, LASER, MISSILE, GAMMA }
|
|
|
|
func get_damage_type() -> int:
|
|
if damage_type_override >= 0: return damage_type_override
|
|
return DamageTypes.for_weapon(weapon_kind)
|
|
|
|
@export var item_id: String = ""
|
|
@export var orb_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 weapon_effect: String = ""
|
|
@export var damage_type_override: int = -1
|
|
@export var ammunition_cost: int = 1
|
|
@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 var passive_effect: String = ""
|
|
|
|
@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
|