aprilGame/scripts/scenemanager.gd

51 lines
1.5 KiB
GDScript3
Raw Normal View History

2026-04-28 01:08:27 +00:00
class_name SM extends Node2D
2026-05-11 19:59:05 +00:00
var grenade = preload("res://scene/grenade.tscn")
2026-04-28 01:08:27 +00:00
@onready var cube_container: Node2D = $"../cube container"
2026-05-26 01:04:07 +00:00
@onready var enemies: Node2D = $"../enemies"
2026-04-28 01:08:27 +00:00
func _ready() -> void:
2026-05-26 01:04:07 +00:00
gameController.reset()
gameController.destroySignal.connect(destroy)
2026-04-28 01:08:27 +00:00
buildLevel()
2026-05-26 01:04:07 +00:00
gameController.levelchangesignal.connect(changescene)
2026-04-28 01:08:27 +00:00
func buildLevel()->void:
updateCube()
2026-05-26 01:04:07 +00:00
if enemies:
updateenemies()
func updateenemies()->void:
var totalenemies = 0
for obj in enemies.get_children():
if obj is slime:
totalenemies +=1
if not obj.slimedamagesignal.is_connected(gameController._on_slime_damage):
obj.slimedamagesignal.is_connected(gameController._on_slime_damage)
gameController.addenemytolevel(obj)
2026-04-28 01:08:27 +00:00
func destroy(body)->void:
if body is Cube:
body.queue_free()
func updateCube()->void:
# make sure there are crates
var _CubeTotal:int= 0
if cube_container:
for obj in cube_container.get_children():
if obj is Cube:
if not obj.tree_exited.is_connected(updateCube):
obj.tree_exited.connect(updateCube)
_CubeTotal +=1
print ("Number of cubes: "+str(_CubeTotal))
2026-05-26 01:04:07 +00:00
gameController.totalCube(_CubeTotal)
2026-04-28 01:08:27 +00:00
func makeGrenade(_grenadeposition, _grenadedirection)->void:
print("grenade time")
var myGrenade:grenade = grenade.instantiate()
owner.add_child(myGrenade)
myGrenade.transform = _grenadeposition
myGrenade.apply_central_impulse(Vector2(_grenadedirection, -1)*400)
2026-05-26 01:04:07 +00:00
func changescene(level)->void:
get_tree().call_deferred("change_scene_to_file",level)