Snow
Mana produced by snow permanent
This commit is contained in:
@@ -127,6 +127,95 @@ int ExtraManaCost::doPay()
|
||||
return 1;
|
||||
}
|
||||
|
||||
//Snow cost
|
||||
SnowCost * SnowCost::clone() const
|
||||
{
|
||||
SnowCost * ec = NEW SnowCost(*this);
|
||||
return ec;
|
||||
}
|
||||
|
||||
SnowCost::SnowCost() :
|
||||
ExtraCost("Snow Mana")
|
||||
{
|
||||
}
|
||||
|
||||
int SnowCost::isPaymentSet()
|
||||
{
|
||||
if (source->controller()->getManaPool()->getConvertedCost())
|
||||
{
|
||||
int result = 0;
|
||||
result += source->controller()->snowManaG;
|
||||
result += source->controller()->snowManaU;
|
||||
result += source->controller()->snowManaR;
|
||||
result += source->controller()->snowManaB;
|
||||
result += source->controller()->snowManaW;
|
||||
result += source->controller()->snowManaC;
|
||||
return result;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int SnowCost::canPay()
|
||||
{
|
||||
return isPaymentSet();
|
||||
}
|
||||
|
||||
int SnowCost::doPay()
|
||||
{
|
||||
if (source->controller()->getManaPool()->getConvertedCost())
|
||||
{
|
||||
int result = 0;
|
||||
result += source->controller()->snowManaG;
|
||||
result += source->controller()->snowManaU;
|
||||
result += source->controller()->snowManaR;
|
||||
result += source->controller()->snowManaB;
|
||||
result += source->controller()->snowManaW;
|
||||
result += source->controller()->snowManaC;
|
||||
if (result)
|
||||
{
|
||||
if (source->controller()->snowManaC && source->controller()->getManaPool()->canAfford(ManaCost::parseManaCost("{1}",NULL,source)))
|
||||
{
|
||||
source->controller()->getManaPool()->pay(ManaCost::parseManaCost("{1}",NULL,source));
|
||||
source->controller()->snowManaC -= 1;
|
||||
}
|
||||
else if (source->controller()->snowManaG && source->controller()->getManaPool()->canAfford(ManaCost::parseManaCost("{g}",NULL,source)))
|
||||
{
|
||||
source->controller()->getManaPool()->pay(ManaCost::parseManaCost("{g}",NULL,source));
|
||||
source->controller()->snowManaG -= 1;
|
||||
}
|
||||
else if (source->controller()->snowManaU && source->controller()->getManaPool()->canAfford(ManaCost::parseManaCost("{u}",NULL,source)))
|
||||
{
|
||||
source->controller()->getManaPool()->pay(ManaCost::parseManaCost("{u}",NULL,source));
|
||||
source->controller()->snowManaU -= 1;
|
||||
}
|
||||
else if (source->controller()->snowManaR && source->controller()->getManaPool()->canAfford(ManaCost::parseManaCost("{r}",NULL,source)))
|
||||
{
|
||||
source->controller()->getManaPool()->pay(ManaCost::parseManaCost("{r}",NULL,source));
|
||||
source->controller()->snowManaR -= 1;
|
||||
}
|
||||
else if (source->controller()->snowManaB && source->controller()->getManaPool()->canAfford(ManaCost::parseManaCost("{b}",NULL,source)))
|
||||
{
|
||||
source->controller()->getManaPool()->pay(ManaCost::parseManaCost("{b}",NULL,source));
|
||||
source->controller()->snowManaB -= 1;
|
||||
}
|
||||
else if (source->controller()->snowManaW && source->controller()->getManaPool()->canAfford(ManaCost::parseManaCost("{w}",NULL,source)))
|
||||
{
|
||||
source->controller()->getManaPool()->pay(ManaCost::parseManaCost("{w}",NULL,source));
|
||||
source->controller()->snowManaW -= 1;
|
||||
}
|
||||
else if (source->controller()->snowManaC && source->controller()->getManaPool()->canAfford(ManaCost::parseManaCost("{c}",NULL,source)))
|
||||
{
|
||||
source->controller()->getManaPool()->pay(ManaCost::parseManaCost("{c}",NULL,source));
|
||||
source->controller()->snowManaC -= 1;
|
||||
}
|
||||
else
|
||||
return 0;
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
//life cost
|
||||
LifeCost * LifeCost::clone() const
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user