private int GetUncounteredMissionDuration(WrapperGarrisonMission mission)
        {
            GarrMissionRec record = StaticDB.garrMissionDB.GetRecord(mission.MissionRecID);

            if (record == null)
            {
                return(0);
            }
            float num = (float)record.MissionDuration;

            foreach (WrapperGarrisonEncounter wrapperGarrisonEncounter in mission.Encounters)
            {
                foreach (int id in wrapperGarrisonEncounter.MechanicIDs)
                {
                    GarrMechanicRec record2 = StaticDB.garrMechanicDB.GetRecord(id);
                    if (record2 != null)
                    {
                        foreach (GarrAbilityEffectRec garrAbilityEffectRec in from rec in StaticDB.garrAbilityEffectDB.GetRecordsByParentID(record2.GarrAbilityID)
                                 where rec.AbilityAction == 17u
                                 select rec)
                        {
                            num *= garrAbilityEffectRec.ActionValueFlat;
                        }
                    }
                }
            }
            num *= GeneralHelpers.GetMissionDurationTalentMultiplier();
            return((int)num);
        }
        public static int GetAdjustedMissionDuration(GarrMissionRec garrMissionRec, List <WrapperGarrisonFollower> followerList, GameObject enemyPortraits)
        {
            float num = (float)garrMissionRec.MissionDuration;
            IEnumerable <GarrAbilityEffectRec> enumerable;

            if (enemyPortraits != null)
            {
                MissionMechanic[] componentsInChildren = enemyPortraits.GetComponentsInChildren <MissionMechanic>(true);
                enumerable = from garrAbilityEffectRec in (from mechanic in componentsInChildren
                                                           where !mechanic.IsCountered() && mechanic.AbilityID() != 0
                                                           select mechanic).SelectMany((MissionMechanic mechanic) => StaticDB.garrAbilityEffectDB.GetRecordsByParentID(mechanic.AbilityID()))
                             where garrAbilityEffectRec.AbilityAction == 17
                             select garrAbilityEffectRec;
                foreach (GarrAbilityEffectRec garrAbilityEffectRec3 in enumerable)
                {
                    num *= garrAbilityEffectRec3.ActionValueFlat;
                }
            }
            enumerable = from garrAbilityEffectRec in followerList.SelectMany((WrapperGarrisonFollower follower) => follower.AbilityIDs.SelectMany((int abilityID) => StaticDB.garrAbilityEffectDB.GetRecordsByParentID(abilityID)))
                         where garrAbilityEffectRec.AbilityAction == 17
                         select garrAbilityEffectRec;

            foreach (GarrAbilityEffectRec garrAbilityEffectRec2 in enumerable)
            {
                num *= garrAbilityEffectRec2.ActionValueFlat;
            }
            num *= GeneralHelpers.GetMissionDurationTalentMultiplier();
            return((int)num);
        }
Beispiel #3
0
        public static int GetNumCompletedMissions(bool skipSupportMissions = false)
        {
            int num = 0;

            foreach (WrapperGarrisonMission wrapperGarrisonMission in PersistentMissionData.missionDictionary.Values)
            {
                GarrMissionRec record = StaticDB.garrMissionDB.GetRecord(wrapperGarrisonMission.MissionRecID);
                if (record != null)
                {
                    if ((GARR_FOLLOWER_TYPE)record.GarrFollowerTypeID == GarrisonStatus.GarrisonFollowerType)
                    {
                        if (!skipSupportMissions || (record.Flags & 16u) == 0u)
                        {
                            TimeSpan t        = GarrisonStatus.CurrentTime() - wrapperGarrisonMission.StartTime;
                            TimeSpan timeSpan = wrapperGarrisonMission.MissionDuration - t;
                            if ((wrapperGarrisonMission.MissionState == 1 && timeSpan.TotalSeconds <= 0.0) || wrapperGarrisonMission.MissionState == 2 || wrapperGarrisonMission.MissionState == 3)
                            {
                                num++;
                            }
                        }
                    }
                }
            }
            return(num);
        }
Beispiel #4
0
        public void Show()
        {
            int num = 0;
            CombatAllyMissionState combatAllyMissionState = CombatAllyMissionState.notAvailable;

            foreach (WrapperGarrisonMission wrapperGarrisonMission in PersistentMissionData.missionDictionary.Values)
            {
                GarrMissionRec record = StaticDB.garrMissionDB.GetRecord(wrapperGarrisonMission.MissionRecID);
                if (record != null)
                {
                    if ((record.Flags & 16u) != 0u)
                    {
                        num = wrapperGarrisonMission.MissionRecID;
                        if (wrapperGarrisonMission.MissionState == 1)
                        {
                            combatAllyMissionState = CombatAllyMissionState.inProgress;
                        }
                        else
                        {
                            combatAllyMissionState = CombatAllyMissionState.available;
                        }
                        break;
                    }
                }
            }
            if (num > 0)
            {
                this.m_missionDetailView.HandleMissionSelected(num);
            }
            this.m_missionDetailView.SetCombatAllyMissionState(combatAllyMissionState);
            this.m_sliderPanel.MaximizeSliderPanel();
        }
Beispiel #5
0
        public void Show()
        {
            int missionRecID = 0;
            CombatAllyMissionState combatAllyMissionState = CombatAllyMissionState.notAvailable;

            foreach (WrapperGarrisonMission value in PersistentMissionData.missionDictionary.Values)
            {
                GarrMissionRec record = StaticDB.garrMissionDB.GetRecord(value.MissionRecID);
                if (record != null)
                {
                    if ((record.Flags & 16) == 0)
                    {
                        continue;
                    }
                    missionRecID           = value.MissionRecID;
                    combatAllyMissionState = (value.MissionState != 1 ? CombatAllyMissionState.available : CombatAllyMissionState.inProgress);
                    break;
                }
            }
            if (missionRecID > 0)
            {
                this.m_missionDetailView.HandleMissionSelected(missionRecID);
            }
            this.m_missionDetailView.SetCombatAllyMissionState(combatAllyMissionState);
            this.m_sliderPanel.MaximizeSliderPanel();
        }
Beispiel #6
0
        public void OnAddMissionLootToRewardPanel(int garrMissionID)
        {
            WrapperGarrisonMission item = PersistentMissionData.missionDictionary[garrMissionID];

            MissionRewardDisplay.InitMissionRewards(AdventureMapPanel.instance.m_missionRewardResultsDisplayPrefab, this.m_rewardIconArea.transform, item.Rewards);
            if (item.MissionState != 3)
            {
                return;
            }
            GarrMissionRec record = StaticDB.garrMissionDB.GetRecord(garrMissionID);

            if (record == null)
            {
                return;
            }
            if (StaticDB.rewardPackDB.GetRecord(record.OvermaxRewardPackID) == null)
            {
                return;
            }
            if (item.OvermaxRewards.Count > 0)
            {
                GameObject gameObject = UnityEngine.Object.Instantiate <GameObject>(AdventureMapPanel.instance.m_missionRewardResultsDisplayPrefab);
                gameObject.transform.SetParent(this.m_rewardIconArea.transform, false);
                MissionRewardDisplay component = gameObject.GetComponent <MissionRewardDisplay>();
                int  itemID       = item.OvermaxRewards[0].ItemID;
                uint itemQuantity = item.OvermaxRewards[0].ItemQuantity;
                WrapperGarrisonMissionReward wrapperGarrisonMissionReward = item.OvermaxRewards[0];
                component.InitReward(MissionRewardDisplay.RewardType.item, itemID, (int)itemQuantity, 0, wrapperGarrisonMissionReward.ItemFileDataID);
            }
        }
    public void SetMission(int garrMissionID)
    {
        GarrMissionRec record = StaticDB.garrMissionDB.GetRecord(garrMissionID);

        this.m_missionName.set_text(record.Name);
        this.m_missionDescription.set_text(record.Description);
    }
Beispiel #8
0
    public void CompleteAllMissions()
    {
        Debug.Log("Main.CompleteAllMissions()");
        IEnumerator enumerator = PersistentMissionData.missionDictionary.get_Values().GetEnumerator();

        try
        {
            while (enumerator.MoveNext())
            {
                JamGarrisonMobileMission jamGarrisonMobileMission = (JamGarrisonMobileMission)enumerator.get_Current();
                GarrMissionRec           record = StaticDB.garrMissionDB.GetRecord(jamGarrisonMobileMission.MissionRecID);
                if (record.GarrFollowerTypeID == 4u)
                {
                    if (jamGarrisonMobileMission.MissionState == 1)
                    {
                        long num  = GarrisonStatus.CurrentTime() - jamGarrisonMobileMission.StartTime;
                        long num2 = jamGarrisonMobileMission.MissionDuration - num;
                        if (num2 <= 0L)
                        {
                            this.CompleteMission(jamGarrisonMobileMission.MissionRecID);
                        }
                    }
                }
            }
        }
        finally
        {
            IDisposable disposable = enumerator as IDisposable;
            if (disposable != null)
            {
                disposable.Dispose();
            }
        }
    }
Beispiel #9
0
        public static int GetNumCompletedMissions(bool skipSupportMissions = false)
        {
            int num = 0;

            foreach (WrapperGarrisonMission value in PersistentMissionData.missionDictionary.Values)
            {
                GarrMissionRec record = StaticDB.garrMissionDB.GetRecord(value.MissionRecID);
                if (record != null)
                {
                    if (record.GarrFollowerTypeID == (uint)GarrisonStatus.GarrisonFollowerType)
                    {
                        if (!skipSupportMissions || (record.Flags & 16) == 0)
                        {
                            TimeSpan timeSpan        = GarrisonStatus.CurrentTime() - value.StartTime;
                            TimeSpan missionDuration = value.MissionDuration - timeSpan;
                            if ((value.MissionState != 1 || missionDuration.TotalSeconds > 0) && value.MissionState != 2 && value.MissionState != 3)
                            {
                                continue;
                            }
                            num++;
                        }
                    }
                }
            }
            return(num);
        }
Beispiel #10
0
    private int GetUncounteredMissionDuration(JamGarrisonMobileMission mission)
    {
        if (mission == null)
        {
            return(0);
        }
        GarrMissionRec record = StaticDB.garrMissionDB.GetRecord(mission.MissionRecID);

        if (record == null)
        {
            return(0);
        }
        float missionDuration = (float)record.MissionDuration;

        foreach (JamGarrisonEncounter jamGarrisonEncounter in mission.Encounter)
        {
            foreach (int id in jamGarrisonEncounter.MechanicID)
            {
                GarrMechanicRec record2 = StaticDB.garrMechanicDB.GetRecord(id);
                if (record2 != null)
                {
                    StaticDB.garrAbilityEffectDB.EnumRecordsByParentID(record2.GarrAbilityID, delegate(GarrAbilityEffectRec garrAbilityEffectRec)
                    {
                        if (garrAbilityEffectRec.AbilityAction == 17u)
                        {
                            missionDuration *= garrAbilityEffectRec.ActionValueFlat;
                        }
                        return(true);
                    });
                }
            }
        }
        missionDuration *= GeneralHelpers.GetMissionDurationTalentMultiplier();
        return((int)missionDuration);
    }
Beispiel #11
0
    public void OnAddMissionLootToRewardPanel(int garrMissionID)
    {
        JamGarrisonMobileMission jamGarrisonMobileMission = (JamGarrisonMobileMission)PersistentMissionData.missionDictionary[garrMissionID];

        MissionRewardDisplay.InitMissionRewards(AdventureMapPanel.instance.m_missionRewardResultsDisplayPrefab, this.m_rewardIconArea.transform, jamGarrisonMobileMission.Reward);
        if (jamGarrisonMobileMission.MissionState != 3)
        {
            return;
        }
        GarrMissionRec record = StaticDB.garrMissionDB.GetRecord(garrMissionID);

        if (record == null)
        {
            return;
        }
        if (StaticDB.rewardPackDB.GetRecord(record.OvermaxRewardPackID) == null)
        {
            return;
        }
        if (jamGarrisonMobileMission.OvermaxReward.Length > 0)
        {
            GameObject gameObject = Object.Instantiate <GameObject>(AdventureMapPanel.instance.m_missionRewardResultsDisplayPrefab);
            gameObject.transform.SetParent(this.m_rewardIconArea.transform, false);
            MissionRewardDisplay component = gameObject.GetComponent <MissionRewardDisplay>();
            component.InitReward(MissionRewardDisplay.RewardType.item, jamGarrisonMobileMission.OvermaxReward[0].ItemID, (int)jamGarrisonMobileMission.OvermaxReward[0].ItemQuantity, 0, jamGarrisonMobileMission.OvermaxReward[0].ItemFileDataID);
        }
    }
Beispiel #12
0
 private void Update()
 {
     foreach (WrapperGarrisonMission value in PersistentMissionData.missionDictionary.Values)
     {
         bool           flag   = false;
         GarrMissionRec record = StaticDB.garrMissionDB.GetRecord(value.MissionRecID);
         if (record != null)
         {
             if (record.GarrFollowerTypeID == (uint)GarrisonStatus.GarrisonFollowerType)
             {
                 if (value.MissionState == 1)
                 {
                     TimeSpan timeSpan = GarrisonStatus.CurrentTime() - value.StartTime;
                     if ((value.MissionDuration - timeSpan).TotalSeconds <= 0)
                     {
                         flag = true;
                     }
                 }
                 if (value.MissionState == 2)
                 {
                     flag = true;
                 }
                 !flag;
             }
         }
     }
 }
    public static int GetNumCompletedMissions()
    {
        int         num        = 0;
        IEnumerator enumerator = PersistentMissionData.missionDictionary.get_Values().GetEnumerator();

        try
        {
            while (enumerator.MoveNext())
            {
                JamGarrisonMobileMission jamGarrisonMobileMission = (JamGarrisonMobileMission)enumerator.get_Current();
                GarrMissionRec           record = StaticDB.garrMissionDB.GetRecord(jamGarrisonMobileMission.MissionRecID);
                if (record != null)
                {
                    if (record.GarrFollowerTypeID == 4u)
                    {
                        long num2 = GarrisonStatus.CurrentTime() - jamGarrisonMobileMission.StartTime;
                        long num3 = jamGarrisonMobileMission.MissionDuration - num2;
                        if ((jamGarrisonMobileMission.MissionState == 1 && num3 <= 0L) || jamGarrisonMobileMission.MissionState == 2 || jamGarrisonMobileMission.MissionState == 3)
                        {
                            num++;
                        }
                    }
                }
            }
        }
        finally
        {
            IDisposable disposable = enumerator as IDisposable;
            if (disposable != null)
            {
                disposable.Dispose();
            }
        }
        return(num);
    }
 private void Update()
 {
     foreach (WrapperGarrisonMission wrapperGarrisonMission in PersistentMissionData.missionDictionary.Values)
     {
         bool           flag   = false;
         GarrMissionRec record = StaticDB.garrMissionDB.GetRecord(wrapperGarrisonMission.MissionRecID);
         if (record != null)
         {
             if ((GARR_FOLLOWER_TYPE)record.GarrFollowerTypeID == GarrisonStatus.GarrisonFollowerType)
             {
                 if (wrapperGarrisonMission.MissionState == 1)
                 {
                     TimeSpan t = GarrisonStatus.CurrentTime() - wrapperGarrisonMission.StartTime;
                     if ((wrapperGarrisonMission.MissionDuration - t).TotalSeconds <= 0.0)
                     {
                         flag = true;
                     }
                 }
                 if (wrapperGarrisonMission.MissionState == 2)
                 {
                     flag = true;
                 }
                 if (flag)
                 {
                 }
             }
         }
     }
 }
    private void InitMissionList()
    {
        RectTransform[] componentsInChildren = this.missionListViewContents.GetComponentsInChildren <RectTransform>(true);
        for (int i = 0; i < componentsInChildren.Length; i++)
        {
            if (componentsInChildren[i] != null && componentsInChildren[i] != this.missionListViewContents.get_transform())
            {
                Object.DestroyImmediate(componentsInChildren[i].get_gameObject());
            }
        }
        List <JamGarrisonMobileMission> list = Enumerable.ToList <JamGarrisonMobileMission>(Enumerable.OfType <JamGarrisonMobileMission>(PersistentMissionData.missionDictionary.get_Values()));

        if (this.isInProgressMissionList)
        {
            list.Sort(new MissionListView.MissionTimeComparer());
        }
        else
        {
            list.Sort(new MissionListView.MissionLevelComparer());
        }
        using (List <JamGarrisonMobileMission> .Enumerator enumerator = list.GetEnumerator())
        {
            while (enumerator.MoveNext())
            {
                JamGarrisonMobileMission current = enumerator.get_Current();
                GarrMissionRec           record  = StaticDB.garrMissionDB.GetRecord(current.MissionRecID);
                if (record != null)
                {
                    if (record.GarrFollowerTypeID == 4u)
                    {
                        if (this.isInProgressMissionList)
                        {
                            if (current.MissionState == 0)
                            {
                                continue;
                            }
                            if (current.MissionState == 1)
                            {
                                long num  = GarrisonStatus.CurrentTime() - current.StartTime;
                                long num2 = current.MissionDuration - num;
                                if (num2 <= 0L)
                                {
                                    continue;
                                }
                            }
                        }
                        if (this.isInProgressMissionList || current.MissionState == 0)
                        {
                            GameObject gameObject = Object.Instantiate <GameObject>(this.missionListItemPrefab);
                            gameObject.get_transform().SetParent(this.missionListViewContents.get_transform(), false);
                            MissionListItem component = gameObject.GetComponent <MissionListItem>();
                            component.Init(record.ID);
                        }
                    }
                }
            }
        }
    }
        private void InitMissionList()
        {
            RectTransform[] componentsInChildren = this.missionListViewContents.GetComponentsInChildren <RectTransform>(true);
            for (int i = 0; i < componentsInChildren.Length; i++)
            {
                if (componentsInChildren[i] != null && componentsInChildren[i] != this.missionListViewContents.transform)
                {
                    componentsInChildren[i].gameObject.transform.SetParent(null);
                    Object.Destroy(componentsInChildren[i].gameObject);
                }
            }
            List <WrapperGarrisonMission> list = PersistentMissionData.missionDictionary.Values.ToList <WrapperGarrisonMission>();

            if (this.isInProgressMissionList)
            {
                list = (from mission in list
                        orderby mission.StartTime + mission.MissionDuration
                        select mission).ToList <WrapperGarrisonMission>();
            }
            else
            {
                list = (from mission in list
                        orderby StaticDB.garrMissionDB.GetRecord(mission.MissionRecID).TargetLevel
                        select mission).ToList <WrapperGarrisonMission>();
            }
            foreach (WrapperGarrisonMission wrapperGarrisonMission in list)
            {
                GarrMissionRec record = StaticDB.garrMissionDB.GetRecord(wrapperGarrisonMission.MissionRecID);
                if (record != null)
                {
                    if (record.GarrFollowerTypeID == (uint)GarrisonStatus.GarrisonFollowerType)
                    {
                        if (this.isInProgressMissionList)
                        {
                            if (wrapperGarrisonMission.MissionState == 0)
                            {
                                continue;
                            }
                            if (wrapperGarrisonMission.MissionState == 1)
                            {
                                TimeSpan t = GarrisonStatus.CurrentTime() - wrapperGarrisonMission.StartTime;
                                if ((wrapperGarrisonMission.MissionDuration - t).TotalSeconds <= 0.0)
                                {
                                    continue;
                                }
                            }
                        }
                        if (this.isInProgressMissionList || wrapperGarrisonMission.MissionState == 0)
                        {
                            GameObject gameObject = Object.Instantiate <GameObject>(this.missionListItemPrefab);
                            gameObject.transform.SetParent(this.missionListViewContents.transform, false);
                            MissionListItem component = gameObject.GetComponent <MissionListItem>();
                            component.Init(record.ID);
                        }
                    }
                }
            }
        }
Beispiel #17
0
        public void UpdateVisuals()
        {
            CombatAllyMissionState combatAllyMissionState = CombatAllyMissionState.notAvailable;

            foreach (WrapperGarrisonMission wrapperGarrisonMission in PersistentMissionData.missionDictionary.Values)
            {
                GarrMissionRec record = StaticDB.garrMissionDB.GetRecord(wrapperGarrisonMission.MissionRecID);
                if (record != null)
                {
                    if ((record.Flags & 16u) != 0u)
                    {
                        this.m_combatAllyMissionID = wrapperGarrisonMission.MissionRecID;
                        if (wrapperGarrisonMission.MissionState == 1)
                        {
                            combatAllyMissionState = CombatAllyMissionState.inProgress;
                        }
                        else
                        {
                            combatAllyMissionState = CombatAllyMissionState.available;
                        }
                        break;
                    }
                }
            }
            if (combatAllyMissionState == CombatAllyMissionState.inProgress)
            {
                foreach (WrapperGarrisonFollower wrapperGarrisonFollower in PersistentFollowerData.followerDictionary.Values)
                {
                    if (wrapperGarrisonFollower.CurrentMissionID == this.m_combatAllyMissionID)
                    {
                        this.m_combatAllySlot.SetFollower(wrapperGarrisonFollower.GarrFollowerID);
                        this.m_combatAllyLabel.gameObject.SetActive(false);
                        this.m_assignChampionText.gameObject.SetActive(false);
                        this.m_championName.gameObject.SetActive(true);
                        GarrFollowerRec record2 = StaticDB.garrFollowerDB.GetRecord(wrapperGarrisonFollower.GarrFollowerID);
                        CreatureRec     record3 = StaticDB.creatureDB.GetRecord((GarrisonStatus.Faction() != PVP_FACTION.ALLIANCE) ? record2.HordeCreatureID : record2.AllianceCreatureID);
                        if (wrapperGarrisonFollower.Quality == 6 && record2.TitleName != null && record2.TitleName.Length > 0)
                        {
                            this.m_championName.text = record2.TitleName;
                        }
                        else if (record2 != null)
                        {
                            this.m_championName.text = record3.Name;
                        }
                        this.m_championName.color = GeneralHelpers.GetQualityColor(wrapperGarrisonFollower.Quality);
                        this.m_combatAllySupportSpellDisplay.gameObject.SetActive(true);
                        this.m_combatAllySupportSpellDisplay.SetSpell(wrapperGarrisonFollower.ZoneSupportSpellID);
                        this.m_unassignCombatAllyButton.SetActive(true);
                        break;
                    }
                }
            }
            else
            {
                this.ClearCombatAllyDisplay();
            }
        }
Beispiel #18
0
    private void CreateMissionSite(int garrMissionID)
    {
        GarrMissionRec record = StaticDB.garrMissionDB.GetRecord(garrMissionID);

        if (record == null)
        {
            Debug.LogWarning("Mission Not Found: ID " + garrMissionID);
            return;
        }
        if (record.GarrFollowerTypeID != 4u)
        {
            return;
        }
        if ((record.Flags & 16u) != 0u)
        {
            return;
        }
        if (!PersistentMissionData.missionDictionary.ContainsKey(garrMissionID))
        {
            return;
        }
        JamGarrisonMobileMission jamGarrisonMobileMission = (JamGarrisonMobileMission)PersistentMissionData.missionDictionary.get_Item(garrMissionID);

        if (jamGarrisonMobileMission.MissionState == 0)
        {
            return;
        }
        GameObject gameObject = Object.Instantiate <GameObject>(AdventureMapPanel.instance.m_AdvMapMissionSitePrefab);

        gameObject.get_transform().SetParent(this.m_missionAndWordQuestArea.get_transform(), false);
        float num  = 1.84887111f;
        float num2 = record.Mappos_x * num;
        float num3 = record.Mappos_y * -num;
        float num4 = -272.5694f;
        float num5 = 1318.388f;

        num2 += num4;
        num3 += num5;
        float         width     = this.m_worldMapLowDetail.get_sprite().get_textureRect().get_width();
        float         height    = this.m_worldMapLowDetail.get_sprite().get_textureRect().get_height();
        Vector2       vector    = new Vector3(num2 / width, num3 / height);
        RectTransform component = gameObject.GetComponent <RectTransform>();

        component.set_anchorMin(vector);
        component.set_anchorMax(vector);
        component.set_anchoredPosition(Vector2.get_zero());
        AdventureMapMissionSite component2 = gameObject.GetComponent <AdventureMapMissionSite>();

        component2.SetMission(record.ID);
        StackableMapIcon component3 = gameObject.GetComponent <StackableMapIcon>();

        if (component3 != null)
        {
            component3.RegisterWithManager();
        }
    }
Beispiel #19
0
        public void InitializeDialog(int missionId)
        {
            GarrMissionRec record = StaticDB.garrMissionDB.GetRecord(missionId);

            if (record != null)
            {
                this.m_missionName.text        = record.Name;
                this.m_missionDescription.text = record.Description;
            }
        }
    private void InitMissionList()
    {
        RectTransform[] componentsInChildren = this.missionListViewContents.GetComponentsInChildren <RectTransform>(true);
        for (int i = 0; i < componentsInChildren.Length; i++)
        {
            if (componentsInChildren[i] != null && componentsInChildren[i] != this.missionListViewContents.transform)
            {
                Object.DestroyImmediate(componentsInChildren[i].gameObject);
            }
        }
        List <JamGarrisonMobileMission> list = PersistentMissionData.missionDictionary.Values.OfType <JamGarrisonMobileMission>().ToList <JamGarrisonMobileMission>();

        if (this.isInProgressMissionList)
        {
            list.Sort(new MissionListView.MissionTimeComparer());
        }
        else
        {
            list.Sort(new MissionListView.MissionLevelComparer());
        }
        foreach (JamGarrisonMobileMission jamGarrisonMobileMission in list)
        {
            GarrMissionRec record = StaticDB.garrMissionDB.GetRecord(jamGarrisonMobileMission.MissionRecID);
            if (record != null)
            {
                if (record.GarrFollowerTypeID == 4u)
                {
                    if (this.isInProgressMissionList)
                    {
                        if (jamGarrisonMobileMission.MissionState == 0)
                        {
                            continue;
                        }
                        if (jamGarrisonMobileMission.MissionState == 1)
                        {
                            long num  = GarrisonStatus.CurrentTime() - jamGarrisonMobileMission.StartTime;
                            long num2 = jamGarrisonMobileMission.MissionDuration - num;
                            if (num2 <= 0L)
                            {
                                continue;
                            }
                        }
                    }
                    if (this.isInProgressMissionList || jamGarrisonMobileMission.MissionState == 0)
                    {
                        GameObject gameObject = Object.Instantiate <GameObject>(this.missionListItemPrefab);
                        gameObject.transform.SetParent(this.missionListViewContents.transform, false);
                        MissionListItem component = gameObject.GetComponent <MissionListItem>();
                        component.Init(record.ID);
                    }
                }
            }
        }
    }
        public int Compare(JamGarrisonMobileMission m1, JamGarrisonMobileMission m2)
        {
            GarrMissionRec record  = StaticDB.garrMissionDB.GetRecord(m1.MissionRecID);
            GarrMissionRec record2 = StaticDB.garrMissionDB.GetRecord(m2.MissionRecID);

            if (record == null || record2 == null)
            {
                return(0);
            }
            return(record2.TargetLevel - record.TargetLevel);
        }
        private void CreateMissionSite(int garrMissionID)
        {
            GarrMissionRec record = StaticDB.garrMissionDB.GetRecord(garrMissionID);

            if (record == null)
            {
                Debug.LogWarning("Mission Not Found: ID " + garrMissionID);
                return;
            }
            if ((GARR_FOLLOWER_TYPE)record.GarrFollowerTypeID != GarrisonStatus.GarrisonFollowerType)
            {
                return;
            }
            if ((record.Flags & 16u) != 0u)
            {
                return;
            }
            if (!PersistentMissionData.missionDictionary.ContainsKey(garrMissionID))
            {
                return;
            }
            if (PersistentMissionData.missionDictionary[garrMissionID].MissionState == 0)
            {
                return;
            }
            GameObject gameObject = Object.Instantiate <GameObject>(AdventureMapPanel.instance.m_AdvMapMissionSitePrefab);

            gameObject.transform.SetParent(this.m_mapViewContentsRT, false);
            float num  = 1.84887111f;
            float num2 = record.Mappos_x * num;
            float num3 = record.Mappos_y * -num;
            float num4 = -272.5694f;
            float num5 = 1318.388f;

            num2 += num4;
            num3 += num5;
            float         num6      = 1f;
            float         num7      = 1f;
            Vector2       vector    = new Vector3(num2 / num6, num3 / num7);
            RectTransform component = gameObject.GetComponent <RectTransform>();

            component.anchorMin        = vector;
            component.anchorMax        = vector;
            component.anchoredPosition = Vector2.zero;
            AdventureMapMissionSite component2 = gameObject.GetComponent <AdventureMapMissionSite>();

            component2.SetMission(record.ID);
            StackableMapIcon component3 = gameObject.GetComponent <StackableMapIcon>();

            if (component3 != null)
            {
                component3.RegisterWithManager(record.AreaID);
            }
        }
Beispiel #23
0
    private void PrecacheMissionChances()
    {
        IEnumerator enumerator = PersistentMissionData.missionDictionary.get_Values().GetEnumerator();

        try
        {
            while (enumerator.MoveNext())
            {
                JamGarrisonMobileMission jamGarrisonMobileMission = (JamGarrisonMobileMission)enumerator.get_Current();
                GarrMissionRec           record = StaticDB.garrMissionDB.GetRecord(jamGarrisonMobileMission.MissionRecID);
                if (record.GarrFollowerTypeID == 4u)
                {
                    if (jamGarrisonMobileMission.MissionState == 1)
                    {
                        List <JamGarrisonFollower> list = new List <JamGarrisonFollower>();
                        using (Dictionary <int, JamGarrisonFollower> .ValueCollection.Enumerator enumerator2 = PersistentFollowerData.followerDictionary.get_Values().GetEnumerator())
                        {
                            while (enumerator2.MoveNext())
                            {
                                JamGarrisonFollower current = enumerator2.get_Current();
                                if (current.CurrentMissionID == jamGarrisonMobileMission.MissionRecID)
                                {
                                    list.Add(current);
                                }
                            }
                        }
                        MobilePlayerEvaluateMission mobilePlayerEvaluateMission = new MobilePlayerEvaluateMission();
                        mobilePlayerEvaluateMission.GarrMissionID  = jamGarrisonMobileMission.MissionRecID;
                        mobilePlayerEvaluateMission.GarrFollowerID = new int[list.get_Count()];
                        int num = 0;
                        using (List <JamGarrisonFollower> .Enumerator enumerator3 = list.GetEnumerator())
                        {
                            while (enumerator3.MoveNext())
                            {
                                JamGarrisonFollower current2 = enumerator3.get_Current();
                                mobilePlayerEvaluateMission.GarrFollowerID[num++] = current2.GarrFollowerID;
                            }
                        }
                        Login.instance.SendToMobileServer(mobilePlayerEvaluateMission);
                    }
                }
            }
        }
        finally
        {
            IDisposable disposable = enumerator as IDisposable;
            if (disposable != null)
            {
                disposable.Dispose();
            }
        }
    }
Beispiel #24
0
        public void SetMission(int garrMissionID)
        {
            GarrMissionRec record = StaticDB.garrMissionDB.GetRecord(garrMissionID);

            if (record == null)
            {
                this.m_missionName.text        = string.Empty;
                this.m_missionDescription.text = string.Empty;
                return;
            }
            this.m_missionName.text        = record.Name;
            this.m_missionDescription.text = record.Description;
        }
    public void SetMission(int garrMissionID)
    {
        GarrMissionRec record = StaticDB.garrMissionDB.GetRecord(garrMissionID);

        if (record == null)
        {
            this.m_missionName.set_text(string.Empty);
            this.m_missionDescription.set_text(string.Empty);
            return;
        }
        this.m_missionName.set_text(record.Name);
        this.m_missionDescription.set_text(record.Description);
    }
        private void CreateMissionSite(int garrMissionID)
        {
            GarrMissionRec record = StaticDB.garrMissionDB.GetRecord(garrMissionID);

            if (record == null)
            {
                Debug.LogWarning(string.Concat("Mission Not Found: ID ", garrMissionID));
                return;
            }
            if (record.GarrFollowerTypeID != (uint)GarrisonStatus.GarrisonFollowerType)
            {
                return;
            }
            if ((record.Flags & 16) != 0)
            {
                return;
            }
            if (!PersistentMissionData.missionDictionary.ContainsKey(garrMissionID))
            {
                return;
            }
            if (PersistentMissionData.missionDictionary[garrMissionID].MissionState == 0)
            {
                return;
            }
            GameObject gameObject = UnityEngine.Object.Instantiate <GameObject>(AdventureMapPanel.instance.m_AdvMapMissionSitePrefab);

            gameObject.transform.SetParent(this.m_mapViewContentsRT, false);
            float single  = 1.84887111f;
            float mapposX = (float)record.Mappos_x * single;
            float mapposY = (float)record.Mappos_y * -single;
            float single1 = -272.5694f;
            float single2 = 1318.388f;

            mapposX += single1;
            mapposY += single2;
            Vector2       vector3   = new Vector3(mapposX / 1f, mapposY / 1f);
            RectTransform component = gameObject.GetComponent <RectTransform>();

            component.anchorMin        = vector3;
            component.anchorMax        = vector3;
            component.anchoredPosition = Vector2.zero;
            gameObject.GetComponent <AdventureMapMissionSite>().SetMission(record.ID);
            StackableMapIcon stackableMapIcon = gameObject.GetComponent <StackableMapIcon>();

            if (stackableMapIcon != null)
            {
                stackableMapIcon.RegisterWithManager(record.AreaID);
            }
        }
        public void Init()
        {
            FollowerInventoryListItem[] componentsInChildren = this.m_combatAllyListContent.GetComponentsInChildren <FollowerInventoryListItem>(true);
            foreach (FollowerInventoryListItem followerInventoryListItem in componentsInChildren)
            {
                Object.Destroy(followerInventoryListItem.gameObject);
            }
            int num = 0;

            foreach (WrapperGarrisonMission wrapperGarrisonMission in PersistentMissionData.missionDictionary.Values)
            {
                GarrMissionRec record = StaticDB.garrMissionDB.GetRecord(wrapperGarrisonMission.MissionRecID);
                if (record != null)
                {
                    if ((record.Flags & 16u) != 0u)
                    {
                        this.CreateCombatAllyItems(wrapperGarrisonMission.MissionRecID, (int)record.MissionCost);
                        num = (int)record.MissionCost;
                        break;
                    }
                }
            }
            if (num <= GarrisonStatus.WarResources())
            {
                this.m_combatAllyCost.text = string.Concat(new object[]
                {
                    StaticDB.GetString("COST2", "Cost:"),
                    " <color=#ffffffff>",
                    num,
                    "</color>"
                });
            }
            else
            {
                this.m_combatAllyCost.text = string.Concat(new object[]
                {
                    StaticDB.GetString("COST2", "Cost:"),
                    " <color=#ff0000ff>",
                    num,
                    "</color>"
                });
            }
            Sprite sprite = GeneralHelpers.LoadCurrencyIcon(1560);

            if (sprite != null)
            {
                this.m_combatAllyCostResourceIcon.sprite = sprite;
            }
        }
Beispiel #28
0
    private void OnMissionSuccessChanceChanged(int chance)
    {
        if (this.m_garrMissionID == 0)
        {
            return;
        }
        if (!base.get_gameObject().get_activeSelf())
        {
            return;
        }
        this.m_bonusLootDisplay.SetActive(false);
        if (chance <= -1000)
        {
            this.missionPercentChanceText.set_text("%");
            this.m_missionChanceSpinner.SetActive(true);
        }
        else
        {
            this.missionPercentChanceText.set_text(chance + "%");
            this.m_missionChanceSpinner.SetActive(false);
        }
        this.m_lootBorderNormal.SetActive(chance < 100);
        this.m_lootBorderLitUp.SetActive(chance >= 100);
        GarrMissionRec record = StaticDB.garrMissionDB.GetRecord(this.m_garrMissionID);

        if (record == null)
        {
            Debug.LogError("Invalid Mission ID:" + this.m_garrMissionID);
            return;
        }
        if (StaticDB.rewardPackDB.GetRecord(record.OvermaxRewardPackID) == null)
        {
            return;
        }
        JamGarrisonMobileMission jamGarrisonMobileMission = (!PersistentMissionData.missionDictionary.ContainsKey(this.m_garrMissionID)) ? null : ((JamGarrisonMobileMission)PersistentMissionData.missionDictionary.get_Item(this.m_garrMissionID));

        if (record.OvermaxRewardPackID > 0 && jamGarrisonMobileMission != null && jamGarrisonMobileMission.OvermaxReward.Length > 0)
        {
            this.m_bonusLootDisplay.SetActive(true);
            this.m_bonusLootChanceText.set_text(string.Concat(new object[]
            {
                "<color=#ffff00ff>",
                StaticDB.GetString("BONUS_ROLL", null),
                " </color>\n<color=#ff8600ff>",
                Math.Max(0, chance - 100),
                "%</color>"
            }));
        }
    }
    public void Show()
    {
        int num = 0;
        CombatAllyMissionState combatAllyMissionState = CombatAllyMissionState.notAvailable;
        IEnumerator            enumerator             = PersistentMissionData.missionDictionary.Values.GetEnumerator();

        try
        {
            while (enumerator.MoveNext())
            {
                object obj = enumerator.Current;
                JamGarrisonMobileMission jamGarrisonMobileMission = (JamGarrisonMobileMission)obj;
                GarrMissionRec           record = StaticDB.garrMissionDB.GetRecord(jamGarrisonMobileMission.MissionRecID);
                if (record != null)
                {
                    if ((record.Flags & 16u) != 0u)
                    {
                        num = jamGarrisonMobileMission.MissionRecID;
                        if (jamGarrisonMobileMission.MissionState == 1)
                        {
                            combatAllyMissionState = CombatAllyMissionState.inProgress;
                        }
                        else
                        {
                            combatAllyMissionState = CombatAllyMissionState.available;
                        }
                        break;
                    }
                }
            }
        }
        finally
        {
            IDisposable disposable;
            if ((disposable = (enumerator as IDisposable)) != null)
            {
                disposable.Dispose();
            }
        }
        if (num > 0)
        {
            this.m_missionDetailView.HandleMissionSelected(num);
        }
        this.m_missionDetailView.SetCombatAllyMissionState(combatAllyMissionState);
        this.m_sliderPanel.MaximizeSliderPanel();
    }
Beispiel #30
0
    private void Update()
    {
        IEnumerator enumerator = PersistentMissionData.missionDictionary.Values.GetEnumerator();

        try
        {
            while (enumerator.MoveNext())
            {
                object obj = enumerator.Current;
                JamGarrisonMobileMission jamGarrisonMobileMission = (JamGarrisonMobileMission)obj;
                bool           flag   = false;
                GarrMissionRec record = StaticDB.garrMissionDB.GetRecord(jamGarrisonMobileMission.MissionRecID);
                if (record != null)
                {
                    if (record.GarrFollowerTypeID == 4u)
                    {
                        if (jamGarrisonMobileMission.MissionState == 1)
                        {
                            long num  = GarrisonStatus.CurrentTime() - jamGarrisonMobileMission.StartTime;
                            long num2 = jamGarrisonMobileMission.MissionDuration - num;
                            if (num2 <= 0L)
                            {
                                flag = true;
                            }
                        }
                        if (jamGarrisonMobileMission.MissionState == 2)
                        {
                            flag = true;
                        }
                        if (flag)
                        {
                        }
                    }
                }
            }
        }
        finally
        {
            IDisposable disposable;
            if ((disposable = (enumerator as IDisposable)) != null)
            {
                disposable.Dispose();
            }
        }
    }