Gates of Hell
Destroy the gates of hell to stop the horde of demons. (Note: Earthquake, Unstable Reality, Foul Termite Infestation and Orb of Mind Control are banned). Krakhor won a Char as the first person to complete this challenge.
int ysize=13;
int round = 0;
bool isDeckValid(Player player){
string cardname;
for(int n=0; n<player.deckSize(); n++)
{
cardname=player.getDeckCard(n).getName();
if( cardname == "Earthquake" || cardname == "Orb of Mind Control" || cardname == "Unstable Reality" || cardname == "Foul Termite Infestation" )
{
string msg = "The deck contains a banned card. Earthquake, Unstable Reality, Foul Termite Infestation and Orb of Mind Control are banned.";
statusMsg(getAIPlayer(0), msg);
return false;
}
}
return true;
}
void configGame()
{
setMapSize(ysize,12);
addAIPlayer("Evil Fish","Crypt Doctor",0);
setTurnTime(121);
}
Player aiPlayer;
Player P1;
Location G1;
Location G2;
Entity gate1;
Entity gate2;
Entity mon1;
Entity mon2;
void beforeStart()
{
aiPlayer=getAIPlayer(0);
P1=getHumanPlayer(0);
int ds=aiPlayer.deckSize();
for(int n=0; n<ds; n++) aiPlayer.removeDeckCard(0);
if(getCampID() !=3){
infoBox("Nice Try","But you can't cheat that way");
endGame(aiPlayer);
}
//createEntity("Astridian Geographic Society",1,1,aiPlayer);
//50
G1=createLocation(ysize-1,5);
G2=createLocation(ysize-1,6);
setTerrain(createLocation(ysize-1,4),5,1);
setTerrain(createLocation(ysize-1,7),5,1);
setTerrain(createLocation(ysize-1,5),4,1);
setTerrain(createLocation(ysize-1,6),4,1);
setTerrain(createLocation(ysize-1,3),5,2);
setTerrain(createLocation(ysize-1,8),5,2);
setTerrain(createLocation(ysize-2,3),4,2);
setTerrain(createLocation(ysize-2,7),4,2);
setTerrain(createLocation(ysize-2,4),3,1);
setTerrain(createLocation(ysize-2,5),3,1);
setTerrain(createLocation(ysize-2,6),3,1);
gate1 = createEntity("Underworld Gate",ysize-1,4,aiPlayer);
gate2 = createEntity("Underworld Gate",ysize-1,7,aiPlayer);
createEntity("Planar Rift",ysize-1,5,aiPlayer);
createEntity("Planar Rift",ysize-1,6,aiPlayer);
createEntity("Baltasar's Lash",ysize-2,3,aiPlayer);
createEntity("Baltasar's Lash",ysize-2,7,aiPlayer);
createEntity("Eye of Varexes",ysize-1,3,aiPlayer);
createEntity("Eye of Varexes",ysize-1,8,aiPlayer);
//createEntity("That Spies",2,2,aiPlayer);
//createEntity("That Spies",2,10,aiPlayer);
createEntity("Null Stone",10,3,aiPlayer);
createEntity("Null Stone",10,9,aiPlayer);
string cardname;
// for(int n=0; n<P1.deckSize(); n++)
// {
// cardname=P1.getDeckCard(n).getName();
// if( cardname == "Earthquake" || cardname == "Orb of Mind Control")
// {
// P1.removeDeckCard(n);
// P1.addToDeck("Power",n);
// }
// }
infoBox("The Gates of Hell", "The Gates of Hell have been opened. Destroy them to stop the horde of demons");
}
void afterStart(){
}
int i;
int j;
void onNewRound()
{
round = round + 1;
i = rand(4);
j = rand(4);
forEachEntity();
if(round == 1){
i=10;
j=10;
}
if(i == 0){
mon1 = createEntity("Yalrinian Fiend",G1,aiPlayer);
} else if (i == 1){
mon1 = createEntity("Faceless Lord",G1,aiPlayer);
} else if (i == 2){
mon1 = createEntity("Red Imp",G1,aiPlayer);
} else if (i == 3){
mon1 = createEntity("Barbed Necrath",G1,aiPlayer);
}
mon1.setDim(false);
if(j == 0){
mon2 = createEntity("Char",G2,aiPlayer);
} else if (j == 1){
mon2 = createEntity("Lower Plane Aberration",G2,aiPlayer);
} else if (j == 2){
mon2 = createEntity("Surk's Groundbreaker",G2,aiPlayer);
} else if (j == 3){
mon2 = createEntity("Prince of Desolation",G2,aiPlayer);
}
mon2.setDim(false);
if((gate1.isType(5) || !gate1.doesExist()) && (gate2.isType(5) || !gate2.doesExist())){
infoBox("Congratulations", "The gates of hell have been destroyed");
endGame(P1);
}
}
bool entityCallback(Entity ent){
if((ent.getLoc() == G1) || (ent.getLoc() == G2)){
if(ent.isType(5)){
ent.remove();
} else {
if(ent.getName() != "Planar Rift"){
ent.sacrifice();
}
}
}
if(ent.getName()=="Blessed Are The Meek"){
i = rand(3);
j = rand(2);
}
return true;
}
void onPlayersTurn(Player player){
Player aiPlayer=getAIPlayer(0);
if(getCampID() !=3){
infoBox("Nice Try","But you can't cheat that way");
endGame(aiPlayer);
}
}
void onDialogResponse(Player player,int resp){
}
bool canPass(Player player){
return true;
}
bool canAct(Player player,Action action){
return true;
}
void afterAction(Action action){
}