extends Resource var player_owner: RigidBody = null const fist_damage: int = 15 var can_swing: bool = true var blocking: bool = false const name: String = "HANDS" func init(owner): player_owner = owner func deselect() -> bool: if can_swing and !blocking: return true return false func select() -> void: player_owner.rpc("anim_event", {"VMANIMPLAY" : "humanidle"}) func attack1(): if !can_swing or blocking: return can_swing = false player_owner.rpc("anim_event", {"VMANIMPLAY" : "humanpunch"}) yield(player_owner.get_tree().create_timer(0.45), "timeout") if player_owner.melee_ray.is_colliding(): var hit = player_owner.melee_ray.get_collider() player_owner.rpc("play_weapon_sound", "res://sounds/punch_generic.wav") if hit.has_method("damage"): hit.rpc("damage", fist_damage, "BLUNT", [player_owner.get_network_master(), player_owner.name], "using fists") if hit.has_method("net_apply_impulse"): hit.rpc("net_apply_impulse", -100*player_owner.melee_ray.global_transform.basis.z) yield(player_owner.get_tree().create_timer(0.55), "timeout") can_swing = true func mouse_input(_m1: float, _m3: float, m2: float) -> void: if m2 > 0 and !blocking and can_swing: blocking = true player_owner.rpc("anim_event", {"VMANIMPLAY" : "raise_fists"}) elif blocking and m2 == 0: blocking = false player_owner.rpc("anim_event", {"VMANIMPLAY" : "lower_fists"}) func can_pickup() -> bool: return !blocking and can_swing