fix changes from r2003 so that they will work with multiple effects through &&.
This commit is contained in:
Binary file not shown.
@@ -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";
|
||||||
|
|||||||
Reference in New Issue
Block a user