57 lines
1.6 KiB
GDScript
57 lines
1.6 KiB
GDScript
class_name Theke extends StaticBody2D
|
|
|
|
|
|
## FLAGS
|
|
var npc_on_counter:bool = false
|
|
var order_active:bool = false
|
|
|
|
signal set_ingrediant_list( order : Array[String] )
|
|
var produced_potion: Array[String]
|
|
var new_customer:NPC
|
|
|
|
|
|
func register_customer(customer:NPC)->void:
|
|
npc_on_counter = true
|
|
new_customer = customer
|
|
|
|
## hier ist die schnistselle zum spieler ??
|
|
func interaction_with_player(player:Player)->void:
|
|
if !npc_on_counter or new_customer == null:
|
|
print("nix zu Quatschen ")
|
|
return
|
|
|
|
if not order_active:
|
|
player_takes_order() # gebe es an game Scene
|
|
else:
|
|
player_deliverd_order(player)
|
|
|
|
## gebe die order an die game Scene um die Order UI zu aktiviren
|
|
func player_takes_order()->void:
|
|
order_active = true
|
|
set_ingrediant_list.emit(new_customer.active_order) # schike das in die game scen um es an dei gam UI weiter zu geben
|
|
|
|
func set_produced_potion(ingrediant_list:Array[String])->void:
|
|
produced_potion = ingrediant_list
|
|
|
|
|
|
func player_deliverd_order(player:Player)->void:
|
|
order_active = false
|
|
Global.add_served_customer()
|
|
if new_customer.active_order == produced_potion:
|
|
print("Richtige Portion abgegebn - speiler soll zurück laufen ")
|
|
Global.add_social_core(10) # kann man anpassen als progression
|
|
|
|
new_customer.happy_noise.play()
|
|
|
|
new_customer.walk_back() # statsu rein bringen
|
|
player.pickup_point.get_child(0).queue_free()
|
|
else:
|
|
print("Falsche Portion , kunde ist sauer ")
|
|
Global.reduce_social_core(45) # auch hier anpassen
|
|
|
|
new_customer.angry_noise.play()
|
|
|
|
new_customer.walk_back()
|
|
player.pickup_point.get_child(0).queue_free()
|
|
|