Esempio n. 1
0
    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);
                }
            }
        }
    }
Esempio n. 2
0
    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;
        }
    }
Esempio n. 3
0
 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();
 }
Esempio n. 4
0
    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;
            }
        }
    }
Esempio n. 5
0
    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);
    }
Esempio n. 6
0
 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);
 }
Esempio n. 7
0
 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);
             }
         }
     }
 }
Esempio n. 8
0
 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]);
                     }
                 }
             }
         }
     }
 }
Esempio n. 9
0
    void KingThrown(CardNotepad TargetNP)
    {
        int Target = PlayerIndex(TargetNP);

        PlayersCanHave[Target].cardNumber[6] = false;
    }
Esempio n. 10
0
    //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;
    }
Esempio n. 11
0
 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);
             }
         }
     }
 }
Esempio n. 12
0
 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();
                             }
                         }
                     }
                 }
             }
         }
     }
 }