necroed
hide cards using necroed also fix castcard target if its a land.
This commit is contained in:
@@ -2115,6 +2115,7 @@ public:
|
|||||||
class AAMover: public ActivatedAbility
|
class AAMover: public ActivatedAbility
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
bool necro;
|
||||||
string destination;
|
string destination;
|
||||||
MTGAbility * andAbility;
|
MTGAbility * andAbility;
|
||||||
string named;
|
string named;
|
||||||
|
|||||||
@@ -265,7 +265,8 @@ class Constants
|
|||||||
CANTCREW = 143,
|
CANTCREW = 143,
|
||||||
HIDDENFACE = 144,
|
HIDDENFACE = 144,
|
||||||
ANYTYPEOFMANA = 145,
|
ANYTYPEOFMANA = 145,
|
||||||
NB_BASIC_ABILITIES = 146,
|
NECROED = 146,
|
||||||
|
NB_BASIC_ABILITIES = 147,
|
||||||
|
|
||||||
RARITY_S = 'S', //Special Rarity
|
RARITY_S = 'S', //Special Rarity
|
||||||
RARITY_M = 'M', //Mythics
|
RARITY_M = 'M', //Mythics
|
||||||
|
|||||||
@@ -4391,6 +4391,7 @@ AAMover::AAMover(GameObserver* observer, int _id, MTGCardInstance * _source, MTG
|
|||||||
andAbility = NULL;
|
andAbility = NULL;
|
||||||
if(!named.size() && source->controller()->isAI())
|
if(!named.size() && source->controller()->isAI())
|
||||||
named = overrideNamed(destination);
|
named = overrideNamed(destination);
|
||||||
|
necro = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
MTGGameZone * AAMover::destinationZone(Targetable * target)
|
MTGGameZone * AAMover::destinationZone(Targetable * target)
|
||||||
@@ -4411,6 +4412,8 @@ int AAMover::resolve()
|
|||||||
MTGCardInstance * _target = (MTGCardInstance *) target;
|
MTGCardInstance * _target = (MTGCardInstance *) target;
|
||||||
if (target)
|
if (target)
|
||||||
{
|
{
|
||||||
|
if(necro)
|
||||||
|
_target->basicAbilities[Constants::NECROED] = 1;
|
||||||
Player* p = _target->controller();
|
Player* p = _target->controller();
|
||||||
if (p)
|
if (p)
|
||||||
{
|
{
|
||||||
@@ -4496,18 +4499,23 @@ int AAMover::resolve()
|
|||||||
MTGCardInstance *newTarget = p->game->putInZone(_target, fromZone, destZone);
|
MTGCardInstance *newTarget = p->game->putInZone(_target, fromZone, destZone);
|
||||||
/*while(_target->next)
|
/*while(_target->next)
|
||||||
_target = _target->next;*/
|
_target = _target->next;*/
|
||||||
if(andAbility)
|
if(newTarget)
|
||||||
{
|
{
|
||||||
MTGAbility * andAbilityClone = andAbility->clone();
|
if(necro)
|
||||||
andAbilityClone->target = newTarget;
|
newTarget->basicAbilities[Constants::NECROED] = 1;
|
||||||
if(andAbility->oneShot)
|
if(andAbility)
|
||||||
{
|
{
|
||||||
andAbilityClone->resolve();
|
MTGAbility * andAbilityClone = andAbility->clone();
|
||||||
SAFE_DELETE(andAbilityClone);
|
andAbilityClone->target = newTarget;
|
||||||
}
|
if(andAbility->oneShot)
|
||||||
else
|
{
|
||||||
{
|
andAbilityClone->resolve();
|
||||||
andAbilityClone->addToGame();
|
SAFE_DELETE(andAbilityClone);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
andAbilityClone->addToGame();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -8104,7 +8112,13 @@ int AACastCard::resolveSpell()
|
|||||||
if (_target)
|
if (_target)
|
||||||
{
|
{
|
||||||
if (_target->isLand())
|
if (_target->isLand())
|
||||||
putinplay = true;
|
{
|
||||||
|
MTGCardInstance * copy = _target->controller()->game->putInZone(_target, _target->currentZone, source->controller()->game->battlefield,noEvent);
|
||||||
|
copy->changeController(source->controller(),true);
|
||||||
|
this->forceDestroy = true;
|
||||||
|
processed = true;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
Spell * spell = NULL;
|
Spell * spell = NULL;
|
||||||
MTGCardInstance * copy = NULL;
|
MTGCardInstance * copy = NULL;
|
||||||
|
|||||||
@@ -502,16 +502,32 @@ void CardGui::Render()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//shadow that covers the whole card for targetchooser...
|
||||||
if (tc && !tc->canTarget(card))
|
if (tc && !tc->canTarget(card))
|
||||||
{
|
{
|
||||||
if (!shadow)
|
if (!shadow)
|
||||||
shadow = card->getObserver()->getResourceManager()->GetQuad("shadow");
|
shadow = card->getObserver()->getResourceManager()->GetQuad("shadow");
|
||||||
if (shadow)
|
if (shadow)
|
||||||
{
|
{
|
||||||
shadow->SetColor(ARGB(200,255,255,255));
|
shadow->SetColor(ARGB(190,255,255,255));
|
||||||
renderer->RenderQuad(shadow.get(), actX, actY, actT, (28 * actZ + 1) / 16, 40 * actZ / 16);
|
renderer->RenderQuad(shadow.get(), actX, actY, actT, (28 * actZ + 1) / 16, 40 * actZ / 16);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//for necro
|
||||||
|
if (!shadow)
|
||||||
|
shadow = card->getObserver()->getResourceManager()->GetQuad("shadow");
|
||||||
|
if (shadow)
|
||||||
|
{
|
||||||
|
int myA = 0;
|
||||||
|
if(game && card->has(Constants::NECROED))//no peeking...
|
||||||
|
myA = 255;
|
||||||
|
else
|
||||||
|
myA = 0;
|
||||||
|
|
||||||
|
shadow->SetColor(ARGB(myA,255,255,255));
|
||||||
|
renderer->RenderQuad(shadow.get(), actX, actY, actT, (28 * actZ + 1) / 16, 40 * actZ / 16);
|
||||||
|
}
|
||||||
|
|
||||||
PlayGuiObject::Render();
|
PlayGuiObject::Render();
|
||||||
}
|
}
|
||||||
@@ -1151,6 +1167,20 @@ void CardGui::RenderBig(MTGCard* card, const Pos& pos, bool thumb, bool noborder
|
|||||||
JQuadPtr quad = thumb ? WResourceManager::Instance()->RetrieveCard(card, RETRIEVE_THUMB)
|
JQuadPtr quad = thumb ? WResourceManager::Instance()->RetrieveCard(card, RETRIEVE_THUMB)
|
||||||
: WResourceManager::Instance()->RetrieveCard(card);
|
: WResourceManager::Instance()->RetrieveCard(card);
|
||||||
MTGCardInstance * kcard = dynamic_cast<MTGCardInstance*>(card);
|
MTGCardInstance * kcard = dynamic_cast<MTGCardInstance*>(card);
|
||||||
|
GameObserver * game = NULL;
|
||||||
|
//TargetChooser * tc = NULL;
|
||||||
|
bool myA = true;
|
||||||
|
if(kcard)
|
||||||
|
{
|
||||||
|
game = kcard->getObserver();
|
||||||
|
if(game)
|
||||||
|
{
|
||||||
|
if(kcard->has(Constants::NECROED))
|
||||||
|
myA = false;
|
||||||
|
else
|
||||||
|
myA = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
if(kcard && !kcard->isToken && kcard->name != kcard->model->data->name)
|
if(kcard && !kcard->isToken && kcard->name != kcard->model->data->name)
|
||||||
{
|
{
|
||||||
MTGCard * fcard = MTGCollection()->getCardByName(kcard->name);
|
MTGCard * fcard = MTGCollection()->getCardByName(kcard->name);
|
||||||
@@ -1162,7 +1192,7 @@ void CardGui::RenderBig(MTGCard* card, const Pos& pos, bool thumb, bool noborder
|
|||||||
quad = thumb ? WResourceManager::Instance()->RetrieveCardToken(tcard, RETRIEVE_THUMB, 1, abs(kcard->copiedID))
|
quad = thumb ? WResourceManager::Instance()->RetrieveCardToken(tcard, RETRIEVE_THUMB, 1, abs(kcard->copiedID))
|
||||||
: WResourceManager::Instance()->RetrieveCardToken(tcard, RETRIEVE_NORMAL, 1, abs(kcard->copiedID));
|
: WResourceManager::Instance()->RetrieveCardToken(tcard, RETRIEVE_NORMAL, 1, abs(kcard->copiedID));
|
||||||
}
|
}
|
||||||
if (quad.get())
|
if (quad.get() && myA)
|
||||||
{
|
{
|
||||||
if (quad->mHeight < quad->mWidth)
|
if (quad->mHeight < quad->mWidth)
|
||||||
{
|
{
|
||||||
@@ -1216,7 +1246,8 @@ void CardGui::RenderBig(MTGCard* card, const Pos& pos, bool thumb, bool noborder
|
|||||||
//DebugTrace("Unable to fetch image: " << card->getImageName());
|
//DebugTrace("Unable to fetch image: " << card->getImageName());
|
||||||
|
|
||||||
// If we come here, we do not have the picture.
|
// If we come here, we do not have the picture.
|
||||||
AlternateRender(card, pos);
|
if(myA)
|
||||||
|
AlternateRender(card, pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
string CardGui::FormattedData(string data, string replace, string value)
|
string CardGui::FormattedData(string data, string replace, string value)
|
||||||
|
|||||||
@@ -2797,6 +2797,7 @@ MTGAbility * AbilityFactory::parseMagicLine(string s, int id, Spell * spell, MTG
|
|||||||
|
|
||||||
MTGAbility * a = NEW AAMover(observer, id, card, target, splitMove[1],newName);
|
MTGAbility * a = NEW AAMover(observer, id, card, target, splitMove[1],newName);
|
||||||
a->oneShot = true;
|
a->oneShot = true;
|
||||||
|
((AAMover*)a)->necro = s.find("hiddenmoveto") != string::npos?true:false;
|
||||||
if(storedAndAbility.size())
|
if(storedAndAbility.size())
|
||||||
{
|
{
|
||||||
string stored = storedAndAbility;
|
string stored = storedAndAbility;
|
||||||
|
|||||||
@@ -176,7 +176,8 @@ const char* Constants::MTGBasicAbilities[] = {
|
|||||||
"oppnomaxhand",
|
"oppnomaxhand",
|
||||||
"cantcrew",
|
"cantcrew",
|
||||||
"hiddenface",//test for hiding card
|
"hiddenface",//test for hiding card
|
||||||
"anytypeofmana"
|
"anytypeofmana",
|
||||||
|
"necroed"//hide necored
|
||||||
};
|
};
|
||||||
|
|
||||||
map<string,int> Constants::MTGBasicAbilitiesMap;
|
map<string,int> Constants::MTGBasicAbilitiesMap;
|
||||||
|
|||||||
Reference in New Issue
Block a user