feat: botfights v1 — full fighting game with Kaplay engine
- Vue 3 + Vite + Tailwind 4 frontend with synthwave aesthetic - Hono backend on port 9100 with SQLite/Drizzle - Procedural pixel-art sprite generator (48x48, 8 animation states) - Kaplay fight scene with punch/kick/special/knockback/KO animations - 12 mock bots across 6 tiers with Elo rating system - 9 challenge types, 10 fight arenas with modifiers - Fight replay with staggered battle log and ~1 min timing - Sprite preview page at /sprites Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
import { createRouter, createWebHistory } from 'vue-router'
|
||||
|
||||
const routes = [
|
||||
{
|
||||
path: '/',
|
||||
name: 'home',
|
||||
component: () => import('./pages/HomePage.vue'),
|
||||
},
|
||||
{
|
||||
path: '/arena',
|
||||
name: 'arena',
|
||||
component: () => import('./pages/ArenaPage.vue'),
|
||||
},
|
||||
{
|
||||
path: '/arena/:fightId',
|
||||
name: 'fight',
|
||||
component: () => import('./pages/FightPage.vue'),
|
||||
},
|
||||
{
|
||||
path: '/leaderboard',
|
||||
name: 'leaderboard',
|
||||
component: () => import('./pages/LeaderboardPage.vue'),
|
||||
},
|
||||
{
|
||||
path: '/bot/:name',
|
||||
name: 'bot-profile',
|
||||
component: () => import('./pages/BotProfilePage.vue'),
|
||||
},
|
||||
{
|
||||
path: '/register',
|
||||
name: 'register',
|
||||
component: () => import('./pages/RegisterPage.vue'),
|
||||
},
|
||||
{
|
||||
path: '/schedule',
|
||||
name: 'schedule',
|
||||
component: () => import('./pages/SchedulePage.vue'),
|
||||
},
|
||||
{
|
||||
path: '/sprites',
|
||||
name: 'sprites',
|
||||
component: () => import('./pages/SpritePreviewPage.vue'),
|
||||
},
|
||||
]
|
||||
|
||||
export const router = createRouter({
|
||||
history: createWebHistory(),
|
||||
routes,
|
||||
})
|
||||
Reference in New Issue
Block a user