All checks were successful
release / build-release (push) Successful in 1m46s
- internal/progress: katalog (skills.json 12 noder, items.json 25 items) med validering; XP/nivåer (150·n(n+1)/2) och skillpoäng; skillträd med krav och kostnad; items per plats med buffar, genvägar (JR Pass, kartor, powerbank) och färgton; banresultat och upplåsning (huvudbanor i ordning, sidospår efter föräldern); 33 %-regeln som test - internal/save: versionerad JSON med kunskap, plånbok, debuffar, progression och pågående bana + seed; atomisk skrivning; migrering; ~/.config/metro-puzzle-jp/save.json resp. %AppData% - sim: RunOptions får Extra/FogRadius/Landmarks/FreeGates/RevealAll/ InfiniteBattery; luck påverkar trängselzonen; Fog.RevealAll och extra landmärken - game: bankarta i spelbrädesstil ersätter menyn (⟳ återupptar med sparad seed), skillträd (T), garderob (I), butik i kiosken (B), XP/nivå/items/ upplåsningar på resultatet, spelaren tonas av skins; autospar vid banstart, efter banan och vid köp; flaggor -save/-nosave - level: kind/order/parent/rewards/shop; ny sidobana 002b Kabukicho som belönar skinnet Kimono; 001 belönar Salaryman-skinnet; butikssortiment på 002/003 - tools/shots: demo-sparfil (build/, aldrig den riktiga), bilder av karta, skills, garderob och butik; alla körningar med -nosave - docs/README/wiki uppdaterade Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
186 lines
7.1 KiB
JSON
186 lines
7.1 KiB
JSON
{
|
||
"game.title": "Metro Puzzle JP",
|
||
"menu.start": "Start",
|
||
"menu.continue": "Continue",
|
||
"menu.endless": "Endless mode",
|
||
"menu.settings": "Settings",
|
||
"menu.quit": "Quit",
|
||
"hud.destination": "Destination",
|
||
"hud.next_train": "Next train",
|
||
"hud.card_balance": "Card balance",
|
||
"meter.food": "Food",
|
||
"meter.drink": "Drink",
|
||
"meter.toilet": "Toilet",
|
||
"meter.battery": "Battery",
|
||
"level.failed": "You missed too many trains…",
|
||
"level.cleared": "Arrived!",
|
||
"menu.choose_level": "Choose a level:",
|
||
"menu.hint": "Arrows/WASD: select Enter: start L: word list Esc: quit",
|
||
"hud.time": "Time",
|
||
"hud.steps": "Steps",
|
||
"hud.controls": "Esc: menu M: map",
|
||
"level.wrong_train": "Wrong train!",
|
||
"result.hint": "R: replay L: word list Enter/Esc: map",
|
||
"hud.card": "Card",
|
||
"hud.track": "Track",
|
||
"hud.next_train_in": "Next train in",
|
||
"hud.departs_in": "Departs in",
|
||
"hud.board": "Enter: board",
|
||
"hud.gate_denied": "Gate: card has no balance!",
|
||
"hud.sign": "Sign",
|
||
"result.wrong_detail": "You went to %s instead of %s.",
|
||
"result.gates": "Gates",
|
||
"result.card": "Card left",
|
||
"hud.japanese": "日本語",
|
||
"hud.words": "words",
|
||
"hud.track_suffix_ja": "番線",
|
||
"hud.for_ja": "方面",
|
||
"hud.english": "EN",
|
||
"hud.help_prompt": "H: ask someone for help (%.0f s)",
|
||
"hud.help_progress": "Asking a passer-by…",
|
||
"hud.learned": "New word",
|
||
"hud.revealed": "Translated",
|
||
"result.helps": "asked for help",
|
||
"result.par": "par",
|
||
"result.destination": "destination",
|
||
"hud.progress": "Progress",
|
||
"words.title": "Word list 言葉",
|
||
"words.points": "Points",
|
||
"words.hint": "Arrows: select Enter: learn the word for points Esc/L: back",
|
||
"words.already": "You already know that word.",
|
||
"words.bought": "New word: %s = %s",
|
||
"words.too_expensive": "Costs %d points - clear levels with good times for more.",
|
||
"urge.toilet": "needs the toilet (W)",
|
||
"urge.thirsty": "is thirsty (K)",
|
||
"urge.hungry": "is hungry (K)",
|
||
"urge.distracted": "got distracted…",
|
||
"hud.toilet_prompt": "Enter: toilet for %d person(s), %.0f s",
|
||
"hud.toilet_busy": "In the toilet…",
|
||
"hud.toilet_none": "Nobody needs the toilet right now.",
|
||
"hud.kiosk_prompt": "Enter: buy food/drink for %d person(s), %d¥",
|
||
"hud.kiosk_none": "Nobody is hungry or thirsty right now.",
|
||
"result.explored": "Explored",
|
||
"result.served": "served",
|
||
"hud.cash": "Cash",
|
||
"hud.phone": "Phone",
|
||
"hud.ticket": "Ticket",
|
||
"hud.machine_topup": "Enter: top up the card (card %d¥, cash %d¥)",
|
||
"hud.machine_ticket": "Enter: buy a ticket (cash %d¥)",
|
||
"hud.wrong_ticket": "This ticket is not valid for this train!",
|
||
"hud.need_ticket": "Gate: you need a ticket - buy one at the machine (T).",
|
||
"hud.phone_dead": "Gate: your phone is dead - buy a ticket instead.",
|
||
"hud.rescan": "Beep… scan again.",
|
||
"hud.missed_train": "You could not get on - the train left.",
|
||
"level.lost": "Level failed",
|
||
"result.lost_wrong_train": "Wrong train.",
|
||
"result.lost_wrong_stop": "You got off at the wrong station.",
|
||
"result.lost_missed_stop": "You rode past your destination.",
|
||
"result.spent": "Spent",
|
||
"result.missed": "Missed trains",
|
||
"menu.phone": "P: card in phone %s",
|
||
"menu.on": "on",
|
||
"menu.off": "off",
|
||
"mini.cancel": "Esc: cancel",
|
||
"mini.topup.title": "Top up the card",
|
||
"mini.topup.pick": "Pick the right button on the machine:",
|
||
"mini.topup.amount": "Choose an amount:",
|
||
"mini.topup.feed": "Hold Enter to feed %d¥ in bills",
|
||
"mini.topup.wrong": "Wrong button…",
|
||
"mini.ticket.title": "Tickets",
|
||
"mini.ticket.hint": "Buy a ticket to %s. Cash: %d¥",
|
||
"mini.crowd.title": "Crowded train - squeeze in",
|
||
"mini.crowd.hint": "Press Enter when the marker is in the green zone (%d tries left)",
|
||
"mini.ride.title": "On the train - next stop",
|
||
"mini.ride.hint": "Enter: get off here (you are going to %s)",
|
||
"hud.time_left": "Left",
|
||
"hud.debuffs": "Debuffs",
|
||
"hud.grumpy": "Someone is grumpy about their seat…",
|
||
"hud.poisoned": "That snack tasted odd…",
|
||
"hud.need_all_cards": "Gate: %s has no money on the card.",
|
||
"hud.need_all_tickets": "Gate: everyone needs a ticket.",
|
||
"result.lost_time_up": "Time ran out.",
|
||
"result.lost_missed_trains": "Too many missed trains.",
|
||
"result.score": "Score",
|
||
"result.money": "money",
|
||
"result.meters": "meters",
|
||
"result.new_debuffs": "New debuffs",
|
||
"mini.topup.member": "Whose card to top up?",
|
||
"mini.seat.hint": "Pick a seat for %s (arrows, Enter)",
|
||
"mini.seat.prefs": "Wishes:",
|
||
"seat.front": "← direction of travel",
|
||
"seat.window": "window",
|
||
"seat.aisle": "aisle",
|
||
"seat.left": "left side",
|
||
"seat.right": "right side",
|
||
"seat.with": "next to %s",
|
||
"debuff.sore_feet": "sore feet",
|
||
"debuff.tired": "tired",
|
||
"debuff.hangry": "hangry",
|
||
"debuff.food_poisoning": "food poisoning",
|
||
"debuff.doms": "sore muscles",
|
||
"debuff.blisters": "blisters",
|
||
"debuff.heavy_bag": "heavy bag",
|
||
"debuff.stuffed": "stuffed",
|
||
"debuff.sweaty": "sweaty and hot",
|
||
"hud.cash_short": "Cash",
|
||
"hud.missed_short": "Miss",
|
||
"result.penalty": "penalty",
|
||
"result.lang_points": "language points",
|
||
"result.missed_short": "Missed",
|
||
"result.map": "map",
|
||
"hud.approaching": "Train arriving in %.0f s - melody playing",
|
||
"hud.arriving": "The train is pulling in…",
|
||
"hud.closing": "Doors closing - board now!",
|
||
"hud.leaving": "The train is leaving…",
|
||
"hud.train_near": "Train approaching!",
|
||
"map.level": "Level",
|
||
"map.xp": "XP",
|
||
"map.skill_points": "Skill points",
|
||
"map.side": "Side trip",
|
||
"map.party": "Party",
|
||
"map.resume": "⟳ resume (saved seed)",
|
||
"map.locked": "Locked – clear the previous level first.",
|
||
"map.hint": "Arrows: level Enter: start L: words T: skills I: wardrobe P: phone Esc",
|
||
"skills.title": "Skills 技",
|
||
"skills.to_next": "XP to next",
|
||
"skills.already": "Already unlocked.",
|
||
"skills.unlocked": "Unlocked: %s",
|
||
"skills.need_points": "Costs %d skill points – level up by clearing levels.",
|
||
"skills.need_req": "Requires an earlier skill in the branch.",
|
||
"skills.hint": "Arrows: select Enter: unlock Esc/T: back",
|
||
"items.title": "Wardrobe 持ち物",
|
||
"items.owned": "items",
|
||
"items.owned_short": "owned",
|
||
"items.wearing": "worn",
|
||
"items.none": "Nothing yet – buy at kiosks (B) or clear side trips.",
|
||
"items.worn": "You wear %s.",
|
||
"items.removed": "You took off %s.",
|
||
"items.total": "Total",
|
||
"items.hint": "Arrows: select Enter: wear/remove Esc/I: back",
|
||
"shop.title": "Shop",
|
||
"shop.owned": "You already have that.",
|
||
"shop.bought": "Bought: %s",
|
||
"shop.too_expensive": "You cannot afford it.",
|
||
"shop.hint": "Arrows: select Enter: buy Esc/B: close",
|
||
"hud.shop_prompt": "B: shop",
|
||
"result.level_up": "Level up!",
|
||
"result.new_items": "New",
|
||
"result.unlocked": "Unlocked",
|
||
"stat.speed": "speed",
|
||
"stat.thirst": "thirst",
|
||
"stat.focus": "focus",
|
||
"stat.toilet": "toilet",
|
||
"stat.luck": "luck",
|
||
"slot.head": "head",
|
||
"slot.face": "face",
|
||
"slot.body": "body",
|
||
"slot.feet": "feet",
|
||
"slot.bag": "bag",
|
||
"effect.kana": "reads kana",
|
||
"effect.fog": "+%d sight",
|
||
"effect.landmarks": "landmarks on map",
|
||
"effect.free_gates": "free gates",
|
||
"effect.reveal": "map: %s",
|
||
"effect.battery": "infinite battery"
|
||
}
|