removed some copy paste coding i did from previous commit :/ i was lazy, tho it surprises me that i always take the route of copy paste when doing it the right way is far less to change or debugg is something goes wrong, guess im a creature of habit.
This commit is contained in:
@@ -275,6 +275,7 @@ class ActivatedAbility:public MTGAbility{
|
|||||||
virtual int isReactingToClick(MTGCardInstance * card, ManaCost * mana = NULL);
|
virtual int isReactingToClick(MTGCardInstance * card, ManaCost * mana = NULL);
|
||||||
virtual int reactToTargetClick(Targetable * object);
|
virtual int reactToTargetClick(Targetable * object);
|
||||||
virtual int resolve() = 0;
|
virtual int resolve() = 0;
|
||||||
|
void activeSideEffect();
|
||||||
virtual ActivatedAbility* clone() const = 0;
|
virtual ActivatedAbility* clone() const = 0;
|
||||||
virtual ostream& toString(ostream& out) const;
|
virtual ostream& toString(ostream& out) const;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -4087,27 +4087,8 @@ int ActivatedAbility::reactToClick(MTGCardInstance * card)
|
|||||||
counters++;
|
counters++;
|
||||||
if(sideEffect && usesBeforeSideEffects.size())
|
if(sideEffect && usesBeforeSideEffects.size())
|
||||||
{
|
{
|
||||||
WParsedInt * use = NEW WParsedInt(usesBeforeSideEffects.c_str(),NULL,source);
|
activeSideEffect();
|
||||||
uses = use->getValue();
|
|
||||||
delete use;
|
|
||||||
if(counters == uses)
|
|
||||||
{
|
|
||||||
sa = sideEffect->clone();
|
|
||||||
sa->target = this->target;
|
|
||||||
sa->source = this->source;
|
|
||||||
if(sa->oneShot)
|
|
||||||
{
|
|
||||||
sa->fireAbility();
|
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
GenericInstantAbility * wrapper = NEW GenericInstantAbility(1, source, (Damageable *) (this->target), sa);
|
|
||||||
wrapper->addToGame();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
fireAbility();
|
fireAbility();
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
@@ -4154,25 +4135,7 @@ int ActivatedAbility::reactToTargetClick(Targetable * object)
|
|||||||
counters++;
|
counters++;
|
||||||
if(sideEffect && usesBeforeSideEffects.size())
|
if(sideEffect && usesBeforeSideEffects.size())
|
||||||
{
|
{
|
||||||
WParsedInt * use = NEW WParsedInt(usesBeforeSideEffects.c_str(),NULL,source);
|
activeSideEffect();
|
||||||
uses = use->getValue();
|
|
||||||
delete use;
|
|
||||||
if(counters == uses)
|
|
||||||
{
|
|
||||||
sa = sideEffect->clone();
|
|
||||||
sa->target = this->target;
|
|
||||||
sa->source = this->source;
|
|
||||||
if(sa->oneShot)
|
|
||||||
{
|
|
||||||
sa->fireAbility();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
GenericInstantAbility * wrapper = NEW GenericInstantAbility(1, source, (Damageable *) (this->target), sa);
|
|
||||||
wrapper->addToGame();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
this->resolve();
|
this->resolve();
|
||||||
return 1;
|
return 1;
|
||||||
@@ -4180,6 +4143,15 @@ int ActivatedAbility::reactToTargetClick(Targetable * object)
|
|||||||
counters++;
|
counters++;
|
||||||
if(sideEffect && usesBeforeSideEffects.size())
|
if(sideEffect && usesBeforeSideEffects.size())
|
||||||
{
|
{
|
||||||
|
activeSideEffect();
|
||||||
|
}
|
||||||
|
fireAbility();
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void ActivatedAbility::activeSideEffect()
|
||||||
|
{
|
||||||
WParsedInt * use = NEW WParsedInt(usesBeforeSideEffects.c_str(),NULL,source);
|
WParsedInt * use = NEW WParsedInt(usesBeforeSideEffects.c_str(),NULL,source);
|
||||||
uses = use->getValue();
|
uses = use->getValue();
|
||||||
delete use;
|
delete use;
|
||||||
@@ -4198,10 +4170,7 @@ int ActivatedAbility::reactToTargetClick(Targetable * object)
|
|||||||
wrapper->addToGame();
|
wrapper->addToGame();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
return;
|
||||||
fireAbility();
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ActivatedAbility::~ActivatedAbility()
|
ActivatedAbility::~ActivatedAbility()
|
||||||
|
|||||||
Reference in New Issue
Block a user