| | |
| | | { |
| | | ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); |
| | | System.Type type = typeof(ComposeWinModel); |
| | | Utils.BeginObjectRegister(type, L, translator, 0, 47, 10, 7); |
| | | Utils.BeginObjectRegister(type, L, translator, 0, 46, 10, 7); |
| | | |
| | | Utils.RegisterFunc(L, Utils.METHOD_IDX, "Init", _m_Init); |
| | | Utils.RegisterFunc(L, Utils.METHOD_IDX, "UnInit", _m_UnInit); |
| | |
| | | Utils.RegisterFunc(L, Utils.METHOD_IDX, "SendComposeRequest", _m_SendComposeRequest); |
| | | Utils.RegisterFunc(L, Utils.METHOD_IDX, "SendComposeQuest", _m_SendComposeQuest); |
| | | Utils.RegisterFunc(L, Utils.METHOD_IDX, "IsBindByFixedAndUnFixedMat", _m_IsBindByFixedAndUnFixedMat); |
| | | Utils.RegisterFunc(L, Utils.METHOD_IDX, "GetBindOrNoBindMinCnt", _m_GetBindOrNoBindMinCnt); |
| | | Utils.RegisterFunc(L, Utils.METHOD_IDX, "GetComposeSuccessRate", _m_GetComposeSuccessRate); |
| | | Utils.RegisterFunc(L, Utils.METHOD_IDX, "IsComposeTicketByType", _m_IsComposeTicketByType); |
| | | Utils.RegisterFunc(L, Utils.METHOD_IDX, "CheckComposeItemById", _m_CheckComposeItemById); |
| | |
| | | |
| | | |
| | | return 1; |
| | | } |
| | | |
| | | } catch(System.Exception gen_e) { |
| | | return LuaAPI.luaL_error(L, "c# exception:" + gen_e); |
| | | } |
| | | |
| | | } |
| | | |
| | | [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] |
| | | static int _m_GetBindOrNoBindMinCnt(RealStatePtr L) |
| | | { |
| | | try { |
| | | |
| | | ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); |
| | | |
| | | |
| | | ComposeWinModel gen_to_be_invoked = (ComposeWinModel)translator.FastGetCSObj(L, 1); |
| | | |
| | | |
| | | |
| | | { |
| | | int _minBindCnt; |
| | | int _minNoBindCnt; |
| | | |
| | | gen_to_be_invoked.GetBindOrNoBindMinCnt( out _minBindCnt, out _minNoBindCnt ); |
| | | LuaAPI.xlua_pushinteger(L, _minBindCnt); |
| | | |
| | | LuaAPI.xlua_pushinteger(L, _minNoBindCnt); |
| | | |
| | | |
| | | |
| | | |
| | | return 2; |
| | | } |
| | | |
| | | } catch(System.Exception gen_e) { |
| | |
| | | fileFormatVersion: 2 |
| | | guid: e0e359da308439d4e87a7d7ce8fd4cc5 |
| | | timeCreated: 1550120588 |
| | | timeCreated: 1552375168 |
| | | licenseType: Pro |
| | | MonoImporter: |
| | | serializedVersion: 2 |
| | |
| | | Utils.RegisterFunc(L, Utils.METHOD_IDX, "GetMaterialNeed", _m_GetMaterialNeed); |
| | | Utils.RegisterFunc(L, Utils.METHOD_IDX, "GetMaxTrainLevel", _m_GetMaxTrainLevel); |
| | | Utils.RegisterFunc(L, Utils.METHOD_IDX, "GetCandidatePlaces", _m_GetCandidatePlaces); |
| | | Utils.RegisterFunc(L, Utils.METHOD_IDX, "IsEquipPlaceTrainable", _m_IsEquipPlaceTrainable); |
| | | Utils.RegisterFunc(L, Utils.METHOD_IDX, "GetEquipPlaceTrainState", _m_GetEquipPlaceTrainState); |
| | | Utils.RegisterFunc(L, Utils.METHOD_IDX, "GetUnSavedProperties", _m_GetUnSavedProperties); |
| | | Utils.RegisterFunc(L, Utils.METHOD_IDX, "GetTrainedProperties", _m_GetTrainedProperties); |
| | | |
| | |
| | | } |
| | | |
| | | [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] |
| | | static int _m_IsEquipPlaceTrainable(RealStatePtr L) |
| | | static int _m_GetEquipPlaceTrainState(RealStatePtr L) |
| | | { |
| | | try { |
| | | |
| | |
| | | |
| | | |
| | | { |
| | | string _equipGuid = LuaAPI.lua_tostring(L, 2); |
| | | int _level = LuaAPI.xlua_tointeger(L, 2); |
| | | int _place = LuaAPI.xlua_tointeger(L, 3); |
| | | |
| | | Snxxz.UI.EquipTrainModel.TrainState gen_ret = gen_to_be_invoked.GetEquipPlaceTrainState( _level, _place ); |
| | | translator.Push(L, gen_ret); |
| | | |
| | | |
| | | |
| | | return 1; |
| | | } |
| | |
| | | fileFormatVersion: 2 |
| | | guid: ff2dde43802d1d14795873c131842a1e |
| | | timeCreated: 1552374367 |
| | | timeCreated: 1552375168 |
| | | licenseType: Pro |
| | | MonoImporter: |
| | | serializedVersion: 2 |
| | |
| | | <type fullname="mapbornConfig" preserve="all"/> |
| | | <type fullname="mapnpcConfig" preserve="all"/> |
| | | <type fullname="maptransportConfig" preserve="all"/> |
| | | <type fullname="PlayerStoneData" preserve="all"/> |
| | | <type fullname="PlayerDatas" preserve="all"/> |
| | | <type fullname="Snxxz.UI.RealmModel" preserve="all"/> |
| | | <type fullname="SnxxzGame" preserve="all"/> |
| | |
| | | <type fullname="Snxxz.UI.JadeDynastyBossModel" preserve="all"/> |
| | | <type fullname="Snxxz.UI.JadeDynastyDecomposeModel" preserve="all"/> |
| | | <type fullname="Snxxz.UI.JadeDynastyEquipModel" preserve="all"/> |
| | | <type fullname="Snxxz.UI.JadeDynastyGemModel" preserve="all"/> |
| | | <type fullname="Snxxz.UI.JadeDynastySkillModel" preserve="all"/> |
| | | <type fullname="Snxxz.UI.JadeDynastyTowerModel" preserve="all"/> |
| | | <type fullname="Snxxz.UI.FBHelpPointExchageModel" preserve="all"/> |
| | |
| | | <type fullname="Snxxz.UI.BuySuccessModel" preserve="all"/> |
| | | <type fullname="StoreModel" preserve="all"/> |
| | | <type fullname="EquipReinforceModel" preserve="all"/> |
| | | <type fullname="Snxxz.UI.GemModel" preserve="all"/> |
| | | <type fullname="GodBeastModel" preserve="all"/> |
| | | <type fullname="HowToPlayModel" preserve="all"/> |
| | | <type fullname="Snxxz.UI.WingsRedDotModel" preserve="all"/> |
| | |
| | |
|
| | | for (int i = 0; i < itemModels.Count; i++)
|
| | | {
|
| | | string key = StringUtility.Contact(itemModels[i].itemId, "IsBind", itemModels[i].isBind);
|
| | | string key = itemModels[i].itemId.ToString();
|
| | | if (!lookRecycleDict.ContainsKey(key))
|
| | | {
|
| | | List<ItemModel> modellist = new List<ItemModel>();
|
| | | modellist.Add(itemModels[i]);
|
| | | lookRecycleDict.Add(key, modellist);
|
| | | if (itemModels[i].isBind == 1)
|
| | | {
|
| | | AddSelectRecycleDan(itemModels[i]);
|
| | | }
|
| | | AddSelectRecycleDan(itemModels[i]);
|
| | | }
|
| | | else
|
| | | {
|
| | |
| | |
|
| | | private int CompareByDanBindAndLv(ItemModel start, ItemModel end)
|
| | | {
|
| | | bool isBindStart = start.isBind == 1 ? true : false;
|
| | | bool isBindEnd = end.isBind == 1 ? true : false;
|
| | | if (isBindStart.CompareTo(isBindEnd) != 0) return -isBindStart.CompareTo(isBindEnd);
|
| | |
|
| | | int startLv = start.config.LV;
|
| | | int endLv = end.config.LV;
|
| | | if (startLv.CompareTo(endLv) != 0) return startLv.CompareTo(endLv);
|
| | |
| | | public event Action RefreshSelectRecycleAct;
|
| | | public void AddSelectRecycleDan(ItemModel itemModel)
|
| | | {
|
| | | string key = StringUtility.Contact(itemModel.itemId, "IsBind", itemModel.isBind);
|
| | | string key = itemModel.itemId.ToString();
|
| | | if (!recycleStrlist.Contains(key))
|
| | | {
|
| | | recycleStrlist.Add(key);
|
| | |
| | |
|
| | | public void RemoveSelectRecycleDan(ItemModel itemModel)
|
| | | {
|
| | | string key = StringUtility.Contact(itemModel.itemId, "IsBind", itemModel.isBind);
|
| | | string key = itemModel.itemId.ToString();
|
| | | if (recycleStrlist.Contains(key))
|
| | | {
|
| | | recycleStrlist.Remove(key);
|
| | |
| | | return;
|
| | | }
|
| | | #region 设置回收数据
|
| | | int unBindCnt = 0;
|
| | | int sumCnt = 0;
|
| | | int getMoney = 0;
|
| | | recycleDanDict.Clear();
|
| | | for (int i = 0; i < recycleStrlist.Count; i++)
|
| | |
| | | {
|
| | | for (int j = 0; j < modellist.Count; j++)
|
| | | {
|
| | | sumCnt += modellist[j].count;
|
| | | if (modellist[j].isBind == 0)
|
| | | {
|
| | | unBindCnt += modellist[j].count;
|
| | | }
|
| | |
|
| | | if (playerPack.CheckIsDrugById(modellist[j].itemId))
|
| | | {
|
| | | AttrFruitConfig fruitConfig = AttrFruitConfig.Get(modellist[j].itemId);
|
| | | getMoney = getMoney + fruitConfig.RecycleExp * modellist[j].count;
|
| | | getMoney += fruitConfig.RecycleExp * modellist[j].count;
|
| | | }
|
| | |
|
| | | if (!recycleDanDict.ContainsKey(modellist[j].itemPlace))
|
| | |
| | | }
|
| | | #endregion
|
| | | SendRecycleDrugQuest(recycleDanDict.Keys.ToList(), recycleDanDict.Values.ToList());
|
| | | //if (isOpenPrompting)
|
| | | //{
|
| | | // ConfirmCancel.ToggleConfirmCancel(Language.Get("Mail101"), Language.Get("BlastFurnace114",sumCnt,getMoney,string.Format("<Img chat={0}/>",StringUtility.Contact("Money_Type_",27))),
|
| | | // Language.Get("ConfirmCancel102"),(bool isOk, bool isToggle) =>
|
| | | // {
|
| | | // if (isOk)
|
| | | // {
|
| | | // if(unBindCnt > 0)
|
| | | // {
|
| | | // ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("BlastFurnace115", unBindCnt),
|
| | | // (bool isRecycle) =>
|
| | | // {
|
| | | // if (isRecycle)
|
| | | // {
|
| | | // SendRecycleDrugQuest(recycleDanDict.Keys.ToList(), recycleDanDict.Values.ToList());
|
| | | // }
|
| | | // });
|
| | | // }
|
| | | // else
|
| | | // {
|
| | | // SendRecycleDrugQuest(recycleDanDict.Keys.ToList(), recycleDanDict.Values.ToList());
|
| | | // }
|
| | | // }
|
| | | // isOpenPrompting = !isToggle;
|
| | | // });
|
| | | //}
|
| | | //else
|
| | | //{
|
| | | // if (unBindCnt > 0)
|
| | | // {
|
| | | // ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("BlastFurnace115", unBindCnt),
|
| | | // (bool isRecycle) =>
|
| | | // {
|
| | | // if (isRecycle)
|
| | | // {
|
| | | // SendRecycleDrugQuest(recycleDanDict.Keys.ToList(), recycleDanDict.Values.ToList());
|
| | | // }
|
| | | // });
|
| | | // }
|
| | | // else
|
| | | // {
|
| | | // SendRecycleDrugQuest(recycleDanDict.Keys.ToList(), recycleDanDict.Values.ToList());
|
| | | // }
|
| | | //}
|
| | |
|
| | | }
|
| | |
|
| | | public void SendRecycleDrugQuest(List<int> indexs, List<int> nums)
|
| | | {
|
| | | CA32A_tagCMRecycleAttrFruit recycleAttrFruit = new CA32A_tagCMRecycleAttrFruit();
|
| | | var recycleAttrFruit = new CA32A_tagCMRecycleAttrFruit();
|
| | | recycleAttrFruit.IndexCount = (byte)indexs.Count;
|
| | | byte[] indexByte = new byte[indexs.Count];
|
| | | ushort[] numShort = new ushort[indexs.Count];
|
| | |
| | | {
|
| | | itemCell.gameObject.SetActive(true);
|
| | | ItemModel itemModel = list[0];
|
| | | string key = StringUtility.Contact(itemModel.itemId, "IsBind", itemModel.isBind);
|
| | | string key = itemModel.itemId.ToString();
|
| | | if (blastFurnace.recycleStrlist.Contains(key))
|
| | | {
|
| | | selectImg.SetActive(true);
|
| | |
| | | [SerializeField] UIEffect failEffect;
|
| | |
|
| | | ComposeWinModel _composeWinModel;
|
| | | ComposeWinModel composeWinModel
|
| | | {
|
| | | ComposeWinModel composeWinModel {
|
| | | get { return _composeWinModel ?? (_composeWinModel = ModelCenter.Instance.GetModel<ComposeWinModel>()); }
|
| | | }
|
| | |
|
| | | PackModel _playerPack;
|
| | | PackModel playerPack
|
| | | {
|
| | | PackModel playerPack {
|
| | | get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel<PackModel>()); }
|
| | | }
|
| | |
|
| | |
| | | bool isIncreaseRate = false;
|
| | | int successRate = 0;
|
| | | SelectEquipModel _selectModel;
|
| | | SelectEquipModel selectModel |
| | | {
|
| | | SelectEquipModel selectModel {
|
| | | get { return _selectModel ?? (_selectModel = ModelCenter.Instance.GetModel<SelectEquipModel>()); }
|
| | | }
|
| | | protected override void BindController()
|
| | |
| | | #region 新的逻辑
|
| | | private void Display()
|
| | | {
|
| | | composeWinModel.TryGetFirstTypeData((int)ComposeFuncType.Equip,out firstTypeData);
|
| | | if (firstTypeData == null ) return;
|
| | | composeWinModel.TryGetFirstTypeData((int)ComposeFuncType.Equip, out firstTypeData);
|
| | | if (firstTypeData == null) return;
|
| | |
|
| | | isIncreaseRate = false;
|
| | | successRate = 0;
|
| | |
| | | composeWinModel.ResetJumpToModel();
|
| | | }
|
| | |
|
| | | if(composeWinModel.CurComposeModel == null)
|
| | | if (composeWinModel.CurComposeModel == null)
|
| | | {
|
| | | curComposeEquipIndex = -1;
|
| | | }
|
| | |
| | | if (firstTypeData == null) return;
|
| | |
|
| | | cellCtrl.Refresh();
|
| | | foreach(var second in firstTypeData.secondTypeDict.Keys)
|
| | | foreach (var second in firstTypeData.secondTypeDict.Keys)
|
| | | {
|
| | | cellCtrl.AddCell(ScrollerDataType.Header,second);
|
| | | if(second == curSecondType)
|
| | | cellCtrl.AddCell(ScrollerDataType.Header, second);
|
| | | if (second == curSecondType)
|
| | | {
|
| | | var thirdTypeDict = firstTypeData.secondTypeDict[second].thirdTypeDict;
|
| | | foreach(var third in thirdTypeDict.Keys)
|
| | | foreach (var third in thirdTypeDict.Keys)
|
| | | {
|
| | | if (third != 0)
|
| | | {
|
| | | cellCtrl.AddCell(ScrollerDataType.Normal,third);
|
| | | cellCtrl.AddCell(ScrollerDataType.Normal, third);
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | | {
|
| | | CreateEquipTypeLineCell();
|
| | | composeWinModel.TryGetThirdTypeData((int)ComposeFuncType.Equip, curSecondType, curThirdType, out thirdTypeData);
|
| | | if(thirdTypeData != null)
|
| | | if (thirdTypeData != null)
|
| | | {
|
| | | ItemConfig itemConfig = ItemConfig.Get(thirdTypeData.itemCompound.makeID[0]);
|
| | | if (itemConfig != null && itemConfig.ItemColor == 6)
|
| | |
| | | {
|
| | | curThirdType = 0;
|
| | | curSecondType = secondType;
|
| | | composeWinModel.TryGetSecondTypeData((int)ComposeFuncType.Equip,secondType,out secondTypeData);
|
| | | composeWinModel.TryGetSecondTypeData((int)ComposeFuncType.Equip, secondType, out secondTypeData);
|
| | | OnClickSecondType();
|
| | | CreateTypeCell();
|
| | | JumpIndex();
|
| | |
| | |
|
| | | private void UpdateThirdType(int thirdType)
|
| | | {
|
| | | composeWinModel.TryGetThirdTypeData((int)ComposeFuncType.Equip, curSecondType,thirdType, out thirdTypeData);
|
| | | composeWinModel.TryGetThirdTypeData((int)ComposeFuncType.Equip, curSecondType, thirdType, out thirdTypeData);
|
| | | curThirdType = thirdType;
|
| | | OnClickThirdType();
|
| | | CreateTypeCell();
|
| | |
| | | if (thirdTypeDatas.Count > 0)
|
| | | {
|
| | | ItemCompoundConfig tagItemCompound = thirdTypeDatas[0].itemCompound;
|
| | | UpdateEquipType(tagItemCompound,0);
|
| | | UpdateEquipType(tagItemCompound, 0);
|
| | | RefreshUI(tagItemCompound);
|
| | | ChangeUIState(false, false, true);
|
| | | }
|
| | |
| | | int[] fixedIds = compoundModel.itemID;
|
| | | int[] fixedDisplays = compoundModel.itemDisplay;
|
| | | int[] unfixedDisplays = compoundModel.unfixedItemDisplay;
|
| | | if(compoundModel.unfixedItemCount <= 3)
|
| | | if (compoundModel.unfixedItemCount <= 3)
|
| | | {
|
| | | three_ComposeEquip.SetActive(true);
|
| | | five_ComposeEquip.SetActive(false);
|
| | |
| | | int increaseNeedNum = increases[1];
|
| | | int increaseRate = increases[2] / 100;
|
| | | increaseRateMatCell.gameObject.SetActive(true);
|
| | | increaseRateMatCell.SetDisplay(compoundModel,NeedMatType.IncreaseItem,false,"",increaseId);
|
| | | increaseRateMatCell.SetDisplay(compoundModel, NeedMatType.IncreaseItem, false, "", increaseId);
|
| | | increaseText.text = Language.Get("Compose109", StringUtility.Contact(increaseRate, "%"));
|
| | | int haveIncreaseNum = playerPack.GetItemCountByID(PackType.Item, increaseId);
|
| | | ItemConfig itemConfig = ItemConfig.Get(increaseId);
|
| | |
| | | switch (selectType)
|
| | | {
|
| | | case SelectItemType.unfixed:
|
| | | matCell.SetDisplay(compoundModel,NeedMatType.unfixedItem,false,"",0,itemIndex);
|
| | | matCell.SetDisplay(compoundModel, NeedMatType.unfixedItem, false, "", 0, itemIndex);
|
| | | break;
|
| | | case SelectItemType.addons:
|
| | | matCell.SetDisplay(compoundModel, NeedMatType.addItem, false, "", 0, itemIndex);
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | private void UpdateReduce(ComposeMatCell matCell,NeedMatType matType)
|
| | | private void UpdateReduce(ComposeMatCell matCell, NeedMatType matType)
|
| | | {
|
| | | switch (matType)
|
| | | {
|
| | | case NeedMatType.unfixedItem:
|
| | | matCell.SetDisplay(compoundModel,matType, false, UIHelper.ReplaceNewLine(Language.Get("ComposeWin_PutInText_2")));
|
| | | matCell.SetDisplay(compoundModel, matType, false, UIHelper.ReplaceNewLine(Language.Get("ComposeWin_PutInText_2")));
|
| | | break;
|
| | | case NeedMatType.addItem:
|
| | | matCell.SetDisplay(compoundModel, matType, false);
|
| | |
| | | List<ComposeWinModel.ComposeThirdTypeData> thirdTypeDatas = null;
|
| | | composeWinModel.TryGetThirdTypeData((int)ComposeFuncType.Equip, curSecondType, curThirdType, out thirdTypeDatas);
|
| | | EquipTypeLineCell typeLineCell = cell.GetComponent<EquipTypeLineCell>();
|
| | | typeLineCell.Refresh(cell,thirdTypeDatas);
|
| | | typeLineCell.Refresh(cell, thirdTypeDatas);
|
| | | }
|
| | | |
| | |
|
| | | private void RefreshUI(ItemCompoundConfig compoundModel)
|
| | | {
|
| | | this.compoundModel = compoundModel;
|
| | |
| | | {
|
| | | successRate = compoundModel.successRate;
|
| | | }
|
| | | if(isIncreaseRate)
|
| | | if (isIncreaseRate)
|
| | | {
|
| | | int[] increases = compoundModel.successRateIncrease;
|
| | | if(increases != null && increases.Length > 1)
|
| | | if (increases != null && increases.Length > 1)
|
| | | {
|
| | | increaseRate = increases[2] / 100;
|
| | | }
|
| | | }
|
| | | |
| | | if(increaseRate > 0)
|
| | |
|
| | | if (increaseRate > 0)
|
| | | {
|
| | | string extraAddRate = UIHelper.AppendStringColor(TextColType.Green,StringUtility.Contact("+", increaseRate, "%"),true);
|
| | | string extraAddRate = UIHelper.AppendStringColor(TextColType.Green, StringUtility.Contact("+", increaseRate, "%"), true);
|
| | | successRateText.text = Language.Get("HallowsWin_Success", StringUtility.Contact(successRate / 100, "%", extraAddRate));
|
| | | }
|
| | | else
|
| | | {
|
| | | successRateText.text = Language.Get("HallowsWin_Success", StringUtility.Contact(successRate / 100, "%"));
|
| | | }
|
| | | |
| | |
|
| | | }
|
| | |
|
| | | private void OnClickOnekeyPutBtn()
|
| | |
| | | var matCell = fixedAndUnfixeds[unfixedDisplay - 1];
|
| | | if (matCell.itemModel == null)
|
| | | {
|
| | | for(int j = 0; j < unSelectItems.Count; j++)
|
| | | for (int j = 0; j < unSelectItems.Count; j++)
|
| | | {
|
| | | ItemModel _model = unSelectItems[j];
|
| | | if (!unfixeAddDict.ContainsKey(_model.itemPlace))
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | private int CompareByOverdueTime(ItemModel start,ItemModel end)
|
| | | private int CompareByOverdueTime(ItemModel start, ItemModel end)
|
| | | {
|
| | | int remainTime1 = 0;
|
| | | int remainTime2 = 0;
|
| | | bool isRemain1 = TryGetRemainTime(start,out remainTime1);
|
| | | bool isRemain2 = TryGetRemainTime(end,out remainTime2);
|
| | | bool isRemain1 = TryGetRemainTime(start, out remainTime1);
|
| | | bool isRemain2 = TryGetRemainTime(end, out remainTime2);
|
| | | if (isRemain1.CompareTo(isRemain2) != 0) return -isRemain1.CompareTo(isRemain2);
|
| | | if (remainTime1.CompareTo(remainTime2) != 0) return -remainTime1.CompareTo(remainTime2);
|
| | | return 0;
|
| | | }
|
| | |
|
| | | private bool TryGetRemainTime(ItemModel model,out int seconds)
|
| | | private bool TryGetRemainTime(ItemModel model, out int seconds)
|
| | | {
|
| | | seconds = 0;
|
| | | if (model.config.EquipPlace != (int)RoleEquipType.Guard1
|
| | |
| | | }
|
| | | }
|
| | | ItemConfig itemConfig = ItemConfig.Get(compoundModel.makeID[0]);
|
| | | switch((RoleEquipType)itemConfig.EquipPlace)
|
| | | switch ((RoleEquipType)itemConfig.EquipPlace)
|
| | | {
|
| | | case RoleEquipType.Guard1:
|
| | | if (!composeWinModel.IsEnoughUnfixedMat(compoundModel))
|
| | |
| | | else
|
| | | {
|
| | | WindowCenter.Instance.Open<GuardComposeConfirmWin>();
|
| | | } |
| | | }
|
| | | break;
|
| | | default:
|
| | | SetFixedItemIndexDic();
|
| | | composeWinModel.SendComposeRequest(compoundModel, fixedItemIndexDict, GetPlayUIEffct(), 1, 10000, isIncreaseRate);
|
| | | break;
|
| | | } |
| | | }
|
| | | }
|
| | |
|
| | | private void SetFixedItemIndexDic()
|
| | |
| | | SinglePack singlePack = playerPack.GetSinglePack(packType);
|
| | | if (singlePack == null) return;
|
| | |
|
| | | int minBindCnt = 0;
|
| | | int minNoBindCnt = 0;
|
| | | composeWinModel.GetBindOrNoBindMinCnt(out minBindCnt, out minNoBindCnt);
|
| | | int[] fixedIds = compoundModel.itemID;
|
| | | int[] fixedCounts = compoundModel.itemCount;
|
| | | for (int i = 0; i < fixedIds.Length; i++)
|
| | | {
|
| | | List<int> itemIndexlist = null;
|
| | | if (minBindCnt >= fixedCounts[i])
|
| | | {
|
| | | itemIndexlist = singlePack.GetItemIndexsAppointedCount(fixedIds[i], fixedCounts[i], true);
|
| | | }
|
| | | else if (minNoBindCnt >= fixedCounts[i])
|
| | | {
|
| | | itemIndexlist = singlePack.GetItemIndexsAppointedCount(fixedIds[i], fixedCounts[i], false);
|
| | | }
|
| | | else
|
| | | {
|
| | | itemIndexlist = singlePack.GetItemIndexsAppointedCount(fixedIds[i], fixedCounts[i]);
|
| | | }
|
| | |
|
| | | var itemIndexlist = singlePack.GetItemIndexsAppointedCount(fixedIds[i], fixedCounts[i]);
|
| | | if (itemIndexlist != null)
|
| | | {
|
| | | fixedItemIndexDict.Add(fixedIds[i], itemIndexlist);
|
| | |
| | | {
|
| | | if (compoundModel == null) return null;
|
| | |
|
| | | if(compoundModel.unfixedItemCount <= 3)
|
| | | if (compoundModel.unfixedItemCount <= 3)
|
| | | {
|
| | | return composeEffect_Three;
|
| | | }
|
| | |
| | | [SerializeField] List<ComposeMatCell> twoMatFixedAndUnfixeds = new List<ComposeMatCell>();
|
| | | [Header("合成物品")]
|
| | | [SerializeField] List<ComposeMatCell> makeItems = new List<ComposeMatCell>();
|
| | | |
| | |
|
| | | ComposeWinModel _composeWinModel;
|
| | | ComposeWinModel composeWinModel
|
| | | {
|
| | | ComposeWinModel composeWinModel {
|
| | | get { return _composeWinModel ?? (_composeWinModel = ModelCenter.Instance.GetModel<ComposeWinModel>()); }
|
| | | }
|
| | |
|
| | | |
| | |
|
| | | PackModel _playerPack;
|
| | | PackModel playerPack
|
| | | {
|
| | | PackModel playerPack {
|
| | | get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel<PackModel>()); }
|
| | | }
|
| | |
|
| | |
| | | private int preSecondType = 0;
|
| | | [SerializeField] int initSuccessRate = 10000;
|
| | | ItemCompoundConfig compoundModel = null;
|
| | | private Dictionary<int,List<int>> fixedItemIndexDict = new Dictionary<int, List<int>>();
|
| | | private Dictionary<int, List<int>> fixedItemIndexDict = new Dictionary<int, List<int>>();
|
| | | AchievementGuideEffect guidEffect = null;
|
| | |
|
| | | protected override void BindController()
|
| | |
| | | cellCtrl.vertical = true;
|
| | | cellCtrl.lockType = EnhanceLockType.KeepVertical;
|
| | | composeWinModel.ResetModelEvent += ResetModel;
|
| | | |
| | |
|
| | | }
|
| | |
|
| | | protected override void AddListeners()
|
| | |
| | | bool isJumpTo = false;
|
| | | var achieveId = AchievementGoto.guideAchievementId;
|
| | | SuccessConfig successConfig = SuccessConfig.Get(achieveId);
|
| | | if(successConfig != null && successConfig.Type == 69)
|
| | | if (successConfig != null && successConfig.Type == 69)
|
| | | {
|
| | | isJumpTo = true;
|
| | | curSecondType = composeWinModel.secondType;
|
| | |
| | | else
|
| | | {
|
| | | RefreshUI(null);
|
| | | UpdateUIShow(false,true, false,false);
|
| | | UpdateUIShow(false, true, false, false);
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | for (int i = 0; i < makeItems.Count; i++)
|
| | | {
|
| | | var matCell = makeItems[i];
|
| | | if(makeIds != null && i < makeIds.Length)
|
| | | if (makeIds != null && i < makeIds.Length)
|
| | | {
|
| | | matCell.SetDisplay(compoundModel, NeedMatType.MakeItem,false,"",makeIds[i]);
|
| | | matCell.SetDisplay(compoundModel, NeedMatType.MakeItem, false, "", makeIds[i]);
|
| | | }
|
| | | else
|
| | | {
|
| | | matCell.SetDisplay(compoundModel, NeedMatType.MakeItem,true);
|
| | | matCell.SetDisplay(compoundModel, NeedMatType.MakeItem, true);
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | int[] fixedDisplays = compoundModel.itemDisplay;
|
| | | int[] unfixedIds = compoundModel.unfixedItemID;
|
| | | int[] unfixedDisplays = compoundModel.unfixedItemDisplay;
|
| | | if(fixedIds != null && fixedIds.Length < 2)
|
| | | if (fixedIds != null && fixedIds.Length < 2)
|
| | | {
|
| | | for (int i = 0; i < oneMatFixedAndUnfixeds.Count; i++)
|
| | | {
|
| | |
| | | }
|
| | | }
|
| | | }
|
| | | else if(fixedIds != null)
|
| | | else if (fixedIds != null)
|
| | | {
|
| | | for (int i = 0; i < twoMatFixedAndUnfixeds.Count; i++)
|
| | | {
|
| | |
| | | }
|
| | | }
|
| | | }
|
| | | |
| | |
|
| | | _moneyCountText.text = ItemLogicUtility.Instance.OnChangeCoinsUnit((ulong)compoundModel.money);
|
| | | }
|
| | |
|
| | |
| | | if (compoundModel == null) return null;
|
| | |
|
| | | int[] fixedIds = compoundModel.itemID;
|
| | | if(fixedIds != null)
|
| | | if (fixedIds != null)
|
| | | {
|
| | | if(fixedIds.Length < 2)
|
| | | if (fixedIds.Length < 2)
|
| | | {
|
| | | return oneMatComposeEffect;
|
| | | }
|
| | |
| | | composeWinModel.SetCurComposeModel(compoundModel);
|
| | | UpdateComposeMat();
|
| | | }
|
| | | |
| | |
|
| | | private void ClickAllComposeBtn()
|
| | | {
|
| | | fixedItemIndexDict.Clear();
|
| | |
| | | break;
|
| | | }
|
| | | }
|
| | | composeWinModel.SendComposeRequest(compoundModel, fixedItemIndexDict,GetPlayMatEffect(), composeCnt);
|
| | | composeWinModel.SendComposeRequest(compoundModel, fixedItemIndexDict, GetPlayMatEffect(), composeCnt);
|
| | | }
|
| | |
|
| | | private void OnClickComposeBtn()
|
| | |
| | | return;
|
| | | }
|
| | | SetFixedItemIndexDic();
|
| | | composeWinModel.SendComposeRequest(compoundModel, fixedItemIndexDict,GetPlayMatEffect(),1);
|
| | | composeWinModel.SendComposeRequest(compoundModel, fixedItemIndexDict, GetPlayMatEffect(), 1);
|
| | | }
|
| | |
|
| | | private void SetFixedItemIndexDic()
|
| | |
| | | SinglePack singlePack = playerPack.GetSinglePack(packType);
|
| | | if (singlePack == null) return;
|
| | |
|
| | | int minBindCnt = 0;
|
| | | int minNoBindCnt = 0;
|
| | | composeWinModel.GetBindOrNoBindMinCnt(out minBindCnt,out minNoBindCnt);
|
| | | int[] fixedIds = compoundModel.itemID;
|
| | | int[] fixedCounts = compoundModel.itemCount;
|
| | |
|
| | | for (int i = 0; i < fixedIds.Length; i++)
|
| | | {
|
| | | List<int> itemIndexlist = null;
|
| | | if (minBindCnt >= fixedCounts[i])
|
| | | {
|
| | | itemIndexlist = singlePack.GetItemIndexsAppointedCount(fixedIds[i],fixedCounts[i], true);
|
| | | }
|
| | | else if(minNoBindCnt >= fixedCounts[i])
|
| | | {
|
| | | itemIndexlist = singlePack.GetItemIndexsAppointedCount(fixedIds[i],fixedCounts[i],false);
|
| | | }
|
| | | else
|
| | | {
|
| | | itemIndexlist = singlePack.GetItemIndexsAppointedCount(fixedIds[i],fixedCounts[i]);
|
| | | }
|
| | |
|
| | | var itemIndexlist = singlePack.GetItemIndexsAppointedCount(fixedIds[i], fixedCounts[i]);
|
| | | if (itemIndexlist != null)
|
| | | {
|
| | | fixedItemIndexDict.Add(fixedIds[i], itemIndexlist);
|
| | | }
|
| | | }
|
| | |
|
| | | |
| | |
|
| | | }
|
| | |
|
| | | private void OnComposeAnswer(HA814_tagMCMakeItemAnswer answer)
|
| | |
| | | [SerializeField] UIEffect composeEffect;
|
| | |
|
| | | ComposeWinModel _composeWinModel;
|
| | | ComposeWinModel composeWinModel
|
| | | {
|
| | | ComposeWinModel composeWinModel {
|
| | | get { return _composeWinModel ?? (_composeWinModel = ModelCenter.Instance.GetModel<ComposeWinModel>()); }
|
| | | }
|
| | |
|
| | |
| | | [SerializeField] int initSuccessRate = 10000;
|
| | | ItemCompoundConfig compoundModel = null;
|
| | |
|
| | | private Dictionary<int,List<int>> fixedItemIndexDict = new Dictionary<int, List<int>>();
|
| | | private Dictionary<int, List<int>> fixedItemIndexDict = new Dictionary<int, List<int>>();
|
| | |
|
| | | PackModel _playerPack;
|
| | | PackModel playerPack
|
| | | {
|
| | | PackModel playerPack {
|
| | | get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel<PackModel>()); }
|
| | | }
|
| | |
|
| | |
| | | }
|
| | | }
|
| | | }
|
| | | |
| | |
|
| | | }
|
| | | composeWinModel.TryGetThirdTypeData((int)ComposeFuncType.Item, curSecondType, curThirdType, out thirdTypeData);
|
| | | if (thirdTypeData != null)
|
| | |
| | | {
|
| | | if (second != 3)
|
| | | {
|
| | | cellCtrl.AddCell(ScrollerDataType.Normal,third);
|
| | | cellCtrl.AddCell(ScrollerDataType.Normal, third);
|
| | | }
|
| | | else
|
| | | {
|
| | | var makerIds = thirdTypeDatas[0].itemCompound.makeID;
|
| | | if (composeWinModel.IsComposeJobLimit(makerIds[0]))
|
| | | {
|
| | | cellCtrl.AddCell(ScrollerDataType.Normal,third);
|
| | | cellCtrl.AddCell(ScrollerDataType.Normal, third);
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | | break;
|
| | | }
|
| | | }
|
| | | if(curThirdType >= 4)
|
| | | if (curThirdType >= 4)
|
| | | {
|
| | | curIndex = curIndex + curThirdType - 2;
|
| | | }
|
| | |
| | | curSecondType = 0;
|
| | | curThirdType = 0;
|
| | | compoundModel = null;
|
| | | if(!WindowJumpMgr.Instance.IsJumpState)
|
| | | if (!WindowJumpMgr.Instance.IsJumpState)
|
| | | {
|
| | | preSecondType = 0;
|
| | | preThirdType = 0;
|
| | |
| | | }
|
| | |
|
| | | SetFixedItemIndexDic();
|
| | | composeWinModel.SendComposeRequest(compoundModel, fixedItemIndexDict,composeEffect,1);
|
| | | composeWinModel.SendComposeRequest(compoundModel, fixedItemIndexDict, composeEffect, 1);
|
| | | }
|
| | |
|
| | | private void SetFixedItemIndexDic()
|
| | |
| | | SinglePack singlePack = playerPack.GetSinglePack(packType);
|
| | | if (singlePack == null) return;
|
| | |
|
| | | int minBindCnt = 0;
|
| | | int minNoBindCnt = 0;
|
| | | composeWinModel.GetBindOrNoBindMinCnt(out minBindCnt, out minNoBindCnt);
|
| | | int[] fixedIds = compoundModel.itemID;
|
| | | int[] fixedCounts = compoundModel.itemCount;
|
| | | for (int i = 0; i < fixedIds.Length; i++)
|
| | | {
|
| | | List<int> itemIndexlist = null;
|
| | | if (minBindCnt >= fixedCounts[i])
|
| | | {
|
| | | itemIndexlist = singlePack.GetItemIndexsAppointedCount(fixedIds[i],fixedCounts[i], true);
|
| | | }
|
| | | else if (minNoBindCnt >= fixedCounts[i])
|
| | | {
|
| | | itemIndexlist = singlePack.GetItemIndexsAppointedCount(fixedIds[i],fixedCounts[i], false);
|
| | | }
|
| | | else
|
| | | {
|
| | | itemIndexlist = singlePack.GetItemIndexsAppointedCount(fixedIds[i],fixedCounts[i]);
|
| | | }
|
| | |
|
| | | var itemIndexlist = singlePack.GetItemIndexsAppointedCount(fixedIds[i], fixedCounts[i]);
|
| | | if (itemIndexlist != null)
|
| | | {
|
| | | fixedItemIndexDict.Add(fixedIds[i], itemIndexlist);
|
| | |
| | |
|
| | | for (int i = 0; i < fixedIds.Length; i++)
|
| | | {
|
| | | int haveCount = playerPack.GetItemCountByID(packType,fixedIds[i]);
|
| | | int haveCount = playerPack.GetItemCountByID(packType, fixedIds[i]);
|
| | | int canComposeCount = haveCount / fixedCounts[i];
|
| | | composeCountlist.Add(canComposeCount);
|
| | | List<int> itemIndexlist = null;
|
| | | if (singlePack != null)
|
| | | {
|
| | | itemIndexlist = singlePack.GetItemIndexsAppointedCount(fixedIds[i],fixedCounts[i] * canComposeCount);
|
| | | itemIndexlist = singlePack.GetItemIndexsAppointedCount(fixedIds[i], fixedCounts[i] * canComposeCount);
|
| | | }
|
| | | fixedItemIndexDict.Add(fixedIds[i], itemIndexlist);
|
| | | }
|
| | |
| | | return itemArray;
|
| | | }
|
| | |
|
| | | public void GetBindOrNoBindMinCnt(out int minBindCnt, out int minNoBindCnt)
|
| | | {
|
| | | minBindCnt = 0;
|
| | | minNoBindCnt = 0;
|
| | | if (CurComposeModel == null) return;
|
| | |
|
| | | Dictionary<int, int> bindCntDic = new Dictionary<int, int>();
|
| | | Dictionary<int, int> noBindCntDic = new Dictionary<int, int>();
|
| | | int[] fixedIds = CurComposeModel.itemID;
|
| | | for (int i = 0; i < fixedIds.Length; i++)
|
| | | {
|
| | | var list = playerPack.GetSinglePack(PackType.Item).GetItemsById(fixedIds[i]);
|
| | | if (list != null)
|
| | | {
|
| | | int bindCnt = 0;
|
| | | int noBindCnt = 0;
|
| | | for (int j = 0; j < list.Count; j++)
|
| | | {
|
| | | if (list[j].isBind == 1)
|
| | | {
|
| | | bindCnt += list[j].count;
|
| | |
|
| | | }
|
| | | else if (list[j].isBind == 0)
|
| | | {
|
| | | noBindCnt += list[j].count;
|
| | | }
|
| | | }
|
| | | bindCntDic.Add(fixedIds[i], bindCnt);
|
| | | noBindCntDic.Add(fixedIds[i], noBindCnt);
|
| | | }
|
| | | }
|
| | |
|
| | | List<int> bindCntlist = bindCntDic.Values.ToList();
|
| | | bindCntlist.Sort();
|
| | | if (bindCntlist.Count > 0)
|
| | | {
|
| | | minBindCnt = bindCntlist[0];
|
| | | }
|
| | |
|
| | | List<int> noBindCntlist = noBindCntDic.Values.ToList();
|
| | | noBindCntlist.Sort();
|
| | | if (noBindCntlist.Count > 0)
|
| | | {
|
| | | minNoBindCnt = noBindCntlist[0];
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 计算附加材料增加的成功率
|
| | | /// </summary>
|
| | |
| | | var packType = composeWinModel.GetPackTypeByMakerId(compoundModel.makeID);
|
| | | SinglePack singlePack = playerPack.GetSinglePack(packType);
|
| | | if (singlePack == null) return;
|
| | | int isBind = 0;
|
| | |
|
| | | if(IsComposeBind)
|
| | | {
|
| | | isBind = 1;
|
| | | }
|
| | | else
|
| | | {
|
| | | isBind = 0;
|
| | | }
|
| | | int[] fixedIds = compoundModel.itemID;
|
| | | int[] fixedCounts = compoundModel.itemCount;
|
| | | for (int i = 0; i < fixedIds.Length; i++)
|
| | | {
|
| | | List<int> itemIndexlist = singlePack.GetItemIndexsAppointedCount(fixedIds[i], fixedCounts[i],isBind==1);
|
| | | List<int> itemIndexlist = singlePack.GetItemIndexsAppointedCount(fixedIds[i], fixedCounts[i]);
|
| | | if (itemIndexlist != null)
|
| | | {
|
| | | fixedItemIndexDict.Add(fixedIds[i], itemIndexlist);
|
| | | }
|
| | |
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | y = end.config.StarLevel;
|
| | | if (x.CompareTo(y) != 0) return x.CompareTo(y);
|
| | |
|
| | | x = start.isBind;
|
| | | y = end.isBind;
|
| | | if (x.CompareTo(y) != 0) return -x.CompareTo(y);
|
| | |
|
| | | x = oneKeyPutlist.IndexOf(start);
|
| | | y = oneKeyPutlist.IndexOf(end);
|
| | | if (x.CompareTo(y) != 0) return x.CompareTo(y);
|
| | |
| | |
|
| | | public int CompareByCondition(ItemModel start, ItemModel end)
|
| | | {
|
| | | int startIsBind = start.isBind;
|
| | | int endIsBind = end.isBind;
|
| | | if (startIsBind.CompareTo(endIsBind) != 0) return startIsBind.CompareTo(endIsBind);
|
| | |
|
| | | int startQuality = start.config.ItemColor;
|
| | | int endQuality = end.config.ItemColor;
|
| | | if (startQuality.CompareTo(endQuality) != 0) return startQuality.CompareTo(endQuality);
|
| | |
| | | } |
| | | } |
| | | |
| | | goalItems.Sort(CompareIsBind); |
| | | |
| | | var itemIndexs = new List<int>(); |
| | | var count = 0; |
| | | for (var i = 0; i < goalItems.Count; i++) |
| | |
| | | } |
| | | |
| | | return itemIndexs; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 得到同一个id物品指定数量的格子序号 |
| | | /// </summary> |
| | | /// <param name="itemId"></param> |
| | | /// <param name="preferBind">优先条件(true 为绑定,false为不绑定)</param> |
| | | /// <returns></returns> |
| | | public List<int> GetItemIndexsAppointedCount(int itemId, int needCnt, bool preferBind) |
| | | { |
| | | var itemPool = new List<ItemModel>(); |
| | | foreach (var item in items.Values) |
| | | { |
| | | if (item.itemId == itemId) |
| | | { |
| | | itemPool.Add(item); |
| | | } |
| | | } |
| | | |
| | | var preferCondition = preferBind ? 1 : 0; |
| | | var indexs = new List<int>(); |
| | | int count = 0; |
| | | for (int i = 0; count < needCnt && i < itemPool.Count; i++) |
| | | { |
| | | if (itemPool[i].isBind == preferCondition) |
| | | { |
| | | indexs.Add(itemPool[i].itemPlace); |
| | | count += itemPool[i].count; |
| | | } |
| | | } |
| | | |
| | | for (int i = 0; count < needCnt && i < itemPool.Count; i++) |
| | | { |
| | | if (itemPool[i].isBind != preferCondition) |
| | | { |
| | | indexs.Add(itemPool[i].itemPlace); |
| | | count += itemPool[i].count; |
| | | } |
| | | } |
| | | |
| | | return indexs; |
| | | } |
| | | |
| | | private int CompareIsBind(ItemModel x, ItemModel y) |
| | | { |
| | | return -x.isBind.CompareTo(y.isBind); |
| | | } |
| | | |
| | | /// <summary> |