static void S_1(int turn, MemoryData memory, CardPool cardPool, GameFlow gameFlow)
 {
     cardPool.GetCard("Basic_000").priority = 5;
     cardPool.GetCard("Basic_001").priority = 5;
     cardPool.GetCard("Basic_002").priority = 5;
     cardPool.GetCard("Basic_003").priority = 5;;
 }
 static void S_12(int turn, MemoryData memory, CardPool cardPool, GameFlow gameFlow)
 {
     cardPool.GetCard("Adv_000").priority = 30;
     cardPool.GetCard("Adv_001").priority = 30;
     cardPool.GetCard("Adv_002").priority = 30;
     cardPool.GetCard("Adv_003").priority = 30;;
 }
Exemplo n.º 3
0
    public void ApplyView(CardPool.CardContext [] contexts)
    {
        this.contexts = contexts;

        cardLT.SetCardContext(contexts[0]);
        cardRT.SetCardContext(contexts[1]);
        cardLB.SetCardContext(contexts[2]);
        cardRB.SetCardContext(contexts[3]);
    }
Exemplo n.º 4
0
    public void SetCardContext(CardPool.CardContext cx)
    {
        this.cx = cx;

        title.text = cx.title;
        image.sprite = cx.image;
        description.text = cx.description;
        fullDescription.text = cx.fullDescription;
    }
Exemplo n.º 5
0
 void Awake()
 {
     instance = this;
     timer = GetComponent<WorldTimer>();
     noteRef = GetComponent<WorldNoteRef>();
     memory = GetComponent<Memory>();
     cardPool = GetComponent<CardPool>();
     triggerMgr = GetComponent<TriggerMgr>();
     cardCanvas = _cardCanvas;
     eventCanvas = _eventCanvas;
 }
Exemplo n.º 6
0
        private void InitCardPool(string cdbFile, int mainNum, int exNum)
        {
            List <string>    CardPoolLocal   = new List <string>();
            List <string>    CardPoolExLocal = new List <string>();
            SQLiteConnection sqlcon          = new SQLiteConnection($"Data Source={cdbFile}");

            sqlcon.Open();
            SQLiteCommand cmd    = new SQLiteCommand("SELECT id,type FROM datas", sqlcon);
            var           reader = cmd.ExecuteReader();

            while (reader.Read())
            {
                string id   = reader["id"].ToString();
                long   type = (long)reader["type"];
                int    num  = 3;
                CardPoolLFList.Add(id, 0);
                if (LFList.ContainsKey(id))
                {
                    num = LFList[id];
                }
                if (((type & TYPE_FUSION) > 0) || ((type & TYPE_XYZ) > 0) ||
                    ((type & TYPE_LINK) > 0) || ((type & TYPE_SYNCHRO) > 0))
                {
                    for (int i = 0; i < num; i++)
                    {
                        CardPoolExLocal.Add(id);
                    }
                }
                else
                {
                    for (int i = 0; i < num; i++)
                    {
                        CardPoolLocal.Add(id);
                    }
                }
            }
            for (int i = 0; i < mainNum; i++)
            {
                int index = _rd.Next(0, CardPoolLocal.Count);
                CardPool.Add(CardPoolLocal[index]);
                CardPoolLocal.RemoveAt(index);
                if (!CardPoolLFList.ContainsKey(CardPoolLocal[index]))
                {
                    CardPoolLFList.Add(CardPoolLocal[index], 1);
                }
                else
                {
                    CardPoolLFList[CardPoolLocal[index]]++;
                }
            }
            for (int i = 0; i < exNum; i++)
            {
                int index = _rd.Next(0, CardPoolExLocal.Count);
                CardPoolEx.Add(CardPoolExLocal[index]);
                CardPoolLFList[CardPoolExLocal[index]]++;
                CardPoolExLocal.RemoveAt(index);
            }
            reader.Close();
            cmd.Dispose();
            sqlcon.Dispose();
            CardPoolLocal.Clear();
            CardPoolExLocal.Clear();
        }
 void IReturnCard.OnReturnCard(PlayerId id, CardHand cardHand, CardPool cardPool, PositionId positionId) =>
 UiPool.AddCard(cardPool, positionId, false);
 void IRevealCard.OnRevealCard(PlayerId id, CardPool cardPool, PositionId positionId) =>
 UiPool.AddCard(cardPool, positionId);
Exemplo n.º 9
0
 // Token: 0x060076EC RID: 30444 RVA: 0x00208350 File Offset: 0x00206550
 private void __callBase_SelectCardUseCrystal(CardPool cardPool, bool isSingleSelect)
 {
     base.SelectCardUseCrystal(cardPool, isSingleSelect);
 }
Exemplo n.º 10
0
        public void TestDealingCardsWithEightDeck()
        {
            CardPool eightDeckCardPool = new CardPool(8);

            DealCardsAndCheckProbability(eightDeckCardPool, 30);
        }
Exemplo n.º 11
0
 static void S_7(int turn, MemoryData memory, CardPool cardPool, GameFlow gameFlow)
 {
     memory.Fear = 100;;
 }
Exemplo n.º 12
0
 static void S_11(int turn, MemoryData memory, CardPool cardPool, GameFlow gameFlow)
 {
     memory.Approval +=10;;
 }
Exemplo n.º 13
0
 // Token: 0x06007704 RID: 30468 RVA: 0x002086AC File Offset: 0x002068AC
 public void __callBase_SelectCardUseTickets(CardPool cardPool, bool isSingleSelect)
 {
     this.m_owner.__callBase_SelectCardUseTickets(cardPool, isSingleSelect);
 }
Exemplo n.º 14
0
 static void S_2(int turn, MemoryData memory, CardPool cardPool, GameFlow gameFlow)
 {
     memory.Fund += 5;
 }
Exemplo n.º 15
0
 // Token: 0x06007700 RID: 30464 RVA: 0x0020866C File Offset: 0x0020686C
 public bool __callBase_IsUsedOutActivityCardPoolSelectOpportunity(CardPool cardPool)
 {
     return(this.m_owner.__callBase_IsUsedOutActivityCardPoolSelectOpportunity(cardPool));
 }
Exemplo n.º 16
0
 // Token: 0x06007703 RID: 30467 RVA: 0x0020869C File Offset: 0x0020689C
 public int __callBase_GetCrystalCount(CardPool cardPool, bool isSingleSelect, out bool isTenSelectDiscount)
 {
     return(this.m_owner.__callBase_GetCrystalCount(cardPool, isSingleSelect, out isTenSelectDiscount));
 }
Exemplo n.º 17
0
 // Token: 0x060076F0 RID: 30448 RVA: 0x00208380 File Offset: 0x00206580
 private void __callBase_SelectCardSpendTicketsOrCrystal(CardPool cardPool, bool isSingleSelect, bool isUsingTickets)
 {
     base.SelectCardSpendTicketsOrCrystal(cardPool, isSingleSelect, isUsingTickets);
 }
Exemplo n.º 18
0
 // Token: 0x060076EF RID: 30447 RVA: 0x00208374 File Offset: 0x00206574
 private int __callBase_CanUseTicketSelectCard(CardPool cardPool, int ticketNums)
 {
     return(base.CanUseTicketSelectCard(cardPool, ticketNums));
 }
Exemplo n.º 19
0
 // Token: 0x060076ED RID: 30445 RVA: 0x0020835C File Offset: 0x0020655C
 private int __callBase_CanSelectCard(CardPool cardPool, bool isSingleSelect, bool isUsingTickets)
 {
     return(base.CanSelectCard(cardPool, isSingleSelect, isUsingTickets));
 }
Exemplo n.º 20
0
        private bool GenerateDeck(int numOfMain, int numOfEx, string file)
        {
            if (CardPool.Count < numOfMain || CardPoolEx.Count < numOfEx)
            {
                return(false);
            }
            Dictionary <string, int> main = new Dictionary <string, int>();
            Dictionary <string, int> ex   = new Dictionary <string, int>();

            for (int i = 0; i < numOfMain; i++)
            {
                int index = _rd.Next(CardPool.Count);
                if (main.ContainsKey(CardPool[index]))
                {
                    main[CardPool[index]]++;
                }
                else
                {
                    main.Add(CardPool[index], 1);
                }
                CardPool.RemoveAt(index);
            }
            for (int i = 0; i < numOfEx; i++)
            {
                if (CardPoolEx.Count == 0)
                {
                    break;
                }
                int index = _rd.Next(CardPoolEx.Count);
                if (ex.ContainsKey(CardPoolEx[index]))
                {
                    ex[CardPoolEx[index]]++;
                }
                else
                {
                    ex.Add(CardPoolEx[index], 1);
                }
                CardPoolEx.RemoveAt(index);
            }
            FileStream   fs = new FileStream(file, FileMode.Create);
            StreamWriter sw = new StreamWriter(fs);

            sw.WriteLine("#created by DeckGen");
            sw.WriteLine("#main");
            foreach (var kvp in main)
            {
                for (int i = 0; i < kvp.Value; i++)
                {
                    sw.WriteLine(kvp.Key);
                }
            }
            sw.WriteLine("#extra");
            foreach (var kvp in ex)
            {
                for (int i = 0; i < kvp.Value; i++)
                {
                    sw.WriteLine(kvp.Key);
                }
            }
            sw.WriteLine("!side");
            sw.Close();
            fs.Close();
            main.Clear();
            ex.Clear();
            return(true);
        }
Exemplo n.º 21
0
 // Token: 0x060076EA RID: 30442 RVA: 0x00208338 File Offset: 0x00206538
 private int __callBase_GetCrystalCount(CardPool cardPool, bool isSingleSelect, out bool isTenSelectDiscount)
 {
     return(base.GetCrystalCount(cardPool, isSingleSelect, out isTenSelectDiscount));
 }
Exemplo n.º 22
0
 static void S_4(int turn, MemoryData memory, CardPool cardPool, GameFlow gameFlow)
 {
     memory.Approval +=5;
     memory.Fear +=5;;
 }
Exemplo n.º 23
0
 // Token: 0x060076E7 RID: 30439 RVA: 0x00208314 File Offset: 0x00206514
 private bool __callBase_IsUsedOutActivityCardPoolSelectOpportunity(CardPool cardPool)
 {
     return(base.IsUsedOutActivityCardPoolSelectOpportunity(cardPool));
 }
Exemplo n.º 24
0
 private void Awake()
 {
     _defaultPosition   = transform.position;
     _unfocusedPosition = _defaultPosition - unfocusedOffset;
     _cardPool          = new CardPool(maxCards, this, cardPrototype, cardRotation);
 }
Exemplo n.º 25
0
 public CardPoolScriptController(CardPool self)
 {
     this.self = self;
 }
Exemplo n.º 26
0
 // Token: 0x06007705 RID: 30469 RVA: 0x002086BC File Offset: 0x002068BC
 public void __callBase_SelectCardUseCrystal(CardPool cardPool, bool isSingleSelect)
 {
     this.m_owner.__callBase_SelectCardUseCrystal(cardPool, isSingleSelect);
 }
Exemplo n.º 27
0
 // Token: 0x060076EB RID: 30443 RVA: 0x00208344 File Offset: 0x00206544
 private void __callBase_SelectCardUseTickets(CardPool cardPool, bool isSingleSelect)
 {
     base.SelectCardUseTickets(cardPool, isSingleSelect);
 }
Exemplo n.º 28
0
 static void S_3(int turn, MemoryData memory, CardPool cardPool, GameFlow gameFlow)
 {
     memory.Fear += 5;;
 }
Exemplo n.º 29
0
 // Token: 0x06007706 RID: 30470 RVA: 0x002086CC File Offset: 0x002068CC
 public int __callBase_CanSelectCard(CardPool cardPool, bool isSingleSelect, bool isUsingTickets)
 {
     return(this.m_owner.__callBase_CanSelectCard(cardPool, isSingleSelect, isUsingTickets));
 }
Exemplo n.º 30
0
 // Token: 0x06007708 RID: 30472 RVA: 0x002086EC File Offset: 0x002068EC
 public int __callBase_CanUseTicketSelectCard(CardPool cardPool, int ticketNums)
 {
     return(this.m_owner.__callBase_CanUseTicketSelectCard(cardPool, ticketNums));
 }
Exemplo n.º 31
0
 // Token: 0x06007709 RID: 30473 RVA: 0x002086FC File Offset: 0x002068FC
 public void __callBase_SelectCardSpendTicketsOrCrystal(CardPool cardPool, bool isSingleSelect, bool isUsingTickets)
 {
     this.m_owner.__callBase_SelectCardSpendTicketsOrCrystal(cardPool, isSingleSelect, isUsingTickets);
 }
Exemplo n.º 32
0
 void ApplyView(CardView view, CardPool.CardContext cx)
 {
     view.title.text = cx.title;
     view.image.sprite = cx.image;
     view.description.text = cx.description;
 }
Exemplo n.º 33
0
        private void RemoveDeckCard(object sender, RoutedEventArgs e)
        {
            var src = e.OriginalSource as FrameworkElement;

            if (src == null)
            {
                return;
            }
            var element = (src.DataContext as ObservableMultiCard);

            if (element == null)
            {
                return;
            }
            var section = deckTabs.SelectedItem as ObservableSection;

            if (element.Quantity > 1)
            {
                OpenQuantityPopup(qty =>
                {
                    int actuallyRemoved = Math.Min(qty, element.Quantity);
                    if (!UnlimitedPool.Contains(element))
                    {
                        for (int i = 0; i < actuallyRemoved; ++i)
                        {
                            // When there are multiple copies of the same card, we insert clones of the CardModel.
                            // Otherwise, the ListBox gets confused with selection.
                            if (element.Quantity > 1)
                            {
                                var tempElement      = element.AsObservable();
                                tempElement.Quantity = 1;
                                CardPool.Add(tempElement);
                            }
                            else
                            {
                                var tempElement      = element.AsObservable();
                                tempElement.Quantity = 1;
                                CardPool.Add(tempElement);
                            }

                            element.Quantity -= 1;
                            if (element.Quantity <= 0)
                            {
                                element.Quantity = 0;
                                section.Cards.RemoveCard(element);
                                break;
                            }
                        }
                    }
                    else
                    {
                        if (qty >= element.Quantity)
                        {
                            section.Cards.RemoveCard(element);
                        }
                        else
                        {
                            element.Quantity -= qty;
                        }
                    }
                });
            }
            else
            {
                if (section != null)
                {
                    element.Quantity = 1;
                    section.Cards.RemoveCard(element);
                }
                if (!UnlimitedPool.Contains(element))
                {
                    CardPool.Add(element);
                }
            }
        }
Exemplo n.º 34
0
 public CardView MakeCardView(CardPool.CardContext cx)
 {
     return null;
 }
Exemplo n.º 35
0
        private static int DealCardsAndCheckProbability(CardPool cardPool, int cardsToDeal, int[] dealingOrder = null, int dealingPosition = 0)
        {
            int[]  cardsByValueLocal = new int[13];
            int    cardCountLocal    = cardPool.CardCount;
            Random rand = new Random();

            Assert.IsTrue(cardCountLocal > 0, "Empty card pool is used.");

            // Save card pool state to local
            for (int i = 0; i < cardsByValueLocal.Length; i++)
            {
                cardsByValueLocal[i] = (int)Math.Round(cardCountLocal * cardPool.GetValueRangeProbability(i, i), 0);
            }

            // Deal card and update local state
            for (int i = 0; i < cardsToDeal; i++)
            {
                int cardValue;
                if (dealingOrder != null)
                {
                    if (dealingPosition >= dealingOrder.Length)
                    {
                        cardValue = -1;
                    }
                    else
                    {
                        cardValue = cardPool.DealCard(dealingOrder[dealingPosition++]);
                    }
                }
                else
                {
                    int[] availableValues = cardPool.GetAvailableCardValues().ToArray();
                    if (availableValues.Length == 0)
                    {
                        cardValue = -1;
                    }
                    else
                    {
                        int valIndex = rand.Next(0, availableValues.Length - 1);
                        cardValue = cardPool.DealCard(availableValues[valIndex]);
                    }
                }

                Console.WriteLine("Deal Card {0}.", cardValue);

                if (cardValue < 0)
                {
                    break;
                }

                cardCountLocal--;
                cardsByValueLocal[cardValue]--;
            }

            // Check local against the card pool
            Assert.AreEqual(cardPool.CardCount, cardCountLocal, "Local card count is incorrect.");
            if (cardCountLocal > 0)
            {
                for (int i = 0; i < cardsByValueLocal.Length; i++)
                {
                    decimal probabilityLocal = (decimal)cardsByValueLocal[i] / cardCountLocal;
                    Assert.AreEqual(cardPool.GetValueRangeProbability(i, i), probabilityLocal, string.Format("Local probability is incorrect for card value {0}", i));
                }
            }

            return(dealingPosition);
        }