Пример #1
0
        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;
            }
        }
Пример #2
0
        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();
                }
            }
        }
Пример #3
0
 public virtual void Release()
 {
     Parent = null;
 }
Пример #4
0
 public void PlayerStartDialog(Player player, RxjhObject o)
 {
     /*if (o is Npc)
      *  SetController(player, new DialogController(player, (Npc)o));*/
 }
Пример #5
0
 public virtual void Release()
 {
     Parent = null;
 }