Exemplo n.º 1
0
        /// <summary>
        /// 建立抽牌堆
        /// </summary>
        /// <param name="settings">遊戲設定</param>
        public DrawPile(GameSettings settings)
        {
            // NOTE: 各色牌都有 3張1 2張2,3,4 1張5
            CardValueType[] values =
            {
                CardValueType.Value1, CardValueType.Value1, CardValueType.Value1,
                CardValueType.Value2, CardValueType.Value2,
                CardValueType.Value3, CardValueType.Value3,
                CardValueType.Value4, CardValueType.Value4,
                CardValueType.Value5
            };

            int cardNumber = ( int )settings.ColorCount * values.Length;

            CardIndexType[] indeies = new CardIndexType[cardNumber];
            for (int count = 0; count < cardNumber; ++count)
            {
                indeies[count] = new CardIndexType(count);
            }
            GameBoard.RandomSort(indeies);

            Card[] tempCards = new Card[cardNumber];
            for (int count = 0; count < cardNumber; ++count)
            {
                CardColorType color  = ( CardColorType )(((count / 10) + 1) * 10);
                CardValueType number = values[count % 10];
                tempCards[count] = new Card(new CardIdType(count), indeies[count], color, number);
            }
            GameBoard.RandomSort(tempCards);

            Pile = new Queue <Card>(tempCards);
        }
Exemplo n.º 2
0
    void NewCard(CardNumbeType CNT, CardColorType CCT)
    {
        GameObject GCard = Instantiate(objCard, this.transform);
        Card       card  = GCard.GetComponent <Card>();

        Heaps.Add(card);
        card.SetCardSprite(CNT, CCT);
    }
Exemplo n.º 3
0
 public Card(CardIdType id, CardIndexType index, CardColorType color, CardValueType value)
 {
     this.Id          = id;
     this.Index       = index;
     this.Color       = color;
     this.Value       = value;
     this.Information = new CardInformation();
 }
Exemplo n.º 4
0
 /// <summary>
 /// 提示此牌的顏色
 /// </summary>
 /// <param name="promptColor">提示的顏色</param>
 /// <param name="realColor">牌的顏色</param>
 public void Prompt(CardColorType promptColor, CardColorType realColor)
 {
     if (promptColor == realColor)
     {
         this.Color = realColor;
     }
     else if (!ImpossiblePrompt.Contains(( PromptInformation )promptColor))
     {
         ImpossiblePrompt.Add(( PromptInformation )promptColor);
     }
 }
    public Texture GetWeaponTexture(CardColorType colorType)
    {
        int index = (int)colorType;

        if (this.weaponCardTextures.Length <= index)
        {
            return(null);
        }
        if (this.weaponCardTextures[index] == null)
        {
            return(null);
        }
        return(this.weaponCardTextures[index]);
    }
Exemplo n.º 6
0
        /// <summary>
        /// 傳遞訊息
        ///   消耗 1個藍色傳達指示物,若已無未消耗藍色傳達指示物,則不可執行此行動。
        ///   告訴另一玩家其手牌的線索
        ///   提供線索須遵循以下原則:
        ///     只能就玩家手牌內的某種顏色或某種數字提供線索
        /// </summary>
        /// <param name="color">提示的顏色</param>
        /// <param name="player">被提示的玩家</param>
        /// <param name="board">遊戲資訊</param>
        /// <returns>提示結果</returns>
        public PromptCardResult PromptCard(CardColorType color, IHanabiPlayer player, GameBoard board)
        {
            if (color == CardColorType.Unknown)
            {
                return(PromptCardResult.InvalidPrompt);
            }

            if (!board.Use())
            {
                return(PromptCardResult.PromptEmpty);
            }

            player.PromptCard(color);
            return(PromptCardResult.Success);
        }
Exemplo n.º 7
0
    public void SetCardSprite(CardNumbeType cardNumbeType, CardColorType cardColorType)
    {
        if (cardColorType != CardColorType.NNull)
        {
            this.cardColorType = cardColorType;
        }
        if (cardNumbeType != CardNumbeType.NNull)
        {
            this.cardNumbeType = cardNumbeType;
        }
        string name = cardColorType.ToString() + (cardNumbeType.ToString()).Substring(1, cardNumbeType.ToString().Length - 1);

        Debug.Log(name);
        GetComponent <SpriteRenderer>().sprite = Resources.Load <Sprite>("Textures/" + name);
    }
Exemplo n.º 8
0
        public void PromptCard(CardColorType color)
        {
            foreach (var card in Cards)
            {
                if (card.Color == color)
                {
                    card.Information.Color = color;
                }
                else
                {
                    card.Information.ImpossiblePrompt.Add(( PromptInformation )color);
                }
            }

            CheckIsLastTurn();
        }
Exemplo n.º 9
0
 private void setCardColor()
 {
     if (this.EffectId == 65535)
     {
         this.CardColor = CardColorType.NormalMonster;
     }
     else if (this.Kind.Id < 32)
     {
         this.CardColor = CardColorType.EffectMonster;
     }
     else if (this.Kind.Id == 96 || this.Kind.Id == 128)
     {
         this.CardColor = CardColorType.Trap;
     }
     else if (this.Kind.Id == 160)
     {
         this.CardColor = CardColorType.Ritual;
     }
     else
     {
         this.CardColor = CardColorType.Magic;
     }
 }
Exemplo n.º 10
0
 public Texture GetWeaponTexture(CardColorType colorType)
 {
     object[] objArray1 = new object[] { colorType };
     return(base.method_14 <Texture>("GetWeaponTexture", objArray1));
 }
Exemplo n.º 11
0
 public CardColorService(CardColorType cardColor)
 {
     this.cardColor = cardColor;
 }