private void InitEquipmentSlots(WrapperGarrisonFollower follower)
        {
            AbilityDisplay[] componentsInChildren = this.m_equipmentSlotsRootObject.GetComponentsInChildren <AbilityDisplay>(true);
            for (int i = 0; i < componentsInChildren.Length; i++)
            {
                Object.Destroy(componentsInChildren[i].gameObject);
            }
            bool flag  = false;
            bool flag2 = true;

            for (int j = 0; j < follower.AbilityIDs.Count; j++)
            {
                GarrAbilityRec record = StaticDB.garrAbilityDB.GetRecord(follower.AbilityIDs[j]);
                if ((record.Flags & 1u) != 0u)
                {
                    flag = true;
                    GameObject gameObject = Object.Instantiate <GameObject>(this.m_equipmentSlotPrefab);
                    gameObject.transform.SetParent(this.m_equipmentSlotsRootObject.transform, false);
                    AbilityDisplay component = gameObject.GetComponent <AbilityDisplay>();
                    component.SetAbility(follower.AbilityIDs[j], true, true, this);
                }
            }
            bool            flag3   = (follower.Flags & 8) != 0;
            GarrFollowerRec record2 = StaticDB.garrFollowerDB.GetRecord(follower.GarrFollowerID);

            if (flag3 || follower.FollowerLevel < MissionDetailView.GarrisonFollower_GetMaxFollowerLevel((int)record2.GarrFollowerTypeID))
            {
                flag2 = false;
            }
            this.m_equipmentSlotsText.gameObject.SetActive(flag || flag2);
        }
Esempio n. 2
0
 private void OnDestroy()
 {
     if (this.m_missionDetailView != null)
     {
         MissionDetailView missionDetailView = this.m_missionDetailView;
         missionDetailView.FollowerSlotsChangedAction = (Action)Delegate.Remove(missionDetailView.FollowerSlotsChangedAction, new Action(this.InitHeartPanel));
     }
 }
Esempio n. 3
0
 private void Start()
 {
     if (this.m_missionDetailView != null)
     {
         MissionDetailView expr_17 = this.m_missionDetailView;
         expr_17.FollowerSlotsChangedAction = (Action)Delegate.Combine(expr_17.FollowerSlotsChangedAction, new Action(this.InitHeartPanel));
     }
 }
 public void SetMission(int garrMissionID)
 {
     this.m_missionDetailView.gameObject.SetActive(true);
     this.m_missionDetailView.HandleMissionSelected(garrMissionID);
     this.m_followerListView.m_missionDetailView = this.m_missionDetailView;
     this.m_followerListView.InitFollowerList();
     this.m_followerListView.HandleMissionChanged(garrMissionID);
 }
 private void HandleMissionSelected(int garrMissionID)
 {
     if (garrMissionID == 0)
     {
         this.m_missionDetailView.get_gameObject().SetActive(false);
         return;
     }
     this.m_missionDetailView.get_gameObject().SetActive(true);
     this.m_missionDetailView.HandleMissionSelected(garrMissionID);
     this.m_followerListView.m_missionDetailView = this.m_missionDetailView;
     this.m_followerListView.InitFollowerList();
     this.m_followerListView.HandleMissionChanged(garrMissionID);
 }
Esempio n. 6
0
    public void ExpandDetailViewComplete()
    {
        RectTransform component = this.m_followerDetailView.traitsAndAbilitiesRootObject.GetComponent <RectTransform>();

        this.m_followerDetailViewLayoutElement.set_minHeight(component.get_rect().get_height() + (float)this.m_followerDetailViewExtraHeight);
        JamGarrisonFollower jamGarrisonFollower = PersistentFollowerData.followerDictionary.get_Item(this.m_followerID);
        int             num    = (jamGarrisonFollower.ItemLevelWeapon + jamGarrisonFollower.ItemLevelArmor) / 2;
        bool            flag   = (jamGarrisonFollower.Flags & 8) != 0;
        GarrFollowerRec record = StaticDB.garrFollowerDB.GetRecord(jamGarrisonFollower.GarrFollowerID);

        if (record != null && num < 850 && jamGarrisonFollower.FollowerLevel == MissionDetailView.GarrisonFollower_GetMaxFollowerLevel((int)record.GarrFollowerTypeID) && !flag)
        {
            this.m_useArmamentsButton.SetActive(true);
            this.m_statusText.get_gameObject().SetActive(false);
        }
    }
Esempio n. 7
0
    public void SetFollower(int garrFollowerID)
    {
        this.m_follower        = null;
        this.m_garrFollowerRec = null;
        if (this.m_abilityAreaRootObject != null)
        {
            RectTransform[] componentsInChildren = this.m_abilityAreaRootObject.GetComponentsInChildren <RectTransform>(true);
            if (componentsInChildren != null)
            {
                for (int i = 0; i < componentsInChildren.Length; i++)
                {
                    if (componentsInChildren[i] != null && componentsInChildren[i] != this.m_abilityAreaRootObject.transform)
                    {
                        Object.DestroyImmediate(componentsInChildren[i].gameObject);
                    }
                }
            }
        }
        if (garrFollowerID == 0)
        {
            if (this.m_portraitRingImage != null)
            {
                this.m_portraitRingImage.gameObject.SetActive(false);
            }
            if (this.m_heartPanel != null)
            {
                this.m_heartPanel.SetActive(false);
            }
            this.m_levelBorderImage.gameObject.SetActive(false);
            this.m_levelBorderImage_TitleQuality.gameObject.SetActive(false);
            this.m_portraitImage.gameObject.SetActive(false);
            this.m_qualityColorImage.gameObject.SetActive(false);
            this.m_qualityColorImage_TitleQuality.gameObject.SetActive(false);
            this.m_levelBorderImage.color = Color.white;
            this.m_levelText.gameObject.SetActive(false);
            this.isOccupied = false;
            this.m_portraitFrameImage.enabled = true;
            if (this.currentGarrFollowerID != garrFollowerID)
            {
                AdventureMapPanel.instance.MissionFollowerSlotChanged(this.currentGarrFollowerID, false);
            }
            bool flag = this.currentGarrFollowerID != 0;
            this.currentGarrFollowerID = 0;
            if (flag && this.m_missionDetailView != null)
            {
                this.m_missionDetailView.UpdateMissionStatus();
            }
            if (this.m_disableButtonWhenFollowerAssigned)
            {
                this.m_portraitFrameImage.GetComponent <Image>().enabled = true;
            }
            if (this.m_missionDetailView != null)
            {
                this.m_missionDetailView.NotifyFollowerSlotsChanged();
            }
            return;
        }
        this.m_portraitRingImage.gameObject.SetActive(true);
        this.m_levelBorderImage.gameObject.SetActive(true);
        GarrFollowerRec record = StaticDB.garrFollowerDB.GetRecord(garrFollowerID);

        if (record == null)
        {
            return;
        }
        if (record.GarrFollowerTypeID != 4u)
        {
            return;
        }
        MissionMechanic[] mechanics = base.gameObject.transform.parent.parent.parent.gameObject.GetComponentsInChildren <MissionMechanic>(true);
        if (mechanics == null)
        {
            return;
        }
        JamGarrisonFollower jamGarrisonFollower = PersistentFollowerData.followerDictionary[garrFollowerID];
        float num = 0f;

        if (this.m_missionDetailView != null)
        {
            num = MissionDetailView.ComputeFollowerBias(jamGarrisonFollower, jamGarrisonFollower.FollowerLevel, (jamGarrisonFollower.ItemLevelWeapon + jamGarrisonFollower.ItemLevelArmor) / 2, this.m_missionDetailView.GetCurrentMissionID());
        }
        if (num == -1f)
        {
            this.m_levelText.color = Color.red;
        }
        else if (num < 0f)
        {
            this.m_levelText.color = new Color(0.9333f, 0.4392f, 0.2117f);
        }
        else
        {
            this.m_levelText.color = Color.white;
        }
        if (this.m_abilityAreaRootObject != null && num > -1f)
        {
            for (int j = 0; j < jamGarrisonFollower.AbilityID.Length; j++)
            {
                GarrAbilityRec garrAbilityRec = StaticDB.garrAbilityDB.GetRecord(jamGarrisonFollower.AbilityID[j]);
                if ((garrAbilityRec.Flags & 1u) == 0u)
                {
                    StaticDB.garrAbilityEffectDB.EnumRecordsByParentID(garrAbilityRec.ID, delegate(GarrAbilityEffectRec garrAbilityEffectRec)
                    {
                        if (garrAbilityEffectRec.GarrMechanicTypeID == 0u)
                        {
                            return(true);
                        }
                        if (garrAbilityEffectRec.AbilityAction != 0u)
                        {
                            return(true);
                        }
                        GarrMechanicTypeRec record2 = StaticDB.garrMechanicTypeDB.GetRecord((int)garrAbilityEffectRec.GarrMechanicTypeID);
                        if (record2 == null)
                        {
                            return(true);
                        }
                        bool flag3 = false;
                        for (int k = 0; k < mechanics.Length; k++)
                        {
                            if (mechanics[k].m_missionMechanicTypeID == record2.ID)
                            {
                                flag3 = true;
                                break;
                            }
                        }
                        if (!flag3)
                        {
                            return(true);
                        }
                        GameObject gameObject = Object.Instantiate <GameObject>(this.m_missionMechanicCounterPrefab);
                        gameObject.transform.SetParent(this.m_abilityAreaRootObject.transform, false);
                        MissionMechanicTypeCounter component = gameObject.GetComponent <MissionMechanicTypeCounter>();
                        component.usedIcon.gameObject.SetActive(false);
                        Sprite sprite2 = GeneralHelpers.LoadIconAsset(AssetBundleType.Icons, garrAbilityRec.IconFileDataID);
                        if (sprite2 != null)
                        {
                            component.missionMechanicIcon.sprite = sprite2;
                        }
                        component.countersMissionMechanicTypeID = record2.ID;
                        return(false);
                    });
                }
            }
        }
        this.m_levelText.gameObject.SetActive(true);
        if (jamGarrisonFollower.FollowerLevel < 110)
        {
            this.m_levelText.text = GeneralHelpers.TextOrderString(StaticDB.GetString("LEVEL", null), jamGarrisonFollower.FollowerLevel.ToString());
        }
        else
        {
            this.m_levelText.text = GeneralHelpers.TextOrderString(StaticDB.GetString("ILVL", null), ((jamGarrisonFollower.ItemLevelArmor + jamGarrisonFollower.ItemLevelWeapon) / 2).ToString());
        }
        this.m_portraitImage.gameObject.SetActive(true);
        Sprite sprite = GeneralHelpers.LoadIconAsset(AssetBundleType.PortraitIcons, (GarrisonStatus.Faction() != PVP_FACTION.HORDE) ? record.AllianceIconFileDataID : record.HordeIconFileDataID);

        if (sprite != null)
        {
            this.m_portraitImage.sprite = sprite;
        }
        if (jamGarrisonFollower.Quality == 6)
        {
            this.m_qualityColorImage_TitleQuality.gameObject.SetActive(true);
            this.m_levelBorderImage_TitleQuality.gameObject.SetActive(true);
            this.m_qualityColorImage.gameObject.SetActive(false);
            this.m_levelBorderImage.gameObject.SetActive(false);
        }
        else
        {
            this.m_qualityColorImage_TitleQuality.gameObject.SetActive(false);
            this.m_levelBorderImage_TitleQuality.gameObject.SetActive(false);
            this.m_qualityColorImage.gameObject.SetActive(true);
            this.m_levelBorderImage.gameObject.SetActive(true);
            Color qualityColor = GeneralHelpers.GetQualityColor(jamGarrisonFollower.Quality);
            this.m_qualityColorImage.color = qualityColor;
            this.m_levelBorderImage.color  = qualityColor;
        }
        this.isOccupied = true;
        bool flag2 = (jamGarrisonFollower.Flags & 8) != 0;

        this.m_qualityColorImage.gameObject.SetActive(!flag2);
        this.m_levelBorderImage.gameObject.SetActive(!flag2);
        if (this.m_heartPanel != null)
        {
            this.m_heartPanel.SetActive(flag2);
            if (flag2)
            {
                this.m_garrFollowerRec = record;
                this.m_follower        = jamGarrisonFollower;
            }
        }
        this.m_portraitFrameImage.enabled = !flag2;
        this.currentGarrFollowerID        = garrFollowerID;
        if (this.m_disableButtonWhenFollowerAssigned)
        {
            this.m_portraitFrameImage.GetComponent <Image>().enabled = false;
        }
        if (this.m_missionDetailView != null)
        {
            this.m_missionDetailView.UpdateMissionStatus();
            this.m_missionDetailView.NotifyFollowerSlotsChanged();
        }
    }
Esempio n. 8
0
    private void DetailFollowerListItem_ManageFollowerDetailViewSize(int garrFollowerID)
    {
        bool flag = garrFollowerID == this.m_followerID && this.m_followerDetailViewLayoutElement.minHeight == 0f;

        if (flag)
        {
            if (this.m_followerDetailView.GetCurrentFollower() != this.m_followerID)
            {
                this.m_followerDetailView.SetFollower(this.m_followerID);
            }
            iTween.StopByName(base.gameObject, "FollowerDetailExpand");
            iTween.StopByName(base.gameObject, "FollowerDetailExpandArrow");
            iTween.StopByName(base.gameObject, "FollowerDetailContract");
            iTween.StopByName(base.gameObject, "FollowerDetailContractArrow");
            this.SelectMe();
            bool  flag2 = false;
            float num   = 0f;
            FollowerListItem[] componentsInChildren = OrderHallFollowersPanel.instance.m_followerDetailListContent.GetComponentsInChildren <FollowerListItem>(true);
            foreach (FollowerListItem followerListItem in componentsInChildren)
            {
                if (followerListItem == this)
                {
                    break;
                }
                if (followerListItem.m_followerDetailViewLayoutElement.minHeight > 0f)
                {
                    num   = followerListItem.m_followerDetailViewLayoutElement.minHeight;
                    flag2 = true;
                    break;
                }
            }
            RectTransform component = this.m_followerDetailView.traitsAndAbilitiesRootObject.GetComponent <RectTransform>();
            OrderHallFollowersPanel.instance.ScrollListTo(-base.transform.localPosition.y - ((!flag2) ? 0f : num) - 56f);
            bool active = true;
            JamGarrisonFollower jamGarrisonFollower = PersistentFollowerData.followerDictionary[this.m_followerID];
            bool            flag3  = (jamGarrisonFollower.Flags & 8) != 0;
            GarrFollowerRec record = StaticDB.garrFollowerDB.GetRecord(jamGarrisonFollower.GarrFollowerID);
            if (flag3 || jamGarrisonFollower.FollowerLevel < MissionDetailView.GarrisonFollower_GetMaxFollowerLevel((int)record.GarrFollowerTypeID))
            {
                active = false;
            }
            this.m_useArmamentsButton.SetActive(active);
            iTween.ValueTo(base.gameObject, iTween.Hash(new object[]
            {
                "name",
                "FollowerDetailExpand",
                "from",
                this.m_followerDetailViewLayoutElement.minHeight,
                "to",
                component.rect.height + (float)this.m_followerDetailViewExtraHeight,
                "time",
                0.25f,
                "easetype",
                iTween.EaseType.easeOutCubic,
                "onupdate",
                "SetDetailViewHeight",
                "oncomplete",
                "ExpandDetailViewComplete"
            }));
            iTween.ValueTo(base.gameObject, iTween.Hash(new object[]
            {
                "name",
                "FollowerDetailExpandArrow",
                "from",
                0,
                "to",
                -90f,
                "time",
                0.25f,
                "easetype",
                iTween.EaseType.easeOutCubic,
                "onupdate",
                "SetExpandArrowRotation",
                "oncomplete",
                "ExpandArrowRotationComplete"
            }));
            this.m_followerDetailViewCanvasGroup.alpha = 1f;
        }
        else if (this.m_followerDetailViewLayoutElement.minHeight > 0f)
        {
            iTween.StopByName(base.gameObject, "FollowerDetailExpand");
            iTween.StopByName(base.gameObject, "FollowerDetailExpandArrow");
            iTween.StopByName(base.gameObject, "FollowerDetailContract");
            iTween.StopByName(base.gameObject, "FollowerDetailContractArrow");
            this.DeselectMe();
            iTween.ValueTo(base.gameObject, iTween.Hash(new object[]
            {
                "name",
                "FollowerDetailContract",
                "from",
                this.m_followerDetailViewLayoutElement.minHeight,
                "to",
                0f,
                "time",
                0.25f,
                "easetype",
                iTween.EaseType.easeOutCubic,
                "onupdate",
                "SetDetailViewHeight",
                "oncomplete",
                "ContractDetailViewComplete"
            }));
            iTween.ValueTo(base.gameObject, iTween.Hash(new object[]
            {
                "name",
                "FollowerDetailContractArrow",
                "from",
                this.m_expandArrow.transform.localEulerAngles.z,
                "to",
                360f,
                "time",
                0.25f,
                "easetype",
                iTween.EaseType.easeOutCubic,
                "onupdate",
                "SetExpandArrowRotation",
                "oncomplete",
                "ContractArrowRotationComplete"
            }));
        }
    }
        public void SetFollower(int garrFollowerID)
        {
            this.m_garrFollowerRec = null;
            if (this.m_abilityAreaRootObject != null)
            {
                RectTransform[] componentsInChildren = this.m_abilityAreaRootObject.GetComponentsInChildren <RectTransform>(true);
                if (componentsInChildren != null)
                {
                    for (int i = 0; i < (int)componentsInChildren.Length; i++)
                    {
                        if (componentsInChildren[i] != null && componentsInChildren[i] != this.m_abilityAreaRootObject.transform)
                        {
                            componentsInChildren[i].gameObject.transform.SetParent(null);
                            UnityEngine.Object.Destroy(componentsInChildren[i].gameObject);
                        }
                    }
                }
            }
            if (garrFollowerID == 0)
            {
                if (this.m_portraitRingImage != null)
                {
                    this.m_portraitRingImage.gameObject.SetActive(false);
                }
                if (this.m_heartPanel != null)
                {
                    this.m_heartPanel.SetActive(false);
                }
                this.m_levelBorderImage.gameObject.SetActive(false);
                this.m_levelBorderImage_TitleQuality.gameObject.SetActive(false);
                this.m_portraitImage.gameObject.SetActive(false);
                this.m_qualityColorImage.gameObject.SetActive(false);
                this.m_levelText.gameObject.SetActive(false);
                this.isOccupied = false;
                this.m_portraitFrameImage.enabled = true;
                if (this.currentGarrFollowerID != garrFollowerID)
                {
                    AdventureMapPanel.instance.MissionFollowerSlotChanged(this.currentGarrFollowerID, false);
                }
                bool flag = this.currentGarrFollowerID != 0;
                this.currentGarrFollowerID = 0;
                if (flag && this.m_missionDetailView != null)
                {
                    this.m_missionDetailView.UpdateMissionStatus();
                }
                if (this.m_disableButtonWhenFollowerAssigned)
                {
                    this.m_portraitFrameImage.GetComponent <Image>().enabled = true;
                }
                if (this.m_missionDetailView != null)
                {
                    this.m_missionDetailView.NotifyFollowerSlotsChanged();
                }
                return;
            }
            this.m_portraitRingImage.gameObject.SetActive(true);
            this.m_levelBorderImage.gameObject.SetActive(true);
            GarrFollowerRec garrFollowerRec = StaticDB.garrFollowerDB.GetRecord(garrFollowerID);

            if (garrFollowerRec == null)
            {
                return;
            }
            if (garrFollowerRec.GarrFollowerTypeID != (uint)GarrisonStatus.GarrisonFollowerType)
            {
                return;
            }
            MissionMechanic[] missionMechanicArray = base.gameObject.transform.parent.parent.parent.gameObject.GetComponentsInChildren <MissionMechanic>(true);
            if (missionMechanicArray == null)
            {
                return;
            }
            WrapperGarrisonFollower item = PersistentFollowerData.followerDictionary[garrFollowerID];
            float single = 0f;

            if (this.m_missionDetailView != null)
            {
                single = MissionDetailView.ComputeFollowerBias(item, item.FollowerLevel, (item.ItemLevelWeapon + item.ItemLevelArmor) / 2, this.m_missionDetailView.GetCurrentMissionID());
            }
            if (single == -1f)
            {
                this.m_levelText.color = Color.red;
            }
            else if (single >= 0f)
            {
                this.m_levelText.color = Color.white;
            }
            else
            {
                this.m_levelText.color = new Color(0.9333f, 0.4392f, 0.2117f);
            }
            if (this.m_abilityAreaRootObject != null && single > -1f)
            {
                for (int j = 0; j < item.AbilityIDs.Count; j++)
                {
                    GarrAbilityRec garrAbilityRec = StaticDB.garrAbilityDB.GetRecord(item.AbilityIDs[j]);
                    if ((garrAbilityRec.Flags & 1) == 0)
                    {
                        GarrAbilityEffectRec garrAbilityEffectRec1 = StaticDB.garrAbilityEffectDB.GetRecordsByParentID(garrAbilityRec.ID).FirstOrDefault <GarrAbilityEffectRec>((GarrAbilityEffectRec garrAbilityEffectRec) => {
                            if (garrAbilityEffectRec.GarrMechanicTypeID == 0 || garrAbilityEffectRec.AbilityAction != 0)
                            {
                                return(false);
                            }
                            GarrMechanicTypeRec record = StaticDB.garrMechanicTypeDB.GetRecord((int)garrAbilityEffectRec.GarrMechanicTypeID);
                            if (record == null)
                            {
                                return(false);
                            }
                            return(missionMechanicArray.Any <MissionMechanic>((MissionMechanic mechanic) => mechanic.m_missionMechanicTypeID == record.ID));
                        });
                        if (garrAbilityEffectRec1 != null)
                        {
                            GameObject gameObject = UnityEngine.Object.Instantiate <GameObject>(this.m_missionMechanicCounterPrefab, this.m_abilityAreaRootObject.transform, false);
                            MissionMechanicTypeCounter component = gameObject.GetComponent <MissionMechanicTypeCounter>();
                            component.usedIcon.gameObject.SetActive(false);
                            Sprite sprite = GeneralHelpers.LoadIconAsset(AssetBundleType.Icons, garrAbilityRec.IconFileDataID);
                            if (sprite != null)
                            {
                                component.missionMechanicIcon.sprite = sprite;
                            }
                            component.countersMissionMechanicTypeID = (int)garrAbilityEffectRec1.GarrMechanicTypeID;
                        }
                    }
                }
            }
            this.m_levelText.gameObject.SetActive(true);
            this.m_levelText.text = item.FollowerLevel.ToString();
            this.m_portraitImage.gameObject.SetActive(true);
            Sprite sprite1 = GeneralHelpers.LoadIconAsset(AssetBundleType.PortraitIcons, (GarrisonStatus.Faction() != PVP_FACTION.HORDE ? garrFollowerRec.AllianceIconFileDataID : garrFollowerRec.HordeIconFileDataID));

            if (sprite1 != null)
            {
                this.m_portraitImage.sprite = sprite1;
            }
            if (item.Quality != 6)
            {
                this.m_levelBorderImage_TitleQuality.gameObject.SetActive(false);
                this.m_qualityColorImage.gameObject.SetActive(true);
                this.m_levelBorderImage.gameObject.SetActive(true);
                Color qualityColor = GeneralHelpers.GetQualityColor(item.Quality);
                this.m_qualityColorImage.color = qualityColor;
            }
            else
            {
                this.m_levelBorderImage_TitleQuality.gameObject.SetActive(true);
                this.m_qualityColorImage.gameObject.SetActive(false);
                this.m_levelBorderImage.gameObject.SetActive(false);
            }
            this.isOccupied = true;
            bool flags = (item.Flags & 8) != 0;

            this.m_qualityColorImage.gameObject.SetActive(!flags);
            this.m_levelBorderImage.gameObject.SetActive(!flags);
            if (this.m_heartPanel != null)
            {
                this.m_heartPanel.SetActive(flags);
                if (flags)
                {
                    this.m_garrFollowerRec = garrFollowerRec;
                    this.m_follower        = item;
                }
            }
            this.m_portraitFrameImage.enabled = !flags;
            this.currentGarrFollowerID        = garrFollowerID;
            if (this.m_disableButtonWhenFollowerAssigned)
            {
                this.m_portraitFrameImage.GetComponent <Image>().enabled = false;
            }
            if (this.m_missionDetailView != null)
            {
                this.m_missionDetailView.UpdateMissionStatus();
                this.m_missionDetailView.NotifyFollowerSlotsChanged();
            }
        }
        private void DetailFollowerListItem_ManageFollowerDetailViewSize(int garrFollowerID)
        {
            object mFollowerDetailViewExtraHeight;

            if ((garrFollowerID != this.m_followerID ? false : this.m_followerDetailViewLayoutElement.minHeight == 0f))
            {
                if (this.m_followerDetailView.GetCurrentFollower() != this.m_followerID)
                {
                    this.m_followerDetailView.SetFollower(this.m_followerID);
                }
                iTween.StopByName(base.gameObject, "FollowerDetailExpand");
                iTween.StopByName(base.gameObject, "FollowerDetailExpandArrow");
                iTween.StopByName(base.gameObject, "FollowerDetailContract");
                iTween.StopByName(base.gameObject, "FollowerDetailContractArrow");
                this.SelectMe();
                bool  flag = false;
                float mFollowerDetailViewLayoutElement  = 0f;
                FollowerListItem[] componentsInChildren = OrderHallFollowersPanel.instance.m_followerDetailListContent.GetComponentsInChildren <FollowerListItem>(true);
                int num = 0;
                while (num < (int)componentsInChildren.Length)
                {
                    FollowerListItem followerListItem = componentsInChildren[num];
                    if (followerListItem == this)
                    {
                        break;
                    }
                    else if (followerListItem.m_followerDetailViewLayoutElement.minHeight <= 0f)
                    {
                        num++;
                    }
                    else
                    {
                        mFollowerDetailViewLayoutElement = followerListItem.m_followerDetailViewLayoutElement.minHeight;
                        flag = true;
                        break;
                    }
                }
                RectTransform           component = this.m_followerDetailView.traitsAndAbilitiesRootObject.GetComponent <RectTransform>();
                OrderHallFollowersPanel orderHallFollowersPanel = OrderHallFollowersPanel.instance;
                Vector3 vector3 = base.transform.localPosition;
                orderHallFollowersPanel.ScrollListTo(-vector3.y - (!flag ? 0f : mFollowerDetailViewLayoutElement) - 56f);
                bool flag1 = true;
                WrapperGarrisonFollower item = PersistentFollowerData.followerDictionary[this.m_followerID];
                bool            flags        = (item.Flags & 8) != 0;
                GarrFollowerRec record       = StaticDB.garrFollowerDB.GetRecord(item.GarrFollowerID);
                if (flags || item.FollowerLevel < MissionDetailView.GarrisonFollower_GetMaxFollowerLevel((int)record.GarrFollowerTypeID))
                {
                    flag1 = false;
                }
                GameObject gameObject = base.gameObject;
                object[]   objArray   = new object[] { "name", "FollowerDetailExpand", "from", this.m_followerDetailViewLayoutElement.minHeight, "to", null, null, null, null, null, null, null, null, null };
                float      single     = component.rect.height;
                if (!flags)
                {
                    mFollowerDetailViewExtraHeight = this.m_followerDetailViewExtraHeight;
                }
                else
                {
                    mFollowerDetailViewExtraHeight = null;
                }
                objArray[5]  = single + (float)mFollowerDetailViewExtraHeight;
                objArray[6]  = "time";
                objArray[7]  = 0.25f;
                objArray[8]  = "easetype";
                objArray[9]  = iTween.EaseType.easeOutCubic;
                objArray[10] = "onupdate";
                objArray[11] = "SetDetailViewHeight";
                objArray[12] = "oncomplete";
                objArray[13] = "ExpandDetailViewComplete";
                iTween.ValueTo(gameObject, iTween.Hash(objArray));
                iTween.ValueTo(base.gameObject, iTween.Hash(new object[] { "name", "FollowerDetailExpandArrow", "from", 0, "to", -90f, "time", 0.25f, "easetype", iTween.EaseType.easeOutCubic, "onupdate", "SetExpandArrowRotation", "oncomplete", "ExpandArrowRotationComplete" }));
                this.m_followerDetailViewCanvasGroup.alpha = 1f;
            }
            else if (this.m_followerDetailViewLayoutElement.minHeight > 0f)
            {
                iTween.StopByName(base.gameObject, "FollowerDetailExpand");
                iTween.StopByName(base.gameObject, "FollowerDetailExpandArrow");
                iTween.StopByName(base.gameObject, "FollowerDetailContract");
                iTween.StopByName(base.gameObject, "FollowerDetailContractArrow");
                this.DeselectMe();
                iTween.ValueTo(base.gameObject, iTween.Hash(new object[] { "name", "FollowerDetailContract", "from", this.m_followerDetailViewLayoutElement.minHeight, "to", 0f, "time", 0.25f, "easetype", iTween.EaseType.easeOutCubic, "onupdate", "SetDetailViewHeight", "oncomplete", "ContractDetailViewComplete" }));
                GameObject gameObject1 = base.gameObject;
                object[]   objArray1   = new object[14];
                objArray1[0] = "name";
                objArray1[1] = "FollowerDetailContractArrow";
                objArray1[2] = "from";
                Vector3 mExpandArrow = this.m_expandArrow.transform.localEulerAngles;
                objArray1[3]  = mExpandArrow.z;
                objArray1[4]  = "to";
                objArray1[5]  = 360f;
                objArray1[6]  = "time";
                objArray1[7]  = 0.25f;
                objArray1[8]  = "easetype";
                objArray1[9]  = iTween.EaseType.easeOutCubic;
                objArray1[10] = "onupdate";
                objArray1[11] = "SetExpandArrowRotation";
                objArray1[12] = "oncomplete";
                objArray1[13] = "ContractArrowRotationComplete";
                iTween.ValueTo(gameObject1, iTween.Hash(objArray1));
            }
        }