Exemplo n.º 1
0
 protected virtual void DeserializeChildren(PersistanceReader ip)
 {
     while (ip.HasChild)
     {
         object obj = (object)ip.GetChild();
         if (obj is FootstepData)
         {
             this.m_Footsteps = obj as FootstepData;
         }
         else if (obj is SoundData)
         {
             this.m_Sound = obj as SoundData;
         }
         else if (obj is MusicData)
         {
             this.m_Music = obj as MusicData;
         }
         else if (obj is SpeechHues)
         {
             this.m_SpeechHues = obj as SpeechHues;
         }
         else if (obj is NotorietyHues)
         {
             this.m_NotorietyHues = obj as NotorietyHues;
         }
         else if (obj is Options)
         {
             this.m_Options = obj as Options;
         }
         else if (obj is ScreenLayout)
         {
             this.m_Layout = obj as ScreenLayout;
         }
         else if (obj is ScavengerAgent)
         {
             this.m_Scavenger = obj as ScavengerAgent;
         }
         else if (obj is RenderSettings)
         {
             this._renderSettings = obj as RenderSettings;
         }
     }
     if (this.m_Scavenger == null)
     {
         this.m_Scavenger = new ScavengerAgent();
     }
     if (this._renderSettings != null)
     {
         return;
     }
     this._renderSettings = new RenderSettings();
 }
Exemplo n.º 2
0
        public override void OnPositionChanging(Point3D newPos)
        {
            List <Mobile> mlist = new List <Mobile>(World.Mobiles.Values);

            for (int i = 0; i < mlist.Count; i++)
            {
                Mobile m = mlist[i];
                if (m != this)
                {
                    if (!Utility.InRange(m.Position, newPos, VisRange))
                    {
                        m.Remove();
                    }
                    else
                    {
                        Targeting.CheckLastTargetRange(m);
                    }
                }
            }

            mlist = null;


            List <Item>    ilist = new List <Item>(World.Items.Values);
            ScavengerAgent s     = ScavengerAgent.Instance;

            for (int i = 0; i < ilist.Count; i++)
            {
                Item item = ilist[i];
                if (item.Deleted || item.Container != null)
                {
                    continue;
                }

                int dist = Utility.Distance(item.GetWorldPosition(), newPos);
                if (item != DragDropManager.Holding && (dist > MultiVisRange || (!item.IsMulti && dist > VisRange)))
                {
                    item.Remove();
                }
                else if (!IsGhost && Visible && dist <= 2 && s.Enabled && item.Movable)
                {
                    s.Scavenge(item);
                }
            }

            ilist = null;

            base.OnPositionChanging(newPos);
        }
Exemplo n.º 3
0
 private Preferences(bool isLoading)
 {
     if (isLoading)
     {
         return;
     }
     this.m_Footsteps     = new FootstepData();
     this.m_Sound         = new SoundData();
     this.m_Music         = new MusicData();
     this.m_SpeechHues    = new SpeechHues();
     this.m_NotorietyHues = new NotorietyHues();
     this.m_Options       = new Options();
     this.m_Scavenger     = new ScavengerAgent();
     this.m_Layout        = new ScreenLayout();
     this._renderSettings = new RenderSettings();
 }
Exemplo n.º 4
0
        public override void OnPositionChanging(Point3D oldPos)
        {
            if (!IsGhost)
            {
                StealthSteps.OnMove();
            }

            AutoOpenDoors(false);

            List <Mobile> mlist = new List <Mobile>(World.Mobiles.Values);

            for (int i = 0; i < mlist.Count; i++)
            {
                Mobile m = mlist[i];
                if (m != this)
                {
                    if (!Utility.InRange(m.Position, Position, VisRange))
                    {
                        m.Remove();
                    }
                    else
                    {
                        Targeting.CheckLastTargetRange(m);
                    }
                }
            }

            mlist = null;


            List <Item>    ilist = new List <Item>(World.Items.Values);
            ScavengerAgent s     = ScavengerAgent.Instance;

            for (int i = 0; i < ilist.Count; i++)
            {
                Item item = ilist[i];
                if (item.Deleted || item.Container != null)
                {
                    continue;
                }

                int dist = Utility.Distance(item.GetWorldPosition(), Position);
                if (item != DragDropManager.Holding && (dist > MultiVisRange || (!item.IsMulti && dist > VisRange)))
                {
                    item.Remove();
                }
                else if (!IsGhost && Visible && dist <= 2 && s.Enabled && item.Movable)
                {
                    s.Scavenge(item);
                }
            }

            ilist = null;

            if (Engine.MainWindow != null && Engine.MainWindow.MapWindow != null)
            {
                Engine.MainWindow.SafeAction(f => f.MapWindow.PlayerMoved());
            }

            base.OnPositionChanging(oldPos);
        }
        protected override bool OnTarget(Item item)
        {
            ScavengerAgent scavenger = Preferences.Current.Scavenger;
            ItemRef        itemRef1  = scavenger[item];

            if (itemRef1 == null)
            {
                foreach (ItemRef itemRef2 in scavenger.Items)
                {
                    if (itemRef2.Serial == 0 && itemRef2.ItemID == item.ID)
                    {
                        itemRef1 = itemRef2;
                        break;
                    }
                }
            }
            if (this.m_IsAdd)
            {
                if (itemRef1 == null)
                {
                    if (this.m_ByType)
                    {
                        scavenger.Items.Add(new ItemRef(item.ID));
                        Engine.AddTextMessage("Item type added to the scavenger list.");
                    }
                    else
                    {
                        scavenger.Items.Add(new ItemRef(item));
                        Engine.AddTextMessage("Item instance added to the scavenger list.");
                    }
                }
                else if (itemRef1.Serial == 0)
                {
                    Engine.AddTextMessage("Item type is already in the scavenger list.");
                }
                else if (this.m_ByType)
                {
                    scavenger.Items.Remove(itemRef1);
                    scavenger.Items.Add(new ItemRef(item.ID));
                    Engine.AddTextMessage("Scavenger entry changed to by-type.");
                }
                else
                {
                    Engine.AddTextMessage("Item instance is already in the scavenger list.");
                }
            }
            else if (itemRef1 != null)
            {
                scavenger.Items.Remove(itemRef1);
                if (itemRef1.Serial == 0)
                {
                    Engine.AddTextMessage("Item type removed from the scavenger list.");
                }
                else
                {
                    Engine.AddTextMessage("Item instance removed from the scavenger list.");
                }
            }
            else
            {
                Engine.AddTextMessage("That's not even in the scavenger list.");
            }
            return(true);
        }