private void openDialogUseItem(PacketStructUseItem item) { MasterDataUseItem itemMaster = MasterFinder <MasterDataUseItem> .Instance.Find((int)item.item_id); //アイテムで回復 Dialog newDialog = Dialog.Create(DialogType.DialogYesNo); newDialog.SetDialogTextFromTextkey(DialogTextType.Title, "kk109q_title"); string text = GameTextUtil.GetText("sh132q_content4"); string maintext = String.Format(text, itemMaster.item_name, item.item_cnt); // 回復後のスタミナ値を表示. int result_stamina = UserDataAdmin.Instance.GetUseItemStamina(itemMaster); maintext += "\n\n" + string.Format(GameTextUtil.GetText("sh132q_content3"), result_stamina, UserDataAdmin.Instance.m_StructPlayer.stamina_max); // オーバー回復になるかどうか if (result_stamina > UserDataAdmin.Instance.m_StructPlayer.stamina_max) { maintext += "\n\n" + GameTextUtil.GetText("sh132q_content5"); } newDialog.SetDialogText(DialogTextType.MainText, maintext); newDialog.SetDialogTextFromTextkey(DialogTextType.YesText, "common_button4"); newDialog.SetDialogTextFromTextkey(DialogTextType.NoText, "common_button5"); newDialog.SetDialogEvent(DialogButtonEventType.YES, () => { //スタミナ回復 ServerDataUtilSend.SendPacketAPI_ItemUse(itemMaster.fix_id) .setSuccessAction(_data => { UserDataAdmin.Instance.m_StructPlayer = _data.UpdateStructPlayer <RecvItemUse>((PacketStructPlayer)UserDataAdmin.Instance.m_StructPlayer); DialogManager.Open1B("sh135q_title", "sh135q_content", "common_button1", true, true). SetOkEvent(() => { StartCoroutine(MainMenuWebViewShowChk.PopupWebViewStart(MainMenuWebViewShowChk.PopupWebViewType.Mission, 0)); }); }) .setErrorAction(_data => { }) .SendStart(); }); newDialog.Show(); }
private PacketStructUseItem useRecoverItem() { PacketStructUseItem[] items = UserDataAdmin.Instance.m_StructPlayer.item_list; List <PacketStructUseItem> list = new List <PacketStructUseItem>(); // レコード追加 for (int i = 0; i < items.Length; i++) { PacketStructUseItem item = items[i]; if (item.item_cnt == 0) { continue; } MasterDataUseItem itemMaster = MasterFinder <MasterDataUseItem> .Instance.Find((int)item.item_id); if (itemMaster == null) { continue; } if (!MasterDataUtil.ChkUseItemTypeStaminaRecovery(itemMaster)) { continue; } //スタミナ系アイテム list.Add(item); } if (list.Count <= 0) { return(null); } //[DG0-1196]fix_idの昇順ソートで使用順を決める ItemMaster.fix_id == PacketStructUseItem.item_id list.Sort((a, b) => (int)a.item_id - (int)b.item_id); return(list[0]); }
private void updateItemAll() { List <ItemDataContext> removeList = new List <ItemDataContext>(); for (int i = 0; i < m_Item.Records0.Count; i++) { PacketStructUseItem _item = UserDataAdmin.Instance.SearchUseItem(m_Item.Records0[i].ItemMaster.fix_id); if (_item == null) { continue; } m_Item.Records0[i].Count = (int)_item.item_cnt; m_Item.Records0[i].use_timing = _item.use_timing; if (m_Item.Records0[i].Count == 0) { removeList.Add(m_Item.Records0[i]); } } for (int i = 0; i < removeList.Count; i++) { m_Item.Records0.Remove(removeList[i]); } removeList.Clear(); for (int i = 0; i < m_Item.Records1.Count; i++) { PacketStructUseItem _item = UserDataAdmin.Instance.SearchUseItem(m_Item.Records1[i].ItemMaster.fix_id); if (_item == null) { continue; } m_Item.Records1[i].Count = (int)_item.item_cnt; m_Item.Records1[i].use_timing = _item.use_timing; if (m_Item.Records1[i].Count == 0) { removeList.Add(m_Item.Records1[i]); } } for (int i = 0; i < removeList.Count; i++) { m_Item.Records1.Remove(removeList[i]); } removeList.Clear(); for (int i = 0; i < m_Item.Records2.Count; i++) { PacketStructUseItem _item = UserDataAdmin.Instance.SearchUseItem(m_Item.Records2[i].ItemMaster.fix_id); if (_item == null) { continue; } m_Item.Records2[i].Count = (int)_item.item_cnt; m_Item.Records2[i].use_timing = _item.use_timing; if (m_Item.Records2[i].Count == 0) { removeList.Add(m_Item.Records2[i]); } } for (int i = 0; i < removeList.Count; i++) { m_Item.Records2.Remove(removeList[i]); } m_Item.setup(); m_UpdateCount = 5; }
// レコードボタンのフィードバック public void OnClickedRecordButton(ProductsListItemContex contex) { // 値段(ユニットポイント)チェック if (contex.Price > UnitPoint) { SoundUtil.PlaySE(SEID.SE_MENU_RET); Dialog newDialog = Dialog.Create(DialogType.DialogOK); newDialog.SetDialogTextFromTextkey(DialogTextType.Title, "sh126q_title"); newDialog.SetDialogText(DialogTextType.MainText, string.Format(GameTextUtil.GetText("sh126q_content2"), contex.NameText)); newDialog.SetDialogTextFromTextkey(DialogTextType.OKText, "common_button1"); newDialog.SetDialogEvent(DialogButtonEventType.OK, new System.Action(() => { #if BUILD_TYPE_DEBUG Debug.Log("OK"); #endif })); newDialog.Show(); return; } //----------------------------------------------------------- // アイテム所持数チェック //----------------------------------------------------------- if (contex.Product.product_type == MasterDataDefineLabel.PointShopType.ITEM) { PacketStructUseItem[] items = UserDataAdmin.Instance.m_StructPlayer.item_list; PacketStructUseItem item = Array.Find(items, (v) => v.item_id == contex.Product.product_param1); if (item != null && item.item_cnt >= GlobalDefine.VALUE_MAX_ITEM) { SoundUtil.PlaySE(SEID.SE_MENU_RET); Dialog newDialog = Dialog.Create(DialogType.DialogOK); newDialog.SetDialogTextFromTextkey(DialogTextType.Title, "point_upperlimit_item_title"); newDialog.SetDialogTextFromTextkey(DialogTextType.MainText, "point_upperlimit_item_content"); newDialog.SetDialogTextFromTextkey(DialogTextType.OKText, "common_button1"); newDialog.SetDialogEvent(DialogButtonEventType.OK, new System.Action(() => { })); newDialog.Show(); return; } } //----------------------------------------------------------- // ユニット所持数チェック //----------------------------------------------------------- if (contex.Product.product_type == MasterDataDefineLabel.PointShopType.UNIT || contex.Product.product_type == MasterDataDefineLabel.PointShopType.UNIT_EVOL || contex.Product.product_type == MasterDataDefineLabel.PointShopType.UNIT_BUILDUP || contex.Product.product_type == MasterDataDefineLabel.PointShopType.UNIT_LINK) { int unitMax = (int)UserDataAdmin.Instance.m_StructPlayer.total_unit; int unitTotal = 0; if (UserDataAdmin.Instance.m_StructPlayer.unit_list != null) { unitTotal = UserDataAdmin.Instance.m_StructPlayer.unit_list.Length; } if (unitTotal >= unitMax) { bool bUnitFull = (UserDataAdmin.Instance.m_StructPlayer.total_unit >= MasterDataUtil.GetUserUnitMax()); // ユニット所持枠上限 if (bUnitFull == false) { // 有料拡張分も見る bUnitFull = (UserDataAdmin.Instance.m_StructPlayer.extend_unit >= MasterDataUtil.GetMasterDataGlobalParamFromID(GlobalDefine.GLOBALPARAMS_UNIT_MAX_EXTEND)); } SoundUtil.PlaySE(SEID.SE_MENU_RET); if (bUnitFull == false) { // ユニット所持枠購入上限内 Dialog newDialog = Dialog.Create(DialogType.DialogOK); newDialog.SetDialogTextFromTextkey(DialogTextType.Title, "point_upperlimit_unit_title"); newDialog.SetDialogTextFromTextkey(DialogTextType.MainText, "point_upperlimit_unit_content"); newDialog.SetDialogTextFromTextkey(DialogTextType.OKText, "common_button1"); newDialog.SetDialogObjectEnabled(DialogObjectType.VerticalButtonList, true); newDialog.addVerticalButton(GameTextUtil.GetText("icon_button_01"), () => { //ユニット枠拡張 StoreDialogManager.Instance.OpenDialogUnitExtend(); }); newDialog.addVerticalButton(GameTextUtil.GetText("icon_button_02"), () => { if (MainMenuManager.HasInstance) { MainMenuParam.m_BuildupBaseUnitUniqueId = 0; MainMenuManager.Instance.AddSwitchRequest(MAINMENU_SEQ.SEQ_UNIT_BUILDUP, false, false); } }); newDialog.addVerticalButton(GameTextUtil.GetText("icon_button_03"), () => { if (MainMenuManager.HasInstance) { MainMenuManager.Instance.AddSwitchRequest(MAINMENU_SEQ.SEQ_UNIT_SALE, false, false); } }); newDialog.Show(); } else { Dialog newDialog = Dialog.Create(DialogType.DialogOK); newDialog.SetDialogTextFromTextkey(DialogTextType.Title, "point_upperlimit_unit_title"); newDialog.SetDialogTextFromTextkey(DialogTextType.MainText, "sc256q_content2"); newDialog.SetDialogTextFromTextkey(DialogTextType.OKText, "common_button1"); newDialog.SetDialogObjectEnabled(DialogObjectType.VerticalButtonList, true); newDialog.addVerticalButton(GameTextUtil.GetText("icon_button_02"), () => { if (MainMenuManager.HasInstance) { MainMenuParam.m_BuildupBaseUnitUniqueId = 0; MainMenuManager.Instance.AddSwitchRequest(MAINMENU_SEQ.SEQ_UNIT_BUILDUP, false, false); } }); newDialog.addVerticalButton(GameTextUtil.GetText("icon_button_03"), () => { if (MainMenuManager.HasInstance) { MainMenuManager.Instance.AddSwitchRequest(MAINMENU_SEQ.SEQ_UNIT_SALE, false, false); } }); newDialog.Show(); } return; } } possible(contex); // 購入可能 }
private void OnSelectButton() { #if BUILD_TYPE_DEBUG Debug.Log("select quest id=" + MainMenuParam.m_QuestSelectMissionID.ToString()); #endif var requirement_id = m_MasterDataQuest2.quest_requirement_id; MasterDataQuestRequirement quest_requirement = null; if (requirement_id != 0) { quest_requirement = MasterDataUtil.GetMasterDataQuestRequirementFromID(requirement_id); } //-------------------------------- // ユニット所持数が上限超えてるならクエスト不可 //-------------------------------- if (UserDataAdmin.Instance.m_StructPlayer.total_unit < UserDataAdmin.Instance.m_StructPlayer.unit_list.Length) { openDialogUnitOver(); SoundUtil.PlaySE(SEID.SE_MENU_RET); } else if (quest_requirement != null && quest_requirement.limit_rank > UserDataAdmin.Instance.m_StructPlayer.rank) { //-------------------------------- // ランク制限でクエストに入れない場合 //-------------------------------- openDialogRankLow(); SoundUtil.PlaySE(SEID.SE_MENU_RET); } else if (MainMenuParam.m_QuestStamina != 0 && UserDataAdmin.Instance.m_StructPlayer.stamina_max < m_MasterDataQuest2.consume_value * MainMenuParam.m_QuestStaminaAmend) { //-------------------------------- // スタミナのMAX値が足りずクエストに入れない場合 //-------------------------------- openDialogStaminaLow(); SoundUtil.PlaySE(SEID.SE_MENU_RET); } else if (MainMenuParam.m_QuestStamina != 0 && UserDataAdmin.Instance.m_StructPlayer.stamina_max >= m_MasterDataQuest2.consume_value && MainMenuParam.m_QuestStamina > UserDataAdmin.Instance.m_StructPlayer.stamina_now) { //-------------------------------- // スタミナが足りない場合、スタミナ回復ダイアログを表示 //-------------------------------- PacketStructUseItem item = useRecoverItem(); if (item != null) { openDialogUseItem(item); } else { //-------------------------------- // チップによる回復ルート //-------------------------------- openDialogUseStone(); } SoundUtil.PlaySE(SEID.SE_MENU_RET); } else if (MainMenuParam.m_QuestTicket != 0 && MainMenuParam.m_QuestTicket > UserDataAdmin.Instance.m_StructPlayer.have_ticket) { //-------------------------------- // チケット対価不足 //-------------------------------- openDialogTicketLow(); SoundUtil.PlaySE(SEID.SE_MENU_RET); } else if (MainMenuParam.m_QuestKey != 0 && MainMenuParam.m_QuestKey > GetQuestKeyCntFromAreaCategory(m_MasterDataAreaCategory)) { //-------------------------------- // キークエストの場合、クエストキー数チェッククエストキー不足 //-------------------------------- openDialogKeyLow(); SoundUtil.PlaySE(SEID.SE_MENU_RET); } else { //-------------------------------- // 特にエラーなし。次のフローへ //-------------------------------- if (MainMenuManager.HasInstance) { MainMenuManager.Instance.AddSwitchRequest(MAINMENU_SEQ.SEQ_QUEST_SELECT_FRIEND, false, false); SoundUtil.PlaySE(SEID.SE_MENU_OK); } } }
/// <summary> /// OKボタン選択 /// </summary> /// <param name="data"></param> private void OnSelectOk(ChallengeSelect.EventData data) { var requirement_id = data.questMaster.quest_requirement_id; MasterDataQuestRequirement quest_requirement = null; if (requirement_id != 0) { quest_requirement = MasterDataUtil.GetMasterDataQuestRequirementFromID(requirement_id); } //-------------------------------- // ユニット所持数が上限超えてるならクエスト不可 //-------------------------------- if (UserDataAdmin.Instance.m_StructPlayer.total_unit < UserDataAdmin.Instance.m_StructPlayer.unit_list.Length) { openDialogUnitOver(); SoundUtil.PlaySE(SEID.SE_MENU_RET); } else if (quest_requirement != null && quest_requirement.limit_rank > UserDataAdmin.Instance.m_StructPlayer.rank) { //-------------------------------- // ランク制限でクエストに入れない場合 //-------------------------------- openDialogRankLow(); SoundUtil.PlaySE(SEID.SE_MENU_RET); } else if (MainMenuParam.m_QuestStamina != 0 && UserDataAdmin.Instance.m_StructPlayer.stamina_max < MainMenuParam.m_QuestStamina) { //-------------------------------- // スタミナのMAX値が足りずクエストに入れない場合 //-------------------------------- openDialogStaminaLow(); SoundUtil.PlaySE(SEID.SE_MENU_RET); } else if (MainMenuParam.m_QuestTicket != 0 && MainMenuParam.m_QuestTicket > UserDataAdmin.Instance.m_StructPlayer.have_ticket) { //-------------------------------- // チケット対価不足 //-------------------------------- openDialogTicketLow(); SoundUtil.PlaySE(SEID.SE_MENU_RET); } else if (MainMenuParam.m_QuestStamina != 0 && UserDataAdmin.Instance.m_StructPlayer.stamina_max >= data.questMaster.consume_value && MainMenuParam.m_QuestStamina > UserDataAdmin.Instance.m_StructPlayer.stamina_now) { //-------------------------------- // スタミナが足りない場合、スタミナ回復ダイアログを表示 //-------------------------------- PacketStructUseItem item = useRecoverItem(); if (item != null) { openDialogUseItem(item); } else { //-------------------------------- // チップによる回復ルート //-------------------------------- openDialogUseStone(); } SoundUtil.PlaySE(SEID.SE_MENU_RET); } else { //-------------------------------- // 特にエラーなし。次のフローへ //-------------------------------- //成長ボス選択パラメータ設定 MainMenuParam.SetChallengeSelectParam(data.questMaster.fix_id, data.bSkip, (data.bSkip ? data.SkipLevel : data.info.challenge_level)); //成長ボスではMainMenuQuestSelectを経由しないのでAreaCategoryIDをここで設定 MasterDataArea area = MasterDataUtil.GetAreaParamFromID(data.questMaster.area_id); MainMenuParam.m_QuestSelectAreaCateID = (area != null ? area.area_cate_id : 0); MainMenuParam.m_QuestAreaAmendList = m_AreaAmendParam.m_AreaMasterDataAmendList; MainMenuParam.m_QuestSelectAreaID = data.questMaster.area_id; MainMenuParam.m_QuestSelectMissionID = data.questMaster.fix_id; if (MainMenuManager.HasInstance) { MainMenuManager.Instance.AddSwitchRequest(MAINMENU_SEQ.SEQ_QUEST_SELECT_FRIEND, false, false); SoundUtil.PlaySE(SEID.SE_MENU_OK); } } }