extends Node3D class_name Weapon var equipped_by: Player @export var weapon_name: String @export var input_to_state: Dictionary @export var base_damage: int = 0 @export var is_parryable: bool = false # TODO: should be relative to the object being hit @export var energy_return_on_hit: float = 0 @onready var model: WeaponModel = $Model var collision_layer: int = 1: set(i): collision_layer = i model.set_collision_layer(collision_layer) get: return collision_layer var collision_mask: int = 1: set(i): collision_mask = i model.set_collision_mask(collision_mask) get: return collision_mask var is_attacking: bool = false: set(b): is_attacking = b model.set_attacking(is_attacking) get: return is_attacking func translate_combat_actions_to_states(input: InputPacket): var states := [] if not input.player_combat_actions.is_empty(): for action in input.player_combat_actions: if input_to_state.get(action): states.append(input_to_state[action]) return states func reset(): is_attacking = false model.reset()