Untitled
Anonymous
plain_text
02/18/2026 2:44 AM
10.6 KB
9
Indexable
extends Node2D
@export var oldlady_portrait: Texture2D
var dialogue_ui
var note_ui
var fade_rect
var main_ref
@onready var player = $Player
@onready var oldlady = $OldLady
var has_key := false
func bind_ui(d, n, f, m) -> void:
dialogue_ui = d
note_ui = n
fade_rect = f
main_ref = m
func _ready() -> void:
oldlady.interacted.connect(_on_oldlady_interacted)
# -------------------------------------------------
# Choice connection helper (prevents double replies)
# -------------------------------------------------
func _connect_choice_once(handler: Callable) -> void:
if dialogue_ui == null:
push_error("Corridor_Gang: dialogue_ui is null (bind_ui not called?)")
return
if dialogue_ui.choice_selected.is_connected(handler):
dialogue_ui.choice_selected.disconnect(handler)
dialogue_ui.choice_selected.connect(handler, CONNECT_ONE_SHOT)
# --------------------------
# Entry point
# --------------------------
func _on_oldlady_interacted() -> void:
_start_gate()
func _start_gate() -> void:
player.set_can_move(false)
dialogue_ui.show_dialogue(
"Ibolya néni",
"„Na. Megjött.”\n„Akkor mondja, mit akar.”",
oldlady_portrait,
[
{"label": "Jó reggelt."},
{"label": "Sietek."},
{"label": "Itt lakom."},
{"label": "Csak észrevétlenül távoznék."}
]
)
_connect_choice_once(_gate_choice)
func _gate_choice(index: int) -> void:
match index:
0: _branch_good_morning()
1: _branch_hurry()
2: _branch_i_live_here()
3: _branch_leave_unnoticed()
# --------------------------
# Branches (each gives a reply + new choices)
# --------------------------
func _branch_good_morning() -> void:
dialogue_ui.show_dialogue(
"Ibolya néni",
"„Jó reggelt?”\nMegforgatja a szót, mintha méreg lenne.\n„Minden reggelt, ami Isten kegyelmével életben találja az embert ki kell érdemelni.”\n„Indokolja meg, miért tartózkodik a folyosón.”",
oldlady_portrait,
[
{"label": "Itt lakom?"},
{"label": "A sarokban levő növény egész éjjel magához szólított."},
{"label": "Elfogyott odabent a levegő."},
{"label": "Takarítani jöttem a folyosó közös részét. De előtte dolgom van."}
]
)
_connect_choice_once(_good_morning_choice)
func _good_morning_choice(i: int) -> void:
match i:
0:
_return_to_gate("„Attól még hogy itt van egy ideje, ez nem biztos.”\n„Lakcímkártyát láttam már. Embert kevesebbet.”\n„Próbáld újra.”")
1:
_return_to_gate("„Ne humorizáljon.”\n„A vicceskedéssel jutnak be a betörők is az épületbe.”\n„Próbáld újra.”")
2:
_return_to_gate("A LEVEGŐ??\n“A levegő is társasházi tulajdon, remélem tudja.”\n“Próbáld újra.”")
3:
_midpoint_to_key("„Dolga.”\nBólint, mint aki jegyzőkönyvet vezet fejben.\n„Sorolja fel. Pontosan. Időrendben.”")
# --------------------------
# Hurry branch
# --------------------------
func _branch_hurry() -> void:
dialogue_ui.show_dialogue(
"Ibolya néni",
"„Siet?”\nFelhúzza a szemöldökét.\n„A sietség a hibák melegágya.”\n„És a hibák mindig valakinél landolnak.”\n„Mi ennyire sürgős?”",
oldlady_portrait,
[
{"label": "A busz nem vár meg."},
{"label": "Időre megyek."},
{"label": "Az élet halad."},
{"label": "Nem akarok beszélgetni."}
]
)
_connect_choice_once(_hurry_choice)
func _hurry_choice(i: int) -> void:
match i:
0:
_midpoint_to_key("„A busz.”\n„A busz menetrend szerint jár.”\n„Az ember ritkán.”\n„Melyik?”")
1:
_midpoint_to_key("„Idő.”\n„Az idő relatív.”\n„A számonkérés nem.”\n„Hova?”")
2:
_return_to_gate("„Az élet halad.”\n„Igen.”\n„De mindjárt megállítom én magának..”\n„Próbáljd újra.”")
3:
_return_to_gate("Megdermed.\n„A beszélgetés közösség.”\n„A közösség erő.”\n„Ne gyengítse.”\n„Próbálja újra.”")
# --------------------------
# Live here branch
# --------------------------
func _branch_i_live_here() -> void:
dialogue_ui.show_dialogue(
"Ibolya néni",
"„Itt lakik.”\nÖsszeszűkíti a szemét.\n„Mondjon egy dolgot, amit csak az tud, aki valóban itt él.”",
oldlady_portrait,
[
{"label": "A félemeleti építkezés csak legenda."},
{"label": "A lépcsőháznak saját szaga van."},
{"label": "Mindig van szórólap, amit senki nem olvas."},
{"label": "Az előtér a pletyka epicentruma."}
]
)
_connect_choice_once(_live_here_choice)
func _live_here_choice(i: int) -> void:
match i:
0:
_return_to_gate("„Építik azt.”\n„De hogy be is fejezik-e?..”\n„Próbáld újra.”")
1:
_midpoint_to_key("Mélyet szippant a levegőbe.\n„Igen.”\n„Enyhe töltött káposzta, por és üvegvisszaváltás.”\n„Rendben.”\n„Mi a terve ma?”")
2:
_return_to_gate("„A szórólapok figyelnek.”\n„Az érdeklődés az első lépés a bűnözés felé.”\n„Próbáld újra.”")
3:
_return_to_gate("„A pletyka intézmény.”\n„Nem játék.”\n„Próbáld újra.”")
# --------------------------
# Leave quietly branch
# --------------------------
func _branch_leave_unnoticed() -> void:
dialogue_ui.show_dialogue(
"Ibolya néni",
"„Észrevétlenül?”\nLassan végigmér.\n„Ebben a házban semmi nem észrevétlen.”\n„Még a huzatnak is neve van.”\n„Mit akar, hogy ne vegyenek észre?”",
oldlady_portrait,
[
{"label": "Hogy sietek."},
{"label": "Hogy hogy nincs kedvem beszélgetni."},
{"label": "Csak hogy leugrom a boltba."},
{"label": "Semmit. Csak nem akarok jelentős lenni."}
]
)
_connect_choice_once(_unnoticed_choice)
func _unnoticed_choice(i: int) -> void:
match i:
0:
_return_to_gate("„Siet.”\n„Mindig mindenki siet.”\n„Aztán visszajönnek ide panaszkodni. Hova siet ennyire?”")
1:
_midpoint_to_key("Nincs kedve beszélgetni?\n„Az baj.”\n„A közösség nem kívánságműsor.”\n„Hova megy ilyen nagy hallgatással?”")
2:
_midpoint_to_key("„Boltba.”\n„Melyikbe?”\n„Ne mondja, hogy mindegy.”")
3:
_return_to_gate("Csak menne.\n„Na így nem.”\n„Itt minden mozgásnak oka van.”\n„Próbáld újra.”")
# --------------------------
# Return-to-gate helper (no escalating)
# --------------------------
func _return_to_gate(reply: String) -> void:
dialogue_ui.show_dialogue(
"Ibolya néni",
reply,
oldlady_portrait,
[
{"label": "Jó. Még egyszer."},
{"label": "Vissza."}
]
)
_connect_choice_once(_return_choice)
func _return_choice(i: int) -> void:
_start_gate()
# --------------------------
# Midpoint -> Final question (properly chained)
# --------------------------
func _midpoint_to_key(prompt: String) -> void:
dialogue_ui.show_dialogue(
"Ibolya néni",
prompt + "\nKözelebb hajol.\n„Utolsó kérdés.”\n„És most ne játsszon.”",
oldlady_portrait,
[
{"label": "Nem hozok fel senkit"},
{"label": "Nem lesz zaj."},
{"label": "Nem kerül szóba a nevem."},
{"label": "Visszajövök időben."}
]
)
_connect_choice_once(_final_question_choice)
func _final_question_choice(i: int) -> void:
match i:
0:
_grant_key()
1:
_grant_key()
2:
_return_to_gate("„A név mindig szóba kerül.”\n„Főleg, ha valaki azt hiszi, nem.”\n„Próbáld újra.”")
3:
_return_to_gate("„Időben?”\n„Az mit jelent magánál?”\n„Próbáld újra.”")
# --------------------------
# Grant key
# --------------------------
func _grant_key() -> void:
if has_key:
dialogue_ui.show_dialogue(
"Ibolya néni",
"„Maga ezt már megkapta.”\n„Menjen. Mielőtt meggondolom.”",
oldlady_portrait,
[]
)
player.set_can_move(true)
return
has_key = true
dialogue_ui.show_dialogue(
"Ibolya néni",
"Nagyot sóhajt, mintha valami megterhelőt kellett volna csinálnia.\n„Jól van.”\nA köténye zsebéből előhúz egy **kulcsot**.\n„Ne hagyja el.”\n„Ha elhagyja, én fogom megtalálni. Nem maga.”\n„Na menjen már. És ne csapja be az ajtót.”",
oldlady_portrait,
[]
)
player.set_can_move(true)
Editor is loading...
Leave a Comment