private void SelectExchange(ItemExchangeKinds exchangeKinds) { if (mKeyController != null && mOnExchangeCallBack != null) { mOnExchangeCallBack(exchangeKinds); } }
public int GetItemExchangeNum(ItemExchangeKinds exchange_type) { int result; if (exchange_type == ItemExchangeKinds.NONE) { result = 1; } else if (exchange_type == ItemExchangeKinds.PLAN && this.Id == 57) { result = 4; } else if (exchange_type == ItemExchangeKinds.REMODEL && this.Id == 57) { result = 1; } else if (exchange_type == ItemExchangeKinds.PRESENT_MATERIAL && this.Id == 60) { result = 1; } else if (exchange_type == ItemExchangeKinds.PRESENT_IRAKO && this.Id == 60) { result = 1; } else { result = 0; } return(result); }
public int GetItemExchangeNum(ItemExchangeKinds exchange_type) { switch (exchange_type) { case ItemExchangeKinds.NONE: return(1); case ItemExchangeKinds.PLAN: if (Id == 57) { return(4); } break; } if (exchange_type == ItemExchangeKinds.REMODEL && Id == 57) { return(1); } if (exchange_type == ItemExchangeKinds.PRESENT_MATERIAL && Id == 60) { return(1); } if (exchange_type == ItemExchangeKinds.PRESENT_IRAKO && Id == 60) { return(1); } return(0); }
public int GetSpendCountInUse(ItemExchangeKinds use_type) { if (_mst_data == null) { return(0); } return(_mst_data.GetItemExchangeNum(use_type)); }
private void SelectExchange(ItemExchangeKinds exchangeKinds) { bool flag = this.mKeyController != null; if (flag && this.mOnExchangeCallBack != null) { this.mOnExchangeCallBack.Invoke(exchangeKinds); } }
public Result UseItem(int useitem_mst_id, bool is_force, ItemExchangeKinds kinds) { Api_Result <User_ItemUseFmt> api_Result = new Api_req_Member().ItemUse(useitem_mst_id, is_force, kinds); if (api_Result.state != 0 || api_Result.data == null) { return(null); } bool has_use_item_reward; List <IReward> rewards = _CreateRewardModels(useitem_mst_id, api_Result.data, out has_use_item_reward); Init(); return(new Result(rewards, api_Result.data.CautionFlag)); }
public ItemlistManager.Result UseItem(int useitem_mst_id, bool is_force, ItemExchangeKinds kinds) { Api_Result <User_ItemUseFmt> api_Result = new Api_req_Member().ItemUse(useitem_mst_id, is_force, kinds); if (api_Result.state != Api_Result_State.Success || api_Result.data == null) { return(null); } bool flag; List <IReward> rewards = this._CreateRewardModels(useitem_mst_id, api_Result.data, out flag); this.Init(); return(new ItemlistManager.Result(rewards, api_Result.data.CautionFlag)); }
private IEnumerable <XElement> get_package_item(ItemExchangeKinds exchange_type, Mst_useitem mst_useitem) { List <XElement> result = null; switch (exchange_type) { case ItemExchangeKinds.NONE: { Dictionary <string, string> dictionary = new Dictionary <string, string>(); dictionary.Add("Package_type", "2"); dictionary.Add("Package_id", mst_useitem.Id.ToString()); Dictionary <string, string> where_dict = dictionary; return(Utils.Xml_Result_Where("mst_item_package", "mst_item_package", where_dict)); } case ItemExchangeKinds.PLAN: { List <XElement> list = new List <XElement>(); list.Add(new XElement("mst_item_package", new XElement("Id", "101"), new XElement("Package_type", "2"), new XElement("Package_id", "57"), new XElement("Material_id", "0"), new XElement("Useitem_id", "58"), new XElement("Slotitem_id", "0"), new XElement("Items", "1"))); result = list; break; } case ItemExchangeKinds.REMODEL: { List <XElement> list = new List <XElement>(); list.Add(new XElement("mst_item_package", new XElement("Id", "102"), new XElement("Package_type", "2"), new XElement("Package_id", "57"), new XElement("Material_id", "8"), new XElement("Useitem_id", "0"), new XElement("Slotitem_id", "0"), new XElement("Items", "4"))); result = list; break; } case ItemExchangeKinds.PRESENT_MATERIAL: { List <XElement> list = new List <XElement>(); list.Add(new XElement("mst_item_package", new XElement("Id", "103"), new XElement("Package_type", "2"), new XElement("Package_id", "60"), new XElement("Material_id", "7"), new XElement("Useitem_id", "0"), new XElement("Slotitem_id", "0"), new XElement("Items", "3"))); list.Add(new XElement("mst_item_package", new XElement("Id", "104"), new XElement("Package_type", "2"), new XElement("Package_id", "60"), new XElement("Material_id", "8"), new XElement("Useitem_id", "0"), new XElement("Slotitem_id", "0"), new XElement("Items", "1"))); result = list; break; } case ItemExchangeKinds.PRESENT_IRAKO: { List <XElement> list = new List <XElement>(); list.Add(new XElement("mst_item_package", new XElement("Id", "105"), new XElement("Package_type", "2"), new XElement("Package_id", "60"), new XElement("Material_id", "0"), new XElement("Useitem_id", "59"), new XElement("Slotitem_id", "0"), new XElement("Items", "1"))); result = list; break; } } return(result); }
public Api_Result <User_ItemUseFmt> ItemUse(int useitem_id, bool force_flag, ItemExchangeKinds exchange_type) { Dictionary <enumMaterialCategory, int> dictionary = new Dictionary <enumMaterialCategory, int>(); Dictionary <ItemGetKinds, Dictionary <int, int> > dictionary2 = new Dictionary <ItemGetKinds, Dictionary <int, int> >(); Dictionary <int, Dictionary <int, int> > dictionary3 = new Dictionary <int, Dictionary <int, int> >(); using (IEnumerator enumerator = Enum.GetValues(typeof(ItemGetKinds)).GetEnumerator()) { while (enumerator.MoveNext()) { object current = enumerator.get_Current(); dictionary2.Add((ItemGetKinds)((int)current), new Dictionary <int, int>()); } } for (int i = 1; i <= 3; i++) { dictionary3.Add(i, new Dictionary <int, int>()); } Api_Result <User_ItemUseFmt> api_Result = new Api_Result <User_ItemUseFmt>(); api_Result.data = new User_ItemUseFmt(); Mst_useitem mst_useitem = null; if (!Mst_DataManager.Instance.Mst_useitem.TryGetValue(useitem_id, ref mst_useitem)) { api_Result.state = Api_Result_State.Parameter_Error; return(api_Result); } if (mst_useitem.Usetype != 4) { api_Result.state = Api_Result_State.Parameter_Error; return(api_Result); } Mem_useitem mem_useitem; if (!Comm_UserDatas.Instance.User_useItem.TryGetValue(useitem_id, ref mem_useitem)) { api_Result.state = Api_Result_State.Parameter_Error; return(api_Result); } int num = mst_useitem.GetItemExchangeNum(exchange_type); if (num == 0) { api_Result.state = Api_Result_State.Parameter_Error; return(api_Result); } if (mem_useitem.Value < num) { api_Result.state = Api_Result_State.Parameter_Error; return(api_Result); } Dictionary <enumMaterialCategory, Mem_material> user_material = Comm_UserDatas.Instance.User_material; IEnumerable <XElement> enumerable = this.get_package_item(exchange_type, mst_useitem); if (enumerable != null) { Mst_item_limit mst_item_limit = Mst_DataManager.Instance.Mst_item_limit.get_Item(1); var enumerable2 = Enumerable.Select(Enumerable.Select(enumerable, (XElement item) => new { item = item, category = (enumMaterialCategory)((int)Enum.Parse(typeof(enumMaterialCategory), item.Element("Material_id").get_Value())) }), <> __TranspIdent6 => new { material_id = < > __TranspIdent6.category, useitem_id = int.Parse(< > __TranspIdent6.item.Element("Useitem_id").get_Value()), slotitem_id = int.Parse(< > __TranspIdent6.item.Element("Slotitem_id").get_Value()), items = int.Parse(< > __TranspIdent6.item.Element("Items").get_Value()), max_items = mst_item_limit.GetMaterialLimit(Mst_DataManager.Instance.Mst_item_limit, <> __TranspIdent6.category) });
public Api_Result <User_ItemUseFmt> ItemUse(int useitem_id, bool force_flag, ItemExchangeKinds exchange_type) { Dictionary <enumMaterialCategory, int> dictionary = new Dictionary <enumMaterialCategory, int>(); Dictionary <ItemGetKinds, Dictionary <int, int> > dictionary2 = new Dictionary <ItemGetKinds, Dictionary <int, int> >(); Dictionary <int, Dictionary <int, int> > dictionary3 = new Dictionary <int, Dictionary <int, int> >(); foreach (object value6 in Enum.GetValues(typeof(ItemGetKinds))) { dictionary2.Add((ItemGetKinds)(int)value6, new Dictionary <int, int>()); } for (int i = 1; i <= 3; i++) { dictionary3.Add(i, new Dictionary <int, int>()); } Api_Result <User_ItemUseFmt> api_Result = new Api_Result <User_ItemUseFmt>(); api_Result.data = new User_ItemUseFmt(); Mst_useitem value = null; if (!Mst_DataManager.Instance.Mst_useitem.TryGetValue(useitem_id, out value)) { api_Result.state = Api_Result_State.Parameter_Error; return(api_Result); } if (value.Usetype != 4) { api_Result.state = Api_Result_State.Parameter_Error; return(api_Result); } if (!Comm_UserDatas.Instance.User_useItem.TryGetValue(useitem_id, out Mem_useitem value2)) { api_Result.state = Api_Result_State.Parameter_Error; return(api_Result); } int num = value.GetItemExchangeNum(exchange_type); if (num == 0) { api_Result.state = Api_Result_State.Parameter_Error; return(api_Result); } if (value2.Value < num) { api_Result.state = Api_Result_State.Parameter_Error; return(api_Result); } Dictionary <enumMaterialCategory, Mem_material> user_material = Comm_UserDatas.Instance.User_material; IEnumerable <XElement> enumerable = get_package_item(exchange_type, value); if (enumerable != null) { Mst_item_limit mst_item_limit = Mst_DataManager.Instance.Mst_item_limit[1]; var enumerable2 = from item in enumerable let category = (enumMaterialCategory)(int)Enum.Parse(typeof(enumMaterialCategory), item.Element("Material_id").Value) select new { material_id = category, useitem_id = int.Parse(item.Element("Useitem_id").Value), slotitem_id = int.Parse(item.Element("Slotitem_id").Value), items = int.Parse(item.Element("Items").Value), max_items = mst_item_limit.GetMaterialLimit(Mst_DataManager.Instance.Mst_item_limit, category) }; foreach (var item in enumerable2) { if (item.material_id != 0) { int num2 = LimitGetCount(user_material[item.material_id].Value, item.items, item.max_items); if (!force_flag && num2 != item.items) { api_Result.data.CautionFlag = true; return(api_Result); } dictionary.Add(item.material_id, item.items); dictionary3[1].Add((int)item.material_id, num2); } else if (item.useitem_id != 0) { int now_count = 0; if (Comm_UserDatas.Instance.User_useItem.TryGetValue(item.useitem_id, out Mem_useitem value3)) { now_count = value3.Value; } int value4 = LimitGetCount(now_count, item.items, item.max_items); dictionary2[ItemGetKinds.UseItem].Add(item.useitem_id, item.items); dictionary3[2].Add(item.useitem_id, value4); } else if (item.slotitem_id != 0) { dictionary2[ItemGetKinds.SlotItem].Add(item.slotitem_id, item.items); dictionary3[3].Add(item.slotitem_id, item.items); } } foreach (KeyValuePair <int, Dictionary <int, int> > item2 in dictionary3) { int key = item2.Key; foreach (KeyValuePair <int, int> item3 in item2.Value) { int key2 = item3.Key; int value5 = item3.Value; switch (key) { case 1: { enumMaterialCategory key3 = (enumMaterialCategory)key2; user_material[key3].Add_Material(value5); break; } case 2: Comm_UserDatas.Instance.Add_Useitem(key2, value5); break; case 3: Comm_UserDatas.Instance.Add_Slot(new List <int> { key2 }); break; } } } } else if (value.Id == 10 || value.Id == 11 || value.Id == 12) { Mem_basic user_basic = Comm_UserDatas.Instance.User_basic; int get_count = int.Parse(value.Description2) * value2.Value; int max_count = 200000; int num3 = LimitGetCount(user_basic.Fcoin, get_count, max_count); dictionary2[ItemGetKinds.UseItem].Add(44, num3); user_basic.AddCoin(num3); num = value2.Value; } else if (value.Id == 53) { Mem_basic user_basic2 = Comm_UserDatas.Instance.User_basic; if (user_basic2.Max_chara >= user_basic2.GetPortMaxExtendNum()) { api_Result.state = Api_Result_State.Parameter_Error; return(api_Result); } dictionary2[ItemGetKinds.UseItem].Add(53, 1); user_basic2.PortExtend(1); } value2.Sub_UseItem(num); api_Result.data.GetItem = GetItemFmt(dictionary2); api_Result.data.Material = dictionary; return(api_Result); }