| | |
| | | FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
|
| | | GA_Hero.OnEnterOrExitArea += OnEnterOrExitArea;
|
| | | PlayerDatas.Instance.fairyData.OnRefreshFairyInfo += OnRefreshFairyInfo;
|
| | | GAMgr.Instance.OnFightNpcRequest += OnFightNpcUpdate;
|
| | | GAMgr.Instance.OnFightNpcRelease += OnFightNpcUpdate;
|
| | | }
|
| | |
|
| | | public void OnBeforePlayerDataInitialize()
|
| | |
| | | StageManager.Instance.onStageLoadFinish -= OnStageLoadFinish;
|
| | | DailyQuestActionTimer.Instance.RefreshDailyQuestState -= RefreshDailyQuestState;
|
| | | GA_Hero.OnEnterOrExitArea -= OnEnterOrExitArea;
|
| | | GAMgr.Instance.OnFightNpcRequest -= OnFightNpcUpdate;
|
| | | GAMgr.Instance.OnFightNpcRelease -= OnFightNpcUpdate;
|
| | | }
|
| | |
|
| | | private void OnRefreshFairyInfo()
|
| | |
| | | RecheckGrabBoss();
|
| | | }
|
| | |
|
| | | private void OnEnterOrExitArea(MapArea.E_Type arg0, bool arg1)
|
| | | private void OnEnterOrExitArea(MapArea.E_Type type, bool arg1)
|
| | | {
|
| | | RecheckGrabBoss();
|
| | | if (type == MapArea.E_Type.Boss)
|
| | | {
|
| | | RecheckGrabBoss();
|
| | | }
|
| | | }
|
| | |
|
| | | private void OnStageLoadFinish()
|
| | |
| | | if (!(StageManager.Instance.CurrentStage is DungeonStage))
|
| | | {
|
| | | fairyGrabBossDict.Clear();
|
| | | }
|
| | | }
|
| | |
|
| | | private void OnFightNpcUpdate(uint npcId)
|
| | | {
|
| | | if (bosses.Contains((int)npcId))
|
| | | {
|
| | | RecheckGrabBoss();
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | return;
|
| | | }
|
| | | var mapId = PlayerDatas.Instance.baseData.MapID;
|
| | | var lineId = PlayerDatas.Instance.baseData.FBID;
|
| | | if (!GeneralConfig.Instance.fairyGrabBossMapLines.ContainsKey(mapId)
|
| | | || lineId != GeneralConfig.Instance.fairyGrabBossMapLines[mapId])
|
| | | var grabBossLine = GeneralConfig.Instance.fairyGrabBossMapLines.ContainsKey(mapId) ?
|
| | | GeneralConfig.Instance.fairyGrabBossMapLines[mapId] : 1;
|
| | | if (PlayerDatas.Instance.baseData.FBID != grabBossLine - 1)
|
| | | {
|
| | | CloseGrabBossHint();
|
| | | return;
|
| | |
| | | return false;
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 只给地图界面用,谨慎使用
|
| | | /// </summary>
|
| | | /// <param name="lineId"></param>
|
| | | /// <returns></returns>
|
| | | public bool TryGetFairyGrabBossLine(out int lineId)
|
| | | {
|
| | | lineId = 0;
|
| | | var mapId = PlayerDatas.Instance.baseData.MapID;
|
| | | var mapLinesDict = GeneralConfig.Instance.fairyGrabBossMapLines;
|
| | | if (mapLinesDict != null && mapLinesDict.ContainsKey(mapId))
|
| | | {
|
| | | lineId = mapLinesDict[mapId];
|
| | | return true;
|
| | | }
|
| | | return false;
|
| | | }
|
| | |
|
| | | public class FairyGrabBossInfo
|
| | | {
|
| | | public int npcId { get; private set; }
|