Untitled
Anonymous
plain_text
02/18/2026 2:36 AM
11.7 KB
12
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 wrong_count := 0
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)
var intro := _escalate_intro()
dialogue_ui.show_dialogue(
"Ibolya néni",
intro,
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:
wrong_count += 1
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:
_wrong_loop("„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:
_wrong_loop("„Ne humorizáljon.”\n„A vicceskedéssel jutnak be a betörők is az épületbe.”\n„Próbáld újra.”")
2:
_wrong_loop("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:
wrong_count += 1
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:
_wrong_loop("„Az élet halad.”\n„Igen.”\n„De mindjárt megállítom én magának..”\n„Próbáljd újra.”")
3:
_wrong_loop("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:
wrong_count += 1
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:
_wrong_loop("„É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:
_wrong_loop("„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:
_wrong_loop("„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:
_wrong_loop("„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:
_midpoint_to_key("Csak menne.\n„Na így nem.”\n„Itt minden mozgásnak oka van.”\n„Próbáld újra.”")
# --------------------------
# Midpoint -> Key offer
# --------------------------
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:
_wrong_loop("„A név mindig szóba kerül.”\n„Főleg, ha valaki azt hiszi, nem.”\n„Próbáld újra.”")
3:
_wrong_loop("„Időben?”\n„Az mit jelent magánál?”\n„Próbáld újra.”")
# --------------------------
# Wrong loop helper
# --------------------------
func _wrong_loop(reply: String) -> void:
wrong_count += 1
var extra := _escalate_wrong_tag()
dialogue_ui.show_dialogue(
"Ibolya néni",
reply + "\n" + extra,
oldlady_portrait,
[
{"label": "Jó. Még egyszer."},
{"label": "És ha csak… elsuhanok?"}
]
)
_connect_choice_once(_wrong_loop_choice)
func _wrong_loop_choice(i: int) -> void:
_start_gate()
func _escalate_intro() -> String:
match wrong_count:
0:
return "„Na. Megjött.”\n„Akkor mondja, mit akar.”"
1:
return "„Jaj, már megint maga.”\n„Ez itt nem átjáróház.”"
2:
return "„Na, kezdjük újra.”\n„Maga szeret próbálkozni, látom.”"
_:
return "Már ott áll mintha oda lenne beépítve.\n„Megint.”\n„Kezdjük újra.”"
func _escalate_wrong_tag() -> String:
match wrong_count:
0:
return ""
1:
return "„Komolyan mondom, régen az ilyenért rászóltak az emberre.”"
2:
return "Na persze.\n„Ezt mesélje a közös képviselőnek.”"
3:
return "Valahol kattan a zár.\n„Hallja?”\n„Nem csak én vagyok már ébren.”"
_:
return "Elmosolyodik.\n„Én ráérek.”\n„1974 óta nem csinálok mást, csak várok.”"
# --------------------------
# 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