Esempio n. 1
0
 public override void Use(Command command, Player player)
 {
     string tail = string.Join("", command.Tail);
     Item targetItem = player.Find(tail) ?? player.Room.Find(tail);
     if (targetItem != null)
     {
         if (player.Items.Contains(this))
         {
             player.Scream(player, "", "usa uma chave em " + tail);
             if (targetItem.UseOn(this, player) && Consumable)
             {
                 player.Items.Remove(this);
             }
         }
         else
         {
             player.Talk(global::Server.Instance.ServerPlayer, string.Format("Do que você está falando? Não há nada chamado {0}", Name));
         }
     }
     else
     {
         player.Talk(global::Server.Instance.ServerPlayer, string.Format("Do que você está falando? Não há nada chamado {0}", tail));
     }
 }
Esempio n. 2
0
 public override void Take(Player player)
 {
     if (player.Items.Contains(this))
     {
         player.Talk(global::Server.Instance.ServerPlayer, string.Format("Você já possui {0}", Name));
     }
     else if (player.Room.Items.Contains(this))
     {
         player.Room.Items.Remove(this);
         player.Items.Add(this);
         player.Scream(player, Name, "pegou");
     }
     else
     {
         global::Server.Instance.LogWindow.Log(string.Format("{0} tentou pegar um item {1} que não está nem no inventário nem na sala", player.Name, Name));
     }
 }
Esempio n. 3
0
 public void Send(string destination, string action, string message, Player source, bool echo = true)
 {
     Player destPlayer = GetPlayerNode(destination);
     if (destPlayer != null)
     {
         Send(source, destPlayer, action, message, echo);
     }
     else
     {
         source.Talk(ServerPlayer, "Não há ninguém chamado '" + destination + "' aqui");
     }
 }
Esempio n. 4
0
        public virtual void Inventory(Player author)
        {
            Dictionary<string, int> inventory = new Dictionary<string, int>();
            foreach (Item item in author.Items)
            {
                if (inventory.ContainsKey(item.Name))
                {
                    inventory[item.Name] += 1;
                }
                else
                {
                    inventory.Add(item.Name, 1);
                }
            }

            StringBuilder result = new StringBuilder();
            result.AppendLine("Lista de itens:");
            foreach (string key in inventory.Keys)
            {
                result.AppendLine(string.Format("{0}\tx{1}", key, inventory[key]));
            }

            author.Talk(global::Server.Instance.ServerPlayer, result.ToString());
        }
Esempio n. 5
0
 public virtual void Go(string target, Player player)
 {
     player.Talk(global::Server.Instance.ServerPlayer, string.Format("\"{0}\" não é um lugar onde você possa ir", Name));
 }
Esempio n. 6
0
 public virtual void Describe(Player player)
 {
     player.Talk(global::Server.Instance.ServerPlayer, Description);
 }
Esempio n. 7
0
 public virtual bool UseOn(Item source, Player player)
 {
     player.Talk(global::Server.Instance.ServerPlayer, string.Format("{0} não parece interagir com {1} de nenhuma maneira interessante", source.Name, Name));
     return false;
 }
Esempio n. 8
0
 public virtual void Use(Command command, Player player)
 {
     player.Talk(global::Server.Instance.ServerPlayer, string.Format("Como assim? Não me parece o momento apropriado para usar {0}", Name));
 }
Esempio n. 9
0
 public virtual void Talk(Player author, string message, string action = "fala")
 {
     author.Talk(global::Server.Instance.ServerPlayer, string.Format("Você fala \"{0}\" para {1}, mas a falta de consciência de {1} parece ser um problema para a compreensão de sua mensagem", message, Name));
 }
Esempio n. 10
0
 public virtual void Take(Player player)
 {
     player.Talk(global::Server.Instance.ServerPlayer, string.Format("Não parece possível carregar {0} confortavelmente", Name));
 }
Esempio n. 11
0
 public virtual void Scream(Player author, string message, string action = "grita")
 {
     author.Talk(global::Server.Instance.ServerPlayer, string.Format("Após berrar \"{0}\" vigorosamente você se sente mais calmo, mas {1} não parece se importar", message, Name));
 }
Esempio n. 12
0
 public virtual void Parse(Command command, Player player)
 {
     string message = String.Join(" ", command.Tail.ToArray());
     switch (command.Verb)
     {
         case "examinar":
             Describe(player);
             break;
         case "falar":
             Talk(player, message);
             break;
         case "gritar":
             Scream(player, message);
             break;
         case "inventario":
             Inventory(player);
             break;
         case "usar":
             Use(command, player);
             break;
         case "pegar":
             Take(player);
             break;
         case "largar":
             Leave(player);
             break;
         default:
             player.Talk(global::Server.Instance.ServerPlayer, string.Format("Você não pode {0} {1}", command, Name));
             break;
     }
 }
Esempio n. 13
0
 public virtual void Leave(Player player)
 {
     player.Talk(global::Server.Instance.ServerPlayer, string.Format("Você tenta, mas {0} não quer deixar suas mãos", Name));
 }
Esempio n. 14
0
 public override void Go(string target, Player player)
 {
     target = target.ToLower();
     if (neighbors.ContainsKey(target))
     {
         if (!doors.ContainsKey(target) || !doors[target].Locked)
         {
             player.Scream(player, "", "deixa a sala pela saída " + target);
             player.Room = neighbors[target];
             player.Scream(player, "", "entra na sala");
             player.Room.Describe(player);
         }
         else
         {
             player.Talk(global::Server.Instance.ServerPlayer, doors[target].Description + " impede sua passagem");
         }
     }
     else
     {
         player.Talk(global::Server.Instance.ServerPlayer, "Não há saída na direção " + target);
     }
 }