| | |
| | | public List<FunctionForecastConfig> FunctionList = new List<FunctionForecastConfig>();
|
| | | public Dictionary<int, ImpactRankModel.RankAwardItem> DicAwardItem = new Dictionary<int, ImpactRankModel.RankAwardItem>();//奖励物品
|
| | | public Dictionary<int, OpenFuncState> DicOpenFuncState = new Dictionary<int, OpenFuncState>();
|
| | | public Dictionary<int, Redpoint> DicRedPoint = new Dictionary<int, Redpoint>();//红点
|
| | | public event Action UpdateAwarfItem;
|
| | | private const int Redpoint_key1 = 38;
|
| | | public Redpoint redPointStre1 = new Redpoint(Redpoint_key1);
|
| | |
| | | {
|
| | | AddList();
|
| | | AddAwardItem();
|
| | | AddRedPoint();
|
| | | }
|
| | |
|
| | | public void OnBeforePlayerDataInitialize()
|
| | | {
|
| | | PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= OnPlayersUpLV;
|
| | | FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent;
|
| | | treasureModel.treasureStateChangeEvent -= treasureStateChangeEvent;
|
| | | treasureModel.treasureStageUpEvent -= treasureStageUpEvent;
|
| | | //PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= OnPlayersUpLV;
|
| | | //FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent;
|
| | | //treasureModel.treasureStateChangeEvent -= treasureStateChangeEvent;
|
| | | //treasureModel.treasureStageUpEvent -= treasureStageUpEvent;
|
| | | }
|
| | |
|
| | | public void OnPlayerLoginOk()
|
| | | {
|
| | | FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
|
| | | PlayerDatas.Instance.PlayerDataRefreshInfoEvent += OnPlayersUpLV;
|
| | | treasureModel.treasureStateChangeEvent += treasureStateChangeEvent;
|
| | | treasureModel.treasureStageUpEvent += treasureStageUpEvent;
|
| | | //FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
|
| | | //PlayerDatas.Instance.PlayerDataRefreshInfoEvent += OnPlayersUpLV;
|
| | | //treasureModel.treasureStateChangeEvent += treasureStateChangeEvent;
|
| | | //treasureModel.treasureStageUpEvent += treasureStageUpEvent;
|
| | | StageManager.Instance.onStageLoadFinish -= OnStageLoadFinish;
|
| | | StageManager.Instance.onStageLoadFinish += OnStageLoadFinish;
|
| | | RedDotStatus();
|
| | | RedPoint_State();
|
| | | // RedDotStatus();
|
| | | }
|
| | |
|
| | |
|
| | |
| | | IsRedPoint = false;
|
| | | }
|
| | | }
|
| | | private void treasureStageUpEvent(int obj)
|
| | | {
|
| | | RedDotStatus();
|
| | | }
|
| | | //private void treasureStageUpEvent(int obj)
|
| | | //{
|
| | | // RedDotStatus();
|
| | | //}
|
| | |
|
| | | private void treasureStateChangeEvent(int obj)
|
| | | {
|
| | | RedDotStatus();
|
| | | }
|
| | | //private void treasureStateChangeEvent(int obj)
|
| | | //{
|
| | | // RedDotStatus();
|
| | | //}
|
| | |
|
| | | private void OnFuncStateChangeEvent(int obj)
|
| | | {
|
| | | RedDotStatus();
|
| | | }
|
| | | //private void OnFuncStateChangeEvent(int obj)
|
| | | //{
|
| | | // RedDotStatus();
|
| | | //}
|
| | |
|
| | | private void OnPlayersUpLV(PlayerDataRefresh obj)
|
| | | {
|
| | | if (obj == PlayerDataRefresh.LV)
|
| | | {
|
| | | RedDotStatus();
|
| | | }
|
| | | }
|
| | | //private void OnPlayersUpLV(PlayerDataRefresh obj)
|
| | | //{
|
| | | // if (obj == PlayerDataRefresh.LV)
|
| | | // {
|
| | | // RedDotStatus();
|
| | | // }
|
| | | //}
|
| | | private void AddList()//添加列表信息
|
| | | {
|
| | | if (FunctionList.Count <= 0)
|
| | |
| | |
|
| | | }
|
| | |
|
| | | private void RedDotStatus()
|
| | | private void AddRedPoint()
|
| | | {
|
| | | for (int i = 0; i < FunctionList.Count; i++)
|
| | | if (DicRedPoint.Count <= 0)
|
| | | {
|
| | | if (!FuncOpen.Instance.IsFuncOpen(FunctionList[i].FuncId))
|
| | | var configs = Config.Instance.GetAllKeys<FunctionForecastConfig>();
|
| | | foreach (var key in configs)
|
| | | {
|
| | | redPointStre1.state = RedPointState.None;
|
| | | if (OpenFuncId != FunctionList[i].FuncId)
|
| | | var functionForecastConfig = Config.Instance.Get<FunctionForecastConfig>(key);
|
| | | if (!DicRedPoint.ContainsKey(functionForecastConfig.FuncId) && functionForecastConfig.Display == 1)
|
| | | {
|
| | | RedPointChange = false;
|
| | | int RedPointkey = Redpoint_key1 * 10000 + functionForecastConfig.FuncId;
|
| | | Redpoint redPointMountStare = new Redpoint(Redpoint_key1, RedPointkey);
|
| | | DicRedPoint.Add(functionForecastConfig.FuncId, redPointMountStare);
|
| | | }
|
| | | if (OpenFuncId != FunctionList[i].FuncId || !RedPointChange)
|
| | | {
|
| | | OpenFuncId = FunctionList[i].FuncId;
|
| | | IsRedPoint = false;
|
| | | TrailerClassification(FunctionList[i].FuncId);
|
| | | }
|
| | | return;
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | private void TrailerClassification(int funcID)
|
| | | private void RedPoint_State()
|
| | | {
|
| | | FuncOpenLVConfig funcoPenConfig = Config.Instance.Get<FuncOpenLVConfig>(funcID);
|
| | | var functionForecastConfig = Config.Instance.Get<FunctionForecastConfig>(funcID);
|
| | | if (funcoPenConfig.LimitMagicWeapon != 0 || funcoPenConfig.LimitMissionID != 0)
|
| | | var configs = Config.Instance.GetAllKeys<FunctionForecastConfig>();
|
| | | foreach (var key in DicRedPoint.Keys)
|
| | | {
|
| | | if (funcoPenConfig.LimitMagicWeapon != 0)//法宝
|
| | | {
|
| | | int faBaoID = funcoPenConfig.LimitMagicWeapon / 100;
|
| | | MagicWeapon(faBaoID, funcID);
|
| | | return;
|
| | | DicRedPoint[key].state=RedPointState.None;
|
| | | }
|
| | | else if (funcoPenConfig.LimitMissionID != 0)//任务
|
| | | foreach (var _key in DicOpenFuncState.Keys)
|
| | | {
|
| | | if (functionForecastConfig.RedPointLV <= 0)
|
| | | if (DicRedPoint.ContainsKey(_key) && DicOpenFuncState[_key].State==1 |
| | | && DicOpenFuncState[_key].AwardState==0)
|
| | | {
|
| | | return;
|
| | | }
|
| | | if (PlayerDatas.Instance.baseData.LV >= functionForecastConfig.RedPointLV)
|
| | | {
|
| | | RedPointChange = true;
|
| | | IsRedPoint = true;
|
| | | }
|
| | | if (IsRedPoint)
|
| | | {
|
| | | redPointStre1.state = RedPointState.Simple;
|
| | | }
|
| | | else
|
| | | {
|
| | | redPointStre1.state = RedPointState.None;
|
| | | }
|
| | | return;
|
| | | DicRedPoint[_key].state = RedPointState.Simple;
|
| | | }
|
| | | }
|
| | | else//等级
|
| | | {
|
| | | if (functionForecastConfig.RedPointLV <= 0)
|
| | | {
|
| | | return;
|
| | | }
|
| | | if (PlayerDatas.Instance.baseData.LV >= functionForecastConfig.RedPointLV)
|
| | | {
|
| | | RedPointChange = true;
|
| | | IsRedPoint = true;
|
| | | }
|
| | | if (IsRedPoint)
|
| | | {
|
| | | redPointStre1.state = RedPointState.Simple;
|
| | | }
|
| | | else
|
| | | {
|
| | | redPointStre1.state = RedPointState.None;
|
| | | }
|
| | | return;
|
| | | }
|
| | | }
|
| | | //private void RedDotStatus()//红点1
|
| | | //{
|
| | | // for (int i = 0; i < FunctionList.Count; i++)
|
| | | // {
|
| | | // if (!FuncOpen.Instance.IsFuncOpen(FunctionList[i].FuncId))
|
| | | // {
|
| | | // redPointStre1.state = RedPointState.None;
|
| | | // if (OpenFuncId != FunctionList[i].FuncId)
|
| | | // {
|
| | | // RedPointChange = false;
|
| | | // }
|
| | | // if (OpenFuncId != FunctionList[i].FuncId || !RedPointChange)
|
| | | // {
|
| | | // OpenFuncId = FunctionList[i].FuncId;
|
| | | // IsRedPoint = false;
|
| | | // TrailerClassification(FunctionList[i].FuncId);
|
| | | // }
|
| | | // return;
|
| | | // }
|
| | | // }
|
| | | //}
|
| | |
|
| | | //private void TrailerClassification(int funcID)//红点1
|
| | | //{
|
| | | // FuncOpenLVConfig funcoPenConfig = Config.Instance.Get<FuncOpenLVConfig>(funcID);
|
| | | // var functionForecastConfig = Config.Instance.Get<FunctionForecastConfig>(funcID);
|
| | | // if (funcoPenConfig.LimitMagicWeapon != 0 || funcoPenConfig.LimitMissionID != 0)
|
| | | // {
|
| | | // if (funcoPenConfig.LimitMagicWeapon != 0)//法宝
|
| | | // {
|
| | | // int faBaoID = funcoPenConfig.LimitMagicWeapon / 100;
|
| | | // MagicWeapon(faBaoID, funcID);
|
| | | // return;
|
| | | // }
|
| | | // else if (funcoPenConfig.LimitMissionID != 0)//任务
|
| | | // {
|
| | | // if (functionForecastConfig.RedPointLV <= 0)
|
| | | // {
|
| | | // return;
|
| | | // }
|
| | | // if (PlayerDatas.Instance.baseData.LV >= functionForecastConfig.RedPointLV)
|
| | | // {
|
| | | // RedPointChange = true;
|
| | | // IsRedPoint = true;
|
| | | // }
|
| | | // if (IsRedPoint)
|
| | | // {
|
| | | // redPointStre1.state = RedPointState.Simple;
|
| | | // }
|
| | | // else
|
| | | // {
|
| | | // redPointStre1.state = RedPointState.None;
|
| | | // }
|
| | | // return;
|
| | | // }
|
| | | // }
|
| | | // else//等级
|
| | | // {
|
| | | // if (functionForecastConfig.RedPointLV <= 0)
|
| | | // {
|
| | | // return;
|
| | | // }
|
| | | // if (PlayerDatas.Instance.baseData.LV >= functionForecastConfig.RedPointLV)
|
| | | // {
|
| | | // RedPointChange = true;
|
| | | // IsRedPoint = true;
|
| | | // }
|
| | | // if (IsRedPoint)
|
| | | // {
|
| | | // redPointStre1.state = RedPointState.Simple;
|
| | | // }
|
| | | // else
|
| | | // {
|
| | | // redPointStre1.state = RedPointState.None;
|
| | | // }
|
| | | // return;
|
| | | // }
|
| | | //}
|
| | | TreasureModel treasureModel { get { return ModelCenter.Instance.GetModel<TreasureModel>(); } }
|
| | | private void MagicWeapon(int fabaoID, int funcID)
|
| | | {
|
| | | var functionForecastConfig = Config.Instance.Get<FunctionForecastConfig>(funcID);
|
| | | if (functionForecastConfig.RedPointLV > 0)//根据填的等级来
|
| | | {
|
| | | if (PlayerDatas.Instance.baseData.LV >= functionForecastConfig.RedPointLV)
|
| | | {
|
| | | RedPointChange = true;
|
| | | IsRedPoint = true;
|
| | | }
|
| | | if (IsRedPoint)
|
| | | {
|
| | | redPointStre1.state = RedPointState.Simple;
|
| | | }
|
| | | else
|
| | | {
|
| | | redPointStre1.state = RedPointState.None;
|
| | | }
|
| | | return;
|
| | | }
|
| | | Treasure treasure;//根据解锁法宝的百分比
|
| | | //private void MagicWeapon(int fabaoID, int funcID)//红点1
|
| | | //{
|
| | | // var functionForecastConfig = Config.Instance.Get<FunctionForecastConfig>(funcID);
|
| | | // if (functionForecastConfig.RedPointLV > 0)//根据填的等级来
|
| | | // {
|
| | | // if (PlayerDatas.Instance.baseData.LV >= functionForecastConfig.RedPointLV)
|
| | | // {
|
| | | // RedPointChange = true;
|
| | | // IsRedPoint = true;
|
| | | // }
|
| | | // if (IsRedPoint)
|
| | | // {
|
| | | // redPointStre1.state = RedPointState.Simple;
|
| | | // }
|
| | | // else
|
| | | // {
|
| | | // redPointStre1.state = RedPointState.None;
|
| | | // }
|
| | | // return;
|
| | | // }
|
| | | // Treasure treasure;//根据解锁法宝的百分比
|
| | |
|
| | | if (treasureModel.TryGetTreasure(fabaoID, out treasure)
|
| | | && treasure.state == TreasureState.Collected)
|
| | | {
|
| | | var list = treasure.treasureStages;
|
| | | var funcStage = 0;
|
| | | for (int i = 0; i < list.Count; i++)
|
| | | {
|
| | | if (list[i].unlockType == TreasureStageUnlock.Func &&
|
| | | list[i].func == funcID)
|
| | | {
|
| | | funcStage = i;
|
| | | break;
|
| | | }
|
| | | }
|
| | | if (treasure.stage == funcStage - 1 || funcStage == 0)
|
| | | {
|
| | | float exp = ((float)treasure.exp / treasure.treasureStages[funcStage].exp) * 100;
|
| | | if (functionForecastConfig.RedPointPercentage > -1)
|
| | | {
|
| | | if (exp >= functionForecastConfig.RedPointPercentage)
|
| | | {
|
| | | RedPointChange = true;
|
| | | IsRedPoint = true;
|
| | | }
|
| | | if (IsRedPoint)
|
| | | {
|
| | | redPointStre1.state = RedPointState.Simple;
|
| | | }
|
| | | }
|
| | | else
|
| | | {
|
| | | redPointStre1.state = RedPointState.None;
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | // if (treasureModel.TryGetTreasure(fabaoID, out treasure)
|
| | | // && treasure.state == TreasureState.Collected)
|
| | | // {
|
| | | // var list = treasure.treasureStages;
|
| | | // var funcStage = 0;
|
| | | // for (int i = 0; i < list.Count; i++)
|
| | | // {
|
| | | // if (list[i].unlockType == TreasureStageUnlock.Func &&
|
| | | // list[i].func == funcID)
|
| | | // {
|
| | | // funcStage = i;
|
| | | // break;
|
| | | // }
|
| | | // }
|
| | | // if (treasure.stage == funcStage - 1 || funcStage == 0)
|
| | | // {
|
| | | // float exp = ((float)treasure.exp / treasure.treasureStages[funcStage].exp) * 100;
|
| | | // if (functionForecastConfig.RedPointPercentage > -1)
|
| | | // {
|
| | | // if (exp >= functionForecastConfig.RedPointPercentage)
|
| | | // {
|
| | | // RedPointChange = true;
|
| | | // IsRedPoint = true;
|
| | | // }
|
| | | // if (IsRedPoint)
|
| | | // {
|
| | | // redPointStre1.state = RedPointState.Simple;
|
| | | // }
|
| | | // }
|
| | | // else
|
| | | // {
|
| | | // redPointStre1.state = RedPointState.None;
|
| | | // }
|
| | | // }
|
| | | // }
|
| | | //}
|
| | |
|
| | | public IEnumerator WhetherToPlayTheBox()
|
| | | {
|
| | |
| | | if (PlayerDatas.Instance.baseData.LV >= functionForecastConfig.FrameLevel && type == 0)
|
| | | {
|
| | | LocalSave.SetInt(strKey, functionForecastConfig.FrameLevel);
|
| | | var IsOpenFeatureNotice = WindowCenter.Instance.IsOpen<FeatureNoticeWin>();
|
| | | var IsOpenFeatureNotice = WindowCenter.Instance.IsOpen<FeatureNotice2Win>();
|
| | | if (!IsOpenFeatureNotice)
|
| | | {
|
| | | WindowCenter.Instance.Close<MainInterfaceWin>();
|
| | | WindowCenter.Instance.Open<FeatureNoticeWin>();
|
| | | WindowCenter.Instance.Open<FeatureNotice2Win>();
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | | {
|
| | | OpenFuncState openFuncState = new OpenFuncState();
|
| | | openFuncState.State = info.FuncStateList[i].State;
|
| | | openFuncState.AwardState = info.FuncStateList[i].State;
|
| | | openFuncState.AwardState = info.FuncStateList[i].AwardState;
|
| | | DicOpenFuncState.Add(FuncID, openFuncState);
|
| | | }
|
| | | else
|
| | | {
|
| | | DicOpenFuncState[FuncID].State= info.FuncStateList[i].State;
|
| | | DicOpenFuncState[FuncID].AwardState = info.FuncStateList[i].State;
|
| | | DicOpenFuncState[FuncID].AwardState = info.FuncStateList[i].AwardState;
|
| | | }
|
| | | }
|
| | | if (UpdateAwarfItem != null)
|
| | | {
|
| | | UpdateAwarfItem();
|
| | | }
|
| | | RedPoint_State();
|
| | | }
|
| | |
|
| | | public void SendGetAward(int OpenFuncId)
|
| | | {
|
| | | CA504_tagCMPlayerGetReward getReward = new CA504_tagCMPlayerGetReward();
|
| | | getReward.RewardType = (byte)GotServerRewardType.Def_RewardType_OpenFunc;
|
| | | getReward.DataEx = (uint)OpenFuncId;
|
| | | getReward.DataExStrLen = 0;
|
| | | getReward.DataExStr = string.Empty;
|
| | | GameNetSystem.Instance.SendInfo(getReward);
|
| | | }
|
| | | } |
| | | |
| | | |