def construir_edificio_2(simul, edificio): obreros_ya_construyendo = [] for aldeano in simul.aldeanos_construyendo_2: if distancia(aldeano, edificio) <= 5: obreros_ya_construyendo.append(aldeano) else: mover(aldeano, edificio) for aldeano in obreros_ya_construyendo: empieza_construir(aldeano, edificio, simul.aldeanos_ociosos_2) obreros_necesarios = edificio.unidades_para_construir - len( simul.aldeanos_construyendo_2) obreros_desocupados = simul.aldeanos_ociosos_2 + \ simul.aldeanos_recolectando_2 + \ simul.aldeanos_trayendo_2 if len(obreros_desocupados) > obreros_necesarios: for i in range(obreros_necesarios): trabajador = obreros_desocupados[i] simul.aldeanos_construyendo_2.append(trabajador) if trabajador in simul.aldeanos_recolectando_2: simul.aldeanos_recolectando_2.remove(trabajador) if trabajador in simul.aldeanos_ociosos_2: simul.aldeanos_ociosos_2.remove(trabajador) if trabajador in simul.aldeanos_trayendo_2: simul.aldeanos_trayendo_2.remove(trabajador)
def ataque_cristian_2(unidad_1, unidad_2, simul): if unidad_2.__class__.__name__ == "Hero": atacar(unidad_1, unidad_2) else: dist = distancia(unidad_1, unidad_2) rango_maximo = unidad_1.rango if dist > rango_maximo: mover(unidad_1, unidad_2) else: simul.ticks_cristianizacion += 1 if simul.ticks_cristianizacion == 80: if unidad_2.__class__.__name__ == "Guerrero": simul.lista_guerreros_1.remove(unidad_2) simul.lista_guerreros_2.append(unidad_2) if unidad_2.__class__.__name__ == "Arquero": simul.lista_arqueros_1.remove(unidad_2) simul.lista_arqueros_2.append(unidad_2) if unidad_2.__class__.__name__ == "Mascota": simul.lista_mascotas_1.remove(unidad_2) simul.lista_mascotas_2.append(unidad_2) simul.ticks_cristianizacion = 0
def atacar(unidad_1, unidad_2): dist = distancia(unidad_1, unidad_2) rango_maximo = unidad_1.rango if unidad_1.__class__.__name__ == "Arquero" \ else 5 if dist > rango_maximo: mover(unidad_1, unidad_2) else: unidad_2.puntos_vida -= unidad_1.puntos_daño unidad_2.gui.health -= unidad_1.puntos_daño
def test_mover(self): mover(self.guerrero, self.arquero) self.assertTupleEqual( (self.guerrero.gui.cord_x, self.guerrero.gui.cord_y), (2.1, 1))