/// <summary> /// Función que se llama cuando se ataca a un ente mágico. /// </summary> /// <param name="criaturaAtacante">Criatura atacante.</param> /// <param name="magicaObjetivo">Magica objetivo.</param> public void AtacarMagica(Criatura criaturaAtacante, Magica magicaObjetivo) { JugadorPartida objetivo = ObtenerDueñoEnte(magicaObjetivo); controladorEnte.AtacarMagica(criaturaAtacante, magicaObjetivo); controladorJugador.QuitarVidaJugador(objetivo, criaturaAtacante.Ataque); }
/// <summary> /// Jugar una carta de la mano en el tablero mágica /// </summary> /// <param name="magicaJugada"></param> /// <param name="tablePos"></param> public void JugarMagicaMano(JugadorPartida jugador, CartaPartida magicaJugada, int tablePos) { RestarManaCarta(jugador, magicaJugada); Magica nuevaMagica = new Magica(jugador.Area, magicaJugada.AssetCarta); JugarCarta(jugador, magicaJugada, nuevaMagica, tablePos); }
/// <summary> /// Activa el efecto de una mágica, en función de su tipo hará una cosa u otra. /// </summary> /// <param name="idMagica">Identifier magica.</param> /// <param name="idAtacante">Identifier atacante.</param> public void ActivarEfectoMagica(int idMagica, int idAtacante) { Criatura criaturaAtacante = null; JugadorPartida jugador = null; Magica magica = (Magica)Recursos.EntesCreadosEnElJuego[idMagica]; if (idAtacante != -1) { criaturaAtacante = (Criatura)Recursos.EntesCreadosEnElJuego [idAtacante]; AtacarMagica(criaturaAtacante, magica); } new ActivateEffectCommand(idMagica).AñadirAlaCola(); magica.EfectoActivado = true; switch (magica.AssetCarta.Efecto) { case Efecto.Destructor: jugador = Controlador.Instance.ObtenerDueñoEnte(magica); DamageAllCreatures(Controlador.Instance.OtroJugador(jugador), 100); break; case Efecto.Espejo: DealDamageToTarget(criaturaAtacante, criaturaAtacante.AssetCarta.Ataque); break; case Efecto.Mana: jugador = Controlador.Instance.ObtenerDueñoEnte(magica); GiveManaBonus(jugador, Random.Range(1, 3)); break; case Efecto.Vida: jugador = Controlador.Instance.ObtenerDueñoEnte(magica); GiveHealth(jugador, Random.Range(60, 181)); break; default: break; } //MuerteEnte(magica.ID); }
/// <summary> /// Permite atacar a una mágica. /// </summary> /// <param name="atacante">Atacante.</param> /// <param name="objetivo">Objetivo.</param> public void AtacarMagica(Criatura atacante, Magica objetivo) { atacante.AtaquesRestantesEnTurno--; new CreatureAttackCommand(objetivo.ID, atacante.ID, atacante.Ataque, objetivo.Defensa).AñadirAlaCola(); //MuerteEnte(objetivo.ID); }
/// <summary> /// Una magica tipo trampa es aquella que no puede activarse voluntariamente, de momento solo se compara con la de espejo. /// </summary> /// <returns><c>true</c>, if magica trampa was esed, <c>false</c> otherwise.</returns> /// <param name="ente">Ente.</param> public bool EsMagicaTrampa(Ente ente) { Magica magica = (Magica)ente; return(magica.AssetCarta.Efecto.Equals(Efecto.Espejo)); }