Ejemplo n.º 1
0
        private RepShiFuMi shiFuMi(EDefCaracteristique chosenCaract1, EDefCaracteristique chosenCaract2)
        {
            RepShiFuMi vainqueurShiFuMi = RepShiFuMi.Null;

            if (chosenCaract1 == chosenCaract2)
            {
                vainqueurShiFuMi = RepShiFuMi.Egalite;
            }
            else
            {
                switch (chosenCaract1)
                {
                case EDefCaracteristique.Force:
                    vainqueurShiFuMi = RepShiFuMi.J1Gagnant;
                    if (chosenCaract2 == EDefCaracteristique.Chance)
                    {
                        vainqueurShiFuMi = RepShiFuMi.J2Gagnant;
                    }
                    break;

                case EDefCaracteristique.Chance:
                    vainqueurShiFuMi = RepShiFuMi.J1Gagnant;
                    if (chosenCaract2 == EDefCaracteristique.Defense)
                    {
                        vainqueurShiFuMi = RepShiFuMi.J2Gagnant;
                    }
                    break;

                case EDefCaracteristique.Defense:
                    vainqueurShiFuMi = RepShiFuMi.J1Gagnant;
                    if (chosenCaract2 == EDefCaracteristique.Force)
                    {
                        vainqueurShiFuMi = RepShiFuMi.J2Gagnant;
                    }
                    break;

                case EDefCaracteristique.Sante:
                    throw new Exception("Error : \"Caracteristique Sante\" chosen !");
                }
            }
            return(vainqueurShiFuMi);
        }
Ejemplo n.º 2
0
        // Le vainqueur est directement changé dans Match
        public void playTurn(EDefCaracteristique chosenCaract1, EDefCaracteristique chosenCaract2)
        {
            if (!MatchOver)
            {
                pJedi1.ChosenCaract = chosenCaract1;
                pJedi2.ChosenCaract = chosenCaract2;

                int scoreJ1 = 0;
                int scoreJ2 = 0;

                // 1 pour J1, 2 pour J2, 0 sinon
                RepShiFuMi vainqueurShiFuMi = 0;

                //Calcul de la valeur de score
                try
                {
                    scoreJ1 = computeScore(pJedi1);
                    scoreJ2 = computeScore(pJedi2);
                }
                catch (Exception e)
                {
                    throw e;
                }

                // Calcul du Shi-Fu-Mi
                try
                {
                    vainqueurShiFuMi = shiFuMi(pJedi1.ChosenCaract, pJedi2.ChosenCaract);
                }
                catch (Exception e)
                {
                    throw e;
                }

                // Calcul final du score
                if (vainqueurShiFuMi == RepShiFuMi.J1Gagnant)
                {
                    scoreJ1 *= multiplicator;
                }
                if (vainqueurShiFuMi == RepShiFuMi.J2Gagnant)
                {
                    scoreJ2 *= multiplicator;
                }

                // Calcul vainqueur

                // Par defaut J1 GAGNE et J2 PERD
                damageInflicted = 0;
                winnerJedi      = match.Jedi1;
                looserJedi      = match.Jedi2;

                if (scoreJ1 > scoreJ2)
                {
                    damageInflicted = scoreJ1 - scoreJ2;
                    winnerJedi      = match.Jedi1;
                    looserJedi      = match.Jedi2;

                    pJedi2.HpJedi -= damageInflicted;
                }
                else if (scoreJ1 < scoreJ2)
                {
                    damageInflicted = scoreJ2 - scoreJ1;
                    looserJedi      = match.Jedi1;
                    winnerJedi      = match.Jedi2;

                    pJedi1.HpJedi -= damageInflicted;
                }

                //Le dernier vainqueur du match sera donc le vainqueur
                if (pJedi1.HpJedi <= 0 || pJedi2.HpJedi <= 0)
                {
                    matchOver           = true;
                    match.JediVainqueur = winnerJedi;
                }
            }
            else
            {
                throw new Exception("Match already over !");
            }
        }