Ejemplo n.º 1
0
void KDeckDefStatic::Init(System::File::KTabFile2* fileReader)
{
	char buf[1024];
	fileReader->GetInteger("ID", 0, (int*)&m_Id);
	fileReader->GetInteger("HeroID", 0, (int*)&m_heroID);
	fileReader->GetInteger("HeroHp", 0, (int*)&m_heroHp);
	fileReader->GetInteger("Res", 0, (int*)&m_res);
	fileReader->GetInteger("Rnd", 0, (int*)&m_rnd);
	fileReader->GetInteger("HeroStrong", 0, (int*)&m_heroStrong);
	fileReader->GetInteger("ResLucky", 0, (int*)&m_resLucky);
	fileReader->GetInteger("HeroLucky", 0, (int*)&m_heroLucky);
	fileReader->GetInteger("Fate", 0, (int*)&m_fate);
	
	fileReader->GetString("DECK", "", buf, 1023);
	setDeck(buf);
	
	fileReader->GetInteger("DrawNum", 0, (int*)&m_drawNum);
	
	fileReader->GetString("HeroSkill", "", buf, 1023);
	setHeroSkill(buf);


	fileReader->GetString("Dynamic", "", buf, 1023);
	setDynamic(buf);
}
Ejemplo n.º 2
0
void WndDeckEditor::actLoadDeckFromClipboard()
{
	if (!confirmClose())
		return;
	
	DlgLoadDeckFromClipboard dlg;
	if (!dlg.exec())
		return;
	
	setDeck(dlg.getDeckList());
	setWindowModified(true);
}
void RDPanelButton::reset()
{
    if(button_length[button_hook_mode]>0) {
        setActiveLength(button_length[button_hook_mode]);
    }
    else {
        setActiveLength(button_length[0]);
    }
    button_start_time=QTime();
    button_end_time=QTime();
    setColor(button_default_color);
    if(button_cart!=0) {
        WriteKeycap(-1);
    }
    setDeck(-1);
    button_play_deck=NULL;
}
Ejemplo n.º 4
0
void WndDeckEditor::actLoadDeck()
{
	if (!confirmClose())
		return;

	QFileDialog dialog(this, tr("Load deck"));
	dialog.setDirectory(settingsCache->getDeckPath());
	dialog.setNameFilters(DeckList::fileNameFilters);
	if (!dialog.exec())
		return;

	QString fileName = dialog.selectedFiles().at(0);
	DeckList::FileFormat fmt = DeckList::getFormatFromNameFilter(dialog.selectedNameFilter());
	DeckList *l = new DeckList;
	if (l->loadFromFile(fileName, fmt))
		setDeck(l, fileName, fmt);
	else
		delete l;
}
Ejemplo n.º 5
0
int main (){
   
     int seed = 1000;
     int r,i;
     int result = 0;
     bool pass = true;
     int p=0;
     int handPos;

     int k[10] = { adventurer, council_room, feast, gardens, mine
          , remodel, smithy, village, baron, great_hall };
     struct gameState G;
     

     printf("TESTING VILLAGE CARD\n");

     for(p=0; p<MAX_PLAYERS; p++){
       
       switch(p){
         case 0:
           printf("Testing for village card at index 0 of hand\n");
           break;
         case 1: 
           printf("Testing for village card at last index of hand\n");
           break;
         case 2:
           printf("Normal testing mode\n");
           break;
         case 3:
           printf("Normal testing mode\n");
           break;
       }
       memset(&G, 23, sizeof(struct gameState));   // clear the game state
       r = initializeGame(MAX_PLAYERS, k, seed, &G); // initialize a new game
       //set deck for each player
       setDeck(&G);
       //change each player's hand, with at least 1 village card
       setHand(&G);
       //set handpos of village card
       for(i=0; i< G.handCount[p]; i++){
         if(G.hand[p][i] == village){
           handPos = i;
         }
       }

       result = checkVillage(p, &G, handPos);
       if (result == -1){
            pass = false;
       }


       if (pass == true){
         printf("ALL TESTS PASSED!\n");
       }else{
         printf("FAILURES\n");
       }

     }


  return 0;
} 
Ejemplo n.º 6
0
void Engine::init(DataReader& reader, const std::vector<Player*> players, const std::vector<GameObserver*>& observers)
{
    // check that engine is not initialized yet
    assert(!mPlayerIdCounter);
    assert(mGeneratedIds.empty());
    assert(mPlayers.empty());
    assert(!mDeck);
    assert(mGameObservers.empty());

    // read players count
    std::vector<const PlayerId*>::size_type playersCount;
    reader.read(playersCount);

    assert(players.size() == playersCount);
    // add players
    for (std::vector<Player*>::const_iterator it = players.begin(); it != players.end(); ++it) {
        add(**it);
    }

    const Card defaultCard(SUIT_LAST, RANK_LAST);
    // read each player cards
    for (std::vector<const PlayerId*>::const_iterator it = mGeneratedIds.begin(); it != mGeneratedIds.end(); ++it) {
        CardSet& playerCards = mPlayersCards[*it];
        assert(playerCards.empty());
        reader.read(playerCards, defaultCard);
        mPlayers[*it]->cardsRestored(playerCards);
    }

    // read deck
    Deck deck;
    reader.read(deck, defaultCard);
    Suit trumpSuit;
    reader.read(trumpSuit);
    deck.setTrumpSuit(trumpSuit);
    setDeck(deck);

    // read current player index
    unsigned int currentPlayerindex;
    reader.read(currentPlayerindex);
    mCurrentPlayer = mGeneratedIds[currentPlayerindex];
    // read current round index
    reader.read(mRoundIndex);

    bool roundRunning;
    reader.read(roundRunning);
    if (roundRunning) {
        mCurrentRoundIndex = &mRoundIndex;
        // read current round data
        std::vector<const PlayerId*>::size_type attackersAmount;
        reader.read(attackersAmount);

        while (attackersAmount--) {
            unsigned int attackerIndex;
            reader.read(attackerIndex);
            mAttackers.push_back(mGeneratedIds[attackerIndex]);
        }
        unsigned int defenderIndex;
        reader.read(defenderIndex);
        mDefender = mGeneratedIds[defenderIndex];
        reader.read(mPassedCounter);
        unsigned int currentRoundAttackerIndex;
        reader.read(currentRoundAttackerIndex);
        mCurrentRoundAttackerId = mGeneratedIds[currentRoundAttackerIndex];

        std::vector<Card> attackCards;
        reader.read(attackCards, defaultCard);
        for (std::vector<Card>::iterator it = attackCards.begin(); it != attackCards.end(); ++it) {
            mTableCards.addAttackCard(*it);
        }

        std::vector<Card> defendCards;
        reader.read(defendCards, defaultCard);
        for (std::vector<Card>::iterator it = defendCards.begin(); it != defendCards.end(); ++it) {
            mTableCards.addDefendCard(*it);
        }
        reader.read(mMaxAttackCards);
        reader.read(mDefendFailed);
        mPickAttackCardFromTable = !mDefendFailed && attackCards.size() == defendCards.size() + 1;
    }

    // append observers
    mGameObservers.insert(mGameObservers.end(), observers.begin(), observers.end());

    std::map<const PlayerId*, unsigned int> playersCards;
    for (PlayerIds::const_iterator it = mGeneratedIds.begin(); it != mGeneratedIds.end(); ++it) {
        playersCards[*it] = mPlayersCards[*it].size();
    }
    std::for_each(mGameObservers.begin(), mGameObservers.end(), GameRestoredNotification(mGeneratedIds, playersCards, mDeck->size(), mDeck->trumpSuit(), mTableCards));

    // initialize observers
    unsigned int savedObservers;
    reader.read(savedObservers);
    assert(savedObservers == mGameObservers.size());
    for (std::vector<GameObserver*>::iterator it = mGameObservers.begin(); it != mGameObservers.end(); ++it) {
        unsigned int observerDataStart = reader.position();
        (*it)->init(reader);
        unsigned int actualObserverDataSize = reader.position() - observerDataStart;
        unsigned int expectedObserverDataSize;
        reader.read(expectedObserverDataSize);
        assert(actualObserverDataSize == expectedObserverDataSize);
    }
}
Ejemplo n.º 7
0
Char::Char( CATEGORY cat, Vec2 lc, TileDeck *dk, Layer *tgtlayer, int client_id, int internal_id ) : Prop2D(), category(cat), clean_at(0), client_id(client_id), internal_id(internal_id) {
    setScl(24,24);
    setDeck(dk);
    setLoc(lc);
    tgtlayer->insertProp(this);
}
Ejemplo n.º 8
0
 Particle(TileDeck *dk) : Prop2D() {
     setDeck(dk);
     setScl(32);
     setIndex(0);        
     v = Vec2( range(-100,100), range(-100,100) );        
 }
Ejemplo n.º 9
0
int main (){
   
     int seed = 1000;
     int numPlayer = 2;
     int flag; //0=no cards in deck, 
     int r;
     int result = 0;
     bool pass = true;
     int p=0;

     int k[10] = { adventurer, council_room, feast, gardens, mine
          , remodel, smithy, village, baron, great_hall };
     struct gameState G;
     
     memset(&G, 23, sizeof(struct gameState));   // clear the game state
     r = initializeGame(numPlayer, k, seed, &G); // initialize a new game

     printf("TESTING DRAW CARD\n");

     for(p=0; p<numPlayer; p++){
       printf("Testing for player %d\n", p+1);

      /*EDGE CASES*/
       //CHECK for 0 cards in deck
       printf("Testing for no cards in deck\n");
       flag = 0;
       G.deckCount[p] = 0;
       setDiscardDeck(p, &G);
       result = checkDrawCard(p, &G, flag);
       if (result == -1){
            pass = false;
       }

       //check for neg cards in deck
       printf("Testing for neg cards in deck\n");
       flag = 0;
       G.deckCount[p] = -5;
       setDiscardDeck(p, &G);
       result = checkDrawCard(p, &G, flag);
       if (result == -1){
            pass = false;
       }
       
       //testing for max cards in deck
       printf("Testing for max cards in deck\n");
       flag = 1;
       G.deckCount[p] = MAX_DECK;
       setDeck(p, &G);
       result = checkDrawCard(p, &G, flag);
       if (result == -1){
            pass = false;
       }

     
       /**NORMAL CASES**/
       printf("Testing for 10 cards in deck\n");
       flag = 1;
       G.deckCount[p] = 10;
       setDiscardDeck(p, &G);
       result = checkDrawCard(p, &G, flag);
       if (result == -1){
            pass = false;
       }

       //check for 0 cards in hand
       printf("Testing for 0 cards in hand\n");
       flag = 1;
       G.deckCount[p] = 10;
       G.handCount[p] =0;
       setDiscardDeck(p, &G);
       result = checkDrawCard(p, &G, flag);
       if (result == -1){
            pass = false;
       }




       if (pass == true){
         printf("ALL TESTS PASSED!\n");
       }else{
         printf("FAILURES\n");
       }

     }


  return 0;
}