fixed a bug with lords not removing altercost correctly when the source is phased.

added 
cantbeblockerof(this)<--this = the card who owns the ability.
cantbeblockerof(targetchooser) <--the target cant block anything targetable by this targetchooser.
spin engine and similar will use cantbeblockerof(this).
others were done with a workaround, which i hope will be updated soon.
This commit is contained in:
omegablast2002@yahoo.com
2013-02-06 02:45:40 +00:00
parent 1d06a74fd9
commit e424c3ab27
7 changed files with 182 additions and 8 deletions

View File

@@ -103,6 +103,7 @@ GameObserver::GameObserver(WResourceManager *output, JGE* input)
mLayers = NULL;
mTrash = new Trash();
mDeckManager = new DeckManager();
waitingGameStateCheck = 0;
}
GamePhase GameObserver::getCurrentGamePhase()
@@ -581,7 +582,13 @@ void GameObserver::gameStateBasedEffects()
{
if(getCurrentTargetChooser() && int(getCurrentTargetChooser()->getNbTargets()) == getCurrentTargetChooser()->maxtargets)
getCurrentTargetChooser()->done = true;
if (mLayers->stackLayer()->count(0, NOT_RESOLVED) <= 50)
waitingGameStateCheck++;
if(waitingGameStateCheck > 50)
{
waitingGameStateCheck++;
waitingGameStateCheck--;
}
if(waitingGameStateCheck > 50)
{
//if there are more than 50 unresolved actions on the stack, lets allow a gameStates update
//to make sure we are not caught up in a loop, example :Exquisite Blood + Sanguine Bond
@@ -592,6 +599,7 @@ void GameObserver::gameStateBasedEffects()
if (getCurrentTargetChooser() || mLayers->actionLayer()->isWaitingForAnswer())
return;
}
waitingGameStateCheck = 0;
////////////////////////
//---apply damage-----//
//after combat effects//