Пример #1
0
    protected override void Start()
    {
        base.Start();

        episodeQuestSelect.SetPosition(new Vector2(0, -44), new Vector2(0, -251));

//        episodeQuestSelect.BackGroundImage = BGSprite;
        episodeQuestSelect.EpisodeTitle = "エピソード名";
        episodeQuestSelect.AreaTitle    = "エリア名";

        Sprite select1 = ResourceManager.Instance.Load("icon_circle_1");
        Sprite select2 = ResourceManager.Instance.Load("icon_circle_2");

        for (int i = 0; i < AreaCount; i++)
        {
            uint index = (uint)i;
            var  model = new EpisodeDataListItemModel(index);
            model.OnClicked += () =>
            {
            };

            EpisodeDataContext newEpisode = new EpisodeDataContext(model);
            if (i == 0)
            {
                newEpisode.SelectImage = select2;
                newEpisode.IsSelected  = true;
            }
            else
            {
                newEpisode.SelectImage = select1;
                newEpisode.IsSelected  = false;
            }
            newEpisode.m_EpisodeId = index;
            episodeQuestSelect.EpisodeList.Add(newEpisode);
        }

        for (int i = 0; i < QuestCount; i++)
        {
            uint index = (uint)i;
            var  model = new ListItemModel(index);
            model.OnClicked += () =>
            {
            };

            QuestDataContext newQuest = new QuestDataContext(model);
            //cnewQuest.BackGroundTexture = BGSprite.texture;
            newQuest.Title       = "クエスト" + index.ToString();
            newQuest.Index       = index;
            newQuest.Point       = ((uint)(index * 5) + 5).ToString();
            newQuest.SelectImage = select2;
            newQuest.IconLabel   = "BOSS";
            newQuest.m_QuestId   = index;
            episodeQuestSelect.QuestList.Add(newQuest);

            // TODO : 演出を入れるならその場所に移動
            model.Appear();
            model.SkipAppearing();
        }
    }
Пример #2
0
    void Start()
    {
        m_model = Context.model;
        SetModel(m_model);

        m_model.OnShowedArrow += () =>
        {
            //m_arrowAnimation.PlayQueued(ArrowAppearAnimationName);
        };

        m_model.OnHideArrow += () =>
        {
            //m_arrowAnimation.PlayQueued(ArrowDisappearAnimationName);
        };

        RegisterKeyEventCallback("next", () =>
        {
            m_model.ShowNext();
        });

        m_model.ViewInstantidated();
    }
Пример #3
0
 public EpisodeDataContext(EpisodeDataListItemModel listItemModel)
 {
     m_model = listItemModel;
 }
Пример #4
0
    /// <summary>
    /// エリア更新
    /// </summary>
    private void setupArea(MasterDataArea[] areaArray)
    {
        m_QuestSelect.EpisodeList.Clear();
        m_episodeButtons.Clear();
        uint _count = 0;

        for (int i = 0; i < areaArray.Length; i++)
        {
            bool hasArea           = false;
            bool hasQuestCleard    = true;
            bool hasQuestCompleted = true;
            bool hasQuestNew       = false;
            MasterDataGuerrillaBoss guerrillaBoss = null;

            MainMenuUtil.ChkActiveArea(m_MasterAreaCategory, areaArray[i], ref hasArea, ref hasQuestCompleted, ref hasQuestCleard, ref hasQuestNew, ref guerrillaBoss);
            if (!hasArea)
            {
                continue;
            }

            uint index = _count;
            var  model = new EpisodeDataListItemModel(index);
            model.OnClicked += () =>
            {
                SelectArea(index, true);
            };
            model.OnViewInstantidated += () =>
            {
                if (m_episodeButtons.Count > index + 1)
                {
                    return;
                }

                model.Appear();
            };
            model.OnShowedNext += () =>
            {
                if (index == 0)
                {
                    return;
                }

                m_episodeButtons[(int)index - 1].Appear();
            };

            EpisodeDataContext newEpisode = new EpisodeDataContext(model);
            newEpisode.master = areaArray[i];
            newEpisode.masterDataAreaCategory = m_MasterAreaCategory;
            newEpisode.amend       = MainMenuUtil.CreateAreaParamAmend(newEpisode.master);
            newEpisode.m_EpisodeId = (uint)i + 1;
            newEpisode.IconImage   = ResourceManager.Instance.Load("icon_city");
            newEpisode.SelectImage = m_UnSelectSprite;
            newEpisode.IsSelected  = false;
            updateEpisodeFlag(newEpisode, hasQuestCleard, hasQuestCompleted, guerrillaBoss);
            updateEpsodeTime(newEpisode, newEpisode.master);
            m_QuestSelect.EpisodeList.Add(newEpisode);

            m_episodeButtons.Add(model);

            _count++;
        }

        //選択できるエリアがない
        if (m_QuestSelect.EpisodeList.Count == 0)
        {
            openWarningAreaDialog();
            return;
        }

        //指定エリア選択
        if (MainMenuParam.m_JmpQuestSelectAreaID != 0)
        {
            for (int i = 0; i < m_QuestSelect.EpisodeList.Count; i++)
            {
                if (m_QuestSelect.EpisodeList[i].master.fix_id == MainMenuParam.m_JmpQuestSelectAreaID)
                {
                    SelectArea((uint)i);
                    return;
                }
            }
        }

        //指定がないときは一番下のエリア選択
        SelectArea((uint)(m_QuestSelect.EpisodeList.Count - 1));
    }