fix changes from r2003 so that they will work with multiple effects through &&.

This commit is contained in:
salmelo16
2010-04-15 00:00:11 +00:00
parent 74d2bbf324
commit c8b573d029
2 changed files with 16 additions and 2 deletions
Binary file not shown.
+16 -2
View File
@@ -400,14 +400,28 @@ class GenericActivatedAbility:public ActivatedAbility, public NestedAbility{
int resolve(){ int resolve(){
counters++; counters++;
SAFE_DELETE(ability->cost); setAbilityCost(ability);
ability->cost = abilityCost->Diff(cost);
SAFE_DELETE(abilityCost); SAFE_DELETE(abilityCost);
ability->target = target; //may have been updated... ability->target = target; //may have been updated...
if (ability) return ability->resolve(); if (ability) return ability->resolve();
return 0; return 0;
} }
void setAbilityCost(MTGAbility * _ability){
SAFE_DELETE(_ability->cost);
_ability->cost = abilityCost->Diff(cost);
NestedAbility * na = dynamic_cast<NestedAbility *>(_ability);
if (na) setAbilityCost(na->ability);
MultiAbility * ma = dynamic_cast<MultiAbility *>(_ability);
if (ma) {
for (size_t i = 0; i < ma->abilities.size(); i++) {
setAbilityCost(ma->abilities[i]);
}
}
}
const char * getMenuText(){ const char * getMenuText(){
if (ability) return ability->getMenuText(); if (ability) return ability->getMenuText();
return "Error"; return "Error";