| System/BetterItemGet/RealmBetterEquipModel .cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/BetterItemGet/RealmBetterEquipModel .cs.meta | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/KnapSack/Logic/PackModelInterface.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/KnapSack/RealmBetterEquipBehaviour.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/KnapSack/RealmBetterEquipBehaviour.cs.meta | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/MainInterfacePanel/InGamePushContainer.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/WindowBase/ModelCenter.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
System/BetterItemGet/RealmBetterEquipModel .cs
New file @@ -0,0 +1,221 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Saturday, January 20, 2018 //-------------------------------------------------------- using UnityEngine; using System.Collections; using System.Collections.Generic; using System; using TableConfig; namespace Snxxz.UI { public class RealmBetterEquipModel : Model, IBeforePlayerDataInitialize, ISwitchAccount,IPlayerLoginOk { PlayerPackModel playerPack { get { return ModelCenter.Instance.GetModel<PlayerPackModel>(); } } PackModelInterface modelInterface { get { return ModelCenter.Instance.GetModel<PackModelInterface>(); } } public string currentEquipGuid { get; private set; } Dictionary<string, ItemModel> betterEquipModels = new Dictionary<string, ItemModel>(); public event Action showEquipRefreshEvent; public const string RealmRecordKey = "RealmRecord"; public override void Init() { playerPack.RefreshPackAct += OnPackageRefresh; playerPack.RefreshItemCountAct += OnPackageItemRefresh; } public override void UnInit() {; playerPack.RefreshPackAct -= OnPackageRefresh; playerPack.RefreshItemCountAct -= OnPackageItemRefresh; } public void OnBeforePlayerDataInitialize() { currentEquipGuid = string.Empty; betterEquipModels.Clear(); } public void OnPlayerLoginOk() { LocalSave.SetInt(RealmRecordKey,PlayerDatas.Instance.baseData.realmLevel); PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= RefreshRealm; PlayerDatas.Instance.PlayerDataRefreshInfoEvent += RefreshRealm; } public void OnSwitchAccount() { currentEquipGuid = string.Empty; } private void RefreshRealm(PlayerDataRefresh type) { int realmLv = PlayerDatas.Instance.baseData.realmLevel; if (type != PlayerDataRefresh.OfficialRank || LocalSave.GetInt(RealmRecordKey) == realmLv || NewBieCenter.Instance.inGuiding) { return; } LocalSave.SetInt(RealmRecordKey,realmLv); Dictionary<int, ItemModel> pairs = modelInterface.CheckBetterEquipByRealm(); betterEquipModels.Clear(); currentEquipGuid = string.Empty; foreach (var model in pairs.Values) { betterEquipModels[model.itemInfo.ItemGUID] = model; currentEquipGuid = model.itemInfo.ItemGUID; } if (showEquipRefreshEvent != null) { showEquipRefreshEvent(); } } public bool TryGetBetterEquip(string _guid, out ItemModel _equip) { return betterEquipModels.TryGetValue(_guid, out _equip); } public void ReportConfirmBetterEquip(string _guid) { betterEquipModels.Remove(_guid); var tempGuid = GetOneEquip(); if (tempGuid != currentEquipGuid) { currentEquipGuid = tempGuid; if (showEquipRefreshEvent != null) { showEquipRefreshEvent(); } } } private void OnPackageRefresh(PackType _packType) { if (_packType != PackType.rptItem) { return; } var keys = new List<string>(betterEquipModels.Keys); for (int i = keys.Count - 1; i >= 0; i--) { var guid = keys[i]; var itemModel = playerPack.GetItemModelByGUID(guid); if (itemModel == null || itemModel.packType != PackType.rptItem) { betterEquipModels.Remove(guid); } } var tempGuid = GetOneEquip(); if (tempGuid != currentEquipGuid) { if (!string.IsNullOrEmpty(tempGuid)) { currentEquipGuid = tempGuid; if (showEquipRefreshEvent != null) { showEquipRefreshEvent(); } } else { currentEquipGuid = tempGuid; if (showEquipRefreshEvent != null) { showEquipRefreshEvent(); } } } } private void OnPackageItemRefresh(PackType _packType, int _index, int _itemId) { if (_packType == PackType.rptEquip) { //穿上装备的时候的处理 var item = playerPack.GetItemModelByIndex(_packType, _index); if (item != null) { RemoveLowGradeItemByEquipPlace(_index, item.equipScore); } OnPackageRefresh(PackType.rptItem); } else if (_packType == PackType.rptItem) { OnPackageRefresh(_packType); } } private string GetOneEquip() { var guid = string.Empty; foreach (var key in betterEquipModels.Keys) { guid = key; break; } return guid; } private void RemoveItemByEquipPlace(int _place) { var place = _place == 10 ? 9 : _place; var keys = new List<string>(betterEquipModels.Keys); for (int i = keys.Count - 1; i >= 0; i--) { var item = betterEquipModels[keys[i]]; if (item != null && item.chinItemModel.EquipPlace == place) { betterEquipModels.Remove(keys[i]); } } } private void RemoveLowGradeItemByEquipPlace(int _place, int _score) { var place = _place == 10 ? 9 : _place; var keys = new List<string>(betterEquipModels.Keys); for (int i = keys.Count - 1; i >= 0; i--) { var item = betterEquipModels[keys[i]]; if (item != null && item.chinItemModel.EquipPlace == place && item.equipScore <= _score) { betterEquipModels.Remove(keys[i]); } } } private bool TryGetEquipByPlace(int _place, out ItemModel _itemModel) { var place = _place == 10 ? 9 : _place; var keys = new List<string>(betterEquipModels.Keys); for (int i = keys.Count - 1; i >= 0; i--) { var item = betterEquipModels[keys[i]]; if (item != null && item.chinItemModel.EquipPlace == place) { _itemModel = item; return true; } } _itemModel = null; return false; } } } System/BetterItemGet/RealmBetterEquipModel .cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 368f012abd3595c419a67d33f44153ea timeCreated: 1534755541 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/KnapSack/Logic/PackModelInterface.cs
@@ -7,7 +7,7 @@ namespace Snxxz.UI { public class PackModelInterface : Model, IBeforePlayerDataInitialize public class PackModelInterface : Model, IBeforePlayerDataInitialize,IPlayerLoginOk { private ItemConfig tagChinModel; private FuncConfigConfig _equipGSFormula; @@ -88,6 +88,12 @@ itemEffectCDDict.Clear(); itemEffectTimelist.Clear(); } public void OnPlayerLoginOk() { } public override void UnInit() { @@ -736,6 +742,39 @@ RefreshPickItemEvent(type,guid); } } Dictionary<int, ItemModel> RealmBetterDict = new Dictionary<int, ItemModel>(); public Dictionary<int, ItemModel> CheckBetterEquipByRealm() { RealmBetterDict.Clear(); SinglePackModel singlePack = playerPack.GetSinglePackModel(PackType.rptItem); if (singlePack == null) return RealmBetterDict; int realmLv = PlayerDatas.Instance.baseData.realmLevel; Dictionary<int,ItemModel> pairs = singlePack.GetPackModelIndexDict(); foreach(var model in pairs.Values) { if(model.chinItemModel.EquipPlace > 0 && model.chinItemModel.EquipPlace != (int)RoleEquipType.retSpiritAnimal && model.chinItemModel.RealmLimit <= realmLv && !IsOverdue(model.itemInfo.ItemGUID,model.itemId,model.useDataDict) && IsFightUp(model.itemId,model.equipScore) == 1) { if(!RealmBetterDict.ContainsKey(model.EquipPlace)) { RealmBetterDict.Add(model.EquipPlace,model); } else { if(model.equipScore > RealmBetterDict[model.EquipPlace].equipScore) { RealmBetterDict[model.EquipPlace] = model; } } } } return RealmBetterDict; } #endregion #region 解锁格子 System/KnapSack/RealmBetterEquipBehaviour.cs
New file @@ -0,0 +1,92 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Tuesday, December 05, 2017 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using TableConfig; using Snxxz.UI; namespace Snxxz.UI { public class RealmBetterEquipBehaviour : MonoBehaviour { [SerializeField] RectTransform m_ContainerBetterEquip; [SerializeField] ItemCell m_EquipBehaviour; [SerializeField] Text m_EquipName; [SerializeField] Button m_Close; [SerializeField] Button m_Puton; [SerializeField] Button m_BetterEquipDetail; ItemTipsModel itemTipsModel { get { return ModelCenter.Instance.GetModel<ItemTipsModel>(); } } PlayerPackModel playerPack { get { return ModelCenter.Instance.GetModel<PlayerPackModel>(); } } RealmBetterEquipModel model { get { return ModelCenter.Instance.GetModel<RealmBetterEquipModel>(); } } private void OnEnable() { m_Close.AddListener(CloseBetterEquip); m_Puton.AddListener(PutOnBetterEquip); m_BetterEquipDetail.AddListener(ShowBetterEquipDetails); } private void OnDisable() { m_Close.RemoveAllListeners(); m_Puton.RemoveAllListeners(); m_BetterEquipDetail.RemoveAllListeners(); } public void ShowBetterEquip() { m_ContainerBetterEquip.gameObject.SetActive(false); if (!string.IsNullOrEmpty(model.currentEquipGuid)) { ItemModel betterEquip; if (model.TryGetBetterEquip(model.currentEquipGuid, out betterEquip)) { DrawBetterEquip(betterEquip); m_ContainerBetterEquip.gameObject.SetActive(true); } } } private void PutOnBetterEquip() { PackSendQuestMgr.Instance.SendPutOnQuest(ItemWinBtnType.putOn, model.currentEquipGuid); model.ReportConfirmBetterEquip(model.currentEquipGuid); } private void ShowBetterEquipDetails() { ItemModel betterEquip; if (model.TryGetBetterEquip(model.currentEquipGuid, out betterEquip)) { var itemConfig = ConfigManager.Instance.GetTemplate<ItemConfig>(betterEquip.itemInfo.ItemID); itemTipsModel.SetItemTipsModel(PackType.rptItem, betterEquip.itemInfo.ItemGUID); } } private void CloseBetterEquip() { model.ReportConfirmBetterEquip(model.currentEquipGuid); } private void DrawBetterEquip(ItemModel betterModel) { var itemConfig = ConfigManager.Instance.GetTemplate<ItemConfig>(betterModel.itemInfo.ItemID); m_EquipName.text = itemConfig.ItemName; m_EquipName.color = UIHelper.GetUIColor(itemConfig.ItemColor, true); m_EquipBehaviour.Init(betterModel, true); } } } System/KnapSack/RealmBetterEquipBehaviour.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: c8eb21cc504d5514b950ab4d60ef9814 timeCreated: 1534753740 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/MainInterfacePanel/InGamePushContainer.cs
@@ -14,6 +14,7 @@ public class InGamePushContainer : MonoBehaviour { [SerializeField] BetterItemGetBehaviour m_BetterEquipPusher; [SerializeField] RealmBetterEquipBehaviour m_RealmBetterEquipPusher; [SerializeField] PreciousItemGetBehaviour m_PreciousItemPusher; [SerializeField] FindPreciousBossRebornBehaviour m_BossRebornPusher; [SerializeField] ItemUseBehaviour m_itemUsePusher; @@ -26,6 +27,7 @@ FindPreciousModel findPreciousModel { get { return ModelCenter.Instance.GetModel<FindPreciousModel>(); } } BetterEquipGetModel betterEquipGetModel { get { return ModelCenter.Instance.GetModel<BetterEquipGetModel>(); } } RealmBetterEquipModel realmEquipModel { get { return ModelCenter.Instance.GetModel<RealmBetterEquipModel>(); } } PreciousItemGetModel preciousItemGetModel { get { return ModelCenter.Instance.GetModel<PreciousItemGetModel>(); } } ItemUseModel itemUseModel { get { return ModelCenter.Instance.GetModel<ItemUseModel>(); } } ItemOverdueModel itemOverdue { get { return ModelCenter.Instance.GetModel<ItemOverdueModel>(); } } @@ -38,6 +40,7 @@ public void Init() { CheckBetterEquip(); CheckRealmBetterEquip(); CheckPreciousItem(); CheckBossReborn(); CheckItemUse(); @@ -49,6 +52,7 @@ FirstChargeTrialShow(); playerPack.RefreshDecomAttrAct += CheckEquipDecompose; betterEquipGetModel.showEquipRefreshEvent += CheckBetterEquip; realmEquipModel.showEquipRefreshEvent += CheckRealmBetterEquip; preciousItemGetModel.showItemRefreshEvent += CheckPreciousItem; findPreciousModel.bossRebornNotifyChangeEvent += CheckBossReborn; itemUseModel.showItemRefreshEvent += CheckItemUse; @@ -68,6 +72,28 @@ NewBieCenter.Instance.guideBeginEvent -= OnNewBieGuideBegin; guardModel.onDungeonEquipGuardEvent -= CheckDungeonGuard; firstTimeRechargeModel.IsTipShowEvent -= FirstChargeTrialShow; realmEquipModel.showEquipRefreshEvent -= CheckRealmBetterEquip; } private void CheckRealmBetterEquip() { if (string.IsNullOrEmpty(realmEquipModel.currentEquipGuid)) { m_RealmBetterEquipPusher.gameObject.SetActive(false); } else { if (betterEquipGetModel.ShowBetterEquipAble()) { m_RealmBetterEquipPusher.gameObject.SetActive(true); m_RealmBetterEquipPusher.ShowBetterEquip(); } else { m_RealmBetterEquipPusher.gameObject.SetActive(false); } } } private void CheckBetterEquip() System/WindowBase/ModelCenter.cs
@@ -144,6 +144,7 @@ RegisterModel<ActivityModel>(); RegisterModel<PlayerDeadModel>(); RegisterModel<BetterEquipGetModel>(); RegisterModel<RealmBetterEquipModel>(); RegisterModel<PreciousItemGetModel>(); RegisterModel<PlayerMainDate>(); RegisterModel<StoryMissionsModel>();