public override void ExecutaAccio(Partida partida) { for (int i = 0; i < partida.Jugadors.Length; i++) { if (partida.Jugadors[i].Posicio != partida.JugadorActual.Posicio) { partida.Jugadors[i].Roba(); } } }
public bool Protegit(Partida partida) { Fossat fossat = Ma.Filtra((c) => c is Fossat).FirstOrDefault() as Fossat; bool protegit = fossat != null; if (protegit) { protegit = fossat.Reaccio(partida, this); } return(protegit); }
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) { 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) { const int SI = 0; string[] opcions = { "Si", "No" }; if (partida.PreguntaAlJugador(partida.JugadorActual, "Vols descartar el mazo?", opcions) == SI) { partida.JugadorActual.Descartades.AddRange(partida.JugadorActual.Mazo); partida.JugadorActual.Mazo.Clear(); partida.JugadorActual.PosaCartesDescartadesAlMazo(); } }
public override void ExecutaAccio(Partida partida) { for (int i = 0; i < partida.Jugadors.Length; i++) { if (partida.Jugadors[i].Posicio != partida.JugadorActual.Posicio && !partida.Jugadors[i].Protegit(partida)) { if (partida.AgafaCarta(typeof(Malediccio))) { partida.Jugadors[i].Descartades.Add(new Malediccio()); } } } }
public bool Reaccio(Partida partida, Jugador jugador) { bool quiereEnseñarla; quiereEnseñarla = partida.PreguntaAlJugador(jugador, "Vols protegirte de l'atac?", "Si", "No") == 0; if (quiereEnseñarla) { jugador.CartesMostrades.Add(partida.JugadorReactiu.Ma.Filtra((c) => c is Fossat)[0]); partida.PreguntaAlJugador(partida.JugadorActual, string.Format("{0} s'ha protegit", partida.JugadorReactiu.Nom), "Ok"); jugador.CartesMostrades.Clear(); } return(quiereEnseñarla); }
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) { bool tornarAlMazo; for (int i = 0; i < partida.Jugadors.Length; i++) { if (!partida.Jugadors[i].Protegit(partida)) { partida.Jugadors[i].EnseñaCartesMazo(1); tornarAlMazo = partida.PreguntaAlJugador(partida.JugadorActual, string.Format("Descartar o volver a su sitio la carta de {0}", partida.Jugadors[i]), "Descartar", "Tornar al Mazo") == 1; if (tornarAlMazo) { partida.Jugadors[i].Mazo.Push(partida.Jugadors[i].CartesMostrades.Pop()); } else { partida.Jugadors[i].Descartades.Push(partida.Jugadors[i].CartesMostrades.Pop()); } } } }
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) { const int TOTAL = 2; CartaDominion aux; int numCartesTrobades = 0; //voy cogiendo cartas del mazo hasta que descubra dos cartas tesoro las demás se van a descartadas. //si acabo todas las cartas es que no hay más de tesoro disponibles entonces solo cojo la encontrada o ninguna. for (int i = 0, iF = partida.JugadorActual.Mazo.Count + partida.JugadorActual.Descartades.Count; i < iF && numCartesTrobades < TOTAL; i++) { aux = partida.JugadorActual.DonamCartaMazo(); if (aux.EsCartaDeTresor) { numCartesTrobades++; partida.JugadorActual.Ma.Add(aux); } else { partida.JugadorActual.Descartades.Push(aux); } } }
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 virtual void ExecutaAccio(Partida partida) { /*Roba del piló de cartes per robar tantes cartes como indiqui la i les afegeix * a la del jugador actual Després executa l'acció específica de la carta. I finalment executa el final de fase.*/ }
public override void ExecutaAccio(Partida partida) { partida.GuanyaCarta(4); }
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)); }