示例#1
0
 public static void InitMissionRewards(GameObject prefab, Transform parent, JamGarrisonMissionReward[] rewards)
 {
     for (int i = 0; i < rewards.Length; i++)
     {
         JamGarrisonMissionReward jamGarrisonMissionReward = rewards[i];
         GameObject gameObject = Object.Instantiate <GameObject>(prefab);
         gameObject.SetActive(true);
         gameObject.get_transform().SetParent(parent, false);
         MissionRewardDisplay component = gameObject.GetComponent <MissionRewardDisplay>();
         if (jamGarrisonMissionReward.ItemID > 0)
         {
             component.InitReward(MissionRewardDisplay.RewardType.item, jamGarrisonMissionReward.ItemID, (int)jamGarrisonMissionReward.ItemQuantity, 0, jamGarrisonMissionReward.ItemFileDataID);
         }
         else if (jamGarrisonMissionReward.FollowerXP > 0u)
         {
             component.InitReward(MissionRewardDisplay.RewardType.followerXP, 0, (int)jamGarrisonMissionReward.FollowerXP, 0, 0);
         }
         else if (jamGarrisonMissionReward.CurrencyQuantity > 0u)
         {
             if (jamGarrisonMissionReward.CurrencyType == 0)
             {
                 component.InitReward(MissionRewardDisplay.RewardType.gold, 0, (int)(jamGarrisonMissionReward.CurrencyQuantity / 10000u), 0, 0);
             }
             else
             {
                 CurrencyTypesRec record = StaticDB.currencyTypesDB.GetRecord(jamGarrisonMissionReward.CurrencyType);
                 int rewardQuantity      = (int)((ulong)jamGarrisonMissionReward.CurrencyQuantity / (ulong)(((record.Flags & 8u) == 0u) ? 1L : 100L));
                 component.InitReward(MissionRewardDisplay.RewardType.currency, jamGarrisonMissionReward.CurrencyType, rewardQuantity, 0, 0);
             }
         }
     }
 }
        public void SetCurrency(int currencyID, int quantity, Sprite iconSprite)
        {
            CurrencyTypesRec     record = StaticDB.currencyTypesDB.GetRecord(currencyID);
            CurrencyContainerRec currencyContainerRec = CurrencyContainerDB.CheckAndGetValidCurrencyContainer(currencyID, quantity);

            if (currencyContainerRec != null)
            {
                this.m_rewardName.text        = GeneralHelpers.GetItemQualityColorTag((int)currencyContainerRec.ContainerQuality) + currencyContainerRec.ContainerName + "</color>";
                this.m_rewardDescription.text = GeneralHelpers.QuantityRule(currencyContainerRec.ContainerDescription, quantity);
                this.m_rewardQuantity.text    = string.Empty;
                this.m_rewardIcon.sprite      = iconSprite;
                if (this.m_rewardIconBorder != null)
                {
                    Color color;
                    ColorUtility.TryParseHtmlString("#" + GeneralHelpers.GetItemQualityColor((int)currencyContainerRec.ContainerQuality), ref color);
                    this.m_rewardIconBorder.gameObject.SetActive(true);
                    this.m_rewardIconBorder.color = color;
                }
            }
            else
            {
                if (record != null)
                {
                    this.m_rewardName.text        = record.Name;
                    this.m_rewardDescription.text = record.Description;
                }
                this.m_rewardQuantity.text = ((quantity <= 1) ? string.Empty : (string.Empty + quantity));
                this.m_rewardIcon.sprite   = iconSprite;
            }
        }
        private void InitRewardInfoDisplay(WrapperWorldQuest worldQuest)
        {
            int num = 0;

            this.m_rewardInfo[0].gameObject.SetActive(true);
            this.m_rewardInfo[1].gameObject.SetActive(false);
            this.m_rewardInfo[2].gameObject.SetActive(false);
            if (worldQuest.Items != null && worldQuest.Items.Count <WrapperWorldQuestReward>() > 0)
            {
                foreach (WrapperWorldQuestReward wrapperWorldQuestReward in worldQuest.Items)
                {
                    Sprite rewardSprite = GeneralHelpers.LoadIconAsset(AssetBundleType.Icons, wrapperWorldQuestReward.FileDataID);
                    this.m_rewardInfo[num].SetReward(MissionRewardDisplay.RewardType.item, wrapperWorldQuestReward.RecordID, wrapperWorldQuestReward.Quantity, rewardSprite, wrapperWorldQuestReward.ItemContext);
                    this.EnableAdditionalRewardDisplays(num++);
                    if (num >= 3)
                    {
                        break;
                    }
                }
            }
            else if (worldQuest.Currencies.Count <WrapperWorldQuestReward>() > 0)
            {
                foreach (WrapperWorldQuestReward wrapperWorldQuestReward2 in worldQuest.Currencies)
                {
                    Sprite           iconSprite = GeneralHelpers.LoadCurrencyIcon(wrapperWorldQuestReward2.RecordID);
                    CurrencyTypesRec record     = StaticDB.currencyTypesDB.GetRecord(wrapperWorldQuestReward2.RecordID);
                    int quantity = wrapperWorldQuestReward2.Quantity / (((record.Flags & 8u) == 0u) ? 1 : 100);
                    this.m_rewardInfo[num].SetCurrency(wrapperWorldQuestReward2.RecordID, quantity, iconSprite);
                    this.EnableAdditionalRewardDisplays(num++);
                    if (num >= 3)
                    {
                        break;
                    }
                }
            }
            else if (worldQuest.Money > 0)
            {
                Sprite iconSprite2 = Resources.Load <Sprite>("MiscIcons/INV_Misc_Coin_01");
                this.m_rewardInfo[num].SetGold(worldQuest.Money / 10000, iconSprite2);
                this.EnableAdditionalRewardDisplays(num++);
                if (num >= 3)
                {
                    return;
                }
            }
            else if (worldQuest.Experience > 0)
            {
                Sprite localizedFollowerXpIcon = GeneralHelpers.GetLocalizedFollowerXpIcon();
                this.m_rewardInfo[num].SetFollowerXP(worldQuest.Experience, localizedFollowerXpIcon);
                this.EnableAdditionalRewardDisplays(num++);
                if (num >= 3)
                {
                    return;
                }
            }
        }
示例#4
0
 public static void InitWorldQuestRewards(MobileWorldQuest worldQuest, GameObject prefab, Transform parent)
 {
     if (worldQuest.Item != null)
     {
         MobileWorldQuestReward[] item = worldQuest.Item;
         for (int i = 0; i < item.Length; i++)
         {
             MobileWorldQuestReward mobileWorldQuestReward = item[i];
             GameObject             gameObject             = Object.Instantiate <GameObject>(prefab);
             gameObject.get_transform().SetParent(parent, false);
             MissionRewardDisplay component = gameObject.GetComponent <MissionRewardDisplay>();
             component.InitReward(MissionRewardDisplay.RewardType.item, mobileWorldQuestReward.RecordID, mobileWorldQuestReward.Quantity, mobileWorldQuestReward.ItemContext, mobileWorldQuestReward.FileDataID);
         }
     }
     if (worldQuest.Money > 0)
     {
         GameObject gameObject2 = Object.Instantiate <GameObject>(prefab);
         gameObject2.get_transform().SetParent(parent, false);
         MissionRewardDisplay component2 = gameObject2.GetComponent <MissionRewardDisplay>();
         component2.InitReward(MissionRewardDisplay.RewardType.gold, 0, worldQuest.Money / 10000, 0, 0);
     }
     if (worldQuest.Experience > 0)
     {
         GameObject gameObject3 = Object.Instantiate <GameObject>(prefab);
         gameObject3.get_transform().SetParent(parent, false);
         MissionRewardDisplay component3 = gameObject3.GetComponent <MissionRewardDisplay>();
         component3.InitReward(MissionRewardDisplay.RewardType.followerXP, 0, worldQuest.Experience, 0, 0);
     }
     MobileWorldQuestReward[] currency = worldQuest.Currency;
     for (int j = 0; j < currency.Length; j++)
     {
         MobileWorldQuestReward mobileWorldQuestReward2 = currency[j];
         GameObject             gameObject4             = Object.Instantiate <GameObject>(prefab);
         gameObject4.get_transform().SetParent(parent, false);
         MissionRewardDisplay component4 = gameObject4.GetComponent <MissionRewardDisplay>();
         CurrencyTypesRec     record     = StaticDB.currencyTypesDB.GetRecord(mobileWorldQuestReward2.RecordID);
         if (record != null)
         {
             int rewardQuantity = mobileWorldQuestReward2.Quantity / (((record.Flags & 8u) == 0u) ? 1 : 100);
             component4.InitReward(MissionRewardDisplay.RewardType.currency, mobileWorldQuestReward2.RecordID, rewardQuantity, 0, 0);
         }
         else
         {
             Debug.LogWarning(string.Concat(new object[]
             {
                 "WORLD QUEST ",
                 worldQuest.QuestID,
                 " has bogus currency reward (id ",
                 mobileWorldQuestReward2.RecordID,
                 ")"
             }));
         }
     }
 }
示例#5
0
        public void SetCurrency(int currencyID, int quantity, Sprite iconSprite)
        {
            CurrencyTypesRec record = StaticDB.currencyTypesDB.GetRecord(currencyID);

            if (record != null)
            {
                this.m_rewardName.text        = record.Name;
                this.m_rewardDescription.text = record.Description;
            }
            this.m_rewardQuantity.text = ((quantity <= 1) ? string.Empty : (string.Empty + quantity));
            this.m_rewardIcon.sprite   = iconSprite;
        }
 public static void InitWorldQuestRewards(WrapperWorldQuest worldQuest, GameObject prefab, Transform parent)
 {
     if (worldQuest.Items != null)
     {
         foreach (WrapperWorldQuestReward wrapperWorldQuestReward in worldQuest.Items)
         {
             GameObject gameObject = Object.Instantiate <GameObject>(prefab);
             gameObject.transform.SetParent(parent, false);
             MissionRewardDisplay component = gameObject.GetComponent <MissionRewardDisplay>();
             component.InitReward(MissionRewardDisplay.RewardType.item, wrapperWorldQuestReward.RecordID, wrapperWorldQuestReward.Quantity, wrapperWorldQuestReward.ItemContext, wrapperWorldQuestReward.FileDataID);
         }
     }
     if (worldQuest.Money > 0)
     {
         GameObject gameObject2 = Object.Instantiate <GameObject>(prefab);
         gameObject2.transform.SetParent(parent, false);
         MissionRewardDisplay component2 = gameObject2.GetComponent <MissionRewardDisplay>();
         component2.InitReward(MissionRewardDisplay.RewardType.gold, 0, worldQuest.Money / 10000, 0, 0);
     }
     if (worldQuest.Experience > 0)
     {
         GameObject gameObject3 = Object.Instantiate <GameObject>(prefab);
         gameObject3.transform.SetParent(parent, false);
         MissionRewardDisplay component3 = gameObject3.GetComponent <MissionRewardDisplay>();
         component3.InitReward(MissionRewardDisplay.RewardType.followerXP, 0, worldQuest.Experience, 0, 0);
     }
     foreach (WrapperWorldQuestReward wrapperWorldQuestReward2 in worldQuest.Currencies)
     {
         GameObject gameObject4 = Object.Instantiate <GameObject>(prefab);
         gameObject4.transform.SetParent(parent, false);
         MissionRewardDisplay component4 = gameObject4.GetComponent <MissionRewardDisplay>();
         CurrencyTypesRec     record     = StaticDB.currencyTypesDB.GetRecord(wrapperWorldQuestReward2.RecordID);
         if (record != null)
         {
             int rewardQuantity = wrapperWorldQuestReward2.Quantity / (((record.Flags & 8u) == 0u) ? 1 : 100);
             component4.InitReward(MissionRewardDisplay.RewardType.currency, wrapperWorldQuestReward2.RecordID, rewardQuantity, 0, 0);
         }
         else
         {
             Debug.LogWarning(string.Concat(new object[]
             {
                 "WORLD QUEST ",
                 worldQuest.QuestID,
                 " has bogus currency reward (id ",
                 wrapperWorldQuestReward2.RecordID,
                 ")"
             }));
         }
     }
 }
 public static void InitWorldQuestRewards(WrapperWorldQuest worldQuest, GameObject prefab, Transform parent)
 {
     if (worldQuest.Items != null)
     {
         foreach (WrapperWorldQuestReward item in worldQuest.Items)
         {
             GameObject gameObject = UnityEngine.Object.Instantiate <GameObject>(prefab);
             gameObject.transform.SetParent(parent, false);
             MissionRewardDisplay component = gameObject.GetComponent <MissionRewardDisplay>();
             component.InitReward(MissionRewardDisplay.RewardType.item, item.RecordID, item.Quantity, item.ItemContext, item.FileDataID);
         }
     }
     if (worldQuest.Money > 0)
     {
         GameObject gameObject1 = UnityEngine.Object.Instantiate <GameObject>(prefab);
         gameObject1.transform.SetParent(parent, false);
         MissionRewardDisplay missionRewardDisplay = gameObject1.GetComponent <MissionRewardDisplay>();
         missionRewardDisplay.InitReward(MissionRewardDisplay.RewardType.gold, 0, worldQuest.Money / 10000, 0, 0);
     }
     if (worldQuest.Experience > 0)
     {
         GameObject gameObject2 = UnityEngine.Object.Instantiate <GameObject>(prefab);
         gameObject2.transform.SetParent(parent, false);
         MissionRewardDisplay component1 = gameObject2.GetComponent <MissionRewardDisplay>();
         component1.InitReward(MissionRewardDisplay.RewardType.followerXP, 0, worldQuest.Experience, 0, 0);
     }
     foreach (WrapperWorldQuestReward currency in worldQuest.Currencies)
     {
         GameObject gameObject3 = UnityEngine.Object.Instantiate <GameObject>(prefab);
         gameObject3.transform.SetParent(parent, false);
         MissionRewardDisplay missionRewardDisplay1 = gameObject3.GetComponent <MissionRewardDisplay>();
         CurrencyTypesRec     record = StaticDB.currencyTypesDB.GetRecord(currency.RecordID);
         if (record == null)
         {
             Debug.LogWarning(string.Concat(new object[] { "WORLD QUEST ", worldQuest.QuestID, " has bogus currency reward (id ", currency.RecordID, ")" }));
         }
         else
         {
             int quantity = currency.Quantity / ((record.Flags & 8) == 0 ? 1 : 100);
             missionRewardDisplay1.InitReward(MissionRewardDisplay.RewardType.currency, currency.RecordID, quantity, 0, 0);
         }
     }
 }
 public static void InitMissionRewards(GameObject prefab, Transform parent, IEnumerable <WrapperGarrisonMissionReward> rewards)
 {
     foreach (WrapperGarrisonMissionReward reward in rewards)
     {
         GameObject gameObject = UnityEngine.Object.Instantiate <GameObject>(prefab);
         gameObject.SetActive(true);
         gameObject.transform.SetParent(parent, false);
         MissionRewardDisplay component = gameObject.GetComponent <MissionRewardDisplay>();
         if (reward.ItemID > 0)
         {
             component.InitReward(MissionRewardDisplay.RewardType.item, reward.ItemID, (int)reward.ItemQuantity, 0, reward.ItemFileDataID);
         }
         else if (reward.FollowerXP <= 0)
         {
             if (reward.CurrencyQuantity <= 0)
             {
                 continue;
             }
             if (reward.CurrencyType != 0)
             {
                 CurrencyTypesRec record = StaticDB.currencyTypesDB.GetRecord(reward.CurrencyType);
                 if (record == null)
                 {
                     Debug.LogError(string.Concat("Unknown CurrencyType ID ", reward.CurrencyType));
                 }
                 else
                 {
                     int currencyQuantity = (int)((ulong)reward.CurrencyQuantity / (long)(((record.Flags & 8) == 0 ? 1 : 100)));
                     component.InitReward(MissionRewardDisplay.RewardType.currency, reward.CurrencyType, currencyQuantity, 0, 0);
                 }
             }
             else
             {
                 component.InitReward(MissionRewardDisplay.RewardType.gold, 0, (int)(reward.CurrencyQuantity / 10000), 0, 0);
             }
         }
         else
         {
             component.InitReward(MissionRewardDisplay.RewardType.followerXP, 0, (int)reward.FollowerXP, 0, 0);
         }
     }
 }
 public static void InitMissionRewards(GameObject prefab, Transform parent, IEnumerable <WrapperGarrisonMissionReward> rewards)
 {
     foreach (WrapperGarrisonMissionReward wrapperGarrisonMissionReward in rewards)
     {
         GameObject gameObject = Object.Instantiate <GameObject>(prefab);
         gameObject.SetActive(true);
         gameObject.transform.SetParent(parent, false);
         MissionRewardDisplay component = gameObject.GetComponent <MissionRewardDisplay>();
         if (wrapperGarrisonMissionReward.ItemID > 0)
         {
             component.InitReward(MissionRewardDisplay.RewardType.item, wrapperGarrisonMissionReward.ItemID, (int)wrapperGarrisonMissionReward.ItemQuantity, 0, wrapperGarrisonMissionReward.ItemFileDataID);
         }
         else if (wrapperGarrisonMissionReward.FollowerXP > 0u)
         {
             component.InitReward(MissionRewardDisplay.RewardType.followerXP, 0, (int)wrapperGarrisonMissionReward.FollowerXP, 0, 0);
         }
         else if (wrapperGarrisonMissionReward.CurrencyQuantity > 0u)
         {
             if (wrapperGarrisonMissionReward.CurrencyType == 0)
             {
                 component.InitReward(MissionRewardDisplay.RewardType.gold, 0, (int)(wrapperGarrisonMissionReward.CurrencyQuantity / 10000u), 0, 0);
             }
             else
             {
                 CurrencyTypesRec record = StaticDB.currencyTypesDB.GetRecord(wrapperGarrisonMissionReward.CurrencyType);
                 if (record != null)
                 {
                     int rewardQuantity = (int)((ulong)wrapperGarrisonMissionReward.CurrencyQuantity / (ulong)(((record.Flags & 8u) == 0u) ? 1L : 100L));
                     component.InitReward(MissionRewardDisplay.RewardType.currency, wrapperGarrisonMissionReward.CurrencyType, rewardQuantity, 0, 0);
                 }
                 else
                 {
                     Debug.LogError("Unknown CurrencyType ID " + wrapperGarrisonMissionReward.CurrencyType);
                 }
             }
         }
     }
 }
        public void SetCurrency(int currencyID, int quantity, Sprite iconSprite)
        {
            CurrencyTypesRec     record = StaticDB.currencyTypesDB.GetRecord(currencyID);
            CurrencyContainerRec currencyContainerRec = CurrencyContainerDB.CheckAndGetValidCurrencyContainer(currencyID, quantity);

            if (currencyContainerRec == null)
            {
                if (record != null)
                {
                    this.m_rewardName.text        = record.Name;
                    this.m_rewardDescription.text = record.Description;
                }
                this.m_rewardQuantity.text = (quantity <= 1 ? string.Empty : string.Concat(string.Empty, quantity));
                this.m_rewardIcon.sprite   = iconSprite;
            }
            else
            {
                this.m_rewardName.text        = string.Concat(GeneralHelpers.GetItemQualityColorTag(currencyContainerRec.ContainerQuality), currencyContainerRec.ContainerName, "</color>");
                this.m_rewardDescription.text = GeneralHelpers.QuantityRule(currencyContainerRec.ContainerDescription, quantity);
                this.m_rewardQuantity.text    = string.Empty;
                this.m_rewardIcon.sprite      = iconSprite;
            }
        }
 private void InitRewardInfoDisplay(MobileWorldQuest worldQuest)
 {
     if (worldQuest.Item != null && Enumerable.Count <MobileWorldQuestReward>(worldQuest.Item) > 0)
     {
         MobileWorldQuestReward[] item = worldQuest.Item;
         int num = 0;
         if (num < item.Length)
         {
             MobileWorldQuestReward mobileWorldQuestReward = item[num];
             Sprite rewardSprite = GeneralHelpers.LoadIconAsset(AssetBundleType.Icons, mobileWorldQuestReward.FileDataID);
             this.m_rewardInfo.SetReward(MissionRewardDisplay.RewardType.item, mobileWorldQuestReward.RecordID, mobileWorldQuestReward.Quantity, rewardSprite, mobileWorldQuestReward.ItemContext);
         }
     }
     else if (worldQuest.Money > 0)
     {
         Sprite iconSprite = Resources.Load <Sprite>("MiscIcons/INV_Misc_Coin_01");
         this.m_rewardInfo.SetGold(worldQuest.Money / 10000, iconSprite);
     }
     else if (worldQuest.Experience > 0)
     {
         Sprite localizedFollowerXpIcon = GeneralHelpers.GetLocalizedFollowerXpIcon();
         this.m_rewardInfo.SetFollowerXP(worldQuest.Experience, localizedFollowerXpIcon);
     }
     else
     {
         MobileWorldQuestReward[] currency = worldQuest.Currency;
         int num2 = 0;
         if (num2 < currency.Length)
         {
             MobileWorldQuestReward mobileWorldQuestReward2 = currency[num2];
             Sprite           iconSprite2 = GeneralHelpers.LoadCurrencyIcon(mobileWorldQuestReward2.RecordID);
             CurrencyTypesRec record      = StaticDB.currencyTypesDB.GetRecord(mobileWorldQuestReward2.RecordID);
             int quantity = mobileWorldQuestReward2.Quantity / (((record.Flags & 8u) == 0u) ? 1 : 100);
             this.m_rewardInfo.SetCurrency(mobileWorldQuestReward2.RecordID, quantity, iconSprite2);
         }
     }
 }
 public void UpdateWorldQuests()
 {
     foreach (MapInfo mapInfo in MapInfo.GetAllMapInfos())
     {
         AdventureMapPanel.ClearWorldQuestArea(mapInfo.GetWorldQuestArea());
     }
     foreach (WrapperWorldQuest worldQuest in WorldQuestData.WorldQuestDictionary.Values)
     {
         if (worldQuest.StartLocationMapID != 1220 && worldQuest.StartLocationMapID != 1669)
         {
             if (!this.IsFilterEnabled(MapFilterType.All))
             {
                 bool flag = false;
                 if (!flag && this.IsFilterEnabled(MapFilterType.Azerite))
                 {
                     flag |= worldQuest.Currencies.Any((WrapperWorldQuestReward reward) => reward.RecordID == 1553);
                 }
                 if (!flag && this.IsFilterEnabled(MapFilterType.OrderResources))
                 {
                     flag |= worldQuest.Currencies.Any((WrapperWorldQuestReward reward) => reward.RecordID == 1560);
                 }
                 if (!flag && this.IsFilterEnabled(MapFilterType.Gold) && worldQuest.Money > 0)
                 {
                     flag = true;
                 }
                 if (!flag && this.IsFilterEnabled(MapFilterType.Gear))
                 {
                     flag |= worldQuest.Items.Any(delegate(WrapperWorldQuestReward reward)
                     {
                         ItemRec record = StaticDB.itemDB.GetRecord(reward.RecordID);
                         return(record != null && (record.ClassID == 2 || record.ClassID == 3 || record.ClassID == 4 || record.ClassID == 6));
                     });
                 }
                 if (!flag && this.IsFilterEnabled(MapFilterType.ProfessionMats))
                 {
                     flag |= worldQuest.Items.Any(delegate(WrapperWorldQuestReward reward)
                     {
                         ItemRec record = StaticDB.itemDB.GetRecord(reward.RecordID);
                         return(record != null && record.ClassID == 7);
                     });
                 }
                 if (!flag && this.IsFilterEnabled(MapFilterType.PetBattles))
                 {
                     flag |= (worldQuest.QuestInfoID == 115);
                 }
                 if (!flag && this.IsFilterEnabled(MapFilterType.Reputation))
                 {
                     flag |= worldQuest.Currencies.Any(delegate(WrapperWorldQuestReward reward)
                     {
                         CurrencyTypesRec record = StaticDB.currencyTypesDB.GetRecord(reward.RecordID);
                         return(record != null && record.FactionID != 0u);
                     });
                 }
                 if (!flag && this.IsFilterEnabled(MapFilterType.Bounty_ChampionsOfAzeroth))
                 {
                     bool flag2 = flag;
                     bool flag3;
                     if (PersistentBountyData.bountiesByWorldQuestDictionary.ContainsKey(worldQuest.QuestID))
                     {
                         flag3 = PersistentBountyData.bountiesByWorldQuestDictionary[worldQuest.QuestID].BountyQuestIDs.Any((int questID) => questID == 50562);
                     }
                     else
                     {
                         flag3 = false;
                     }
                     flag = (flag2 || flag3);
                 }
                 if (!flag && this.IsFilterEnabled(MapFilterType.Bounty_ZandalariEmpire))
                 {
                     bool flag4 = flag;
                     bool flag5;
                     if (PersistentBountyData.bountiesByWorldQuestDictionary.ContainsKey(worldQuest.QuestID))
                     {
                         flag5 = PersistentBountyData.bountiesByWorldQuestDictionary[worldQuest.QuestID].BountyQuestIDs.Any((int questID) => questID == 50598);
                     }
                     else
                     {
                         flag5 = false;
                     }
                     flag = (flag4 || flag5);
                 }
                 if (!flag && this.IsFilterEnabled(MapFilterType.Bounty_ProudmooreAdmiralty))
                 {
                     bool flag6 = flag;
                     bool flag7;
                     if (PersistentBountyData.bountiesByWorldQuestDictionary.ContainsKey(worldQuest.QuestID))
                     {
                         flag7 = PersistentBountyData.bountiesByWorldQuestDictionary[worldQuest.QuestID].BountyQuestIDs.Any((int questID) => questID == 50599);
                     }
                     else
                     {
                         flag7 = false;
                     }
                     flag = (flag6 || flag7);
                 }
                 if (!flag && this.IsFilterEnabled(MapFilterType.Bounty_OrderOfEmbers))
                 {
                     bool flag8 = flag;
                     bool flag9;
                     if (PersistentBountyData.bountiesByWorldQuestDictionary.ContainsKey(worldQuest.QuestID))
                     {
                         flag9 = PersistentBountyData.bountiesByWorldQuestDictionary[worldQuest.QuestID].BountyQuestIDs.Any((int questID) => questID == 50600);
                     }
                     else
                     {
                         flag9 = false;
                     }
                     flag = (flag8 || flag9);
                 }
                 if (!flag && this.IsFilterEnabled(MapFilterType.Bounty_StormsWake))
                 {
                     bool flag10 = flag;
                     bool flag11;
                     if (PersistentBountyData.bountiesByWorldQuestDictionary.ContainsKey(worldQuest.QuestID))
                     {
                         flag11 = PersistentBountyData.bountiesByWorldQuestDictionary[worldQuest.QuestID].BountyQuestIDs.Any((int questID) => questID == 50601);
                     }
                     else
                     {
                         flag11 = false;
                     }
                     flag = (flag10 || flag11);
                 }
                 if (!flag && this.IsFilterEnabled(MapFilterType.Bounty_TalanjisExpedition))
                 {
                     bool flag12 = flag;
                     bool flag13;
                     if (PersistentBountyData.bountiesByWorldQuestDictionary.ContainsKey(worldQuest.QuestID))
                     {
                         flag13 = PersistentBountyData.bountiesByWorldQuestDictionary[worldQuest.QuestID].BountyQuestIDs.Any((int questID) => questID == 50602);
                     }
                     else
                     {
                         flag13 = false;
                     }
                     flag = (flag12 || flag13);
                 }
                 if (!flag && this.IsFilterEnabled(MapFilterType.Bounty_Voldunai))
                 {
                     bool flag14 = flag;
                     bool flag15;
                     if (PersistentBountyData.bountiesByWorldQuestDictionary.ContainsKey(worldQuest.QuestID))
                     {
                         flag15 = PersistentBountyData.bountiesByWorldQuestDictionary[worldQuest.QuestID].BountyQuestIDs.Any((int questID) => questID == 50603);
                     }
                     else
                     {
                         flag15 = false;
                     }
                     flag = (flag14 || flag15);
                 }
                 if (!flag && this.IsFilterEnabled(MapFilterType.Bounty_TortollanSeekers))
                 {
                     bool flag16 = flag;
                     bool flag17;
                     if (PersistentBountyData.bountiesByWorldQuestDictionary.ContainsKey(worldQuest.QuestID))
                     {
                         flag17 = PersistentBountyData.bountiesByWorldQuestDictionary[worldQuest.QuestID].BountyQuestIDs.Any((int questID) => questID == 50604);
                     }
                     else
                     {
                         flag17 = false;
                     }
                     flag = (flag16 || flag17);
                 }
                 if (!flag && this.IsFilterEnabled(MapFilterType.Bounty_AllianceWarEffort))
                 {
                     bool flag18 = flag;
                     bool flag19;
                     if (PersistentBountyData.bountiesByWorldQuestDictionary.ContainsKey(worldQuest.QuestID))
                     {
                         flag19 = PersistentBountyData.bountiesByWorldQuestDictionary[worldQuest.QuestID].BountyQuestIDs.Any((int questID) => questID == 50605);
                     }
                     else
                     {
                         flag19 = false;
                     }
                     flag = (flag18 || flag19);
                 }
                 if (!flag && this.IsFilterEnabled(MapFilterType.Bounty_HordeWarEffort))
                 {
                     bool flag20 = flag;
                     bool flag21;
                     if (PersistentBountyData.bountiesByWorldQuestDictionary.ContainsKey(worldQuest.QuestID))
                     {
                         flag21 = PersistentBountyData.bountiesByWorldQuestDictionary[worldQuest.QuestID].BountyQuestIDs.Any((int questID) => questID == 50606);
                     }
                     else
                     {
                         flag21 = false;
                     }
                     flag = (flag20 || flag21);
                 }
                 if (!flag)
                 {
                     continue;
                 }
             }
             Dictionary <int, float>   mapScaleTweaks  = null;
             Dictionary <int, Vector2> mapOffsetTweaks = null;
             if (worldQuest.StartLocationMapID == 1642)
             {
                 mapScaleTweaks = new Dictionary <int, float>
                 {
                     {
                         863,
                         -0.02f
                     }
                 };
                 mapOffsetTweaks = new Dictionary <int, Vector2>
                 {
                     {
                         864,
                         new Vector2(60f, -20f)
                     }
                 };
             }
             GameObject gameObject = this.SetupWorldQuestObject(worldQuest, mapScaleTweaks, mapOffsetTweaks);
             if (gameObject != null)
             {
                 AdventureMapWorldQuest component = gameObject.GetComponent <AdventureMapWorldQuest>();
                 component.SetQuestID(worldQuest.QuestID);
                 StackableMapIcon component2 = gameObject.GetComponent <StackableMapIcon>();
                 if (component2 != null)
                 {
                     component2.RegisterWithManager(worldQuest.StartLocationMapID);
                 }
             }
         }
     }
     this.m_pinchZoomContentManager.ForceZoomFactorChanged();
 }
        public void ShowMissionResults(int garrMissionID, int missionResultType, bool awardOvermax)
        {
            int            num;
            GarrMissionRec record = StaticDB.garrMissionDB.GetRecord(garrMissionID);

            if (record == null)
            {
                return;
            }
            this.RegisterMainScriptObjEvents();
            this.m_missionResultsDisplayCanvasGroupAutoFadeOut.Reset();
            this.m_currentResultType = (MissionResultType)missionResultType;
            this.m_followerExperienceDisplayArea.SetActive(false);
            this.m_attemptedAutoComplete = false;
            this.m_garrMissionID         = garrMissionID;
            this.m_darknessBG.SetActive(true);
            this.m_popupView.SetActive(true);
            this.m_bonusLootDisplay.SetActive(false);
            if (this.missionFollowerSlotGroup != null)
            {
                MissionFollowerSlot[] componentsInChildren = this.missionFollowerSlotGroup.GetComponentsInChildren <MissionFollowerSlot>(true);
                for (int i = 0; i < (int)componentsInChildren.Length; i++)
                {
                    if (componentsInChildren[i] != null && componentsInChildren[i] != this.missionFollowerSlotGroup.transform)
                    {
                        componentsInChildren[i].gameObject.transform.SetParent(null);
                        UnityEngine.Object.Destroy(componentsInChildren[i].gameObject);
                    }
                }
            }
            MissionEncounter[] missionEncounterArray = this.enemyPortraitsGroup.GetComponentsInChildren <MissionEncounter>(true);
            for (int j = 0; j < (int)missionEncounterArray.Length; j++)
            {
                if (missionEncounterArray[j] != null && missionEncounterArray[j] != this.enemyPortraitsGroup.transform)
                {
                    missionEncounterArray[j].gameObject.transform.SetParent(null);
                    UnityEngine.Object.Destroy(missionEncounterArray[j].gameObject);
                }
            }
            if (this.treasureChestHorde != null && this.treasureChestAlliance != null)
            {
                if (GarrisonStatus.Faction() != PVP_FACTION.HORDE)
                {
                    this.treasureChestHorde.SetActive(false);
                    this.treasureChestAlliance.SetActive(true);
                }
                else
                {
                    this.treasureChestHorde.SetActive(true);
                    this.treasureChestAlliance.SetActive(false);
                }
            }
            WrapperGarrisonMission item = PersistentMissionData.missionDictionary[garrMissionID];

            this.m_missionStartedTime       = item.StartTime;
            this.m_missionDurationInSeconds = item.MissionDuration;
            for (int k = 0; k < item.Encounters.Count; k++)
            {
                GameObject gameObject = UnityEngine.Object.Instantiate <GameObject>(this.missionEncounterPrefab);
                gameObject.transform.SetParent(this.enemyPortraitsGroup.transform, false);
                MissionEncounter component = gameObject.GetComponent <MissionEncounter>();
                num = (item.Encounters[k].MechanicIDs.Count <= 0 ? 0 : item.Encounters[k].MechanicIDs[0]);
                component.SetEncounter(item.Encounters[k].EncounterID, num);
            }
            this.missionNameText.text     = record.Name;
            this.missionLocationText.text = record.Location;
            GarrMissionTypeRec garrMissionTypeRec = StaticDB.garrMissionTypeDB.GetRecord((int)record.GarrMissionTypeID);

            this.missionTypeImage.overrideSprite = TextureAtlas.instance.GetAtlasSprite((int)garrMissionTypeRec.UiTextureAtlasMemberID);
            if (this.missionFollowerSlotGroup != null)
            {
                for (int l = 0; (long)l < (ulong)record.MaxFollowers; l++)
                {
                    GameObject gameObject1 = UnityEngine.Object.Instantiate <GameObject>(this.missionFollowerSlotPrefab);
                    gameObject1.transform.SetParent(this.missionFollowerSlotGroup.transform, false);
                    gameObject1.GetComponent <MissionFollowerSlot>().m_enemyPortraitsGroup = this.enemyPortraitsGroup;
                }
            }
            if (record.UiTextureKitID <= 0)
            {
                Debug.LogWarning(string.Concat(new object[] { "DATA ERROR: Mission UITextureKit Not Set for mission ID:", record.ID, " - ", record.Name }));
                Debug.LogWarning("This means the scrolling background images will show the wrong location");
            }
            else
            {
                UiTextureKitRec uiTextureKitRec = StaticDB.uiTextureKitDB.GetRecord((int)record.UiTextureKitID);
                this.m_scrollingEnvironment_Back.enabled = false;
                this.m_scrollingEnvironment_Mid.enabled  = false;
                this.m_scrollingEnvironment_Fore.enabled = false;
                int uITextureAtlasMemberID = TextureAtlas.GetUITextureAtlasMemberID(string.Concat("_", uiTextureKitRec.KitPrefix, "-Back"));
                if (uITextureAtlasMemberID > 0)
                {
                    Sprite atlasSprite = TextureAtlas.instance.GetAtlasSprite(uITextureAtlasMemberID);
                    if (atlasSprite == null)
                    {
                        uint uiTextureKitID = record.UiTextureKitID;
                        Debug.Log(string.Concat("Missing expected Back sprite from UiTextureKitID: [", uiTextureKitID.ToString(), "]"));
                    }
                    else
                    {
                        this.m_scrollingEnvironment_Back.enabled = true;
                        this.m_scrollingEnvironment_Back.sprite  = atlasSprite;
                    }
                }
                int uITextureAtlasMemberID1 = TextureAtlas.GetUITextureAtlasMemberID(string.Concat("_", uiTextureKitRec.KitPrefix, "-Mid"));
                if (uITextureAtlasMemberID1 > 0)
                {
                    Sprite sprite = TextureAtlas.instance.GetAtlasSprite(uITextureAtlasMemberID1);
                    if (sprite == null)
                    {
                        uint uiTextureKitID1 = record.UiTextureKitID;
                        Debug.Log(string.Concat("Missing expected Mid sprite from UiTextureKitID: [", uiTextureKitID1.ToString(), "]"));
                    }
                    else
                    {
                        this.m_scrollingEnvironment_Mid.enabled = true;
                        this.m_scrollingEnvironment_Mid.sprite  = sprite;
                    }
                }
                int num1 = TextureAtlas.GetUITextureAtlasMemberID(string.Concat("_", uiTextureKitRec.KitPrefix, "-Fore"));
                if (num1 > 0)
                {
                    Sprite atlasSprite1 = TextureAtlas.instance.GetAtlasSprite(num1);
                    if (atlasSprite1 == null)
                    {
                        uint uiTextureKitID2 = record.UiTextureKitID;
                        Debug.Log(string.Concat("Missing expected Fore sprite from UiTextureKitID: [", uiTextureKitID2.ToString(), "]"));
                    }
                    else
                    {
                        this.m_scrollingEnvironment_Fore.enabled = true;
                        this.m_scrollingEnvironment_Fore.sprite  = atlasSprite1;
                    }
                }
            }
            if (this.m_lootGroupObj == null || this.m_missionRewardDisplayPrefab == null)
            {
                return;
            }
            MissionRewardDisplay[] missionRewardDisplayArray = this.m_lootGroupObj.GetComponentsInChildren <MissionRewardDisplay>(true);
            for (int m = 0; m < (int)missionRewardDisplayArray.Length; m++)
            {
                if (missionRewardDisplayArray[m] != null)
                {
                    UnityEngine.Object.Destroy(missionRewardDisplayArray[m].gameObject);
                }
            }
            if (missionResultType == 1)
            {
                PersistentFollowerData.ClearPreMissionFollowerData();
            }
            List <WrapperGarrisonFollower> wrapperGarrisonFollowers = new List <WrapperGarrisonFollower>();

            MissionFollowerSlot[] missionFollowerSlotArray = this.missionFollowerSlotGroup.GetComponentsInChildren <MissionFollowerSlot>(true);
            int num2 = 0;

            foreach (WrapperGarrisonFollower value in PersistentFollowerData.followerDictionary.Values)
            {
                if (value.CurrentMissionID != garrMissionID)
                {
                    continue;
                }
                int num3 = num2;
                num2 = num3 + 1;
                missionFollowerSlotArray[num3].SetFollower(value.GarrFollowerID);
                if (missionResultType == 1)
                {
                    PersistentFollowerData.CachePreMissionFollower(value);
                }
                wrapperGarrisonFollowers.Add(value);
            }
            this.UpdateMissionStatus(garrMissionID);
            MissionFollowerSlot[] missionFollowerSlotArray1 = missionFollowerSlotArray;
            for (int n = 0; n < (int)missionFollowerSlotArray1.Length; n++)
            {
                missionFollowerSlotArray1[n].InitHeartPanel();
            }
            MissionRewardDisplay.InitMissionRewards(this.m_missionRewardDisplayPrefab.gameObject, this.m_lootGroupObj.transform, item.Rewards);
            if (record.OvermaxRewardPackID > 0 && item.OvermaxRewards.Count > 0)
            {
                this.m_bonusLootDisplay.SetActive(true);
                WrapperGarrisonMissionReward wrapperGarrisonMissionReward = item.OvermaxRewards[0];
                if (wrapperGarrisonMissionReward.ItemID > 0)
                {
                    this.m_bonusMissionRewardDisplay.InitReward(MissionRewardDisplay.RewardType.item, wrapperGarrisonMissionReward.ItemID, (int)wrapperGarrisonMissionReward.ItemQuantity, 0, wrapperGarrisonMissionReward.ItemFileDataID);
                }
                else if (wrapperGarrisonMissionReward.FollowerXP > 0)
                {
                    this.m_bonusMissionRewardDisplay.InitReward(MissionRewardDisplay.RewardType.followerXP, 0, (int)wrapperGarrisonMissionReward.FollowerXP, 0, 0);
                }
                else if (wrapperGarrisonMissionReward.CurrencyQuantity > 0)
                {
                    if (wrapperGarrisonMissionReward.CurrencyType != 0)
                    {
                        CurrencyTypesRec currencyTypesRec = StaticDB.currencyTypesDB.GetRecord(wrapperGarrisonMissionReward.CurrencyType);
                        int currencyQuantity = (int)((ulong)wrapperGarrisonMissionReward.CurrencyQuantity / (long)(((currencyTypesRec.Flags & 8) == 0 ? 1 : 100)));
                        this.m_bonusMissionRewardDisplay.InitReward(MissionRewardDisplay.RewardType.currency, wrapperGarrisonMissionReward.CurrencyType, currencyQuantity, 0, 0);
                    }
                    else
                    {
                        this.m_bonusMissionRewardDisplay.InitReward(MissionRewardDisplay.RewardType.gold, 0, (int)(wrapperGarrisonMissionReward.CurrencyQuantity / 10000), 0, 0);
                    }
                }
            }
            this.m_timeUntilFadeOutMissionDetailsDisplay   = this.m_missionDetailsFadeOutDelay;
            this.m_timeUntilShowFollowerExperienceDisplays = this.m_experienceDisplayInitialEntranceDelay;
            if (missionResultType == 2)
            {
                this.InitFollowerExperienceDisplays();
                this.m_missionInProgressMessage.SetActive(false);
                this.m_missionSuccessMessage.SetActive(true);
                this.m_missionFailMessage.SetActive(false);
                if (this.m_fancyEntrance != null)
                {
                    UnityEngine.Object.Destroy(this.m_fancyEntrance);
                    iTween.Stop(this.m_missionSuccessMessage);
                    this.m_missionSuccessMessage.transform.localScale = Vector3.one;
                    iTween.Stop(this.m_missionFailMessage);
                    this.m_missionFailMessage.transform.localScale = Vector3.one;
                }
                this.m_missionSuccessMessage.SetActive(false);
                this.m_fancyEntrance = this.m_missionSuccessMessage.AddComponent <FancyEntrance>();
                this.m_fancyEntrance.m_fadeInCanvasGroup         = this.m_missionSuccessMessage.GetComponent <CanvasGroup>();
                this.m_fancyEntrance.m_fadeInTime                = this.m_messageFadeInTime;
                this.m_fancyEntrance.m_punchScale                = this.m_messagePunchScale;
                this.m_fancyEntrance.m_punchScaleAmount          = this.m_messagePunchScaleAmount;
                this.m_fancyEntrance.m_punchScaleDuration        = this.m_messagePunchScaleDuration;
                this.m_fancyEntrance.m_timeToDelayEntrance       = this.m_messageTimeToDelayEntrance;
                this.m_fancyEntrance.m_activateOnEnable          = true;
                this.m_fancyEntrance.m_objectToNotifyOnBegin     = base.gameObject;
                this.m_fancyEntrance.m_notifyOnBeginCallbackName = "OnShowSuccessMessage";
                this.m_missionSuccessMessage.SetActive(true);
                MissionRewardDisplay[] componentsInChildren1 = this.m_lootGroupObj.GetComponentsInChildren <MissionRewardDisplay>(true);
                for (int o = 0; o < (int)componentsInChildren1.Length; o++)
                {
                    componentsInChildren1[o].ShowResultSuccess(this.m_lootEffectInitialDelay + this.m_lootEffectDelay * (float)o);
                }
                if (this.m_bonusLootChance > 0)
                {
                    iTween.ValueTo(base.gameObject, iTween.Hash(new object[] { "name", "ShakeIt", "from", 0.3f, "to", 1f, "delay", this.m_bonusLootShakeInitialDelay, "time", this.m_bonusLootShakeDuration, "onupdate", "OnBonusLootShakeUpdate", "oncomplete", "OnBonusLootShakeComplete" }));
                }
                if (!awardOvermax)
                {
                    this.m_bonusMissionRewardDisplay.ShowResultFail(this.m_lootEffectInitialDelay + this.m_lootEffectDelay * (float)((int)componentsInChildren1.Length));
                }
                else
                {
                    this.m_bonusMissionRewardDisplay.ShowResultSuccess(this.m_lootEffectInitialDelay + this.m_lootEffectDelay * (float)((int)componentsInChildren1.Length));
                }
            }
            if (missionResultType == 3)
            {
                this.InitFollowerExperienceDisplays();
                this.m_missionInProgressMessage.SetActive(false);
                this.m_missionSuccessMessage.SetActive(false);
                this.m_missionFailMessage.SetActive(true);
                if (this.m_fancyEntrance != null)
                {
                    UnityEngine.Object.Destroy(this.m_fancyEntrance);
                    iTween.Stop(this.m_missionSuccessMessage);
                    this.m_missionSuccessMessage.transform.localScale = Vector3.one;
                    iTween.Stop(this.m_missionFailMessage);
                    this.m_missionFailMessage.transform.localScale = Vector3.one;
                }
                this.m_missionFailMessage.SetActive(false);
                this.m_fancyEntrance = this.m_missionFailMessage.AddComponent <FancyEntrance>();
                this.m_fancyEntrance.m_fadeInCanvasGroup         = this.m_missionFailMessage.GetComponent <CanvasGroup>();
                this.m_fancyEntrance.m_fadeInTime                = this.m_messageFadeInTime;
                this.m_fancyEntrance.m_punchScale                = this.m_messagePunchScale;
                this.m_fancyEntrance.m_punchScaleAmount          = this.m_messagePunchScaleAmount;
                this.m_fancyEntrance.m_punchScaleDuration        = this.m_messagePunchScaleDuration;
                this.m_fancyEntrance.m_timeToDelayEntrance       = this.m_messageTimeToDelayEntrance;
                this.m_fancyEntrance.m_activateOnEnable          = true;
                this.m_fancyEntrance.m_objectToNotifyOnBegin     = base.gameObject;
                this.m_fancyEntrance.m_notifyOnBeginCallbackName = "OnShowFailMessage";
                this.m_missionFailMessage.SetActive(true);
                MissionRewardDisplay[] missionRewardDisplayArray1 = this.m_lootGroupObj.GetComponentsInChildren <MissionRewardDisplay>(true);
                for (int p = 0; p < (int)missionRewardDisplayArray1.Length; p++)
                {
                    missionRewardDisplayArray1[p].ShowResultFail(this.m_lootEffectInitialDelay);
                }
                this.m_bonusMissionRewardDisplay.ShowResultFail(this.m_lootEffectInitialDelay);
            }
            if (missionResultType == 0)
            {
                this.m_missionInProgressMessage.SetActive(true);
                this.m_missionSuccessMessage.SetActive(false);
                this.m_missionFailMessage.SetActive(false);
                this.m_bonusMissionRewardDisplay.ClearResults();
            }
            if (missionResultType == 1)
            {
                this.m_missionInProgressMessage.SetActive(false);
                this.m_missionSuccessMessage.SetActive(false);
                this.m_missionFailMessage.SetActive(false);
                FollowerExperienceDisplay[] followerExperienceDisplayArray = this.m_followerExperienceDisplayArea.GetComponentsInChildren <FollowerExperienceDisplay>(true);
                for (int q = 0; q < (int)followerExperienceDisplayArray.Length; q++)
                {
                    UnityEngine.Object.Destroy(followerExperienceDisplayArray[q].gameObject);
                }
            }
            if (this.m_partyBuffGroup == null)
            {
                return;
            }
            AbilityDisplay[] abilityDisplayArray = this.m_partyBuffGroup.GetComponentsInChildren <AbilityDisplay>(true);
            for (int r = 0; r < (int)abilityDisplayArray.Length; r++)
            {
                UnityEngine.Object.Destroy(abilityDisplayArray[r].gameObject);
            }
            int adjustedMissionDuration = GeneralHelpers.GetAdjustedMissionDuration(record, wrapperGarrisonFollowers, this.enemyPortraitsGroup);
            int length = 0;

            foreach (WrapperGarrisonFollower wrapperGarrisonFollower in PersistentFollowerData.followerDictionary.Values)
            {
                if (wrapperGarrisonFollower.CurrentMissionID == garrMissionID)
                {
                    int[] buffsForCurrentMission = GeneralHelpers.GetBuffsForCurrentMission(wrapperGarrisonFollower.GarrFollowerID, garrMissionID, this.missionFollowerSlotGroup, adjustedMissionDuration);
                    length += (int)buffsForCurrentMission.Length;
                    int[] numArray = buffsForCurrentMission;
                    for (int s = 0; s < (int)numArray.Length; s++)
                    {
                        int        num4        = numArray[s];
                        GameObject gameObject2 = UnityEngine.Object.Instantiate <GameObject>(this.m_mechanicEffectDisplayPrefab);
                        gameObject2.transform.SetParent(this.m_partyBuffGroup.transform, false);
                        gameObject2.GetComponent <AbilityDisplay>().SetAbility(num4, false, false, null);
                    }
                }
            }
            if (length <= 8)
            {
                this.m_partyBuffsText.text = StaticDB.GetString("PARTY_BUFFS", null);
            }
            else
            {
                this.m_partyBuffsText.text = string.Empty;
            }
            HorizontalLayoutGroup horizontalLayoutGroup = this.m_partyBuffGroup.GetComponent <HorizontalLayoutGroup>();

            if (horizontalLayoutGroup != null)
            {
                if (length <= 10 || !Main.instance.IsNarrowScreen())
                {
                    horizontalLayoutGroup.spacing = 6f;
                }
                else
                {
                    horizontalLayoutGroup.spacing = 3f;
                }
            }
            this.m_partyBuffGroup.SetActive(length > 0);
        }
示例#14
0
    public void ShowMissionResults(int garrMissionID, int missionResultType, bool awardOvermax)
    {
        this.m_missionResultsDisplayCanvasGroupAutoFadeOut.Reset();
        this.m_currentResultType = (MissionResultType)missionResultType;
        this.m_followerExperienceDisplayArea.SetActive(false);
        this.m_attemptedAutoComplete = false;
        this.m_garrMissionID         = garrMissionID;
        this.m_darknessBG.SetActive(true);
        this.m_popupView.SetActive(true);
        this.m_bonusLootDisplay.SetActive(false);
        if (this.missionFollowerSlotGroup != null)
        {
            MissionFollowerSlot[] componentsInChildren = this.missionFollowerSlotGroup.GetComponentsInChildren <MissionFollowerSlot>(true);
            for (int i = 0; i < componentsInChildren.Length; i++)
            {
                if (componentsInChildren[i] != null && componentsInChildren[i] != this.missionFollowerSlotGroup.get_transform())
                {
                    Object.DestroyImmediate(componentsInChildren[i].get_gameObject());
                }
            }
        }
        MissionEncounter[] componentsInChildren2 = this.enemyPortraitsGroup.GetComponentsInChildren <MissionEncounter>(true);
        for (int j = 0; j < componentsInChildren2.Length; j++)
        {
            if (componentsInChildren2[j] != null && componentsInChildren2[j] != this.enemyPortraitsGroup.get_transform())
            {
                Object.DestroyImmediate(componentsInChildren2[j].get_gameObject());
            }
        }
        if (this.treasureChestHorde != null && this.treasureChestAlliance != null)
        {
            if (GarrisonStatus.Faction() == PVP_FACTION.HORDE)
            {
                this.treasureChestHorde.SetActive(true);
                this.treasureChestAlliance.SetActive(false);
            }
            else
            {
                this.treasureChestHorde.SetActive(false);
                this.treasureChestAlliance.SetActive(true);
            }
        }
        JamGarrisonMobileMission jamGarrisonMobileMission = (JamGarrisonMobileMission)PersistentMissionData.missionDictionary.get_Item(garrMissionID);

        this.m_missionStartedTime       = jamGarrisonMobileMission.StartTime;
        this.m_missionDurationInSeconds = jamGarrisonMobileMission.MissionDuration;
        for (int k = 0; k < jamGarrisonMobileMission.Encounter.Length; k++)
        {
            GameObject gameObject = Object.Instantiate <GameObject>(this.missionEncounterPrefab);
            gameObject.get_transform().SetParent(this.enemyPortraitsGroup.get_transform(), false);
            MissionEncounter component = gameObject.GetComponent <MissionEncounter>();
            int garrMechanicID         = (jamGarrisonMobileMission.Encounter[k].MechanicID.Length <= 0) ? 0 : jamGarrisonMobileMission.Encounter[k].MechanicID[0];
            component.SetEncounter(jamGarrisonMobileMission.Encounter[k].EncounterID, garrMechanicID);
        }
        GarrMissionRec record = StaticDB.garrMissionDB.GetRecord(garrMissionID);

        this.missionNameText.set_text(record.Name);
        this.missionLocationText.set_text(record.Location);
        this.missioniLevelText.set_text(StaticDB.GetString("ITEM_LEVEL_ABBREVIATION", null) + " " + record.TargetItemLevel);
        GarrMissionTypeRec record2 = StaticDB.garrMissionTypeDB.GetRecord((int)record.GarrMissionTypeID);

        this.missionTypeImage.set_overrideSprite(TextureAtlas.instance.GetAtlasSprite((int)record2.UiTextureAtlasMemberID));
        if (this.missionFollowerSlotGroup != null)
        {
            int num = 0;
            while ((long)num < (long)((ulong)record.MaxFollowers))
            {
                GameObject gameObject2 = Object.Instantiate <GameObject>(this.missionFollowerSlotPrefab);
                gameObject2.get_transform().SetParent(this.missionFollowerSlotGroup.get_transform(), false);
                MissionFollowerSlot component2 = gameObject2.GetComponent <MissionFollowerSlot>();
                component2.m_enemyPortraitsGroup = this.enemyPortraitsGroup;
                num++;
            }
        }
        if (record.UiTextureKitID > 0u)
        {
            UiTextureKitRec record3 = StaticDB.uiTextureKitDB.GetRecord((int)record.UiTextureKitID);
            this.m_scrollingEnvironment_Back.set_enabled(false);
            this.m_scrollingEnvironment_Mid.set_enabled(false);
            this.m_scrollingEnvironment_Fore.set_enabled(false);
            int uITextureAtlasMemberID = TextureAtlas.GetUITextureAtlasMemberID("_" + record3.KitPrefix + "-Back");
            if (uITextureAtlasMemberID > 0)
            {
                Sprite atlasSprite = TextureAtlas.instance.GetAtlasSprite(uITextureAtlasMemberID);
                if (atlasSprite != null)
                {
                    this.m_scrollingEnvironment_Back.set_enabled(true);
                    this.m_scrollingEnvironment_Back.set_sprite(atlasSprite);
                }
            }
            int uITextureAtlasMemberID2 = TextureAtlas.GetUITextureAtlasMemberID("_" + record3.KitPrefix + "-Mid");
            if (uITextureAtlasMemberID2 > 0)
            {
                Sprite atlasSprite2 = TextureAtlas.instance.GetAtlasSprite(uITextureAtlasMemberID2);
                if (atlasSprite2 != null)
                {
                    this.m_scrollingEnvironment_Mid.set_enabled(true);
                    this.m_scrollingEnvironment_Mid.set_sprite(atlasSprite2);
                }
            }
            int uITextureAtlasMemberID3 = TextureAtlas.GetUITextureAtlasMemberID("_" + record3.KitPrefix + "-Fore");
            if (uITextureAtlasMemberID3 > 0)
            {
                Sprite atlasSprite3 = TextureAtlas.instance.GetAtlasSprite(uITextureAtlasMemberID3);
                if (atlasSprite3 != null)
                {
                    this.m_scrollingEnvironment_Fore.set_enabled(true);
                    this.m_scrollingEnvironment_Fore.set_sprite(atlasSprite3);
                }
            }
        }
        else
        {
            Debug.LogWarning(string.Concat(new object[]
            {
                "DATA ERROR: Mission UITextureKit Not Set for mission ID:",
                record.ID,
                " - ",
                record.Name
            }));
            Debug.LogWarning("This means the scrolling background images will show the wrong location");
        }
        if (this.m_lootGroupObj == null || this.m_missionRewardDisplayPrefab == null)
        {
            return;
        }
        MissionRewardDisplay[] componentsInChildren3 = this.m_lootGroupObj.GetComponentsInChildren <MissionRewardDisplay>(true);
        for (int l = 0; l < componentsInChildren3.Length; l++)
        {
            if (componentsInChildren3[l] != null)
            {
                Object.DestroyImmediate(componentsInChildren3[l].get_gameObject());
            }
        }
        MissionFollowerSlot[] componentsInChildren4 = this.missionFollowerSlotGroup.GetComponentsInChildren <MissionFollowerSlot>(true);
        int num2 = 0;

        using (Dictionary <int, JamGarrisonFollower> .ValueCollection.Enumerator enumerator = PersistentFollowerData.followerDictionary.get_Values().GetEnumerator())
        {
            while (enumerator.MoveNext())
            {
                JamGarrisonFollower current = enumerator.get_Current();
                if (current.CurrentMissionID == garrMissionID)
                {
                    componentsInChildren4[num2++].SetFollower(current.GarrFollowerID);
                    if (missionResultType == 1)
                    {
                        PersistentFollowerData.CachePreMissionFollower(current);
                    }
                }
            }
        }
        this.UpdateMissionStatus(garrMissionID);
        MissionFollowerSlot[] array = componentsInChildren4;
        for (int m = 0; m < array.Length; m++)
        {
            MissionFollowerSlot missionFollowerSlot = array[m];
            missionFollowerSlot.InitHeartPanel();
        }
        MissionRewardDisplay.InitMissionRewards(this.m_missionRewardDisplayPrefab.get_gameObject(), this.m_lootGroupObj.get_transform(), jamGarrisonMobileMission.Reward);
        if (record.OvermaxRewardPackID > 0 && jamGarrisonMobileMission.OvermaxReward.Length > 0)
        {
            this.m_bonusLootDisplay.SetActive(true);
            JamGarrisonMissionReward jamGarrisonMissionReward = jamGarrisonMobileMission.OvermaxReward[0];
            if (jamGarrisonMissionReward.ItemID > 0)
            {
                this.m_bonusMissionRewardDisplay.InitReward(MissionRewardDisplay.RewardType.item, jamGarrisonMissionReward.ItemID, (int)jamGarrisonMissionReward.ItemQuantity, 0, jamGarrisonMissionReward.ItemFileDataID);
            }
            else if (jamGarrisonMissionReward.FollowerXP > 0u)
            {
                this.m_bonusMissionRewardDisplay.InitReward(MissionRewardDisplay.RewardType.followerXP, 0, (int)jamGarrisonMissionReward.FollowerXP, 0, 0);
            }
            else if (jamGarrisonMissionReward.CurrencyQuantity > 0u)
            {
                if (jamGarrisonMissionReward.CurrencyType == 0)
                {
                    this.m_bonusMissionRewardDisplay.InitReward(MissionRewardDisplay.RewardType.gold, 0, (int)(jamGarrisonMissionReward.CurrencyQuantity / 10000u), 0, 0);
                }
                else
                {
                    CurrencyTypesRec record4 = StaticDB.currencyTypesDB.GetRecord(jamGarrisonMissionReward.CurrencyType);
                    int rewardQuantity       = (int)((ulong)jamGarrisonMissionReward.CurrencyQuantity / (ulong)(((record4.Flags & 8u) == 0u) ? 1L : 100L));
                    this.m_bonusMissionRewardDisplay.InitReward(MissionRewardDisplay.RewardType.currency, jamGarrisonMissionReward.CurrencyType, rewardQuantity, 0, 0);
                }
            }
        }
        this.m_timeUntilFadeOutMissionDetailsDisplay   = this.m_missionDetailsFadeOutDelay;
        this.m_timeUntilShowFollowerExperienceDisplays = this.m_experienceDisplayInitialEntranceDelay;
        if (missionResultType == 2)
        {
            this.InitFollowerExperienceDisplays();
            Main.instance.m_UISound.Play_MissionSuccess();
            this.m_missionInProgressMessage.SetActive(false);
            this.m_missionSuccessMessage.SetActive(true);
            this.m_missionFailMessage.SetActive(false);
            if (this.m_fancyEntrance != null)
            {
                Object.DestroyImmediate(this.m_fancyEntrance);
                iTween.Stop(this.m_missionSuccessMessage);
                this.m_missionSuccessMessage.get_transform().set_localScale(Vector3.get_one());
                iTween.Stop(this.m_missionFailMessage);
                this.m_missionFailMessage.get_transform().set_localScale(Vector3.get_one());
            }
            this.m_missionSuccessMessage.SetActive(false);
            this.m_fancyEntrance = this.m_missionSuccessMessage.AddComponent <FancyEntrance>();
            this.m_fancyEntrance.m_fadeInCanvasGroup   = this.m_missionSuccessMessage.GetComponent <CanvasGroup>();
            this.m_fancyEntrance.m_fadeInTime          = this.m_messageFadeInTime;
            this.m_fancyEntrance.m_punchScale          = this.m_messagePunchScale;
            this.m_fancyEntrance.m_punchScaleAmount    = this.m_messagePunchScaleAmount;
            this.m_fancyEntrance.m_punchScaleDuration  = this.m_messagePunchScaleDuration;
            this.m_fancyEntrance.m_timeToDelayEntrance = this.m_messageTimeToDelayEntrance;
            this.m_missionSuccessMessage.SetActive(true);
            MissionRewardDisplay[] componentsInChildren5 = this.m_lootGroupObj.GetComponentsInChildren <MissionRewardDisplay>(true);
            for (int n = 0; n < componentsInChildren5.Length; n++)
            {
                componentsInChildren5[n].ShowResultSuccess(this.m_lootEffectInitialDelay + this.m_lootEffectDelay * (float)n);
            }
            if (awardOvermax)
            {
                this.m_bonusMissionRewardDisplay.ShowResultSuccess(this.m_lootEffectInitialDelay + this.m_lootEffectDelay * (float)componentsInChildren5.Length);
            }
            else
            {
                this.m_bonusMissionRewardDisplay.ShowResultFail(this.m_lootEffectInitialDelay + this.m_lootEffectDelay * (float)componentsInChildren5.Length);
            }
        }
        if (missionResultType == 3)
        {
            this.InitFollowerExperienceDisplays();
            Main.instance.m_UISound.Play_MissionFailure();
            this.m_missionInProgressMessage.SetActive(false);
            this.m_missionSuccessMessage.SetActive(false);
            this.m_missionFailMessage.SetActive(true);
            if (this.m_fancyEntrance != null)
            {
                Object.DestroyImmediate(this.m_fancyEntrance);
                iTween.Stop(this.m_missionSuccessMessage);
                this.m_missionSuccessMessage.get_transform().set_localScale(Vector3.get_one());
                iTween.Stop(this.m_missionFailMessage);
                this.m_missionFailMessage.get_transform().set_localScale(Vector3.get_one());
            }
            this.m_missionFailMessage.SetActive(false);
            this.m_fancyEntrance = this.m_missionFailMessage.AddComponent <FancyEntrance>();
            this.m_fancyEntrance.m_fadeInCanvasGroup   = this.m_missionFailMessage.GetComponent <CanvasGroup>();
            this.m_fancyEntrance.m_fadeInTime          = this.m_messageFadeInTime;
            this.m_fancyEntrance.m_punchScale          = this.m_messagePunchScale;
            this.m_fancyEntrance.m_punchScaleAmount    = this.m_messagePunchScaleAmount;
            this.m_fancyEntrance.m_punchScaleDuration  = this.m_messagePunchScaleDuration;
            this.m_fancyEntrance.m_timeToDelayEntrance = this.m_messageTimeToDelayEntrance;
            this.m_missionFailMessage.SetActive(true);
            MissionRewardDisplay[] componentsInChildren6 = this.m_lootGroupObj.GetComponentsInChildren <MissionRewardDisplay>(true);
            for (int num3 = 0; num3 < componentsInChildren6.Length; num3++)
            {
                componentsInChildren6[num3].ShowResultFail(this.m_lootEffectInitialDelay + this.m_lootEffectDelay * (float)num3);
            }
            this.m_bonusMissionRewardDisplay.ShowResultFail(this.m_lootEffectInitialDelay + this.m_lootEffectDelay * (float)componentsInChildren6.Length);
        }
        if (missionResultType == 0)
        {
            this.m_missionInProgressMessage.SetActive(true);
            this.m_missionSuccessMessage.SetActive(false);
            this.m_missionFailMessage.SetActive(false);
            this.m_bonusMissionRewardDisplay.ClearResults();
        }
        if (missionResultType == 1)
        {
            this.m_missionInProgressMessage.SetActive(false);
            this.m_missionSuccessMessage.SetActive(false);
            this.m_missionFailMessage.SetActive(false);
            FollowerExperienceDisplay[] componentsInChildren7 = this.m_followerExperienceDisplayArea.GetComponentsInChildren <FollowerExperienceDisplay>(true);
            FollowerExperienceDisplay[] array2 = componentsInChildren7;
            for (int num4 = 0; num4 < array2.Length; num4++)
            {
                FollowerExperienceDisplay followerExperienceDisplay = array2[num4];
                Object.DestroyImmediate(followerExperienceDisplay.get_gameObject());
            }
        }
        if (this.m_partyBuffGroup != null)
        {
            AbilityDisplay[] componentsInChildren8 = this.m_partyBuffGroup.GetComponentsInChildren <AbilityDisplay>(true);
            AbilityDisplay[] array3 = componentsInChildren8;
            for (int num5 = 0; num5 < array3.Length; num5++)
            {
                AbilityDisplay abilityDisplay = array3[num5];
                Object.DestroyImmediate(abilityDisplay.get_gameObject());
            }
        }
        int num6 = 0;

        using (Dictionary <int, JamGarrisonFollower> .ValueCollection.Enumerator enumerator2 = PersistentFollowerData.followerDictionary.get_Values().GetEnumerator())
        {
            while (enumerator2.MoveNext())
            {
                JamGarrisonFollower current2 = enumerator2.get_Current();
                if (current2.CurrentMissionID == garrMissionID)
                {
                    int[] buffsForCurrentMission = GeneralHelpers.GetBuffsForCurrentMission(current2.GarrFollowerID, garrMissionID, this.missionFollowerSlotGroup);
                    num6 += buffsForCurrentMission.Length;
                    int[] array4 = buffsForCurrentMission;
                    for (int num7 = 0; num7 < array4.Length; num7++)
                    {
                        int        garrAbilityID = array4[num7];
                        GameObject gameObject3   = Object.Instantiate <GameObject>(this.m_mechanicEffectDisplayPrefab);
                        gameObject3.get_transform().SetParent(this.m_partyBuffGroup.get_transform(), false);
                        AbilityDisplay component3 = gameObject3.GetComponent <AbilityDisplay>();
                        component3.SetAbility(garrAbilityID, false, false, null);
                    }
                }
            }
        }
        this.m_partyBuffGroup.SetActive(num6 > 0);
    }
示例#15
0
    public void SetQuestID(int questID)
    {
        this.m_questID = questID;
        base.get_gameObject().set_name("WorldQuest " + this.m_questID);
        MobileWorldQuest mobileWorldQuest = (MobileWorldQuest)WorldQuestData.worldQuestDictionary.get_Item(this.m_questID);

        if (mobileWorldQuest == null || mobileWorldQuest.Item == null)
        {
            return;
        }
        MobileWorldQuestReward[] item = mobileWorldQuest.Item;
        for (int i = 0; i < item.Length; i++)
        {
            MobileWorldQuestReward mobileWorldQuestReward = item[i];
            ItemRec record = StaticDB.itemDB.GetRecord(mobileWorldQuestReward.RecordID);
            if (record == null)
            {
                Debug.LogWarning(string.Concat(new object[]
                {
                    "Invalid Item ID ",
                    mobileWorldQuestReward.RecordID,
                    " from Quest ID ",
                    this.m_questID,
                    ". Ignoring for loot quality check."
                }));
            }
            else
            {
                if (record.OverallQualityID > (int)this.m_lootQuality)
                {
                    this.m_lootQuality = (ITEM_QUALITY)record.OverallQualityID;
                }
                if (this.m_showLootIconInsteadOfMain)
                {
                    this.m_main.set_sprite(GeneralHelpers.LoadIconAsset(AssetBundleType.Icons, mobileWorldQuestReward.FileDataID));
                }
            }
        }
        if (this.m_showLootIconInsteadOfMain)
        {
            if (mobileWorldQuest.Money > 0)
            {
                this.m_main.set_sprite(Resources.Load <Sprite>("MiscIcons/INV_Misc_Coin_01"));
            }
            if (mobileWorldQuest.Experience > 0)
            {
                this.m_main.set_sprite(GeneralHelpers.GetLocalizedFollowerXpIcon());
            }
            MobileWorldQuestReward[] currency = mobileWorldQuest.Currency;
            for (int j = 0; j < currency.Length; j++)
            {
                MobileWorldQuestReward mobileWorldQuestReward2 = currency[j];
                CurrencyTypesRec       record2 = StaticDB.currencyTypesDB.GetRecord(mobileWorldQuestReward2.RecordID);
                if (record2 != null)
                {
                    this.m_main.set_sprite(GeneralHelpers.LoadCurrencyIcon(mobileWorldQuestReward2.RecordID));
                }
            }
        }
        this.m_endTime = (long)mobileWorldQuest.EndTime;
        int             areaID  = 0;
        WorldMapAreaRec record3 = StaticDB.worldMapAreaDB.GetRecord(mobileWorldQuest.WorldMapAreaID);

        if (record3 != null)
        {
            areaID = record3.AreaID;
        }
        this.m_areaID = areaID;
        QuestInfoRec record4 = StaticDB.questInfoDB.GetRecord(mobileWorldQuest.QuestInfoID);

        if (record4 == null)
        {
            return;
        }
        bool active = (record4.Modifiers & 2) != 0;

        this.m_dragonFrame.get_gameObject().SetActive(active);
        bool flag = (record4.Modifiers & 1) != 0;

        if (flag && record4.Type != 3)
        {
            this.m_background.set_sprite(Resources.Load <Sprite>("NewWorldQuest/Mobile-RareQuest"));
        }
        bool flag2 = (record4.Modifiers & 4) != 0;

        if (flag2 && record4.Type != 3)
        {
            this.m_background.set_sprite(Resources.Load <Sprite>("NewWorldQuest/Mobile-EpicQuest"));
        }
        int    uITextureAtlasMemberID;
        string text;

        switch (record4.Type)
        {
        case 1:
        {
            int profession = record4.Profession;
            switch (profession)
            {
            case 182:
                uITextureAtlasMemberID = TextureAtlas.GetUITextureAtlasMemberID("worldquest-icon-herbalism");
                text = "Mobile-Herbalism";
                goto IL_50E;

            case 183:
            case 184:
IL_2F9:
                if (profession == 164)
                {
                    uITextureAtlasMemberID = TextureAtlas.GetUITextureAtlasMemberID("worldquest-icon-blacksmithing");
                    text = "Mobile-Blacksmithing";
                    goto IL_50E;
                }
                if (profession == 165)
                {
                    uITextureAtlasMemberID = TextureAtlas.GetUITextureAtlasMemberID("worldquest-icon-leatherworking");
                    text = "Mobile-Leatherworking";
                    goto IL_50E;
                }
                if (profession == 129)
                {
                    uITextureAtlasMemberID = TextureAtlas.GetUITextureAtlasMemberID("worldquest-icon-firstaid");
                    text = "Mobile-FirstAid";
                    goto IL_50E;
                }
                if (profession == 171)
                {
                    uITextureAtlasMemberID = TextureAtlas.GetUITextureAtlasMemberID("worldquest-icon-alchemy");
                    text = "Mobile-Alchemy";
                    goto IL_50E;
                }
                if (profession == 197)
                {
                    uITextureAtlasMemberID = TextureAtlas.GetUITextureAtlasMemberID("worldquest-icon-tailoring");
                    text = "Mobile-Tailoring";
                    goto IL_50E;
                }
                if (profession == 202)
                {
                    uITextureAtlasMemberID = TextureAtlas.GetUITextureAtlasMemberID("worldquest-icon-engineering");
                    text = "Mobile-Engineering";
                    goto IL_50E;
                }
                if (profession == 333)
                {
                    uITextureAtlasMemberID = TextureAtlas.GetUITextureAtlasMemberID("worldquest-icon-enchanting");
                    text = "Mobile-Enchanting";
                    goto IL_50E;
                }
                if (profession == 356)
                {
                    uITextureAtlasMemberID = TextureAtlas.GetUITextureAtlasMemberID("worldquest-icon-fishing");
                    text = "Mobile-Fishing";
                    goto IL_50E;
                }
                if (profession == 393)
                {
                    uITextureAtlasMemberID = TextureAtlas.GetUITextureAtlasMemberID("worldquest-icon-skinning");
                    text = "Mobile-Skinning";
                    goto IL_50E;
                }
                if (profession == 755)
                {
                    uITextureAtlasMemberID = TextureAtlas.GetUITextureAtlasMemberID("worldquest-icon-jewelcrafting");
                    text = "Mobile-Jewelcrafting";
                    goto IL_50E;
                }
                if (profession == 773)
                {
                    uITextureAtlasMemberID = TextureAtlas.GetUITextureAtlasMemberID("worldquest-icon-inscription");
                    text = "Mobile-Inscription";
                    goto IL_50E;
                }
                if (profession != 794)
                {
                    uITextureAtlasMemberID = TextureAtlas.GetUITextureAtlasMemberID("worldquest-questmarker-questbang");
                    text = "Mobile-QuestExclamationIcon";
                    goto IL_50E;
                }
                uITextureAtlasMemberID = TextureAtlas.GetUITextureAtlasMemberID("worldquest-icon-archaeology");
                text = "Mobile-Archaeology";
                goto IL_50E;

            case 185:
                uITextureAtlasMemberID = TextureAtlas.GetUITextureAtlasMemberID("worldquest-icon-cooking");
                text = "Mobile-Cooking";
                goto IL_50E;

            case 186:
                uITextureAtlasMemberID = TextureAtlas.GetUITextureAtlasMemberID("worldquest-icon-mining");
                text = "Mobile-Mining";
                goto IL_50E;
            }
            goto IL_2F9;
IL_50E:
            goto IL_55B;
        }

        case 3:
            uITextureAtlasMemberID = TextureAtlas.GetUITextureAtlasMemberID("worldquest-icon-pvp-ffa");
            text = "Mobile-PVP";
            goto IL_55B;

        case 4:
            uITextureAtlasMemberID = TextureAtlas.GetUITextureAtlasMemberID("worldquest-icon-petbattle");
            text = "Mobile-Pets";
            goto IL_55B;
        }
        uITextureAtlasMemberID = TextureAtlas.GetUITextureAtlasMemberID("worldquest-questmarker-questbang");
        text = "Mobile-QuestExclamationIcon";
IL_55B:
        if (!this.m_showLootIconInsteadOfMain)
        {
            if (text != null)
            {
                this.m_main.set_sprite(Resources.Load <Sprite>("NewWorldQuest/" + text));
            }
            else if (uITextureAtlasMemberID > 0)
            {
                this.m_main.set_sprite(TextureAtlas.instance.GetAtlasSprite(uITextureAtlasMemberID));
                this.m_main.SetNativeSize();
            }
        }
    }
        public void ShowMissionResults(int garrMissionID, int missionResultType, bool awardOvermax)
        {
            GarrMissionRec record = StaticDB.garrMissionDB.GetRecord(garrMissionID);

            if (record == null)
            {
                return;
            }
            this.m_missionResultsDisplayCanvasGroupAutoFadeOut.Reset();
            this.m_currentResultType = (MissionResultType)missionResultType;
            this.m_followerExperienceDisplayArea.SetActive(false);
            this.m_attemptedAutoComplete = false;
            this.m_garrMissionID         = garrMissionID;
            this.m_darknessBG.SetActive(true);
            this.m_popupView.SetActive(true);
            this.m_bonusLootDisplay.SetActive(false);
            if (this.missionFollowerSlotGroup != null)
            {
                MissionFollowerSlot[] componentsInChildren = this.missionFollowerSlotGroup.GetComponentsInChildren <MissionFollowerSlot>(true);
                for (int i = 0; i < componentsInChildren.Length; i++)
                {
                    if (componentsInChildren[i] != null && componentsInChildren[i] != this.missionFollowerSlotGroup.transform)
                    {
                        componentsInChildren[i].gameObject.transform.SetParent(null);
                        Object.Destroy(componentsInChildren[i].gameObject);
                    }
                }
            }
            MissionEncounter[] componentsInChildren2 = this.enemyPortraitsGroup.GetComponentsInChildren <MissionEncounter>(true);
            for (int j = 0; j < componentsInChildren2.Length; j++)
            {
                if (componentsInChildren2[j] != null && componentsInChildren2[j] != this.enemyPortraitsGroup.transform)
                {
                    componentsInChildren2[j].gameObject.transform.SetParent(null);
                    Object.Destroy(componentsInChildren2[j].gameObject);
                }
            }
            if (this.treasureChestHorde != null && this.treasureChestAlliance != null)
            {
                if (GarrisonStatus.Faction() == PVP_FACTION.HORDE)
                {
                    this.treasureChestHorde.SetActive(true);
                    this.treasureChestAlliance.SetActive(false);
                }
                else
                {
                    this.treasureChestHorde.SetActive(false);
                    this.treasureChestAlliance.SetActive(true);
                }
            }
            WrapperGarrisonMission wrapperGarrisonMission = PersistentMissionData.missionDictionary[garrMissionID];

            this.m_missionStartedTime       = wrapperGarrisonMission.StartTime;
            this.m_missionDurationInSeconds = wrapperGarrisonMission.MissionDuration;
            for (int k = 0; k < wrapperGarrisonMission.Encounters.Count; k++)
            {
                GameObject gameObject = Object.Instantiate <GameObject>(this.missionEncounterPrefab);
                gameObject.transform.SetParent(this.enemyPortraitsGroup.transform, false);
                MissionEncounter component = gameObject.GetComponent <MissionEncounter>();
                int garrMechanicID         = (wrapperGarrisonMission.Encounters[k].MechanicIDs.Count <= 0) ? 0 : wrapperGarrisonMission.Encounters[k].MechanicIDs[0];
                component.SetEncounter(wrapperGarrisonMission.Encounters[k].EncounterID, garrMechanicID);
            }
            this.missionNameText.text     = record.Name;
            this.missionLocationText.text = record.Location;
            GarrMissionTypeRec record2 = StaticDB.garrMissionTypeDB.GetRecord((int)record.GarrMissionTypeID);

            this.missionTypeImage.overrideSprite = TextureAtlas.instance.GetAtlasSprite((int)record2.UiTextureAtlasMemberID);
            if (this.missionFollowerSlotGroup != null)
            {
                for (int l = 0; l < (int)record.MaxFollowers; l++)
                {
                    GameObject gameObject2 = Object.Instantiate <GameObject>(this.missionFollowerSlotPrefab);
                    gameObject2.transform.SetParent(this.missionFollowerSlotGroup.transform, false);
                    MissionFollowerSlot component2 = gameObject2.GetComponent <MissionFollowerSlot>();
                    component2.m_enemyPortraitsGroup = this.enemyPortraitsGroup;
                }
            }
            if (record.UiTextureKitID > 0)
            {
                UiTextureKitRec record3 = StaticDB.uiTextureKitDB.GetRecord((int)record.UiTextureKitID);
                this.m_scrollingEnvironment_Back.enabled = false;
                this.m_scrollingEnvironment_Mid.enabled  = false;
                this.m_scrollingEnvironment_Fore.enabled = false;
                int uitextureAtlasMemberID = TextureAtlas.GetUITextureAtlasMemberID("_" + record3.KitPrefix + "-Back");
                if (uitextureAtlasMemberID > 0)
                {
                    Sprite atlasSprite = TextureAtlas.instance.GetAtlasSprite(uitextureAtlasMemberID);
                    if (atlasSprite != null)
                    {
                        this.m_scrollingEnvironment_Back.enabled = true;
                        this.m_scrollingEnvironment_Back.sprite  = atlasSprite;
                    }
                    else
                    {
                        Debug.Log("Missing expected Back sprite from UiTextureKitID: [" + record.UiTextureKitID.ToString() + "]");
                    }
                }
                int uitextureAtlasMemberID2 = TextureAtlas.GetUITextureAtlasMemberID("_" + record3.KitPrefix + "-Mid");
                if (uitextureAtlasMemberID2 > 0)
                {
                    Sprite atlasSprite2 = TextureAtlas.instance.GetAtlasSprite(uitextureAtlasMemberID2);
                    if (atlasSprite2 != null)
                    {
                        this.m_scrollingEnvironment_Mid.enabled = true;
                        this.m_scrollingEnvironment_Mid.sprite  = atlasSprite2;
                    }
                    else
                    {
                        Debug.Log("Missing expected Mid sprite from UiTextureKitID: [" + record.UiTextureKitID.ToString() + "]");
                    }
                }
                int uitextureAtlasMemberID3 = TextureAtlas.GetUITextureAtlasMemberID("_" + record3.KitPrefix + "-Fore");
                if (uitextureAtlasMemberID3 > 0)
                {
                    Sprite atlasSprite3 = TextureAtlas.instance.GetAtlasSprite(uitextureAtlasMemberID3);
                    if (atlasSprite3 != null)
                    {
                        this.m_scrollingEnvironment_Fore.enabled = true;
                        this.m_scrollingEnvironment_Fore.sprite  = atlasSprite3;
                    }
                    else
                    {
                        Debug.Log("Missing expected Fore sprite from UiTextureKitID: [" + record.UiTextureKitID.ToString() + "]");
                    }
                }
            }
            else
            {
                Debug.LogWarning(string.Concat(new object[]
                {
                    "DATA ERROR: Mission UITextureKit Not Set for mission ID:",
                    record.ID,
                    " - ",
                    record.Name
                }));
                Debug.LogWarning("This means the scrolling background images will show the wrong location");
            }
            if (this.m_lootGroupObj == null || this.m_missionRewardDisplayPrefab == null)
            {
                return;
            }
            MissionRewardDisplay[] componentsInChildren3 = this.m_lootGroupObj.GetComponentsInChildren <MissionRewardDisplay>(true);
            for (int m = 0; m < componentsInChildren3.Length; m++)
            {
                if (componentsInChildren3[m] != null)
                {
                    Object.Destroy(componentsInChildren3[m].gameObject);
                }
            }
            if (missionResultType == 1)
            {
                PersistentFollowerData.ClearPreMissionFollowerData();
            }
            List <WrapperGarrisonFollower> list = new List <WrapperGarrisonFollower>();

            MissionFollowerSlot[] componentsInChildren4 = this.missionFollowerSlotGroup.GetComponentsInChildren <MissionFollowerSlot>(true);
            int num = 0;

            foreach (WrapperGarrisonFollower wrapperGarrisonFollower in PersistentFollowerData.followerDictionary.Values)
            {
                if (wrapperGarrisonFollower.CurrentMissionID == garrMissionID)
                {
                    componentsInChildren4[num++].SetFollower(wrapperGarrisonFollower.GarrFollowerID);
                    if (missionResultType == 1)
                    {
                        PersistentFollowerData.CachePreMissionFollower(wrapperGarrisonFollower);
                    }
                    list.Add(wrapperGarrisonFollower);
                }
            }
            this.UpdateMissionStatus(garrMissionID);
            foreach (MissionFollowerSlot missionFollowerSlot in componentsInChildren4)
            {
                missionFollowerSlot.InitHeartPanel();
            }
            MissionRewardDisplay.InitMissionRewards(this.m_missionRewardDisplayPrefab.gameObject, this.m_lootGroupObj.transform, wrapperGarrisonMission.Rewards);
            if (record.OvermaxRewardPackID > 0 && wrapperGarrisonMission.OvermaxRewards.Count > 0)
            {
                this.m_bonusLootDisplay.SetActive(true);
                WrapperGarrisonMissionReward wrapperGarrisonMissionReward = wrapperGarrisonMission.OvermaxRewards[0];
                if (wrapperGarrisonMissionReward.ItemID > 0)
                {
                    this.m_bonusMissionRewardDisplay.InitReward(MissionRewardDisplay.RewardType.item, wrapperGarrisonMissionReward.ItemID, (int)wrapperGarrisonMissionReward.ItemQuantity, 0, wrapperGarrisonMissionReward.ItemFileDataID);
                }
                else if (wrapperGarrisonMissionReward.FollowerXP > 0u)
                {
                    this.m_bonusMissionRewardDisplay.InitReward(MissionRewardDisplay.RewardType.followerXP, 0, (int)wrapperGarrisonMissionReward.FollowerXP, 0, 0);
                }
                else if (wrapperGarrisonMissionReward.CurrencyQuantity > 0u)
                {
                    if (wrapperGarrisonMissionReward.CurrencyType == 0)
                    {
                        this.m_bonusMissionRewardDisplay.InitReward(MissionRewardDisplay.RewardType.gold, 0, (int)(wrapperGarrisonMissionReward.CurrencyQuantity / 10000u), 0, 0);
                    }
                    else
                    {
                        CurrencyTypesRec record4 = StaticDB.currencyTypesDB.GetRecord(wrapperGarrisonMissionReward.CurrencyType);
                        int rewardQuantity       = (int)((ulong)wrapperGarrisonMissionReward.CurrencyQuantity / (ulong)(((record4.Flags & 8u) == 0u) ? 1L : 100L));
                        this.m_bonusMissionRewardDisplay.InitReward(MissionRewardDisplay.RewardType.currency, wrapperGarrisonMissionReward.CurrencyType, rewardQuantity, 0, 0);
                    }
                }
            }
            this.m_timeUntilFadeOutMissionDetailsDisplay   = this.m_missionDetailsFadeOutDelay;
            this.m_timeUntilShowFollowerExperienceDisplays = this.m_experienceDisplayInitialEntranceDelay;
            if (missionResultType == 2)
            {
                this.InitFollowerExperienceDisplays();
                this.m_missionInProgressMessage.SetActive(false);
                this.m_missionSuccessMessage.SetActive(true);
                this.m_missionFailMessage.SetActive(false);
                if (this.m_fancyEntrance != null)
                {
                    Object.Destroy(this.m_fancyEntrance);
                    iTween.Stop(this.m_missionSuccessMessage);
                    this.m_missionSuccessMessage.transform.localScale = Vector3.one;
                    iTween.Stop(this.m_missionFailMessage);
                    this.m_missionFailMessage.transform.localScale = Vector3.one;
                }
                this.m_missionSuccessMessage.SetActive(false);
                this.m_fancyEntrance = this.m_missionSuccessMessage.AddComponent <FancyEntrance>();
                this.m_fancyEntrance.m_fadeInCanvasGroup         = this.m_missionSuccessMessage.GetComponent <CanvasGroup>();
                this.m_fancyEntrance.m_fadeInTime                = this.m_messageFadeInTime;
                this.m_fancyEntrance.m_punchScale                = this.m_messagePunchScale;
                this.m_fancyEntrance.m_punchScaleAmount          = this.m_messagePunchScaleAmount;
                this.m_fancyEntrance.m_punchScaleDuration        = this.m_messagePunchScaleDuration;
                this.m_fancyEntrance.m_timeToDelayEntrance       = this.m_messageTimeToDelayEntrance;
                this.m_fancyEntrance.m_activateOnEnable          = true;
                this.m_fancyEntrance.m_objectToNotifyOnBegin     = base.gameObject;
                this.m_fancyEntrance.m_notifyOnBeginCallbackName = "OnShowSuccessMessage";
                this.m_missionSuccessMessage.SetActive(true);
                MissionRewardDisplay[] componentsInChildren5 = this.m_lootGroupObj.GetComponentsInChildren <MissionRewardDisplay>(true);
                for (int num2 = 0; num2 < componentsInChildren5.Length; num2++)
                {
                    componentsInChildren5[num2].ShowResultSuccess(this.m_lootEffectInitialDelay + this.m_lootEffectDelay * (float)num2);
                }
                if (this.m_bonusLootChance > 0)
                {
                    iTween.ValueTo(base.gameObject, iTween.Hash(new object[]
                    {
                        "name",
                        "ShakeIt",
                        "from",
                        0.3f,
                        "to",
                        1f,
                        "delay",
                        this.m_bonusLootShakeInitialDelay,
                        "time",
                        this.m_bonusLootShakeDuration,
                        "onupdate",
                        "OnBonusLootShakeUpdate",
                        "oncomplete",
                        "OnBonusLootShakeComplete"
                    }));
                }
                if (awardOvermax)
                {
                    this.m_bonusMissionRewardDisplay.ShowResultSuccess(this.m_lootEffectInitialDelay + this.m_lootEffectDelay * (float)componentsInChildren5.Length);
                }
                else
                {
                    this.m_bonusMissionRewardDisplay.ShowResultFail(this.m_lootEffectInitialDelay + this.m_lootEffectDelay * (float)componentsInChildren5.Length);
                }
            }
            if (missionResultType == 3)
            {
                this.InitFollowerExperienceDisplays();
                this.m_missionInProgressMessage.SetActive(false);
                this.m_missionSuccessMessage.SetActive(false);
                this.m_missionFailMessage.SetActive(true);
                if (this.m_fancyEntrance != null)
                {
                    Object.Destroy(this.m_fancyEntrance);
                    iTween.Stop(this.m_missionSuccessMessage);
                    this.m_missionSuccessMessage.transform.localScale = Vector3.one;
                    iTween.Stop(this.m_missionFailMessage);
                    this.m_missionFailMessage.transform.localScale = Vector3.one;
                }
                this.m_missionFailMessage.SetActive(false);
                this.m_fancyEntrance = this.m_missionFailMessage.AddComponent <FancyEntrance>();
                this.m_fancyEntrance.m_fadeInCanvasGroup         = this.m_missionFailMessage.GetComponent <CanvasGroup>();
                this.m_fancyEntrance.m_fadeInTime                = this.m_messageFadeInTime;
                this.m_fancyEntrance.m_punchScale                = this.m_messagePunchScale;
                this.m_fancyEntrance.m_punchScaleAmount          = this.m_messagePunchScaleAmount;
                this.m_fancyEntrance.m_punchScaleDuration        = this.m_messagePunchScaleDuration;
                this.m_fancyEntrance.m_timeToDelayEntrance       = this.m_messageTimeToDelayEntrance;
                this.m_fancyEntrance.m_activateOnEnable          = true;
                this.m_fancyEntrance.m_objectToNotifyOnBegin     = base.gameObject;
                this.m_fancyEntrance.m_notifyOnBeginCallbackName = "OnShowFailMessage";
                this.m_missionFailMessage.SetActive(true);
                MissionRewardDisplay[] componentsInChildren6 = this.m_lootGroupObj.GetComponentsInChildren <MissionRewardDisplay>(true);
                for (int num3 = 0; num3 < componentsInChildren6.Length; num3++)
                {
                    componentsInChildren6[num3].ShowResultFail(this.m_lootEffectInitialDelay);
                }
                this.m_bonusMissionRewardDisplay.ShowResultFail(this.m_lootEffectInitialDelay);
            }
            if (missionResultType == 0)
            {
                this.m_missionInProgressMessage.SetActive(true);
                this.m_missionSuccessMessage.SetActive(false);
                this.m_missionFailMessage.SetActive(false);
                this.m_bonusMissionRewardDisplay.ClearResults();
            }
            if (missionResultType == 1)
            {
                this.m_missionInProgressMessage.SetActive(false);
                this.m_missionSuccessMessage.SetActive(false);
                this.m_missionFailMessage.SetActive(false);
                FollowerExperienceDisplay[] componentsInChildren7 = this.m_followerExperienceDisplayArea.GetComponentsInChildren <FollowerExperienceDisplay>(true);
                foreach (FollowerExperienceDisplay followerExperienceDisplay in componentsInChildren7)
                {
                    Object.Destroy(followerExperienceDisplay.gameObject);
                }
            }
            if (this.m_partyBuffGroup == null)
            {
                return;
            }
            AbilityDisplay[] componentsInChildren8 = this.m_partyBuffGroup.GetComponentsInChildren <AbilityDisplay>(true);
            foreach (AbilityDisplay abilityDisplay in componentsInChildren8)
            {
                Object.Destroy(abilityDisplay.gameObject);
            }
            int adjustedMissionDuration = GeneralHelpers.GetAdjustedMissionDuration(record, list, this.enemyPortraitsGroup);
            int num6 = 0;

            foreach (WrapperGarrisonFollower wrapperGarrisonFollower2 in PersistentFollowerData.followerDictionary.Values)
            {
                if (wrapperGarrisonFollower2.CurrentMissionID == garrMissionID)
                {
                    int[] buffsForCurrentMission = GeneralHelpers.GetBuffsForCurrentMission(wrapperGarrisonFollower2.GarrFollowerID, garrMissionID, this.missionFollowerSlotGroup, adjustedMissionDuration);
                    num6 += buffsForCurrentMission.Length;
                    foreach (int garrAbilityID in buffsForCurrentMission)
                    {
                        GameObject gameObject3 = Object.Instantiate <GameObject>(this.m_mechanicEffectDisplayPrefab);
                        gameObject3.transform.SetParent(this.m_partyBuffGroup.transform, false);
                        AbilityDisplay component3 = gameObject3.GetComponent <AbilityDisplay>();
                        component3.SetAbility(garrAbilityID, false, false, null);
                    }
                }
            }
            if (num6 > 8)
            {
                this.m_partyBuffsText.text = string.Empty;
            }
            else
            {
                this.m_partyBuffsText.text = StaticDB.GetString("PARTY_BUFFS", null);
            }
            HorizontalLayoutGroup component4 = this.m_partyBuffGroup.GetComponent <HorizontalLayoutGroup>();

            if (component4 != null)
            {
                if (num6 > 10 && Main.instance.IsNarrowScreen())
                {
                    component4.spacing = 3f;
                }
                else
                {
                    component4.spacing = 6f;
                }
            }
            this.m_partyBuffGroup.SetActive(num6 > 0);
        }
        public void SetBounty(WrapperWorldQuestBounty bounty)
        {
            this.m_bounty = bounty;
            Sprite sprite = GeneralHelpers.LoadIconAsset(AssetBundleType.Icons, bounty.IconFileDataID);

            if (sprite != null)
            {
                this.m_bountyIconInvalidFileDataID.gameObject.SetActive(false);
                this.m_bountyIcon.sprite = sprite;
            }
            else
            {
                this.m_bountyIconInvalidFileDataID.gameObject.SetActive(true);
                this.m_bountyIconInvalidFileDataID.text = string.Empty + bounty.IconFileDataID;
            }
            QuestV2Rec record = StaticDB.questV2DB.GetRecord(bounty.QuestID);

            if (record != null)
            {
                this.m_bountyName.text        = record.QuestTitle;
                this.m_bountyDescription.text = string.Concat(new object[]
                {
                    string.Empty,
                    bounty.NumCompleted,
                    "/",
                    bounty.NumNeeded,
                    " ",
                    record.LogDescription
                });
            }
            else
            {
                this.m_bountyName.text        = "Unknown Quest ID " + bounty.QuestID;
                this.m_bountyDescription.text = "Unknown Quest ID " + bounty.QuestID;
            }
            this.m_timeLeft.text = StaticDB.GetString("TIME_LEFT", "Time Left: PH");
            RectTransform[] componentsInChildren = this.m_bountyQuestIconArea.GetComponentsInChildren <RectTransform>(true);
            foreach (RectTransform rectTransform in componentsInChildren)
            {
                if (rectTransform != null && rectTransform.gameObject != this.m_bountyQuestIconArea.gameObject)
                {
                    rectTransform.SetParent(null);
                    Object.Destroy(rectTransform.gameObject);
                }
            }
            for (int j = 0; j < bounty.NumCompleted; j++)
            {
                GameObject gameObject = Object.Instantiate <GameObject>(this.m_bountyQuestCompleteIconPrefab);
                gameObject.transform.SetParent(this.m_bountyQuestIconArea.transform, false);
            }
            for (int k = 0; k < bounty.NumNeeded - bounty.NumCompleted; k++)
            {
                GameObject gameObject2 = Object.Instantiate <GameObject>(this.m_bountyQuestAvailableIconPrefab);
                gameObject2.transform.SetParent(this.m_bountyQuestIconArea.transform, false);
            }
            this.UpdateTimeRemaining();
            if (bounty.Items.Count > 0 && StaticDB.itemDB.GetRecord(bounty.Items[0].RecordID) != null)
            {
                WrapperWorldQuestReward wrapperWorldQuestReward = bounty.Items[0];
                Sprite rewardSprite = GeneralHelpers.LoadIconAsset(AssetBundleType.Icons, wrapperWorldQuestReward.FileDataID);
                this.m_rewardInfo.SetReward(MissionRewardDisplay.RewardType.item, wrapperWorldQuestReward.RecordID, wrapperWorldQuestReward.Quantity, rewardSprite, wrapperWorldQuestReward.ItemContext, wrapperWorldQuestReward.ItemInstance);
            }
            else if (bounty.Money > 1000000)
            {
                Sprite iconSprite = Resources.Load <Sprite>("MiscIcons/INV_Misc_Coin_01");
                this.m_rewardInfo.SetGold(bounty.Money / 10000, iconSprite);
            }
            else if (bounty.Currencies.Count > 1)
            {
                int num = 0;
                foreach (WrapperWorldQuestReward wrapperWorldQuestReward2 in bounty.Currencies)
                {
                    bool                 flag    = wrapperWorldQuestReward2.RecordID == 1560;
                    CurrencyTypesRec     record2 = StaticDB.currencyTypesDB.GetRecord(wrapperWorldQuestReward2.RecordID);
                    CurrencyContainerRec currencyContainerRec = CurrencyContainerDB.CheckAndGetValidCurrencyContainer(wrapperWorldQuestReward2.RecordID, wrapperWorldQuestReward2.Quantity);
                    if (currencyContainerRec != null)
                    {
                        Sprite iconSprite2 = CurrencyContainerDB.LoadCurrencyContainerIcon(wrapperWorldQuestReward2.RecordID, wrapperWorldQuestReward2.Quantity);
                        int    num2        = wrapperWorldQuestReward2.Quantity / (((record2.Flags & 8u) == 0u) ? 1 : 100);
                        if (num2 > num)
                        {
                            num = num2;
                            this.m_rewardInfo.SetCurrency(wrapperWorldQuestReward2.RecordID, num, iconSprite2);
                        }
                    }
                    else
                    {
                        Sprite iconSprite2 = GeneralHelpers.LoadCurrencyIcon(wrapperWorldQuestReward2.RecordID);
                        int    num3        = wrapperWorldQuestReward2.Quantity / (((record2.Flags & 8u) == 0u) ? 1 : 100);
                        if (num3 > num || flag)
                        {
                            num = num3;
                            this.m_rewardInfo.SetCurrency(wrapperWorldQuestReward2.RecordID, num, iconSprite2);
                            if (flag)
                            {
                                break;
                            }
                        }
                    }
                }
            }
        }
示例#18
0
        private void InitRewardInfoDisplay(WrapperWorldQuest worldQuest)
        {
            Sprite sprite;
            int    quantity;
            int    num = 0;

            this.m_rewardInfo[0].gameObject.SetActive(true);
            this.m_rewardInfo[1].gameObject.SetActive(false);
            this.m_rewardInfo[2].gameObject.SetActive(false);
            if (worldQuest.Items != null && worldQuest.Items.Count <WrapperWorldQuestReward>() > 0)
            {
                foreach (WrapperWorldQuestReward item in worldQuest.Items)
                {
                    Sprite sprite1 = GeneralHelpers.LoadIconAsset(AssetBundleType.Icons, item.FileDataID);
                    this.m_rewardInfo[num].SetReward(MissionRewardDisplay.RewardType.item, item.RecordID, item.Quantity, sprite1, item.ItemContext);
                    int num1 = num;
                    num = num1 + 1;
                    this.EnableAdditionalRewardDisplays(num1);
                    if (num < 3)
                    {
                        continue;
                    }
                    return;
                }
            }
            else if (worldQuest.Currencies.Count <WrapperWorldQuestReward>() > 0)
            {
                foreach (WrapperWorldQuestReward currency in worldQuest.Currencies)
                {
                    CurrencyTypesRec record = StaticDB.currencyTypesDB.GetRecord(currency.RecordID);
                    if (CurrencyContainerDB.CheckAndGetValidCurrencyContainer(currency.RecordID, currency.Quantity) == null)
                    {
                        sprite   = GeneralHelpers.LoadCurrencyIcon(currency.RecordID);
                        quantity = currency.Quantity / ((record.Flags & 8) == 0 ? 1 : 100);
                        this.m_rewardInfo[num].SetCurrency(currency.RecordID, quantity, sprite);
                        int num2 = num;
                        num = num2 + 1;
                        this.EnableAdditionalRewardDisplays(num2);
                        if (num < 3)
                        {
                            continue;
                        }
                        return;
                    }
                    else
                    {
                        sprite   = CurrencyContainerDB.LoadCurrencyContainerIcon(currency.RecordID, currency.Quantity);
                        quantity = currency.Quantity / ((record.Flags & 8) == 0 ? 1 : 100);
                        this.m_rewardInfo[num].SetCurrency(currency.RecordID, quantity, sprite);
                        int num3 = num;
                        num = num3 + 1;
                        this.EnableAdditionalRewardDisplays(num3);
                        if (num >= 3)
                        {
                            return;
                        }
                    }
                }
            }
            else if (worldQuest.Money > 0)
            {
                Sprite sprite2 = Resources.Load <Sprite>("MiscIcons/INV_Misc_Coin_01");
                this.m_rewardInfo[num].SetGold(worldQuest.Money / 10000, sprite2);
                int num4 = num;
                num = num4 + 1;
                this.EnableAdditionalRewardDisplays(num4);
                if (num >= 3)
                {
                    return;
                }
            }
            else if (worldQuest.Experience > 0)
            {
                Sprite localizedFollowerXpIcon = GeneralHelpers.GetLocalizedFollowerXpIcon();
                this.m_rewardInfo[num].SetFollowerXP(worldQuest.Experience, localizedFollowerXpIcon);
                int num5 = num;
                num = num5 + 1;
                this.EnableAdditionalRewardDisplays(num5);
                if (num >= 3)
                {
                    return;
                }
            }
        }
    public void SetQuestID(int questID)
    {
        this.m_questID       = questID;
        base.gameObject.name = "WorldQuest " + this.m_questID;
        MobileWorldQuest mobileWorldQuest = (MobileWorldQuest)WorldQuestData.worldQuestDictionary[this.m_questID];

        if (mobileWorldQuest == null || mobileWorldQuest.Item == null)
        {
            return;
        }
        this.m_quantityArea.gameObject.SetActive(false);
        bool flag = false;

        foreach (MobileWorldQuestReward mobileWorldQuestReward in mobileWorldQuest.Item)
        {
            ItemRec record = StaticDB.itemDB.GetRecord(mobileWorldQuestReward.RecordID);
            if (record == null)
            {
                Debug.LogWarning(string.Concat(new object[]
                {
                    "Invalid Item ID ",
                    mobileWorldQuestReward.RecordID,
                    " from Quest ID ",
                    this.m_questID,
                    ". Ignoring for loot quality check."
                }));
            }
            else
            {
                flag = true;
                if (record.OverallQualityID > (int)this.m_lootQuality)
                {
                    this.m_lootQuality = (ITEM_QUALITY)record.OverallQualityID;
                }
                if (this.m_showLootIconInsteadOfMain)
                {
                    bool isArtifactXP = false;
                    long quantity     = 0L;
                    StaticDB.itemEffectDB.EnumRecordsByParentID(mobileWorldQuestReward.RecordID, delegate(ItemEffectRec itemEffectRec)
                    {
                        StaticDB.spellEffectDB.EnumRecordsByParentID(itemEffectRec.SpellID, delegate(SpellEffectRec spellEffectRec)
                        {
                            if (spellEffectRec.Effect == 240)
                            {
                                isArtifactXP = true;
                                quantity     = GeneralHelpers.ApplyArtifactXPMultiplier((long)spellEffectRec.EffectBasePoints, (double)GarrisonStatus.ArtifactXpMultiplier);
                                return(false);
                            }
                            return(true);
                        });
                        return(!isArtifactXP);
                    });
                    if (isArtifactXP)
                    {
                        this.m_main.sprite = Resources.Load <Sprite>("WorldMap/INV_Artifact_XP02");
                        if (AdventureMapPanel.instance.IsFilterEnabled(MapFilterType.ArtifactPower))
                        {
                            this.m_quantityArea.gameObject.SetActive(true);
                            this.m_quantity.text = quantity.ToString();
                        }
                    }
                    else
                    {
                        this.m_main.sprite = GeneralHelpers.LoadIconAsset(AssetBundleType.Icons, mobileWorldQuestReward.FileDataID);
                        this.m_itemID      = mobileWorldQuestReward.RecordID;
                        this.m_itemContext = mobileWorldQuestReward.ItemContext;
                        this.ShowILVL();
                    }
                }
            }
        }
        if (!flag && this.m_showLootIconInsteadOfMain)
        {
            if (mobileWorldQuest.Currency.GetLength(0) > 0)
            {
                foreach (MobileWorldQuestReward mobileWorldQuestReward2 in mobileWorldQuest.Currency)
                {
                    CurrencyTypesRec record2 = StaticDB.currencyTypesDB.GetRecord(mobileWorldQuestReward2.RecordID);
                    if (record2 != null)
                    {
                        this.m_main.sprite = GeneralHelpers.LoadCurrencyIcon(mobileWorldQuestReward2.RecordID);
                    }
                    if (AdventureMapPanel.instance.IsFilterEnabled(MapFilterType.OrderResources))
                    {
                        this.m_quantityArea.gameObject.SetActive(true);
                        this.m_quantity.text = mobileWorldQuestReward2.Quantity.ToString();
                    }
                }
            }
            else if (mobileWorldQuest.Money > 0)
            {
                this.m_main.sprite = Resources.Load <Sprite>("MiscIcons/INV_Misc_Coin_01");
                if (AdventureMapPanel.instance.IsFilterEnabled(MapFilterType.Gold))
                {
                    this.m_quantityArea.gameObject.SetActive(true);
                    this.m_quantity.text = string.Empty + mobileWorldQuest.Money / 100 / 100;
                }
            }
            else if (mobileWorldQuest.Experience > 0)
            {
                this.m_main.sprite = GeneralHelpers.GetLocalizedFollowerXpIcon();
            }
        }
        this.m_endTime = (long)mobileWorldQuest.EndTime;
        int             areaID  = 0;
        WorldMapAreaRec record3 = StaticDB.worldMapAreaDB.GetRecord(mobileWorldQuest.WorldMapAreaID);

        if (record3 != null)
        {
            areaID = record3.AreaID;
        }
        this.m_areaID = areaID;
        QuestInfoRec record4 = StaticDB.questInfoDB.GetRecord(mobileWorldQuest.QuestInfoID);

        if (record4 == null)
        {
            return;
        }
        bool active = (record4.Modifiers & 2) != 0;

        this.m_dragonFrame.gameObject.SetActive(active);
        bool flag2 = record4.Type == 7;

        this.m_normalGlow.gameObject.SetActive(!flag2);
        this.m_legionAssaultGlow.gameObject.SetActive(flag2);
        bool flag3 = (record4.Modifiers & 1) != 0;

        if (flag3 && record4.Type != 3)
        {
            this.m_background.sprite = Resources.Load <Sprite>("NewWorldQuest/Mobile-RareQuest");
        }
        bool flag4 = (record4.Modifiers & 4) != 0;

        if (flag4 && record4.Type != 3)
        {
            this.m_background.sprite = Resources.Load <Sprite>("NewWorldQuest/Mobile-EpicQuest");
        }
        int    uitextureAtlasMemberID;
        string text;

        switch (record4.Type)
        {
        case 1:
        {
            int profession = record4.Profession;
            switch (profession)
            {
            case 182:
                uitextureAtlasMemberID = TextureAtlas.GetUITextureAtlasMemberID("worldquest-icon-herbalism");
                text = "Mobile-Herbalism";
                break;

            default:
                if (profession != 164)
                {
                    if (profession != 165)
                    {
                        if (profession != 129)
                        {
                            if (profession != 171)
                            {
                                if (profession != 197)
                                {
                                    if (profession != 202)
                                    {
                                        if (profession != 333)
                                        {
                                            if (profession != 356)
                                            {
                                                if (profession != 393)
                                                {
                                                    if (profession != 755)
                                                    {
                                                        if (profession != 773)
                                                        {
                                                            if (profession != 794)
                                                            {
                                                                uitextureAtlasMemberID = TextureAtlas.GetUITextureAtlasMemberID("worldquest-questmarker-questbang");
                                                                text = "Mobile-QuestExclamationIcon";
                                                            }
                                                            else
                                                            {
                                                                uitextureAtlasMemberID = TextureAtlas.GetUITextureAtlasMemberID("worldquest-icon-archaeology");
                                                                text = "Mobile-Archaeology";
                                                            }
                                                        }
                                                        else
                                                        {
                                                            uitextureAtlasMemberID = TextureAtlas.GetUITextureAtlasMemberID("worldquest-icon-inscription");
                                                            text = "Mobile-Inscription";
                                                        }
                                                    }
                                                    else
                                                    {
                                                        uitextureAtlasMemberID = TextureAtlas.GetUITextureAtlasMemberID("worldquest-icon-jewelcrafting");
                                                        text = "Mobile-Jewelcrafting";
                                                    }
                                                }
                                                else
                                                {
                                                    uitextureAtlasMemberID = TextureAtlas.GetUITextureAtlasMemberID("worldquest-icon-skinning");
                                                    text = "Mobile-Skinning";
                                                }
                                            }
                                            else
                                            {
                                                uitextureAtlasMemberID = TextureAtlas.GetUITextureAtlasMemberID("worldquest-icon-fishing");
                                                text = "Mobile-Fishing";
                                            }
                                        }
                                        else
                                        {
                                            uitextureAtlasMemberID = TextureAtlas.GetUITextureAtlasMemberID("worldquest-icon-enchanting");
                                            text = "Mobile-Enchanting";
                                        }
                                    }
                                    else
                                    {
                                        uitextureAtlasMemberID = TextureAtlas.GetUITextureAtlasMemberID("worldquest-icon-engineering");
                                        text = "Mobile-Engineering";
                                    }
                                }
                                else
                                {
                                    uitextureAtlasMemberID = TextureAtlas.GetUITextureAtlasMemberID("worldquest-icon-tailoring");
                                    text = "Mobile-Tailoring";
                                }
                            }
                            else
                            {
                                uitextureAtlasMemberID = TextureAtlas.GetUITextureAtlasMemberID("worldquest-icon-alchemy");
                                text = "Mobile-Alchemy";
                            }
                        }
                        else
                        {
                            uitextureAtlasMemberID = TextureAtlas.GetUITextureAtlasMemberID("worldquest-icon-firstaid");
                            text = "Mobile-FirstAid";
                        }
                    }
                    else
                    {
                        uitextureAtlasMemberID = TextureAtlas.GetUITextureAtlasMemberID("worldquest-icon-leatherworking");
                        text = "Mobile-Leatherworking";
                    }
                }
                else
                {
                    uitextureAtlasMemberID = TextureAtlas.GetUITextureAtlasMemberID("worldquest-icon-blacksmithing");
                    text = "Mobile-Blacksmithing";
                }
                break;

            case 185:
                uitextureAtlasMemberID = TextureAtlas.GetUITextureAtlasMemberID("worldquest-icon-cooking");
                text = "Mobile-Cooking";
                break;

            case 186:
                uitextureAtlasMemberID = TextureAtlas.GetUITextureAtlasMemberID("worldquest-icon-mining");
                text = "Mobile-Mining";
                break;
            }
            goto IL_70A;
        }

        case 3:
            uitextureAtlasMemberID = TextureAtlas.GetUITextureAtlasMemberID("worldquest-icon-pvp-ffa");
            text = "Mobile-PVP";
            goto IL_70A;

        case 4:
            uitextureAtlasMemberID = TextureAtlas.GetUITextureAtlasMemberID("worldquest-icon-petbattle");
            text = "Mobile-Pets";
            goto IL_70A;
        }
        uitextureAtlasMemberID = TextureAtlas.GetUITextureAtlasMemberID("worldquest-questmarker-questbang");
        text = "Mobile-QuestExclamationIcon";
IL_70A:
        if (!this.m_showLootIconInsteadOfMain)
        {
            if (text != null)
            {
                this.m_main.sprite = Resources.Load <Sprite>("NewWorldQuest/" + text);
            }
            else if (uitextureAtlasMemberID > 0)
            {
                this.m_main.sprite = TextureAtlas.instance.GetAtlasSprite(uitextureAtlasMemberID);
                this.m_main.SetNativeSize();
            }
        }
    }
示例#20
0
    public void InitReward(MissionRewardDisplay.RewardType rewardType, int rewardID, int rewardQuantity, int itemContext, int iconFileDataID = 0)
    {
        if (rewardType == MissionRewardDisplay.RewardType.faction)
        {
            return;
        }
        this.ClearResults();
        this.m_rewardType     = rewardType;
        this.m_rewardID       = rewardID;
        this.m_rewardQuantity = rewardQuantity;
        this.m_itemContext    = itemContext;
        if (this.m_iconErrorText != null)
        {
            this.m_iconErrorText.get_gameObject().SetActive(false);
        }
        switch (this.m_rewardType)
        {
        case MissionRewardDisplay.RewardType.item:
        {
            Sprite  sprite = null;
            ItemRec record = StaticDB.itemDB.GetRecord(this.m_rewardID);
            if (iconFileDataID > 0)
            {
                sprite = GeneralHelpers.LoadIconAsset(AssetBundleType.Icons, iconFileDataID);
            }
            else if (record != null)
            {
                sprite = GeneralHelpers.LoadIconAsset(AssetBundleType.Icons, record.IconFileDataID);
            }
            if (sprite != null)
            {
                this.m_rewardIcon.set_sprite(sprite);
            }
            else if (this.m_iconErrorText != null)
            {
                this.m_iconErrorText.get_gameObject().SetActive(true);
                this.m_iconErrorText.set_text(string.Empty + iconFileDataID);
            }
            if (this.m_rewardName != null)
            {
                if (record != null)
                {
                    this.m_rewardName.set_text(record.Display);
                    this.m_rewardName.set_color(GeneralHelpers.GetQualityColor(record.OverallQualityID));
                }
                else
                {
                    this.m_rewardName.set_text("Unknown Item " + this.m_rewardID);
                }
            }
            if (this.m_isExpandedDisplay)
            {
                this.m_rewardQuantityText.set_text((this.m_rewardQuantity <= 1) ? string.Empty : this.m_rewardQuantity.ToString("N0"));
            }
            break;
        }

        case MissionRewardDisplay.RewardType.gold:
            this.m_rewardIcon.set_sprite(Resources.Load <Sprite>("MiscIcons/INV_Misc_Coin_01"));
            if (this.m_isExpandedDisplay)
            {
                this.m_rewardQuantityText.set_text(string.Empty);
                this.m_rewardName.set_text((this.m_rewardQuantity <= 1) ? string.Empty : this.m_rewardQuantity.ToString("N0"));
            }
            break;

        case MissionRewardDisplay.RewardType.followerXP:
            this.m_rewardIcon.set_sprite(GeneralHelpers.GetLocalizedFollowerXpIcon());
            this.m_rewardQuantityText.set_text(string.Empty);
            if (this.m_rewardName != null && this.m_isExpandedDisplay)
            {
                this.m_rewardName.set_text((this.m_rewardQuantity <= 1) ? string.Empty : (this.m_rewardQuantity.ToString("N0") + " " + StaticDB.GetString("XP2", "XP")));
            }
            break;

        case MissionRewardDisplay.RewardType.currency:
        {
            Sprite sprite2 = GeneralHelpers.LoadCurrencyIcon(this.m_rewardID);
            if (sprite2 != null)
            {
                this.m_rewardIcon.set_sprite(sprite2);
            }
            else
            {
                this.m_iconErrorText.get_gameObject().SetActive(true);
                this.m_iconErrorText.set_text("c " + this.m_rewardID);
            }
            if (this.m_isExpandedDisplay)
            {
                CurrencyTypesRec record2 = StaticDB.currencyTypesDB.GetRecord(rewardID);
                if (record2 != null)
                {
                    this.m_rewardName.set_text(record2.Name);
                }
                else
                {
                    this.m_rewardName.set_text(string.Empty);
                }
                this.m_rewardQuantityText.set_text((this.m_rewardQuantity <= 1) ? string.Empty : this.m_rewardQuantity.ToString("N0"));
            }
            break;
        }
        }
        if (!this.m_isExpandedDisplay)
        {
            this.m_rewardQuantityText.set_text((this.m_rewardQuantity <= 1) ? string.Empty : this.m_rewardQuantity.ToString("N0"));
        }
    }
        public void InitReward(MissionRewardDisplay.RewardType rewardType, int rewardID, int rewardQuantity, int itemContext, int iconFileDataID = 0)
        {
            if (rewardType == MissionRewardDisplay.RewardType.faction)
            {
                return;
            }
            this.ClearResults();
            this.m_rewardType     = rewardType;
            this.m_rewardID       = rewardID;
            this.m_rewardQuantity = rewardQuantity;
            this.m_itemContext    = itemContext;
            if (this.m_iconErrorText != null)
            {
                this.m_iconErrorText.gameObject.SetActive(false);
            }
            switch (this.m_rewardType)
            {
            case MissionRewardDisplay.RewardType.item:
            {
                Sprite  sprite = null;
                ItemRec record = StaticDB.itemDB.GetRecord(this.m_rewardID);
                if (iconFileDataID > 0)
                {
                    sprite = GeneralHelpers.LoadIconAsset(AssetBundleType.Icons, iconFileDataID);
                }
                else if (record != null)
                {
                    sprite = GeneralHelpers.LoadIconAsset(AssetBundleType.Icons, record.IconFileDataID);
                }
                if (sprite != null)
                {
                    this.m_rewardIcon.sprite = sprite;
                }
                else if (this.m_iconErrorText != null)
                {
                    this.m_iconErrorText.gameObject.SetActive(true);
                    this.m_iconErrorText.text = string.Empty + iconFileDataID;
                }
                if (this.m_rewardName != null)
                {
                    if (record != null)
                    {
                        this.m_rewardName.text  = record.Display;
                        this.m_rewardName.color = GeneralHelpers.GetQualityColor(record.OverallQualityID);
                    }
                    else
                    {
                        this.m_rewardName.text = "Unknown Item " + this.m_rewardID;
                    }
                }
                if (this.m_isExpandedDisplay)
                {
                    this.m_rewardQuantityText.text = ((this.m_rewardQuantity <= 1) ? string.Empty : this.m_rewardQuantity.ToString("N0", MobileDeviceLocale.GetCultureInfoLocale()));
                }
                break;
            }

            case MissionRewardDisplay.RewardType.gold:
                this.m_rewardIcon.sprite = Resources.Load <Sprite>("MiscIcons/INV_Misc_Coin_01");
                if (this.m_isExpandedDisplay)
                {
                    this.m_rewardQuantityText.text = string.Empty;
                    this.m_rewardName.text         = ((this.m_rewardQuantity <= 1) ? string.Empty : this.m_rewardQuantity.ToString("N0", MobileDeviceLocale.GetCultureInfoLocale()));
                }
                break;

            case MissionRewardDisplay.RewardType.followerXP:
                this.m_rewardIcon.sprite       = GeneralHelpers.GetLocalizedFollowerXpIcon();
                this.m_rewardQuantityText.text = string.Empty;
                if (this.m_rewardName != null && this.m_isExpandedDisplay)
                {
                    this.m_rewardName.text = ((this.m_rewardQuantity <= 1) ? string.Empty : (this.m_rewardQuantity.ToString("N0", MobileDeviceLocale.GetCultureInfoLocale()) + " " + StaticDB.GetString("XP2", "XP")));
                }
                break;

            case MissionRewardDisplay.RewardType.currency:
            {
                Sprite sprite2 = CurrencyContainerDB.LoadCurrencyContainerIcon(this.m_rewardID, this.m_rewardQuantity);
                if (sprite2 != null)
                {
                    this.m_rewardIcon.sprite = sprite2;
                }
                else
                {
                    this.m_iconErrorText.gameObject.SetActive(true);
                    this.m_iconErrorText.text = "c " + this.m_rewardID;
                }
                if (this.m_isExpandedDisplay)
                {
                    CurrencyTypesRec record2 = StaticDB.currencyTypesDB.GetRecord(rewardID);
                    if (record2 != null)
                    {
                        CurrencyContainerRec currencyContainerRec = CurrencyContainerDB.CheckAndGetValidCurrencyContainer(this.m_rewardID, this.m_rewardQuantity);
                        if (currencyContainerRec != null)
                        {
                            this.m_rewardName.text         = currencyContainerRec.ContainerName;
                            this.m_rewardName.color        = GeneralHelpers.GetQualityColor((int)currencyContainerRec.ContainerQuality);
                            this.m_rewardQuantityText.text = string.Empty;
                        }
                        else
                        {
                            this.m_rewardName.text         = record2.Name;
                            this.m_rewardQuantityText.text = ((this.m_rewardQuantity <= 1) ? string.Empty : this.m_rewardQuantity.ToString("N0", MobileDeviceLocale.GetCultureInfoLocale()));
                        }
                    }
                    else
                    {
                        this.m_rewardName.text         = string.Empty;
                        this.m_rewardQuantityText.text = ((this.m_rewardQuantity <= 1) ? string.Empty : this.m_rewardQuantity.ToString("N0", MobileDeviceLocale.GetCultureInfoLocale()));
                    }
                }
                else
                {
                    CurrencyTypesRec record3 = StaticDB.currencyTypesDB.GetRecord(rewardID);
                    if (record3 != null)
                    {
                        CurrencyContainerRec currencyContainerRec2 = CurrencyContainerDB.CheckAndGetValidCurrencyContainer(this.m_rewardID, this.m_rewardQuantity);
                        if (currencyContainerRec2 != null && currencyContainerRec2.ContainerQuality > 0 && this.m_qualityBorder != null)
                        {
                            this.m_qualityBorder.color = GeneralHelpers.GetQualityColor((int)currencyContainerRec2.ContainerQuality);
                        }
                    }
                }
                break;
            }
            }
            if (!this.m_isExpandedDisplay)
            {
                CurrencyContainerRec currencyContainerRec3 = CurrencyContainerDB.CheckAndGetValidCurrencyContainer(this.m_rewardID, rewardQuantity);
                if (currencyContainerRec3 != null)
                {
                    this.m_rewardQuantityText.text = string.Empty;
                }
                else
                {
                    this.m_rewardQuantityText.text = ((this.m_rewardQuantity <= 1) ? string.Empty : this.m_rewardQuantity.ToString("N0", MobileDeviceLocale.GetCultureInfoLocale()));
                }
            }
        }
示例#22
0
        public void SetQuestID(int questID)
        {
            this.m_questID       = questID;
            base.gameObject.name = "WorldQuest " + this.m_questID;
            if (!WorldQuestData.WorldQuestDictionary.ContainsKey(this.m_questID))
            {
                return;
            }
            WrapperWorldQuest wrapperWorldQuest = WorldQuestData.WorldQuestDictionary[this.m_questID];

            if (wrapperWorldQuest.Items == null)
            {
                return;
            }
            this.m_quantityArea.gameObject.SetActive(false);
            bool flag = false;

            foreach (WrapperWorldQuestReward wrapperWorldQuestReward in wrapperWorldQuest.Items)
            {
                ItemRec record = StaticDB.itemDB.GetRecord(wrapperWorldQuestReward.RecordID);
                if (record == null)
                {
                    Debug.LogWarning(string.Concat(new object[]
                    {
                        "Invalid Item ID ",
                        wrapperWorldQuestReward.RecordID,
                        " from Quest ID ",
                        this.m_questID,
                        ". Ignoring for loot quality check."
                    }));
                }
                else
                {
                    flag = true;
                    if (record.OverallQualityID > (int)this.m_lootQuality)
                    {
                        this.m_lootQuality = (ITEM_QUALITY)record.OverallQualityID;
                    }
                    SpellEffectRec spellEffectRec2 = StaticDB.itemEffectDB.GetRecordsByParentID(wrapperWorldQuestReward.RecordID).SelectMany((ItemEffectRec itemEffectRec) => StaticDB.spellEffectDB.GetRecordsByParentID(itemEffectRec.SpellID)).FirstOrDefault((SpellEffectRec spellEffectRec) => spellEffectRec.Effect == 240);
                    this.m_main.sprite  = GeneralHelpers.LoadIconAsset(AssetBundleType.Icons, wrapperWorldQuestReward.FileDataID);
                    this.m_itemID       = wrapperWorldQuestReward.RecordID;
                    this.m_itemContext  = wrapperWorldQuestReward.ItemContext;
                    this.m_itemInstance = wrapperWorldQuestReward.ItemInstance;
                    if (!ItemStatCache.instance.HasItemStats(wrapperWorldQuestReward.RecordID))
                    {
                        ItemStatCache instance = ItemStatCache.instance;
                        instance.ItemStatCacheUpdateAction = (Action <int, int, WrapperItemStats, WrapperItemInstance?>)Delegate.Combine(instance.ItemStatCacheUpdateAction, new Action <int, int, WrapperItemStats, WrapperItemInstance?>(this.UpdateLootQuality));
                    }
                    WrapperItemStats?itemStats = ItemStatCache.instance.GetItemStats(wrapperWorldQuestReward.RecordID, wrapperWorldQuestReward.ItemContext, wrapperWorldQuestReward.ItemInstance);
                    if (itemStats != null)
                    {
                        this.UpdateLootQualityImpl(itemStats.Value);
                    }
                    this.ShowILVL();
                }
            }
            if (!flag)
            {
                if (wrapperWorldQuest.Currencies.Count > 0)
                {
                    foreach (WrapperWorldQuestReward wrapperWorldQuestReward2 in wrapperWorldQuest.Currencies)
                    {
                        CurrencyTypesRec record2 = StaticDB.currencyTypesDB.GetRecord(wrapperWorldQuestReward2.RecordID);
                        if (record2 != null)
                        {
                            int num = ((record2.Flags & 8u) == 0u) ? 1 : 100;
                            this.m_main.sprite = CurrencyContainerDB.LoadCurrencyContainerIcon(wrapperWorldQuestReward2.RecordID, wrapperWorldQuestReward2.Quantity / num);
                            CurrencyContainerRec currencyContainerRec = CurrencyContainerDB.CheckAndGetValidCurrencyContainer(wrapperWorldQuestReward2.RecordID, wrapperWorldQuestReward2.Quantity / num);
                            if (currencyContainerRec != null)
                            {
                                this.m_lootQuality = (ITEM_QUALITY)currencyContainerRec.ContainerQuality;
                            }
                        }
                        if (AdventureMapPanel.instance.IsFilterEnabled(MapFilterType.OrderResources))
                        {
                            this.m_quantityArea.gameObject.SetActive(true);
                            this.m_quantity.text = wrapperWorldQuestReward2.Quantity.ToString();
                        }
                    }
                }
                else if (wrapperWorldQuest.Money > 0)
                {
                    this.m_main.sprite = Resources.Load <Sprite>("MiscIcons/INV_Misc_Coin_01");
                    if (AdventureMapPanel.instance.IsFilterEnabled(MapFilterType.Gold))
                    {
                        this.m_quantityArea.gameObject.SetActive(true);
                        this.m_quantity.text = string.Empty + wrapperWorldQuest.Money / 100 / 100;
                    }
                }
                else if (wrapperWorldQuest.Experience > 0)
                {
                    this.m_main.sprite = GeneralHelpers.GetLocalizedFollowerXpIcon();
                }
            }
            this.m_endTime = wrapperWorldQuest.EndTime;
            int             areaID  = 0;
            WorldMapAreaRec record3 = StaticDB.worldMapAreaDB.GetRecord(wrapperWorldQuest.WorldMapAreaID);

            if (record3 != null)
            {
                areaID = record3.AreaID;
            }
            this.m_areaID = areaID;
            QuestInfoRec record4 = StaticDB.questInfoDB.GetRecord(wrapperWorldQuest.QuestInfoID);

            if (record4 == null)
            {
                return;
            }
            bool active = (record4.Modifiers & 2) != 0;

            this.m_dragonFrame.gameObject.SetActive(active);
            bool active2 = record4.Type == 12;

            if (this.m_lootQuality < ITEM_QUALITY.STANDARD)
            {
                this.m_normalGlow.color = this.WORLD_QUEST_GLOW_COLOR_DEFAULT;
            }
            if (this.m_lootQuality > ITEM_QUALITY.STANDARD)
            {
                string text = "#" + GeneralHelpers.GetItemQualityColor((int)this.m_lootQuality);
                Color  color;
                if (ColorUtility.TryParseHtmlString(text, ref color))
                {
                    this.m_normalGlow.color = color;
                }
            }
            if (this.m_assaultEffect != null)
            {
                this.m_assaultEffect.SetActive(active2);
            }
            bool flag2 = (record4.Modifiers & 1) != 0;

            if (flag2 && record4.Type != 3)
            {
                this.m_background.sprite = Resources.Load <Sprite>("NewWorldQuest/Mobile-RareQuest");
            }
            bool flag3 = (record4.Modifiers & 4) != 0;

            if (flag3 && record4.Type != 3)
            {
                this.m_background.sprite = Resources.Load <Sprite>("NewWorldQuest/Mobile-EpicQuest");
            }
        }
        public void UpdateWorldQuests()
        {
            bool flag;
            bool flag1;
            bool flag2;
            bool flag3;
            bool flag4;
            bool flag5;
            bool flag6;
            bool flag7;
            bool flag8;
            bool flag9;

            AdventureMapPanel.ClearWorldQuestArea(this.m_missionAndWorldQuestArea_KulTiras);
            AdventureMapPanel.ClearWorldQuestArea(this.m_missionAndWorldQuestArea_Zandalar);
            foreach (WrapperWorldQuest value in WorldQuestData.WorldQuestDictionary.Values)
            {
                if (value.StartLocationMapID != 1220 && value.StartLocationMapID != 1669)
                {
                    if (!this.IsFilterEnabled(MapFilterType.All))
                    {
                        bool questInfoID = false;
                        if (!questInfoID && this.IsFilterEnabled(MapFilterType.Azerite))
                        {
                            questInfoID = questInfoID | value.Currencies.Any <WrapperWorldQuestReward>((WrapperWorldQuestReward reward) => reward.RecordID == 1553);
                        }
                        if (!questInfoID && this.IsFilterEnabled(MapFilterType.OrderResources))
                        {
                            questInfoID = questInfoID | value.Currencies.Any <WrapperWorldQuestReward>((WrapperWorldQuestReward reward) => reward.RecordID == 1560);
                        }
                        if (!questInfoID && this.IsFilterEnabled(MapFilterType.Gold) && value.Money > 0)
                        {
                            questInfoID = true;
                        }
                        if (!questInfoID && this.IsFilterEnabled(MapFilterType.Gear))
                        {
                            questInfoID = questInfoID | value.Items.Any <WrapperWorldQuestReward>((WrapperWorldQuestReward reward) => {
                                ItemRec record = StaticDB.itemDB.GetRecord(reward.RecordID);
                                return(record == null ? false : (record.ClassID == 2 || record.ClassID == 3 || record.ClassID == 4 ? true : record.ClassID == 6));
                            });
                        }
                        if (!questInfoID && this.IsFilterEnabled(MapFilterType.ProfessionMats))
                        {
                            questInfoID = questInfoID | value.Items.Any <WrapperWorldQuestReward>((WrapperWorldQuestReward reward) => {
                                ItemRec record = StaticDB.itemDB.GetRecord(reward.RecordID);
                                return(record == null ? false : record.ClassID == 7);
                            });
                        }
                        if (!questInfoID && this.IsFilterEnabled(MapFilterType.PetBattles))
                        {
                            questInfoID = questInfoID | value.QuestInfoID == 115;
                        }
                        if (!questInfoID && this.IsFilterEnabled(MapFilterType.Reputation))
                        {
                            questInfoID = questInfoID | value.Currencies.Any <WrapperWorldQuestReward>((WrapperWorldQuestReward reward) => {
                                CurrencyTypesRec record = StaticDB.currencyTypesDB.GetRecord(reward.RecordID);
                                return(record == null ? false : record.FactionID != 0);
                            });
                        }
                        if (!questInfoID && this.IsFilterEnabled(MapFilterType.Bounty_ChampionsOfAzeroth))
                        {
                            bool flag10 = questInfoID;
                            if (!PersistentBountyData.bountiesByWorldQuestDictionary.ContainsKey(value.QuestID))
                            {
                                flag9 = false;
                            }
                            else
                            {
                                WrapperBountiesByWorldQuest item = PersistentBountyData.bountiesByWorldQuestDictionary[value.QuestID];
                                flag9 = item.BountyQuestIDs.Any <int>((int questID) => questID == 50562);
                            }
                            questInfoID = flag10 | flag9;
                        }
                        if (!questInfoID && this.IsFilterEnabled(MapFilterType.Bounty_ZandalariEmpire))
                        {
                            bool flag11 = questInfoID;
                            if (!PersistentBountyData.bountiesByWorldQuestDictionary.ContainsKey(value.QuestID))
                            {
                                flag8 = false;
                            }
                            else
                            {
                                WrapperBountiesByWorldQuest wrapperBountiesByWorldQuest = PersistentBountyData.bountiesByWorldQuestDictionary[value.QuestID];
                                flag8 = wrapperBountiesByWorldQuest.BountyQuestIDs.Any <int>((int questID) => questID == 50598);
                            }
                            questInfoID = flag11 | flag8;
                        }
                        if (!questInfoID && this.IsFilterEnabled(MapFilterType.Bounty_ProudmooreAdmiralty))
                        {
                            bool flag12 = questInfoID;
                            if (!PersistentBountyData.bountiesByWorldQuestDictionary.ContainsKey(value.QuestID))
                            {
                                flag7 = false;
                            }
                            else
                            {
                                WrapperBountiesByWorldQuest item1 = PersistentBountyData.bountiesByWorldQuestDictionary[value.QuestID];
                                flag7 = item1.BountyQuestIDs.Any <int>((int questID) => questID == 50599);
                            }
                            questInfoID = flag12 | flag7;
                        }
                        if (!questInfoID && this.IsFilterEnabled(MapFilterType.Bounty_OrderOfEmbers))
                        {
                            bool flag13 = questInfoID;
                            if (!PersistentBountyData.bountiesByWorldQuestDictionary.ContainsKey(value.QuestID))
                            {
                                flag6 = false;
                            }
                            else
                            {
                                WrapperBountiesByWorldQuest wrapperBountiesByWorldQuest1 = PersistentBountyData.bountiesByWorldQuestDictionary[value.QuestID];
                                flag6 = wrapperBountiesByWorldQuest1.BountyQuestIDs.Any <int>((int questID) => questID == 50600);
                            }
                            questInfoID = flag13 | flag6;
                        }
                        if (!questInfoID && this.IsFilterEnabled(MapFilterType.Bounty_StormsWake))
                        {
                            bool flag14 = questInfoID;
                            if (!PersistentBountyData.bountiesByWorldQuestDictionary.ContainsKey(value.QuestID))
                            {
                                flag5 = false;
                            }
                            else
                            {
                                WrapperBountiesByWorldQuest item2 = PersistentBountyData.bountiesByWorldQuestDictionary[value.QuestID];
                                flag5 = item2.BountyQuestIDs.Any <int>((int questID) => questID == 50601);
                            }
                            questInfoID = flag14 | flag5;
                        }
                        if (!questInfoID && this.IsFilterEnabled(MapFilterType.Bounty_TalanjisExpedition))
                        {
                            bool flag15 = questInfoID;
                            if (!PersistentBountyData.bountiesByWorldQuestDictionary.ContainsKey(value.QuestID))
                            {
                                flag4 = false;
                            }
                            else
                            {
                                WrapperBountiesByWorldQuest wrapperBountiesByWorldQuest2 = PersistentBountyData.bountiesByWorldQuestDictionary[value.QuestID];
                                flag4 = wrapperBountiesByWorldQuest2.BountyQuestIDs.Any <int>((int questID) => questID == 50602);
                            }
                            questInfoID = flag15 | flag4;
                        }
                        if (!questInfoID && this.IsFilterEnabled(MapFilterType.Bounty_Voldunai))
                        {
                            bool flag16 = questInfoID;
                            if (!PersistentBountyData.bountiesByWorldQuestDictionary.ContainsKey(value.QuestID))
                            {
                                flag3 = false;
                            }
                            else
                            {
                                WrapperBountiesByWorldQuest item3 = PersistentBountyData.bountiesByWorldQuestDictionary[value.QuestID];
                                flag3 = item3.BountyQuestIDs.Any <int>((int questID) => questID == 50603);
                            }
                            questInfoID = flag16 | flag3;
                        }
                        if (!questInfoID && this.IsFilterEnabled(MapFilterType.Bounty_TortollanSeekers))
                        {
                            bool flag17 = questInfoID;
                            if (!PersistentBountyData.bountiesByWorldQuestDictionary.ContainsKey(value.QuestID))
                            {
                                flag2 = false;
                            }
                            else
                            {
                                WrapperBountiesByWorldQuest wrapperBountiesByWorldQuest3 = PersistentBountyData.bountiesByWorldQuestDictionary[value.QuestID];
                                flag2 = wrapperBountiesByWorldQuest3.BountyQuestIDs.Any <int>((int questID) => questID == 50604);
                            }
                            questInfoID = flag17 | flag2;
                        }
                        if (!questInfoID && this.IsFilterEnabled(MapFilterType.Bounty_AllianceWarEffort))
                        {
                            bool flag18 = questInfoID;
                            if (!PersistentBountyData.bountiesByWorldQuestDictionary.ContainsKey(value.QuestID))
                            {
                                flag1 = false;
                            }
                            else
                            {
                                WrapperBountiesByWorldQuest item4 = PersistentBountyData.bountiesByWorldQuestDictionary[value.QuestID];
                                flag1 = item4.BountyQuestIDs.Any <int>((int questID) => questID == 50605);
                            }
                            questInfoID = flag18 | flag1;
                        }
                        if (!questInfoID && this.IsFilterEnabled(MapFilterType.Bounty_HordeWarEffort))
                        {
                            bool flag19 = questInfoID;
                            if (!PersistentBountyData.bountiesByWorldQuestDictionary.ContainsKey(value.QuestID))
                            {
                                flag = false;
                            }
                            else
                            {
                                WrapperBountiesByWorldQuest wrapperBountiesByWorldQuest4 = PersistentBountyData.bountiesByWorldQuestDictionary[value.QuestID];
                                flag = wrapperBountiesByWorldQuest4.BountyQuestIDs.Any <int>((int questID) => questID == 50606);
                            }
                            questInfoID = flag19 | flag;
                        }
                        if (!questInfoID)
                        {
                            continue;
                        }
                    }
                    GameObject gameObject = UnityEngine.Object.Instantiate <GameObject>(AdventureMapPanel.instance.m_AdvMapWorldQuestPrefab);
                    if (value.StartLocationMapID == 1642)
                    {
                        gameObject.transform.SetParent(this.m_missionAndWorldQuestArea_Zandalar.transform, false);
                        float single  = 0.152715057f;
                        float single1 = 1250.88025f;
                        float single2 = 697.2115f;
                        if (value.WorldMapAreaID == 863)
                        {
                            single -= 0.02f;
                        }
                        else if (value.WorldMapAreaID == 864)
                        {
                            single1 += 60f;
                            single2 -= 20f;
                        }
                        this.SetupWorldQuestIcon(value, gameObject, single1, single2, single);
                    }
                    else if (value.StartLocationMapID == 1643)
                    {
                        gameObject.transform.SetParent(this.m_missionAndWorldQuestArea_KulTiras.transform, false);
                        this.SetupWorldQuestIcon(value, gameObject, 1150.88025f, 497.2115f, 0.152715057f);
                    }
                    gameObject.GetComponent <AdventureMapWorldQuest>().SetQuestID(value.QuestID);
                    StackableMapIcon component = gameObject.GetComponent <StackableMapIcon>();
                    if (component == null)
                    {
                        continue;
                    }
                    component.RegisterWithManager(value.StartLocationMapID);
                }
            }
            this.m_pinchZoomContentManager.ForceZoomFactorChanged();
        }
示例#24
0
        public void SetBounty(WrapperWorldQuestBounty bounty)
        {
            Sprite sprite;

            this.m_bounty = bounty;
            Sprite sprite1 = GeneralHelpers.LoadIconAsset(AssetBundleType.Icons, bounty.IconFileDataID);

            if (sprite1 == null)
            {
                this.m_bountyIconInvalidFileDataID.gameObject.SetActive(true);
                this.m_bountyIconInvalidFileDataID.text = string.Concat(string.Empty, bounty.IconFileDataID);
            }
            else
            {
                this.m_bountyIconInvalidFileDataID.gameObject.SetActive(false);
                this.m_bountyIcon.sprite = sprite1;
            }
            QuestV2Rec record = StaticDB.questDB.GetRecord(bounty.QuestID);

            if (record == null)
            {
                this.m_bountyName.text        = string.Concat("Unknown Quest ID ", bounty.QuestID);
                this.m_bountyDescription.text = string.Concat("Unknown Quest ID ", bounty.QuestID);
            }
            else
            {
                this.m_bountyName.text        = record.QuestTitle;
                this.m_bountyDescription.text = string.Concat(new object[] { string.Empty, bounty.NumCompleted, "/", bounty.NumNeeded, " ", record.LogDescription });
            }
            this.m_timeLeft.text = StaticDB.GetString("TIME_LEFT", "Time Left: PH");
            RectTransform[] componentsInChildren = this.m_bountyQuestIconArea.GetComponentsInChildren <RectTransform>(true);
            for (int i = 0; i < (int)componentsInChildren.Length; i++)
            {
                RectTransform rectTransform = componentsInChildren[i];
                if (rectTransform != null && rectTransform.gameObject != this.m_bountyQuestIconArea.gameObject)
                {
                    rectTransform.SetParent(null);
                    UnityEngine.Object.Destroy(rectTransform.gameObject);
                }
            }
            for (int j = 0; j < bounty.NumCompleted; j++)
            {
                GameObject gameObject = UnityEngine.Object.Instantiate <GameObject>(this.m_bountyQuestCompleteIconPrefab);
                gameObject.transform.SetParent(this.m_bountyQuestIconArea.transform, false);
            }
            for (int k = 0; k < bounty.NumNeeded - bounty.NumCompleted; k++)
            {
                GameObject gameObject1 = UnityEngine.Object.Instantiate <GameObject>(this.m_bountyQuestAvailableIconPrefab);
                gameObject1.transform.SetParent(this.m_bountyQuestIconArea.transform, false);
            }
            this.UpdateTimeRemaining();
            bounty.Items.RemoveAll((WrapperWorldQuestReward item) => (item.RecordID == 157831 ? true : item.RecordID == 1500));
            if (bounty.Items.Count > 0 && StaticDB.itemDB.GetRecord(bounty.Items[0].RecordID) != null)
            {
                WrapperWorldQuestReward wrapperWorldQuestReward = bounty.Items[0];
                Sprite sprite2 = GeneralHelpers.LoadIconAsset(AssetBundleType.Icons, wrapperWorldQuestReward.FileDataID);
                this.m_rewardInfo.SetReward(MissionRewardDisplay.RewardType.item, wrapperWorldQuestReward.RecordID, wrapperWorldQuestReward.Quantity, sprite2, wrapperWorldQuestReward.ItemContext);
            }
            else if (bounty.Money > 1000000)
            {
                Sprite sprite3 = Resources.Load <Sprite>("MiscIcons/INV_Misc_Coin_01");
                this.m_rewardInfo.SetGold(bounty.Money / 10000, sprite3);
            }
            else if (bounty.Currencies.Count > 1)
            {
                int num = 0;
                foreach (WrapperWorldQuestReward currency in bounty.Currencies)
                {
                    CurrencyTypesRec currencyTypesRec = StaticDB.currencyTypesDB.GetRecord(currency.RecordID);
                    if (currency.RecordID == 1553 && currencyTypesRec != null)
                    {
                        if (CurrencyContainerDB.CheckAndGetValidCurrencyContainer(currency.RecordID, currency.Quantity) == null)
                        {
                            sprite = GeneralHelpers.LoadCurrencyIcon(currency.RecordID);
                            int quantity = currency.Quantity / ((currencyTypesRec.Flags & 8) == 0 ? 1 : 100);
                            if (quantity <= num)
                            {
                                continue;
                            }
                            num = quantity;
                            this.m_rewardInfo.SetCurrency(currency.RecordID, num, sprite);
                        }
                        else
                        {
                            sprite = CurrencyContainerDB.LoadCurrencyContainerIcon(currency.RecordID, currency.Quantity);
                            int quantity1 = currency.Quantity / ((currencyTypesRec.Flags & 8) == 0 ? 1 : 100);
                            if (quantity1 > num)
                            {
                                num = quantity1;
                                this.m_rewardInfo.SetCurrency(currency.RecordID, num, sprite);
                            }
                        }
                    }
                }
            }
        }