From b1d271f1c28a2578a2b55bbe49e54ad1e7ae1d27 Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Fri, 24 Feb 2017 07:25:19 +0800 Subject: [PATCH] add forced interrupt --- projects/mtg/include/ActionStack.h | 2 +- projects/mtg/src/ActionStack.cpp | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/projects/mtg/include/ActionStack.h b/projects/mtg/include/ActionStack.h index 65d6f37a0..d2d3aaffe 100644 --- a/projects/mtg/include/ActionStack.h +++ b/projects/mtg/include/ActionStack.h @@ -230,7 +230,7 @@ public: Player * askIfWishesToInterrupt; int garbageCollect(); int addAction(Interruptible * interruptible); - Spell * addSpell(MTGCardInstance* card, TargetChooser * tc, ManaCost * mana, int payResult, int storm); + Spell * addSpell(MTGCardInstance* card, TargetChooser * tc, ManaCost * mana, int payResult, int storm, bool forcedinterrupt = false); int AddNextGamePhase(); int AddNextCombatStep(); int addPutInGraveyard(MTGCardInstance * card); diff --git a/projects/mtg/src/ActionStack.cpp b/projects/mtg/src/ActionStack.cpp index 5799c089a..fa15d1c13 100644 --- a/projects/mtg/src/ActionStack.cpp +++ b/projects/mtg/src/ActionStack.cpp @@ -789,7 +789,7 @@ int ActionStack::addAction(Interruptible * action) } Spell * ActionStack::addSpell(MTGCardInstance * _source, TargetChooser * tc, ManaCost * mana, int payResult, - int storm) + int storm, bool forcedinterrupt) { DebugTrace("ACTIONSTACK Add spell"); if (storm > 0) @@ -799,7 +799,12 @@ Spell * ActionStack::addSpell(MTGCardInstance * _source, TargetChooser * tc, Man Spell * spell = NEW Spell(observer, mObjects.size(), _source, tc, mana, payResult); addAction(spell); if (!observer->players[0]->isAI() && _source->controller() == observer->players[0] && 0 == options[Options::INTERRUPTMYSPELLS].number) - interruptDecision[0] = DONT_INTERRUPT; + { + if(forcedinterrupt) + interruptDecision[0] = INTERRUPT; + else + interruptDecision[0] = DONT_INTERRUPT; + } return spell; }