Пример #1
0
        public override void Activate(bool instancePreserved)
        {
            base.Activate(instancePreserved);
            IsPopup = true;

            aboutPage = new BorderedView(new Vector2(1150, 902), new Vector2(1920 / 2, 1080 / 2 - 75));
            aboutPage.Disabled = false;

            int startX = 445;
            int startY = 120;
            Label about = new Label("About", new Vector2(startX, startY));
            about.CenterX = false;
            about.Font = "tahoma";
            Label version = new Label("Version " + Configuration.VERSION, new Vector2(startX, startY + 70));
            version.CenterX = false;
            version.Scale = 0.8f;

            Label email1 = new Label("Email any issues to: ", new Vector2(startX + 670, startY - 20));
            email1.CenterX = false;
            email1.Scale = 0.8f;
            Label email2 = new Label("*****@*****.**", new Vector2(startX + 340, startY + 30));
            email2.CenterX = false;

            Button rate = new Button("Rate Us");
            rate.Position = new Vector2(startX + 200, startY + 177);
            rate.Tapped += rateButton_Tapped;

            Image fbIcon = new Image("fbIcon", 0, new Vector2(100, 100), new Vector2(startX + 75, startY + 350));
            Label fb = new Label("fb.me/CritterCampGame", new Vector2(startX + 180, startY + 350));
            fb.CenterX = false;
            Image twIcon = new Image("twitterIcon", 0, new Vector2(100, 100), new Vector2(startX + 75, startY + 515));
            Label tw = new Label("@CritterCampGame", new Vector2(startX + 180, startY + 515));
            tw.CenterX = false;

            Label music1 = new Label("Music", new Vector2(startX, startY + 655));
            music1.CenterX = false;
            music1.Scale = 0.8f;
            Label music2 = new Label("Call to Adventure by Kevin Macleod", new Vector2(startX, startY + 715));
            music2.CenterX = false;

            aboutPage.AddElement(about);
            aboutPage.AddElement(version);
            aboutPage.AddElement(email1);
            aboutPage.AddElement(email2);
            aboutPage.AddElement(rate);
            aboutPage.AddElement(fbIcon);
            aboutPage.AddElement(fb);
            aboutPage.AddElement(twIcon);
            aboutPage.AddElement(tw);
            aboutPage.AddElement(music1);
            aboutPage.AddElement(music2);
            mainView.AddElement(aboutPage);
        }
Пример #2
0
        public override void Activate(bool instancePreserved)
        {
            base.Activate(instancePreserved);

            Dictionary<string, PlayerData> playerData = Storage.Get<Dictionary<string, PlayerData>>("player_data");
            PlayerData myData = Storage.Get<PlayerData>("myPlayerData");

            // level calculations
            int myLevel = Storage.Get<int>("myLevel");
            int currLvlExp = Storage.Get<int>("curr_lvl_exp"); // experience to get to our current level
            int nextLvlExp = Storage.Get<int>("next_lvl_exp"); // experience to get the the next level
            int currExp = Storage.Get<int>("exp"); // our current experience
            int expGained = Storage.Get<int>("exp_gained"); // how much experience we gained
            int isolatedLvlExp = currExp - currLvlExp;
            int prevExp = (isolatedLvlExp < expGained) ? 0 : currExp - expGained - currLvlExp;
            int currExpToShow = currExp - currLvlExp;
            int expToNext = nextLvlExp - currLvlExp;
            int gainedExpToShow = currExpToShow - prevExp;
            bool levelGained = false;
            if (myData.level != myLevel) { // our new level doesnt match. we gained a level
                myData.level = myLevel;
                Storage.Set("myPlayerData", myData); // resave the player data
                levelGained = true;
            }

            List<PlayerData> sortedScoreData = Storage.Get<List<PlayerData>>("scores");
            for (int i = 0; i < sortedScoreData.Count; i++) {
                PlayerData player = sortedScoreData[i];
                BorderedView playerView = new BorderedView(new Vector2(432, 525), new Vector2(276 + 456 * i, 425));
                if (player.username == myData.username) {
                    // displaying ourself. draw a yellow background instead of the default light brown
                    playerView.FillColor = Constants.YellowHighlight;
                    player.level = myLevel; // update the level info
                }

                PlayerAvatar playerAvatar = new PlayerAvatar(player, new Vector2(276 + 456 * i, 400));
                Label playerName = new Label(player.username, new Vector2(276 + 456 * i, 575));
                playerName.Font = "gillsans";
                playerName.MaxSize(500);
                Label playerLevel = new Label("Level " + player.level.ToString(), new Vector2(276 + 456 * i, 625));
                playerLevel.Scale = 0.8f;

                Image badge = new Image("scoreScreenIcons", player.score - 1, new Vector2(192, 192), new Vector2(276 + 456 * i, 150 + 20 * (player.score - 1)));

                playerView.AddElement(playerAvatar);
                playerView.AddElement(playerName);
                playerView.AddElement(playerLevel);

                mainView.AddElement(playerView);
                mainView.AddElement(badge);
            }

            const int levelViewHeight = 125;
            const int levelViewWidth = 1800;
            const int levelViewX = 960;
            const int levelViewY = 825;
            const int rectX = levelViewX - levelViewWidth / 2 + 20; // top left corner of the level rectangle;
            const int rectY = levelViewY - levelViewHeight / 2 + 20; // top right corner of the level rectangle;
            const int rectSizeX = levelViewWidth - 40;
            const int rectSizeY = levelViewHeight - 40;

            int currExpToShowSize = rectSizeX * prevExp / expToNext;
            gainedExpToShowSize = rectSizeX * gainedExpToShow / expToNext;
            BorderedView levelView = new BorderedView(new Vector2(levelViewWidth, levelViewHeight), new Vector2(levelViewX, levelViewY));
            FilledRectangle levelBack = new FilledRectangle(new Rectangle(rectX, rectY, rectSizeX, rectSizeY));
            levelBack.RectangleColor = new Color(102, 102, 102);
            levelView.AddElement(levelBack);
            FilledRectangle levelCurrExp = new FilledRectangle(new Rectangle(rectX, rectY, currExpToShowSize, rectSizeY));
            levelCurrExp.RectangleColor = new Color(48, 198, 48);
            levelView.AddElement(levelCurrExp);
            levelExpGain = new FilledRectangle(new Rectangle(rectX + currExpToShowSize-1, rectY, 0, rectSizeY));
            levelExpGain.RectangleColor = new Color(154, 231, 154);
            levelView.AddElement(levelExpGain);

            Label levelLabel = new Label("Level " + myLevel, new Vector2(rectX+50, levelViewY));
            levelLabel.TextColor = Color.White;
            levelLabel.CenterX = false;
            levelView.AddElement(levelLabel);

            Label expLabel = new Label(currExpToShow + " / " + expToNext, new Vector2(levelViewX, levelViewY));
            expLabel.TextColor = Color.White;
            levelView.AddElement(expLabel);

            Label expGainedLabel = new Label("+" + expGained + "XP", new Vector2(levelViewX + 325, levelViewY));
            expGainedLabel.TextColor = Color.Yellow;
            levelView.AddElement(expGainedLabel);

            if (levelGained) { // display a level gained message
                Label levelGainedLabel = new Label("+level", new Vector2(levelViewX + 525, levelViewY));
                levelGainedLabel.TextColor = Color.Yellow;
                levelView.AddElement(levelGainedLabel);
            }

            mainView.AddElement(levelView);

            Label messageLabel = new Label("Tap to continue", new Vector2(levelViewX, levelViewY + 150));
            mainView.AddElement(messageLabel);
        }