| System/FindPrecious/ElderEliteMonsterBehaviour.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/FindPrecious/ElderEliteMonsterBehaviour.cs.meta | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/FindPrecious/ElderGodAreaModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/FindPrecious/ElderGodAreaWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/FindPrecious/ElderGodBreifInfoBehaviour.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/KnapSack/Logic/EquipDevourWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/KnapSack/Logic/PackModelInterface.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/KnapSack/Logic/PlayerPackModels.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Store/StoreModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/SystemSetting/SettingEffectMgr.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Treasure/TreasureModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Treasure/TreasurePotentialPanel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
System/FindPrecious/ElderEliteMonsterBehaviour.cs
New file @@ -0,0 +1,33 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Saturday, August 18, 2018 //-------------------------------------------------------- using UnityEngine; using System.Collections; using UnityEngine.UI; using TableConfig; namespace Snxxz.UI { public class ElderEliteMonsterBehaviour : MonoBehaviour { [SerializeField] RawImage m_RawImage; public void Display(int npcId) { var config = Config.Instance.Get<NPCConfig>(npcId); UI3DModelExhibition.Instance.ShowNPC(npcId, config.UIModeLOffset, config.UIModelRotation, m_RawImage); } public void Dispose() { UI3DModelExhibition.Instance.StopShow(); } } } System/FindPrecious/ElderEliteMonsterBehaviour.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 2aefe6a576cf98e49a1b99cc59e23efe timeCreated: 1534563304 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/FindPrecious/ElderGodAreaModel.cs
@@ -13,9 +13,7 @@ int m_SelectedBoss = 0; public int selectedBoss { get { return this.m_SelectedBoss; } get { return this.m_SelectedBoss; } set { if (this.m_SelectedBoss != value) { @@ -39,6 +37,7 @@ public event Action<int> bossSelectedEvent; public event Action<int> surplusTimesChangeEvent; List<int> sortedElites = new List<int>(); List<int> sortedBossIds = new List<int>(); Dictionary<int, ElderGodBossData> elderGodBosses = new Dictionary<int, ElderGodBossData>(); Dictionary<int, int> npcAngers = new Dictionary<int, int>(); @@ -82,27 +81,61 @@ public bool IsBossUnLocked(int _bossId) { var playerLevel = PlayerDatas.Instance.baseData.LV; return elderGodBosses.ContainsKey(_bossId) && playerLevel >= elderGodBosses[_bossId].unLockLevel; var config = Config.Instance.Get<ElderGodAreaConfig>(_bossId); if (config == null) { return false; } if (config.MonsterType == 1) { return true; } else { var playerLevel = PlayerDatas.Instance.baseData.LV; return elderGodBosses.ContainsKey(_bossId) && playerLevel >= elderGodBosses[_bossId].unLockLevel; } } public List<int> GetElderGodBosses() { return new List<int>(sortedBossIds); var bosses = new List<int>(); bosses.Add(sortedElites[0]); bosses.AddRange(sortedBossIds); return bosses; } public int GetLatestUnLockBoss() public int GetRecommendNpc() { for (int i = 0; i < sortedBossIds.Count; i++) foreach (var item in sortedBossIds) { var bossId = sortedBossIds[i]; if (findPreciousModel.IsBossAlive(bossId)) if (findPreciousModel.IsBossAlive(item)) { return bossId; return item; } } return sortedElites[0]; } public int GetRecommendEliteNpc() { var npc = 0; var levelDelta = int.MaxValue; var myLevel = PlayerDatas.Instance.baseData.LV; foreach (var item in sortedElites) { var config = Config.Instance.Get<NPCConfig>(item); var delta = Mathf.Abs(myLevel - config.NPCLV); if (delta < levelDelta) { npc = item; levelDelta = delta; } } return sortedBossIds[0]; return npc; } private void ParseConfig() @@ -115,12 +148,25 @@ { elderGodBosses[config.NPCID] = new ElderGodBossData(config.NPCID); } else { sortedElites.Add(config.NPCID); } npcAngers[config.NPCID] = config.MonsterAnger; } sortedElites.Sort(EliteMonsterCompare); sortedBossIds.AddRange(elderGodBosses.Keys); sortedBossIds.Sort(ElderGodBossData.LevelCompare); } private int EliteMonsterCompare(int lhs, int rhs) { var config1 = Config.Instance.Get<NPCConfig>(lhs); var config2 = Config.Instance.Get<NPCConfig>(rhs); return config1.NPCLV < config2.NPCLV ? -1 : 1; } public void OnMapInitOk() @@ -128,7 +174,17 @@ var dataMapId = dungeonModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID); if (dataMapId == ELDERGODAREA_MAPID) { MapTransferUtility.Instance.MoveToNPC(selectedBoss); var target = 0; if (sortedElites.Contains(selectedBoss)) { target = GetRecommendEliteNpc(); } else { target = selectedBoss; } MapTransferUtility.Instance.MoveToNPC(target); } } } System/FindPrecious/ElderGodAreaWin.cs
@@ -16,22 +16,16 @@ public class ElderGodAreaWin : Window { [SerializeField] CyclicScroll m_Bosses; [SerializeField] ElderEliteMonsterBehaviour m_EliteMonsterBehaviour; [SerializeField] BossIntroduceBehaviour m_BossIntroduce; [SerializeField] Text m_Times; [SerializeField] Button m_Goto; [SerializeField] Button m_KillRecord; [SerializeField] ToggleButton m_Subscribe; ElderGodAreaModel m_Model; ElderGodAreaModel model { get { return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<ElderGodAreaModel>()); } } FindPreciousModel m_FindPreciousModel; FindPreciousModel findPreciousModel { get { return m_FindPreciousModel ?? (m_FindPreciousModel = ModelCenter.Instance.GetModel<FindPreciousModel>()); } } DungeonModel m_DungeonModel; DungeonModel dungeonModel { get { return m_DungeonModel ?? (m_DungeonModel = ModelCenter.Instance.GetModel<DungeonModel>()); } } ElderGodAreaModel model { get { return ModelCenter.Instance.GetModel<ElderGodAreaModel>(); } } FindPreciousModel findPreciousModel { get { return ModelCenter.Instance.GetModel<FindPreciousModel>(); } } DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } } #region Built-in protected override void BindController() @@ -81,9 +75,9 @@ var bosses = new List<int>(); bosses.AddRange(model.GetElderGodBosses()); model.selectedBoss = model.GetLatestUnLockBoss(); model.selectedBoss = model.GetRecommendNpc(); DisplayNpcBaseInfo(true); m_Subscribe.isOn = findPreciousModel.IsBossSubscribed(model.selectedBoss); m_BossIntroduce.Display(model.selectedBoss, true); m_Bosses.Init(bosses); m_Bosses.MoveToCenter(bosses.IndexOf(model.selectedBoss)); } @@ -111,7 +105,9 @@ break; case 2: WindowCenter.Instance.Close<FindPreciousFrameWin>(); MapTransferUtility.Instance.MoveToNPC(model.selectedBoss); var config = Config.Instance.Get<ElderGodAreaConfig>(model.selectedBoss); var targetNpc = config.MonsterType == 1 ? model.GetRecommendEliteNpc() : model.selectedBoss; MapTransferUtility.Instance.MoveToNPC(targetNpc); break; case 3: SysNotifyMgr.Instance.ShowTip("DungeonNoGO"); @@ -167,10 +163,34 @@ private void OnBossSelected(int _bossId) { m_BossIntroduce.Display(_bossId, false); DisplayNpcBaseInfo(false); m_Subscribe.isOn = findPreciousModel.IsBossSubscribed(_bossId); } private void DisplayNpcBaseInfo(bool immediately) { var npcId = model.selectedBoss; var config = Config.Instance.Get<ElderGodAreaConfig>(npcId); switch (config.MonsterType) { case 1: m_KillRecord.gameObject.SetActive(false); m_BossIntroduce.gameObject.SetActive(false); m_EliteMonsterBehaviour.gameObject.SetActive(true); m_EliteMonsterBehaviour.Display(npcId); break; case 2: m_KillRecord.gameObject.SetActive(true); m_BossIntroduce.gameObject.SetActive(true); m_EliteMonsterBehaviour.gameObject.SetActive(false); m_BossIntroduce.Display(npcId, immediately); break; default: break; } } private void CheckAchievementGuide() { if (AchievementGoto.guideAchievementId != 0) System/FindPrecious/ElderGodBreifInfoBehaviour.cs
@@ -27,7 +27,8 @@ protected override InteractorableState interactorableState { get { var selected = selectedBossId == bossId; var dieOrLocked = !model.IsBossUnLocked(bossId) || !findPreciousModel.IsBossAlive(bossId); var config = Config.Instance.Get<ElderGodAreaConfig>(bossId); var dieOrLocked = config.MonsterType == 2 && (!model.IsBossUnLocked(bossId) || !findPreciousModel.IsBossAlive(bossId)); if (!dieOrLocked) { @@ -74,6 +75,44 @@ UpdateBossNameLevelFont(interactorableState); } protected override void DrawBossBaseInfo(string _icon, string _name, int _level, int _realm) { var config = Config.Instance.Get<ElderGodAreaConfig>(bossId); m_Portrait.SetSprite(_icon); m_Portrait.SetNativeSize(); switch (config.MonsterType) { case 1: m_BossName.text = Language.Get("ElderGodMonster"); m_BossLevel.text = string.Empty; m_RealmContainer.gameObject.SetActive(false); break; case 2: m_BossName.text = _name; m_BossLevel.text = Language.Get("Z1024", _level); if (m_Realm != null && m_RealmContainer != null) { if (Config.Instance.ContainKey<RealmConfig>(_realm)) { m_RealmContainer.gameObject.SetActive(true); var realmConfig = Config.Instance.Get<RealmConfig>(_realm); if (realmConfig != null) { m_Realm.SetSprite(realmConfig.Img); } } else { m_RealmContainer.gameObject.SetActive(false); } } break; default: break; } } protected override void OnSubscribe(int _bossId) { base.OnSubscribe(_bossId); System/KnapSack/Logic/EquipDevourWin.cs
@@ -588,10 +588,10 @@ public void SendEquipdevourQuest() { if (!modelInterface.isPackResetOk) return; if (!modelInterface.isPackResetOk || SettingEffectMgr.Instance.isStartDecompose) return; playerPack.isAutoDecompose = false; SettingEffectMgr.Instance.isStartDecompose = true; CA32C_tagCMEquipDecompose _petEat = new CA32C_tagCMEquipDecompose(); byte[] _petIndex = new byte[realDevourlist.Count]; for (int i = 0; i < realDevourlist.Count; i++) System/KnapSack/Logic/PackModelInterface.cs
@@ -1213,8 +1213,9 @@ /// <param name="_oneKeySelllist"></param> public void SendOneKeySellQuest(List<ItemModel> _oneKeySelllist) { if (!isPackResetOk) return; if (!isPackResetOk || SettingEffectMgr.Instance.isStartOneKeySell) return; SettingEffectMgr.Instance.isStartOneKeySell = true; byte[] itemIndexs = new byte[_oneKeySelllist.Count]; int i = 0; for (i = 0; i < _oneKeySelllist.Count; i++) System/KnapSack/Logic/PlayerPackModels.cs
@@ -1398,8 +1398,9 @@ public void SendEquipdevourQuest() { List<ItemModel> itemModels = GetCanDevourModellist(); if (itemModels == null || itemModels.Count < minDecomposeNum || !modelInterface.isPackResetOk) return; if (itemModels == null || itemModels.Count < minDecomposeNum || !modelInterface.isPackResetOk || SettingEffectMgr.Instance.isStartDecompose) return; SettingEffectMgr.Instance.isStartDecompose = true; isAutoDecompose = true; recordAutoDecomNum = itemModels.Count; CA32C_tagCMEquipDecompose _petEat = new CA32C_tagCMEquipDecompose(); System/Store/StoreModel.cs
@@ -1083,12 +1083,21 @@ { foreach(var key in shopRedDict.Keys) { if(shopRedDict[key].state != RedPointState.None) StoreConfig storeConfig = Config.Instance.Get<StoreConfig>(key); ItemConfig itemConfig = Config.Instance.Get<ItemConfig>(storeConfig.ItemID); switch (itemConfig.Type) { string record = StringUtility.Contact(PlayerDatas.Instance.baseData.PlayerID, "ShopId",key); shopRedDict[key].state = RedPointState.None; LocalSave.SetBool(record, false); case 26: case 41: if (shopRedDict[key].state != RedPointState.None) { string record = StringUtility.Contact(PlayerDatas.Instance.baseData.PlayerID, "ShopId", key); shopRedDict[key].state = RedPointState.None; LocalSave.SetBool(record, false); } break; } } } System/SystemSetting/SettingEffectMgr.cs
@@ -52,6 +52,8 @@ private float delayTime = 2f; private bool isGetNewItem = false; public bool isStartDecompose { get; set; } public bool isStartOneKeySell { get; set; } private void Awake() { @@ -68,15 +70,21 @@ DeadModel.playerDieEvent += OnPlayerDie; m_storeModel.RefreshBuyResultEvent += RefreshBuySuccess; DeadModel.CloseRebornWinEvent += PlayerRebornSuccess; playerPack.RefreshDecomAttrAct += DecomposeSuccess; DTC0721_tagMakeItemAnswer.MakeItemAnswerEvent += OneKeySellSuccess; } public void Begin() { isStartDecompose = false; isStartOneKeySell = false; } float secondTimer = 0; float halfSecondTimer = 0; float autoSellCoolTimer = 0; float autoDecomposeCoolTimer = 0; private void LateUpdate() { if (!(StageManager.Instance.CurrentStage is DungeonStage)) @@ -100,11 +108,32 @@ } } if(isStartDecompose) { autoDecomposeCoolTimer += Time.deltaTime; if(autoDecomposeCoolTimer >= 5f) { autoDecomposeCoolTimer = 0; isStartDecompose = false; } } if (isStartOneKeySell) { autoSellCoolTimer += Time.deltaTime; if (autoSellCoolTimer >= 5f) { autoSellCoolTimer = 0; isStartOneKeySell = false; } } if (secondTimer >= 1f) { secondTimer = 0f; RefreshBagItem(); } } private void PlayerRebornSuccess() @@ -112,6 +141,18 @@ isPlayerDie = false; } private void OneKeySellSuccess(H0721_tagMakeItemAnswer obj) { if (obj.MakeType != (byte)MakeType.Def_mitKeySell) return; isStartOneKeySell = false; } private void DecomposeSuccess() { isStartDecompose = false; } public bool GetSettingEffect() { @@ -158,7 +199,7 @@ { if (playerPack.GetReaminGridCount(PackType.rptItem) < 5 && modelInterface.isPackResetOk) { if (HangUpSetModel.Instance.GetBool(HangUpAutoBoolType.isAutoDevour)) if (HangUpSetModel.Instance.GetBool(HangUpAutoBoolType.isAutoDevour) && !isStartDecompose) { if(playerPack.IsReachMinDecomposeNum()) { @@ -167,7 +208,9 @@ } } if (HangUpSetModel.Instance.GetBool(HangUpAutoBoolType.isAutoSell) && modelInterface.GetSellItemList().Count > 0) if (HangUpSetModel.Instance.GetBool(HangUpAutoBoolType.isAutoSell) && !isStartOneKeySell && modelInterface.GetSellItemList().Count > 0) { modelInterface.SendOneKeySellQuest(modelInterface.GetSellItemList()); return; System/Treasure/TreasureModel.cs
@@ -874,7 +874,7 @@ var itemConfig = Config.Instance.Get<ItemConfig>(item.id); var itemColor = itemConfig.ItemColor; if (minCostItemColor == 0 || itemColor < minCostItemColor || (itemColor == minCostItemColor && minCostItemCount < item.count)) (itemColor == minCostItemColor && item.count < minCostItemCount)) { minCostItemColor = itemColor; minCostItemCount = item.count; @@ -1312,6 +1312,7 @@ } } } UpdateSkillLevelUpRedpoints(); } public void HumanTreasureStateChange(int _id) System/Treasure/TreasurePotentialPanel.cs
@@ -438,12 +438,16 @@ if (_id == 82) { m_ContainerLock.gameObject.SetActive(!FuncOpen.Instance.IsFuncOpen(82)); if (FuncOpen.Instance.IsFuncOpen(82)) if (FuncOpen.Instance.IsFuncOpen(82) && model.serverInited) { potentialBriefInfos[0].potentialTween.SetStartState(); potentialBriefInfos[0].potentialTween.enabled = false; m_TreasureAnimation.UnlockTreasurePotential(0); model.SetPotentialUnlockShow(model.selectedTreasure); } if (!m_SelectTotalEffect) { DisplayPotentialEffect(); } } } @@ -863,7 +867,7 @@ private void PotentialLevelUpdate(int _potentialId, int arg2) { if (_potentialId == model.selectedPotential) if (_potentialId == model.selectedPotential && !m_SelectTotalEffect) { DisplayPotentialEffect(); } @@ -890,19 +894,20 @@ } } var levelUpConfig = GetPotentialLevelUpConfig(); if (!ContainsPotentialBook(model.selectedPotentialBook)) if(_potentialId == model.selectedPotential && !m_SelectTotalEffect) { AutoSelectPotentialBook(); //model.selectedPotentialBook = 0; var levelUpConfig = GetPotentialLevelUpConfig(); if (!ContainsPotentialBook(model.selectedPotentialBook)) { AutoSelectPotentialBook(); } var curconfig = Config.Instance.Get<SkillConfig>(potential.id); var level = potential.level; var isMax = level >= curconfig.SkillMaxLV; m_ContainerUpgrade.gameObject.SetActive(!isMax && FuncOpen.Instance.IsFuncOpen(82)); } var curconfig = Config.Instance.Get<SkillConfig>(potential.id); var level = potential.level; var isMax = level >= curconfig.SkillMaxLV; m_ContainerUpgrade.gameObject.SetActive(!isMax && FuncOpen.Instance.IsFuncOpen(82)); } private void OnPotentialLevelUp(int _treasureId, int _potential, bool _ok)