예제 #1
0
    private void SendDataChangeMsg(ChallengeUIGridMessage.ChallengeState challengeState)
    {
        ChallengeUIGridMessage msg = new ChallengeUIGridMessage();

        msg.challengeID = ChallengeGridID.DoorOfBury;
        msg.state       = challengeState;
        EventDispatcher.TriggerEvent <ChallengeUIGridMessage>(Events.ChallengeUIEvent.ReceiveChallengeUIGridMessage, msg);
    }
예제 #2
0
    public void ReceiveChallengeUIGridMessage(ChallengeUIGridMessage data)
    {
        if (MogoUIQueue.Instance.IsLocking)
        {
            return;
        }
        // Debug.LogError("ChallengeUIGridMessage: " + data.challengeID + " " + data.state.ToString());

        if (!challengeUIGridMessageSource.ContainsKey(data.challengeID))
        {
            challengeUIGridMessageSource.Add(data.challengeID, data);
        }
        else
        {
            challengeUIGridMessageSource[data.challengeID] = data;
        }

        if (challengeUIGridMessageSource.Count == ChallengeUIViewManager.GRIDNUM)
        {
            if (!syncLock)
            {
                syncLock = true;
                isDirty  = false;
                List <ChallengeGridID> sortedResult = new List <ChallengeGridID>();

                do
                {
                    sortedResult = GetChallengeUIGridSortedResult();
                } while (isDirty);

                for (int i = 0; i < sortedResult.Count; i++)
                {
                    ChallengeUIViewManager.Instance.SetGridPos((int)(sortedResult[i]), i);
                }

                syncLock = false;
            }
            else
            {
                isDirty = true;
            }
        }
    }
예제 #3
0
    protected void SetChallengeState()
    {
        ChallengeUIGridMessage data = new ChallengeUIGridMessage();

        data.challengeID = ChallengeGridID.OccupyTower;
        if (theOwner.level < SystemRequestLevel.OCCPUYTOWER)
        {
            data.state = ChallengeUIGridMessage.ChallengeState.Lock;
        }
        else
        {
            if (OccupyTowerOpen)
            {
                data.state = ChallengeUIGridMessage.ChallengeState.LimitStarted;
            }
            else
            {
                data.state = ChallengeUIGridMessage.ChallengeState.LimitFinished;
            }
        }

        EventDispatcher.TriggerEvent <ChallengeUIGridMessage>(Events.ChallengeUIEvent.ReceiveChallengeUIGridMessage, data);
    }
예제 #4
0
    public void SetChallengeState()
    {
        ChallengeUIGridMessage data = new ChallengeUIGridMessage();

        data.challengeID = ChallengeGridID.OgreMustDie;
        if (theOwner.level < SystemRequestLevel.OGREMUSTDIE)
        {
            data.state = ChallengeUIGridMessage.ChallengeState.Lock;
        }
        else
        {
            if (OgreMustDieOpen)
                data.state = ChallengeUIGridMessage.ChallengeState.LimitStarted;
            else
                data.state = ChallengeUIGridMessage.ChallengeState.LimitFinished;
        }

        EventDispatcher.TriggerEvent<ChallengeUIGridMessage>(Events.ChallengeUIEvent.ReceiveChallengeUIGridMessage, data);
    }
예제 #5
0
 private static void SendDataChangeMsg(ChallengeUIGridMessage.ChallengeState challengeState)
 {
     ChallengeUIGridMessage msg = new ChallengeUIGridMessage();
     msg.challengeID = ChallengeGridID.DragonMatch;
     msg.state = challengeState;
     EventDispatcher.TriggerEvent<ChallengeUIGridMessage>(Events.ChallengeUIEvent.ReceiveChallengeUIGridMessage, msg);
 }
예제 #6
0
    public void ReceiveChallengeUIGridMessage(ChallengeUIGridMessage data)
    {
        if (MogoUIQueue.Instance.IsLocking)
        {
            return;
        }
        // Debug.LogError("ChallengeUIGridMessage: " + data.challengeID + " " + data.state.ToString());

        if (!challengeUIGridMessageSource.ContainsKey(data.challengeID))
            challengeUIGridMessageSource.Add(data.challengeID, data);
        else
            challengeUIGridMessageSource[data.challengeID] = data;

        if (challengeUIGridMessageSource.Count == ChallengeUIViewManager.GRIDNUM)
        {
            if (!syncLock)
            {
                syncLock = true;
                isDirty = false;
                List<ChallengeGridID> sortedResult = new List<ChallengeGridID>();

                do
                {
                    sortedResult = GetChallengeUIGridSortedResult();
                } while (isDirty);

                for (int i = 0; i < sortedResult.Count; i++)
                    ChallengeUIViewManager.Instance.SetGridPos((int)(sortedResult[i]), i);

                syncLock = false;
            }
            else
            {
                isDirty = true;
            }
        }
    }
예제 #7
0
    public void RefreshUI(int index)
    {
        switch ((ChallengeGridID)index)
        {
            case ChallengeGridID.ClimbTower:
                {
                    if (MogoWorld.thePlayer.level >= SystemRequestLevel.CILMBTOWER)
                    {
                        LoggerHelper.Debug("ClimbTowerUILogicManager:" + ClimbTowerUILogicManager.Instance.Data.FailCount);
                        if (ChallengeUIViewManager.Instance!=null)
                        {
                            ChallengeUIViewManager.Instance.SetGray((int)ChallengeGridID.ClimbTower, false);
                            ChallengeUIViewManager.Instance.SetChallengeText((int)ChallengeGridID.ClimbTower, LanguageData.GetContent(26345,ClimbTowerUILogicManager.Instance.Data.FailCount));
                            ChallengeUIViewManager.Instance.SetChallengeTextColor((int)ChallengeGridID.ClimbTower, SystemUIColorManager.BROWN);
                        }
                        ChallengeUIGridMessage data = new ChallengeUIGridMessage();
                        data.challengeID = ChallengeGridID.ClimbTower;
                        data.state = ChallengeUIGridMessage.ChallengeState.Open;
                        EventDispatcher.TriggerEvent<ChallengeUIGridMessage>(Events.ChallengeUIEvent.ReceiveChallengeUIGridMessage, data); 
                    }
                    else
                    {
                        if (ChallengeUIViewManager.Instance != null)
                        {
                            ChallengeUIViewManager.Instance.SetGray((int)ChallengeGridID.ClimbTower, true);
                            ChallengeUIViewManager.Instance.SetChallengeText((int)ChallengeGridID.ClimbTower, string.Format("{0}级解锁", SystemRequestLevel.CILMBTOWER));
                            ChallengeUIViewManager.Instance.SetChallengeTextColor((int)ChallengeGridID.ClimbTower, SystemUIColorManager.RED);
                            ChallengeUIGridMessage data = new ChallengeUIGridMessage();
                            data.challengeID = ChallengeGridID.ClimbTower;
                            data.state = ChallengeUIGridMessage.ChallengeState.Lock;
                            EventDispatcher.TriggerEvent<ChallengeUIGridMessage>(Events.ChallengeUIEvent.ReceiveChallengeUIGridMessage, data); 
                        }
                    }                    
                }
                break;
            case ChallengeGridID.DoorOfBury:
                break;
            case ChallengeGridID.Sanctuary:
                {
                    ChallengeUIViewManager.Instance.SetGray((int)ChallengeGridID.Sanctuary, false);
                    if (MogoWorld.thePlayer.level >= SystemRequestLevel.SANCTUARY) // 已解锁
                    {
                        if (nextTimeSec == 0) // 可挑战:结束倒计时中
                        {
                            ChallengeUIGridMessage data = new ChallengeUIGridMessage();
                            data.challengeID = ChallengeGridID.Sanctuary;
                            data.state = ChallengeUIGridMessage.ChallengeState.LimitStarted;
                            EventDispatcher.TriggerEvent<ChallengeUIGridMessage>(Events.ChallengeUIEvent.ReceiveChallengeUIGridMessage, data); 
                            ChallengeUIViewManager.Instance.ShowEnterTipFX((int)ChallengeGridID.Sanctuary, true);
                            ChallengeUIViewManager.Instance.AddTimer(2, endTime, 
                                (curTime) =>
                                {                                   
                                    var span = new TimeSpan(curTime * TimeSpan.TicksPerSecond);
                                    ChallengeUIViewManager.Instance.SetChallengeTextColor((int)ChallengeGridID.Sanctuary, SystemUIColorManager.BROWN);
                                    ChallengeUIViewManager.Instance.SetChallengeText((int)ChallengeGridID.Sanctuary, 
                                        Convert.ToDateTime(span.ToString()).
                                        ToString(string.Format("mm{0}ss{1}{2}",
                                        LanguageData.GetContent(7102),
                                        LanguageData.GetContent(7103),
                                        LanguageData.GetContent(7135))));
                                }, 
                                () =>
                                {
                                    ChallengeUIViewManager.Instance.SetChallengeText((int)ChallengeGridID.Sanctuary, LanguageData.GetContent(7136)); // 活动已结束
                                    ChallengeUIViewManager.Instance.SetChallengeTextColor((int)ChallengeGridID.Sanctuary, SystemUIColorManager.BROWN);
                                    ChallengeUIViewManager.Instance.ShowEnterTipFX((int)ChallengeGridID.Sanctuary, false);
                                    ChallengeUIGridMessage data2 = new ChallengeUIGridMessage();
                                    data2.challengeID = ChallengeGridID.Sanctuary;
                                    data2.state = ChallengeUIGridMessage.ChallengeState.LimitFinished;
                                    EventDispatcher.TriggerEvent<ChallengeUIGridMessage>(Events.ChallengeUIEvent.ReceiveChallengeUIGridMessage, data2);
                                    EventDispatcher.TriggerEvent(Events.SanctuaryEvent.QuerySanctuaryInfo);
                                });
                        }
                        else // CD倒计时
                        {
                            var span = new TimeSpan(nextTimeSec*TimeSpan.TicksPerSecond);
                            var midTime = MogoTime.Instance.GetCurrentDateTime() + span;
                            ChallengeUIViewManager.Instance.SetChallengeTextColor((int)ChallengeGridID.Sanctuary, SystemUIColorManager.RED);
                            ChallengeUIViewManager.Instance.SetChallengeText((int)ChallengeGridID.Sanctuary, midTime.
                                ToString(string.Format("{0}HH{1}mm{2}{3}",
                                LanguageData.GetContent(7130),
                                LanguageData.GetContent(7101),
                                LanguageData.GetContent(7102),
                                LanguageData.GetContent(7131))));
                            ChallengeUIViewManager.Instance.ShowEnterTipFX((int)ChallengeGridID.Sanctuary, false);
                            ChallengeUIGridMessage data3 = new ChallengeUIGridMessage();
                            data3.challengeID = ChallengeGridID.Sanctuary;
                            data3.state = ChallengeUIGridMessage.ChallengeState.LimitFinished;
                            EventDispatcher.TriggerEvent<ChallengeUIGridMessage>(Events.ChallengeUIEvent.ReceiveChallengeUIGridMessage, data3); 
                        }
                    }
                    else // 未解锁
                    {
                        string SanctuaryNoOpen = LanguageData.GetContent(311);
                        ChallengeUIViewManager.Instance.SetGray((int)ChallengeGridID.Sanctuary, true);
                        ChallengeUIViewManager.Instance.SetChallengeText((int)ChallengeGridID.Sanctuary, SanctuaryNoOpen);
                        ChallengeUIViewManager.Instance.SetChallengeTextColor((int)ChallengeGridID.Sanctuary, SystemUIColorManager.RED);
                        ChallengeUIGridMessage data4 = new ChallengeUIGridMessage();
                        data4.challengeID = ChallengeGridID.Sanctuary;
                        data4.state = ChallengeUIGridMessage.ChallengeState.Lock;
                        EventDispatcher.TriggerEvent<ChallengeUIGridMessage>(Events.ChallengeUIEvent.ReceiveChallengeUIGridMessage, data4); 
                    }                  
                }
                break;
            case ChallengeGridID.DragonMatch:
                {

                }
                break;
            case ChallengeGridID.OgreMustDie:
                {
                    if (MogoWorld.thePlayer.level >= SystemRequestLevel.OGREMUSTDIE)
                    {
                        if (ChallengeUIViewManager.Instance != null)
                        {
                            // 
                            ChallengeUIViewManager.Instance.SetGray((int)ChallengeGridID.OgreMustDie, false);
                        }
                    }
                    else
                    {
                        if (ChallengeUIViewManager.Instance != null)
                        {
                            ChallengeUIViewManager.Instance.SetGray((int)ChallengeGridID.OgreMustDie, true);
                            ChallengeUIViewManager.Instance.SetChallengeTextColor((int)ChallengeGridID.OgreMustDie, SystemUIColorManager.RED);
                            ChallengeUIViewManager.Instance.SetChallengeText((int)ChallengeGridID.OgreMustDie, string.Format("{0}级解锁", SystemRequestLevel.OGREMUSTDIE));
                        }
                    } 
                }
                break;

            case ChallengeGridID.OccupyTower:
                {
                    if (MogoWorld.thePlayer.level >= SystemRequestLevel.OCCPUYTOWER)
                    {
                        if (ChallengeUIViewManager.Instance != null)
                        {
                            // 
                            ChallengeUIViewManager.Instance.SetGray((int)ChallengeGridID.OccupyTower, false);
                        }
                    }
                    else
                    {
                        if (ChallengeUIViewManager.Instance != null)
                        {
                            ChallengeUIViewManager.Instance.SetGray((int)ChallengeGridID.OccupyTower, true);
                            ChallengeUIViewManager.Instance.SetChallengeTextColor((int)ChallengeGridID.OccupyTower, SystemUIColorManager.RED);
                            ChallengeUIViewManager.Instance.SetChallengeText((int)ChallengeGridID.OccupyTower, string.Format("{0}级解锁", SystemRequestLevel.OCCPUYTOWER));
                        }
                    }
                }
                break;

            default:
                break;
        }
    }
예제 #8
0
    public void RefreshUI(int index)
    {
        switch ((ChallengeGridID)index)
        {
        case ChallengeGridID.ClimbTower:
        {
            if (MogoWorld.thePlayer.level >= SystemRequestLevel.CILMBTOWER)
            {
                //Debug.Log("ClimbTowerUILogicManager:" + ClimbTowerUILogicManager.Instance.Data.FailCount);
                if (ChallengeUIViewManager.Instance != null)
                {
                    ChallengeUIViewManager.Instance.SetGray((int)ChallengeGridID.ClimbTower, false);
                    ChallengeUIViewManager.Instance.SetChallengeText((int)ChallengeGridID.ClimbTower, LanguageData.GetContent(26345, ClimbTowerUILogicManager.Instance.Data.FailCount));
                    ChallengeUIViewManager.Instance.SetChallengeTextColor((int)ChallengeGridID.ClimbTower, SystemUIColorManager.BROWN);
                }
                ChallengeUIGridMessage data = new ChallengeUIGridMessage();
                data.challengeID = ChallengeGridID.ClimbTower;
                data.state       = ChallengeUIGridMessage.ChallengeState.Open;
                EventDispatcher.TriggerEvent <ChallengeUIGridMessage>(Events.ChallengeUIEvent.ReceiveChallengeUIGridMessage, data);
            }
            else
            {
                if (ChallengeUIViewManager.Instance != null)
                {
                    ChallengeUIViewManager.Instance.SetGray((int)ChallengeGridID.ClimbTower, true);
                    ChallengeUIViewManager.Instance.SetChallengeText((int)ChallengeGridID.ClimbTower, string.Format("{0}级解锁", SystemRequestLevel.CILMBTOWER));
                    ChallengeUIViewManager.Instance.SetChallengeTextColor((int)ChallengeGridID.ClimbTower, SystemUIColorManager.RED);
                    ChallengeUIGridMessage data = new ChallengeUIGridMessage();
                    data.challengeID = ChallengeGridID.ClimbTower;
                    data.state       = ChallengeUIGridMessage.ChallengeState.Lock;
                    EventDispatcher.TriggerEvent <ChallengeUIGridMessage>(Events.ChallengeUIEvent.ReceiveChallengeUIGridMessage, data);
                }
            }
        }
        break;

        case ChallengeGridID.DoorOfBury:
            break;

        case ChallengeGridID.Sanctuary:
        {
            ChallengeUIViewManager.Instance.SetGray((int)ChallengeGridID.Sanctuary, false);
            if (MogoWorld.thePlayer.level >= SystemRequestLevel.SANCTUARY) // 已解锁
            {
                if (nextTimeSec == 0)                                      // 可挑战:结束倒计时中
                {
                    ChallengeUIGridMessage data = new ChallengeUIGridMessage();
                    data.challengeID = ChallengeGridID.Sanctuary;
                    data.state       = ChallengeUIGridMessage.ChallengeState.LimitStarted;
                    EventDispatcher.TriggerEvent <ChallengeUIGridMessage>(Events.ChallengeUIEvent.ReceiveChallengeUIGridMessage, data);
                    ChallengeUIViewManager.Instance.ShowEnterTipFX((int)ChallengeGridID.Sanctuary, true);
                    ChallengeUIViewManager.Instance.AddTimer(2, endTime,
                                                             (curTime) =>
                        {
                            var span = new TimeSpan(curTime * TimeSpan.TicksPerSecond);
                            ChallengeUIViewManager.Instance.SetChallengeTextColor((int)ChallengeGridID.Sanctuary, SystemUIColorManager.BROWN);
                            ChallengeUIViewManager.Instance.SetChallengeText((int)ChallengeGridID.Sanctuary,
                                                                             Convert.ToDateTime(span.ToString()).
                                                                             ToString(string.Format("mm{0}ss{1}{2}",
                                                                                                    LanguageData.GetContent(7102),
                                                                                                    LanguageData.GetContent(7103),
                                                                                                    LanguageData.GetContent(7135))));
                        },
                                                             () =>
                        {
                            ChallengeUIViewManager.Instance.SetChallengeText((int)ChallengeGridID.Sanctuary, LanguageData.GetContent(7136));         // 活动已结束
                            ChallengeUIViewManager.Instance.SetChallengeTextColor((int)ChallengeGridID.Sanctuary, SystemUIColorManager.BROWN);
                            ChallengeUIViewManager.Instance.ShowEnterTipFX((int)ChallengeGridID.Sanctuary, false);
                            ChallengeUIGridMessage data2 = new ChallengeUIGridMessage();
                            data2.challengeID            = ChallengeGridID.Sanctuary;
                            data2.state = ChallengeUIGridMessage.ChallengeState.LimitFinished;
                            EventDispatcher.TriggerEvent <ChallengeUIGridMessage>(Events.ChallengeUIEvent.ReceiveChallengeUIGridMessage, data2);
                            EventDispatcher.TriggerEvent(Events.SanctuaryEvent.QuerySanctuaryInfo);
                        });
                }
                else         // CD倒计时
                {
                    var span    = new TimeSpan(nextTimeSec * TimeSpan.TicksPerSecond);
                    var midTime = MogoTime.Instance.GetCurrentDateTime() + span;
                    ChallengeUIViewManager.Instance.SetChallengeTextColor((int)ChallengeGridID.Sanctuary, SystemUIColorManager.RED);
                    ChallengeUIViewManager.Instance.SetChallengeText((int)ChallengeGridID.Sanctuary, midTime.
                                                                     ToString(string.Format("{0}HH{1}mm{2}{3}",
                                                                                            LanguageData.GetContent(7130),
                                                                                            LanguageData.GetContent(7101),
                                                                                            LanguageData.GetContent(7102),
                                                                                            LanguageData.GetContent(7131))));
                    ChallengeUIViewManager.Instance.ShowEnterTipFX((int)ChallengeGridID.Sanctuary, false);
                    ChallengeUIGridMessage data3 = new ChallengeUIGridMessage();
                    data3.challengeID = ChallengeGridID.Sanctuary;
                    data3.state       = ChallengeUIGridMessage.ChallengeState.LimitFinished;
                    EventDispatcher.TriggerEvent <ChallengeUIGridMessage>(Events.ChallengeUIEvent.ReceiveChallengeUIGridMessage, data3);
                }
            }
            else         // 未解锁
            {
                string SanctuaryNoOpen = LanguageData.GetContent(311);
                ChallengeUIViewManager.Instance.SetGray((int)ChallengeGridID.Sanctuary, true);
                ChallengeUIViewManager.Instance.SetChallengeText((int)ChallengeGridID.Sanctuary, SanctuaryNoOpen);
                ChallengeUIViewManager.Instance.SetChallengeTextColor((int)ChallengeGridID.Sanctuary, SystemUIColorManager.RED);
                ChallengeUIGridMessage data4 = new ChallengeUIGridMessage();
                data4.challengeID = ChallengeGridID.Sanctuary;
                data4.state       = ChallengeUIGridMessage.ChallengeState.Lock;
                EventDispatcher.TriggerEvent <ChallengeUIGridMessage>(Events.ChallengeUIEvent.ReceiveChallengeUIGridMessage, data4);
            }
        }
        break;

        case ChallengeGridID.DragonMatch:
        {
        }
        break;

        case ChallengeGridID.OgreMustDie:
        {
            if (MogoWorld.thePlayer.level >= SystemRequestLevel.OGREMUSTDIE)
            {
                if (ChallengeUIViewManager.Instance != null)
                {
                    //
                    ChallengeUIViewManager.Instance.SetGray((int)ChallengeGridID.OgreMustDie, false);
                }
            }
            else
            {
                if (ChallengeUIViewManager.Instance != null)
                {
                    ChallengeUIViewManager.Instance.SetGray((int)ChallengeGridID.OgreMustDie, true);
                    ChallengeUIViewManager.Instance.SetChallengeTextColor((int)ChallengeGridID.OgreMustDie, SystemUIColorManager.RED);
                    ChallengeUIViewManager.Instance.SetChallengeText((int)ChallengeGridID.OgreMustDie, string.Format("{0}级解锁", SystemRequestLevel.OGREMUSTDIE));
                }
            }
        }
        break;

        case ChallengeGridID.OccupyTower:
        {
            if (MogoWorld.thePlayer.level >= SystemRequestLevel.OCCPUYTOWER)
            {
                if (ChallengeUIViewManager.Instance != null)
                {
                    //
                    ChallengeUIViewManager.Instance.SetGray((int)ChallengeGridID.OccupyTower, false);
                }
            }
            else
            {
                if (ChallengeUIViewManager.Instance != null)
                {
                    ChallengeUIViewManager.Instance.SetGray((int)ChallengeGridID.OccupyTower, true);
                    ChallengeUIViewManager.Instance.SetChallengeTextColor((int)ChallengeGridID.OccupyTower, SystemUIColorManager.RED);
                    ChallengeUIViewManager.Instance.SetChallengeText((int)ChallengeGridID.OccupyTower, string.Format("{0}级解锁", SystemRequestLevel.OCCPUYTOWER));
                }
            }
        }
        break;

        default:
            break;
        }
    }
예제 #9
0
    protected void SetChallengeState()
    {
        ChallengeUIGridMessage data = new ChallengeUIGridMessage();

        data.challengeID = ChallengeGridID.OccupyTower;
        if (theOwner.level < SystemRequestLevel.OCCPUYTOWER)
        {
            data.state = ChallengeUIGridMessage.ChallengeState.Lock;
        }
        else
        {
            if (OccupyTowerOpen)
                data.state = ChallengeUIGridMessage.ChallengeState.LimitStarted;
            else
                data.state = ChallengeUIGridMessage.ChallengeState.LimitFinished;
        }

        EventDispatcher.TriggerEvent<ChallengeUIGridMessage>(Events.ChallengeUIEvent.ReceiveChallengeUIGridMessage, data);
    }