Loading...

cards

Module that handles all the inner mechanics of libarcomage.

  • Stats[] Player;

    Players. Supports more than 2. TODO to implement it.

  • bool DiscardRound;

    Whether this turn is discard only.

  • bool InitComplete;

    Indicates whether the Queue is set up already.

  • shared int Turn;

    Number of the player whose turn it is. This is an absolute value.

  • int NextTurn;

    Number of the player who will go next.

  • int LastTurn;

    Number of the player whose turn ended before.

  • CardInfo[] Queue;

    Cards in the bank.

  • size_t ShuffleTimer;

    Countdown until a reshuffling is needed.

  • void InitLuaFunctions();

    Defines functions and sends them over to Lua.

  • void ShuffleQueue();

    Shuffles the card queue using the Fisher-Yates algorithm

  • CardInfo GetCard();

    Pops and returns the next card in the queue and moves the ShuffleTimer down.

  • void PutCard(CardInfo CI);

    Pushes the card into the queue.

  • float AlterAIPriority(float Priority, CardInfo CI);

    Changes the AI priority of the given card by looking at the general trends of the game. This is not specific to any card; card-specific code goes to Lua.

    Bugs

    Cards should use tags to denote which cards increase tower, which damage etc.

    Return Value

    Altered priority.

  • bool CanPlayCard(CardInfo CI, bool Discarded);

    Check whether the card the payer is attempting to play is playable.

  • bool PlayCard(int CardPlace, bool Discarded);

    Functionality when playing a card.

    Discussion

    Plays the animation, handles the turn sequence, distributes resources

    Parameters: CardPlace = The number of the card in the player's hand. Discarded = Whether this card is to be discarded.

  • void SaveStatChanges(CardInfo PlayedCard, bool bDiscarded);

    Figures out what exactly the played card changed and writes it into StatChanges. Needed for the MArcomage card abilities.

  • void GetNextTurn(CardInfo CI, bool Discarded);

    Executes the card to get the number of the player that is supposed to move next.

  • void Normalise();

    Checks whether the card effect made us go out of bounds, and if it did, makes the values stay within acceptable limits.