"""Minigames & gambling: slots, roulette, RPS, blackjack, heist, jailbreak. Auto-split from the original strings.py; edit strings here. """ from core.emoji import EMOJI as E __all__ = [ 'SLOTS_TIERS', 'ROULETTE', 'HEIST_STORY', 'HEIST_UI', 'BJ', 'JAILBREAK_UI', 'SLOTS_UI', 'RPS_UI', 'RPS_CHOICES', 'BJ_UI', ] # --------------------------------------------------------------------------- # /slots outcome strings (title, colour) # --------------------------------------------------------------------------- SLOTS_TIERS: dict[str, tuple[str, int]] = { "jackpot": (f"{E['TipiFIRE']} JACKPOT!!!", 0xF4C430), "triple": ("🎰 Kolmik!", 0x57F287), "pair": ("🎰 Paar", 0x99AAB5), "miss": (f"{E['TipICRY']} Ei Ă”nnestunud", 0xED4245), } # --------------------------------------------------------------------------- # /roulette outcome strings # --------------------------------------------------------------------------- ROULETTE: dict = { "emoji": {"punane": "🔮", "must": "⚫", "roheline": "🟱"}, "genitive": {"punane": "punase", "must": "musta", "roheline": "rohelise"}, "win_title": "{emoji} VĂ”itsid!", "lose_title": "{emoji} Kaotasid!", "win_desc": "Ratas peatus **{genitive}** peal!{mult}\n+{change}\nSaldo: {balance}", "lose_desc": "Ratas peatus **{genitive}** peal.\n-{change}\nSaldo: {balance}", "spin_title": "🎰 Ratas keerleb...", "spin_stop": "🎰 Ratas peatub...", "spin_strip": "{s0} {s1} {s2} {s3} {s4}", } # --------------------------------------------------------------------------- # /heist narrative story lines # Placeholders: {leader}, {member}, {names}, {vehicle} # --------------------------------------------------------------------------- HEIST_STORY: dict = { "vehicles": [ "Ć koda", "BMW", "Lada", "Mazda", ], "arrival": [ "{leader} keerab nurga taga {vehicle} mootori kinni. Maskid ette. Keegi ei rÀÀgi.", "{vehicle} peatub ĂŒhe kvartali kaugusel sihtmĂ€rgist. {leader}: *\"Pank on seal. Tegutseme plaani jĂ€rgi.\"*", "Meeskond astub {vehicle}st vĂ€lja. {leader} kuulab kĂ”rvamonitori. *\"Kaks valvurit, ĂŒks pimeala. Liigume nĂŒĂŒd.\"*", "{leader} jĂ€lgib {vehicle}st sissepÀÀsu. *\"Valvurite vahetus 40 sekundi pĂ€rast. See on meie ajaaken.\"*", "Kell 3 öösel. TĂ€nav on tĂŒhi. {vehicle} seisab vĂ€ljas tĂŒhikĂ€igul. {leader} tĂ”mbab maski ette.", "{vehicle} veereb aeglaselt vaiksesse pimedasse vahetĂ€navasse. {leader}: *\"Viimane kontroll. KĂ”ik valmis?\"*", "{leader} koputab armatuurlauale. *\"Kui midagi lĂ€heb valesti, me lahkume kohe.\"* Vaikus vastuseks.", "Tuul sahiseb mööda tĂŒhja tĂ€navat. {vehicle} uksed avanevad korraga.", "{member} kontrollib relva. {leader} vaatab kella. *\"Me oleme graafikus.\"*", "{vehicle} tuled kustuvad. Linn jÀÀb vaikseks. Nad liiguvad.", ], "entry_sneaky": [ "{member} tĂ”mbab kloonitud kaarti kĂŒlgukse juures. Lukk klĂ”psab hÀÀleta lahti.", "Meeskond libiseb sisse laadimisestakaadi kaudu, riietatud öisteks koristajateks.", "{leader} on kaks nĂ€dalat valvurite graafikut pĂ€he Ă”ppinud. Röövlid kĂ”nnivad sisse vahetuse ajal.", "VĂ”ltsitud alltöövĂ”tja kaardi abil saavad nad fuajeest lĂ€bi ilma lisakĂŒsimuseta.", "{member} lĂŒlitab vĂ€likaamerad sĂŒlearvutist vĂ€lja. {leader} kĂ”nnib sisse, nagu see oleks tema oma maja.", "{member} kasutab signaaliblokeerijat. HĂ€ired ei jĂ”ua kunagi sĂŒsteemi.", "{leader} avab ventilatsiooniluugi. *\"LĂ€heme ĂŒlevalt.\"*", "Turvamees haigutab. Sekund hiljem on ta seotud ja vaikselt nurka lohistatud.", "{member} sĂŒstib lukku mikrokaamera. Mehhanism kaardistatakse sekunditega.", ], "entry_loud": [ "{leader} lööb esiuksed lahti. *\"KÕIK PÕRANDALE - KOHE!\"*", "Esmalt suitsugranaadid. Selleks ajaks, kui suits vaibub, on meeskond juba sees.", "{leader} tulistab ĂŒhe lasu lakke. Haudvaikus. *\"Oleme siin seifi pĂ€rast! Kui teete koostööd, siis pÀÀsete elusana.\"*", "*\"Kui keegi ei liigu, ei saa keegi ka viga.\"* {leader} omab ruumi tĂ€ielikku tĂ€helepanu.", "{member} lĂŒkkab kilbist elektri vĂ€lja. Pimeduses juhib {leader} meeskonna mĂ€lu jĂ€rgi edasi.", "*\"See on rööv! KĂ”ik pikali!\"* {leader} hÀÀl kajab lĂ€bi saali.", "Alarm hakkab ulguma juba enne, kui nad tĂ€ielikult sisse jĂ”uavad.", "Klaas puruneb. Inimesed karjuvad. TĂ€ielik kaos.", ], "inside": [ "{names} liiguvad kiiresti lĂ€bi fuajee, sidudes turvamehi postide kĂŒlge kinni.", "{member} katab vĂ€ljapÀÀsud. {leader} suundub otse seifi poole.", "Üks kassapidajatest proovib kĂ€ivitada vaikset hĂ€iret, kuid {member} mĂ€rkab ta nihelemist ja peatab ta hoiatuslasuga.", "{leader} hoiab töötajad rahulikuna samal ajal, kui teised suunduvad alumisele korrusele.", "Turvakaamerad on tsĂŒklil. {names} on korrusel ĂŒksi.", "{member} kontrollib kellaaega. *\"Me oleme 30 sekundit ees.\"*", "{leader} annab kĂ€emĂ€rgi. Meeskond jaguneb ilma sĂ”nadeta.", "Koridor on tĂŒhi. Liiga tĂŒhi. {leader} peatub hetkeks.", "{names} liiguvad trepist alla, sammud summutatud.", "Üks uks on lukus. {member} avab selle sekundiga.", ], "vault": [ "Neljanda taseme ajalukuga seif. {member} tĂ”mbab puuri vĂ€lja. *\"Anna mulle kolm minutit.\"*", "{leader} vaatab seifi ust. *\"DĂŒnamiit.\"* Keegi ei vaidle.", "{member} ĂŒhendub seifi juhtpaneeliga. Vana tarkvara. ÜlevĂ”tmine vĂ”tab 90 sekundit.", "Seifil on kĂ€sikombinatsiooni lukk. Hea, et {leader} veetis kuu aega juhatajaga, teenides tema usaldust.", "{member} paigutab lĂ”hkeained. Meeskond astub tagasi. Üks kontrollitud plahvatus.", "{leader} teeb magnetlukule tĂŒhistuse. Nagu Ă”pikust vĂ”etud. Mehhanism annab jĂ€rgi.", "{member} higistab. *\"See pole standardlukk... anna mulle aega.\"*", "{leader} kuulab vastu seifi ust. *\"Sees on liikumisandur.\"*", "{member} lĂ”ikab lĂ€bi metallkihi nagu vĂ”id.", "AjurĂŒnnak. {leader} meenutab skeemi ja leiab nĂ”rga koha.", "{member} ĂŒhendab juhtmed ĂŒmber. SĂ€de. Vaikus. Lukk avaneb.", ], "vault_open": [ "Uks avaneb. Kuhi-kuhja jĂ€rel raha, pĂ”randast laeni. TĂ€pselt nagu plaanitud.", "*\"...jackpot.\"* {leader} piilub seifi sisse. Meeskond seisab hetkeks vaikuses.", "{member} hakkab kotte tĂ€is laduma. {leader} piilub juba vĂ€ljapÀÀsu poole.", "Puhas. Kiire. {names} on seifis ja tĂ€idavad kotte enne, kui tolm settib.", "Seif on lahti. {leader} vĂ”tab hinge. *\"Okei. Kottidesse ja liikuma.\"*", "{leader} naeratab esimest korda. *\"See oli seda vÀÀrt.\"*", "Raha lĂ”hn tĂ€idab Ă”hu. {member}: *\"VĂ”tame kĂ”ik.\"*", "{names} töötavad vaikides. Iga liigutus loeb.", "Kotid tĂ€ituvad kiiremini kui oodatud.", "{leader} pilk muutub tĂ”siseks. *\"Aeg otsas. Liigume.\"*", ], "police_inbound": [ "Raadio krĂ”biseb. *\"KĂ”ik ĂŒksused, relvastatud rööv Keskpangas-\"*", "VĂ€ljas on kuulda eemalt ulguvaid sireene. {leader}: *\"Meil on umbes neli minutit. Liikuma.\"*", "Punased ja sinised tuled vilguvad ĂŒlemistest akendest lĂ€bi. Varualarm kĂ€ivitati.", "Politsei helikopter skaneerib piirkonda proĆŸektoriga. Aken sulgub kiiresti.", "{member} kontrollib politsei skĂ€nnerit. *\"Nad teavad. Kolm ĂŒksust, kaks minutit eemal.\"*", "{member} kuulab raadiosidet. *\"Nad sulgevad kvartaleid.\"*", "Sireenid lĂ€henevad kiiremini kui plaanitud.", "Helikopteri valgus libiseb ĂŒle akna. Liiga lĂ€hedal.", ], "getaway_success": [ "Adrenaliin. {names} jooksevad {vehicle} juurde. KĂ”ik sees. {leader} keerab mootori kĂ€ima.", "{member} haarab roolist. {leader} on kĂ”rval. *\"LĂ€hme.\"* Rahulikult.", "{leader} libistab {vehicle} kĂ”rvalteed pidi minema. Sireen kaugel taga. Nad on kiiremad.", "Rohelised tuled. {vehicle} sĂ”idab vaikselt mööda parklas ootavast patrullautost. Keegi ei mĂ€rka.", "{member} nĂ€itab teed. {leader} sĂ”idab vaikselt lĂ€bi tagakvartali. KĂ€ed lĂ”dvad.", "{vehicle} rehvid vilisevad, kui nad pööravad kitsasse tĂ€navasse.", "{leader} sĂ”idab ilma tuledeta. Ainult mĂ€lu juhib teda.", "{member} vaatab kaarti. *\"Vasak, siis kohe parem!\"*", "Mootor möirgab. Nad kaovad öösse.", "{vehicle} libiseb lĂ€bi viimase rohelise tule.", ], "getaway_fail": [ "{names} jooksevad {vehicle} juurde. Sireenid igalt poolt.", "{member} haarab roolist. {leader} on kĂ”rval. *\"Mine! MINE!\"*", "{vehicle} kihutab tĂ€navale, kuid helikopteri valgusvihk osutab neile. KĂ”ik on nĂ€htaval.", "Kolm patrullautot jĂ”uavad nende taha. {member} vaatab ĂŒle Ă”la. *\"Nad on meil kannul.\"*", "Raadio krĂ”biseb. *\"SihtmĂ€rk kinnitatud. Blokeeri Liivalaia tĂ€nav.\"*", "{vehicle} ei kĂ€ivitu. {member}: *\"PĂ€riselt ka vĂ”i?!\"*", "{member} komistab teel autoni. Tal oli pael lahti tulnud", "{leader} avastab, et autot pole kuskil nĂ€ha. See pukseeriti Ă€ra." ], "escape_success": [ "{names} murravad lĂ€bi perimeetri enne vĂ€ravate sulgemist. Puhas pĂ”genemine.", "{leader} oli planeerinud kolm vĂ€ljumisteed. Vaja lĂ€ks ĂŒhte. {vehicle} kaob linna.", "Kahe kvartali kaugusel asuv peibutushĂ€ire tĂ”mbab ĂŒksused eemale. {names} on kadunud enne, kui keegi seifi kontrollib.", "Naelribad? Juba eemaldatud. Teeblokk? Vale tĂ€nav. {leader} mĂ”tles kĂ”igele.", "{vehicle} sĂ”idab maanteele nagu poleks midagi juhtunud. {leader} hingab esimest korda tunnis vĂ€lja.", "*\"Oleme vabad.\"* {member} piilub kardinate tagant vĂ€lja. TĂŒhi tĂ€nav. Nad tegid Ă€ra.", "{names} kaovad sĂŒgavale linna nagu neid poleks kunagi olnud.", "Raadio jÀÀb vaikseks. Keegi ei jĂ€lita enam.", "{vehicle} jĂ€etakse maha. Uus plaan aktiveerub.", "{leader}: *\"See oli liiga lihtne...\"*", ], "escape_fail": [ "Patrullauto lĂ”ikab {vehicle} teekonna sillal Ă€ra. MĂ”lemalt poolt ĂŒmbritsetud. Ongi lĂ€bi.", "{member} kukutab koti. Kolm sekundit kĂ”hklust - ja uksed on ĂŒmber piiratud.", "Helikopter jĂ€lgib neid kuni pelgupaigani. KĂ”ik vĂ€ljapÀÀsud on kaetud.", "{leader} arvutab vĂ”imalusi. *\"VĂ€ljapÀÀsu pole.\"* KĂ€ed lĂ€hevad ĂŒles.", "Naelribad lĂ”huvad {vehicle} rehvid. Meeskond libiseb liikluse keskele seisma.", "{vehicle} pĂ”rkub vastu teetĂ”ket. Mootor sureb. Igast suunast tuled.", ], } # --------------------------------------------------------------------------- # /heist UI strings # --------------------------------------------------------------------------- HEIST_UI: dict[str, str] = { "names_duo": "**{a}** ja **{b}**", "names_sep": " & ", "names_crew": "**{leader}** ja meeskond", "btn_join": "Ühine röövimisega đŸ”«", "btn_start": "Alusta kohe ▶", "already_joined": "Sa oled juba sees!", "only_organizer": "Ainult heisti algataja saab heisti alustada.", "lobby_desc": "**Osalejad ({n}/{max}):**\n{names}\n\nÕnnestumise tĂ”enĂ€osus: **{chance}%**\n\n*Ühinemisaken sulgub *", "cancel_desc": "Ei piisanud osalejaid (vajad vĂ€hemalt **{min}**). Heist tĂŒhistati.", "started_title": "đŸ”« Grupirööv kĂ€ib...", "started_desc": "**{n}** osalejat alustasid heisti. JĂ€lgi allpool!", "story_title": "đŸ”« Grupirööv", "win_desc": "**Osalejad:**\n{names}\n\nSaak jagati vĂ”rdselt.\n**IgaĂŒks sai: +{payout}**", "fail_desc": "**Osalejad:**\n{names}\n\nKĂ”ik osalejad saavad **1,5 tundi vangi** + trahv ~15% saldost.", } # --------------------------------------------------------------------------- # Blackjack in-game strings # --------------------------------------------------------------------------- BJ: dict[str, str] = { "dealing": "*Jagame kaardid...*", "result_field": "Tulemus", "push_result": "±0 (panus tagasi)", "doubled_label": "💰 *Topeltpanus: {total}*", "btn_hit": "🃏 VĂ”ta kaart", "btn_stand": "✋ Seisa", "btn_double": "💰 Kahekordista (+{bet}⏥)", "btn_split": "✂ Split (+{bet}⏥)", } # --------------------------------------------------------------------------- # /jailbreak UI strings # --------------------------------------------------------------------------- JAILBREAK_UI: dict[str, str] = { "btn_roll": "đŸŽČ Viska tĂ€ringud ({try_}/{max})", "rolling_desc": f"{E['TipiDICE']} *TĂ€ringud lendavad...*", "free_desc": "{d1} {d2}\n\n✅ Viskasid duubli - pÀÀsesid vanglast!", "miss_desc": "{d1} {d2}\n\n{left} katset jÀÀnud. Proovi uuesti!", "intro_desc": "Oled vangis kuni {ts}.\n\nViska tĂ€ringuid ja proovi **duublit** saada - siis pÀÀsed tasuta vabaks!\nSul on **{tries} katset**. EbaĂ”nnestumisel saad valida: maksa kautsjon **(20–30% saldost, min 350 ⏥)** vĂ”i jÀÀ vanglasse kuni aja lĂ”puni.", "already_bail": "Oled juba tĂ€ringuid visanud. Ainuke vĂ€ljapÀÀs on kautsjon.\n\n💰 **Kautsjon: {min} – {max}** (20–30% saldost)\nSaldo: {bal} VĂ€ljas: {ts}", "already_broke": "Oled juba tĂ€ringuid visanud. Sul pole piisavalt raha kautsjoni maksmiseks.\n\n💰 Kautsjoni miinimum: **{min}** - sul on ainult {bal}\nVĂ€ljas: {ts}", "bail_btn": "💾 Maksa kautsjon", "bail_broke_desc": "❌ Sul pole piisavalt raha (min {min}).\nJÀÀd vanglasse kuni aja lĂ”puni! Saldo: {balance}", "bail_paid_desc": "✅ Kautsjon makstud: **{fine}**\nOled vaba! Saldo: {balance}", "bail_already_free": "✅ Oled juba vaba - kautsjonit ei vĂ”etud. Saldo: {balance}", "fail_broke_desc": "{d1} {d2} - ei olnud duubel\n\n❌ Sul pole kautsjoni maksmiseks piisavalt raha (min 350 ⏥).\nJÀÀd vanglasse kuni aja lĂ”puni! Saldo: {balance}", "fail_bail_desc": "{d1} {d2} - ei olnud duubel\n\nKautsjon makstud: **{fine}**\nSaldo: {balance}", "fail_bail_offer": "{d1} {d2} - ei olnud duubel\n\n💰 **Kautsjon: {min} - {max}** (20-30% saldost)\nSaldo: {bal}\n\nSaad maksta kautsjoni vĂ”i jÀÀda vanglasse kuni aja lĂ”puni.", } # --------------------------------------------------------------------------- # /slots additional UI strings (titles/footers per outcome) # --------------------------------------------------------------------------- SLOTS_UI: dict[str, str] = { "playing": "🎰 MĂ€ngimas...", "jackpot_footer": E["TipiKARIKAS"] + " Kolm karikat! +{change}", "triple_footer": "✅ Kolm ĂŒhesugust! +{change}", "pair_footer": "Kaks ĂŒhesugust! +{change}", "miss_footer": "-{amount}", "balance_line": "\nSaldo: {balance}", } # --------------------------------------------------------------------------- # /rps UI strings # --------------------------------------------------------------------------- RPS_UI: dict[str, str] = { "vs_bot_desc": "Tee oma valik! âŹ‡ïž", "vs_bot_bet": "\nPanus: {bet}", "result_tie": "đŸ€ Viik!", "result_win": "🎉 Sina vĂ”itsid!", "result_lose": "đŸ€– Bot vĂ”itis!", "result_desc": "Sina: {player_pick} {player_name}\nBot: {bot_pick} {bot_name}\n\n**{result}**{bet_line}", "bet_win": "\n+{amount} · Saldo: {balance}", "bet_lose": "\n-{amount} · Saldo: {balance}", "bet_tie": "\nViik - panus tagasi · Saldo: {balance}", "challenge_desc": "{challenger} kutsub vĂ€lja {opponent}{bet}\n\n{opponent}, kas vĂ”tad vastu? âŹ‡ïž", "challenge_bet": " · Panus: {bet}", "challenge_footer": "VĂ€ljakutse aegub 60 sekundi pĂ€rast", "duel_active_desc": "{a} vs {b}{bet}\n\nMĂ”lemad mĂ€ngijad valivad DM-is. ⏳", "duel_active_bet": " · Panus: {bet}", "duel_dm": "⚔ **KPK vs {opponent}**{bet}\nTee oma valik! âŹ‡ïž", "duel_dm_bet": "\nPanus: {bet}", "duel_waiting": "Valisid {choice} **{name}**. Ootame vastase valikut... ⏳", "duel_result_a": "**⚔ KPK tulemus vs {opponent}**\nSinu valik: {pick_a} {name_a}\nVastase valik: {pick_b} {name_b}\n\n**{result}**{bet_line}\nSaldo: {balance}", "duel_verdict_win": "🏆 **{name}** vĂ”itis!", "duel_verdict_tie": "đŸ€ Viik!", "duel_broke": "\n⚠ Makse ebaĂ”nnestus (ebapiisav saldo)", "duel_expire_dm": "⏰ KPK duell aegus - keegi ei teinud valikut Ă”igeaegselt.", "duel_expire_desc": "{a} vs {b}\n\nMĂ€ng aegus - valik jĂ€i tegemata.", "duel_dm_fail": "Ei saanud DM saata: **{names}**. Kontrolli privaatsussĂ€tteid.", "duel_decline": "**{name}** keeldus vĂ€ljakutsest.", "duel_no_answer": "**{name}** ei vastanud vĂ€ljakutsele.", "duel_insufficient": "{mention}-l pole piisavalt TipiCOINi panuseks.", "duel_done_desc": "{a} {pick_a} vs {pick_b} {b}\n\n**{verdict}**\n\n{name_a}: {bal_a}\n{name_b}: {bal_b}", "server_only": "Seda kĂ€sku saab kasutada ainult serveris.", "btn_accept": "VĂ”ta vastu ✅", "btn_decline": "Keeldu ❌", "btn_rock": "đŸȘš Kivi", "btn_paper": "📄 Paber", "btn_scissors": "✂ KÀÀrid", } RPS_CHOICES: dict[str, str] = { "đŸȘš": "Kivi", "📄": "Paber", "✂": "KÀÀrid", } BJ_UI: dict[str, str] = { "dealer": "Dealer", "player": "Sina", "hand_n": "KĂ€si {n}", "hand_active": "▶ **KĂ€si {n}**", "hand_pending": "KĂ€si {n} *...*", "bust": " đŸ’„", "balance_line": " · Saldo: {balance}", }