Esempio n. 1
0
    void OpenChest(LootCrate crate)
    {
        lootCrateInterface = Instantiate(LootInterface, LootInterfaceContainer);
        LootCrateInterface lci = lootCrateInterface.GetComponent <LootCrateInterface>();

        lci.Initialize(crate, null, CompleteLoot, true);
    }
Esempio n. 2
0
    private void KilledBy(GameObject source)
    {
        InventoryNPC myInv = GetComponent <InventoryNPC>();

        if (WeaponSlot.transform.childCount > 0)
        {
            InvItem weapon = WeaponSlot.transform.GetChild(0).GetComponent <InvItem>();
            if (weapon)
            {
                myInv.GiveItem(weapon);
            }
        }

        if (ArmorSlot.transform.childCount > 0)
        {
            InvItem armor = ArmorSlot.transform.GetChild(0).GetComponent <InvItem>();
            if (armor)
            {
                myInv.GiveItem(armor);
            }
        }


        LootCrate.SpawnLootcrateOn(transform);

        Destroy(gameObject);
    }
    // CLEAN ME
    private void BtnOnClickCrate(Button crateBtn)
    {
        if (_status != LootCrateScreenStatus.NORMAL)
        {
            return;
        }

        SetNavButtonsEnabled(false);

        _status = LootCrateScreenStatus.OPEN_CRATE;

        _crateItems       = new List <LootCrateItem>();
        _currentLootCrate = crateBtn.GetComponentInParent <LootCrateBox>();

        Rect        parentRect = this.parentRect;
        Transform   btnParent  = crateBtn.transform.parent;
        LootCrate   lootCrate  = _currentLootCrate.lootCrate;
        List <Item> items      = lootCrate.GenerateItems();

        //NOTE-TO-SELF: DO call this API method! (Instead of one-by-one, batch-calls adds all generated items)
        API.Items.AddMany(items)
        .Then(res => trace("Added " + items.Count + " items server-side..."))
        .Catch(err => traceError("Something went wrong while adding newly generated items to server-side: " + err.Message));

        dataMan.allItemsList.AddRange(items);
    }
    void OpenChest(string type)
    {
        if (lootCrates.Count <= 0)
        {
            return;
        }

        LootCrate crate = lootCrates.Find(lc => lc.CrateType.Identity == type);

        if (crate == null)
        {
            Debug.LogError("Error: How is the loot crate even null here?");
            return;
        }

        if (lootCrates.Count <= 1)
        {
            forceClose = true;
        }

        LootCrateInterface lci = (LootCrateInterface)MenuManager.Instance.Push("Interface_LootCrate");

        lootCrates.Remove(crate);
        lci.Initialize(crate, UpdateChestText, checkToCloseResults);
    }
    public static NodePromise GenerateLootCrate(LootTableData lootTable, float minItemLevel, float Variance, float magicFind, int activeZoneMongoID = -1, CrateTypeData lootCrateType = null, Action <LootCrate> callback = null)
    {
        LootCrate lootCrate;

        if (lootCrateType == null)
        {
            CrateTypeData ctd = MathHelper.WeightedRandom(lootTable.crateType).Key;
            lootCrate = new LootCrate(lootTable.Identity, minItemLevel, Variance, ctd, magicFind);
        }
        else
        {
            lootCrate = new LootCrate(lootTable.Identity, minItemLevel, Variance, lootCrateType, magicFind);
        }

        lootCrate.ExplorationID = activeZoneMongoID;

        return(API.LootCrates.Add(lootCrate)
               .Then(res => {
            //dataMan.allLootCratesList.Add(lootCrate);
            if (callback != null)
            {
                callback(lootCrate);
            }
        })
               .Catch(err => {
            traceError("Could not generate a new LootCrate: " + GameAPIManager.GetErrorMessage(err));
        }));
    }
Esempio n. 6
0
    //void STATE_Items() {
    //    if (changedState) {
    //        traceCheats("ITEMS: Add [H]elm, [C]hest, [G]loves, [B]oots, -R-elic, [W]eapon" + _EST_TO_EXIT);
    //    }

    //    ItemData randomItemData = null;

    //    IPromise<NodeResponse> promise = null;

    //    if (Input.GetKeyDown(KeyCode.H)) {
    //        AUDIO.Play(SFX_UI.Click);
    //        randomItemData = DATAMAN.GetRandomItemType(EquipmentType.Helm);
    //    }

    //    if (Input.GetKeyDown(KeyCode.C)) {
    //        AUDIO.Play(SFX_UI.Click);
    //        randomItemData = DATAMAN.GetRandomItemType(EquipmentType.Chest);
    //    }

    //    if (Input.GetKeyDown(KeyCode.G)) {
    //        AUDIO.Play(SFX_UI.Click);
    //        randomItemData = DATAMAN.GetRandomItemType(EquipmentType.Gloves);
    //    }

    //    if (Input.GetKeyDown(KeyCode.B)) {
    //        AUDIO.Play(SFX_UI.Click);
    //        randomItemData = DATAMAN.GetRandomItemType(EquipmentType.Boots);
    //    }

    //    if (Input.GetKeyDown(KeyCode.R)) {
    //        AUDIO.Play(SFX_UI.Invalid);
    //        traceError("Relics not implemented yet!");
    //        return;
    //        //promise = API.ItemRandomize(EquipmentType.Relic, 1);
    //        //randomItemData = DATAMAN.GetRandomItemType(EquipmentType.Artifact);
    //    }

    //    if (Input.GetKeyDown(KeyCode.W)) {
    //        AUDIO.Play(SFX_UI.Click);
    //        randomItemData = DATAMAN.GetRandomItemType(EquipmentType.Weapon);
    //    }

    //    Item item = null;
    //    if (randomItemData != null) {
    //        item = new Item(randomItemData, GAMEMAN.GetSeed(), GAMEMAN.GetSeed(), GAMEMAN.GetSeed(), GAMEMAN.GetSeed(), Rand.Range(0f, 100f), 20f, 0f);
    //        promise = API.Items.Add(item);
    //    }

    //    if (promise != null) {
    //        promise.Then(res => {
    //            traceCheats("Item added!");
    //            trace(res.pretty);
    //            DATAMAN.allItemsList.Add(item);
    //        }).Catch(err => {
    //            traceError("Oh no! Item couldn't be added!");
    //        });
    //    }
    //}

    //void STATE_Heroes() {
    //    if (changedState) {
    //        traceCheats("HEROES: Add [H]ero" + _EST_TO_EXIT);
    //    }

    //    Hero hero = null;
    //    IPromise<NodeResponse> promise = null;

    //    if (Input.GetKeyDown(KeyCode.H)) {
    //        AUDIO.Play(SFX_UI.ShardsChing);
    //        hero = new Hero(DATAMAN.heroDataList.GetRandom(), GAMEMAN.GetSeed());
    //        promise = API.Heroes.Add(hero);
    //    }

    //    if (promise != null) {
    //        promise.Then(res => {
    //            traceCheats("Hero added!");
    //            trace(res.pretty);
    //            DATAMAN.allHeroesList.Add(hero);
    //        }).Catch(err => {
    //            traceError("Oh no! Hero couldn't be added!");
    //        });
    //    }
    //}

    void STATE_LootCrates()
    {
        if (changedState)
        {
            traceCheats("LOOT-CRATES: Add [L]ootCrate" + _EST_TO_EXIT);
        }

        LootCrate lootCrate             = null;
        IPromise <NodeResponse> promise = null;

        if (Input.GetKeyDown(KeyCode.L))
        {
            AUDIO.Play(SFX_UI.ShardsChing);
            var lootTable = DATAMAN.lootTableDataList.GetByIdentity("lt_zone_training_1");

            lootCrate = new LootCrate(lootTable.Identity, 20f, 20f, DataManager.Instance.crateTypeDataList.GetRandom());
            promise   = API.LootCrates.Add(lootCrate);
        }

        if (promise != null)
        {
            promise.Then(res => {
                traceCheats("LootCrate added!");
                trace(res.pretty);
                DATAMAN.allLootCratesList.Add(lootCrate);
            }).Catch(err => {
                traceError("Oh no! LootCrate couldn't be added!");
            });
        }
    }
Esempio n. 7
0
    private void OnLevelLoaded(GameLevelLoaded data)
    {
        LevelManager levelManager = WPFMonoBehaviour.levelManager;

        if (levelManager != null && levelManager.CurrentGameMode is BaseGameMode && !levelManager.m_sandbox && !levelManager.m_raceLevel)
        {
            int index = 0;
            if (this.IsDailyChallenge(data.episodeIndex, data.levelIndex, out index) && !this.dailyChallenges[index].collected)
            {
                DailyLevel daily = Singleton <GameManager> .instance.gameData.m_dailyChallengeData.GetDaily(this.dailyChallenges[index].DailyKey);

                Vector3 position;
                if (daily != null && daily.GetPosition(this.dailyChallenges[index].positionIndex, out position))
                {
                    GameObject gameObject  = WPFMonoBehaviour.gameData.m_lootCrates[(int)this.TodaysLootCrate(index)];
                    GameObject gameObject2 = UnityEngine.Object.Instantiate <GameObject>(gameObject, position, Quaternion.identity);
                    LootCrate  component   = gameObject2.GetComponent <LootCrate>();
                    LootCrate  lootCrate   = component;
                    lootCrate.OnCollect = (Action)Delegate.Combine(lootCrate.OnCollect, new Action(delegate()
                    {
                        this.OnDailyRewardCollected(index);
                    }));
                    LootCrate lootCrate2 = component;
                    lootCrate2.RewardExperience = (Func <int>)Delegate.Combine(lootCrate2.RewardExperience, new Func <int>(this.RewardExperience));
                    component.SetAnalyticData(index, this.dailyChallenges[index].adRevealed);
                    this.dailyChallenges[index].revealed = true;
                    UnityEngine.Debug.LogWarning("Instantiated " + gameObject.name + " at position " + position.ToString());
                }
            }
        }
    }
Esempio n. 8
0
 public void OpenCrate()
 {
     if (Singleton <TimeManager> .Instance.HasTimer(this.identifier))
     {
         Singleton <TimeManager> .Instance.RemoveTimer(this.identifier);
     }
     GameProgress.DeleteKey(this.identifier, GameProgress.Location.Local);
     LootCrate.SpawnLootCrateOpeningDialog(this.crateType, 1, WPFMonoBehaviour.s_hudCamera, null, new LootCrate.AnalyticData("Slot", this.unlockPrice.ToString(), LootCrate.AdWatched.NotApplicaple));
     this.ChangeState(LootCrateSlot.State.Empty);
     LootCrateSlots.InformCrateOpened(this.identifier, this.crateType);
 }
Esempio n. 9
0
 protected override void Start()
 {
     base.Start();
     base.OnDataLoaded();
     this.originalCratePosition = base.transform.position;
     if (this.dialog == null)
     {
         this.dialog = LootCrate.SpawnLootCrateOpeningDialog();
     }
     base.rigidbody.useGravity  = false;
     base.rigidbody.isKinematic = true;
 }
Esempio n. 10
0
 // has the lootcrate for the callback, not needed in this instance
 void TriggerInterfaceAfterLootCratesAdded(LootCrate crate)
 {
     GameAPIManager.Instance.LootCrates.GetList().Then(res => {
         BattleResultsInterface battleResultsPanel = (BattleResultsInterface)MenuManager.Instance.Load("Interface_BattleResults");
         //Debug.Log("[callback] Looking for Crate Count with an exploration ID of " + playerMan.SelectedBattle.MongoID);
         battleResultsPanel.Initialize(
             data.Zone.BossFight.Gold,
             data.Zone.BossFight.Experience,
             dataMan.GetLootCratesByExploration(playerMan.SelectedBattle.MongoID).Count,
             playerMan.SelectedBattle
             );
     });
 }
Esempio n. 11
0
    public static void SpawnResourcesOnly(Transform target)
    {
        GameObject LootCrateObj = Instantiate(GameManager.Instance.LootCratePrefab);

        // LootCrateObj.transform.position = new Vector3(target.transform.position.x, LootCrateObj.transform.position.y, target.transform.position.z);
        LootCrateObj.transform.position = target.transform.position;
        LootCrate crate = LootCrateObj.GetComponent <LootCrate>();

        crate.AmtGold  = Random.Range(0, 9);
        crate.AmtWood  = Random.Range(0, 9);
        crate.AmtStone = Random.Range(0, 9);
        crate.AmtFood  = Random.Range(0, 9);

        crate.Init();
    }
Esempio n. 12
0
    public LootCollection GetRandomItems(LootCrate lootCrate)
    {
        LootCollection lootObj = new LootCollection();

        lootObj.lootTableData = this;
        lootObj.randomDrops   = UnityEngine.Random.Range(minDrops, maxDrops + 1);

        List <Item> items = lootObj.randomItems = new List <Item>();

        for (int r = lootObj.randomDrops; --r >= 0;)
        {
            Item item = RandomizeItem(lootCrate.MagicFind, lootCrate.ItemLevel, lootCrate.Variance);
            items.Add(item);
        }

        return(lootObj);
    }
Esempio n. 13
0
    public void GiveReward()
    {
        int @int = GameProgress.GetInt(this.crateID + this.crateType.ToString(), 0, GameProgress.Location.Local, null);

        if (@int <= 0)
        {
            GameProgress.SetInt(this.crateID + this.crateType.ToString(), @int + 1, GameProgress.Location.Local);
            WorkshopMenu.AnyLootCrateCollected = true;
            if (FreeLootCrate.OnFreeLootCrateCollected != null)
            {
                FreeLootCrate.OnFreeLootCrateCollected();
            }
            Camera hudCamera = Singleton <GuiManager> .Instance.FindCamera();

            LootCrate.SpawnLootCrateOpeningDialog(this.crateType, 1, hudCamera, null, new LootCrate.AnalyticData(this.crateID, "free", LootCrate.AdWatched.NotApplicaple));
            this.TryReportAchievements();
        }
        base.gameObject.SetActive(false);
    }
Esempio n. 14
0
    private void Awake()
    {
        LootCrateSlots.instance = this;
        List <LootCrateSlot> list = new List <LootCrateSlot>();

        for (int i = 0; i < this.slotCount; i++)
        {
            GameObject gameObject = UnityEngine.Object.Instantiate <GameObject>(this.lootCrateSlotPrefab);
            if (gameObject != null)
            {
                gameObject.name             = string.Format("Slot{0}", i + 1);
                gameObject.transform.parent = base.transform;
                LootCrateSlot component = gameObject.GetComponent <LootCrateSlot>();
                component.Initialize(false, i, LootCrateType.None);
                list.Add(component);
            }
        }
        this.slots = list.ToArray();
        LootCrateSlots.SlotsAvailable = this.slots.Length;
        GridLayout component2 = base.GetComponent <GridLayout>();

        component2.UpdateLayout();
        if (this.slotsFullBubble != null)
        {
            this.slotsFullBubble.transform.position = this.slots[this.slotCount - 1].transform.position;
        }
        this.ShowFullBubble(LootCrateSlots.AreSlotsFull());
        if (LootCrateSlots.overflowCrateType != LootCrateType.None)
        {
            LootCrateType crateType = LootCrateSlots.overflowCrateType;
            this.unlockCrateSlotDialog = this.ShowNoFreeSlotsDialog(crateType, delegate
            {
                if (this.unlockCrateSlotDialog != null && GameProgress.UseSnoutCoins(this.unlockCrateSlotDialog.SnoutCoinPrice))
                {
                    Singleton <AudioManager> .Instance.Spawn2dOneShotEffect(WPFMonoBehaviour.gameData.commonAudioCollection.snoutCoinUse);
                    LootCrate.SpawnLootCrateOpeningDialog(crateType, 1, WPFMonoBehaviour.hudCamera, null, new LootCrate.AnalyticData("CakeRaceOverflowUnlock", this.unlockCrateSlotDialog.SnoutCoinPrice.ToString(), LootCrate.AdWatched.NotApplicaple));
                    this.SendLootCrateUnlockedFlurryEvent(crateType, this.unlockCrateSlotDialog.SnoutCoinPrice, "overflow");
                }
            });
            LootCrateSlots.overflowCrateType = LootCrateType.None;
        }
    }
Esempio n. 15
0
    public static void SpawnLootcrateOn(Transform target)
    {
        GameObject LootCrateObj = Instantiate(GameManager.Instance.LootCratePrefab);

        LootCrateObj.transform.position = new Vector3(target.transform.position.x, LootCrateObj.transform.position.y, target.transform.position.z);
        LootCrate crate = LootCrateObj.GetComponent <LootCrate>();
        Inventory myInv = target.GetComponent <Inventory>();

        crate.AmtGold  = myInv.GetAmtResource(Inventory.ResourceType.Gold);
        crate.AmtWood  = myInv.GetAmtResource(Inventory.ResourceType.Wood);
        crate.AmtStone = myInv.GetAmtResource(Inventory.ResourceType.Stone);
        crate.AmtFood  = myInv.GetAmtResource(Inventory.ResourceType.Food);

        myInv.ItemHolder.transform.SetParent(crate.ItemHolder.transform);
        crate.ItemHolder.transform.GetChild(0).localRotation = new Quaternion(0, 0, 0, 0);
        crate.ItemHolder.transform.GetChild(0).localScale    = new Vector3(1, 1, 1);
        crate.ItemHolder.transform.GetChild(0).localPosition = new Vector3(0, 0, 0);
        crate.ItemHolder.GetComponent <ScrollRect>().content =
            crate.ItemHolder.transform.GetChild(0).GetComponent <Image>().rectTransform;

        crate.Init();
    }
Esempio n. 16
0
    private void HandleDeath(GameObject source)
    {
        LootCrate.SpawnResourcesOnly(transform);


        // give influence to village
        Village toInfluenceVill = Village.GetClosestVillageTo(transform.position);

        GuildMemberController gmContr = source.GetComponent <GuildMemberController>();
        PlayerController      pContr;

        if (gmContr)
        {
            gmContr.NPCsGuild.AddInfluenceFor(toInfluenceVill.gameObject, _influenceGivenOnDeath);
        }
        else if (pContr = source.GetComponent <PlayerController>())
        {
            pContr.MyGuild.AddInfluenceFor(toInfluenceVill.gameObject, _influenceGivenOnDeath);
        }


        Destroy(gameObject);
    }
Esempio n. 17
0
 private void OnAdFinished()
 {
     LootCrate.SpawnLootCrateOpeningDialog(this.reward, 1, WPFMonoBehaviour.hudCamera, null, new LootCrate.AnalyticData("Advertisement", "0", LootCrate.AdWatched.Yes));
     this.adReward.Load();
 }
    public void Initialize(LootCrate crate, System.Action callback = null, System.Action callbackOnComplete = null, bool fromStory = false)
    {
        this.crate = crate;
        List <Item> items = crate.GenerateItems();

        this.callbackOnComplete = callbackOnComplete;
        noMenuManagerRef        = fromStory;

        Debug.Log("Adding " + items.Count + " items.");

        /*
         * foreach(Item i in items) {
         *  Debug.Log(" --- --- [Item] " + i.Name);
         * }*/

        // NOTE-TO-SELF: DO call this API method! (Instead of one-by-one, batch-calls adds all generated items)
        API.Items.AddMany(items)
        .Catch(err => traceError("Something went wrong while adding newly generated items to server-side: " + err.Message));
        //.Then(res => trace("Added " + items.Count + " items server-side..."))

        DataManager.Instance.allItemsList.AddRange(items);

        if (!fromStory)
        {
            RemoveCrateFromPlayerData(callback);
        }

        // Crate Sequence
        TimelineTween.Create(
            (next) => {
            AudioManager.Instance.Play(SFX_UI.Earthquake);

            //btnGoBack.transform.DOScale(Vector2.zero, 0.5f * speedScale);
            btnGoBack.GetComponent <RectTransform>().DOAnchorPosY(0f, 0.5f * speedScale);

            crateBtn.transform.SetParent(this.transform);

            // Background Shadow here
            backgroundShadow.DOColor(new Color(0f, 0f, 0f, 0.7f), timeScrollerSlides * speedScale);

            crateBtn.transform.TweenMoveByY(50, timeScrollerSlides * speedScale)
            .SetEase(Ease.InOutSine)
            .OnComplete(() => next());
        },

            (next) => {
            // If on crate screen reset the crate list positions

            crateBtn.transform
            .DOShakePosition(timeCrateShake * speedScale, 10, 30, 90, false, false)
            .OnComplete(() => next());
        },

            (next) => {
            AudioManager.Instance.Stop(SFX_UI.Earthquake);
            AudioManager.Instance.Play(SFX_UI.Explosion);

            GameObject itemPrefab = GetPrefab("SubItems/LootCrateItem");

            var canvasSize = GetScreenSize();
            float itemSize = canvasSize.x / 3f;

            for (int i = 0; i < items.Count; i++)
            {
                Item itemData             = items[i];
                GameObject itemGO         = GameObject.Instantiate(itemPrefab);
                LootCrateItem item        = itemGO.GetComponent <LootCrateItem>();
                Button itemBtn            = itemGO.GetComponent <Button>();
                TextMeshProUGUI itemLabel = itemGO.GetComponentInChildren <TextMeshProUGUI>();
                RectTransform itemTrans   = (RectTransform)itemGO.transform;

                itemTrans.SetParent(this.transform);
                itemTrans.localPosition = Vector2.zero;
                itemTrans.SetWidthAndHeight(itemSize);

                item.itemData = itemData;
                item.UpdateIdentifiedIcon();

                _crateItems.Add(item);

                itemBtn.onClick.AddListener(() => BtnOnItemClick(item, fromStory));
            }

            LayoutUpdate();

            TimelineTween.Scatter(0.08f, _crateItems, (item, id) => {
                return(TimelineTween.Pulsate(item.transform, 1.3f, timeItemsExplode * speedScale));
            });

            Color c = crateBtn.GetComponent <Image>().color;
            c.a     = 0;
            crateBtn.GetComponent <Image>().DOColor(c, 0.3f).OnComplete(() => {
                Destroy(crateBtn.gameObject);
            });

            /*CanvasGroup cg = crateBtn.GetComponent<CanvasGroup>();
             * cg.DOFade(0, 0.3f)
             *  .OnComplete(() => {
             *      Destroy(crateBtn.gameObject);
             *  });*/

            crateBtn.transform
            .DOScale(2.0f, timeCrateExplode * speedScale)
            .SetEase(Ease.OutQuint);

            this.Wait(timeItemsExplode * 2.0f * speedScale, next);
        },

            (next) => {
            TimelineTween.Scatter(0.1f, _crateItems, (item, id) => {
                return(item.filler.DOFade(0, 1 * speedScale));
            });

            this.Wait(timeItemsFormCircle * 1.0f * speedScale, next);
        }
            );
    }
Esempio n. 19
0
 private void Awake()
 {
     _lootCrate = GetComponent <LootCrate>();
 }
Esempio n. 20
0
    private void OnRankFetched(GetLeaderboardAroundPlayerResult result)
    {
        if (!CakeRaceMenu.IsCakeRaceMenuOpen)
        {
            return;
        }
        if (this.lootCrateSlots.IsPopUpOpen())
        {
            base.StartCoroutine(this.WaitPopUpAndTryRankReward(result));
            return;
        }
        if (result.Leaderboard == null || (result.Leaderboard.Count > 0 && (result.Leaderboard[0].StatValue <= 0 || result.Leaderboard[0].Position >= 500)))
        {
            this.TryToShowCupEndAnimation(false);
            this.TryToUnlockCakeRaceLockScreen();
            return;
        }
        GameObject go = UnityEngine.Object.Instantiate <GameObject>(this.seasonEndDialogPopup, Vector3.zero, Quaternion.identity);

        go.transform.position += Vector3.back * 20f;
        this.seasonEndDialog   = go.GetComponent <LeaderboardSeasonEndDialog>();
        this.seasonEndDialog.SetLoading(true);
        this.seasonEndDialog.onClose += delegate()
        {
            UnityEngine.Object.Destroy(go);
        };
        int currentCupIndex = (int)this.rewardPendingCup;
        int rank            = result.Leaderboard[0].Position + 1;
        int @int            = GameProgress.GetInt("cake_race_highest_rank", 0, GameProgress.Location.Local, null);

        if (@int <= 0 || rank < @int)
        {
            GameProgress.SetInt("cake_race_highest_rank", rank, GameProgress.Location.Local);
        }
        string text = string.Empty;

        if (rank != 1)
        {
            if (rank != 2)
            {
                if (rank == 3)
                {
                    text = "cake_race_bronze_trophies_won";
                }
            }
            else
            {
                text = "cake_race_silver_trophies_won";
            }
        }
        else
        {
            text = "cake_race_gold_trophies_won";
        }
        if (!string.IsNullOrEmpty(text))
        {
            int int2 = GameProgress.GetInt(text, 0, GameProgress.Location.Local, null);
            GameProgress.SetInt(text, int2 + 1, GameProgress.Location.Local);
        }
        int seasonSnoutCoinReward = CakeRaceMenu.GetSeasonSnoutCoinReward(currentCupIndex, rank);

        if (seasonSnoutCoinReward > 0)
        {
            GameProgress.AddSnoutCoins(seasonSnoutCoinReward);
            int int3 = GameProgress.GetInt("cake_race_coins_won", 0, GameProgress.Location.Local, null);
            GameProgress.SetInt("cake_race_coins_won", int3 + seasonSnoutCoinReward, GameProgress.Location.Local);
        }
        LootCrateType crateType = CakeRaceMenu.GetSeasonCrateReward(currentCupIndex, rank);

        if (crateType != LootCrateType.None)
        {
            this.seasonEndDialog.onClose += delegate()
            {
                LootCrate.SpawnLootCrateOpeningDialog(crateType, 1, WPFMonoBehaviour.s_hudCamera, new Dialog.OnClose(this.OnDialogClosed), new LootCrate.AnalyticData(string.Format("{0}_reward", (PlayFabLeaderboard.Leaderboard)currentCupIndex), "0", LootCrate.AdWatched.NotApplicaple));
            };
        }
        else
        {
            this.seasonEndDialog.onClose += this.OnDialogClosed;
        }
        this.seasonEndDialog.SetCrateRankAndReward(crateType, rank, seasonSnoutCoinReward);
        this.isRewardingPlayer = false;
    }
Esempio n. 21
0
 public void AttachToCrate(LootCrate crate)
 {
     this.m_crate = crate;
     this.SetCrateImage();
 }
Esempio n. 22
0
    IEnumerator ManageStorySection(StorySection story)
    {
        //Debug.Log("[Story] Executing Action: " + story.Action + " [" + story.Order + "]");
        switch (story.Emotion)
        {
        case StoryCharacterEmotion.Jump:
            switch (story.Focus)
            {
            case StoryCharacterPosition.Left:
                LeftCharacterRect.DOPunchPosition(new Vector3(0f, 10f, 0f), 0.2f, 0);
                break;

            case StoryCharacterPosition.Right:
                RightCharacterRect.DOPunchPosition(new Vector3(0f, 10f, 0f), 0.2f, 0);
                break;
            }
            break;

        case StoryCharacterEmotion.Sink:
            switch (story.Focus)
            {
            case StoryCharacterPosition.Left:
                LeftCharacterRect.DOPunchPosition(new Vector3(0f, -15f, 0f), 1f, 0);
                break;

            case StoryCharacterPosition.Right:
                RightCharacterRect.DOPunchPosition(new Vector3(0f, -15f, 0f), 1f, 0);
                break;
            }
            break;

        default:
            break;
        }
        switch (story.Action)
        {
        case StoryAction.Talk:
            charactername.text = story.Name;

            // Show the focused target
            switch (story.Focus)
            {
            case StoryCharacterPosition.Left:
                LeftCharacter.DOColor(new Color(1f, 1f, 1f, 1f), 0.3f);
                RightCharacter.DOColor(new Color(0.8f, 0.8f, 0.8f, 1f), 0.3f);
                break;

            case StoryCharacterPosition.Right:
                RightCharacter.DOColor(new Color(1f, 1f, 1f, 1f), 0.3f);
                LeftCharacter.DOColor(new Color(0.8f, 0.8f, 0.8f, 1f), 0.3f);
                break;
            }

            yield return(StartCoroutine(RevealText(story.Text)));

            break;

        case StoryAction.Enter:
            switch (story.Focus)
            {
            case StoryCharacterPosition.Left:
                LeftCharacter.sprite = story.CharacterArt;
                yield return(StartCoroutine(MoveCharacter(LeftCharacterRect, characterPostion, true)));

                break;

            case StoryCharacterPosition.Right:
                RightCharacter.sprite = story.CharacterArt;
                yield return(StartCoroutine(MoveCharacter(RightCharacterRect, -characterPostion, true)));

                break;
            }
            break;

        case StoryAction.Leave:
            switch (story.Focus)
            {
            case StoryCharacterPosition.Left:
                yield return(StartCoroutine(MoveCharacter(LeftCharacterRect, -characterOffset)));

                break;

            case StoryCharacterPosition.Right:
                yield return(StartCoroutine(MoveCharacter(RightCharacterRect, characterOffset)));

                break;
            }
            break;

        case StoryAction.Question:
            Debug.Log(" -- [Question] Story Text: " + story.Text);
            string[] questionAndAnswers = story.Text.Split('\n');
            charactername.text = questionAndAnswers[0];
            textarea.text      = "";

            ChoiceContainer.SetActive(true);

            foreach (GameObject c in Choices)
            {
                c.SetActive(false);
            }

            for (int i = 1; i < questionAndAnswers.Length; i++)
            {
                Choices[i - 1].SetActive(true);
                string responce = questionAndAnswers[i].Split(':')[0];
                string answer   = questionAndAnswers[i].Split(':')[1];
                Debug.Log(" -- [Question] Answer " + i + ": " + responce + " [" + answer + "]");
                Choices[i - 1].GetComponentInChildren <TextMeshProUGUI>().text = responce;
                Choices[i - 1].GetComponent <Button>().onClick.AddListener(delegate { BtnChoice(answer); });
                Choices[i - 1].GetComponent <RectTransform>().DOAnchorPosY(-((i - 1) * 125f), 0.25f);
                yield return(new WaitForSeconds(0.1f));
            }
            waitingOnQuestionAnswer = true;
            yield return(StartCoroutine(HandleQuestionInput()));

            break;

        case StoryAction.Skip:
            yield return(StartCoroutine(RemoveSectionsBefore(int.Parse(story.Text))));

            break;

        case StoryAction.Background:
            yield return(StartCoroutine(ChangeBackground(story.Text)));

            break;

        case StoryAction.TapChange:
            pauseInteraction = true;
            string[] changes = story.Text.Split('-');
            //NewBoss-bossfight_1
            //ExtendTime-1.5

            switch (changes[0])
            {
            case "ExtendTime":
                if (inTap)
                {
                    float multiplier  = float.Parse(changes[1]);
                    float totalZoneHP = (float)PlayerManager.Instance.SelectedBattle.Zone.ZoneHP;
                    PlayerManager.Instance.SelectedBattle.AccumulatedDamage -= totalZoneHP * multiplier;
                }
                break;

            case "NewBoss":
                if (inTap)
                {
                    // Set the new boss here
                    // This needs to be hooked up to the server
                    PlayerManager.Instance.SelectedBattle.Zone.BossFight = DataManager.Instance.bossFightDataList.GetByIdentity(changes[1]);
                }
                break;

            default:
                Debug.Log("No reward issue");
                break;
            }
            pauseInteraction = false;
            break;

        case StoryAction.Reward:
            pauseInteraction = true;
            Debug.Log("Reward the player here");
            //FreeLoot-lt_zone_training_boss_1-40-20
            //ZoneLoot-a0zone_1
            string[]  rewards = story.Text.Split('-');
            LootCrate crate   = null;

            switch (rewards[0])
            {
            case "FreeLoot":
                crate = new LootCrate(rewards[1], float.Parse(rewards[2]), float.Parse(rewards[3]), DataManager.Instance.crateTypeDataList.GetByIdentity(rewards[4]));
                break;

            case "ZoneLoot":
                ZoneData zone = DataManager.Instance.zoneDataList.GetByIdentity(rewards[1]);

                crate = new LootCrate(zone.LootTable.Identity, zone.MinItemLevel, zone.Variance, MathHelper.WeightedRandom(zone.LootTable.crateType).Key);
                break;

            default:
                Debug.Log("No reward issue");
                break;
            }
            openingChest = true;
            Debug.Log("   [crate] " + crate.lootTableIdentity + " | " + crate.LootTableData);
            OpenChest(crate);

            while (openingChest)
            {
                yield return(new WaitForEndOfFrame());
            }
            pauseInteraction = false;
            break;

        case StoryAction.ClearText:
            charactername.text = "";
            textarea.text      = "";
            break;
        }
    }