public static void Update(float currentTime) { TimerManager timerMan = TimerManager.GetInstance(); timerMan.currentTime = currentTime; DLink curr = timerMan.pActive; TimerEvent te = (TimerEvent)curr; while (curr != null) { if (timerMan.currentTime >= te.triggerTime) { //Debug.WriteLine("Processing TimerEvent {0} @ {1}", te.name, currentTime); te.Process(currentTime); timerMan.BaseRemove(te); if (te.name != TimerEventName.RemoveGameObject && te.name != TimerEventName.SetGameState && te.name != TimerEventName.InitiateTimerEvents && te.name != TimerEventName.GameStart && te.name != TimerEventName.RemoveUFO && te.name != TimerEventName.StopUFOSound) { if (te.name == TimerEventName.UFOSpawn) { float random = UFOManager.GetRandom().Next(5, 10); Debug.WriteLine("UFO Spawn in {0} secs", random); te.deltaTime = random; } Add(te.name, te.triggerTime + te.deltaTime, te.deltaTime, te.command); } } curr = curr.pDNext; } }
public static TimerEvent Find(TimerEventName name) { TimerManager timerMan = TimerManager.GetInstance(); return((TimerEvent)timerMan.BaseFind((DLink) new TimerEvent { name = name })); }
public static void Remove(DLink node) { if (node != null) { TimerManager timerMan = TimerManager.GetInstance(); timerMan.BaseRemove(node); } }
public static void Dump() { TimerManager pMan = TimerManager.GetInstance(); Debug.Assert(pMan != null); pMan.BaseDump(); }
public static TimerEvent Add(TimerEventName name, float triggerTime, float deltaTime, Command command) { TimerManager timerMan = TimerManager.GetInstance(); TimerEvent timerEvent = (TimerEvent)timerMan.BaseAdd(); Debug.Assert(timerEvent != null); timerEvent.Set(name, triggerTime, deltaTime, command); timerMan.BaseInsertSorted(timerEvent); return(timerEvent); }
public static float GetCurrentTime() { TimerManager timerMan = TimerManager.GetInstance(); return(timerMan.currentTime); }
public static void Dump() { TimerManager timerMan = TimerManager.GetInstance(); timerMan.BaseDump(); }