All checks were successful
release / build-release (push) Successful in 1m41s
- sim.Wallet: IC-kort, kontanter, pappersbiljett, telefon med batteri, spenderat; följer med mellan banor (Game.Wallet) - internal/minigame: gemensamt Game-gränssnitt (Update/Done/Success), all slump från del-seeds: TopUp (hitta チャージ, belopp, mata sedlar), Ticket (taxetavla med resmål på japanska), Crowd (tidsfönster, två försök), Ride (stationerna passerar, kliv av vid resmålet) - sim.Run: spärren kräver biljett på biljettbanor annars användbart kort; telefonen ger ×1,1 fart men 15 % seedad omskanning (frysning 1,5 s), dött batteri gör kortet oanvändbart; automaten startar påfyllning eller biljettköp; tåget kontrollerar biljetten; fulla tåg kräver trängsel; resan avgör vinst/förlust (fel station, åkte förbi, fel tåg); StepMini låter klockan och sällskapet ticka medan rörelsen pausar - level: ticketRequired, rideStops, Train.Crowded; 002 är biljettbana med fullt tåg och fyra stopp; ordboken har stationer (kind) + sju nya namn - game: vyer för minispelen, plånbok i HUD, P i menyn = kort i telefonen, förlustorsaker och spenderat på resultatet, flaggor -phone/-card, skriptkommandon hold/waitstop; inforuta/minikarta döljs under minispel - plan: M7b (Björn) – tågvind, ankomstindikator nära rälsen, in-/utkörningsanimation för tåg och bussar – i spelbeskrivning, roadmap, testplan - docs/README/wiki med tre nya bilder (automat, biljettavla, tågresa) Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
36 lines
1.0 KiB
Go
36 lines
1.0 KiB
Go
package sim
|
|
|
|
import "testing"
|
|
|
|
func TestWalletPayTopUpAndPhone(t *testing.T) {
|
|
w := NewWallet()
|
|
if w.Card != StartCardYen || w.Cash != StartCashYen || !w.CardUsable() {
|
|
t.Fatal("startvärden")
|
|
}
|
|
if !w.PayCard(200) || w.Card != StartCardYen-200 || w.Spent != 200 {
|
|
t.Fatal("PayCard")
|
|
}
|
|
if w.PayCard(99999) {
|
|
t.Fatal("kan inte betala mer än saldot")
|
|
}
|
|
if !w.TopUp(1000) || w.Card != StartCardYen-200+1000 || w.Cash != StartCashYen-1000 || w.Spent != 200 {
|
|
t.Fatal("TopUp flyttar kontanter till kortet utan att räknas som spenderat")
|
|
}
|
|
if w.TopUp(99999) || !w.PayCash(150) || w.PayCash(99999) {
|
|
t.Fatal("kontantgränser")
|
|
}
|
|
w.Phone = true
|
|
w.Drain(450) // halva batteriet
|
|
if w.Battery < 49 || w.Battery > 51 || !w.CardUsable() {
|
|
t.Fatalf("battery=%.1f", w.Battery)
|
|
}
|
|
w.Drain(10000)
|
|
if w.Battery != 0 || w.CardUsable() || w.PayCard(1) {
|
|
t.Fatal("dött batteri = kortet i telefonen går inte att använda")
|
|
}
|
|
w.Phone = false
|
|
if !w.CardUsable() {
|
|
t.Fatal("kortet i plånboken bryr sig inte om batteriet")
|
|
}
|
|
}
|