Example #1
0
 public virtual void OnScoreCard(TriadCard card, ref float score)
 {
 }
Example #2
0
 public TriadCardInstance(TriadCardInstance copyFrom)
 {
     card          = copyFrom.card;
     owner         = copyFrom.owner;
     scoreModifier = copyFrom.scoreModifier;
 }
        // special logic, covered by GUI
        public static void StaticSwapCards(TriadGameData gameData, TriadCard swapFromBlue, int blueSlotIdx, TriadCard swapFromRed, int redSlotIdx)
        {
            // implement this rule only for manual mode, screen captures get everything automatically
            TriadDeckInstanceManual deckBlueEx = gameData.deckBlue as TriadDeckInstanceManual;
            TriadDeckInstanceManual deckRedEx  = gameData.deckRed as TriadDeckInstanceManual;

            if (deckBlueEx != null && deckRedEx != null)
            {
                bool bIsRedFromKnown = redSlotIdx < deckRedEx.deck.knownCards.Count;
                if (gameData.bDebugRules)
                {
                    TriadGameModifierSwap DummyOb = new TriadGameModifierSwap();
                    Logger.WriteLine(">> " + DummyOb.RuleName + "! blue[" + blueSlotIdx + "]:" + swapFromBlue.Name +
                                     " <-> red[" + redSlotIdx + (bIsRedFromKnown ? "" : ":Opt") + "]:" + swapFromRed.Name);
                }

                TriadDeck blueDeckSwapped = new TriadDeck(deckBlueEx.deck.knownCards, deckBlueEx.deck.unknownCardPool);
                TriadDeck redDeckSwapped  = new TriadDeck(deckRedEx.deck.knownCards, deckRedEx.deck.unknownCardPool);

                // ignore order in red deck
                redDeckSwapped.knownCards.Add(swapFromBlue);
                redDeckSwapped.knownCards.Remove(swapFromRed);
                redDeckSwapped.unknownCardPool.Remove(swapFromRed);

                // preserve order in blue deck
                blueDeckSwapped.knownCards[blueSlotIdx] = swapFromRed;

                gameData.deckBlue = new TriadDeckInstanceManual(blueDeckSwapped);
                gameData.deckRed  = new TriadDeckInstanceManual(redDeckSwapped);
            }
        }
Example #4
0
 public TriadCardInstance(TriadCard card, ETriadCardOwner owner)
 {
     this.card     = card;
     this.owner    = owner;
     scoreModifier = 0;
 }
        public override void OnScoreCard(TriadCard card, ref float score)
        {
            int numberSum = card.Sides[0] + card.Sides[1] + card.Sides[2] + card.Sides[3];

            score = 40 - numberSum;
        }