Beispiel #1
0
    public override void Play(AbstractCharacter source, AbstractArgument target)
    {
        base.Play(source, target);
        var rnd = new System.Random();
        List <AbstractCard> cards = source.GetDrawPile().deck.OrderBy(x => rnd.Next()).Take(CHOICES).ToList();       // Efficient? Not particularly. But draw piles will probably only ever range to at most 50 cards anyways.

        NegotiationManager.Instance.SelectCardsFromList(cards, 1, true, this);
    }
Beispiel #2
0
 public void Render()
 {
     current               = TurnManager.Instance.GetTurnList()[0];
     drawPileCards.text    = current.GetDrawPile().GetSize().ToString();
     discardPileCards.text = current.GetDiscardPile().GetSize().ToString();
     actionCounter.text    = current.curAP + "/" + current.maxAP;
     charName.text         = current.NAME;
 }
 // post-negotiation cleanup helper function
 public void Cleanup(AbstractCharacter character)
 {
     actionQueue.Clear();
     character.coreArgument.poise = 0;
     character.GetHand().Clear();
     character.GetSupportArguments().Clear();
     character.GetDrawPile().Clear();
     character.GetDiscardPile().Clear();
     character.GetScourPile().Clear();
 }
    // (Hopefully) deep copy deck contents from permadeck to drawpile, then shuffle it.
    public void DeepCopyDeck(AbstractCharacter character)
    {
        foreach (AbstractCard card in character.permaDeck.ToList())
        {
            Type   cardType   = card.GetType();
            object copiedCard = Activator.CreateInstance(cardType);

            // This _should_ be acceptable enough for what I'm doing.
            // https://stackoverflow.com/questions/12263099/function-to-clone-an-arbitrary-object
            foreach (var field in cardType.GetFields())
            {
                object originalCardValue = field.GetValue(card);
                // Debug.Log(field + ": " + originalCardValue);
                field.SetValue(copiedCard, originalCardValue);
            }
            character.GetDrawPile().AddCard(copiedCard as AbstractCard);
        }
        character.GetDrawPile().Shuffle();
    }
Beispiel #5
0
 public void RenderCounts()
 {
     drawCount.text    = player.GetDrawPile().GetSize().ToString();
     discardCount.text = player.GetDiscardPile().GetSize().ToString();
     if (player.GetScourPile().GetSize() > 0)
     {
         scourObject.SetActive(true);
     }
     scourCount.text  = player.GetScourPile().GetSize().ToString();
     actionCount.text = player.curAP.ToString();
 }