public QuestMissionContext(PacketAchievement clearAchievement)
    {
        MasterDataPresent presentData = (!clearAchievement.present_ids.IsNullOrEmpty()) ? MasterDataUtil.GetPresentParamFromID(clearAchievement.present_ids[0]) : null;

        if (presentData != null)
        {
            //TODO MasterDataAchievementConverted → PresentMasterCount とまとめたい
            fix_id = clearAchievement.fix_id;
            int  mastercount = 1;
            uint presentid   = clearAchievement.present_ids[0];
            for (int j = 1; j < clearAchievement.present_ids.Length; j++)
            {
                if (presentid == clearAchievement.present_ids[j])
                {
                    mastercount += 1;
                }
            }

            int itemValue = MasterDataUtil.GetPresentCount(presentData) * mastercount;

            Title    = clearAchievement.draw_msg;
            ItemName = MasterDataUtil.GetPresentName(presentData);
            MainMenuUtil.GetPresentIcon(
                presentData,
                sprite =>
            {
                IconImage = sprite;
            });
            IsViewCount = false;
            ItemValue   = (itemValue > 0) ? itemValue.ToString() : "";
        }
    }
Example #2
0
    //----------------------------------------------------------------------------

    /*!
     *  @brief  アチーブメント操作:新規達成アチーブメントから要素を削除
     */
    //----------------------------------------------------------------------------
    static public void DelAchievementClear(uint fix_id)
    {
        //----------------------------------------
        // 特に要素が発生していないならスルー
        //----------------------------------------
        if (m_AchievementClear == null)
        {
            return;
        }
        PacketAchievement cDelAchievement = null;

        //----------------------------------------
        // アチーブメントの近々の達成済み一覧
        //----------------------------------------
        for (int i = 0; i < m_AchievementClear.m_BufferSize; i++)
        {
            if (m_AchievementClear[i].fix_id == fix_id)
            {
                cDelAchievement = m_AchievementClear[i];
                break;
            }
        }

        if (cDelAchievement != null)
        {
            m_AchievementClear.Remove(cDelAchievement);
            cDelAchievement = null;
        }
    }
Example #3
0
    //----------------------------------------------------------------------------

    /*!
     *  @brief  内包チェック:PacketAchievement
     */
    //----------------------------------------------------------------------------
    static public int ChkInsidePacketAchievement(PacketAchievement a, PacketAchievement b)
    {
        if (a.fix_id == b.fix_id)
        {
            return(1);
        }
        return(0);
    }
Example #4
0
    /// <summary>
    /// ミッションクリアのマーキー表示
    /// </summary>
    static public void SetupMissionClearMessage()
    {
        ClearMissionClearMessage();

        //----------------------------------------
        // 新規達成演出前のアチーブメントがあるならメッセージ表示
        //----------------------------------------
        if (ResidentParam.m_AchievementClear != null && ResidentParam.m_AchievementClear.m_BufferSize > 0)
        {
            m_MsgBarResetText         = true;
            m_MsgBarRequestInputIndex = 0;

            for (int i = 0; i < ResidentParam.m_AchievementClear.m_BufferSize; ++i)
            {
                //----------------------------------------
                // アチーブメントが演出が必要なステータス状況かチェック
                //----------------------------------------
                PacketAchievement cAchievement = ResidentParam.m_AchievementClear[i];
                if (cAchievement == null)
                {
                    continue;
                }
                if (cAchievement.server_state != (int)ServerDataDefine.ACHIEVEMENT_STATE.ACHIEVEMENT_STATE_S1_T1_E0_S0)
                {
                    continue;
                }
                // クエストミッションはミッション画面に表示されず、直接アイテムを受け取るので弾く
                if (cAchievement.achievement_category_id == (int)ServerDataDefine.ACHIEVEMENT_CATEGORY_TYPE.QUEST)
                {
                    continue;
                }

                HeaderMessage message = new HeaderMessage();
                message.fix_id        = cAchievement.fix_id;
                message.message       = string.Format(GameTextUtil.GetText("achievement_complete"), TextUtil.RemoveNewLine(cAchievement.draw_msg));
                message.message_color = Color.white;
                message.bg_color      = HexColor.ToColor("#f90974");
                message.type          = HeaderMessage.MESSAGE_TYPE.ACHIEVEMENT_CLEAR;
                message.priority      = ResidentParam.m_AchievementClear.m_BufferSize - i;
                m_MsgBarOtherMessageList.Add(message);
            }
            m_MsgBarOtherMessageList.Sort(HeaderMessage.SortCompare);
        }
    }