class_name Modifier extends Resource

enum ModifierType {
    ADDITIVE, # Simply adds values (e.g., +5 damage)
    MULTIPLICATIVE, # Multiplies by a percentage (e.g., 20% more damage)
    OVERRIDE, # Completely replaces the value
    CONDITIONAL # Applies under certain conditions
}

@export var id: String
@export var display_name: String
@export var description: String
@export var icon: Texture
@export var rarity: int
@export var modifier_type: ModifierType = ModifierType.ADDITIVE
@export var priority: int = 0 # Higher priority modifiers apply first

# Called when the modifier is added to a weapon or ability
func on_equip(_owner) -> void:
	pass

# Called when the modifier is removed
func on_unequip(_owner) -> void:
	pass
    
# Override in child classes for specific modification logic
func modify_projectile(_projectile) -> void:
	pass
    
func modify_ability(_ability) -> void:
	pass