From 7a1d857de96174dfa5a0fa40f8c14acbd2f651c2 Mon Sep 17 00:00:00 2001 From: Anson Bridges Date: Sun, 25 Sep 2022 06:39:12 -0400 Subject: weapons, viewmodels, some performance fixes --- godot/scenes/weapons/hands.gd | 46 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 godot/scenes/weapons/hands.gd (limited to 'godot/scenes/weapons/hands.gd') diff --git a/godot/scenes/weapons/hands.gd b/godot/scenes/weapons/hands.gd new file mode 100644 index 0000000..567ff85 --- /dev/null +++ b/godot/scenes/weapons/hands.gd @@ -0,0 +1,46 @@ +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 -- cgit v1.2.3