public void StartGame() { float timer = 0; while (m_eventQueue.Count > 0) { EventItem item = m_eventQueue.Peek(); if (item.timer < timer) { //UtilLog.Log(ReplayTimer.FormatTimer(timer) + " "); FireEvent(item); m_eventQueue.Dequeue(); } timer += 1; } }
protected void FireEvent(EventItem item) { switch (item.type) { case EVENT_CommandSkill: OnCommandSkillEvent(item.eventArgs as ActiveSkillEventArgs); break; case EVENT_PassiveSkill: OnPassiveSkillEvent(item.eventArgs as ActiveSkillEventArgs); break; case EVENT_ActiveSkill: OnActiveSkillEvent(item.eventArgs as ActiveSkillEventArgs); break; case EVENT_NormalAttack: OnNormalAttacklEventt(item.eventArgs as ActiveSkillEventArgs); break; case EVENT_Effect_DamageCure: OnEffect_DamageCureEvent(item.eventArgs as Effect_DamageCureEventArgs); break; case EVENT_Effect_BuffAuraDot: OnEffect_BUFFAURADOTEvent(item.eventArgs as Effect_BuffAuraDotEventArgs); break; case EVENT_Effect_BuffAuraDotValue: OnEffect_BUFFAURADOTValueEvent(item.eventArgs as Effect_BuffAuraDotValueEventArgs); break; case EVENT_Effect_State: OnEffect_STATEEvent(item.eventArgs as Effect_STATEEventArgs); break; case EVENT_EnterRound: OnEnterRound(item.eventArgs as RoundEventArgs); break; case EVENT_GameOver: OnGameOver(item.eventArgs as RoundEventArgs); break; } }
public void DispatchEvent() { float passedTime = Time.time - m_baseTimer; //get delta time if (m_eventQueue.Count > 0) { EventItem item = m_eventQueue.Peek(); //UtilLog.Log("CheckTimer, cur:"+ passedTime + " event:"+item.timer); if (item.timer < passedTime) { //UtilLog.Log(ReplayTimer.FormatTimer(passedTime) + " "); FireEvent(item); m_eventQueue.Dequeue(); if (m_eventQueue.Count == 0) { FireEvent(new EventItem(0, EVENT_GameOver, new RoundEventArgs("GameOver"))); } } } }