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> cartes; if (partida.AgafaCarta(typeof(Plata))) { partida.JugadorActual.Mazo.Push(new Plata()); } for (int i = 0; i < partida.Jugadors.Length; i++) { if (partida.Jugadors[i].Posicio != partida.JugadorActual.Posicio && !partida.Jugadors[i].Protegit(partida)) { cartes = partida.Jugadors[i].Ma.Filtra((carta) => carta.EsCartaDeVictoria); if (cartes.Count > 0) { //si te una carta victoria demano que trii quina enseña cartes = partida.TriaCartes(partida.Jugadors[i], "Tria una carta per mostrar", 1, 1, cartes); partida.Jugadors[i].CartesMostrades.Add(cartes[0]); partida.Jugadors[i].Ma.Remove(cartes[0]); } else { //si no en te enseña totes partida.Jugadors[i].CartesMostrades.AddRange(partida.Jugadors[i].Ma); partida.Jugadors[i].Ma.Clear(); } } } partida.PreguntaAlJugador(partida.JugadorActual, "Mira les cartes.", "Ja está"); for (int i = 0; i < partida.Jugadors.Length; i++) { partida.Jugadors[i].Ma.AddRange(partida.Jugadors[i].CartesMostrades); partida.Jugadors[i].CartesMostrades.Clear(); } }
public override void ExecutaAccio(Partida partida) { IList <CartaDominion> cartesDescartades = partida.TriaCartes(partida.JugadorActual, "Descarta totes les cartes que vulguis i roba el mateix nombre", 0, partida.JugadorActual.Ma.Count); partida.JugadorActual.Descartades.AddRange(cartesDescartades); for (int i = 0; i < cartesDescartades.Count; i++) { partida.JugadorActual.Ma.Remove(cartesDescartades[i]); partida.JugadorActual.Roba(); } }
public override void ExecutaAccio(Partida partida) { IList <CartaDominion> cartes = new CartaDominion[5]; CartaDominion cartaDescartada; for (int i = 0; i < cartes.Count; i++) { cartes[i] = partida.JugadorActual.DonamCartaMazo(); } cartes = cartes.Filtra((c) => c != null); cartaDescartada = partida.TriaCartes(partida.JugadorEsquerra, string.Format("Tria una carta de {0} per descartarla, les altres aniran a la seva má", partida.JugadorActual.Nom), 1, 1, cartes)[0]; partida.JugadorActual.Ma.AddRange(cartes.Filtra((c) => c != cartaDescartada)); partida.JugadorActual.Descartades.Add(cartaDescartada); }
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; } } }
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]); } }
public override void ExecutaAccio(Partida partida) { IList <CartaDominion> descartades; for (int i = 0; i < partida.Jugadors.Length; i++) { if (partida.Jugadors[i].Posicio != partida.JugadorActual.Posicio) { if (!partida.Jugadors[i].Protegit(partida)) { descartades = partida.TriaCartes(partida.Jugadors[i], "Tria les cartes a descartar", partida.Jugadors[i].Ma.Count - 3, partida.Jugadors[i].Ma.Count - 3); partida.Jugadors[i].Descartades.AddRange(descartades); for (int j = 0; j < descartades.Count; j++) { partida.Jugadors[i].Ma.Remove(descartades[j]); } } } } }
public override void ExecutaAccio(Partida partida) { CartaDominion carta; for (int i = 0, iF = partida.JugadorActual.Mazo.Count + partida.JugadorActual.Descartades.Count; i < iF && partida.JugadorActual.Ma.Count < 7; i++) { //si es accion pregunto si la quiere sino la descarto carta = partida.JugadorActual.DonamCartaMazo(); if (carta != null) { if (!carta.EsCartaDeAccio || partida.TriaCartes(partida.JugadorActual, "La vols?", 1, 1, new CartaDominion[] { carta }).Length > 0) { partida.JugadorActual.Ma.Add(carta); } else if (carta.EsCartaDeAccio) { partida.JugadorActual.Descartades.Push(carta); } } } }
public override void ExecutaAccio(Partida partida) { CartaAccio carta; IList <CartaDominion> cartesAccio = partida.JugadorActual.Ma.Filtra((c) => c is CartaAccio); if (cartesAccio.Count > 0) { if (cartesAccio.Count > 1) { carta = (CartaAccio)partida.TriaCartes(partida.JugadorActual, "Tria la carta a repetir la acció", 1, 1, cartesAccio)[0]; } else { carta = cartesAccio[0] as CartaAccio; } //La carta triada ha d'anar amb les cartes que juga la partida perque sino podria utilitzar la sala del tro moltes vegades tenint només dues cartes //s'ha de mirar que faci l'acció correctament... partida.JugadorActual.Ma.Remove(carta); partida.Jugada.Add(carta); carta.ExecutaAccio(partida); carta.ExecutaAccio(partida); } }
public override void ExecutaAccio(Partida partida) { partida.EliminaCarta(partida.TriaCartes(partida.JugadorActual, "Elimina fins a 4 cartes", 0, 4)); }