Beispiel #1
0
    // レコードの追加
    public void AddRecord(int category, ServerDataDefine.PacketStructPresent data)
    {
        var contex = new PresentRecordListItemContex();

        // 共通
        contex.FixId         = data.serial_id;
        contex.CaptionText00 = MainMenuUtil.GetPresentCount(data).ToString();
        contex.CaptionText01 = data.message;
        contex.NoticeText    = "";
        contex.NoticeEnable  = false;
        if ((MasterDataDefineLabel.PresentType)data.present_type == MasterDataDefineLabel.PresentType.NOTICE)
        {
            string[] notice = data.message.Split(new String[] { message_split_text }, StringSplitOptions.None);
            if (notice.Length >= 2)
            {
                contex.CaptionText00 = "1";
                contex.CaptionText01 = notice[0];
                contex.NoticeText    = notice[1];
                contex.NoticeEnable  = true;
            }
        }
        contex.Category = category;

        // 画像はカテゴリ別に差し替え可能にする
        image(data, sprite => { contex.IconImage = sprite; });

        // ボタンフィードバック
        contex.DidSelectItem += OnClickedRecordButton;

        // 枠色変更
        contex.IconColor  = IconColor[contex.Category];
        contex.FrameColor = FrameColor[contex.Category];

        // レコードの追加先を指定
        switch ((Category)contex.Category)
        {
        case Category.Present:
            // アイテム受領期間までの残り時間
            if (data.delete_timing == 1)
            {
                // 無期限
                //contex.CaptionText02 = "ENDLESS";
            }
            else
            {
                DateTime date = TimeUtil.ConvertServerTimeToLocalTime((ulong)data.delete_timing);
                contex.CaptionText02 = contex.TimeLeftText(date);
            }
            contex.Caption01_H = 110;

            Records0.Add(contex);
            break;

        case Category.PresentLog:
            contex.CaptionText02 = "";
            contex.Caption01_H   = 80;
            Records1.Add(contex);
            break;
        }
    }
Beispiel #2
0
    public void AddRecord(int id, MasterDataPointShopProduct product)
    {
        var model  = new ListItemModel((uint)id);
        var contex = new ProductsListItemContex(id, product, model);

        model.OnClicked += () =>
        {
            OnClickedRecordButton(contex);
        };
        model.OnLongPressed += () =>
        {
            contex.OnClickedButton();
        };

        // レコードの追加先を指定
        switch (product.product_type)
        {
        case MasterDataDefineLabel.PointShopType.ITEM:
            Records0.Add(contex);
            break;

        case MasterDataDefineLabel.PointShopType.UNIT:
            Records1.Add(contex);
            break;

        case MasterDataDefineLabel.PointShopType.UNIT_BUILDUP:
            Records2.Add(contex);
            break;

        case MasterDataDefineLabel.PointShopType.UNIT_EVOL:
            Records3.Add(contex);
            break;
        }
    }
Beispiel #3
0
    public void AddRecord(
        ItemType type,
        MasterDataUseItem item_master,
        int item_count,
        long use_timing,
        System.Action <ItemDataContext> selectAction)
    {
        ItemDataContext contex = new ItemDataContext();

        contex.setupIcon(item_master);
        contex.ItemMaster = item_master;
        contex.Count      = item_count; // アイテムの所持数
        contex.use_timing = use_timing; //使用開始した時間

        contex.DidSelectItem += selectAction;

        // レコードの追加先を指定
        switch (type)
        {
        case ItemType.Stamina:
            Records0.Add(contex);
            break;

        case ItemType.RewardUp:
            Records1.Add(contex);
            break;

        case ItemType.Other:
            Records2.Add(contex);
            break;
        }
    }
Beispiel #4
0
    private void closeDialog()
    {
        if (m_Dialog == null)
        {
            return;
        }

        //--------------------------------------
        // 予約アイコンの更新
        //--------------------------------------
        EventScheduleDialog dialog = m_Dialog.GetComponent <EventScheduleDialog>();

        if (dialog != null)
        {
            if (dialog.IsFuture)
            {
                EventRecordListItemContex item = Records1.Find((x) => x.FixId == dialog.FixId);
                if (item != null)
                {
                    item.IsReserveBadge = dialog.IsOnNotif;
                }
            }
        }

        DestroyObject(m_Dialog);
        m_Dialog       = null;
        IsViewContents = true;
    }
Beispiel #5
0
 public void ClearRecord()
 {
     Records0.Clear();
     Records1.Clear();
     Records2.Clear();
     Records3.Clear();
     Records4.Clear();
 }
Beispiel #6
0
 // 受領バッジの更新
 protected void updateBadgeText()
 {
     // 受取待ちレコードの再集計 バッジ表示で使用 
     NaviBadgeText0 = (int)Records0.Count(p => p.Stats == RecordListItemContex.STATS.CLEARD);
     NaviBadgeText1 = (int)Records1.Count(p => p.Stats == RecordListItemContex.STATS.CLEARD);
     NaviBadgeText2 = (int)Records2.Count(p => p.Stats == RecordListItemContex.STATS.CLEARD);
     NaviBadgeText3 = (int)Records3.Count(p => p.Stats == RecordListItemContex.STATS.CLEARD);
 }
Beispiel #7
0
 // 全レコード数の更新
 protected void updateRecordCount()
 {
     // カテゴリ毎のレコード数の再集計
     RecordCount0 = (int)Records0.Count();
     RecordCount1 = (int)Records1.Count();
     RecordCount2 = (int)Records2.Count();
     RecordCount3 = (int)Records3.Count();
 }
Beispiel #8
0
 public void ResetRecordAll()
 {
     Records0.Clear();
     Records1.Clear();
     Records2.Clear();
     PointList.Clear();
     TicketList.Clear();
     KeyList.Clear();
 }
Beispiel #9
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();
            }));
        }
    }
Beispiel #10
0
    // レコードの移動
    private bool moveRecord(long present_id)
    {
        var contex = Records0.Find(p => p.FixId == present_id);

        if (contex == null)
        {
            return(false);
        }

        contex.IconColor     = IconColor[1]; // 色変更
        contex.FrameColor    = FrameColor[1];
        contex.CaptionText02 = "";           // 残り時間非表示
        contex.Category      = (int)Category.PresentLog;

        Records1.Insert(0, contex);
        if (Records1.Count > 30)
        {
            Records1.RemoveAt(Records1.Count - 1);
        }
        Records0.Remove(contex);
        return(true);
    }
Beispiel #11
0
    /// <summary>
    /// レコードの追加
    /// </summary>
    private void AddRecord(Category category, EventScheduleInfo data)
    {
        var contex = new EventRecordListItemContex();

        contex.FixId   = (int)data.m_MasterDataEvent.fix_id;
        contex.EventId = (int)data.m_MasterDataEvent.event_id;

        // アイコンイメージの設定

        //クエスト情報
        contex.questType = MasterDataDefineLabel.QuestType.NONE;
        //通常クエスト
        MasterDataQuest2 lastQuestMaster = MasterFinder <MasterDataQuest2> .Instance.SelectFirstWhere("where area_id = ? AND boss_chara_id > 0 AND story = 0 ORDER BY fix_id DESC"
                                                                                                      , data.m_MasterDataEvent.area_id);

        if (lastQuestMaster != null)
        {
            contex.questType = MasterDataDefineLabel.QuestType.NORMAL;
        }
        else
        {
            //成長ボスクエスト
            lastQuestMaster = MasterFinder <MasterDataChallengeQuest> .Instance.SelectFirstWhere("where area_id = ? AND boss_chara_id > 0 AND story = 0 ORDER BY fix_id DESC"
                                                                                                 , data.m_MasterDataEvent.area_id);

            if (lastQuestMaster != null)
            {
                contex.questType = MasterDataDefineLabel.QuestType.CHALLENGE;

                //タイトル差し替え
                setupChallengeTitle(data);
            }
        }

        if (lastQuestMaster == null)
        {
            // ボスが居ない場合の画像
            contex.IconImage = ResourceManager.Instance.Load("divine1", ResourceType.Common);

#if BUILD_TYPE_DEBUG
            DialogManager.Open1B_Direct("EventSchedule AddRecord",
                                        "renew_quest_masterのarea_idに下記の\nidが含まれていません。\nプランナーさんに画面を見せるか\n画面キャプチャーして報告してください。\n\n" +
                                        "area_id: " + data.m_MasterDataEvent.area_id,
                                        "common_button7", true, true).
            SetOkEvent(() =>
            {
            });
#endif
            Debug.LogError("[none x.boss_chara_id > 0]: " + data.m_MasterDataEvent.area_id);
        }
        else
        {
            UnitIconImageProvider.Instance.Get(
                lastQuestMaster.boss_chara_id,
                sprite =>
            {
                contex.IconImage = sprite;
            });
        }

        // 予約済みアイコンの設定
        if (category == Category.Furture)
        {
            LocalSaveEventNotification cEventNotification = LocalSaveManager.Instance.CheckFuncNotificationRequest((uint)data.m_MasterDataEvent.fix_id);
            if (cEventNotification != null)
            {
                contex.IsReserveBadge = cEventNotification.m_Push;
            }
        }

        // タイトル(エリア名称)表示
        contex.CaptionText01 = data.m_AreaName;

        // 枠色変更
        contex.IconColor  = this.IconColor[(int)category];
        contex.FrameColor = this.FrameColor[(int)category];

        // ボタン挙動
        contex.DidSelectItem += OnClickedRecordButton;

        // レコードの追加先の指定
        switch (category)
        {
        case Category.Active:
            // 日付表示
            contex.CaptionText02 = data.m_MasterDataEvent.timing_end != 0 ?
                                   string.Format(GameTextUtil.GetText("schedule_held_text"), TimingFormat(data.m_MasterDataEvent.timing_end, true)) : "";
            Records0.Add(contex);
            break;

        case Category.Furture:
            contex.CaptionText02 = data.m_MasterDataEvent.timing_start != 0 ?
                                   string.Format(GameTextUtil.GetText("schedule_plans_text"), TimingFormat(data.m_MasterDataEvent.timing_start)) : "";
            Records1.Add(contex);
            break;

        default:
            return;
        }
    }
Beispiel #12
0
    public void PostSceneStart()
    {
        AndroidBackKeyManager.Instance.StackPush(gameObject, OnClickedBackButton);
        // ナビゲーションバー
        ScheduleTab1 = GameTextUtil.GetText("schedule_tab1");
        ScheduleTab2 = GameTextUtil.GetText("schedule_tab2");

        EmptyLabel = GameTextUtil.GetText("common_not_list");

        IsViewContents = true;

        //---------------------------------------------
        // 開催中レコード
        //---------------------------------------------
        Records0.Clear();
        List <EventScheduleInfo> activeEventInfoList = GetEvetntItemList(Category.Active);

        activeEventInfoList.Sort(SortExec);
        foreach (EventScheduleInfo item in activeEventInfoList)
        {
            AddRecord(Category.Active, item);
        }
        RecordCount0 = Records0.Count;

        //---------------------------------------------
        // 開催予定レコード
        //---------------------------------------------
        Records1.Clear();
        List <EventScheduleInfo> furtureEventInfoList = GetEvetntItemList(Category.Furture);

        furtureEventInfoList.Sort(SortExec);
        foreach (EventScheduleInfo item in furtureEventInfoList)
        {
            AddRecord(Category.Furture, item);
        }
        RecordCount1 = Records1.Count;

        //---------------------------------------------
        // データがある場合は詳細ダイアログを表示する
        //---------------------------------------------
        if (MainMenuParam.m_DialogEventScheduleData != null)
        {
            EventRecordListItemContex record = Records0.Find((v) => v.FixId == MainMenuParam.m_DialogEventScheduleData.fix_id);
            if (record != null)
            {
                EventScheduleDialog eventDialog = CreateDetailView(record);
                eventDialog.IsViewJumpButton = false;
            }
            else
            {
#if BUILD_TYPE_DEBUG
                string messageText = "イベントがありませんでした。\nMasterDataEvent::fix_id:" + MainMenuParam.m_DialogEventScheduleData.fix_id;
                Dialog dloalog     = DialogManager.Open1B_Direct("デバッグ ダイアログ", messageText, "common_button7", true, true)
                                     .SetOkEvent(() =>
                {
                });
#endif
            }
            MainMenuParam.m_DialogEventScheduleData = null;
        }
    }