Forfeit = 2x coin loss + 0 XP (no kot); end-of-game roster + add friend
Forfeit penalty reworked (client + server gamification, in sync):
- Surrendering team loses DOUBLE the entry coins; winner takes the stake.
- Forfeiter earns NO XP. No kot is applied or mentioned anymore.
- MatchSummary/Dto carry a `forfeit` flag; GameRoom.FinalizeForfeit →
ApplyRewardsAsync(team) with Forfeit=true (dropped the kot path).
- Forfeit confirm dialogs now alert the real penalty (double coins, no XP).
End-of-game roster: SeatPlayerDto/ServerSeatPlayer + game-store SeatPlayer gain
userId/isBot. New <MatchPlayersList> lists everyone at the table on the final
screen (PostMatchRewardsModal + AI MatchOverlay) with a tactile "Add" button to
send a friend request to real (non-bot, non-self) players ("Sent" after).
Verified: tsc + sim + dotnet + next build clean; stack rebuilt :1500/:1505.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+12
-2
@@ -47,9 +47,14 @@ const fa: Dict = {
|
||||
"forfeit.title": "تسلیم",
|
||||
"forfeit.ask": "از این بازی تسلیم میشوید؟",
|
||||
"forfeit.teammateAsks": "{name} میخواهد تسلیم شود. موافقید؟",
|
||||
"forfeit.rule": "اگر حتی یک دست برده باشید باخت عادی، وگرنه کُت میشوید.",
|
||||
"forfeit.rule": "با تسلیم، دو برابر سکهٔ ورودی را از دست میدهید و هیچ امتیاز تجربهای نمیگیرید.",
|
||||
"forfeit.confirm": "تسلیم",
|
||||
"forfeit.keepPlaying": "ادامه میدهم",
|
||||
"match.players": "بازیکنان",
|
||||
"match.you": "شما",
|
||||
"match.bot": "ربات",
|
||||
"match.addFriend": "افزودن",
|
||||
"match.sent": "ارسال شد",
|
||||
|
||||
"seat.you": "شما",
|
||||
"team.us": "ما",
|
||||
@@ -314,9 +319,14 @@ const en: Dict = {
|
||||
"forfeit.title": "Forfeit",
|
||||
"forfeit.ask": "Surrender this match?",
|
||||
"forfeit.teammateAsks": "{name} wants to forfeit. Agree?",
|
||||
"forfeit.rule": "Win ≥1 round = normal loss, otherwise it's a Kot.",
|
||||
"forfeit.rule": "Forfeiting costs double your entry coins and earns no XP.",
|
||||
"forfeit.confirm": "Forfeit",
|
||||
"forfeit.keepPlaying": "Keep playing",
|
||||
"match.players": "Players",
|
||||
"match.you": "You",
|
||||
"match.bot": "Bot",
|
||||
"match.addFriend": "Add",
|
||||
"match.sent": "Sent",
|
||||
|
||||
"seat.you": "You",
|
||||
"team.us": "Us",
|
||||
|
||||
Reference in New Issue
Block a user