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); }
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); }