-fix issue 270
This commit is contained in:
wagic.the.homebrew@gmail.com
2010-01-04 13:51:39 +00:00
parent 441b8a0f3a
commit 3e33e2b756
5 changed files with 39 additions and 26 deletions

View File

@@ -251,6 +251,7 @@ icatian_priest.txt
imaginary_pet.txt
immaculate_magistrate.txt
instill_energy_i166.txt
iron_will_i270.txt
jodahs_avenger.txt
juggernaut.txt
jump.txt

View File

@@ -10,11 +10,19 @@ firstmain
[PLAYER1]
inplay:Suntail Hawk
hand:Iron Will
library:Plains
library:plains
manapool:{W}{W}
[PLAYER2]
[DO]
Iron Will
choice 0
Suntail Hawk
human
[ASSERT]
firstmain
[PLAYER1]
inplay:Suntail Hawk
graveyard:iron will
library:plains
manapool:{W}
[PLAYER2]
[END]

View File

@@ -111,7 +111,7 @@ class Constants
RARITY_U = 'U', //Uncommons
RARITY_C = 'C', //Commons
RARITY_L = 'L', //Lands
RARITY_T = 'T', //Tokens, reserved for internal logic.
RARITY_T = 'T', //Tokens
//Price for singles
PRICE_1M = 3000,

View File

@@ -104,10 +104,7 @@ void ActionLayer::Render (){
for (int i=0;i<mCount;i++){
if (mObjects[i]!=NULL){
ActionElement * currentAction = (ActionElement *)mObjects[i];
//if (currentAction->getActivity() > 0){
currentAction->Render();
//return;
//}
}
}
}
@@ -119,11 +116,6 @@ void ActionLayer::setCurrentWaitingAction(ActionElement * ae){
}
TargetChooser * ActionLayer::getCurrentTargetChooser(){
/* for (int i=0;i<mCount;i++){
ActionElement * currentAction = (ActionElement *)mObjects[i];
if(currentAction->waitingForAnswer) return currentAction->tc;
}
return NULL;*/
if (currentWaitingAction && currentWaitingAction->waitingForAnswer)
return currentWaitingAction->tc;
return NULL;
@@ -247,8 +239,7 @@ void ActionLayer::doReactTo(int menuIndex){
}
void ActionLayer::ButtonPressed(int controllerid, int controlid){
if (controlid == -1){
}else{
if (controlid != -1){
ActionElement * currentAction = (ActionElement *)mObjects[controlid];
currentAction->reactToTargetClick(menuObject);
}

View File

@@ -403,6 +403,17 @@ void GameObserver::cardClick (MTGCardInstance * card, Targetable * object){
}
if (card){
/* Fix for Issue http://code.google.com/p/wagic/issues/detail?id=270
put into play is hopefully the only ability causing that kind of trouble
If the same kind of issue occurs with other abilities, let's think of a cleaner solution
*/
if (targetChooser) {
MTGAbility * a = mLayers->actionLayer()->getAbility(MTGAbility::PUT_INTO_PLAY);
a->reactToClick(card);
return;
}
reaction = mLayers->actionLayer()->isReactingToClick(card);
if (reaction == -1) mLayers->actionLayer()->reactToClick(card);
}else{
@@ -410,23 +421,25 @@ void GameObserver::cardClick (MTGCardInstance * card, Targetable * object){
if (reaction == -1) mLayers->actionLayer()->reactToTargetClick(object);
}
if (reaction != -1){
if (!card) return;
//Current player's hand
if (currentPlayer->game->hand->hasCard(card) && currentGamePhase == Constants::MTG_PHASE_CLEANUP && currentPlayer->game->hand->nb_cards > 7){
currentPlayer->game->putInGraveyard(card);
}else if (reaction){
if (reaction == 1){
mLayers->actionLayer()->reactToClick(card);
}else{
mLayers->actionLayer()->setMenuObject(object);
}
}else if (card->isTapped() && card->controller() == currentPlayer){
ConstraintResolver::untap(this, card);
if (reaction == -1) return;
if (!card) return;
//Current player's hand
if (currentPlayer->game->hand->hasCard(card) && currentGamePhase == Constants::MTG_PHASE_CLEANUP && currentPlayer->game->hand->nb_cards > 7){
currentPlayer->game->putInGraveyard(card);
}else if (reaction){
if (reaction == 1){
mLayers->actionLayer()->reactToClick(card);
}else{
mLayers->actionLayer()->setMenuObject(object);
}
}else if (card->isTapped() && card->controller() == currentPlayer){
ConstraintResolver::untap(this, card);
}
}