Example #1
0
        public void Update(TimeSpan elapsedTime)
        {
            if (!Has <Aisling>())
            {
                return;
            }

            if (Has <Monster>())
            {
                UpdateMonsters(elapsedTime);
            }

            if (Has <Mundane>())
            {
                UpdateMundanes(elapsedTime);
            }

            if (Has <Item>() || Has <Money>())
            {
                UpdateItems(elapsedTime);
            }

            WarpTimer.Update(elapsedTime);
            if (WarpTimer.Elapsed)
            {
                UpdateWarps();
                WarpTimer.Reset();
            }
        }
        public override void Update(TimeSpan elapsedTime)
        {
            if (Client != null)
            {
                if (Client.Aisling.CurrentHp <= 0)
                {
                    Client.Aisling.CurrentHp = 0;

                    GrimTimer.Update(elapsedTime);

                    if (GrimTimer.Elapsed)
                    {
                        OnDeath(Client, elapsedTime);
                        GrimTimer.Reset();
                    }
                }
                else
                {
                    if (Client.Aisling.Dead)
                    {
                        Revive();
                    }
                }
            }
        }
        public override void Update(TimeSpan elapsedTime)
        {
            timer.Update(elapsedTime);

            if (timer.Elapsed)
            {
                timer.Reset();

                var format20 = new ServerFormat20 {
                    Shade = shade
                };

                lock (Server.Clients)
                {
                    foreach (var client in Server.Clients)
                    {
                        if (client != null)
                        {
                            client.Send(format20);
                        }
                    }
                }

                shade += 1;
                shade %= 18;
            }
        }
Example #4
0
        public void UpdateMonsterObjects(TimeSpan elapsedTime, IEnumerable <Monster> objects)
        {
            Reaper.Update(elapsedTime);

            var enumerable = objects as Monster[] ?? objects.ToArray();

            if (Reaper.Elapsed)
            {
                Reaper.Reset();

                foreach (var obj in enumerable)
                {
                    if (obj != null && obj.Map != null && obj.Scripts != null)
                    {
                        if (obj.CurrentHp <= 0)
                        {
                            if (obj.Target != null)
                            {
                                foreach (var script in obj.Scripts.Values)
                                {
                                    script.OnDeath(obj.Target.Client);
                                }
                            }
                        }
                    }
                }
            }


            foreach (var obj in enumerable)
            {
                if (obj != null && obj.Map != null && obj.Scripts != null)
                {
                    if (obj.CurrentHp <= 0)
                    {
                        if (obj.Target != null)
                        {
                            if (!obj.Skulled)
                            {
                                foreach (var script in obj.Scripts.Values)
                                {
                                    script.OnSkulled(obj.Target.Client);
                                }
                                obj.Skulled = true;
                            }
                        }
                    }

                    foreach (var script in obj.Scripts.Values)
                    {
                        script.Update(elapsedTime);
                    }

                    obj.UpdateBuffs(elapsedTime);
                    obj.UpdateDebuffs(elapsedTime);
                    obj.LastUpdated = DateTime.UtcNow;
                }
            }
        }
        public override void Update(TimeSpan elapsedTime)
        {
            _timer.Update(elapsedTime);

            if (_timer.Elapsed)
            {
                var templates = ServerContext.GlobalMonsterTemplateCache.Values;
                if (templates.Count == 0)
                {
                    return;
                }

                foreach (var map in ServerContext.GlobalMapCache.Values)
                {
                    if (map == null || map.Rows == 0 || map.Cols == 0)
                    {
                        return;
                    }

                    var temps = templates.Where(i => i.AreaID == map.ID);
                    foreach (var template in temps)
                    {
                        if (template != null)
                        {
                            if (template.Timer == null)
                            {
                                template.Timer = new GameServerTimer(TimeSpan.FromSeconds(template.SpawnRate));
                            }

                            try
                            {
                                template.Timer.Update(DateTime.UtcNow - template.LastUpdate);
                            }
                            catch
                            {
                                template.LastUpdate = DateTime.UtcNow;
                            }

                            if (template.Timer.Elapsed)
                            {
                                if (template.SpawnOnlyOnActiveMaps && !map.Has <Aisling>())
                                {
                                    continue;
                                }

                                SpawnOn(template, map);
                                template.LastUpdate = DateTime.UtcNow;
                                template.Timer.Reset();
                            }
                        }
                    }
                }

                _timer.Reset();
            }
        }
Example #6
0
        public override void Update(TimeSpan elapsedTime)
        {
            Timer.Update(elapsedTime);

            if (Timer.Elapsed)
            {
                ServerContext.SaveCommunityAssets();
                Timer.Reset();
            }
        }
Example #7
0
        public override void Update(TimeSpan elapsedTime)
        {
            Timer.Update(elapsedTime);

            if (Timer.Elapsed)
            {
                UpdateObjects();
                Timer.Reset();
            }
        }
Example #8
0
        public void Update(TimeSpan elapsedTime)
        {
            _updateTimer.Update(elapsedTime);

            if (!_updateTimer.Elapsed)
            {
                return;
            }

            UpdateAreaObjects(elapsedTime);
            _updateTimer.Reset();
        }
        public override void Update(TimeSpan elapsedTime)
        {
            _updateEventScheduler.Update(elapsedTime);
            _updateMediatorScheduler.Update(elapsedTime);

            if (_updateMediatorScheduler.Elapsed)
            {
                InvokeMediators();

                _updateMediatorScheduler.Reset();
            }
        }
        public override void Update(TimeSpan elapsedTime)
        {
            if (Updating)
            {
                _timer.Update(elapsedTime);

                if (_timer.Elapsed)
                {
                    _timer.Reset();
                    Lorule.Update(ManageSpawns);
                }
            }
        }
        public override void Update(TimeSpan elapsedTime)
        {
            if (Client != null && Client.Aisling.LoggedIn)
                if (Client.Aisling.CurrentHp <= 0)
                {
                    Client.Aisling.CurrentHp = 0;

                    GrimTimer.Update(elapsedTime);

                    if (GrimTimer.Elapsed)
                    {
                        OnDeath(Client, elapsedTime);
                        GrimTimer.Reset();
                    }
                }
        }
Example #12
0
        public void UpdateMonsterObjects(TimeSpan elapsedTime, IEnumerable <Monster> objects)
        {
            _Reaper.Update(elapsedTime);

            if (_Reaper.Elapsed)
            {
                _Reaper.Reset();

                foreach (var obj in objects)
                {
                    if (obj != null && obj.Map != null && obj.Script != null)
                    {
                        if (obj.CurrentHp <= 0)
                        {
                            if (obj.Target != null)
                            {
                                obj.Script?.OnDeath(obj.Target.Client);
                            }
                        }
                    }
                }
            }


            foreach (var obj in objects)
            {
                if (obj != null && obj.Map != null && obj.Script != null)
                {
                    if (obj.CurrentHp <= 0)
                    {
                        if (obj.Target != null)
                        {
                            if (!obj.Skulled)
                            {
                                obj.Script?.OnSkulled(obj.Target.Client);
                                obj.Skulled = true;
                            }
                        }
                    }

                    obj.Script.Update(elapsedTime);
                    obj.UpdateBuffs(elapsedTime);
                    obj.UpdateDebuffs(elapsedTime);
                    obj.LastUpdated = DateTime.UtcNow;
                }
            }
        }
        public void Update(TimeSpan elapsedTime)
        {
            UpdateTimer.Update(elapsedTime);

            if (UpdateTimer.Elapsed)
            {
                ObjectUpdate(elapsedTime);
                UpdateTimer.Reset();
            }

            WarpTimer.Update(elapsedTime);

            if (WarpTimer.Elapsed)
            {
                UpdateWarps();
                WarpTimer.Reset();
            }
        }
        public override void Update(TimeSpan elapsedTime)
        {
            _timer.Update(elapsedTime);

            if (!_timer.Elapsed)
            {
                return;
            }

            _timer.Reset();

            var format20 = new ServerFormat20 {
                Shade = _shade
            };

            if (Server.Clients == null)
            {
                return;
            }

            foreach (var client in Server.Clients.Where(client => client != null))
            {
                if (client.Aisling != null && !client.Aisling.LoggedIn)
                {
                    continue;
                }

                try
                {
                    client.Send(
                        client.Aisling?.Map != null && client.Aisling.Map.Flags.HasFlag(MapFlags.HasDayNight)
                            ? format20
                            : new ServerFormat20());
                }
                catch
                {
                    // ignored
                }
            }

            _shade += 1;
            _shade %= 18;
        }
Example #15
0
        public void Update(TimeSpan elapsedTime)
        {
            UpdateTimer.Update(elapsedTime);

            if (UpdateTimer.Elapsed)
            {
                ObjectUpdate(elapsedTime);
                UpdateTimer.Reset();
            }

            if (ServerContext.Config.ShowWarpAnimation)
            {
                WarpTimer.Update(elapsedTime);

                if (WarpTimer.Elapsed)
                {
                    UpdateWarps();
                    WarpTimer.Reset();
                }
            }
        }
Example #16
0
        public override void Update(TimeSpan elapsedTime)
        {
            _cacheEventScheduler.Update(elapsedTime);
            _updateEventScheduler.Update(elapsedTime);
            _updateMediatorScheduler.Update(elapsedTime);

            if (_cacheEventScheduler.Elapsed)
            {
                if (ServerContext.Config.CacheObjects)
                {
                    Cache();
                }

                _cacheEventScheduler.Reset();
            }

            if (_updateMediatorScheduler.Elapsed)
            {
                InvokeMediators();

                _updateMediatorScheduler.Reset();
            }
        }