This commit is contained in:
subgib
2025-08-29 09:57:44 +08:00
3 changed files with 31 additions and 2 deletions

View File

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

View File

@@ -27,6 +27,7 @@ namespace TcgEngine
[Header("Deckbuilding")] [Header("Deckbuilding")]
public int deck_size = 30; public int deck_size = 30;
public int deck_duplicate_max = 2; public int deck_duplicate_max = 2;
public int deck_ssr_max = 2;
[Header("Buy/Sell")] [Header("Buy/Sell")]
public float sell_ratio = 0.8f; 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 owner = IsCardOwned(udata, card.GetCard(), card.GetVariant(), in_deck + 1);
bool deck_limit = in_deck_same < GameplayData.Get().deck_duplicate_max; 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); AddDeckCard(icard, variant);
RefreshDeckCards(); RefreshDeckCards();
@@ -764,6 +765,31 @@ namespace TcgEngine.UI
return udata.GetCardQuantity(card, variant) >= quantity; 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() private string GetSelectedHeroId()
{ {
foreach (IconButton btn in hero_powers) foreach (IconButton btn in hero_powers)