Add title, lobby, class select, game, shop, and result screens. Rewrite model.go with 6-screen state machine and input routing. Wire server/ssh.go and main.go with lobby and store. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
38 lines
657 B
Go
38 lines
657 B
Go
package main
|
|
|
|
import (
|
|
"log"
|
|
"os"
|
|
"os/signal"
|
|
"syscall"
|
|
|
|
"github.com/tolelom/catacombs/game"
|
|
"github.com/tolelom/catacombs/server"
|
|
"github.com/tolelom/catacombs/store"
|
|
)
|
|
|
|
func main() {
|
|
os.MkdirAll("data", 0755)
|
|
|
|
db, err := store.Open("data/catacombs.db")
|
|
if err != nil {
|
|
log.Fatalf("Failed to open database: %v", err)
|
|
}
|
|
defer db.Close()
|
|
|
|
lobby := game.NewLobby()
|
|
|
|
go func() {
|
|
if err := server.Start("0.0.0.0", 2222, lobby, db); err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
}()
|
|
|
|
log.Println("Catacombs server running on :2222")
|
|
|
|
c := make(chan os.Signal, 1)
|
|
signal.Notify(c, os.Interrupt, syscall.SIGTERM)
|
|
<-c
|
|
log.Println("Shutting down...")
|
|
}
|