RAIDER_Survivor/scripts/Weapon.gd
2025-02-23 22:21:44 +01:00

26 lines
617 B
GDScript

class_name Weapon extends Node3D
var stats: WeaponStats
var attachments: Array[Attachment]
func init_weapon(stats: WeaponStats):
self.stats = stats;
func attach(newAttachment: Attachment)-> void:
attachments.append(newAttachment)
func unattach(attachmentToRemove: Attachment)-> void:
attachments.erase(attachmentToRemove)
func get_damage()->int:
var damage = stats.damage
for attachment in attachments:
damage += attachment.stats.damage
return damage
func get_fire_rate()->int:
var fire_rate = stats.fire_rate
for attachment in attachments:
fire_rate += attachment.stats.fire_rate
return fire_rate