コード例 #1
0
ファイル: World.cs プロジェクト: TerenceWallace/hurricanejs
 private void timelapsed(object sender, GameTimerEventArgs e)
 {
     switch (e.timeInterval)
     {
         case TimeInterval.Minute:
             DateTime start = DateTime.Now;
             GameServer.Instance.Send(this.gameId, Guid.Empty, "Hour Elapsed");
             Mobile[] mobiles = Mobiles.ToArray();
             foreach (Mobile m in mobiles)
             {
                 if (Game.Random.Next(1) > 0) break;
                 int x = (int)(m.Position.X + (Game.Random.Next(2) - 1));
                 int y = (int)(m.Position.Y + (Game.Random.Next(2) - 1));
                 if (x > 99) x = 99;
                 if (y > 99) y = 99;
                 if (x < 0) x = 0;
                 if (y < 0) y = 0;
                 Position newPosition = new Position(x, y, 0);
                 m.Move(newPosition);
             }
             Console.WriteLine((DateTime.Now - start).TotalMilliseconds);
             break;
         case TimeInterval.Day:
             GameServer.Instance.Send(this.gameId, Guid.Empty, "Day Elapsed");
             break;
     }
 }
コード例 #2
0
ファイル: Timer.cs プロジェクト: TerenceWallace/hurricanejs
        /// <summary>
        /// Checks the time interval.
        /// 
        /// This takes a the difference in times and tries to make a determination as to which time interval has
        /// passed.  
        /// </summary>
        private void checkTimeInterval()
        {
            if (previousWorldTime.Minute != worldTime.Minute)
            {
                GameTimerEventArgs e = new GameTimerEventArgs(TimeInterval.Minute);

                onTimeLapsed(e);
            }
            if (previousWorldTime.Hour != worldTime.Hour)
            {
                GameTimerEventArgs e = new GameTimerEventArgs(TimeInterval.Hour);

                onTimeLapsed(e);
            }
            if (previousWorldTime.Day != worldTime.Day)
            {
                GameTimerEventArgs e = new GameTimerEventArgs(TimeInterval.Day);

                onTimeLapsed(e);

                // Check if WEEK
                int dateDiff = worldTime.Day - referencePoint.Day;
                if (dateDiff % 7 == 0)
                {
                    e.timeInterval = TimeInterval.Week;
                    onTimeLapsed(e);
                }
            }
            if (previousWorldTime.Year != worldTime.Year)
            {
                GameTimerEventArgs e = new GameTimerEventArgs(TimeInterval.Year);

                onTimeLapsed(e);
            }
        }
コード例 #3
0
ファイル: Timer.cs プロジェクト: TerenceWallace/hurricanejs
 /// <summary>
 /// Triggers the timelapsed event.
 /// </summary>
 /// <param name="e">The <see cref="ZiMB.Library.Game.ZiMBGameClasses.GameTimerEventArgs"/> instance containing the event data.</param>
 protected virtual void onTimeLapsed(GameTimerEventArgs e)
 {
     if (timeLapsed != null)
     {
         timeLapsed(this, e);
     }
 }