fertig-classic-games/data/superkart-racers.json

156 lines
4.4 KiB
JSON

{
"_readme": [
"Super Kart racer roster. Each id MUST match an opponent id in data/opponents.json",
"(portraits/videos/speech come from the shared opponent assets).",
"Stats are 0..1 and feed the physics formulas in SuperKartLogic.js:",
" topSpeed - straight-line speed ceiling",
" accel - how fast the kart reaches that ceiling",
" handling - steering rate (higher turns tighter, especially at speed)",
" weight - who shoves whom in kart-vs-kart bumps; heavy karts barely move",
" offroad - how well the kart keeps speed off the road (1.0 = barely slows)",
" drift - grip while powersliding; high drift holds tighter, longer slides",
"aiSkill is the racer's base driving skill 0..1 when computer controlled",
"(scaled by the engine class aiSkillMult in superkart-rules.json).",
"Add, remove, or retune racers freely - the racer select grid and race grid",
"color is the racer accent used for minimap dots, HUD rows, and the procedural fallback kart sprite tint.",
"adapt to the list. 9 racers fill the classic 3x3 select screen."
],
"racers": [
{
"id": "mario",
"archetype": "All-Rounder",
"stats": {
"topSpeed": 0.5,
"accel": 0.5,
"handling": 0.55,
"weight": 0.5,
"offroad": 0.5,
"drift": 0.5
},
"aiSkill": 0.6,
"blurb": "Balanced in every stat. The kart you learn the game with.",
"color": "#e04838"
},
{
"id": "kona",
"archetype": "Featherweight",
"stats": {
"topSpeed": 0.45,
"accel": 0.7,
"handling": 0.95,
"weight": 0.15,
"offroad": 0.5,
"drift": 0.55
},
"aiSkill": 0.55,
"blurb": "Tiny, nimble, and turns on a dime - but everyone can shove him around.",
"color": "#c87838"
},
{
"id": "fireball",
"archetype": "Rocket",
"stats": {
"topSpeed": 0.5,
"accel": 0.95,
"handling": 0.45,
"weight": 0.35,
"offroad": 0.45,
"drift": 0.4
},
"aiSkill": 0.55,
"blurb": "Off the line before the light turns. Recovery from every mistake is instant.",
"color": "#ff6a00"
},
{
"id": "smasher",
"archetype": "Heavyweight",
"stats": {
"topSpeed": 0.9,
"accel": 0.2,
"handling": 0.35,
"weight": 0.95,
"offroad": 0.35,
"drift": 0.3
},
"aiSkill": 0.6,
"blurb": "Slow to spool up, unstoppable at speed. Bumping The Smasher is a mistake.",
"color": "#b03cc8"
},
{
"id": "croc",
"archetype": "Bruiser",
"stats": {
"topSpeed": 0.75,
"accel": 0.35,
"handling": 0.25,
"weight": 0.85,
"offroad": 0.45,
"drift": 0.35
},
"aiSkill": 0.5,
"blurb": "Fast, heavy, and sloppy in the corners. Party foul on wheels.",
"color": "#38b048"
},
{
"id": "gerome",
"archetype": "Speed Demon",
"stats": {
"topSpeed": 1.0,
"accel": 0.10,
"handling": 0.2,
"weight": 0.55,
"offroad": 0.3,
"drift": 0.45
},
"aiSkill": 0.65,
"blurb": "The fastest thing on the track - as long as the track is straight.",
"color": "#2888e0"
},
{
"id": "blackwind",
"archetype": "Drift Pirate",
"stats": {
"topSpeed": 0.55,
"accel": 0.55,
"handling": 0.6,
"weight": 0.5,
"offroad": 0.4,
"drift": 0.95
},
"aiSkill": 0.6,
"blurb": "Lives sideways. Powerslides hold like the kart is on rails.",
"color": "#206878"
},
{
"id": "dv-8-2303",
"archetype": "Precision Machine",
"stats": {
"topSpeed": 0.6,
"accel": 0.5,
"handling": 0.9,
"weight": 0.6,
"offroad": 0.35,
"drift": 0.6
},
"aiSkill": 0.7,
"blurb": "Racing line calculated. Apex acquired. Human error not detected.",
"color": "#9aa4b0"
},
{
"id": "zanthor",
"archetype": "Mystic Wildcard",
"stats": {
"topSpeed": 0.45,
"accel": 0.5,
"handling": 0.5,
"weight": 0.45,
"offroad": 0.95,
"drift": 0.5
},
"aiSkill": 0.55,
"blurb": "The grass, the sand, the swamp - all roads are roads to Zanthor.",
"color": "#e8d048"
}
]
}