Laurent - Code Clean-Up removed some Hardcode replace with softcode, mostly RV. Tested most of them (except exile from ALL but that should be the same as Swords to plowshares)...
Did not manage to remove/softcode The Rack.
This commit is contained in:
@@ -162,7 +162,8 @@ type=Instant
|
||||
text=Exile target nonwhite attacking creature. You gain life equal to its toughness.
|
||||
rarity=R
|
||||
target=creature[-white;attacking]
|
||||
#Hardcoded could be softcoded and removed from code
|
||||
auto=moveto(exile)
|
||||
auto=life:t controller
|
||||
[/card]
|
||||
[card]
|
||||
id=3075
|
||||
|
||||
@@ -1345,7 +1345,8 @@ subtype=Swamp
|
||||
text=Exile target creature. That creature's controller gains life equal to its power.
|
||||
id=2714
|
||||
target=creature
|
||||
alias=1367
|
||||
auto=moveto(exile)
|
||||
auto=life:p targetController
|
||||
name=Swords to Plowshares
|
||||
rarity=U
|
||||
mana={W}
|
||||
|
||||
@@ -251,7 +251,7 @@ type=Sorcery
|
||||
[card]
|
||||
text=Brass Man doesn't untap during your untap step. At the beginning of your upkeep, you may pay {1}. If you do, untap Brass Man.
|
||||
id=1099
|
||||
auto={1}:untap
|
||||
auto={1}:untap myTurnOnly
|
||||
name=Brass Man
|
||||
rarity=U
|
||||
mana={1}
|
||||
@@ -426,6 +426,7 @@ toughness=4
|
||||
[card]
|
||||
text=Enchant creature When enchanted creature is put into a graveyard, Creature Bond deals damage equal to that creature's toughness to the creature's controller.
|
||||
target=creature
|
||||
auto=@movedto(mytgt|graveyard) from(Battlefield):damage:t targetController
|
||||
id=1197
|
||||
name=Creature Bond
|
||||
rarity=C
|
||||
@@ -1171,6 +1172,7 @@ type=Artifact
|
||||
text=At the beginning of your upkeep, you gain X life, where X is the number of cards in your hand minus four.
|
||||
id=1115
|
||||
name=Ivory Tower
|
||||
auto=@each my upkeep:foreach(*|myhand)life:1 controller >4
|
||||
rarity=R
|
||||
mana={1}
|
||||
type=Artifact
|
||||
@@ -1703,6 +1705,7 @@ toughness=1
|
||||
text=Enchant land Whenever enchanted land becomes tapped, Psychic Venom deals 2 damage to that land's controller.
|
||||
target=land
|
||||
id=1218
|
||||
auto=@tapped(mytgt):damage:2 targetController
|
||||
name=Psychic Venom
|
||||
rarity=C
|
||||
mana={1}{U}
|
||||
@@ -1760,6 +1763,7 @@ subtype=Aura
|
||||
text=Enchant creature (Target a creature as you cast this. This card enters the battlefield attached to that creature.) {G}: Regenerate enchanted creature. (The next time that creature would be destroyed this turn, it isn't. Instead tap it, remove all damage from it, and remove it from combat.)
|
||||
target=creature
|
||||
id=1262
|
||||
auto={G}:regenerate
|
||||
name=Regeneration
|
||||
rarity=C
|
||||
mana={1}{G}
|
||||
@@ -2037,6 +2041,7 @@ type=Enchantment
|
||||
text=Enchant artifact You control enchanted artifact.
|
||||
target=artifact
|
||||
id=1226
|
||||
alias=1194
|
||||
name=Steal Artifact
|
||||
rarity=U
|
||||
mana={2}{U}{U}
|
||||
@@ -2056,6 +2061,7 @@ type=Sorcery
|
||||
[card]
|
||||
text=Target player gains X life.
|
||||
target=player
|
||||
auto=life:X
|
||||
id=1266
|
||||
name=Stream of Life
|
||||
rarity=C
|
||||
@@ -2101,6 +2107,8 @@ subtype=Swamp
|
||||
[card]
|
||||
text=Exile target creature. Its controller gains life equal to its power.
|
||||
target=creature
|
||||
auto=moveto(exile)
|
||||
auto=life:p targetController
|
||||
id=1367
|
||||
name=Swords to Plowshares
|
||||
rarity=U
|
||||
|
||||
@@ -2559,46 +2559,6 @@ class AConservator: public MTGAbility{
|
||||
};
|
||||
|
||||
|
||||
//Creature bond
|
||||
class ACreatureBond:public MTGAbility{
|
||||
public:
|
||||
int resolved;
|
||||
ACreatureBond(int _id, MTGCardInstance * _source, MTGCardInstance * _target):MTGAbility(_id,_source,_target){
|
||||
resolved = 0;
|
||||
}
|
||||
|
||||
int receiveEvent(WEvent * event){
|
||||
MTGCardInstance * _target = (MTGCardInstance *) target;
|
||||
if (event->type == WEvent::CHANGE_ZONE){
|
||||
WEventZoneChange * e = (WEventZoneChange *) event;
|
||||
MTGCardInstance * card = e->card->previous;
|
||||
if (card == _target){
|
||||
for (int i = 0; i < 2 ; i++){
|
||||
Player * p = game->players[i];
|
||||
if (e->to == p->game->graveyard){
|
||||
game->mLayers->stackLayer()->addDamage(source,_target->controller(),_target->toughness);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
virtual ostream& toString(ostream& out) const
|
||||
{
|
||||
out << "ACreatureBond ::: resolved : " << resolved
|
||||
<< " (";
|
||||
return MTGAbility::toString(out) << ")";
|
||||
}
|
||||
ACreatureBond * clone() const{
|
||||
ACreatureBond * a = NEW ACreatureBond(*this);
|
||||
a->isClone = 1;
|
||||
return a;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
//1106 DisruptingScepter
|
||||
class ADisruptingScepter:public TargetAbility{
|
||||
public:
|
||||
@@ -3296,36 +3256,6 @@ class AScavengingGhoul:public MTGAbility{
|
||||
}
|
||||
};
|
||||
|
||||
//1218 Psychic Venom
|
||||
class APsychicVenom:public MTGAbility{
|
||||
public:
|
||||
int tapped;
|
||||
APsychicVenom(int _id, MTGCardInstance * _source, MTGCardInstance * _target):MTGAbility(_id, _source,_target){
|
||||
tapped = _target->isTapped();
|
||||
}
|
||||
|
||||
void Update(float dt){
|
||||
MTGCardInstance* _target = (MTGCardInstance* )target;
|
||||
int newState = _target->isTapped();
|
||||
if (newState != tapped && newState == 1){
|
||||
game->mLayers->stackLayer()->addDamage(source,_target->controller(),2);
|
||||
}
|
||||
tapped = newState;
|
||||
}
|
||||
|
||||
virtual ostream& toString(ostream& out) const
|
||||
{
|
||||
out << "APsychicVenom ::: tapped : " << tapped
|
||||
<< " (";
|
||||
return MTGAbility::toString(out) << ")";
|
||||
}
|
||||
APsychicVenom * clone() const{
|
||||
APsychicVenom * a = NEW APsychicVenom(*this);
|
||||
a->isClone = 1;
|
||||
return a;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
//1235 Aspect of Wolf
|
||||
class AAspectOfWolf:public ListMaintainerAbility{
|
||||
@@ -4046,60 +3976,4 @@ class AAngelicChorus: public ListMaintainerAbility{
|
||||
};
|
||||
|
||||
|
||||
/// Work in Progress also from no on all code could be removed...
|
||||
|
||||
|
||||
|
||||
///// Not working need to work on this one
|
||||
///Abomination Kill blocking creature if white or green
|
||||
class AAbomination :public MTGAbility{
|
||||
public:
|
||||
MTGCardInstance * opponents[20];
|
||||
int nbOpponents;
|
||||
AAbomination (int _id, MTGCardInstance * _source):MTGAbility(_id, _source){
|
||||
nbOpponents = 0;
|
||||
}
|
||||
|
||||
void Update(float dt){
|
||||
if (newPhase != currentPhase){
|
||||
if( newPhase == Constants::MTG_PHASE_COMBATDAMAGE){
|
||||
nbOpponents = 0;
|
||||
MTGCardInstance * opponent = source->getNextOpponent();
|
||||
while ((opponent && opponent->hasColor(Constants::MTG_COLOR_GREEN)) || opponent->hasColor(Constants::MTG_COLOR_WHITE)){
|
||||
opponents[nbOpponents] = opponent;
|
||||
nbOpponents ++;
|
||||
opponent = source->getNextOpponent(opponent);
|
||||
}
|
||||
}else if (newPhase == Constants::MTG_PHASE_COMBATEND){
|
||||
for (int i = 0; i < nbOpponents ; i++){
|
||||
game->mLayers->stackLayer()->addPutInGraveyard(opponents[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int testDestroy(){
|
||||
if(!game->isInPlay(source) && currentPhase != Constants::MTG_PHASE_UNTAP){
|
||||
return 0;
|
||||
}else{
|
||||
return MTGAbility::testDestroy();
|
||||
}
|
||||
}
|
||||
|
||||
virtual ostream& toString(ostream& out) const
|
||||
{
|
||||
out << "AAbomination ::: opponents : " << opponents
|
||||
<< " ; nbOpponents : " << nbOpponents
|
||||
<< " (";
|
||||
return MTGAbility::toString(out) << ")";
|
||||
}
|
||||
|
||||
AAbomination * clone() const{
|
||||
AAbomination * a = NEW AAbomination(*this);
|
||||
a->isClone = 1;
|
||||
return a;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
@@ -983,11 +983,6 @@ void AbilityFactory::addAbilities(int _id, Spell * spell){
|
||||
break;
|
||||
}
|
||||
|
||||
case 1197: //Creature Bond
|
||||
{
|
||||
game->addObserver(NEW ACreatureBond(_id,card, card->target));
|
||||
break;
|
||||
}
|
||||
case 1103: //Crystal Rod
|
||||
{
|
||||
int cost[] = {Constants::MTG_COLOR_ARTIFACT, 1};
|
||||
@@ -1063,11 +1058,6 @@ void AbilityFactory::addAbilities(int _id, Spell * spell){
|
||||
game->addObserver(ability);
|
||||
break;
|
||||
}
|
||||
case 1115: //Ivory Tower
|
||||
{
|
||||
game->addObserver(NEW ALifeZoneLink(_id ,card, Constants::MTG_PHASE_UPKEEP, 4, 1, 1));
|
||||
break;
|
||||
}
|
||||
case 1117: //Jandors Ring
|
||||
{
|
||||
game->addObserver(NEW AJandorsRing( _id, card));
|
||||
@@ -1267,36 +1257,11 @@ void AbilityFactory::addAbilities(int _id, Spell * spell){
|
||||
game->addObserver(NEW AControlStealAura(_id, card, card->target));
|
||||
break;
|
||||
}
|
||||
case 1218: //Psychic Venom
|
||||
{
|
||||
game->addObserver(NEW APsychicVenom(_id, card, card->target));
|
||||
break;
|
||||
}
|
||||
case 1226: //Steal Artifact
|
||||
{
|
||||
game->addObserver( NEW AControlStealAura(_id, card, card->target));
|
||||
break;
|
||||
}
|
||||
case 1235: //Aspect of Wolf
|
||||
{
|
||||
game->addObserver(NEW AAspectOfWolf(_id, card, card->target));
|
||||
break;
|
||||
}
|
||||
case 1262: //Regeneration
|
||||
{
|
||||
int cost[] = {Constants::MTG_COLOR_GREEN, 1};
|
||||
game->addObserver(NEW AStandardRegenerate(_id,card,card->target,NEW ManaCost(cost,1)));
|
||||
break;
|
||||
}
|
||||
|
||||
case 1266: //stream of life
|
||||
{
|
||||
int x = computeX(spell,card);
|
||||
spell->getNextPlayerTarget()->life += x;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
case 1231: //Volcanic Eruption
|
||||
{
|
||||
int x = computeX(spell,card);
|
||||
@@ -1319,7 +1284,6 @@ void AbilityFactory::addAbilities(int _id, Spell * spell){
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case 1285: //Dwarven Warriors
|
||||
{
|
||||
CreatureTargetChooser * tc = NEW CreatureTargetChooser(card);
|
||||
@@ -1368,14 +1332,6 @@ void AbilityFactory::addAbilities(int _id, Spell * spell){
|
||||
game->addObserver(NEW AStasis(_id, card));
|
||||
break;
|
||||
}
|
||||
|
||||
case 1367: //Swords to Plowshares
|
||||
{
|
||||
Player * p = card->target->controller();
|
||||
p->life+= card->target->power;
|
||||
p->game->putInZone(card->target,p->game->inPlay,card->owner->game->removedFromGame);
|
||||
break;
|
||||
}
|
||||
case 1267: //Thicket Basilic
|
||||
{
|
||||
game->addObserver(NEW AOldSchoolDeathtouch(_id,card));
|
||||
@@ -1393,11 +1349,6 @@ void AbilityFactory::addAbilities(int _id, Spell * spell){
|
||||
}
|
||||
|
||||
//Addons Legends
|
||||
case 1427: //Abomination (does not work make the game crash)
|
||||
{
|
||||
game->addObserver(NEW AAbomination(_id,card));
|
||||
break;
|
||||
}
|
||||
case 1533: //Livingplane
|
||||
{
|
||||
game->addObserver(NEW AConvertLandToCreatures(id, card, "land"));
|
||||
@@ -1456,14 +1407,6 @@ void AbilityFactory::addAbilities(int _id, Spell * spell){
|
||||
break;
|
||||
}
|
||||
|
||||
//---addon Alliance---
|
||||
|
||||
case 3194: // Exile
|
||||
{
|
||||
game->currentlyActing()->life+=card->target->toughness;
|
||||
break;
|
||||
}
|
||||
|
||||
// --- addon Mirage ---
|
||||
|
||||
case 3410: //Seed of Innocence
|
||||
|
||||
Reference in New Issue
Block a user