void CanKillWithBountyHunter(CardNotepad Target) { int TargetCardIndex = 0; int MyIndex = 0; if (infoOnHand[0].powerLevel == 3 || infoOnHand[1].powerLevel == 3) { if (Target.posibleCards == 1) { for (int i = 0; i < Target.cardNumber.Length; i++) { if (Target.cardNumber[i]) { TargetCardIndex = i; } } for (int i = 0; i < infoOnHand.Count; i++) { if (infoOnHand[i].powerLevel != 2) //BountyHunter Index { MyIndex = i; } } if (infoOnHand[MyIndex].powerLevel > TargetCardIndex + 1) { infoOnHand[MyIndex].Ability(Target.Player, this); } } } }
void BaronThrown(CardNotepad RemainingPlayerNP, Card DeadCard) { int RemainingPlayer = PlayerIndex(RemainingPlayerNP); for (int i = 0; i < DeadCard.powerLevel; i++) { PlayersCanHave[RemainingPlayer].cardNumber[DeadCard.powerLevel - 1] = false; } }
public override void Start() { thrownCards = new List <int>(); PlayersCanHave = new CardNotepad[3]; for (int i = 0; i < PlayersCanHave.Length; i++) { PlayersCanHave[i] = new CardNotepad(playerList[i]); } base.Start(); }
void CondesaThrown(CardNotepad TargetNP) { int Target = PlayerIndex(TargetNP); for (int i = 0; i < PlayersCanHave[Target].cardNumber.Length; i++) { if (i != 4 || i != 5 || i != 7) { PlayersCanHave[Target].cardNumber[i] = false; } } }
int PlayerIndex(CardNotepad Target) { int Accused = 0; for (int i = 0; i < PlayersCanHave.Length; i++) { if (PlayersCanHave[i].Player == Target.Player) { Accused = i; } } return(Accused); }
bool CanKill(CardNotepad Target) { if (infoOnHand[0].powerLevel == 1 || infoOnHand[1].powerLevel == 1) { if (Target.posibleCards == 1 && !Target.cardNumber[0]) { return(true); } } else if (infoOnHand[0].powerLevel == 3 || infoOnHand[1].powerLevel == 3) { //Sacar cual es la carta que no es el baron int MyIndex = 0; if (infoOnHand[0].powerLevel == 3 && infoOnHand[1].powerLevel == 3) { MyIndex = 1; } else { for (int i = 0; i < infoOnHand.Count; i++) { if (infoOnHand[i].powerLevel != 2) //BountyHunter Index { MyIndex = i; } } } bool Cant = false; for (int i = infoOnHand[MyIndex].powerLevel - 1; i < Target.cardNumber.Length; i++) { if (Target.cardNumber[i]) { Cant = true; } } if (!Cant) { return(true); } } else if (infoOnHand[0].powerLevel == 5 || infoOnHand[1].powerLevel == 5) { if (Target.posibleCards == 1 && Target.cardNumber[7]) { return(true); } } return(false); }
void CanKillWithPrince(CardNotepad Target) { if (infoOnHand[0].powerLevel == 5 || infoOnHand[1].powerLevel == 5) { int PrincessIndex = Target.cardNumber.Length - 1; if (Target.posibleCards == 1 && Target.cardNumber[PrincessIndex]) { if (infoOnHand[0].powerLevel == 5) { infoOnHand[0].Ability(Target.Player); } else if (infoOnHand[1].powerLevel == 5) { infoOnHand[1].Ability(Target.Player); } } } }
void CanKillWithGuard(CardNotepad Target) //Falta hacer el ataque con el guardia { if (infoOnHand[0].powerLevel == 1 || infoOnHand[1].powerLevel == 1) //Si una de las 2 cartas es un guardia { if (Target.posibleCards == 1 && !Target.cardNumber[0]) // Si tiene una sola carta posible y esa carta no es un guardia { for (int i = 1; i < Target.cardNumber.Length; i++) { if (Target.cardNumber[i]) // Esta carta es la unica posible { //Atacar con el guardia if (infoOnHand[0].powerLevel == 1) { infoOnHand[0].Ability(Target.Player, Target.typeCards[i]); } else if (infoOnHand[1].powerLevel == 0) { infoOnHand[1].Ability(Target.Player, Target.typeCards[i]); } } } } } }
void KingThrown(CardNotepad TargetNP) { int Target = PlayerIndex(TargetNP); PlayersCanHave[Target].cardNumber[6] = false; }
//Funciones de info de cartas que tiran otros void GuardThrown(CardNotepad AccusedPlayer, Card AccusedCard) { int Accused = PlayerIndex(AccusedPlayer); PlayersCanHave[Accused].cardNumber[AccusedCard.powerLevel - 1] = false; }
void Kill(CardNotepad Target) { if (infoOnHand[0].powerLevel == 1 || infoOnHand[1].powerLevel == 1) { if (Target.posibleCards == 1 && !Target.cardNumber[0]) { for (int i = 1; i < Target.cardNumber.Length; i++) { if (Target.cardNumber[i]) { //Matar a Target con parametro indice i if (infoOnHand[0].powerLevel == 1) { infoOnHand[0].Ability(Target.Player, Target.typeCards[i]); } else if (infoOnHand[1].powerLevel == 1) { infoOnHand[1].Ability(Target.Player, Target.typeCards[i]); } } } } } else if (infoOnHand[0].powerLevel == 3 || infoOnHand[1].powerLevel == 3) { //Sacar cual es la carta que no es el baron int MyIndex = 0; if (infoOnHand[0].powerLevel == 3 && infoOnHand[1].powerLevel == 3) { MyIndex = 1; } else { for (int i = 0; i < infoOnHand.Count; i++) { if (infoOnHand[i].powerLevel != 2) //BountyHunter Index { MyIndex = i; } } } bool Cant = false; for (int i = infoOnHand[MyIndex].powerLevel - 1; i < Target.cardNumber.Length; i++) { if (Target.cardNumber[i]) { Cant = true; } } if (!Cant) { //Tirar Baron y comparar con Target infoOnHand[MyIndex].Ability(Target.Player, this); } } else if (infoOnHand[0].powerLevel == 5 || infoOnHand[1].powerLevel == 5) { if (Target.posibleCards == 1 && Target.cardNumber[7]) { //Descartar a Target if (infoOnHand[0].powerLevel == 5) { infoOnHand[0].Ability(Target.Player); } else { infoOnHand[1].Ability(Target.Player); } } } }
public override void Turn() { if (infoOnHand[0].powerLevel == 8 || infoOnHand[1].powerLevel == 8) { //Tirar la que no es la princesa, si es guardia o baron definir target con la funcion, si es principe, rey o clero es el menor conocimiento if (infoOnHand[0].powerLevel == 1 || infoOnHand[1].powerLevel == 1) { Guard(); } else if (infoOnHand[0].powerLevel == 3 || infoOnHand[1].powerLevel == 3) { BountyHunter(); } else if (infoOnHand[0].powerLevel == 2 || infoOnHand[1].powerLevel == 2 || infoOnHand[0].powerLevel == 5 || infoOnHand[1].powerLevel == 5 || infoOnHand[0].powerLevel == 6 || infoOnHand[1].powerLevel == 6) { if (infoOnHand[0].powerLevel == 8) { ThrowRandomCard(infoOnHand[1]); } else { ThrowRandomCard(infoOnHand[0]); } } } else { //Ver si es la ultima ronda if (ItsLastRount()) { //Ver si tengo la carta mas alta if (HaveTheHighCard()) { if (infoOnHand[0].powerLevel == 6 || infoOnHand[1].powerLevel == 6) { HavingKingHighCard(); } else { Card CartaATirar = GetLocalLowCard(); //Tirar CartaATirar (Falta checkear tipo de parametros y buscarlos) ThrowRandomCard(CartaATirar); } } else // Si no tengo la carta mas alta { if (infoOnHand[0].powerLevel == 6 || infoOnHand[1].powerLevel == 6) { HavingKingLowCard(); } else if (infoOnHand[0].powerLevel == 1 || infoOnHand[1].powerLevel == 1) { HavingGuardLowCard(); } else if (infoOnHand[0].powerLevel == 5 || infoOnHand[1].powerLevel == 5) { HavingPrinceLowCard(); } else { if (infoOnHand[0].powerLevel < infoOnHand[1].powerLevel) { //Tiro [0] (Parametro Random) ThrowRandomCard(infoOnHand[0]); } else { //Tiro [1] (Parametro Random) ThrowRandomCard(infoOnHand[1]); } } } } else { //Fijarse si esta spotteado if (GotSpottedByHowMany() > 1) { //Descartate negro (Tirar la carta [0]) ThrowRandomCard(infoOnHand[0]); } else if (GotSpottedByHowMany() == 1) { CardNotepad SpottingGuy = GotSpottedBy(); if (CanKill(SpottingGuy)) { Kill(SpottingGuy); } else { //Descartate negro (Tirar la carta [0]) ThrowRandomCard(infoOnHand[0]); } } else { //Tengo fichado a alguien? Si es asi matalo bool HasSomeoneSpotted = false; for (int i = 0; i < PlayersCanHave.Length; i++) { if (CanKill(PlayersCanHave[i])) { Kill(PlayersCanHave[i]); HasSomeoneSpotted = true; break; } } if (!HasSomeoneSpotted) { //Puedo Spottear a alguien? if (infoOnHand[0].powerLevel == 2) { //Tirar Clero [0] Player Target = LeastKnowledge(); infoOnHand[0].Ability(Target, this); } else if (infoOnHand [1].powerLevel == 2) { //Tirar Clero [1] Player Target = LeastKnowledge(); infoOnHand[1].Ability(Target, this); } } else { if (infoOnHand[0].powerLevel == 8 || infoOnHand[1].powerLevel == 8) { //Tirar la que no es la princesa, si es guardia o baron definir target con la funcion, si es principe, rey o clero es el menor conocimiento if (infoOnHand[0].powerLevel == 1 || infoOnHand[1].powerLevel == 1) { Guard(); } else if (infoOnHand[0].powerLevel == 3 || infoOnHand[1].powerLevel == 3) { BountyHunter(); } else if (infoOnHand[0].powerLevel == 2 || infoOnHand[1].powerLevel == 2 || infoOnHand[0].powerLevel == 5 || infoOnHand[1].powerLevel == 5 || infoOnHand[0].powerLevel == 6 || infoOnHand[1].powerLevel == 6) { if (infoOnHand[0].powerLevel == 8) { ThrowRandomCard(infoOnHand[1]); } else { ThrowRandomCard(infoOnHand[0]); } } } else { bool FinalizoTurno = false; //Ver si combiene matar con Baron if (infoOnHand[0].powerLevel == 3 || infoOnHand[1].powerLevel == 3) { if (MayKillBountyHunter()) { BountyHunter(); FinalizoTurno = true; } } if (!FinalizoTurno) { if (infoOnHand[0].powerLevel == 4 || infoOnHand[1].powerLevel == 4) { //Tirar el 4 if (infoOnHand[0].powerLevel == 4) { infoOnHand[0].Ability(this); } else { infoOnHand[1].Ability(this); } FinalizoTurno = true; } else if (infoOnHand[0].powerLevel == 5 || infoOnHand[1].powerLevel == 5) { if (infoOnHand[0].powerLevel == 5 && infoOnHand[1].powerLevel == 5) { //Tirar [1] y elegir al target con menos conocimiento (Mas posibles cartas) Player Target = LeastKnowledge(); infoOnHand[1].Ability(Target); } else if (infoOnHand[0].powerLevel == 6 || infoOnHand[1].powerLevel == 6) { //Tirar el pricipe y autodescartarse if (infoOnHand[0].powerLevel == 5) { infoOnHand[0].Ability(this); } else { infoOnHand[1].Ability(this); } } else if (infoOnHand[0].powerLevel == 7 || infoOnHand[1].powerLevel == 7) { //Tirar 7 if (infoOnHand[0].powerLevel == 7) { infoOnHand[0].Ability(); } else { infoOnHand[1].Ability(); } } else if (infoOnHand[0].powerLevel == 8 || infoOnHand[1].powerLevel == 8) { //Tirar 5 y elegir al target con menos conocimiento (Mas posibles cartas) Player Target = LeastKnowledge(); if (infoOnHand[0].powerLevel == 5) { infoOnHand[0].Ability(Target); } else { infoOnHand[1].Ability(Target); } } } else if (infoOnHand[0].powerLevel == 6 || infoOnHand[1].powerLevel == 6) { if (infoOnHand[0].powerLevel == 7 || infoOnHand[1].powerLevel == 7) { //Tirar 7 if (infoOnHand[0].powerLevel == 7) { infoOnHand[0].Ability(); } else { infoOnHand[1].Ability(); } } else if (infoOnHand[0].powerLevel == 8 || infoOnHand[1].powerLevel == 8) { //Tirar 6 if (infoOnHand[0].powerLevel == 6) { ThrowRandomCard(infoOnHand[0]); } else { ThrowRandomCard(infoOnHand[1]); } } } else if (infoOnHand[0].powerLevel == 7 || infoOnHand[1].powerLevel == 7) { //Random para ver si tirar 7 o la otra int randomindex = Random.Range(0, 1); ThrowRandomCard(infoOnHand[randomindex]); } else { Guard(); } } } } } } } }