Exemple #1
0
 public Treasure(string name, Texture2D cardTexture, Texture2D cardBack, Dictionary <string, Button> buttons, Dictionary <string,
                                                                                                                          Texture2D> dieTextures, Dictionary <string, SoundEffect> dieSounds) : base(name, cardTexture, cardBack, buttons)
 {
     treasureTurnState = TreasureTurnState.GOLD_AWARD;
     CurrentButtons    = new List <Button>();
     DieTextures       = dieTextures;
     DieSounds         = dieSounds;
     TreasureDie       = new Die(DieTextures, 840, 400);
 }
Exemple #2
0
        //---------------------- METHODS -----------------------------
        public override bool HandleCard(Player player, MouseState current, MouseState previous, float xPos, float yPos)
        {
            XPos = xPos;
            YPos = yPos;
            CurrentMouseState  = current;
            PreviousMouseState = previous;


            switch (treasureTurnState)
            {
            case TreasureTurnState.GOLD_AWARD:
                Success         = false;
                TreasureAwarded = false;
                TreasureRoll    = false;
                if (player.HasFoughtMonster)
                {
                    GoldAward = 2;
                }
                else
                {
                    GoldAward = 1;
                }
                HandleButtons(player);

                return(false);

            case TreasureTurnState.ROLLANIMATION:

                if (AnimationCounter < 60)
                {
                    RollAnimation();
                }
                else
                {
                    DieSoundPlayed = false;
                    if (TreasureRoll)
                    {
                        AnimationCounter           = 0;
                        TreasureResult             = player.playerDice.RollDice();
                        TreasureDie.CurrentTexture = TreasureDie.DieTextures["Roll " + TreasureResult];


                        switch (TreasureResult)
                        {
                        case 1:
                            player.Armor++;
                            break;

                        case 2:
                            player.Experience += 2;
                            break;

                        case 3:
                            AwardedSpell = "Fire";
                            break;

                        case 4:
                            AwardedSpell = "Ice";
                            break;

                        case 5:
                            AwardedSpell = "Poison";
                            break;

                        case 6:
                            AwardedSpell = "Healing";
                            break;

                        default:
                            break;
                        }

                        if (TreasureResult > 2 && player.Spells.Count == 2)
                        {
                            treasureTurnState = TreasureTurnState.REMOVESPELL;
                        }
                        else
                        {
                            treasureTurnState = TreasureTurnState.REVIEW;
                        }
                    }
                    else
                    {
                        AnimationCounter           = 0;
                        ExtTreasureResult          = player.playerDice.RollDice();
                        TreasureDie.CurrentTexture = TreasureDie.DieTextures["Roll " + ExtTreasureResult];
                        if (ExtTreasureResult >= 5)
                        {
                            Success           = true;
                            treasureTurnState = TreasureTurnState.EXTRA_TREASURE_ROLL;
                        }
                        else
                        {
                            treasureTurnState = TreasureTurnState.REVIEW;
                        }
                    }
                }

                return(false);

            case TreasureTurnState.EXTRA_TREASURE_ROLL:
                HandleButtons(player);

                return(false);

            case TreasureTurnState.REMOVESPELL:
                HandleButtons(player);

                return(false);

            case TreasureTurnState.REVIEW:
                if (TreasureResult > 2 && !TreasureAwarded)
                {
                    player.AddSpell(AwardedSpell);
                    TreasureAwarded = true;
                }
                HandleButtons(player);

                return(false);

            case TreasureTurnState.COMPLETE:

                return(true);

            default:

                return(false);
            }
        }
Exemple #3
0
        public void HandleButtons(Player player)
        {
            if (SingleMouseClick())
            {
                switch (treasureTurnState)
                {
                case TreasureTurnState.GOLD_AWARD:

                    player.Gold += GoldAward;
                    if (XPos > 770 && XPos < 1018 && YPos > 600 && YPos < 672)
                    {
                        treasureTurnState = TreasureTurnState.ROLLANIMATION;
                    }
                    break;

                case TreasureTurnState.EXTRA_TREASURE_ROLL:

                    if (XPos > 770 && XPos < 1018 && YPos > 600 && YPos < 672)
                    {
                        TreasureRoll      = true;
                        treasureTurnState = TreasureTurnState.ROLLANIMATION;
                    }

                    break;

                case TreasureTurnState.REMOVESPELL:

                    if (XPos > 770 && XPos < 1018 && YPos > 600 && YPos < 672)
                    {
                        treasureTurnState = TreasureTurnState.COMPLETE;
                    }

                    if (XPos > 1130 && XPos < 1175 && YPos > 20 && YPos < 65)
                    {
                        player.RemoveSpell(0);
                        player.AddSpell(AwardedSpell);
                        TreasureAwarded   = true;
                        treasureTurnState = TreasureTurnState.REVIEW;
                    }

                    if (player.Spells.Count == 2)
                    {
                        if (XPos > 1180 && XPos < 1225 && YPos > 20 && YPos < 65)
                        {
                            player.RemoveSpell(1);
                            player.AddSpell(AwardedSpell);
                            TreasureAwarded   = true;
                            treasureTurnState = TreasureTurnState.REVIEW;
                        }
                    }
                    break;

                case TreasureTurnState.REVIEW:

                    if (XPos > 770 && XPos < 1018 && YPos > 600 && YPos < 672)
                    {
                        treasureTurnState = TreasureTurnState.COMPLETE;
                    }


                    break;

                default:
                    break;
                }
            }
        }