Example #1
0
    //===================================================================================
    //
    // Default Method
    //
    //===================================================================================
    public override void Init()
    {
        m_TitleLabel.text        = StringTableManager.GetData(6722);            // 6722	파견
        m_TitleContentLabel.text = StringTableManager.GetData(6723);            // 6723	임무 카드

        // 서버에 값이 있는 만큼만 생성하고 없으면 empty 슬롯으로 초기화.
        _stDispatchInfoAck stDispatchInfoAck = UserInfo.Instance.DispatchInfoAck;

        if (stDispatchInfoAck == null)
        {
#if DEBUG_LOG
            Debug.LogError("서버에서 파견정보 안줌!! - UserInfo.Instance.DispatchInfoAck is NULL");
#endif
            return;     // error;
        }

        _vDispatch vDispatch = stDispatchInfoAck.vDispatch;
        if (vDispatch == null)
        {
#if DEBUG_LOG
            Debug.LogError("서버에서 파견정보 안줌!! - stDispatchInfoAck.vDispatch is NULL");
#endif
            return;     // error;
        }

        DestroyDispatchCard();

        int iPanelDepth = m_DispatchCardScrollView.panel.depth;

        vDispatch.Sort((a, b) => a.kTeamIndex.CompareTo(b.kTeamIndex));
        for (int i = 0; i < vDispatch.Count; ++i)
        {
            CDispatch Dispatch = vDispatch[i];
            if (Dispatch == null)
            {
#if DEBUG_LOG
                Debug.LogError(string.Format("서버에서 파견정보 안줌!! - stDispatchInfoAck.vDispatch Number : {0} is NULL", i));
#endif
                continue;
            }

            DispatchCardItem cardItem = UIResourceMgr.CreatePrefab <DispatchCardItem>(BUNDLELIST.PREFABS_UI_DISPATCH, m_DispatchCardGrid.transform, "DispatchCardItem");
            cardItem.Init(Dispatch);

            if (Dispatch.kDispatchState == _enDispatchState.eDispatchState_None)     // 빈 카드 생성.
            {
                cardItem.SetCard(OnClickDispatchCard);
            }
            else                                                                            // 진행중, 성공, 대성공 카드 생성.
            {
                cardItem.SetCard(iPanelDepth);
            }

            m_DispatchCardList.Add(cardItem);
        }

        ResetPosition();

#if TUTORIAL
        SetTutorialButtonEvent();
#endif
    }
    private void SetDispatchInfo()
    {
        // 스테이지 조건 검사.
        {
            _ClearStage.SetActive(false);
            _ClearStageLabel.gameObject.SetActive(false);

            CUserGameStageInfo stagetInfo = UserInfo.Instance.UserGameStageInfo;

            if (stagetInfo.IsClearStage(m_DispatchTableData.RequireStage) == false)
            {
                UIEventListener.Get(gameObject).onClick = null;

                _ClearStage.SetActive(true);
                _ClearStageLabel.gameObject.SetActive(true);

                DATA_MAP_STAGE MapStageTableData = CDATA_MAP_STAGE.Get(m_DispatchTableData.RequireStage);
                if (MapStageTableData != null)
                {
                    int iAreaID  = UtilFunc.GetRegionIndex(MapStageTableData.m_iIndex);
                    int iStageID = UtilFunc.GetStageIndex(MapStageTableData.m_iIndex);
                    _ClearStageLabel.text = string.Format("{0} {1} - {2}", StringTableManager.GetData(MapStageTableData.iAreaName), iAreaID, iStageID + 1);
                }
            }
        }

        m_DispatchingObj.SetActive(false);

        // 6849	(최소 {0}인)
        string str = string.Format(StringTableManager.GetData(6849), m_DispatchTableData.RequireNumber);

        m_titleLabel.text = string.Format("{0} {1}", StringTableManager.GetData(int.Parse(m_DispatchTableData.String_Name)), str);

        // 6847    Lv {0} 이상 {1}성 이상
        m_ConditionLabel.text = string.Format(StringTableManager.GetData(6847), m_DispatchTableData.RequireLevel, (int)m_DispatchTableData.RequireGrade);

        int ihour    = m_DispatchTableData.RequireTime / 60;
        int iMinutes = m_DispatchTableData.RequireTime - (60 * ihour);

        if (ihour > 0)
        {
            // 6740	소요 시간 : {0}시간 {1}분
            m_TimeLabel.text = string.Format(StringTableManager.GetData(6740), ihour, iMinutes);
        }
        else
        {
            // 6741	소요 시간 : {0}분
            m_TimeLabel.text = string.Format(StringTableManager.GetData(6741), iMinutes);
        }

        Dictionary <int, DATA_REWARD_NEW> RewardData = CDATA_REWARD_NEW.Get(m_DispatchTableData.RewardItemEnum);

        if (RewardData == null)
        {
            return;     // error.
        }
        foreach (KeyValuePair <int, DATA_REWARD_NEW> data in RewardData)
        {
            DATA_ITEM_NEW item = CDATA_ITEM_NEW.Get(data.Value.RewardValue);
            if (item == null)
            {
                continue;
            }

            m_RewardSprite.sprite2D = UIResourceMgr.CreateSprite(BUNDLELIST.TEXTURE_ICON_ITEMICON, item.m_szIconName);
            m_RewardLabel.text      = data.Value.RewardCount.ToString();
        }

        //m_RewardSprite.spriteName
        //m_RewardLabel.text = m_DispatchTableData.QuickCost.ToString();

        _stDispatchInfoAck stDispatchInfoAck = UserInfo.Instance.DispatchInfoAck;

        if (stDispatchInfoAck == null)
        {
            return;     // error.
        }
        int iCount = stDispatchInfoAck.vDispatch.Count;

        for (int i = 0; i < iCount; ++i)
        {
            CDispatch dispatch = stDispatchInfoAck.vDispatch[i];
            if (dispatch == null)
            {
                continue;
            }

            if (dispatch.kDispatchState == _enDispatchState.eDispatchState_None)
            {
                continue;
            }

            if (m_DispatchTableData.DispatchCategory == dispatch.kMissionCategory && m_DispatchTableData.DispatchEnum == dispatch.kDispatchSubID)
            {
                UIEventListener.Get(gameObject).onClick = null;
                m_DispatchingObj.SetActive(true);

                DateTime kEndTime     = dispatch.kEndTime.GetDateTime();
                DateTime kCurrentTime = TimeManager.Instance.GetServerTime();
                TimeSpan timeresult   = kEndTime - kCurrentTime;

                if (kCurrentTime.Ticks >= kEndTime.Ticks)       // 임무완료.
                {
                    m_DispatchingGageSprtie.fillAmount = 1;

                    m_DispatchingGageLabel.text  = StringTableManager.GetData(3395);        // 3395	완료.
                    m_DispatchingTitleLabel.text = StringTableManager.GetData(6848);        // 6848	임무 완료.
                }
                else
                {
                    m_DispatchingTitleLabel.text = StringTableManager.GetData(6742);            // 6742	임무 수행 중

                    m_DispatchingGageSprtie.fillAmount = 1 - (float)(timeresult.TotalSeconds / (m_DispatchTableData.RequireTime * 60));

                    if (timeresult.Hours > 0)
                    {
                        // 4915	{0}시간 {1}분 남음
                        m_DispatchingGageLabel.text = string.Format(StringTableManager.GetData(4915), timeresult.Hours, timeresult.Minutes);
                    }
                    else if (timeresult.Minutes > 0)
                    {
                        // 4916	{0}분 남음
                        m_DispatchingGageLabel.text = string.Format(StringTableManager.GetData(4916), timeresult.Minutes);
                    }
                    else if (timeresult.Seconds > 0)
                    {
                        // 4959	1분 미만
                        m_DispatchingGageLabel.text = StringTableManager.GetData(4959);
                    }
                }
            }
        }
    }