class_name ActionData extends Resource @export var id: StringName @export var display_name: String @export var input_pattern: Array[StringName] = [] @export var base_cost := 0.0 @export var base_reward := 0.0 @export var damage_mult := 1.0 @export var move_mult_x := 0.0 @export var move_mult_y := 0.0 @export var knockback_mult_x := 0.0 @export var knockback_mult_y := 0.0 @export var hit_type: StringName = &"melee" @export var range := 0.0 @export var target_type: StringName = &"single" @export var armor_level := 0 @export var clear_window := true @export var can_chain := false @export var special: StringName = &"" @export var startup_beats := 0.25 @export var active_beats := 0.25 @export var recovery_beats := 0.5 @export_range(0.0, 1.0, 0.05) var cancel_from := 0.5 @export var allowed_ground_states: Array[StringName] = [&"Grounded", &"Airborne"] @export var allowed_action_phases: Array[StringName] = [&"Neutral"] @export var action_tags: Array[StringName] = [] @export var defense_tags: Array[StringName] = [] @export var cancel_into_tags: Array[StringName] = [] @export var on_hit_effects: Array[Resource] = [] @export var animation: StringName var action_beats: float: get: return startup_beats + active_beats + recovery_beats