M9b: folk, filer, reklam, sorl och vagnval
All checks were successful
release / build-release (push) Successful in 1m33s

Folk på stationen (NPC:er som vandrar, kliver av tåg och går mot
utgången, blockerar spelaren men inte varandra), vänster-/högerfiler
som bromsar på fel sida, bredare gångar, reklamaffischer (clutter),
japanskt sorl i loop (noise), vagnval med kvinnovagn (stort avdrag med
man i sällskapet, tidsstyrd), kömarkeringar på perrongen, trängsel per
vagn (bonus för tom vagn, svettig-debuff och svårare resa i full vagn,
släpp förbi passagerare) och att folk kliver av innan man får gå på.
Ny bana 005 Ueno. Skärmdumpsverktyget kan filtrera på bana/skript.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
2026-10-24 12:33:44 +02:00
parent 8fca14e42d
commit de61568e44
49 changed files with 1568 additions and 136 deletions

View File

@@ -0,0 +1,134 @@
{
"clutter": 2,
"crowd": 2,
"destination": {
"en": "Akihabara",
"ja": "秋葉原",
"romaji": "Akihabara",
"sv": "Akihabara"
},
"difficulty": 4,
"fareYen": 200,
"grid": [
"#################################",
"#S.\u003c..\u003c..#..\u003c..\u003c..\u003c..\u003c..#..\u003c..###",
"#..\u003e..\u003e..#..\u003e..\u003e..\u003e..\u003e..#..\u003e..###",
"#######\u003c\u003e#\u003c\u003e#\u003c\u003e####\u003c\u003e#\u003c\u003e####\u003c\u003e###",
"#..\u003c..\u003c..#.W\u003c..\u003c..\u003c..#..\u003c..\u003c..###",
"#.i\u003e..\u003e..#..\u003e..\u003e..\u003e..#..\u003eK.\u003e..###",
"#\u003c\u003e#############\u003c\u003e#######\u003c\u003e#\u003c\u003e###",
"#..#..\u003c..\u003c..\u003c.i\u003c..\u003c..\u003c..#..\u003c..###",
"#..#..\u003e..\u003e..\u003e..\u003e..\u003e..\u003e..#.T\u003ei.###",
"#\u003c\u003e####\u003c\u003e##########\u003c\u003e#\u003c\u003e#\u003c\u003e######",
"#..\u003c..\u003c..\u003c..#..\u003c..\u003c..#..#..\u003c..###",
"#..\u003e..\u003e..\u003e..#..\u003e..\u003e..#..#..\u003e..###",
"####\u003c\u003e#\u003c\u003e#\u003c\u003e#\u003c\u003e####\u003c\u003e#######\u003c\u003e###",
"#..\u003c..#..#..#..\u003c..#..\u003c..\u003c..\u003c..###",
"#..\u003e..#..#..#..\u003e..#..\u003e..\u003e..\u003e..###",
"#\u003c\u003e#######\u003c\u003e####\u003c\u003e###############",
"#G.\u003c..\u003c..\u003c..#..\u003c..\u003c..\u003c..\u003c..\u003c.G###",
"#pG\u003e..\u003e..\u003e..#..\u003e..\u003e..\u003e..\u003e..\u003eGP###",
"#################################",
"#################################",
"#################################"
],
"id": "005-ueno",
"kind": "main",
"maxMissedTrains": 2,
"name": {
"en": "Ueno Station",
"ja": "上野駅",
"sv": "Ueno station"
},
"noise": 2,
"order": 5,
"party": 3,
"rideStops": 5,
"shop": [
"suit",
"mask_tengu",
"yukata",
"onigiri_box",
"rail_pass"
],
"signs": [
{
"text": {
"en": "Ueno Station. Keep left in the corridors. Track 3 Yamanote Line for Akihabara: south-east. Track 9 Keihin-Tohoku Line for Omiya: south-west.",
"ja": "上野駅 左側 通行 3番線 山手線 秋葉原方面 → 南東 9番線 京浜東北線 大宮方面 → 南西",
"sv": "Ueno station. Håll till vänster i gångarna. Spår 3 Yamanote-linjen mot Akihabara: sydost. Spår 9 Keihin-Tohoku-linjen mot Omiya: sydväst."
},
"x": 2,
"y": 5,
"z": 0
},
{
"text": {
"en": "\u003c- Track 9 Keihin-Tohoku Line (Omiya) Track 3 Yamanote Line (Akihabara) -\u003e",
"ja": "← 9番線 京浜東北線 大宮方面 3番線 山手線 秋葉原方面 →",
"sv": "\u003c- Spår 9 Keihin-Tohoku-linjen (Omiya) Spår 3 Yamanote-linjen (Akihabara) -\u003e"
},
"x": 14,
"y": 7,
"z": 0
},
{
"text": {
"en": "Track 3: car 1 is women-only during rush hour (the first 2.5 minutes). Queue at the markings and let people off first.",
"ja": "3番線 1号車 女性専用車 ラッシュ 改札 → 南東口",
"sv": "Spår 3: vagn 1 är kvinnovagn under rusningen (de första 2,5 minuterna). Köa vid markeringarna och låt folk kliva av först."
},
"x": 28,
"y": 8,
"z": 0
}
],
"timeLimitSec": 420,
"trains": [
{
"cars": 4,
"correct": true,
"destination": {
"en": "Akihabara",
"ja": "秋葉原",
"romaji": "Akihabara"
},
"line": {
"en": "Yamanote Line",
"ja": "山手線",
"romaji": "Yamanote-sen"
},
"platform": "P",
"schedule": {
"dwellSec": 9,
"intervalSec": 26,
"offsetSec": 6
},
"track": "3",
"womenOnlyCar": 1,
"womenOnlyFrom": 0,
"womenOnlyTo": 150
},
{
"cars": 3,
"correct": false,
"destination": {
"en": "Omiya",
"ja": "大宮",
"romaji": "Omiya"
},
"line": {
"en": "Keihin-Tohoku Line",
"ja": "京浜東北線",
"romaji": "Keihin-Tohoku-sen"
},
"platform": "p",
"schedule": {
"dwellSec": 8,
"intervalSec": 30,
"offsetSec": 13
},
"track": "9"
}
]
}

View File

@@ -7,7 +7,10 @@ OGG (musik, längre ljud).
ett tåg är på väg in till perrongen (fasen *approaching*).
- `door-chime.wav` – dörrsignal, spelas strax före avgång (fasen *closing*).
Båda är **placeholders** genererade av `go run ./tools/gensound`; riktiga
- `chatter.wav` – loopbart stationssorl (bakgrundsprat), spelas på banor med
`noise` > 0 och konkurrerar med melodierna.
Alla är **placeholders** genererade av `go run ./tools/gensound`; riktiga
inspelningar/kompositioner ersätter dem i M12 (behåll filnamnen).
Planerat: utrop, folkmassa, spärr-pip, automat-ljud, UI-klick, bakgrundsprat
och reklam som ljudröra (M9b).

BIN
resources/sound/chatter.wav Normal file

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -139,20 +139,20 @@
"map.side": "Side trip",
"map.party": "Party",
"map.resume": "⟳ resume (saved seed)",
"map.locked": "Locked – clear the previous level first.",
"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_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.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",
@@ -181,5 +181,21 @@
"effect.landmarks": "landmarks on map",
"effect.free_gates": "free gates",
"effect.reveal": "map: %s",
"effect.battery": "infinite battery"
"effect.battery": "infinite battery",
"mini.car.title": "Choose a car",
"mini.car.alighting": "People are getting off - wait…",
"mini.car.pick": "Pick a car with the arrows, board with Enter.",
"mini.car.men": "There is a man in the party - not the women-only car (pink)!",
"mini.car.hint": "←/→: car Enter: board Esc: cancel",
"car.crowd.low": "few people",
"car.crowd.mid": "some people",
"car.crowd.high": "packed",
"hud.car_suffix_ja": "号車",
"mini.ride.let_pass": "Someone wants to get off - press ← to step aside!",
"mini.ride.crowd": "Crowding",
"hud.women_only": "Women-only car with a man in the party - heavy penalty!",
"hud.early_board": "Let people off first!",
"hud.bump": "Sumimasen…",
"hud.wrong_lane": "Wrong side - keep to the side the lane shows",
"result.car": "car"
}

View File

@@ -588,5 +588,62 @@
"en": "down",
"sv": "ner",
"tier": 1
},
"上野駅": {
"kana": "うえのえき",
"romaji": "Ueno-eki",
"en": "Ueno Station",
"sv": "Ueno station",
"tier": 3
},
"京浜東北線": {
"kana": "けいひんとうほくせん",
"romaji": "Keihin-Tōhoku-sen",
"en": "Keihin-Tohoku Line",
"sv": "Keihin-Tohoku-linjen",
"tier": 3
},
"大宮": {
"kana": "おおみや",
"romaji": "Ōmiya",
"en": "Omiya",
"sv": "Omiya",
"tier": 3,
"kind": "station"
},
"女性専用車": {
"kana": "じょせいせんようしゃ",
"romaji": "josei sen'yō-sha",
"en": "Women-only car",
"sv": "Kvinnovagn",
"tier": 2
},
"号車": {
"kana": "ごうしゃ",
"romaji": "gōsha",
"en": "car no.",
"sv": "vagn nr",
"tier": 2
},
"ラッシュ": {
"kana": "ラッシュ",
"romaji": "rasshu",
"en": "rush hour",
"sv": "rusning",
"tier": 2
},
"左側": {
"kana": "ひだりがわ",
"romaji": "hidarigawa",
"en": "left side",
"sv": "vänster sida",
"tier": 2
},
"通行": {
"kana": "つうこう",
"romaji": "tsūkō",
"en": "passage / keep",
"sv": "gång / håll",
"tier": 3
}
}

View File

@@ -139,20 +139,20 @@
"map.side": "Sidospår",
"map.party": "Sällskap",
"map.resume": "⟳ fortsätt (sparad seed)",
"map.locked": "Låst – klara föregående bana först.",
"map.locked": "Låst - klara föregående bana först.",
"map.hint": "Pilar: bana Enter: start L: ord T: skills I: garderob P: tel Esc",
"skills.title": "Skills 技",
"skills.to_next": "XP till nästa",
"skills.already": "Redan upplåst.",
"skills.unlocked": "Upplåst: %s",
"skills.need_points": "Kostar %d skillpoäng – gå upp i nivå genom att klara banor.",
"skills.need_points": "Kostar %d skillpoäng - gå upp i nivå genom att klara banor.",
"skills.need_req": "Kräver en tidigare skill i grenen.",
"skills.hint": "Pilar: välj Enter: lås upp Esc/T: tillbaka",
"items.title": "Garderob 持ち物",
"items.owned": "items",
"items.owned_short": "ägs",
"items.wearing": "bärs",
"items.none": "Inget än – köp i kioskerna (B) eller klara sidospår.",
"items.none": "Inget än - köp i kioskerna (B) eller klara sidospår.",
"items.worn": "Du bär %s.",
"items.removed": "Du tog av %s.",
"items.total": "Totalt",
@@ -181,5 +181,21 @@
"effect.landmarks": "landmärken på kartan",
"effect.free_gates": "gratis spärrar",
"effect.reveal": "karta: %s",
"effect.battery": "oändligt batteri"
"effect.battery": "oändligt batteri",
"mini.car.title": "Välj vagn",
"mini.car.alighting": "Folk kliver av - vänta…",
"mini.car.pick": "Välj vagn med pilarna, kliv på med Enter.",
"mini.car.men": "Det finns en man i sällskapet - inte kvinnovagnen (rosa)!",
"mini.car.hint": "←/→: vagn Enter: kliv på Esc: avbryt",
"car.crowd.low": "lite folk",
"car.crowd.mid": "en del folk",
"car.crowd.high": "fullt",
"hud.car_suffix_ja": "号車",
"mini.ride.let_pass": "Någon vill förbi - tryck ← för att kliva åt sidan!",
"mini.ride.crowd": "Trängsel",
"hud.women_only": "Kvinnovagn med en man i sällskapet - grova minus!",
"hud.early_board": "Låt folk kliva av först!",
"hud.bump": "Ursäkta…",
"hud.wrong_lane": "Fel sida - håll till vänster/höger som filen visar",
"result.car": "vagn"
}