コード例 #1
0
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)
コード例 #2
0
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
コード例 #3
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
コード例 #4
0
    def test_mover(self):
        mover(self.guerrero, self.arquero)

        self.assertTupleEqual(
            (self.guerrero.gui.cord_x, self.guerrero.gui.cord_y), (2.1, 1))