feat: add cards templete

This commit is contained in:
2026-06-24 10:47:54 +03:30
parent 60494946d6
commit b1c7bfdd06
124 changed files with 422 additions and 30 deletions
+18 -2
View File
@@ -36,7 +36,9 @@ type seatInfo struct {
userID int64
name string
connected bool
left bool // خروج دائمی داوطلبانه (در تسویه از بازگشت ورودی محروم)
left bool // خروج دائمی داوطلبانه (در تسویه از بازگشت ورودی محروم)
coins int64 // برای نمایش سرِ میز
rankTier string // نشانِ رتبه برای نمایش سرِ میز
}
// auto مشخص می‌کند جایگاه باید خودکار بازی شود (بات یا قطع‌شده).
@@ -119,6 +121,13 @@ func (r *Room) start() {
}
r.game = game.NewGame(target, game.FirstHakem())
r.graceUntil = time.Now().Add(r.firstHandDelay) // بُر زدن + پخشِ ۵ کارت
// اطلاعاتِ نمایشیِ بازیکنان (سکه و نشانِ رتبه) را یک‌بار هنگام شروع می‌گیریم.
for _, s := range r.seats {
if s.isBot || s.userID == 0 {
continue
}
s.coins, s.rankTier = r.settler.PlayerProfile(s.userID)
}
for seat, s := range r.seats {
if s.client != nil {
s.client.trySend(mustJSON(r.matchedFor(seat)))
@@ -439,6 +448,9 @@ func (r *Room) settleGameOver(res *game.HandResult) {
if won && !r.private {
r.settler.AwardWinner(s.userID, r.tier) // میز دورهمی جایزه‌ی سکه ندارد
}
if !r.private {
r.settler.AwardRank(s.userID, r.tier, won) // امتیازِ رتبه (اگر میزِ رتبه‌بندی باشد)
}
r.settler.RecordGameResult(s.userID, won)
}
r.settler.RecordGame(r.ID, r.playersJSON(res.WinnerTeam), res.WinnerTeam, res.Kot)
@@ -485,7 +497,11 @@ func (r *Room) connectedHumans() int {
func (r *Room) playersInfo() []PlayerInfo {
out := make([]PlayerInfo, 4)
for i, s := range r.seats {
out[i] = PlayerInfo{Seat: i, Name: s.name, Bot: s.isBot, Connected: s.isBot || s.connected}
out[i] = PlayerInfo{
Seat: i, Name: s.name, Bot: s.isBot,
Connected: s.isBot || s.connected,
Coins: s.coins, RankTier: s.rankTier,
}
}
return out
}