Exemple #1
0
        public override void ExecutaAccio(Partida partida)
        {
            CartaDominion[]       cartes = new CartaDominion[2];
            IList <CartaDominion> cartesTresor;
            List <CartaDominion>  cartesTriades = new List <CartaDominion>();
            CartaDominion         cartaTriada;
            IList <CartaDominion> cartesEliminades;

            for (int i = 0; i < partida.Jugadors.Length; i++)
            {
                if (partida.Jugadors[i].Posicio != partida.JugadorActual.Posicio && !partida.Jugadors[i].Protegit(partida))
                {
                    cartaTriada = null;
                    cartes[0]   = partida.Jugadors[i].DonamCartaMazo();
                    if (cartes[0] != null)
                    {
                        cartes[1] = partida.Jugadors[i].DonamCartaMazo();
                        partida.Jugadors[i].CartesMostrades.Add(cartes[0]);
                        if (cartes[1] != null)
                        {
                            partida.Jugadors[i].CartesMostrades.Add(cartes[1]);
                        }
                    }
                    cartesTresor = cartes.Filtra((c) => c is CartaTresor);
                    if (cartesTresor.Count > 1)
                    {
                        cartaTriada = partida.TriaCartes(partida.JugadorActual, "Tria una carta per quedartela o eliminarla", 1, 1, cartesTresor)[0];
                    }
                    else if (cartesTresor.Count == 1)
                    {
                        cartaTriada = cartesTresor[0];
                    }



                    if (cartaTriada != null)
                    {
                        partida.Jugadors[i].CartesMostrades.Remove(cartaTriada);
                        cartesTriades.Add(cartaTriada);
                    }

                    if (partida.Jugadors[i].CartesMostrades.Count > 0)
                    {
                        partida.Jugadors[i].Descartades.Add(partida.Jugadors[i].CartesMostrades[0]);
                        partida.Jugadors[i].CartesMostrades.Clear();
                    }
                }
            }

            cartesEliminades = partida.TriaCartes(partida.JugadorActual, "Elimina les cartes que no vulguis", 0, cartesTriades.Count);
            cartesTriades.RemoveRange(cartesEliminades);
            partida.JugadorActual.Ma.AddRange(cartesTriades);
            partida.EliminaCarta(cartesEliminades);
        }
        public override void ExecutaAccio(Partida partida)
        {
            IList <CartaDominion> cartesTresor = partida.JugadorActual.Ma.Filtra((c) => c is Coure);

            if (cartesTresor.Count > 0)
            {
                cartesTresor = partida.TriaCartes(partida.JugadorActual, "Elimina una carta si ho fas tindràs 3 monedes extra", 0, 1);
                if (cartesTresor.Count > 0)
                {
                    partida.JugadorActual.Ma.RemoveRange(cartesTresor);
                    partida.EliminaCarta(cartesTresor);
                    partida.DinersExtra += 3;
                }
            }
        }
Exemple #3
0
        public override void ExecutaAccio(Partida partida)
        {
            IList <CartaDominion> cartesTresor = partida.JugadorActual.Ma.Filtra((c) => c is CartaTresor);

            if (cartesTresor.Count > 0)
            {
                cartesTresor = partida.TriaCartes(partida.JugadorActual, "Tria una carta per eliminar, a canvi guanyaràs una que costi 3 més", 0, 1);
                if (cartesTresor.Count > 0)
                {
                    partida.EliminaCarta(cartesTresor);
                    partida.JugadorActual.Ma.RemoveRange(cartesTresor);
                    partida.GuanyaCarta(cartesTresor[0].Cost + 3, false, typeof(CartaTresor));
                }
            }
        }
        public override void ExecutaAccio(Partida partida)
        {
            IList <CartaDominion> cartaARemodelar = null;

            if (partida.JugadorActual.Ma.Count > 1)
            {
                cartaARemodelar = partida.TriaCartes(partida.JugadorActual, "Elimina una carta i guanya una que costi 2 més que la eliminada.", 1, 1);
            }
            else if (partida.JugadorActual.Ma.Count == 1)
            {
                cartaARemodelar = partida.JugadorActual.Ma;
            }

            if (partida.JugadorActual.Ma.Count > 0)
            {
                partida.GuanyaCarta(cartaARemodelar[0].Cost + 2);
                partida.EliminaCarta(cartaARemodelar);
                partida.JugadorActual.Ma.Remove(cartaARemodelar[0]);
            }
        }
Exemple #5
0
 public override void ExecutaAccio(Partida partida)
 {
     partida.EliminaCarta(this);
     partida.GuanyaCarta(5);
 }
 public override void ExecutaAccio(Partida partida)
 {
     partida.EliminaCarta(partida.TriaCartes(partida.JugadorActual, "Elimina fins a 4 cartes", 0, 4));
 }