public static void Purchased(string sku, string token, System.Action nextTask) { var pack = GlobalConfig.Shop.GetPackage(sku); if (pack == null) { nextTask?.Invoke(); return; } Profile.EarnGems(pack.gems); Profile.Bombs += pack.bombs; Profile.Hammers += pack.hammers; Profile.Missiles += pack.missiles; Game.Instance.OpenPopup <Popup_Rewards>().Setup(0, pack.gems, pack.bombs, pack.hammers, pack.missiles, true, false, nextTask); PurchaseSystem.Consume(pack.sku, (success, msg) => { if (success) { GlobalAnalytics.NewBuisinessEvent(Online.Purchase.Provider.Market, pack.sku, pack.price, token); Online.Stats.Set(GlobalConfig.Instance.version, Profile.Gems, Profile.Skill, Profile.GetLevelsPassed(), r => { }); } }); GlobalAnalytics.SourceGem(pack.gems, pack.sku.Replace("ameza_", "")); }
private void OnRewardButton(GlobalConfig.Data.League info) { if (LeagueLogics.data == null && LeagueLogics.data.end_rank > 0) { return; } Loading.Show(); rewardButton.SetInteractable(false); Online.League.SetRewarded(info.id, done => { Loading.Hide(); if (done) { var subleague = GlobalFactory.Leagues.GetByScore(info, LeagueLogics.data.end_score); Profile.EarnGems(subleague.rewardGems); Game.Instance.OpenPopup <Popup_Rewards>().Setup(0, subleague.rewardGems, 0, 0, 0, true, false, () => Rateus.AddJoy(2)); LeagueLogics.data.end_score = LeagueLogics.data.end_rank = 0; GlobalAnalytics.SourceGem(subleague.rewardGems, "league"); } else { rewardButton.SetInteractable(true); } }); }
private static void StartSession() { data.privateData.sessions++; if (IsFirstSession) { EarnGems(GlobalConfig.ProfilePreset.gems); Hearts = GlobalConfig.ProfilePreset.hearts; Bombs = GlobalConfig.ProfilePreset.bombs; Hammers = GlobalConfig.ProfilePreset.hammers; Missiles = GlobalConfig.ProfilePreset.missles; GlobalAnalytics.SourceGem(GlobalConfig.ProfilePreset.gems, "first"); } }
// Start is called before the first frame update private IEnumerator Start() { gemsLabel.SetFormatedText(GlobalConfig.Advertise.shopFreeGems.rewardGems); button.onClick.AddListener(() => { var seconds = Online.Timer.GetRemainSeconds(GlobalConfig.Advertise.shopFreeGems.timerId, GlobalConfig.Advertise.shopFreeGems.interval); if (seconds > 0) { Game.Instance.OpenPopup <Popup_Confirm>().SetText(111018, TimeToString(seconds)).Setup(true, false, null); } else { Game.Instance.OpenPopup <Popup_VideoAd>().Setup(GlobalConfig.Advertise.shopFreeGems, "shopad", success => { if (success == false) { return; } Online.Timer.Set(GlobalConfig.Advertise.shopFreeGems.timerId, GlobalConfig.Advertise.shopFreeGems.interval); Profile.EarnGems(GlobalConfig.Advertise.shopFreeGems.rewardGems); Game.Instance.OpenPopup <Popup_Rewards>().Setup(0, GlobalConfig.Advertise.shopFreeGems.rewardGems, 0, 0, 0, true); GlobalAnalytics.SourceGem(GlobalConfig.Advertise.shopFreeGems.rewardGems, "shopad"); }); } }); var wait = new WaitForSeconds(1); while (true) { var seconds = Online.Timer.GetRemainSeconds(GlobalConfig.Advertise.shopFreeGems.timerId, GlobalConfig.Advertise.shopFreeGems.interval); if (seconds > 0) { timeLabel.transform.SetActiveChild(1); var h = seconds / 3600; var m = (seconds % 3600) / 60; var s = seconds % 60; timeLabel.SetFormatedText(h, m, s); } else { timeLabel.transform.SetActiveChild(0); } yield return(wait); } }
private void Start() { season = GlobalFactory.Seasons.Get(CurrentSeason); chestButton.onClick.AddListener(() => { if (seasonState == SeasonState.CanClaimReward) { var reward = season.finalReward.GetResult(); Profile.SetSeasonRewarded(season.id, 1); Profile.EarnGems(reward.gems); Profile.Bombs += reward.bombs; Profile.Hammers += reward.hammers; Profile.Missiles += reward.missiles; Game.Instance.OpenPopup <Popup_Rewards>().Setup(0, reward.gems, reward.bombs, reward.hammers, reward.missiles, false, false, () => Rateus.AddJoy(4, () => nextButton.onClick.Invoke())); GlobalAnalytics.SourceGem(reward.gems, "season"); } else { tutorial.Display(0, false, 111041, null); } }); nextButton.onClick.AddListener(() => { season = GlobalFactory.Seasons.Get(++CurrentSeason); UpdateVisual(); DisplayLevels(); }); prevButton.onClick.AddListener(() => { var prevSeason = GlobalFactory.Seasons.Get(CurrentSeason - 1); if (prevSeason != null) { CurrentSeason--; season = prevSeason; UpdateVisual(); DisplayLevels(); } }); UpdateVisual(); DisplayLevels(); UIBackground.Show(); UiShowHide.ShowAll(transform); }
private void CheckSpinEnds() { for (int i = 0; i < columns.Length; i++) { if (columns[i].done == false) { return; } } int[] items = new int[5] { 0, 0, 0, 0, 0 }; rewards.x = rewards.x % 5; rewards.y = rewards.y % 5; rewards.z = rewards.z % 5; items[rewards.x]++; items[rewards.y]++; items[rewards.z]++; string d = "Rewards:"; d += "Bombs[" + items[0] + "] "; d += "Scissors[" + items[1] + "] "; d += "gems[" + items[2] + "] "; d += "hammer[" + items[3] + "] "; d += "hearts[" + items[4] + "] "; Debug.Log(d); if (items[0] > 1) { var bombs = items[0]; Profile.Bombs += bombs; Game.Instance.OpenPopup <Popup_Rewards>().Setup(0, 0, bombs, 0, 0, true); descAgain.SetActive(false); } else if (items[1] > 1) { var missiles = items[1]; Profile.Missiles += missiles; Game.Instance.OpenPopup <Popup_Rewards>().Setup(0, 0, 0, 0, missiles, true); descAgain.SetActive(false); } else if (items[2] > 1) { var gems = items[2] * GlobalConfig.Luckyspin.gems; Profile.EarnGems(gems); Game.Instance.OpenPopup <Popup_Rewards>().Setup(0, gems, 0, 0, 0, true); descAgain.SetActive(false); GlobalAnalytics.SourceGem(gems, "luckyspine"); } else if (items[3] > 1) { var hammers = Mathf.Max(0, items[3] - 1); Profile.Hammers += hammers; Game.Instance.OpenPopup <Popup_Rewards>().Setup(0, 0, 0, hammers, 0, true); descAgain.SetActive(false); } else if (items[4] > 1) { var hearts = items[4] - 1; Profile.Hearts += hearts; Game.Instance.OpenPopup <Popup_Confirm>().SetText(111017, hearts).Setup(true, false, null); descAgain.SetActive(false); } else { descStart.SetActive(false); descAgain.SetActive(true); stopButton.SetInteractable(true); } }
// Use this for initialization private IEnumerator Start() { var rewards = PlayModel.GetReward(); int rewardStars = PlayModel.GetRewardStars(); // verify that player has been passed this level if (Profile.IsLevelPassed(PlayModel.level.season, PlayModel.level.index)) { rewards.gems = rewards.bombs = rewards.hammers = rewards.missiles = 0; } Profile.SetLevelStars(PlayModel.level.season, PlayModel.level.index, rewardStars); int totalBalls = PlayModel.result.totalBalls + PlayModel.level.startBallCount; desc.SetFormatedText(PlayModel.result.totalTurn.ToString(), PlayModel.result.totalBlocks.ToString(), totalBalls); if (rewards.exist) { continueButton.gameObject.SetActive(true); nextLevelButton.gameObject.SetActive(false); goHomeButton.gameObject.SetActive(false); } else { continueButton.gameObject.SetActive(false); nextLevelButton.gameObject.SetActive(true); goHomeButton.gameObject.SetActive(true); } nextLevelButton.onClick.AddListener(() => { base.Back(); nextTaskFunc?.Invoke(true); }); goHomeButton.onClick.AddListener(() => { base.Back(); nextTaskFunc?.Invoke(false); }); continueButton.onClick.AddListener(() => { continueButton.gameObject.SetActive(false); Profile.EarnGems(rewards.gems); Profile.Bombs += rewards.bombs; Profile.Hammers += rewards.hammers; Profile.Missiles += rewards.missiles; Game.Instance.OpenPopup <Popup_Rewards>().Setup(0, rewards.gems, rewards.bombs, rewards.hammers, rewards.missiles, true, true, () => { continueButton.gameObject.SetActive(false); nextLevelButton.gameObject.SetActive(true); goHomeButton.gameObject.SetActive(true); }); GlobalAnalytics.SourceGem(rewards.gems, "level"); }); UiShowHide.ShowAll(transform); var wait = new WaitForSeconds(0.3f); yield return(wait); yield return(wait); yield return(wait); stars[0].SetActive(rewardStars > 0); yield return(wait); stars[1].SetActive(rewardStars > 1); yield return(wait); stars[2].SetActive(rewardStars > 2); yield return(wait); // Incentive text { var index = BaloonIndex++ % 25; var incentiveStr = LocalizationService.Get(111090 + index); if (BaloonIndex < 25 || Random.Range(0, 100) < rewardStars * 25) { baloon.SetText(incentiveStr); baloon.gameObject.SetActive(true); } } }
public Popup_Rewards Setup(int ballId, int gems, int bombs, int hammers, int missiles, bool openChest = false, bool winClaim = false, System.Action onClose = null) { onCloseFunc = onClose; doOpenChest = openChest; if (ballId > 0) { var tmp = new ProfileData.AvatarData() { angle = Profile.Avatar.Angle }; tmp.ballId = ballId; avatar.Setup(tmp); } else { avatar.gameObject.SetActive(false); } if (gems > 0) { rgems = gems; } else { gemsLabel.gameObject.SetActive(false); } if (bombs > 0) { rbombs = bombs; } else { bombsLabel.gameObject.SetActive(false); } if (hammers > 0) { rhammers = hammers; } else { hammersLabel.gameObject.SetActive(false); } if (missiles > 0) { rmissiles = missiles; } else { missilesLabel.gameObject.SetActive(false); } boosterContent.SetActive(bombs > 0 || hammers > 0 || missiles > 0); winClaimButton.gameObject.SetActive(winClaim && Online.Timer.GetRemainSeconds(GlobalConfig.Advertise.winClaim.timerId, GlobalConfig.Advertise.winClaim.interval) < 1); winClaimButton.onClick.AddListener(() => { Game.Instance.OpenPopup <Popup_VideoAd>().Setup(GlobalConfig.Advertise.winClaim, "winclaim", success => { if (success == false) { return; } rtime = 0; winClaimButton.gameObject.SetActive(false); Online.Timer.Set(GlobalConfig.Advertise.winClaim.timerId, GlobalConfig.Advertise.winClaim.interval); rgems += GlobalConfig.Advertise.winClaim.rewardGems; Profile.EarnGems(GlobalConfig.Advertise.winClaim.rewardGems); GlobalAnalytics.SourceGem(GlobalConfig.Advertise.winClaim.rewardGems, "winclaim"); }); }); return(this); }
public UIFriendItem Setup(Online.Friends.Friendship friend, int rank) { if (avatar) { avatar.Setup(friend.avatar); } if (nicknameLabel) { nicknameLabel.SetText(friend.nickname); } if (descLabel) { descLabel.SetText(friend.status); } if (levelLabel) { levelLabel.SetText(friend.level); } if (rankLabel) { rankLabel.SetText(rank.ToString()); } if (cupImage && rank < 4) { cupImage.material = null; } if (background && friend.username == Profile.Username) { background.color = Color.green; } int leagueIndex = GlobalFactory.Friends.GetLeagueIndex(friend.level.ToInt()); medalImage.sprite = GlobalFactory.Friends.GetMedalSprite(leagueIndex); if (friend.username == Profile.Username || Profile.IsFriendRewarded(friend.id.ToInt(), friend.level.ToInt())) { descLabel.gameObject.SetActive(true); medalImage.gameObject.SetActive(true); cupImage.gameObject.SetActive(true); rewardButton.transform.parent.gameObject.SetActive(false); } else if (friend.level.ToInt() < GlobalConfig.Friends.minRewardLevel) { descLabel.gameObject.SetActive(false); medalImage.gameObject.SetActive(false); cupImage.gameObject.SetActive(false); rewardButton.transform.parent.gameObject.SetActive(true); rewardButton.SetInteractable(false); rewardDescLabel.gameObject.SetActive(true); rewardDescLabel.SetFormatedText(friend.level.ToInt(), GlobalConfig.Friends.minRewardLevel); } else { descLabel.gameObject.SetActive(false); medalImage.gameObject.SetActive(false); cupImage.gameObject.SetActive(false); rewardButton.transform.parent.gameObject.SetActive(true); rewardButton.SetInteractable(true); rewardDescLabel.gameObject.SetActive(true); rewardDescLabel.SetFormatedText(friend.level.ToInt(), GlobalConfig.Friends.minRewardLevel); rewardButton.onClick.AddListener(() => { rewardButton.gameObject.SetActive(false); Profile.EarnGems(GlobalConfig.Friends.rewardGems); Profile.SetFriendRewarded(friend.id.ToInt(), GlobalConfig.Friends.rewardGems); Game.Instance.OpenPopup <Popup_Rewards>().Setup(0, GlobalConfig.Friends.rewardGems, 0, 0, 0, true, false, () => { descLabel.gameObject.SetActive(true); medalImage.gameObject.SetActive(true); cupImage.gameObject.SetActive(true); rewardButton.transform.parent.gameObject.SetActive(false); }); GlobalAnalytics.SourceGem(GlobalConfig.Friends.rewardGems, "friend"); }); } if (friend.username == Profile.Username) { return(this); } button.onClick.AddListener(() => { Loading.Show(); button.SetInteractable(false); Online.Userdata.GetPublic(friend.username, (succeed, data) => { Loading.Hide(); button.SetInteractable(true); if (succeed) { Game.Instance.OpenPopup <Popup_ProfileInfo>().Setup(friend, data, rank); } else { Game.Instance.OpenPopup <Popup_Confirm>().SetText(111010, friend.nickname).Setup(false, true, null); } }); }); return(this); }
private IEnumerator Start() { UIBackground.Show(); UiShowHide.ShowAll(transform); onlineButton.onClick.AddListener(() => { if (Profile.GetSeasonRewarded(0) > 0) { Game.Instance.OpenState <State_SelectLeague>(); } else { tutorial.Display(0, false, 111034, null); } }); classicButton.onClick.AddListener(() => { if (ClassicLogics.SetPlayModel()) { UIBackground.Hide(); Game.Instance.OpenState <State_Playing>(); } }); if (Profile.IsFirstSession) { levelsButton.GetComponent <Animation>().Play(); } levelsButton.onClick.AddListener(() => Game.Instance.OpenState <State_Levels>()); luckyButton.onClick.AddListener(() => { var seconds = Online.Timer.GetRemainSeconds(GlobalConfig.Luckyspin.timerId, GlobalConfig.Luckyspin.interval); if (seconds > 0) { Game.Instance.OpenPopup <Popup_Confirm>().SetText(111018, TimeToString(seconds)).Setup(true, false, null); } else { Online.Timer.Set(GlobalConfig.Luckyspin.timerId, GlobalConfig.Luckyspin.interval); Game.Instance.OpenPopup <Popup_LuckySpine>(); } }); if (Profile.IsFirstSession == false && Profile.Version < GlobalConfig.Instance.version && GlobalConfig.Update.mode == GlobalConfig.Data.Update.Mode.Null && GlobalConfig.Update.rewardGems > 0) { Profile.Version = GlobalConfig.Instance.version; Game.Instance.OpenPopup <Popup_Confirm>().Setup(111129, true, false, ok => { Game.Instance.OpenPopup <Popup_Rewards>().Setup(0, GlobalConfig.Update.rewardGems, 0, 0, 0, true, false, () => Profile.EarnGems(GlobalConfig.Update.rewardGems)); GlobalAnalytics.SourceGem(GlobalConfig.Update.rewardGems, "update"); }); } var displayed = tutorial.Display(1, true, 111031, () => tutorial.Display(0, true, 111032, null)); if (displayed == false) { tutorial.DisplayJoke(1); } var wait = new WaitForSeconds(1); while (true) { var seconds = Online.Timer.GetRemainSeconds(GlobalConfig.Luckyspin.timerId, GlobalConfig.Luckyspin.interval); if (seconds > 0) { luckyTimeLabel.transform.SetActiveChild(1); var h = seconds / 3600; var m = (seconds % 3600) / 60; var s = seconds % 60; luckyTimeLabel.SetFormatedText(h, m, s); } else { luckyTimeLabel.transform.SetActiveChild(0); } yield return(wait); } }