public void SpawnRxjhObject(RxjhObject obj, MapInstance instance) { var creature = obj as Creature; if (creature != null) { lock (instance.CreaturesLock) { if (obj is Npc) { instance.AddNpc((Npc)obj); } else if (obj is Player) { instance.Players.Add((Player)obj); } else if (obj is Item) { instance.Items.Add((Item)obj); } } creature.Instance = instance; } }
public void DespawnRxjhObject(RxjhObject obj) { var creature = obj as Creature; if (creature != null) { lock (creature.Instance.CreaturesLock) { if (creature is Npc) { creature.Instance.Npcs.Remove((Npc)obj); creature.VisiblePlayers.Each(player => { player.VisibleNpcs.Remove((Npc)obj); PlayerLogic.OutOfVision(player, creature); }); } else if (creature is Player) { creature.Instance.Players.Remove((Player)obj); creature.VisiblePlayers.Each(player => { player.VisiblePlayers.Remove((Player)obj); PlayerLogic.OutOfVision(player, creature); }); } else if (creature is Item) { creature.Instance.Items.Remove((Item)obj); creature.VisiblePlayers.Each(player => { player.VisibleItems.Remove((Item)obj); PlayerLogic.OutOfVision(player, creature); }); } } if (!(creature is Player)) { creature.Release(); } } }
public virtual void Release() { Parent = null; }
public void PlayerStartDialog(Player player, RxjhObject o) { /*if (o is Npc) * SetController(player, new DialogController(player, (Npc)o));*/ }