using UnityEngine; using System.Collections; using Module.Log; // 跑环任务奖励控制 // 原每日跑环,先新增每周跑环,再原有属性上复制了一份,后缀_Week加以区分 public class CircleMissionManager { // 跑环类型 public enum CircleType { daily = 1, // 每日 weekly = 2 // 每周 } #region 属性 // 每日 private bool _InitCircle = false; private int _LastAwardCnt = 0; private int _CurState; private int _MultiNumIndex; private int _RewardIndex; public bool _SkilAnim = false; // 每周 private bool _InitCircle_Week = false; private int _LastAwardCnt_Week = 0; private int _CurState_Week; private int _MultiNumIndex_Week; private int _RewardIndex_Week; public bool _SkilAnim_Week = false; // 所有属性,均通过类型获取 public bool InitCircleByType(CircleType ct) { if(ct == CircleType.daily) { return _InitCircle; } return _InitCircle_Week; } public int LastAwardCntByType(CircleType ct) { if(ct == CircleType.daily) { return _LastAwardCnt; } return _LastAwardCnt_Week; } public int CurStateByType(CircleType ct) { if (ct == CircleType.daily) { return _CurState; } return _CurState_Week; } public int MultiNumIndexByType(CircleType ct) { if (ct == CircleType.daily) { return _MultiNumIndex; } return _MultiNumIndex_Week; } public int RewardIndexByType(CircleType ct) { if (ct == CircleType.daily) { return _RewardIndex; } return _RewardIndex_Week; } public bool SkilAnimByType(CircleType ct) { if (ct == CircleType.daily) { return _SkilAnim; } return _SkilAnim_Week; } public void SetSkilAnimByType(CircleType ct, bool value) { if(ct == CircleType.daily) { _SkilAnim = value; } else { _SkilAnim_Week = value; } } #endregion // 用于标记那类活动消息需要显示 private bool needShowDayCircle = false; private bool needShowWeekCircle = false; #region public void InitCircleAwardCnt(GC_CIRCLE_TASK_DRAW_DIAL_INFO packet) { LogModule.DebugLog("LoadingScene:" + GameManager.gameManager.RunningScene); if(packet.LeftNum > _LastAwardCnt) { needShowDayCircle = true; } _LastAwardCnt = packet.LeftNum; _CurState = packet.DialState; _RewardIndex = packet.RewardIndex; _MultiNumIndex = packet.MultiNumIndex; if(packet.LeftNumWeek > _LastAwardCnt_Week) { needShowWeekCircle = true; } _LastAwardCnt_Week = packet.LeftNumWeek; _CurState_Week = packet.DialStateWeek; _RewardIndex_Week = packet.RewardIndexWeek; _MultiNumIndex_Week = packet.MultiNumIndexWeek; // 每日 if (MissionCircleAward.MissionCircleAward_Day && needShowDayCircle && _CurState == 0) { MissionCircleAward.MissionCircleAward_Day.Close(); } else if (MissionCircleAward.MissionCircleAward_Day && MissionCircleAward.MissionCircleAward_Day.WaittingAward) { MissionCircleAward.MissionCircleAward_Day._TargetIdxOut = _RewardIndex; MissionCircleAward.MissionCircleAward_Day._TargetIdxIn = _MultiNumIndex; MissionCircleAward.MissionCircleAward_Day.SelectAward(); needShowDayCircle = false; } else if (MissionCircleAward.MissionCircleAward_Day) { MissionCircleAward.MissionCircleAward_Day.Refresh(); needShowDayCircle = false; } // 每周 if (MissionCircleAward.MissionCircleAward_Week && needShowWeekCircle && _CurState == 0) { MissionCircleAward.MissionCircleAward_Week.Close(); } else if (MissionCircleAward.MissionCircleAward_Week && MissionCircleAward.MissionCircleAward_Week.WaittingAward) { MissionCircleAward.MissionCircleAward_Week._TargetIdxOut = _RewardIndex_Week; MissionCircleAward.MissionCircleAward_Week._TargetIdxIn = _MultiNumIndex_Week; MissionCircleAward.MissionCircleAward_Week.SelectAward(); needShowWeekCircle = false; } else if (MissionCircleAward.MissionCircleAward_Week) { MissionCircleAward.MissionCircleAward_Week.Refresh(); needShowWeekCircle = false; } // 若两种数据都有需要更新的情况,显示完 每日的 再到 每周的。 if (needShowDayCircle) { UIManager.ShowUI(UIInfo.MissionCircleAward_Day); needShowDayCircle = false; } else if(needShowWeekCircle) { UIManager.ShowUI(UIInfo.MissionCircleAward_Week); needShowWeekCircle = false; } // 更新聊天记录上的奖励图标提示 if (ExtraFunTipRoot.Instance()) { ExtraFunTipRoot.Instance().UpdateMissionAward(); } } /// /// 点击抽奖,请求服务器返回内外圈结果 /// public void SelectAward(CircleType ct) { CG_RADOM_CIRCLE_TASK_DIAL packet = (CG_RADOM_CIRCLE_TASK_DIAL)PacketDistributed.CreatePacket(MessageID.PACKET_CG_RADOM_CIRCLE_TASK_DIAL); packet.DialType = 1; //CircleType - 1 每日, 2 每周 packet.CircleType = (int)ct; packet.SendPacket(); } /// /// 服务器返回的抽奖结果,内外圈奖励的索引 /// /// public void SelectAwardRet(GC_RADOM_CIRCLE_TASK_DIAL_RET packet) { // 据说已经不使用改协议返回结果 //if (MissionCircleAward.MissionCircleAward_Day != null && MissionCircleAward.MissionCircleAward_Day.gameObject.activeInHierarchy == true) //{ // MissionCircleAward.MissionCircleAward_Day._TargetIdxOut = packet.RewardIndex; // MissionCircleAward.MissionCircleAward_Day._TargetIdxIn = packet.MultiNumIndex; // MissionCircleAward.MissionCircleAward_Day.SelectAward(); //} //else //{ // GetAward(CircleType.daily); //} //if (MissionCircleAward.MissionCircleAward_Week != null && MissionCircleAward.MissionCircleAward_Week.gameObject.activeInHierarchy == true) //{ // MissionCircleAward.MissionCircleAward_Week._TargetIdxOut = packet.RewardIndex; // MissionCircleAward.MissionCircleAward_Week._TargetIdxIn = packet.MultiNumIndex; // MissionCircleAward.MissionCircleAward_Week.SelectAward(); //} //else //{ // GetAward(CircleType.weekly); //} } /// /// 通知服务器发放奖品 /// public void GetAward(CircleType ct) { CG_RADOM_CIRCLE_TASK_DIAL packet = (CG_RADOM_CIRCLE_TASK_DIAL)PacketDistributed.CreatePacket(MessageID.PACKET_CG_RADOM_CIRCLE_TASK_DIAL); packet.DialType = 2; packet.CircleType = (int)ct; packet.SendPacket(); } #endregion #region auto complate public bool IsCanAutoComplate() { return true; } public void AutoComplateMissions() { if (!IsCanAutoComplate()) return; } public void DoAutoComplate() { } #endregion }