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:
omegablast2002@yahoo.com
2011-04-14 15:26:19 +00:00
parent 8c5499eaf3
commit fe3d09175c
2 changed files with 27 additions and 57 deletions

View File

@@ -275,6 +275,7 @@ class ActivatedAbility:public MTGAbility{
virtual int isReactingToClick(MTGCardInstance * card, ManaCost * mana = NULL);
virtual int reactToTargetClick(Targetable * object);
virtual int resolve() = 0;
void activeSideEffect();
virtual ActivatedAbility* clone() const = 0;
virtual ostream& toString(ostream& out) const;
};

View File

@@ -4087,27 +4087,8 @@ int ActivatedAbility::reactToClick(MTGCardInstance * card)
counters++;
if(sideEffect && usesBeforeSideEffects.size())
{
WParsedInt * use = NEW WParsedInt(usesBeforeSideEffects.c_str(),NULL,source);
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();
}
}
activeSideEffect();
}
fireAbility();
return 1;
@@ -4154,25 +4135,7 @@ int ActivatedAbility::reactToTargetClick(Targetable * object)
counters++;
if(sideEffect && usesBeforeSideEffects.size())
{
WParsedInt * use = NEW WParsedInt(usesBeforeSideEffects.c_str(),NULL,source);
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();
}
}
activeSideEffect();
}
this->resolve();
return 1;
@@ -4180,30 +4143,36 @@ int ActivatedAbility::reactToTargetClick(Targetable * object)
counters++;
if(sideEffect && usesBeforeSideEffects.size())
{
WParsedInt * use = NEW WParsedInt(usesBeforeSideEffects.c_str(),NULL,source);
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();
}
}
activeSideEffect();
}
fireAbility();
return 1;
}
void ActivatedAbility::activeSideEffect()
{
WParsedInt * use = NEW WParsedInt(usesBeforeSideEffects.c_str(),NULL,source);
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();
}
}
return;
}
ActivatedAbility::~ActivatedAbility()
{
//Ok, this will probably lead to crashes, maybe with lord abilities involving "X" costs.