12张卡组不允许2张ssr+

This commit is contained in:
xianyi
2025-08-29 09:57:06 +08:00
parent 95a93497ea
commit 0d6d1f970c
3 changed files with 31 additions and 2 deletions

View File

@@ -21,13 +21,15 @@ MonoBehaviour:
mana_max: 10
# 初始化手牌数量
cards_start: 3
# 每回合抽牌数量
cards_per_turn: 1
# 手牌数量限制
cards_max: 10
# 超时时间
turn_duration: 600
second_bonus: {fileID: 11400000, guid: 9503f60659f1df04eb3dd7fa925885fb, type: 2}
mulligan: 1
deck_size: 8
deck_size: 12
deck_duplicate_max: 2
sell_ratio: 0.8
ai_type: 10

View File

@@ -27,6 +27,7 @@ namespace TcgEngine
[Header("Deckbuilding")]
public int deck_size = 30;
public int deck_duplicate_max = 2;
public int deck_ssr_max = 2;
[Header("Buy/Sell")]
public float sell_ratio = 0.8f;

View File

@@ -657,8 +657,9 @@ namespace TcgEngine.UI
bool owner = IsCardOwned(udata, card.GetCard(), card.GetVariant(), in_deck + 1);
bool deck_limit = in_deck_same < GameplayData.Get().deck_duplicate_max;
bool ssr_limit = CheckSSRLimit(icard);
if (owner && deck_limit)
if (owner && deck_limit && ssr_limit)
{
AddDeckCard(icard, variant);
RefreshDeckCards();
@@ -764,6 +765,31 @@ namespace TcgEngine.UI
return udata.GetCardQuantity(card, variant) >= quantity;
}
private bool CheckSSRLimit(CardData card)
{
// 检查卡牌稀有度是否 >= 4 (SSR级别)
if (card.rarity.rank >= 4)
{
int ssr_count = CountSSRCards();
return ssr_count < GameplayData.Get().deck_ssr_max;
}
return true;
}
private int CountSSRCards()
{
int count = 0;
foreach (UserCardData ucard in deck_cards)
{
CardData card = CardData.Get(ucard.tid);
if (card != null && card.rarity.rank >= 4)
{
count += ucard.quantity;
}
}
return count;
}
private string GetSelectedHeroId()
{
foreach (IconButton btn in hero_powers)