package project;
import Collection.*;

class countMonsterV extends Visitor implements Item {
  
  private int monster;
  private ListC monsters;
  
  public countMonsterV() { }

  public void visitMe(Location l) { monsters = l.monsters; }
  
  //==============================================
  // returns number of monsters left in the stage
  //==============================================
  public int getCount() throws StageClearException { 
	Count();
	if ( monster<1 ) {
	  throw new StageClearException();
	} //if
	return monster; 
  } // method getCount 
  
  //============================================
  // Scans through monster container and counts 
  // only the living ones
  //============================================
  public void Count() {
    monster = 0;
    monsters.start();
	while (monsters.more()) {
	  Monster currentMonster = (Monster)monsters.get();
	  if (currentMonster.Alive) {
	    monster++;
	  } //if
	}//while
  } //method Count
	  
} //class countMonsterV