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(); }
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); }
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(); }
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); }