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; } } }
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) { 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)); }