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); }
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); }