69 lines
1.6 KiB
GDScript
69 lines
1.6 KiB
GDScript
extends Node2D
|
|
|
|
signal destroySignal (body)
|
|
var levels=["res://scene/game.tscn", "res://scene/level2.tscn", "res://scene/level3.tscn"]
|
|
var currentlevel=0
|
|
var timers=[5, 15, 10]
|
|
var timeleft=0
|
|
|
|
var playercurrenthealth:int = 100
|
|
|
|
var enemiesdict = {}
|
|
|
|
signal levelchangesignal(level)
|
|
|
|
var timer = Timer.new()
|
|
|
|
func secondcounter()-> void:
|
|
timeleft -=1
|
|
if timeleft <=0:
|
|
print("YOU LOOOSSSTTT!!!!")
|
|
levelchangesignal.emit(levels[currentlevel])
|
|
|
|
func _ready() -> void:
|
|
reset()
|
|
get_window().grab_focus()
|
|
add_child(timer)
|
|
timer.wait_time=1
|
|
timer.one_shot = false
|
|
timer.connect("timeout", secondcounter)
|
|
timer.start()
|
|
|
|
func reset()->void:
|
|
timeleft = timers[currentlevel]
|
|
|
|
|
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
|
func _process(delta: float) -> void:
|
|
pass
|
|
|
|
|
|
func on_trigger(body: Variant, intentMessage: Variant) -> void:
|
|
if body.is_in_group("fragile") and intentMessage == "destroy":
|
|
destroySignal.emit(body)
|
|
|
|
func totalCube(NumberOfCube:int)->void:
|
|
print ("gameknowscubes: "+str(NumberOfCube))
|
|
if NumberOfCube <=0:
|
|
print("YOu won!!")
|
|
currentlevel +=1
|
|
if currentlevel >= levels.size():
|
|
currentlevel = 0
|
|
levelchangesignal.emit(levels[currentlevel])
|
|
|
|
func _on_slime_damage(_body,slime)->void:
|
|
print("owie:(")
|
|
print("doing damage: " +str(enemiesdict[slime]["damage"]))
|
|
playercurrenthealth -=enemiesdict[slime]["damage"]
|
|
if playercurrenthealth <=0:
|
|
print("u ded")
|
|
|
|
func addenemytolevel(slime)->void:
|
|
print("adding enemhy to level")
|
|
var randamage = randi_range(1,20)
|
|
var enemystat = {
|
|
"health":50000,
|
|
"damage":25
|
|
}
|
|
enemiesdict[slime]=enemystat
|