| Fight/GameActor/GA_NpcCollect.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Fight/GameActor/GA_NpcFunc.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Fight/GameActor/GActorNpcNoFight.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Lua/Gen/Resources.meta | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Dungeon/DungeonFightWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Dungeon/DungeonRuneTowerVictoryWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/RuneTower/RuneTowerModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/RuneTower/RuneTowerWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Tip/ConfirmCancel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Tip/RuneTowerConfirmWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Tip/RuneTowerConfirmWin.cs.meta | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Fight/GameActor/GA_NpcCollect.cs
@@ -17,41 +17,24 @@ private FairyCampType belongType = FairyCampType.None; protected override void OnMainModelLoaded() protected override void OnPrefabLoadFinished(bool result, Object prefab) { base.OnMainModelLoaded(); InitPerformance(this.ClientInstID, this.NpcConfig.NPCID); AdjustPos((ushort)ActorInfo.serverBornPos.x, (ushort)ActorInfo.serverBornPos.y); if(m_ReplaceNpcID != -1) { var _npcConfig = Config.Instance.Get<NPCConfig>(m_ReplaceNpcID); if(prefab) { if(!prefab.name.Contains(_npcConfig.MODE)) { return; } } } base.OnPrefabLoadFinished(result, prefab); } public sealed override void InitPerformance(uint clientInstID, int npcID) protected sealed override void HandleNpcConfig(int npcID) { if (m_Model) { if (m_LoadDefaultRes) { GameObjectPoolManager.Instance.ReleaseDefaultFuncNPC(m_Model); } else { if (m_ReplaceNpcID != -1) { GameObject _toDestroy = InstanceResourcesLoader.LoadNpc(m_ReplaceNpcID); if (_toDestroy) { GameObjectPoolManager.Instance.ReleaseGameObject(_toDestroy, m_Model); } } else { Object.Destroy(m_Model); } } m_Model = null; m_Animator = null; } if (npcID == 10404100) { if (PlayerDatas.Instance.baseData.Job == 2) @@ -83,70 +66,7 @@ } } GameObject _prefab = InstanceResourcesLoader.LoadNpcPrefab(npcID); if (_prefab == null) { _prefab = InstanceResourcesLoader.LoadDefaultFuncNPC(); if (_prefab) { m_LoadDefaultRes = true; } } if (_prefab != null) { if (!_prefab.name.Contains("Cb01")) { GAMgr.Instance.AddNeedDestroyPrefab(_prefab); } if (m_LoadDefaultRes) { m_Model = GameObjectPoolManager.Instance.RequestDefaultFuncNpc(); } else { m_Model = GameObjectPoolManager.Instance.RequestNpcGameObject(npcID); } if (m_Model) { m_Animator = m_Model.GetComponent<Animator>(); if (m_Animator) { RuntimeAnimatorController _controller = null; if (m_LoadDefaultRes) { _controller = InstanceResourcesLoader.LoadDefaultMobAnimatorController_Func(); } else { _controller = AnimatorControllerLoader.LoadMobController(AnimatorControllerLoader.controllerSuffix, NpcConfig.MODE); } if (_controller) { m_Animator.runtimeAnimatorController = _controller; } m_Animator.enabled = true; m_Animator.SetInteger(GAStaticDefine.Param_ActorInstID, (int)clientInstID); } SetupBindNode(m_Model.transform); if (m_Root) { m_Model.transform.SetParent(m_Root.transform); m_Model.transform.localPosition = Vector3.zero; m_Model.transform.localRotation = Quaternion.identity; } } RequestName(); } NpcConfig = Config.Instance.Get<NPCConfig>(npcID); } public sealed override void RequestName() @@ -176,10 +96,7 @@ { base.OnInit(package); if (m_ReplaceNpcID != -1) { RequestName(); } NpcConfig = Config.Instance.Get<NPCConfig>((int)m_H0406.NPCID); if (PlayerDatas.Instance.baseData.MapID == 31230) { @@ -194,6 +111,17 @@ WindowCenter.Instance.windowAfterOpenEvent += CheckOpenCollectIcon; WindowCenter.Instance.windowAfterCloseEvent += AfterCloseMainWin; // 执行挖洞逻辑 if (NpcConfig.Dig == 1) { m_Dig = SoMap.CreateImpasse.GeneralCircle(Pos, NpcConfig.ModelRadius); } if (GeneralDefine.NpcPosOffset.ContainsKey(NpcConfig.NPCID)) { Pos = GeneralDefine.NpcPosOffset[NpcConfig.NPCID]; //Debug.Log("矫正位置: " + Pos); } } private void AfterCloseMainWin(Window obj) @@ -425,21 +353,53 @@ { // 获取归属 FairyCampType _type = (FairyCampType)ModelCenter.Instance.GetModel<FairyLeagueModel>().fairyLeagueHelp.GetCrystalBelongCamp(NpcConfig.NPCID); int _offset = 0; if (belongType != _type) { if (_type == FairyCampType.Blue) { SFXPlayUtility.Instance.PlayBattleEffect(3029, this); _offset = 8; } else if (_type == FairyCampType.Red) { SFXPlayUtility.Instance.PlayBattleEffect(3030, this); _offset = 13; } InitPerformance(ClientInstID, NpcConfig.NPCID); var _npcID = m_ReplaceNpcID = NpcConfig.NPCID + _offset; var _npcConfig = Config.Instance.Get<NPCConfig>(_npcID); if (_npcConfig != null) { if (m_Model) { if (m_LoadDefaultRes) { GameObjectPoolManager.Instance.ReleaseDefaultFuncNPC(m_Model); } else { if (m_ReplaceNpcID != -1) { GameObject _toDestroy = InstanceResourcesLoader.LoadNpc(m_ReplaceNpcID); if (_toDestroy) { GameObjectPoolManager.Instance.ReleaseGameObject(_toDestroy, m_Model); } } else { Object.Destroy(m_Model); } } RequestName(); m_Model = null; m_Animator = null; } InstanceResourcesLoader.AsyncLoadNpc(_npcConfig.NPCID, OnPrefabLoadFinished); } belongType = _type; } Fight/GameActor/GA_NpcFunc.cs
@@ -9,7 +9,7 @@ protected HeadUpName m_HeadUpName; // 用于触发点击的组件 protected NPCInteractProcessor m_NPCInteractProcessor; private H0406_tagNPCAppear m_H0406; protected H0406_tagNPCAppear m_H0406; private HeadUpQuestSign m_MissionSign; private int m_WeaponID; Fight/GameActor/GActorNpcNoFight.cs
@@ -5,7 +5,7 @@ { protected GameObject m_Model; protected Animator m_Animator; private UnityEngine.AI.NavMeshObstacle m_Dig; protected UnityEngine.AI.NavMeshObstacle m_Dig; private SFXController m_Shadow; public NPCConfig NpcConfig { get; protected set; } @@ -68,12 +68,6 @@ } RequestShadow(); // 执行挖洞逻辑 if (NpcConfig.Dig == 1) { m_Dig = SoMap.CreateImpasse.GeneralCircle(Pos, NpcConfig.ModelRadius); } if (NpcConfig.NPCEffect != 0) { Lua/Gen/Resources.meta
New file @@ -0,0 +1,9 @@ fileFormatVersion: 2 guid: a545fb3dcf719304fa74180c10219375 folderAsset: yes timeCreated: 1542357825 licenseType: Pro DefaultImporter: userData: assetBundleName: assetBundleVariant: System/Dungeon/DungeonFightWin.cs
@@ -153,7 +153,7 @@ } protected override void OnAfterClose() { { m_DungenWHYJ.Unit(); var iceCrystalVeinModel = ModelCenter.Instance.GetModel<IceCrystalVeinModel>(); if (iceCrystalVeinModel.IsIceCrystalVein_Copy) @@ -161,7 +161,7 @@ iceCrystalVeinModel.IsIceCrystalVein_Copy = false; iceCrystalVeinModel.IsIceCrystalVeinCopy = true; } } protected override void LateUpdate() @@ -234,7 +234,7 @@ (bool _ok) => { if (_ok) { { model.ExitCurrentDungeon(); } } @@ -296,27 +296,55 @@ switch (dataMapId) { case RuneTowerModel.RUNETOWER_MAPID: if (!runeTowerModel.allTowerCompleted) if (!runeTowerModel.waitNextConfirm) { var config = Config.Instance.Get<RuneTowerFloorConfig>(runeTowerModel.currentFloor); var lastFloor = (int)ModelCenter.Instance.GetModel<RuneModel>().RuneTowerOpenLV; var lastFloorConfig = Config.Instance.Get<RuneTowerFloorConfig>(lastFloor); if (model.dungeonResult.isPass == 1 && config.TowerId == lastFloorConfig.TowerId && lastFloorConfig.AutoExit == 0) if (!runeTowerModel.allTowerCompleted) { var runeTowerStage = StageManager.Instance.CurrentStage as RuneTowerDungeonStage; runeTowerStage.PerformChallengeNextLevel(); model.UpdateCoolDown(DungeonCoolDownType.LeaveMap, 0); model.UpdateCoolDown(DungeonCoolDownType.TowerTake, 0); WindowCenter.Instance.Close<DungeonRuneTowerVictoryWin>(); var config = Config.Instance.Get<RuneTowerFloorConfig>(runeTowerModel.currentFloor); var lastFloor = (int)ModelCenter.Instance.GetModel<RuneModel>().RuneTowerOpenLV; var lastFloorConfig = Config.Instance.Get<RuneTowerFloorConfig>(lastFloor); if (model.dungeonResult.isPass == 1 && config.TowerId == lastFloorConfig.TowerId && lastFloorConfig.AutoExit == 0) { if (PlayerDatas.Instance.baseData.FightPoint >= config.Fightpower) { var runeTowerStage = StageManager.Instance.CurrentStage as RuneTowerDungeonStage; runeTowerStage.PerformChallengeNextLevel(); model.UpdateCoolDown(DungeonCoolDownType.LeaveMap, 0); model.UpdateCoolDown(DungeonCoolDownType.TowerTake, 0); WindowCenter.Instance.Close<DungeonRuneTowerVictoryWin>(); } else { ConfirmCancel.ShowRuneTowerPopConfirm( Language.Get("Mail101"), Language.Get("RuneTower25", config.Fightpower), (bool ok) => { if (ok) { var runeTowerStage = StageManager.Instance.CurrentStage as RuneTowerDungeonStage; runeTowerStage.PerformChallengeNextLevel(); model.UpdateCoolDown(DungeonCoolDownType.LeaveMap, 0); model.UpdateCoolDown(DungeonCoolDownType.TowerTake, 0); WindowCenter.Instance.Close<DungeonRuneTowerVictoryWin>(); } else { model.ExitCurrentDungeon(); } } ); } } else { model.ExitCurrentDungeon(); } } else { model.ExitCurrentDungeon(); } } else { model.ExitCurrentDungeon(); } break; case 41110: System/Dungeon/DungeonRuneTowerVictoryWin.cs
@@ -62,11 +62,37 @@ private void ChallengeNextRuneTower() { var runeTowerStage = StageManager.Instance.CurrentStage as RuneTowerDungeonStage; runeTowerStage.PerformChallengeNextLevel(); dungeonModel.UpdateCoolDown(DungeonCoolDownType.LeaveMap, 0); dungeonModel.UpdateCoolDown(DungeonCoolDownType.TowerTake, 0); CloseClick(); var config = Config.Instance.Get<RuneTowerFloorConfig>(runeTowerModel.currentFloor); if (PlayerDatas.Instance.baseData.FightPoint >= config.Fightpower) { var runeTowerStage = StageManager.Instance.CurrentStage as RuneTowerDungeonStage; runeTowerStage.PerformChallengeNextLevel(); dungeonModel.UpdateCoolDown(DungeonCoolDownType.LeaveMap, 0); dungeonModel.UpdateCoolDown(DungeonCoolDownType.TowerTake, 0); CloseClick(); } else { ConfirmCancel.ShowRuneTowerPopConfirm( Language.Get("Mail101"), Language.Get("RuneTower25", config.Fightpower), (bool ok) => { if (ok) { var runeTowerStage = StageManager.Instance.CurrentStage as RuneTowerDungeonStage; runeTowerStage.PerformChallengeNextLevel(); dungeonModel.UpdateCoolDown(DungeonCoolDownType.LeaveMap, 0); dungeonModel.UpdateCoolDown(DungeonCoolDownType.TowerTake, 0); CloseClick(); } else { dungeonModel.ExitCurrentDungeon(); } } ); } } private void DisplayRunesUnLock(int _floor) System/RuneTower/RuneTowerModel.cs
@@ -95,9 +95,10 @@ } } } } public bool waitNextConfirm = false; public event Action<int> selectedFloorEvent; public event Action<int> sweepBoughtTimesChangeEvent; System/RuneTower/RuneTowerWin.cs
@@ -150,7 +150,19 @@ { if (!model.allTowerCompleted && model.currentFloor == model.selectedFloor) { model.RequestChallengeTower(); var config = Config.Instance.Get<RuneTowerFloorConfig>(model.selectedFloor); if (PlayerDatas.Instance.baseData.FightPoint >= config.Fightpower) { model.RequestChallengeTower(); } else { ConfirmCancel.ShowPopConfirm( Language.Get("Mail101"), Language.Get("RuneTower25", config.Fightpower), () => { model.RequestChallengeTower(); } ); } } } System/Tip/ConfirmCancel.cs
@@ -25,7 +25,7 @@ WindowCenter.Instance.Open<PopConfirmWin>(); } } public static void ShowPopConfirm(string title, string info, Action func = null) { popConfirmTitle = title; @@ -39,7 +39,7 @@ } } public static void ShowRealmPopConfirm(string title, string info,string okName,Action func = null) public static void ShowRealmPopConfirm(string title, string info, string okName, Action func = null) { popConfirmTitle = title; popConfirmInfo = info; @@ -51,6 +51,16 @@ { WindowCenter.Instance.Open<RealmPopConfirmWin>(); } } public static void ShowRuneTowerPopConfirm(string title, string info, Action<bool> func) { popConfirmTitle = title; popConfirmInfo = info; OnPopConfirmClickEvent = func; OnPopSingleConfirmEvent = null; IsSingleConfirm = false; WindowCenter.Instance.Open<RuneTowerConfirmWin>(); } #region 带toggle的确认取消 @@ -80,10 +90,10 @@ public static int iconItemId; public static int iconNeedCnt; public static int iconHaveCnt; public static string iconToggleText{ get; private set; } public static string iconToggleText { get; private set; } public static Action<bool, bool> OnIconToggleConfirmAct; public static void IconConfirmCancel(string title,string topInfo,int id, int haveCnt,int needCnt,string bottomInfo,string toggleTxt, Action<bool, bool> func) public static void IconConfirmCancel(string title, string topInfo, int id, int haveCnt, int needCnt, string bottomInfo, string toggleTxt, Action<bool, bool> func) { iconTitle = title; iconTopInfo = topInfo; @@ -98,7 +108,7 @@ WindowCenter.Instance.Open<IconConfirmWin>(); } } #endregion #region 仙盟联赛战场引导 System/Tip/RuneTowerConfirmWin.cs
New file @@ -0,0 +1,92 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Monday, November 26, 2018 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class RuneTowerConfirmWin : PopConfirmWin { [SerializeField] Text m_CountDown; float timer = 0f; float overTime = 5f; bool executed = false; DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } } RuneTowerModel model { get { return ModelCenter.Instance.GetModel<RuneTowerModel>(); } } #region Built-in protected override void BindController() { } protected override void AddListeners() { base.AddListeners(); } protected override void OnPreOpen() { base.OnPreOpen(); timer = 0f; executed = false; model.waitNextConfirm = true; } protected override void OnAfterOpen() { } protected override void OnPreClose() { model.waitNextConfirm = false; } protected override void OnAfterClose() { } protected override void LateUpdate() { timer += Time.deltaTime; m_CountDown.text = Language.Get("RuneTower26", Mathf.RoundToInt(overTime - timer)); if (timer >= overTime) { if (!executed) { OnCountDownEnd(); } } } public override void CloseClick() { WindowCenter.Instance.Close<RuneTowerConfirmWin>(); } #endregion private void OnCountDownEnd() { dungeonModel.ExitCurrentDungeon(); CloseClick(); } } } System/Tip/RuneTowerConfirmWin.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 5a75f5fc739109642aa45fcc6536352f timeCreated: 1543198064 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: