示例#1
0
        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;
            }
        }
示例#2
0
        public static TimerEvent Find(TimerEventName name)
        {
            TimerManager timerMan = TimerManager.GetInstance();

            return((TimerEvent)timerMan.BaseFind((DLink) new TimerEvent {
                name = name
            }));
        }
示例#3
0
 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();
        }
示例#5
0
        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);
        }
示例#6
0
        public static float GetCurrentTime()
        {
            TimerManager timerMan = TimerManager.GetInstance();

            return(timerMan.currentTime);
        }
示例#7
0
        public static void Dump()
        {
            TimerManager timerMan = TimerManager.GetInstance();

            timerMan.BaseDump();
        }