Example #1
0
void testMortJoueur()
{
    Partie partie("Partie 1", 2, 2);
    Joueur *j1 = NULL, *j2 = NULL;
    Plateau *pl = NULL;
    Action *action = new Action();
    Sort *sort = NULL;
    vector<string> listeSort;
    listeSort.push_back("Boule de Feu");
    listeSort.push_back("Sceau de Controle");
    partie.initialiser();
    j1 =  partie.ajouterJoueur("Tarte", "pika", listeSort);
    j2 =  partie.ajouterJoueur("Platon", "Sala", listeSort);
    partie.demarrerPartie();
    pl = partie.getPlateau();
    sort = UsineSort::fabriqueSort("Boule de Feu");
    sort->setProprietaire(j2);
    action->setOrigine(NULL);
    action->setSort(sort);
    action->ajouterCible(pl->getCase(0,0));
    j2->diminuerMana(j2->getManaActuel());
    assert(j2->getManaActuel() == 0);
    partie.effectuerAction(action, j2);
    assert(j2->estMort() == true);
    assert(j2->getManaMaximum() == 0);
    assert(pl->getCase(0,0)->getDefenseActuelle() == pl->getCase(0,0)->getDefenseInitiale());
    delete action;
    delete sort;
}
Example #2
0
void ReceptionClient::traitementInfoSort()
{
    char* argument[6] = {NULL};
    Sort* sort = NULL;
    Case* caseCible = NULL;
    Joueur* proprietaire = NULL;
    int x = -1, y = -1, duree = -1;
    unsigned int id = 0;
    for(int i = 0; i < 6; i++)
    {
        argument[i] = strtok (NULL, SEPARATEUR_ELEMENT);
    }
    for(int i = 0; i < 6; i++)
    {
        if(argument[i] == NULL)
        {
            //Info fausse
            return;
        }
    }
    x = atoi(argument[4]);
    y = atoi(argument[5]);
    duree = atoi(argument[3]);
    id = atoi(argument[1]);

    sort = this->partie->getSort(Position::fabriquePosition(x, y), id);
    //Sort inexistant sur la case
    if(sort == NULL)
    {
        sort = UsineSort::fabriqueSort(argument[0]);
        //Pas de sort de ce nom
        if(sort == NULL)
        {
            return;
        }
        proprietaire = this->partie->getJoueur((argument[2]));
        //Pas de joueur de ce nom
        if(proprietaire == NULL)
        {
            return;
        }
        sort->setProprietaire(proprietaire);
        sort->setId(id);
        caseCible = this->partie->getCase(Position::fabriquePosition(x, y));
        //Pas de case à cette position
        if(caseCible != NULL)
        {
            caseCible->ajouterSort(sort, duree);
        }
    }
}