protected void iterarDisparos(ArrayList list) throws Exception { Iterator<Disparo> it = list.iterator(); while (it.hasNext()) { Disparo c = it.next(); if (c.disparar()) it.remove(); } }
/** * Metodo usado para agregar un disparo. Este metodo deberia ser llamado por el controller, cuando * el view le dice que se hizo un disparo. Debe guardar el disparo en la lista correspondiente, * restarle puntos al jugador. * * @param TipoDisparo tipodisparo: disparo a realizarse * @param Posicion posicion: posicion */ public Disparo doDisparar(TipoDisparo tipo, Posicion posicion) { Disparo disparo = null; switch (tipo) { case CONVENCIONAL: disparo = new Convencional(this, posicion); disparo.setCosto(200); this.disparar((Convencional) disparo); break; case MINA_SIMPLE: disparo = new MinaRetardada(this, posicion); disparo.setCosto(50); ((MinaRetardada) disparo).setRetardo(3); this.disparar((Mina) disparo); break; case MINA_DOBLE: disparo = new MinaRetardada(this, posicion); disparo.setCosto(100); ((MinaRetardada) disparo).setRetardo(3); ((MinaRetardada) disparo).setRadio(1); this.disparar((MinaRetardada) disparo); break; case MINA_TRIPLE: disparo = new MinaRetardada(this, posicion); disparo.setCosto(125); ((MinaRetardada) disparo).setRetardo(3); ((MinaRetardada) disparo).setRadio(2); this.disparar((MinaRetardada) disparo); break; case MINA_CONTACTO: disparo = new MinaContacto(this, posicion); disparo.setCosto(150); this.disparar((MinaContacto) disparo); break; } return disparo; }
/** * Metodo usado para agregar un disparo. Este metodo deberia ser llamado por el controller, cuando * el view le dice que se hizo un disparo. Debe guardar el disparo en la lista correspondiente, * restarle puntos al jugador. * * @param Disparo disparo: disparo a realizarse */ private void disparar(Disparo disparo) { Logger.log(LogLevel.DEBUG, "Costo de disparo: " + disparo.getCosto()); this.jugador.addPuntos(-(disparo.getCosto())); }