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 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 PlayerStartDialog(Player player, RxjhObject o) { /*if (o is Npc) SetController(player, new DialogController(player, (Npc)o));*/ }