private bool IsThisOfficerCouldCombine(ConfOfficer officer_, Dictionary <long, OfficerInfo> my_combined_officers, Dictionary <long, int> all_item_in_bag_) { ConfOfficer item = officer_; long id = item.id; int lvl = 0; if (my_combined_officers.ContainsKey(id)) { lvl = my_combined_officers[id].Level; } ConfCombineFormula next_level_combine_info = PoliceUILogicAssist.GetCombineInfo(item, lvl + 1); if (null == next_level_combine_info) { return(false); } if (!all_item_in_bag_.ContainsKey(next_level_combine_info.propId1) || !all_item_in_bag_.ContainsKey(next_level_combine_info.propId2) || !all_item_in_bag_.ContainsKey(next_level_combine_info.propId3) || !all_item_in_bag_.ContainsKey(next_level_combine_info.propId4) || !all_item_in_bag_.ContainsKey(next_level_combine_info.propId5) || !all_item_in_bag_.ContainsKey(next_level_combine_info.specialPropId1) || !all_item_in_bag_.ContainsKey(next_level_combine_info.specialPropId2) || !all_item_in_bag_.ContainsKey(next_level_combine_info.specialPropId3) || !all_item_in_bag_.ContainsKey(next_level_combine_info.specialPropId4)) { //if (!bag_items.ContainsKey(next_level_combine_info.propId1) || !bag_items.ContainsKey(next_level_combine_info.propId2) // || !bag_items.ContainsKey(next_level_combine_info.propId3) || !bag_items.ContainsKey(next_level_combine_info.propId4) // || !bag_items.ContainsKey(next_level_combine_info.propId5) || !bag_items.ContainsKey(next_level_combine_info.specialPropId1) // || !bag_items.ContainsKey(next_level_combine_info.specialPropId2) || !bag_items.ContainsKey(next_level_combine_info.specialPropId3) // || !bag_items.ContainsKey(next_level_combine_info.specialPropId4)) //{ return(false); //} } //int s_id1_in_bag_count = bag_items.ContainsKey(next_level_combine_info.specialPropId1) ? bag_items[next_level_combine_info.specialPropId1].Count : 0; //int s_id2_in_bag_count = bag_items.ContainsKey(next_level_combine_info.specialPropId2) ? bag_items[next_level_combine_info.specialPropId2].Count : 0; //int s_id3_in_bag_count = bag_items.ContainsKey(next_level_combine_info.specialPropId3) ? bag_items[next_level_combine_info.specialPropId3].Count : 0; //int s_id4_in_bag_count = bag_items.ContainsKey(next_level_combine_info.specialPropId4) ? bag_items[next_level_combine_info.specialPropId4].Count : 0; int s_id1_in_add_count = all_item_in_bag_.ContainsKey(next_level_combine_info.specialPropId1) ? all_item_in_bag_[next_level_combine_info.specialPropId1] : 0; int s_id2_in_add_count = all_item_in_bag_.ContainsKey(next_level_combine_info.specialPropId2) ? all_item_in_bag_[next_level_combine_info.specialPropId2] : 0; int s_id3_in_add_count = all_item_in_bag_.ContainsKey(next_level_combine_info.specialPropId3) ? all_item_in_bag_[next_level_combine_info.specialPropId3] : 0; int s_id4_in_add_count = all_item_in_bag_.ContainsKey(next_level_combine_info.specialPropId4) ? all_item_in_bag_[next_level_combine_info.specialPropId4] : 0; //if (s_id1_in_bag_count + s_id1_in_add_count < next_level_combine_info.special1Count // || s_id2_in_bag_count + s_id2_in_add_count < next_level_combine_info.special2Count // || s_id3_in_bag_count + s_id3_in_add_count < next_level_combine_info.special3Count // || s_id4_in_bag_count + s_id4_in_add_count < next_level_combine_info.special4Count) if (s_id1_in_add_count < next_level_combine_info.special1Count || s_id2_in_add_count < next_level_combine_info.special2Count || s_id3_in_add_count < next_level_combine_info.special3Count || s_id4_in_add_count < next_level_combine_info.special4Count) { return(false); } //if (bag_items[next_level_combine_info.specialPropId1].Count < next_level_combine_info.special1Count //|| bag_items[next_level_combine_info.specialPropId2].Count < next_level_combine_info.special2Count //|| bag_items[next_level_combine_info.specialPropId3].Count < next_level_combine_info.special3Count //|| bag_items[next_level_combine_info.specialPropId4].Count < next_level_combine_info.special4Count) //{ // continue; //} return(true); }
public void Refresh(ConfOfficer ori_info_, OfficerInfo server_info_ = null, bool with_effect_ = false) { m_body_tex.TextureName = ori_info_.portrait; m_body_tex.SetGray(false); this.m_officer_id = ori_info_.id; this.m_officer_server_id = null == server_info_ ? -1 : server_info_.PlayerOfficerId; int lvl = null == server_info_ ? 0 : server_info_.Level; m_level_icon.Sprite = PoliceUILogicAssist.GetPoliceRankIcon(lvl); m_name_title.Text = LocalizeModule.Instance.GetString(ori_info_.name); ConfCombineFormula next_level_combine_info = PoliceUILogicAssist.GetCombineInfo(ori_info_, lvl + 1); if (null != next_level_combine_info) { //tool List <string> tool_icon_names = new List <string>(); tool_icon_names.Add(ConfProp.Get(next_level_combine_info.propId1).icon); tool_icon_names.Add(ConfProp.Get(next_level_combine_info.propId2).icon); tool_icon_names.Add(ConfProp.Get(next_level_combine_info.propId3).icon); tool_icon_names.Add(ConfProp.Get(next_level_combine_info.propId4).icon); tool_icon_names.Add(ConfProp.Get(next_level_combine_info.propId5).icon); List <long> tool_ids = new List <long>(); tool_ids.Add(next_level_combine_info.propId1); tool_ids.Add(next_level_combine_info.propId2); tool_ids.Add(next_level_combine_info.propId3); tool_ids.Add(next_level_combine_info.propId4); tool_ids.Add(next_level_combine_info.propId5); bool lock_officer = false; for (int i = 0; i < m_tool_icons.Count; ++i) { bool disable = !GlobalInfo.MY_PLAYER_INFO.Bag_infos.ContainsKey(tool_ids[i]); if (disable) { lock_officer = true; } m_tool_icons[i].Refresh(tool_icon_names[i], disable); } ToolData t_d1 = new ToolData { m_tool_id = next_level_combine_info.propId1, m_tool_count = GlobalInfo.MY_PLAYER_INFO.Bag_infos.ContainsKey(next_level_combine_info.propId1) ? GlobalInfo.MY_PLAYER_INFO.Bag_infos[next_level_combine_info.propId1].Count : 0, m_tool_max_count = 1 }; ToolData t_d2 = new ToolData { m_tool_id = next_level_combine_info.propId2, m_tool_count = GlobalInfo.MY_PLAYER_INFO.Bag_infos.ContainsKey(next_level_combine_info.propId2) ? GlobalInfo.MY_PLAYER_INFO.Bag_infos[next_level_combine_info.propId2].Count : 0, m_tool_max_count = 1 }; ToolData t_d3 = new ToolData { m_tool_id = next_level_combine_info.propId3, m_tool_count = GlobalInfo.MY_PLAYER_INFO.Bag_infos.ContainsKey(next_level_combine_info.propId3) ? GlobalInfo.MY_PLAYER_INFO.Bag_infos[next_level_combine_info.propId3].Count : 0, m_tool_max_count = 1 }; ToolData t_d4 = new ToolData { m_tool_id = next_level_combine_info.propId4, m_tool_count = GlobalInfo.MY_PLAYER_INFO.Bag_infos.ContainsKey(next_level_combine_info.propId4) ? GlobalInfo.MY_PLAYER_INFO.Bag_infos[next_level_combine_info.propId4].Count : 0, m_tool_max_count = 1 }; ToolData t_d5 = new ToolData { m_tool_id = next_level_combine_info.propId5, m_tool_count = GlobalInfo.MY_PLAYER_INFO.Bag_infos.ContainsKey(next_level_combine_info.propId5) ? GlobalInfo.MY_PLAYER_INFO.Bag_infos[next_level_combine_info.propId5].Count : 0, m_tool_max_count = 1 }; m_tool_datas = new List <ToolData>() { t_d1, t_d2, t_d3, t_d4, t_d5 }; //item List <string> item_icon_names = new List <string>(); item_icon_names.Add(ConfProp.Get(next_level_combine_info.specialPropId1).icon); item_icon_names.Add(ConfProp.Get(next_level_combine_info.specialPropId2).icon); item_icon_names.Add(ConfProp.Get(next_level_combine_info.specialPropId3).icon); item_icon_names.Add(ConfProp.Get(next_level_combine_info.specialPropId4).icon); List <long> item_ids = new List <long>(); item_ids.Add(next_level_combine_info.specialPropId1); item_ids.Add(next_level_combine_info.specialPropId2); item_ids.Add(next_level_combine_info.specialPropId3); item_ids.Add(next_level_combine_info.specialPropId4); List <int> item_nums = new List <int>(); item_nums.Add(next_level_combine_info.special1Count); item_nums.Add(next_level_combine_info.special2Count); item_nums.Add(next_level_combine_info.special3Count); item_nums.Add(next_level_combine_info.special4Count); m_item_datas = new List <ToolData>(); for (int i = 0; i < item_ids.Count; ++i) { m_items[i].Sprite = item_icon_names[i]; m_items[i].gameObject.name = i.ToString(); PlayerPropMsg cur_item_in_bag; int cur_num = 0; if (GlobalInfo.MY_PLAYER_INFO.Bag_infos.TryGetValue(item_ids[i], out cur_item_in_bag)) { cur_num = cur_item_in_bag.Count; } m_items_nums[i].Text = cur_num.ToString(); m_items_max_nums[i].Text = item_nums[i].ToString(); m_item_progress[i].FillAmmount = (float)(((float)cur_num) / item_nums[i]); if (cur_num < item_nums[i]) { lock_officer = true; } ToolData t_d = new ToolData { m_tool_id = item_ids[i], m_tool_count = cur_num, m_tool_max_count = item_nums[i] }; m_item_datas.Add(t_d); } if (0 == lvl) { if (!lock_officer) // this.m_employ_btn.Visible = true; { SwitchUpgradAndEmployBtn(ENUM_BTN_TYPE.E_EMPLOY_ENABLE); } else //this.m_employ_btn.Visible = false; { //TimeModule.Instance.SetTimeout(() => SwitchUpgradAndEmployBtn(ENUM_BTN_TYPE.E_EMPLOY_DISABLE), 0.5f); SwitchUpgradAndEmployBtn(ENUM_BTN_TYPE.E_EMPLOY_DISABLE); } this.m_upgrade_btn.Visible = false; m_body_tex.SetGray(true); } else { if (!lock_officer) { //this.m_upgrade_btn.Visible = true; SwitchUpgradAndEmployBtn(ENUM_BTN_TYPE.E_UPGRADE_ENABLE); } else { //this.m_upgrade_btn.Visible = false; //TimeModule.Instance.SetTimeout(() => SwitchUpgradAndEmployBtn(ENUM_BTN_TYPE.E_UPGRADE_DISABLE), 0.5f); SwitchUpgradAndEmployBtn(ENUM_BTN_TYPE.E_UPGRADE_DISABLE); } } m_tool_icons.ForEach((tool) => { tool.Visible = true; }); m_item_roots.ForEach((tool) => { tool.Visible = true; }); } else { m_tool_icons.ForEach((tool) => { tool.Visible = false; }); m_item_roots.ForEach((tool) => { tool.Visible = false; }); this.SwitchUpgradAndEmployBtn(ENUM_BTN_TYPE.E_ALL_DISABLE); } if (with_effect_) { ShowUpgradeEffect(lvl); } }