SeptemberGameAB/scripts/scene_manager.gd

35 lines
1.0 KiB
GDScript3
Raw Normal View History

class_name SceneManager
extends Node2D
var bullet = preload("res://scenes/bullet.tscn")
var grenade = preload("res://scenes/grenade.tscn")
var bullet_array = []
var total_allowed_bullets : int = 7
@onready var game: Node2D = $".."
func make_bullet(_bullet_position, _bullet_speed) -> void:
print("make a bullet; put it in the world")
var my_bullet = bullet_factory()
game.add_child(my_bullet)
my_bullet.transform = _bullet_position
my_bullet.set_speed(_bullet_speed)
func make_grenade(_grenade_position, _grenade_direction) -> void:
print("SM make a grenade")
var my_grenade : Grenade = grenade.instantiate()
game.add_child(my_grenade)
my_grenade.transform = _grenade_position
my_grenade.apply_central_impulse(Vector2(_grenade_direction, -1) * 200)
func bullet_factory() -> Bullet:
var my_bullet : Bullet
if bullet_array.size() < total_allowed_bullets:
# make a new bullet
my_bullet = bullet.instantiate()
game.add_child(my_bullet)
else:
my_bullet = bullet_array.pop_back()
bullet_array.push_front(my_bullet)
return my_bullet