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
+32 -7
View File
@@ -50,14 +50,16 @@ type VIPPackage struct {
}
// TableTier نوع میز: تعداد دست، ورودی، جایزه، XP و جام.
// RankReward > 0 یعنی میزِ رتبه‌بندی است (به برنده امتیازِ رتبه می‌دهد).
type TableTier struct {
ID string `json:"id"`
Title string `json:"title"`
Hands int `json:"hands"`
Entry int64 `json:"entry"`
Prize int64 `json:"prize"`
XP int `json:"xp"`
Trophy int `json:"trophy"`
ID string `json:"id"`
Title string `json:"title"`
Hands int `json:"hands"`
Entry int64 `json:"entry"`
Prize int64 `json:"prize"`
XP int `json:"xp"`
Trophy int `json:"trophy"`
RankReward int `json:"rank_reward"`
}
// Catalog کل کاتالوگ فروشگاه (برای GET /api/shop). از دیتابیس بارگذاری می‌شود.
@@ -70,6 +72,29 @@ type Catalog struct {
TableTiers []TableTier `json:"table_tiers"`
}
// rankTiers آستانه‌ی امتیازِ هر نشانِ رتبه (از پایین به بالا).
var rankTiers = []struct {
Name string
Min int64
}{
{"bronze", 0},
{"silver", 500},
{"gold", 1500},
{"diamond", 3000},
{"king", 5000},
}
// RankTier نام و اندیسِ نشانِ رتبه را از امتیازِ رتبه برمی‌گرداند.
func RankTier(points int64) (name string, index int) {
name, index = rankTiers[0].Name, 0
for i, t := range rankTiers {
if points >= t.Min {
name, index = t.Name, i
}
}
return name, index
}
// LevelInfo سطح فعلی، XP درون‌سطح و XP لازم برای سطح بعد را از XP کل محاسبه می‌کند.
// نیاز هر سطح: ۵۰ × شماره سطح (مثلاً سطح ۸ ⇒ ۴۰۰).
func LevelInfo(totalXP int64) (level int, into int64, need int64) {