| | |
| | | Dictionary<int, BossSubscribe> bossSubscribes = new Dictionary<int, BossSubscribe>();
|
| | | bool serverInited = false;
|
| | |
|
| | | public event Action<int> bossInfoUpdateEvent;
|
| | | public event Action<int> bossSubscribeChangeEvent;
|
| | | public event Action preciousDropRecordUpdateEvent;
|
| | | public event Action<int> bossInfoUpdateEvent;
|
| | | public event Action bossRebornNotifyChangeEvent;
|
| | |
|
| | | DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
|
| | |
| | | {
|
| | | return false;
|
| | | }
|
| | | else if (BossFakeLineUtility.Instance.HasSawLineBossRecently(bossId, PlayerDatas.Instance.baseData.FBID))
|
| | | {
|
| | | return true;
|
| | | }
|
| | | else if (BossFakeLineUtility.Instance.HasSawLineStoneRecently(bossId, PlayerDatas.Instance.baseData.FBID))
|
| | | {
|
| | | return false;
|
| | | }
|
| | | else
|
| | | {
|
| | | var isMistakeBoss = BossFakeLineUtility.Instance.lastBossNpcID == bossId
|
| | | && Time.realtimeSinceStartup < BossFakeLineUtility.Instance.inMistakeForBossAliveOverTime;
|
| | | var isLineBossAlive = IsLineBossAlive(PlayerDatas.Instance.baseData.FBID);
|
| | |
|
| | | if (isMistakeBoss && isLineBossAlive)
|
| | | var currentNeutralMap = false;
|
| | | if (Config.Instance.ContainKey<WorldBossConfig>(bossId))
|
| | | {
|
| | | return true;
|
| | | var worldBossConfig = Config.Instance.Get<WorldBossConfig>(bossId);
|
| | | currentNeutralMap = worldBossConfig.MapID == PlayerDatas.Instance.baseData.MapID;
|
| | | currentNeutralMap = currentNeutralMap && GeneralConfig.Instance.neutralMaps.Contains(worldBossConfig.MapID);
|
| | | }
|
| | |
|
| | | if (currentNeutralMap)
|
| | | {
|
| | | return IsLineBossAlive(PlayerDatas.Instance.baseData.FBID);
|
| | | }
|
| | | else
|
| | | {
|
| | | var currentNeutralMap = false;
|
| | | if (Config.Instance.ContainKey<WorldBossConfig>(bossId))
|
| | | if (BossFakeLineUtility.Instance.IsBossKilledRecently(bossId))
|
| | | {
|
| | | var worldBossConfig = Config.Instance.Get<WorldBossConfig>(bossId);
|
| | | currentNeutralMap = worldBossConfig.MapID == PlayerDatas.Instance.baseData.MapID;
|
| | | currentNeutralMap = currentNeutralMap && GeneralConfig.Instance.neutralMaps.Contains(worldBossConfig.MapID);
|
| | | }
|
| | |
|
| | | if (currentNeutralMap)
|
| | | {
|
| | | return isLineBossAlive;
|
| | | return !IsAnyLineBossDead();
|
| | | }
|
| | | else
|
| | | {
|
| | | if (BossFakeLineUtility.Instance.IsBossKilledRecently(bossId))
|
| | | {
|
| | | return !IsAnyLineBossDead();
|
| | | }
|
| | | else
|
| | | {
|
| | | return IsAnyLineBossAlive();
|
| | | }
|
| | | return IsAnyLineBossAlive();
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | |
|
| | | public static int Compare2(DropRecord _lhs, DropRecord _rhs)
|
| | | {
|