| | |
| | | /// </summary>
|
| | | /// <param name="model"></param>
|
| | | /// <param name="isCompare"></param>
|
| | | public virtual void Init(ItemModel model,bool isCompare = false)
|
| | | public virtual void Init(ItemModel model,bool isCompare = false,int compareScore = 0)
|
| | | {
|
| | | itemConfig = Config.Instance.Get<ItemConfig>(model.itemInfo.ItemID);
|
| | | InitUI(model.itemInfo.ItemGUID,model.itemInfo.ItemID,(ulong)model.itemInfo.ItemCount,model.equipScore,model.itemInfo.IsBind,model.packType,isCompare,model.useDataDict);
|
| | | InitUI(model.itemInfo.ItemGUID,model.itemInfo.ItemID,(ulong)model.itemInfo.ItemCount,model.equipScore,model.itemInfo.IsBind,model.packType,isCompare,model.useDataDict,compareScore);
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 初始化数据(预览)
|
| | | /// </summary>
|
| | | /// <param name="model"></param>
|
| | | public virtual void Init(ItemCellModel model)
|
| | | public virtual void Init(ItemCellModel model, int compareScore = 0)
|
| | | {
|
| | | itemConfig = model.itemConfig;
|
| | | InitUI(model.guid,model.itemId, model.count, model.score, model.isBind,model.packType,model.isCompare,model.useDataDic);
|
| | | InitUI(model.guid,model.itemId, model.count, model.score, model.isBind,model.packType,model.isCompare,model.useDataDic,compareScore);
|
| | | }
|
| | |
|
| | | private void InitUI(string guid,int itemId,ulong count,int score,int isBind,PackType type,bool isCompare, Dictionary<int, List<int>> useDataDic)
|
| | | private void InitUI(string guid,int itemId,ulong count,int score,int isBind,PackType type,bool isCompare, Dictionary<int, List<int>> useDataDic, int compareScore = 0)
|
| | | {
|
| | | if (itemConfig == null) return;
|
| | |
|
| | |
| | | countText.gameObject.SetActive(false);
|
| | | }
|
| | |
|
| | | if(!isCompare || type == PackType.rptEquip)
|
| | | int compareReslut = CheckIsCompare(type,itemId,score,isCompare,compareScore,guid);
|
| | | switch(compareReslut)
|
| | | {
|
| | | case 0:
|
| | | stateIcon.gameObject.SetActive(false);
|
| | | }
|
| | | else
|
| | | {
|
| | | break;
|
| | | case 1:
|
| | | stateIcon.gameObject.SetActive(true);
|
| | | if(type != PackType.rptDogzItem)
|
| | | {
|
| | | bool isOverdue = modelInterface.IsOverdue(guid, itemId, useDataDic);
|
| | | if (!isOverdue)
|
| | | {
|
| | | ItemModel putOnModel = playerPack.GetItemModelByIndex(PackType.rptEquip, itemConfig.EquipPlace);
|
| | | if (itemConfig.EquipPlace == (int)RoleEquipType.retFairyCan)
|
| | | {
|
| | | ItemModel fairyModel2 = playerPack.GetItemModelByIndex(PackType.rptEquip, (int)RoleEquipType.retFairyCan2);
|
| | | if (fairyModel2 != null)
|
| | | {
|
| | | if (putOnModel != null)
|
| | | {
|
| | | if (fairyModel2.equipScore < putOnModel.equipScore)
|
| | | {
|
| | | putOnModel = fairyModel2;
|
| | | }
|
| | | }
|
| | | }
|
| | | else
|
| | | {
|
| | | putOnModel = fairyModel2;
|
| | | }
|
| | | }
|
| | | int equipScore1 = 0;
|
| | | if (putOnModel != null)
|
| | | {
|
| | | equipScore1 = putOnModel.equipScore;
|
| | | }
|
| | | int playerJob = PlayerDatas.Instance.baseData.Job;
|
| | | if (playerJob == Math.Floor((double)itemConfig.JobLimit / 100) || itemConfig.JobLimit == 0)
|
| | | {
|
| | | if (equipScore1 > score)
|
| | | {
|
| | | stateIcon.SetSprite("EquipDownIcon");
|
| | | }
|
| | | else if (equipScore1 < score)
|
| | | {
|
| | | stateIcon.SetSprite("EquipUpIcon");
|
| | | }
|
| | | else
|
| | | {
|
| | | stateIcon.gameObject.SetActive(false);
|
| | | }
|
| | | }
|
| | | else
|
| | | {
|
| | | stateIcon.SetSprite("EquipForbidIcon");
|
| | | }
|
| | | }
|
| | | else
|
| | | {
|
| | | stateIcon.SetSprite("EquipForbidIcon");
|
| | | }
|
| | | }
|
| | | else
|
| | | {
|
| | | var dogzModel = ModelCenter.Instance.GetModel<DogzModel>();
|
| | | ItemModel putOnModel = null;
|
| | | dogzModel.TryGetDogzEquip(dogzModel.presentSelectDogz, itemConfig.EquipPlace,out putOnModel);
|
| | | if(putOnModel != null)
|
| | | {
|
| | | if(putOnModel.equipScore > score)
|
| | | {
|
| | | break;
|
| | | case 2:
|
| | | stateIcon.gameObject.SetActive(true);
|
| | | stateIcon.SetSprite("EquipUpIcon");
|
| | | break;
|
| | | case 3:
|
| | | stateIcon.gameObject.SetActive(true);
|
| | | stateIcon.SetSprite("EquipDownIcon");
|
| | | }
|
| | | else if(putOnModel.equipScore < score)
|
| | | {
|
| | | stateIcon.SetSprite("EquipUpIcon");
|
| | | }
|
| | | else
|
| | | {
|
| | | stateIcon.gameObject.SetActive(false);
|
| | | }
|
| | | }
|
| | | else
|
| | | {
|
| | | if(score > 0)
|
| | | {
|
| | | stateIcon.SetSprite("EquipUpIcon");
|
| | | }
|
| | | else
|
| | | {
|
| | | stateIcon.gameObject.SetActive(false);
|
| | | }
|
| | | break;
|
| | | }
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 0 不比较 1 禁止比较 2 高评分 3 低评分
|
| | | /// </summary>
|
| | | /// <param name="itemId"></param>
|
| | | /// <param name="score"></param>
|
| | | /// <param name="isCompare"></param>
|
| | | /// <param name="compareSocre"></param>
|
| | | /// <returns></returns>
|
| | | public int CheckIsCompare(PackType type,int itemId, int score, bool isCompare,int compareSocre,string guid = "")
|
| | | {
|
| | | ItemConfig config = Config.Instance.Get<ItemConfig>(itemId);
|
| | | int playerJob = PlayerDatas.Instance.baseData.Job;
|
| | | if (config == null || (!isCompare && compareSocre <= 0) || config.EquipPlace == 0) return 0;
|
| | |
|
| | | ItemModel model = playerPack.GetItemModelByGUID(guid);
|
| | | if (model != null |
| | | && (modelInterface.IsOverdue(guid, itemId, model.useDataDict) |
| | | || (playerJob != Math.Floor((double)config.JobLimit / 100) && config.JobLimit != 0))) return 1;
|
| | |
|
| | | if(isCompare)
|
| | | {
|
| | | if(type != PackType.rptDogzItem)
|
| | | {
|
| | | compareSocre = GetCompareSocre(PackType.rptEquip,config.EquipPlace);
|
| | | }
|
| | | else
|
| | | {
|
| | | compareSocre = GetCompareSocre(PackType.rptDogzEquip, config.EquipPlace);
|
| | | }
|
| | | if(score == compareSocre)
|
| | | {
|
| | | return 0;
|
| | | }
|
| | | else
|
| | | {
|
| | | return score > compareSocre ? 2 : 3;
|
| | | }
|
| | | }
|
| | | else
|
| | | {
|
| | | return score > compareSocre ? 2 : 3;
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | public int GetCompareSocre(PackType type,int equipPlace)
|
| | | {
|
| | | switch (type)
|
| | | {
|
| | | case PackType.rptEquip:
|
| | | switch ((RoleEquipType)equipPlace)
|
| | | {
|
| | | case RoleEquipType.retFairyCan:
|
| | | ItemModel fairy01 = playerPack.GetItemModelByIndex(type,(int)RoleEquipType.retFairyCan);
|
| | | ItemModel fairy02 = playerPack.GetItemModelByIndex(type, (int)RoleEquipType.retFairyCan2);
|
| | | if(fairy01 == null || fairy02 == null)
|
| | | {
|
| | | return 0;
|
| | | }
|
| | | else
|
| | | {
|
| | | return fairy01.equipScore >= fairy02.equipScore ? fairy02.equipScore : fairy01.equipScore;
|
| | | }
|
| | | default:
|
| | | ItemModel model = playerPack.GetItemModelByIndex(type,equipPlace);
|
| | | return model == null ? 0 : model.equipScore;
|
| | | }
|
| | | case PackType.rptDogzEquip:
|
| | | var dogzModel = ModelCenter.Instance.GetModel<DogzModel>();
|
| | | ItemModel putOnModel = null;
|
| | | dogzModel.TryGetDogzEquip(dogzModel.presentSelectDogz, equipPlace, out putOnModel);
|
| | | return putOnModel == null ? 0 : putOnModel.equipScore;
|
| | | }
|
| | | return 0;
|
| | | }
|
| | | }
|
| | |
|