private void OnHoldMaxHold(HoldInfo holdInfo) { if (holdInfo != null) { HoldMaxHold(holdInfo); } }
/// <summary> /// 获取孔描述 /// </summary> /// <param name="info"></param> /// <returns></returns> private string GetGemDesc(HoldInfo info) { string des = ""; switch (info.m_type) { case Hold_STATE.EQUIP: PropFightInfo prop_fight = PropChangeFightConfig.GetEquipInfo(info.m_info.propType); string name = TextManager.GetItemString(info.m_gem_id.ToString()); string value = prop_fight.IsPercent == 0 ? info.m_info.propValue.ToString() : string.Format("{0}%", info.m_info.propValue * 100); string prop_name = TextManager.GetUIString(info.m_info.propType); des += name + "\n" + prop_name + "+" + value.ToString(); break; case Hold_STATE.EMPTY: des += TextManager.GetUIString("UI2057"); break; case Hold_STATE.CAN_OPEN: des += TextManager.GetUIString("UI2056"); break; case Hold_STATE.MATERIAL_LOCK: des += TextManager.GetUIString("UI2055"); break; case Hold_STATE.NOT_OPEN_LOCK: des += TextManager.GetUIString("UI2058"); break; } return(des); }
/// <summary> /// 设置宝石组件信息 /// </summary> private void SetGemItemInfo(GameObject child, HoldInfo info) { GameObject suo = child.transform.FindChild("suo").gameObject; GameObject takeBtn = child.transform.FindChild("takeBtn").gameObject; GameObject openBtn = child.transform.FindChild("openBtn").gameObject; GameObject insetBtn = child.transform.FindChild("insetBtn").gameObject; UITexture icon = child.transform.FindChild("icon").GetComponent <UITexture>(); UILabel descTxt = child.transform.FindChild("descTxt").GetComponent <UILabel>(); UISprite color = child.transform.FindChild("color").GetComponent <UISprite>(); icon.gameObject.SetActive(info.m_gem_id > 0); color.gameObject.SetActive(info.m_gem_id > 0); if (info.m_gem_id > 0) { ItemInfo item_info = ItemManager.GetItemInfo(info.m_gem_id.ToString()); color.spriteName = "color" + item_info.color; LoadSprite.LoaderItem(icon, info.m_gem_id.ToString(), false); } suo.SetActive(info.m_type == Hold_STATE.MATERIAL_LOCK || info.m_type == Hold_STATE.NOT_OPEN_LOCK || info.m_type == Hold_STATE.CAN_OPEN); takeBtn.SetActive(info.m_type == Hold_STATE.EQUIP); openBtn.SetActive(info.m_type == Hold_STATE.CAN_OPEN); insetBtn.SetActive(info.m_type == Hold_STATE.EMPTY); string des = GetGemDesc(info); descTxt.text = des; }
/// <summary> /// HoldTime 단위(분) /// </summary> internal static float GetHoldTime(string shopID, string holdCode) { HoldInfo info = GetHoldInfo(shopID, holdCode); if (info == null) { return(DefaultHoldTime); } return(info.HoldTime); }
private void OnClick(GameObject go) { if (select_equip_id == 0) { return; } int index = go.transform.parent.GetSiblingIndex(); cur_info = m_holdInfo_list[index]; switch (go.transform.name) { case "takeBtn": ServerCustom.instance.SendClientMethods(EquipProxy.CLIENT_GEM_TAKEOFF, cur_info.m_index, EquipMediator.cur_select_player_id, select_equip_id); break; case "openBtn": int material_id = 0; bool is_material = IsOpenMaterial(cur_info, out material_id); if (!is_material) { GUIManager.SetPromptInfo(TextManager.GetUIString("UI2055"), null); return; } //ShowItemInfo showItemInfo = new ShowItemInfo(); //ItemMediator.panelType = PanelType.Use; //showItemInfo.useOne = UseItem; //Item item_data = ItemManager.GetBagItemInfo(material_id.ToString()); //List<object> list_item = new List<object>(); //list_item.Add(showItemInfo); //list_item.Add(item_data); //Facade.SendNotification(NotificationID.ItemInfo_Show, list_item); ServerCustom.instance.SendClientMethods(EquipProxy.CLIENT_GEM_OPEN, cur_info.m_index, EquipMediator.cur_select_player_id, select_equip_id); break; case "insetBtn": List <object> list = new List <object>(); list.Add(EquipMediator.cur_select_player_id); list.Add(select_equip_id); list.Add(cur_info.m_index); Facade.SendNotification(NotificationID.GemChoose_Show, list); break; } }
//设置装备宝石信息 private void SetGemInfo() { m_holdInfo_list.Clear(); GameObject child_gem; int gem_state = -1; string[] gem_data_arr = gem_data_info.Split(';'); string[] need_hold_arr = cur_equip_info.needOpenHold.Split(';'); for (int i = 0; i < m_max_gem_num; i++) { child_gem = panel.gemInfo.GetChild(i).gameObject; gem_state = GameConvert.IntConvert(gem_data_arr[i]); string[] hold_need_data = need_hold_arr[i].Split(':'); HoldInfo hold_info = new HoldInfo(); hold_info.m_gem_id = gem_state; hold_info.m_index = i + 1; hold_info.m_info = gem_state > 0 ? GemItemConfig.GetGemItem(gem_state) : null; if (gem_state > 0) { hold_info.m_type = Hold_STATE.EQUIP; } else if (gem_state == 0) { hold_info.m_type = Hold_STATE.EMPTY; } else { int need_num = GameConvert.IntConvert(hold_need_data[1]); int has_num = ItemManager.GetBagItemCount(hold_need_data[0]); HoldInfo previous_info = null; if (i - 1 >= 0) { previous_info = m_holdInfo_list[i - 1]; } if (previous_info == null || previous_info.m_type == Hold_STATE.EQUIP || previous_info.m_type == Hold_STATE.EMPTY) { hold_info.m_type = has_num > need_num ? Hold_STATE.CAN_OPEN : Hold_STATE.MATERIAL_LOCK; } else { hold_info.m_type = Hold_STATE.NOT_OPEN_LOCK;//上一个孔没开启 } } SetGemItemInfo(child_gem, hold_info); m_holdInfo_list.Add(hold_info); } }
///开槽材料是否满足 private bool IsOpenMaterial(HoldInfo info, out int material_id) { string[] materal_arr = cur_equip_info.needOpenHold.Split(';'); string material = materal_arr[info.m_index - 1]; int id = GameConvert.IntConvert(material.Split(':')[0]); int need_num = GameConvert.IntConvert(material.Split(':')[1]); material_id = id; int has_num = ItemManager.GetBagItemCount(id.ToString()); if (id == 0 || need_num <= has_num) { return(true); } return(false); }
internal static void AddHoldInfo(HoldTime item) { string key = GetKey(item.SHOP_ID, item.HOLD_CODE); HoldInfo info = GetHoldInfo(item.SHOP_ID, item.HOLD_CODE); if (info == null) { info = CreateHelper.CreateHoldInfo(item); InputMart.Instance.HoldInfo.Add(key, info); if (info.HoldCode == "DEFAULT") { SetDefaultHoldTime(info.HoldTime); } } return; }
private void OnHoldEnd(HoldInfo holdInfo) { HoldEnd?.Invoke(holdInfo); }
private void OnHoldChange(HoldInfo holdInfo) { HoldChange?.Invoke(holdInfo); }
private void OnHoldStart(HoldInfo holdInfo) { HoldStart?.Invoke(holdInfo); }
private void UpdateInfo(HoldInfo holdInfo) { CurrentHoldScore = holdInfo.CurrentHoldScore; MaxHoldBonus = holdInfo.MaxHoldBonus; HoldMarks = holdInfo.HoldMarks.Cast <object>(); }