M10c: vem betalar i kiosken och spärrar utan återvändo
All checks were successful
release / build-release (push) Successful in 2m7s
All checks were successful
release / build-release (push) Successful in 2m7s
Björns tillägg 2026-10-24. Med egna kort och fler i sällskapet frågar kiosken vem som betalar (minigame.Payer: kontant, spelarens kort eller en följares kort; den som inte har råd nekas, Esc avbryter). Avgiften dras nu när man passerar spärren in i det betalda området (level.InsideGates), inte på spärrrutan. Banflaggan oneWayGates: incheckad släpps inte ut igen förrän man åkt; Enter vid spärren kallar på personal (10 s) som låser upp korten; ny inpassering kostar igen. På i 005, 007/007b och 008/008b. Skriptkommandon urge och push. Docs, wiki och skärmdumpar uppdaterade. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
@@ -732,3 +732,29 @@ func TestStoryChains(t *testing.T) {
|
||||
t.Errorf("giltig kedja: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestOneWayGatesAndInside(t *testing.T) {
|
||||
src := `{"id":"ow","name":{"sv":"x"},"difficulty":1,"destination":{"sv":"x"},"oneWayGates":true,
|
||||
"grid":["#########","#S.G.P.G#","#########"],
|
||||
"trains":[{"platform":"P","track":"1","line":{"en":"A"},"destination":{"en":"B"},"correct":true}]}`
|
||||
l, err := Parse([]byte(src))
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if !l.OneWayGates {
|
||||
t.Fatal("flaggan ska läsas")
|
||||
}
|
||||
in := l.InsideGates()
|
||||
want := map[Point]bool{{X: 4, Y: 1}: true, {X: 5, Y: 1}: true, {X: 6, Y: 1}: true}
|
||||
if len(in) != len(want) {
|
||||
t.Fatalf("innanför spärrarna: %v", in)
|
||||
}
|
||||
for p := range want {
|
||||
if !in[p] {
|
||||
t.Errorf("%v ska vara innanför", p)
|
||||
}
|
||||
}
|
||||
if in[Point{X: 3, Y: 1}] || in[Point{X: 1, Y: 1}] {
|
||||
t.Fatal("spärren och starten är inte innanför")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user