Survival

Survive as long as you can against an ever increasing horde of monsters.

bool set = false;
Player AiPlayer;
Player Neutral;
Player P1;
Entity grove;
Entity warren;
Entity guy;
Location uniLoc;


void configGame()
{
   setMapSize(15,15);
   setNumFluxWells(0);
   addAIPlayer("Evil Fish","Crypt Doctor",0);
   dontNeedDecks();
	setTurnTime(121);
}

void randenemy(){
   bool done = false;
   int i = rand(6);
   while(!done){
      uniLoc = createLocation(rand(15),rand(15));
      Entity fig = getFigure(uniLoc);
      if(getTopo(uniLoc) != 1 && !fig.doesExist() ){
         if(i == 0){
            createEntity("Tenderfoot Archer", uniLoc, AiPlayer);
         } else if(i == 1){
            createEntity("Sapling", uniLoc, AiPlayer);
         } else if(i == 2){
            createEntity("Lawn Gargoyle", uniLoc, AiPlayer);
         } else if(i == 3){
            createEntity("Goblin Soldier", uniLoc, AiPlayer);
         } else if(i == 4){
            createEntity("Glub Bird", uniLoc, AiPlayer);
         } else if(i == 5){
            createEntity("Soldier", uniLoc, AiPlayer);
         }
         done = true;
      }
   }
}

void beforeStart()
{
   fogMap();
   AiPlayer = getAIPlayer(0); 
   P1 = getHumanPlayer(0); 
   int ds=P1.deckSize();
   for(int n=0; n<ds; n++) P1.removeDeckCard(0);
   int ds2=AiPlayer.deckSize();
   for(int n=0; n<ds2; n++) AiPlayer.removeDeckCard(0);

   grove = createEntity("Grove", 1,1, P1);
   warren = createEntity("Warren", 1,2, P1);
   createEntity("That Spies", 7,7, P1);
   createEntity("That Spies", 7,8, P1);
   createEntity("That Spies", 8,7, P1);
   createEntity("That Spies", 8,8, P1);

   P1.addToHand("Illyrion Lancer");
   P1.addToHand("Riders of OO'Tong");
   P1.addToHand("Goose Tamer");
   P1.addToHand("Kodiak");

   infoBox("Pick your creature","Your goal is to survive as long as possible with one creature.  Your success depends on picking the right creature.");
}

void onNewRound(){
   if(set){
      if(!guy.doesExist()){
         endGame(AiPlayer);
      }
      P1.addGlory(1);
      if(P1.getGlory() == 16){
         bool done = false;
         while(!done){
            uniLoc = createLocation(rand(15),rand(15));
            Entity fig = getFigure(uniLoc);
            if(getTopo(uniLoc) != 1 && !fig.doesExist() ){
               createEntity("Mos'k Psychic", uniLoc, AiPlayer);
               done = true;
            }
         }
      } else {
      randenemy();
      }
   }
}

void onPlayersTurn(Player player) {
   if(!set && P1.handSize() < 4){
      grove.remove();
      warren.remove();
      forEachEntity();
      P1.removeHandCard(0);
      P1.removeHandCard(0);
      P1.removeHandCard(0);
      set = true;
   }
}

bool entityCallback(Entity ent){
   string name = ent.getName();
   if(name == "Illyrion Lancer" || name == "Riders of OO'Tong" || name == "Goose Tamer" || name == "Kodiak"){
      guy = ent;
   }
   return true;
}