Connect bear-save, massage, farm paywall, cheese catapults, Dressler hijack, final boss phases, fat-stim UI, and scene fixes so the satire path plays through.
52 lines
1.8 KiB
GDScript
52 lines
1.8 KiB
GDScript
extends Node3D
|
|
## Enddorf: Hausbau + Zahnionär. Kein Happy End.
|
|
|
|
func _ready() -> void:
|
|
GameState.current_scene_id = "end_screen"
|
|
GameState.heal_full()
|
|
var ui := get_node_or_null("/root/UIRoot")
|
|
if ui and ui.has_method("show_dialog"):
|
|
ui.show_dialog(Locale.tr_key("dialog_end_angry"), 4.0)
|
|
var house := get_node_or_null("HouseSpot")
|
|
if house and house.has_signal("interacted"):
|
|
house.interacted.connect(_on_house)
|
|
var dentist := get_node_or_null("DentistHeist")
|
|
if dentist and dentist.has_signal("interacted"):
|
|
dentist.interacted.connect(_on_heist)
|
|
if GameState.house_built or GameState.get_flag("house_built", false):
|
|
_show_house()
|
|
|
|
func _on_house(_n: Node = null) -> void:
|
|
GameState.house_built = true
|
|
GameState.set_flag("house_built", true)
|
|
_show_house()
|
|
var ui := get_node_or_null("/root/UIRoot")
|
|
if ui and ui.has_method("show_dialog"):
|
|
ui.show_dialog(Locale.tr_key("build_house"))
|
|
|
|
func _show_house() -> void:
|
|
var house := get_node_or_null("BuiltHouse")
|
|
if house:
|
|
house.visible = true
|
|
return
|
|
var scene: PackedScene = load("res://scenes/prefabs/npc.tscn")
|
|
if scene == null:
|
|
return
|
|
var h: Node3D = scene.instantiate()
|
|
h.name = "BuiltHouse"
|
|
add_child(h)
|
|
h.global_position = Vector3(3, 0.1, -2)
|
|
h.set("texture_path", "res://assets/sprites/placeholders/house.png")
|
|
h.set("dialog_key", "build_house")
|
|
var bill = h.get_node_or_null("BillboardSprite")
|
|
if bill and bill.has_method("set_texture"):
|
|
var tex: Texture2D = load("res://assets/sprites/placeholders/house.png")
|
|
if tex:
|
|
bill.set_texture(tex)
|
|
|
|
func _on_heist(_n: Node = null) -> void:
|
|
Inventory.add_item("tooth", 100)
|
|
Achievements.unlock("tooth_millionaire")
|
|
var ui := get_node_or_null("/root/UIRoot")
|
|
if ui and ui.has_method("show_dialog"):
|
|
ui.show_dialog(Locale.tr_key("dialog_toothionaire"), 4.0)
|