Erwan
- Fix a bug with Nevinyrrals Disk
This commit is contained in:
@@ -1364,17 +1364,7 @@ power=3
|
|||||||
subtype=Lizard
|
subtype=Lizard
|
||||||
toughness=3
|
toughness=3
|
||||||
[/card]
|
[/card]
|
||||||
[card]
|
|
||||||
text=Steelclad Serpent can't attack unless you control another artifact.
|
|
||||||
id=175009
|
|
||||||
name=Steelclad Serpent
|
|
||||||
rarity=C
|
|
||||||
type=Artifact Creature
|
|
||||||
mana={5}{U}
|
|
||||||
power=4
|
|
||||||
subtype=Serpent
|
|
||||||
toughness=5
|
|
||||||
[/card]
|
|
||||||
[card]
|
[card]
|
||||||
text=Flying, vigilance Players can't untap more than one creature during their untap steps.
|
text=Flying, vigilance Players can't untap more than one creature during their untap steps.
|
||||||
id=175396
|
id=175396
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
#Bug: Nevinyrral�fs Disk: Destroys creatures, enchantments and artifacts as soon as it comes into play
|
||||||
|
[INIT]
|
||||||
|
FIRSTMAIN
|
||||||
|
[PLAYER1]
|
||||||
|
hand:Nevinyrral's Disk
|
||||||
|
inplay:black vise
|
||||||
|
manapool:{4}
|
||||||
|
[PLAYER2]
|
||||||
|
[DO]
|
||||||
|
Nevinyrral's Disk
|
||||||
|
[ASSERT]
|
||||||
|
FIRSTMAIN
|
||||||
|
[PLAYER1]
|
||||||
|
inplay:black vise,Nevinyrral's Disk
|
||||||
|
[PLAYER2]
|
||||||
|
[END]
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
#
|
||||||
|
[INIT]
|
||||||
|
FIRSTMAIN
|
||||||
|
[PLAYER1]
|
||||||
|
hand:Nevinyrral's Disk
|
||||||
|
inplay:black vise,swamp
|
||||||
|
manapool:{4}
|
||||||
|
[PLAYER2]
|
||||||
|
inplay:obsianus golem
|
||||||
|
[DO]
|
||||||
|
Nevinyrral's Disk
|
||||||
|
eot
|
||||||
|
eot
|
||||||
|
next
|
||||||
|
#upkeep
|
||||||
|
next
|
||||||
|
#draw
|
||||||
|
next
|
||||||
|
#firstmain
|
||||||
|
swamp
|
||||||
|
Nevinyrral's Disk
|
||||||
|
[ASSERT]
|
||||||
|
FIRSTMAIN
|
||||||
|
[PLAYER1]
|
||||||
|
graveyard:black vise,Nevinyrral's Disk
|
||||||
|
inplay:swamp
|
||||||
|
[PLAYER2]
|
||||||
|
graveyard:obsianus golem
|
||||||
|
[END]
|
||||||
@@ -76,6 +76,8 @@ living_lands.txt
|
|||||||
lord_of_the_pit.txt
|
lord_of_the_pit.txt
|
||||||
lord_of_the_pit2.txt
|
lord_of_the_pit2.txt
|
||||||
nantuko_husk.txt
|
nantuko_husk.txt
|
||||||
|
Nevinyrrals_Disk.txt
|
||||||
|
Nevinyrrals_Disk2.txt
|
||||||
nightmare.txt
|
nightmare.txt
|
||||||
Nyxathid.txt
|
Nyxathid.txt
|
||||||
orcish_lumberjack.txt
|
orcish_lumberjack.txt
|
||||||
|
|||||||
@@ -292,6 +292,28 @@ class ACopier:public TargetAbility{
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
//All Destroyer. TargetAbility
|
||||||
|
class AAllDestroyer:public ActivatedAbility{
|
||||||
|
public:
|
||||||
|
int bury;
|
||||||
|
AAllDestroyer(int _id, MTGCardInstance * _source, TargetChooser * _tc, int _bury = 0, ManaCost * _cost=NULL,int doTap =1):ActivatedAbility(_id,_source,_cost,0,doTap),bury(_bury){
|
||||||
|
tc = _tc;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
int resolve(){
|
||||||
|
AbilityFactory af;
|
||||||
|
af.destroyAllInPlay(tc,bury);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
const char * getMenuText(){
|
||||||
|
return "Destroy All...";
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
//Destroyer. TargetAbility
|
//Destroyer. TargetAbility
|
||||||
class ADestroyer:public TargetAbility{
|
class ADestroyer:public TargetAbility{
|
||||||
public:
|
public:
|
||||||
|
|||||||
@@ -220,13 +220,13 @@ class GenericTriggeredAbility:public TriggeredAbility{
|
|||||||
class AbilityFactory{
|
class AbilityFactory{
|
||||||
private:
|
private:
|
||||||
int countCards(TargetChooser * tc, Player * player = NULL, int option = 0);
|
int countCards(TargetChooser * tc, Player * player = NULL, int option = 0);
|
||||||
int destroyAllInPlay(TargetChooser * tc, int bury = 0);
|
|
||||||
int putInPlayFromZone(MTGCardInstance * card, MTGGameZone * zone, Player * p);
|
int putInPlayFromZone(MTGCardInstance * card, MTGGameZone * zone, Player * p);
|
||||||
int parsePowerToughness(string s, int *power, int *toughness);
|
int parsePowerToughness(string s, int *power, int *toughness);
|
||||||
Trigger * parseTrigger(string magicText);
|
Trigger * parseTrigger(string magicText);
|
||||||
Damageable * parseCollateralTarget(MTGCardInstance * card, string s);
|
Damageable * parseCollateralTarget(MTGCardInstance * card, string s);
|
||||||
public:
|
public:
|
||||||
int magicText(int id, Spell * spell, MTGCardInstance * card = NULL);
|
int magicText(int id, Spell * spell, MTGCardInstance * card = NULL);
|
||||||
|
int destroyAllInPlay(TargetChooser * tc, int bury = 0);
|
||||||
void addAbilities(int _id, Spell * spell);
|
void addAbilities(int _id, Spell * spell);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
#include "../include/GameOptions.h"
|
#include "../include/GameOptions.h"
|
||||||
#include "../include/GameApp.h"
|
#include "../include/GameApp.h"
|
||||||
|
|
||||||
static const char* GAME_VERSION = "WTH?! 0.5.1 - by WilLoW";
|
static const char* GAME_VERSION = "WTH?! 0.6.0 - by WilLoW";
|
||||||
#define ALPHA_WARNING 0
|
#define ALPHA_WARNING 0
|
||||||
|
|
||||||
#define DEFAULT_ANGLE_MULTIPLIER 0.4
|
#define DEFAULT_ANGLE_MULTIPLIER 0.4
|
||||||
|
|||||||
@@ -374,9 +374,13 @@ int AbilityFactory::magicText(int id, Spell * spell, MTGCardInstance * card){
|
|||||||
delete targetAll;
|
delete targetAll;
|
||||||
if (myNbCards < opponentNbCards || myCardsPower < opponentCardsPower) return BAKA_EFFECT_GOOD;
|
if (myNbCards < opponentNbCards || myCardsPower < opponentCardsPower) return BAKA_EFFECT_GOOD;
|
||||||
return BAKA_EFFECT_BAD;
|
return BAKA_EFFECT_BAD;
|
||||||
|
}else{
|
||||||
|
if (cost){
|
||||||
|
game->addObserver(NEW AAllDestroyer(id, card,targetAll,1,cost,doTap));
|
||||||
}else{
|
}else{
|
||||||
this->destroyAllInPlay(targetAll,1);
|
this->destroyAllInPlay(targetAll,1);
|
||||||
delete targetAll;
|
delete targetAll;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
if (dryMode) return BAKA_EFFECT_BAD;
|
if (dryMode) return BAKA_EFFECT_BAD;
|
||||||
@@ -410,9 +414,13 @@ int AbilityFactory::magicText(int id, Spell * spell, MTGCardInstance * card){
|
|||||||
if (myNbCards < opponentNbCards || myCardsPower < opponentCardsPower) return BAKA_EFFECT_GOOD;
|
if (myNbCards < opponentNbCards || myCardsPower < opponentCardsPower) return BAKA_EFFECT_GOOD;
|
||||||
return BAKA_EFFECT_BAD;
|
return BAKA_EFFECT_BAD;
|
||||||
}else{
|
}else{
|
||||||
|
if (cost){
|
||||||
|
game->addObserver(NEW AAllDestroyer(id, card,targetAll,0,cost,doTap));
|
||||||
|
}else{
|
||||||
this->destroyAllInPlay(targetAll);
|
this->destroyAllInPlay(targetAll);
|
||||||
delete targetAll;
|
delete targetAll;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}else{
|
}else{
|
||||||
if (dryMode) return BAKA_EFFECT_BAD;
|
if (dryMode) return BAKA_EFFECT_BAD;
|
||||||
if (tc){
|
if (tc){
|
||||||
|
|||||||
Reference in New Issue
Block a user