Erwan
- Fix issue 102 (Rampage not working correctly)
This commit is contained in:
@@ -21,6 +21,7 @@ generic/persist2.txt
|
|||||||
generic/persist3.txt
|
generic/persist3.txt
|
||||||
generic/phases.txt
|
generic/phases.txt
|
||||||
generic/rampage.txt
|
generic/rampage.txt
|
||||||
|
generic/rampage2.txt
|
||||||
generic/regenerate.txt
|
generic/regenerate.txt
|
||||||
generic/sacrifice.txt
|
generic/sacrifice.txt
|
||||||
generic/summoning_sickness.txt
|
generic/summoning_sickness.txt
|
||||||
|
|||||||
@@ -0,0 +1,49 @@
|
|||||||
|
#Testing Rampage
|
||||||
|
# issue #102: http://code.google.com/p/wagic/issues/detail?id=102
|
||||||
|
[INIT]
|
||||||
|
COMBATATTACKERS
|
||||||
|
[PLAYER1]
|
||||||
|
inplay:Hunding Gjornersen
|
||||||
|
[PLAYER2]
|
||||||
|
inplay:black knight,grizzly bears
|
||||||
|
[DO]
|
||||||
|
Hunding Gjornersen
|
||||||
|
next
|
||||||
|
black knight
|
||||||
|
grizzly bears
|
||||||
|
next
|
||||||
|
#blockers order
|
||||||
|
next
|
||||||
|
#damage first strike
|
||||||
|
next
|
||||||
|
#combat damage->Gui
|
||||||
|
next
|
||||||
|
#combat Damage
|
||||||
|
eot
|
||||||
|
eot
|
||||||
|
next
|
||||||
|
#upkeep
|
||||||
|
next
|
||||||
|
#draw
|
||||||
|
next
|
||||||
|
#main
|
||||||
|
next
|
||||||
|
#begin
|
||||||
|
next
|
||||||
|
#attackers
|
||||||
|
Hunding Gjornersen
|
||||||
|
next
|
||||||
|
#blockers
|
||||||
|
next
|
||||||
|
#damage
|
||||||
|
next
|
||||||
|
#combat end
|
||||||
|
[ASSERT]
|
||||||
|
COMBATEND
|
||||||
|
[PLAYER1]
|
||||||
|
inplay:Hunding Gjornersen
|
||||||
|
[PLAYER2]
|
||||||
|
graveyard:grizzly bears
|
||||||
|
inplay:black knight
|
||||||
|
life:15
|
||||||
|
[END]
|
||||||
@@ -3980,11 +3980,12 @@ class ARampageAbility:public MTGAbility{
|
|||||||
int receiveEvent(WEvent * event) {
|
int receiveEvent(WEvent * event) {
|
||||||
if (dynamic_cast<WEventBlockersChosen*>(event)) {
|
if (dynamic_cast<WEventBlockersChosen*>(event)) {
|
||||||
nbOpponents = source->blockers.size();
|
nbOpponents = source->blockers.size();
|
||||||
|
if (nbOpponents <= MaxOpponent) return 0;
|
||||||
source->power += PowerModifier * (nbOpponents - MaxOpponent);
|
source->power += PowerModifier * (nbOpponents - MaxOpponent);
|
||||||
source->addToToughness(ToughnessModifier * (nbOpponents - MaxOpponent));
|
source->addToToughness(ToughnessModifier * (nbOpponents - MaxOpponent));
|
||||||
}
|
}
|
||||||
else if (WEventPhaseChange* pe = dynamic_cast<WEventPhaseChange*>(event)) {
|
else if (WEventPhaseChange* pe = dynamic_cast<WEventPhaseChange*>(event)) {
|
||||||
if (Constants::MTG_PHASE_AFTER_EOT == pe->to->id)
|
if (Constants::MTG_PHASE_AFTER_EOT == pe->to->id && nbOpponents > MaxOpponent)
|
||||||
{
|
{
|
||||||
source->power -= PowerModifier * (nbOpponents - MaxOpponent);
|
source->power -= PowerModifier * (nbOpponents - MaxOpponent);
|
||||||
source->addToToughness(-ToughnessModifier * (nbOpponents - MaxOpponent));
|
source->addToToughness(-ToughnessModifier * (nbOpponents - MaxOpponent));
|
||||||
|
|||||||
@@ -123,6 +123,7 @@ void GuiCombat::removeOne(DefenserDamaged* blocker, CombatStep step)
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool GuiCombat::clickOK(){
|
bool GuiCombat::clickOK(){
|
||||||
|
active = activeAtk = NULL;
|
||||||
cursor_pos = NONE;
|
cursor_pos = NONE;
|
||||||
switch (step)
|
switch (step)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -118,7 +118,8 @@ int TestSuiteAI::Act(float dt){
|
|||||||
}
|
}
|
||||||
else if (action.compare("next")==0){
|
else if (action.compare("next")==0){
|
||||||
GuiCombat * gc = g->mLayers->combatLayer();
|
GuiCombat * gc = g->mLayers->combatLayer();
|
||||||
if (ORDER == g->combatStep || DAMAGE == g->combatStep) gc->clickOK();
|
if (ORDER == g->combatStep || DAMAGE == g->combatStep)
|
||||||
|
gc->clickOK();
|
||||||
else g->userRequestNextGamePhase();
|
else g->userRequestNextGamePhase();
|
||||||
}
|
}
|
||||||
else if (action.compare("yes")==0)
|
else if (action.compare("yes")==0)
|
||||||
|
|||||||
Reference in New Issue
Block a user