feat: titres sélectionnables + prix revente forge inclus
All checks were successful
CI/CD — Build & Deploy / Build & Deploy (push) Successful in 31s

Dashboard: titre actif affiché "« Champion »" + sélecteur avec tous les
titres débloqués (achievements claimed avec rewardTitle).
Header: titre visible à côté du level.

Revente: prix inclut l'investissement forge (50% des coûts cumulés).
Épée +5 (investissement 1900 or) → revente base + 950 au lieu de base seul.
API client: ajout méthode PUT.
This commit is contained in:
2026-03-24 19:31:02 +01:00
parent da8401dec2
commit 6938eedcda
5 changed files with 72 additions and 2 deletions

View File

@@ -153,7 +153,13 @@ export class ShopService {
if (!charItem) throw new NotFoundException('Item non trouvé dans l\'inventaire');
if (charItem.equipped) throw new BadRequestException('Déséquipez l\'item avant de le vendre');
const sellPrice = Math.floor(charItem.item.buyPrice * SELL_RATIO);
// Prix de vente = base + investissement forge (coûts cumulés * 50%)
const FORGE_GOLD_COST: Record<number, number> = { 1: 50, 2: 100, 3: 250, 4: 500, 5: 1000 };
let forgeInvestment = 0;
for (let i = 1; i <= charItem.forgeLevel; i++) {
forgeInvestment += FORGE_GOLD_COST[i] ?? 0;
}
const sellPrice = Math.floor(charItem.item.buyPrice * SELL_RATIO + forgeInvestment * 0.5);
const char = await manager
.getRepository(Character)