예제 #1
0
    /// <summary>
    /// プレゼントリストの更新
    /// </summary>
    /// <param name="isUpdateLog">受け取り済みのリストの更新も行う</param>
    public void updatePresentList(bool isUpdateLog = true)
    {
        // プレゼント(受領前)
        Records0.Clear();
        var present = UserDataAdmin.Instance.m_StructPresentList;

        if (present != null)
        {
            for (int i = 0; i < present.Length; i++)
            {
                // プレゼントリストの追加
                AddRecord(0, present[i]);
            }
            // レコード数の更新
            RecordCount0 = Records0.Count;
            RecordCount2 = Records0.Where(p => p.NoticeEnable == false).ToList().Count;
        }

        // プレゼント(受領済み)
        if (isUpdateLog)
        {
            StartCoroutine(WaitSentStart(() =>
            {
                var serverApi = ServerDataUtilSend.SendPacketAPI_GetPresentOpenLog();

                // SendStartの成功時の振る舞い
                serverApi.setSuccessAction(_data =>
                {
                    Records1.Clear();
                    RecvGetPresentOpenLogValue result = _data.GetResult <RecvGetPresentOpenLog>().result;
                    if (result == null || result.present == null)
                    {
                        return;
                    }
                    for (int i = 0; i < result.present.Length; i++)
                    {
                        // プレゼントリストの追加
                        AddRecord(1, result.present[i]);
                    }

                    // レコード数の更新
                    RecordCount1 = Records1.Count;
                });

                // SendStartの失敗時の振る舞い
                serverApi.setErrorAction(_date =>
                {
#if BUILD_TYPE_DEBUG
                    Debug.Log("MASTER_HASH_GET:Error");
#endif
                });

                serverApi.SendStart();
            }));
        }
    }