Phase 10: card upgrade system (chemistry styles, position change, training)
CI / Build, lint & test (push) Failing after 1m37s
CI / Build, lint & test (push) Failing after 1m37s
- GET /chemistry-styles — lists 18 FUT-style chemistry styles with stat boost breakdowns - POST /collection/:id/chemistry-style — apply a style (Shadow, Hunter, Anchor, etc.) - POST /collection/:id/position — override a player's position for 500 coins - POST /collection/:id/training — add +1/+2/+3 OVR training bonus (max +3 total) - GET /collection now includes chemistry_style, position_override, training_bonus, effective_overall and effective_position fields per owned card - Migration 0007 adds three columns to owned_cards with safe defaults - 10 new integration tests — all 55 pass, clippy clean Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,110 @@
|
||||
[
|
||||
{
|
||||
"id": "basic",
|
||||
"name": "Basic",
|
||||
"description": "Small boosts across all attributes",
|
||||
"boosts": { "pace": 3, "shooting": 3, "passing": 3, "dribbling": 3, "defending": 3, "physical": 3 }
|
||||
},
|
||||
{
|
||||
"id": "shadow",
|
||||
"name": "Shadow",
|
||||
"description": "Maximises pace and defending — ideal for full-backs",
|
||||
"boosts": { "pace": 10, "shooting": 0, "passing": 0, "dribbling": 0, "defending": 10, "physical": 0 }
|
||||
},
|
||||
{
|
||||
"id": "anchor",
|
||||
"name": "Anchor",
|
||||
"description": "Boosts defending and physicality — built for centre-backs",
|
||||
"boosts": { "pace": 0, "shooting": 0, "passing": 0, "dribbling": 0, "defending": 10, "physical": 10 }
|
||||
},
|
||||
{
|
||||
"id": "hunter",
|
||||
"name": "Hunter",
|
||||
"description": "Pace and shooting — the striker's best friend",
|
||||
"boosts": { "pace": 10, "shooting": 10, "passing": 0, "dribbling": 0, "defending": 0, "physical": 0 }
|
||||
},
|
||||
{
|
||||
"id": "catalyst",
|
||||
"name": "Catalyst",
|
||||
"description": "Pace and passing for box-to-box and wide midfielders",
|
||||
"boosts": { "pace": 10, "shooting": 0, "passing": 10, "dribbling": 0, "defending": 0, "physical": 0 }
|
||||
},
|
||||
{
|
||||
"id": "engine",
|
||||
"name": "Engine",
|
||||
"description": "Pace, passing and dribbling for creative midfielders",
|
||||
"boosts": { "pace": 10, "shooting": 0, "passing": 5, "dribbling": 5, "defending": 0, "physical": 0 }
|
||||
},
|
||||
{
|
||||
"id": "hawk",
|
||||
"name": "Hawk",
|
||||
"description": "Balanced pace, shooting and physicality",
|
||||
"boosts": { "pace": 5, "shooting": 5, "passing": 0, "dribbling": 0, "defending": 0, "physical": 5 }
|
||||
},
|
||||
{
|
||||
"id": "marksman",
|
||||
"name": "Marksman",
|
||||
"description": "Shooting, dribbling and physicality for physical strikers",
|
||||
"boosts": { "pace": 0, "shooting": 10, "passing": 0, "dribbling": 5, "defending": 0, "physical": 5 }
|
||||
},
|
||||
{
|
||||
"id": "deadeye",
|
||||
"name": "Deadeye",
|
||||
"description": "Shooting and passing — classic number 10 style",
|
||||
"boosts": { "pace": 0, "shooting": 10, "passing": 10, "dribbling": 0, "defending": 0, "physical": 0 }
|
||||
},
|
||||
{
|
||||
"id": "artist",
|
||||
"name": "Artist",
|
||||
"description": "Passing and dribbling for technical playmakers",
|
||||
"boosts": { "pace": 0, "shooting": 0, "passing": 5, "dribbling": 10, "defending": 0, "physical": 0 }
|
||||
},
|
||||
{
|
||||
"id": "sniper",
|
||||
"name": "Sniper",
|
||||
"description": "Shooting and dribbling for agile forwards",
|
||||
"boosts": { "pace": 0, "shooting": 5, "passing": 0, "dribbling": 5, "defending": 0, "physical": 0 }
|
||||
},
|
||||
{
|
||||
"id": "finisher",
|
||||
"name": "Finisher",
|
||||
"description": "Shooting and dribbling — precision over power",
|
||||
"boosts": { "pace": 0, "shooting": 8, "passing": 0, "dribbling": 7, "defending": 0, "physical": 0 }
|
||||
},
|
||||
{
|
||||
"id": "guardian",
|
||||
"name": "Guardian",
|
||||
"description": "Dribbling and defending for defensive midfielders",
|
||||
"boosts": { "pace": 0, "shooting": 0, "passing": 0, "dribbling": 5, "defending": 10, "physical": 0 }
|
||||
},
|
||||
{
|
||||
"id": "backbone",
|
||||
"name": "Backbone",
|
||||
"description": "Passing, defending and physicality for the defensive shield",
|
||||
"boosts": { "pace": 0, "shooting": 0, "passing": 5, "dribbling": 0, "defending": 5, "physical": 5 }
|
||||
},
|
||||
{
|
||||
"id": "sentinel",
|
||||
"name": "Sentinel",
|
||||
"description": "Defending and physicality for no-nonsense defenders",
|
||||
"boosts": { "pace": 0, "shooting": 0, "passing": 0, "dribbling": 0, "defending": 5, "physical": 5 }
|
||||
},
|
||||
{
|
||||
"id": "powerhouse",
|
||||
"name": "Powerhouse",
|
||||
"description": "Passing and defending for dominant central midfielders",
|
||||
"boosts": { "pace": 0, "shooting": 0, "passing": 10, "dribbling": 0, "defending": 10, "physical": 0 }
|
||||
},
|
||||
{
|
||||
"id": "maestro",
|
||||
"name": "Maestro",
|
||||
"description": "Shooting, passing and dribbling — the complete midfielder",
|
||||
"boosts": { "pace": 0, "shooting": 5, "passing": 5, "dribbling": 5, "defending": 0, "physical": 0 }
|
||||
},
|
||||
{
|
||||
"id": "gladiator",
|
||||
"name": "Gladiator",
|
||||
"description": "Shooting and defending for all-action midfielders",
|
||||
"boosts": { "pace": 0, "shooting": 5, "passing": 0, "dribbling": 0, "defending": 5, "physical": 0 }
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user