forked from OddlyTimbot/Sept26Game
week6 player enemy damage death cycle
This commit is contained in:
1 parent
c1bdb544a6
commit
ed7e5c4740
12 files changed
+306
-25
No files matched your search
@@ -2,12 +2,20 @@ class_name GameController extends Node2D
|
||||
|
||||
signal teleportSignal(body:RigidBody2D)
|
||||
signal destroySignal(body)
|
||||
signal damageSignal(body)
|
||||
|
||||
var numberOfCrates = 2
|
||||
var totalCoins = 0
|
||||
var coinsRemaining = 0
|
||||
var coinsCollected = 0
|
||||
|
||||
var enemiesDict={}
|
||||
var playerStats={
|
||||
"health": 100,
|
||||
"meleeDamage": 20,
|
||||
"rangeDamage": 20
|
||||
}
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready() -> void:
|
||||
get_window().grab_focus()
|
||||
@@ -29,11 +37,22 @@ func _on_trigger(effect: Variant, Object: Variant) -> void:
|
||||
if Object is Crate:
|
||||
teleportSignal.emit(Object)
|
||||
|
||||
func _on_bullet_hit(body, bullet) -> void:
|
||||
print("GC knows bullet hit")
|
||||
func _on_bullet_hit(body, bullet) -> void:
|
||||
if body is Crate:
|
||||
destroySignal.emit(body)
|
||||
destroySignal.emit(bullet)
|
||||
if body is Slime:
|
||||
#damage the slime
|
||||
enemiesDict[body]["health"] -= playerStats.rangeDamage
|
||||
if(enemiesDict[body]["health"] <=0):
|
||||
print("enemy dead")
|
||||
destroySignal.emit(body)
|
||||
destroySignal.emit(bullet)
|
||||
removeEnemyFromLevel(body)
|
||||
else:
|
||||
print("enemy damaged")
|
||||
destroySignal.emit(bullet)
|
||||
damageSignal.emit(body)
|
||||
|
||||
|
||||
func crateTotal(amount)->void:
|
||||
@@ -50,3 +69,27 @@ func coinCollected(body, coin)->void:
|
||||
#give them a coin
|
||||
coinsCollected +=1
|
||||
destroySignal.emit(coin)
|
||||
func slimeAttack(body, slime)->void:
|
||||
print("GC knows slime attacked player for "+str(enemiesDict[slime].meleeDamage))
|
||||
playerStats.health -= enemiesDict[slime].meleeDamage
|
||||
if playerStats.health <=0:
|
||||
#kill the player
|
||||
destroySignal.emit(body)
|
||||
else:
|
||||
#damage the player
|
||||
print("you took damage")
|
||||
damageSignal.emit(body)
|
||||
func addEnemyToLevel(enemy:Slime)->void:
|
||||
#make some stats for the bad guy
|
||||
var stats = {
|
||||
"health": 100,
|
||||
"meleeDamage": 10
|
||||
}
|
||||
#add em to a dictionary of enemies
|
||||
enemiesDict[enemy]=stats
|
||||
func removeEnemyFromLevel(enemy)->void:
|
||||
enemiesDict.erase(enemy)
|
||||
|
||||
func levelChange()->void:
|
||||
print("change levels (reload)")
|
||||
get_tree().reload_current_scene()
|
||||
Reference in new issue
Block a user