protected virtual void Start()
        {
            List <ScrollListSetUp> list = ((IEnumerable <MonoBehaviour>)((Component)this).GetComponents <MonoBehaviour>()).Where <MonoBehaviour>((Func <MonoBehaviour, bool>)(item => item is ScrollListSetUp)).Select <MonoBehaviour, ScrollListSetUp>((Func <MonoBehaviour, ScrollListSetUp>)(item => item as ScrollListSetUp)).ToList <ScrollListSetUp>();

            if (UnityEngine.Object.op_Inequality((UnityEngine.Object) this.m_ScrollAutoFit, (UnityEngine.Object)null))
            {
                this.m_ScrollAutoFit.set_content(this.GetRectTransForm);
                this.m_ScrollAutoFit.ItemScale = this.ItemScaleMargin;
                // ISSUE: method pointer
                this.m_ScrollAutoFit.OnScrollStop.AddListener(new UnityAction((object)this, __methodptr(OnScrollStop)));
            }
            ((Component)this.m_ItemBase).get_gameObject().SetActive(false);
            float num = this.m_ScrollMode != TowerScrollListController.ScrollMode.Normal ? 1f : -1f;
            List <TowerQuestListItem> towerQuestListItemList = new List <TowerQuestListItem>();

            for (int index = 0; index < this.m_ItemCnt; ++index)
            {
                RectTransform rectTransform = (RectTransform)UnityEngine.Object.Instantiate <RectTransform>((M0)this.m_ItemBase);
                ((Transform)rectTransform).SetParent(((Component)this).get_transform(), false);
                rectTransform.set_anchoredPosition(new Vector2(0.0f, (float)((double)this.ItemScale * (double)this.Margin * (double)index + (double)this.ItemScale * 0.5) * num));
                this.m_ItemList.Add(rectTransform);
                TowerQuestListItem component = (TowerQuestListItem)((Component)rectTransform).GetComponent <TowerQuestListItem>();
                if (UnityEngine.Object.op_Inequality((UnityEngine.Object)component, (UnityEngine.Object)null))
                {
                    towerQuestListItemList.Add(component);
                }
                ((Component)rectTransform).get_gameObject().SetActive(true);
            }
            using (List <ScrollListSetUp> .Enumerator enumerator = list.GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    ScrollListSetUp current = enumerator.Current;
                    current.OnSetUpItems();
                    for (int idx = 0; idx < this.m_ItemCnt; ++idx)
                    {
                        current.OnUpdateItems(idx, ((Component)this.m_ItemList[idx]).get_gameObject());
                    }
                }
            }
            this.m_ScrollMode = !MonoSingleton <GameManager> .Instance.FindTower(GlobalVars.SelectedTowerID).is_down ? TowerScrollListController.ScrollMode.Reverse : TowerScrollListController.ScrollMode.Normal;

            this.ChangeScrollMode(this.m_ScrollMode);
            this.StartCoroutine(this.LoadTowerBG(towerQuestListItemList.ToArray()));
        }
Esempio n. 2
0
 public void OnUpdateItems(int idx, GameObject obj)
 {
     if (this.mFloorParams == null)
     {
         this.mFloorParams = MonoSingleton <GameManager> .Instance.FindTowerFloors(GlobalVars.SelectedTowerID);
     }
     if (idx < 0)
     {
         obj.SetActive(false);
     }
     else if (idx >= this.mFloorParams.Count)
     {
         DataSource.Bind <TowerFloorParam>(obj, (TowerFloorParam)null);
         obj.SetActive(true);
         TowerQuestListItem component = (TowerQuestListItem)obj.GetComponent <TowerQuestListItem>();
         if (!Object.op_Inequality((Object)component, (Object)null))
         {
             return;
         }
         component.UpdateParam((TowerFloorParam)null, 0);
     }
     else
     {
         obj.SetActive(true);
         DataSource.Bind <TowerFloorParam>(obj, this.mFloorParams[idx]);
         TowerQuestListItem component1 = (TowerQuestListItem)obj.GetComponent <TowerQuestListItem>();
         if (Object.op_Inequality((Object)component1, (Object)null))
         {
             component1.UpdateParam(this.mFloorParams[idx], (int)this.mFloorParams[idx].FloorIndex + 1);
         }
         ListItemEvents component2 = (ListItemEvents)obj.GetComponent <ListItemEvents>();
         if (!Object.op_Inequality((Object)component2, (Object)null))
         {
             return;
         }
         component2.OnSelect = new ListItemEvents.ListItemEvent(this.OnSelectItem);
     }
 }
 private void FocusUpdate()
 {
   float num = this.m_ScrollMode != TowerScrollListController.ScrollMode.Normal ? 1f : -1f;
   Rect rect = this.Cursor.get_rect();
   // ISSUE: explicit reference operation
   ((Rect) @rect).set_center(new Vector2(0.0f, (float) ((double) this.ItemScaleMargin * 3.0 - (double) this.ItemScaleMargin * 0.5) * num));
   // ISSUE: explicit reference operation
   ((Rect) @rect).set_size(this.Cursor.get_sizeDelta());
   using (List<TowerQuestListItem>.Enumerator enumerator = this.m_ItemList.ConvertAll<TowerQuestListItem>((Converter<RectTransform, TowerQuestListItem>) (item => (TowerQuestListItem) ((Component) item).GetComponent<TowerQuestListItem>())).GetEnumerator())
   {
     while (enumerator.MoveNext())
     {
       TowerQuestListItem current = enumerator.Current;
       if (((Component) current).get_gameObject().get_activeInHierarchy())
       {
         Vector2 anchoredPosition = current.rectTransform.get_anchoredPosition();
         anchoredPosition.y = this.GetRectTransForm.get_anchoredPosition().y + anchoredPosition.y;
         // ISSUE: explicit reference operation
         current.OnFocus(((Rect) @rect).Contains(anchoredPosition));
       }
     }
   }
 }