Erwan
-some bug fixes (test suite)
This commit is contained in:
@@ -9,6 +9,7 @@ inplay:raging goblin
|
|||||||
Drudge skeletons
|
Drudge skeletons
|
||||||
swamp
|
swamp
|
||||||
Drudge skeletons
|
Drudge skeletons
|
||||||
|
choice 1
|
||||||
next
|
next
|
||||||
raging goblin
|
raging goblin
|
||||||
next
|
next
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
#Testing bug with Rampage
|
#Testing bug with Rampage
|
||||||
|
# Whenever Pygmy Troll becomes blocked, it gets +1/+1 until end of turn for each creature blocking it. Green: Regenerate Pygmy Troll.
|
||||||
[INIT]
|
[INIT]
|
||||||
FIRSTMAIN
|
FIRSTMAIN
|
||||||
[PLAYER1]
|
[PLAYER1]
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ class MTGGameZone {
|
|||||||
static int zoneStringToId(string zoneName);
|
static int zoneStringToId(string zoneName);
|
||||||
static MTGGameZone *intToZone(int zoneId, MTGCardInstance * source = NULL,MTGCardInstance * target = NULL);
|
static MTGGameZone *intToZone(int zoneId, MTGCardInstance * source = NULL,MTGCardInstance * target = NULL);
|
||||||
bool needShuffle;
|
bool needShuffle;
|
||||||
|
virtual const char * getName(){return "zone";};
|
||||||
virtual ostream& toString(ostream&) const;
|
virtual ostream& toString(ostream&) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -96,27 +96,32 @@ class MTGLibrary: public MTGGameZone {
|
|||||||
void shuffleTopToBottom(int nbcards);
|
void shuffleTopToBottom(int nbcards);
|
||||||
MTGCardInstance * draw();
|
MTGCardInstance * draw();
|
||||||
virtual ostream& toString(ostream&) const;
|
virtual ostream& toString(ostream&) const;
|
||||||
|
const char * getName(){return "library";}
|
||||||
};
|
};
|
||||||
|
|
||||||
class MTGGraveyard: public MTGGameZone {
|
class MTGGraveyard: public MTGGameZone {
|
||||||
public:
|
public:
|
||||||
// MTGGraveyard();
|
// MTGGraveyard();
|
||||||
virtual ostream& toString(ostream&) const;
|
virtual ostream& toString(ostream&) const;
|
||||||
|
const char * getName(){return "graveyard";}
|
||||||
};
|
};
|
||||||
|
|
||||||
class MTGHand: public MTGGameZone {
|
class MTGHand: public MTGGameZone {
|
||||||
public:
|
public:
|
||||||
virtual ostream& toString(ostream&) const;
|
virtual ostream& toString(ostream&) const;
|
||||||
|
const char * getName(){return "hand";}
|
||||||
};
|
};
|
||||||
|
|
||||||
class MTGRemovedFromGame: public MTGGameZone {
|
class MTGRemovedFromGame: public MTGGameZone {
|
||||||
public:
|
public:
|
||||||
virtual ostream& toString(ostream&) const;
|
virtual ostream& toString(ostream&) const;
|
||||||
|
const char * getName(){return "exile";}
|
||||||
};
|
};
|
||||||
|
|
||||||
class MTGStack: public MTGGameZone {
|
class MTGStack: public MTGGameZone {
|
||||||
public:
|
public:
|
||||||
virtual ostream& toString(ostream&) const;
|
virtual ostream& toString(ostream&) const;
|
||||||
|
const char * getName(){return "stack";}
|
||||||
};
|
};
|
||||||
|
|
||||||
class MTGInPlay: public MTGGameZone {
|
class MTGInPlay: public MTGGameZone {
|
||||||
@@ -128,6 +133,7 @@ class MTGInPlay: public MTGGameZone {
|
|||||||
int nbDefensers( MTGCardInstance * attacker);
|
int nbDefensers( MTGCardInstance * attacker);
|
||||||
int nbPartners(MTGCardInstance * attacker);
|
int nbPartners(MTGCardInstance * attacker);
|
||||||
virtual ostream& toString(ostream&) const;
|
virtual ostream& toString(ostream&) const;
|
||||||
|
const char * getName(){return "battlefield";}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -48,7 +48,17 @@ int Damage::resolve(){
|
|||||||
|
|
||||||
GameObserver * g = GameObserver::GetInstance();
|
GameObserver * g = GameObserver::GetInstance();
|
||||||
WEvent * e = NEW WEventDamage(this);
|
WEvent * e = NEW WEventDamage(this);
|
||||||
|
|
||||||
|
//Replacement Effects
|
||||||
e = g->replacementEffects->replace(e);
|
e = g->replacementEffects->replace(e);
|
||||||
|
if (!e) return 0;
|
||||||
|
WEventDamage * ev = dynamic_cast<WEventDamage*>(e);
|
||||||
|
if (!ev) {
|
||||||
|
g->receiveEvent(e);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
damage = ev->damage->damage;
|
||||||
|
target = ev->damage->target;
|
||||||
|
|
||||||
int a = 0;
|
int a = 0;
|
||||||
if (damage) a = target->dealDamage(damage);
|
if (damage) a = target->dealDamage(damage);
|
||||||
@@ -110,6 +120,7 @@ int DamageStack::resolve(){
|
|||||||
if (damage->state == RESOLVED_OK) damage->target->afterDamage();
|
if (damage->state == RESOLVED_OK) damage->target->afterDamage();
|
||||||
//damage->target->afterDamage();
|
//damage->target->afterDamage();
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -264,7 +264,7 @@ bool TargetChooser::canTarget(Targetable * target){
|
|||||||
if (target->typeAsTarget() == TARGET_CARD){
|
if (target->typeAsTarget() == TARGET_CARD){
|
||||||
MTGCardInstance * card = (MTGCardInstance *) target;
|
MTGCardInstance * card = (MTGCardInstance *) target;
|
||||||
if (source && targetter && card->isInPlay() && (card->has(Constants::SHROUD)|| card->protectedAgainst(targetter) )) return false;
|
if (source && targetter && card->isInPlay() && (card->has(Constants::SHROUD)|| card->protectedAgainst(targetter) )) return false;
|
||||||
if (source && targetter && card->isInPlay() && (source->controller() != card->controller()) && (card->has(Constants::OPPONENTSHROUD) || card->protectedAgainst(targetter))) return false;
|
if (source && targetter && card->isInPlay() && (targetter->controller() != card->controller()) && (card->has(Constants::OPPONENTSHROUD) || card->protectedAgainst(targetter))) return false;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else if (target->typeAsTarget() == TARGET_STACKACTION)
|
else if (target->typeAsTarget() == TARGET_STACKACTION)
|
||||||
|
|||||||
@@ -367,10 +367,9 @@ int TestSuite::assertGame(){
|
|||||||
for (int j = 0; j < 4; j++){
|
for (int j = 0; j < 4; j++){
|
||||||
MTGGameZone * zone = playerZones[j];
|
MTGGameZone * zone = playerZones[j];
|
||||||
if (zone->nb_cards != endState.playerData[i].zones[j].nbitems){
|
if (zone->nb_cards != endState.playerData[i].zones[j].nbitems){
|
||||||
sprintf(result, "<span class=\"error\">==Card number not the same in %i==, expected %i, got %i</span><br />",j, endState.playerData[i].zones[j].nbitems, zone->nb_cards);
|
sprintf(result, "<span class=\"error\">==Card number not the same in player %i's %s==, expected %i, got %i</span><br />",i, zone->getName(), endState.playerData[i].zones[j].nbitems, zone->nb_cards);
|
||||||
Log(result);
|
Log(result);
|
||||||
error++;
|
error++;
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
for (int k = 0; k < endState.playerData[i].zones[j].nbitems; k++){
|
for (int k = 0; k < endState.playerData[i].zones[j].nbitems; k++){
|
||||||
int cardid = endState.playerData[i].zones[j].cards[k];
|
int cardid = endState.playerData[i].zones[j].cards[k];
|
||||||
|
|||||||
Reference in New Issue
Block a user