inching towards better class inheritence and multiplayer compatibility

This commit is contained in:
2023-11-15 15:19:40 +11:00
parent f004f64b71
commit 1500c22ccc
204 changed files with 1920 additions and 1951 deletions

58
Scripts/Weapons/weapon.gd Normal file
View File

@ -0,0 +1,58 @@
extends Node3D
class_name Weapon
@export var stats : CardText
@export var animator : AnimationPlayer
var hero : Hero
var trigger_held := false
var second_trigger_held := false
var time_since_firing := 0.0
var time_between_shots := 0.0
var damage := 0.0
func _ready() -> void:
time_between_shots = stats.get_attribute("Fire Delay")
damage = stats.get_attribute("Damage")
func set_hero(value):
hero = value
func _process(delta: float) -> void:
if time_since_firing < time_between_shots:
time_since_firing += delta
func _physics_process(_delta: float) -> void:
if trigger_held and time_since_firing >= time_between_shots:
time_since_firing -= time_between_shots
shoot()
networked_shoot.rpc()
func hold_trigger():
trigger_held = true
func release_trigger():
trigger_held = false
func hold_second_trigger():
second_trigger_held = true
func release_second_trigger():
second_trigger_held = false
func shoot():
animator.play("shoot")
@rpc
func networked_shoot():
animator.play("shoot")