2026-04-28 01:08:27 +00:00
|
|
|
class_name SM extends Node2D
|
2026-05-05 01:00:45 +00:00
|
|
|
|
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
|
|
|
|
2026-05-05 01:00:45 +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)
|