Beispiel #1
0
        // addition pet logic can go here, such as TP back to player.
        public override void UpdateSpawns(TimeSpan elapsedTime)
        {
            KeepSpawnsNearSummoner();

            void KeepSpawnsNearSummoner()
            {
                lock (Spawns)
                {
                    foreach (var(_, spawn) in Spawns.ToArray())
                    {
                        var aisling = spawn.Summoner;

                        if (aisling == null)
                        {
                            Despawn();
                        }

                        if (aisling == null || aisling.WithinRangeOf(spawn, 9, true))
                        {
                            continue;
                        }

                        var sprite = GetObject(null, i => i.Serial == spawn.Serial, Get.All);

                        //warp to our summoner.
                        if (sprite != null)
                        {
                            sprite.X            = aisling.X;
                            sprite.Y            = aisling.Y;
                            sprite.CurrentMapId = aisling.CurrentMapId;
                            sprite.Direction    = aisling.Direction;
                            sprite.Update();
                        }
                    }
                }
            }
        }