Ejemplo n.º 1
0
    private void GetBonusCard(Card card)
    {
        if (BonusMilitaireToken && card.BonusMilitaire > 0 && !card.Merveille)
        {
            Militaire += card.BonusMilitaire + 1;
            pieceMilitaire.AddMilitaryPoint(this, card.BonusMilitaire + 1);
        }
        else
        {
            Militaire += card.BonusMilitaire;
            pieceMilitaire.AddMilitaryPoint(this, card.BonusMilitaire);
        }

        PointVictoire = PointVictoire + card.BonusVictoire;
        Argent        = Argent + card.BonusArgent;
        if (card.BonusArgent > 0)
        {
            GameObject.FindGameObjectWithTag("PieceInAudio").GetComponent <AudioSource>().Play();
        }
        Argile  = Argile + card.BonusArgile;
        Pierre  = Pierre + card.BonusPierre;
        Bois    = Bois + card.BonusBois;
        Verre   = Verre + card.BonusVerre;
        Papyrus = Papyrus + card.BonusPapyrus;

        if (card.Merveille)
        {
            PointVictoireMerveille += card.BonusVictoire;
        }
        if (card.Guilde)
        {
            PointVictoireGuilde += card.BonusVictoire;
            NbCarteGuilde++;
        }

        switch (card.Color)
        {
        case "marron":
            NbCarteMarron++;
            RessourcesPrimairesCard.Add(card.CardGame);
            break;

        case "gris":
            NbCarteGrise++;
            RessourcesSecondaireCard.Add(card.CardGame);
            break;

        case "rouge":
            NbCarteRouge++;
            break;

        case "jaune":
            PointVictoireCarteJaune += card.BonusVictoire;
            NbCarteJaune++;
            AddCarteJaune(card.Reduction);
            break;

        case "vert":
            PointVictoireCarteVert += card.BonusVictoire;
            NbCarteVerte++;
            _scienceManager.GetComponent <ScienceManager>().setSymbole(card.SymboleScientifique, this);
            break;

        case "bleu":
            PointVictoireCarteBleu += card.BonusVictoire;
            NbCarteBleu++;
            break;

        case "violet":
            AddCarteViolet(card.BonusSpecial);
            break;
        }

        switch (card.BonusSpecial)
        {
        //CARTE AGE 3
        case "2argent/merveille":
            Argent += 2 * NbMerveilles;
            break;

        case "1argent/carteRouge":
            Argent += 1 * NbCarteRouge;
            break;

        case "3argent/carteGrise":
            Argent += 3 * NbCarteGrise;
            break;

        case "1argent/carteJaune":
            Argent += 1 * NbCarteJaune;
            break;

        case "2argent/carteMarron":
            Argent += 2 * NbCarteMarron;
            break;

        //FIN DU JEU
        case "2pv/merveille":
            _bonusMerveille2Pv = true;
            break;

        case "1argent+1pv/carteBleu":
            Argent            += Math.Max(NbCarteBleu, PlayerAdverse.NbCarteBleu);
            _bonusCarteBleu1Pv = true;
            break;

        case "1argent+1pv/carteJaune":
            Argent += Math.Max(NbCarteJaune, PlayerAdverse.NbCarteJaune);
            _bonusCarteJaune1Pv = true;
            break;

        case "1pv/3Argent":
            _bonusArgent1Pv = true;
            break;

        case "1argent+1pv/carteVerte":
            _bonusCarteVerte1Pv = true;
            Argent += Math.Max(NbCarteVerte, PlayerAdverse.NbCarteVerte);
            break;

        case "1argent+1pv/carteGrise+carteMarron":
            _bonusCarteGrisMarron1Pv = true;
            Argent += Math.Max(NbCarteMarron + NbCarteGrise,
                               PlayerAdverse.NbCarteMarron + PlayerAdverse.NbCarteGrise);
            break;

        case "1argent+1pv/carteRouge":
            _bonusCarteRouge1Pv = true;
            Argent += Math.Max(NbCarteRouge, PlayerAdverse.NbCarteRouge);
            break;
        }


        if (card.SymboleChainage != "NONE")
        {
            AddSymboleChainage(card.SymboleChainage);
        }
        if (card.Merveille)
        {
            AddMerveille(card.BonusSpecial, card);
            if (BonusMerveilleReplayToken)
            {
                card.Replay = true;
            }
        }

        if (!card.Replay && !HasDoubleSymboleSciences && !DestroyRessourcePrimaire && !DestroyRessourceSecondaire)
        {
            IsPlaying = false;
            PlayerAdverse.IsPlaying = true;
        }
        else
        {
            IsPlaying = true;
            PlayerAdverse.IsPlaying = false;
        }
    }