public void OnSelectItem(ChallengeSkipContext data)
    {
        SoundUtil.PlaySE(SEID.SE_MENU_OK);

        m_EventData.bSkip       = true;
        m_EventData.SkipLevel   = data.SkipLevel;
        m_EventData.UseTicket   = m_UseTicket;
        m_EventData.questMaster = MasterDataUtil.GetChallengeQuestMaster(m_EventData.eventMaster.event_id, data.SkipLevel);

        Hide();
    }
    public RectTransform GetItem(int index, RectTransform recyclableItem)
    {
        if (null == recyclableItem)
        {
            // 初回ロード時はinstantateItemCountで指定した回数分だけitemがnullで来るので、ここで生成してあげる
            // 以降はitemが再利用されるため、Reflesh()しない限りnullは来ない
            recyclableItem = Instantiate(itemPrefab).GetComponent <RectTransform>();

            ChallengeSkipContext item = new ChallengeSkipContext();
            item.DidSelectItem = OnSelectItem;

            recyclableItem.gameObject.GetComponent <M4uContextRoot>().Context = item;

            ChallengeSkipListItem listItem = recyclableItem.gameObject.GetComponent <ChallengeSkipListItem>();

            viewItems.Add(listItem);

            //位置調整
            //RectTransform offset = recyclableItem.gameObject.GetComponent<ChallengeSkipListItem>().Offset;
            //float posX = recyclableItem.sizeDelta.x * -0.5f;
            //offset.anchoredPosition = new Vector2(posX, offset.anchoredPosition.y);
        }

        {
            if (SkipList.Count > index)
            {
                ChallengeSkipListItem listItem = recyclableItem.gameObject.GetComponent <ChallengeSkipListItem>();
                listItem.itemIndex = index;


                ChallengeSkipContext item = listItem.Context;
                item.Copy(SkipList[index]);
                item.setup();
            }
        }

        return(recyclableItem);
    }
Exemple #3
0
 public void Copy(ChallengeSkipContext context)
 {
     m_SkipLevel = context.SkipLevel;
 }
    private void updateSkipList()
    {
        int  now_level     = m_EventData.bSkip ? m_EventData.SkipLevel : m_EventData.info.challenge_level;
        int  skip_level    = m_EventData.eventMaster.skip_level;
        int  max_level     = (m_EventData.info.max_level <= m_EventData.eventMaster.skip_max ? m_EventData.info.max_level : m_EventData.eventMaster.skip_max);
        uint boss_chara_id = m_EventData.questMaster.boss_chara_id;

        int skip_cnt = m_EventData.info.skip_cnt;

        m_UseTicket = m_EventData.eventMaster.skip_base_ticket_num + (m_EventData.eventMaster.skip_stepup_ticket_num * skip_cnt);

        //基本情報
        LevelValue  = string.Format("{0}", now_level);
        TicketValue = string.Format(GameTextUtil.GetText("growth_boss_32"), UserDataAdmin.Instance.m_StructPlayer.have_ticket);
        SkipValue   = string.Format(GameTextUtil.GetText("growth_boss_32"), m_UseTicket);

        //リストクリア
        SkipList.Clear();

        int start_level = (max_level / skip_level) * skip_level;

        if (now_level == MIN_LEVEL &&
            now_level == start_level)
        {
            //選択できるレベルがない
            IsActiveDontSkip = true;
            return;
        }

        bool bSkipMinLV = false;

        if (start_level >= skip_level)
        {
            for (int level = start_level; level > 0; level -= skip_level)
            {
                //現在レベルにはスキップできない
                if (level == now_level)
                {
                    continue;
                }

                //カレントレベルにはスキップできない
                if (level == m_EventData.info.challenge_level)
                {
                    continue;
                }

                if (level == MIN_LEVEL)
                {
                    //最少LVが追加された
                    bSkipMinLV = true;
                }

                ChallengeSkipContext data = new ChallengeSkipContext();
                data.SetData(level);

                SkipList.Add(data);
            }
        }

        if (bSkipMinLV == false &&
            now_level != MIN_LEVEL &&
            m_EventData.info.challenge_level != MIN_LEVEL)
        {
            //最少LVには常にスキップできる
            ChallengeSkipContext data = new ChallengeSkipContext();
            data.SetData(MIN_LEVEL);

            SkipList.Add(data);
        }

        if (SkipList.Count == 0)
        {
            //選択できるレベルがない
            IsActiveDontSkip = true;
            return;
        }

        scrollContent.Initialize(this);
    }