HighNoonRoulette/scripts/gun/gun.gd
2025-08-28 01:55:38 +02:00

40 lines
859 B
GDScript

class_name Gun extends Node
@onready var empty = preload("res://scripts/item/bullet/Empty/empty.gd")
const maxMagazineSize: int = 12
const minMagazineSize: int = 2
var magazineSize: int = 6
var loadedBullets: int = 0
var magazin: Array[Bullet]
var mainOwner: Player
func setOwner(_player: Player) -> void:
mainOwner = _player
func loadBullet(_bullet: Bullet):
if magazin.size() + 1 <= magazineSize:
magazin.append(_bullet)
func fillEmpty():
if magazin.size() < magazineSize:
for i in range(0, magazineSizeLeft()):
loadBullet(Empty.new())
func resetMagazine():
magazin = []
func getRandomBullet() -> Bullet:
fillEmpty()
var randomBullet = magazin.pick_random()
magazin.erase(randomBullet)
return randomBullet
func getBulletAmount() -> int:
return magazin.size()
func magazineSizeLeft() -> int:
return magazineSize - magazin.size()