コード例 #1
0
 public string usarObjeto(Player player, TipoObjeto objeto)
 {
     foreach (Inventario inventario in repositorio.inventarios)
     {
         if (inventario.idPlayer == player.idPlayer)
         {
             foreach (Objeto obj in inventario.objetos)
             {
                 if (obj.tipo == objeto && obj.usar)
                 {
                     if (obj.usou)
                     {
                         obj.usou = false;
                         return(obj.descricaoUsarN);
                     }
                     else
                     {
                         obj.usou = true;
                         return(obj.descricaoUsarS);
                     }
                 }
             }
         }
     }
     return("Você não pode usar esse objeto.");
 }
コード例 #2
0
ファイル: Utils.cs プロジェクト: TBertuzzi/Evolve
        private object VerificaDbNull(TipoObjeto tipoObjeto, object campo)
        {
            if (campo.Equals(DBNull.Value))
            {
                switch (tipoObjeto)
                {
                case TipoObjeto.Texto:
                    return(string.Empty);

                case TipoObjeto.Numerico:
                    return(0);

                case TipoObjeto.Data:
                    return(System.DateTime.MinValue);

                case TipoObjeto.Booleano:
                    return(false);

                default:
                    throw new ArgumentException("O tipo de dado não foi identificado");
                }
            }
            else
            {
                return(campo);
            }
        }
コード例 #3
0
    public string usarObjetoAlvo(Player player, TipoObjeto objeto, TipoObjeto alvo)
    {
        foreach (Sala sala in repositorio.salas)
        {
            if (sala.idSala == player.idSala && sala.objetos.Contains(alvo))
            {
                Objeto obj = (from item in repositorio.objetos
                              where item.tipo == alvo
                              select item).FirstOrDefault();

                if (obj.usar)
                {
                    if (obj.usou)
                    {
                        obj.usou = false;
                        return(obj.descricaoUsarN);
                    }
                    else
                    {
                        obj.usou = true;
                        return(obj.descricaoUsarS);
                    }
                }
            }
        }
        return("Você não pode usar esse objeto.");
    }
コード例 #4
0
ファイル: Estr_Movida.cs プロジェクト: protron/SokoVen
 internal Movida(TipoObjeto tipoOb, Direccion dir, Point posI, Point posF)
 {
     this.tipoObjeto = tipoOb;
     this.direccion = dir;
     this.posInicial = posI;
     this.posFinal = posF;
 }
コード例 #5
0
 public void AdicionarItem()
 {
     if (servidorUI.Item > 0)
     {
         TipoObjeto objeto = (TipoObjeto)servidorUI.Item;
         comandos.AdicionaObjetoSala(idSalaAtual.ToString(), objeto.ToString());
     }
 }
コード例 #6
0
 public static void Ordenar(TipoObjeto typeObject, ref IList collection, TipoOrden sortType,
                            string property)
 {
     if (typeObject == TipoObjeto.CentroCosto)
     {
         List <CentroCosto> list = (List <CentroCosto>)collection;
         GenericEntityAction <CentroCosto> .Sort(ref list, sortType, property);
     }
 }
コード例 #7
0
        public ObjetoEnvolvido(TipoObjeto tipoObjeto, string descricao)
        {
            if (string.IsNullOrWhiteSpace(descricao))
            {
                throw new DomainException();
            }

            TipoObjeto = tipoObjeto;
            Descricao  = descricao;
        }
コード例 #8
0
        public static string ObtenerMensajeError(Exception ex, ModuloLog modulo, TipoObjeto tipo)
        {
            string mensaje = string.Empty;

            if (ex is System.ArgumentNullException)
            {
                mensaje = string.Format("Error {0} \r\n Se obtuvo un argumento nulo.", ex.HResult);
            }
            if (ex is System.ArgumentOutOfRangeException)
            {
                mensaje = string.Format("Error {0} \r\n El índice estaba fuera del intervalo.", ex.HResult);
            }

            if (ex is NullReferenceException)
            {
                mensaje = string.Format("Error {0} \r\n No se pudo crear un objeto requerido.", ex.HResult);
            }

            if (ex is InvalidCastException)
            {
                mensaje = string.Format("Error {0} \r\n Imposible convertir los tipos de datos.", ex.HResult);
            }

            if (ex is System.InvalidOperationException)
            {
            }

            if (ex is System.IndexOutOfRangeException)
            {
            }

            if (ex is MissingReportSourceException)
            {
                mensaje = string.Format("Error {0} \r\n No se encontró el reporte.", ex.HResult);
            }

            if (ex is System.Data.SqlClient.SqlException)
            {
                mensaje = string.Format("Error {0} \r\n No se pudo completar una operación en la base de datos", ex.HResult);
            }

            if (ex is System.FormatException)
            {
                mensaje = string.Format("Error {0} \r\n El formato no cumple las especificaciones requeridas.", ex.HResult);
            }

            if (ex is Exception)
            {
            }
            GenericUtil.CreateLog(modulo, tipo, TipoLog.Error,
                                  string.Format(" Tipo error ==> {0} \r\n \r\n Mensaje de error ==> {1} \r\n \r\n Origen del error ==> {2}",
                                                ex.GetType().Name, ex.Message, ex.StackTrace));
            return(mensaje);
        }
コード例 #9
0
 public UserLog(ModuloLog logModule, TipoObjeto logSource, TipoLog logType, string description, string changes)
 {
     this._id          = Guid.NewGuid();
     this._description = description;
     this._logModule   = logModule;
     this._source      = logSource;
     this._type        = logType;
     this._date        = DateTime.Now;
     this.UserName     = AppInfo.CurrentUser.Nick;
     this._hostName    = AppInfo.HostName;
     this._changes     = changes;
 }
コード例 #10
0
ファイル: Linea.cs プロジェクト: fernandezunpaz/pcyp_vial
        public Linea(string linea)
        {
            int numeroHoja;

            String[] valores = linea.Split(',');

            Int32.TryParse(valores[0], out numeroHoja);
            this.numeroHoja = new NumeroHoja(numeroHoja);

            this.tipoObjeto = new TipoObjeto(valores[1]);
            Int32.TryParse(valores[2], out this.identificadorTramo);
            this.tipoCamino = valores[3];
            Int32.TryParse(valores[4], out this.longitud);
        }
コード例 #11
0
 public static void CreateLog(ModuloLog modulo, TipoObjeto origen, TipoLog tipo, string descripcion, string cambios = "")
 {
     try
     {
         UserLog        userLog = new UserLog(modulo, origen, tipo, descripcion, cambios);
         List <UserLog> list    = GetUserLog();
         list.Add(userLog);
         string fileName = Path.Combine(AppInfo.AppPath, @"..\activity.dasp");
         using (FileStream fs = new FileStream(fileName, FileMode.Create, FileAccess.Write))
         {
             BinaryFormatter formatter = new BinaryFormatter();
             formatter.Serialize(fs, list);
         }
     }
     catch (Exception)
     {
         throw;
     }
 }
コード例 #12
0
 public custUserTable(string sNomeTabela, string sDescricao, TipoObjeto tTipo)
 {
     if (sNomeTabela.Length > 19)
     {
         sIdTable = sNomeTabela.Substring(0, 19);
     }
     else
     {
         sIdTable = sNomeTabela;
     }
     if (sDescricao.Length > 30)
     {
         sDescription = sDescricao.Substring(0, 30);
     }
     else
     {
         sDescription = sDescricao;
     }
     sType = tTipo;
 }
コード例 #13
0
        public void LoadFromBytes(byte[] dados)
        {
            unsafe
            {
                fixed(byte *pSrc = dados)
                {
                    ChunkTags.FormatoChunkTags *formatoChunk = (ChunkTags.FormatoChunkTags *)pSrc;

                    this.objectType = (TipoObjeto)formatoChunk->objectType;
                    byte[] objectIdLocal = new byte[sizeof(UInt32)];
                    byte[] parentIdLocal = new byte[sizeof(UInt32)];

                    for (int i = 0; i < 3; i++)
                    {
                        objectIdLocal[i] = formatoChunk->objectId[i];
                        parentIdLocal[i] = formatoChunk->parentId[i];
                    }
                    this.objectId    = BitConverter.ToUInt32(objectIdLocal, 0);
                    this.parentId    = BitConverter.ToUInt32(parentIdLocal, 0);
                    this.depth       = formatoChunk->depth;
                    this.chunkLength = formatoChunk->chunkLength;
                }
            }
        }
コード例 #14
0
 public void setTipo(TipoObjeto tipo)
 {
     this.tipo = tipo;
 }
コード例 #15
0
 public Primitivo(TipoObjeto tipo, object valor) : base(tipo)
 {
     this.valor = valor;
 }
コード例 #16
0
        public static IList GenerateSourceFromListToIList(TipoObjeto typeObject)
        {
            IList list = null;

            return(list);
        }
コード例 #17
0
 public Objeto(TipoObjeto tipo)
 {
     this.tipo = tipo;
 }
コード例 #18
0
    public void falarChat(Player player, string texto)
    {
        Debug.Log("falarChat: " + texto);

        if (texto.Contains("Examinar"))
        { // Examinar [sala/objeto]
            string splitTexto = texto.Split(null)[1];

            Sala sala = (from item in repositorio.salas
                         where item.idSala == player.idSala && item.nome == splitTexto
                         select item).FirstOrDefault();

            if (sala != null)
            {
                servidor.notificaPlayer(player.idPlayer, GerarDescricaoSala(sala.descricao, player));
                return;
            }

            //Busca no inventario
            Objeto objeto = (from item in repositorio.inventarios
                             where item.idPlayer == player.idPlayer
                             select(from obj in item.objetos
                                    where obj.nome == splitTexto
                                    select obj).FirstOrDefault()).FirstOrDefault();

            if (objeto != null)
            {
                servidor.notificaPlayer(player.idPlayer, objeto.descricao);
                return;
            }
            else
            {
                //Busca na sala
                Objeto objTexto = buscarObjeto(splitTexto);

                if (objTexto != null)
                {
                    TipoObjeto tipoObjeto = (from item in repositorio.salas
                                             where item.idSala == player.idSala
                                             select(from obj in item.objetos
                                                    where obj == objTexto.tipo
                                                    select obj).FirstOrDefault()).FirstOrDefault();

                    if (tipoObjeto != TipoObjeto.Default)
                    {
                        Objeto obj = (from item in repositorio.objetos
                                      where item.tipo == tipoObjeto
                                      select item).First();

                        if (obj.tipo == TipoObjeto.Porta)
                        {
                            string descrUsou = obj.usou ? obj.descricaoUsarS : obj.descricaoUsarN;
                            servidor.notificaPlayer(player.idPlayer, obj.descricao + " " + descrUsou);
                            return;
                        }
                        servidor.notificaPlayer(player.idPlayer, obj.descricao);
                        return;
                    }
                }
            }
            servidor.notificaPlayer(player.idPlayer, "Sala ou Objeto não encontrado.");
        }
        else
        if (texto.Contains("Mover"))
        { // Mover [N/S/L/O]
            string splitTexto = texto.Split(null)[1];

            Sala salaAtual = (from item in repositorio.salas
                              where item.idSala == player.idSala
                              select item).FirstOrDefault();

            Coordenadas coordenada = BuscarCoordenada(splitTexto);

            IdSalas idSala = (from item in salaAtual.salasLigadas
                              where item.coordenada == coordenada
                              select item.sala).FirstOrDefault();

            if (idSala != IdSalas.Default)
            {
                if (salaAtual.objetos.Contains(TipoObjeto.Porta))
                {
                    Objeto objeto = (from item in repositorio.objetos
                                     where item.tipo == TipoObjeto.Porta
                                     select item).FirstOrDefault();

                    if (!objeto.usou)
                    {
                        servidor.notificaPlayer(player.idPlayer, objeto.descricaoUsarN);
                        return;
                    }
                }

                Sala salaMover = (from item in repositorio.salas
                                  where item.idSala == idSala
                                  select item).FirstOrDefault();
                foreach (Player pl in repositorio.players)
                {
                    if (pl.idPlayer == player.idPlayer)
                    {
                        pl.idSala = salaMover.idSala;
                    }
                }

                servidor.NotificaOutrosPlayersBySala(player.idPlayer, salaAtual.nome, "Jogador " + player.nome + " moveu-se para a sala " + salaMover.nome);
                servidor.SetPref(player);
                servidor.notificaPlayer(player.idPlayer, "Você se moveu para a sala " + salaMover.nome);
                servidor.NotificaOutrosPlayersBySala(player.idPlayer, salaMover.nome, "Jogador " + player.nome + " moveu-se para a sala " + salaMover.nome);

                falarChat(player, "Examinar " + salaMover.nome);
                return;
            }
            servidor.notificaPlayer(player.idPlayer, "Não foi possivel mover para a sala descrita.");
        }
        else
        if (texto.Contains("Pegar"))
        { // Pegar [objeto]
            string splitTexto = texto.Split(null)[1];

            List <TipoObjeto> objetos = (from item in repositorio.salas
                                         where item.idSala == player.idSala
                                         select item.objetos).FirstOrDefault();

            Objeto objeto = (from obj in repositorio.objetos
                             where objetos.Contains(obj.tipo) && obj.nome == splitTexto
                             select obj).FirstOrDefault();

            Debug.Log("objeto: " + objeto);

            if (objeto != null)
            {
                if (!objeto.pegar)
                {
                    servidor.notificaPlayer(player.idPlayer, "Esse objeto não é permitido coletar.");
                    return;
                }

                foreach (Inventario inventario in repositorio.inventarios)
                {
                    if (inventario.idPlayer == player.idPlayer)
                    {
                        inventario.objetos.Add(objeto);
                    }
                }

                foreach (Sala sala in repositorio.salas)
                {
                    if (sala.idSala == player.idSala)
                    {
                        sala.objetos.Remove(objeto.tipo);
                        break;
                    }
                }

                servidor.notificaPlayer(player.idPlayer, "Objeto adicionado no seu inventario.");
                servidor.NotificaOutrosPlayersBySala(player.idPlayer, BuscarSalaByIdSala(player.idSala).nome, "Jogador " + player.nome + " pegou o objeto " + objeto.nome);
                return;
            }
            servidor.notificaPlayer(player.idPlayer, "Objeto não encontrado na sala.");
        }
        else
        if (texto.Contains("Largar"))
        { // Largar [objeto]
            string splitTexto = texto.Split(null)[1];

            Objeto objeto = (from obj in repositorio.objetos
                             where obj.nome == splitTexto
                             select obj).FirstOrDefault();

            Inventario inv = (from item in repositorio.inventarios
                              where item.idPlayer == player.idPlayer && item.objetos.Contains(objeto)
                              select item).FirstOrDefault();

            if (objeto != null && inv != null)
            {
                foreach (Objeto obj in inv.objetos)
                {
                    if (obj.nome == splitTexto)
                    {
                        inv.objetos.Remove(obj);
                        break;
                    }
                }

                Debug.Log("Removeu do inventario!!!");

                foreach (Sala sala in repositorio.salas)
                {
                    if (sala.idSala == player.idSala)
                    {
                        sala.objetos.Add(objeto.tipo);
                    }
                }

                servidor.notificaPlayer(player.idPlayer, "Objeto removido do inventario.");
                servidor.NotificaOutrosPlayersBySala(player.idPlayer, BuscarSalaByIdSala(player.idSala).nome, "Jogador " + player.nome + " largou o objeto " + objeto.nome);
                return;
            }
            servidor.notificaPlayer(player.idPlayer, "Objeto não foi encontrado no inventario.");
        }
        else
        if (texto.Contains("Inventario"))
        { // Inventário
            Inventario inventario = (from item in repositorio.inventarios
                                     where item.idPlayer == player.idPlayer
                                     select item).FirstOrDefault();
            string objetos = "Você possui os seguintes objetos: ";

            if (inventario != null && inventario.objetos.Count > 0)
            {
                foreach (Objeto obj in inventario.objetos)
                {
                    objetos += obj.nome + " - ";
                }
                servidor.notificaPlayer(player.idPlayer, objetos);
                return;
            }
            servidor.notificaPlayer(player.idPlayer, "Você não possui nenhum item no inventário.");
        }
        else
        if (texto.Contains("Usar"))
        { // Usar [objeto] {alvo}
            string[] splitTexto = texto.Replace("Usar ", "").Split(null);

            Objeto objeto = buscarObjeto(splitTexto[0]);
            Objeto alvo   = null;

            if (splitTexto.Length > 1)
            {
                alvo = buscarObjeto(splitTexto[1]);
            }

            if (objeto != null && alvo != null)
            {
                if (objeto.tipo == TipoObjeto.Chave && alvo.tipo == TipoObjeto.Porta)
                {
                    servidor.notificaPlayer(player.idPlayer, usarObjetoAlvo(player, objeto.tipo, alvo.tipo));
                    return;
                }
                else
                {
                    servidor.notificaPlayer(player.idPlayer, "Você não pode usar esse objeto nesse alvo.");
                    return;
                }
            }
            else if (objeto != null)
            {
                if (!verificaInventario(player, objeto))
                {
                    servidor.notificaPlayer(player.idPlayer, "Você não possui esse objeto.");
                    return;
                }
                servidor.notificaPlayer(player.idPlayer, usarObjeto(player, objeto.tipo));
                return;
            }
            servidor.notificaPlayer(player.idPlayer, "Objeto ou Alvo não encontrado.");
        }
        else
        if (texto.Contains("Falar"))
        { // Falar [texto]
            servidor.NotificaTodosPlayers(player.idPlayer, texto.Replace("Falar ", ""), BuscarSalaByIdSala(player.idSala).nome);
        }
        else
        if (texto.Contains("Cochichar"))
        { // Cochichar [texto] [jogador]
            string[] fala    = texto.Replace("Cochichar ", "").Split(null);
            string   jogador = fala[fala.Length - 1].Replace(" ", "");

            string splitTexto = "";
            foreach (string f in fala)
            {
                splitTexto = splitTexto + f + " ";
            }

            splitTexto = splitTexto.Replace(jogador, "");

            Debug.Log(splitTexto);
            Debug.Log(jogador);

            Player plyer = buscarPlayerByName(jogador);

            if (plyer == null)
            {
                servidor.notificaPlayer(plyer.idPlayer, "Jogador não encontrado.");
                return;
            }

            servidor.notificaPlayer(plyer.idPlayer, "O jogador " + player.nome + " enviou uma mensagem: " + splitTexto);
        }
        else
        if (texto.Contains("Ajuda"))
        { // Ajuda
            string ajuda = "Lista de Comandos: \n"
                           + "Examinar [sala/objeto] \n"
                           + "Mover [N/S/L/O] \n"
                           + "Pegar [objeto] \n"
                           + "Largar [objeto] \n"
                           + "Inventário [sala/objeto] \n"
                           + "Usar [objeto] {alvo} \n"
                           + "Falar [texto] \n"
                           + "Cochichar [texto] [jogador] \n";

            servidor.notificaPlayer(player.idPlayer, ajuda);
        }
        else
        {
            servidor.notificaPlayer(player.idPlayer, "Não Foi Possível Realizar Essa Ação.");
        }
    }