static void Main(string[] args)
        {
            // Constantes
            const NPCPerks niceCombo = NPCPerks.Combat | NPCPerks.Luck;

            // Declaração de variáveis
            int    numNPCs;
            string numNPCsString;

            NPCPerks[] perksDeCadaNPC;

            // Pedir número de NPCs
            Console.Write("Indica o número de NPCs: ");
            numNPCsString = Console.ReadLine();
            numNPCs       = Convert.ToInt32(numNPCsString);

            // Inicializar array de perks
            perksDeCadaNPC = new NPCPerks[numNPCs];

            // Pedir perks para cada NPC
            for (int i = 0; i < numNPCs; i++)
            {
                // Indicar a que NPC nos estamos a referir
                Console.WriteLine($"NPC No. {i}");

                // Stealth ?
                perksDeCadaNPC[i] |= ReadPerk(NPCPerks.Stealth);

                // Combat ?
                perksDeCadaNPC[i] |= ReadPerk(NPCPerks.Combat);

                // Lockpick ?
                perksDeCadaNPC[i] |= ReadPerk(NPCPerks.Lockpick);

                // Luck ?
                perksDeCadaNPC[i] |= ReadPerk(NPCPerks.Luck);
            }

            // Mostrar características (perks) de cada NPC
            Console.WriteLine();
            for (int i = 0; i < numNPCs; i++)
            {
                // Características do NPC atual
                Console.WriteLine($"NPC {i} : {perksDeCadaNPC[i]}");

                // Mostrar mensagem especial?
                if ((perksDeCadaNPC[i] & niceCombo) == niceCombo)
                {
                    Console.WriteLine("\tYou shall win all fights!");
                }
            }
        }
Example #2
0
        // Metodo Main
        static void Main(string[] args)
        {
            // Constantes
            const NPCPerks niceCombo = NPCPerks.Combat | NPCPerks.Luck;

            // Variaveis
            NPCPerks[] npcs;
            string     tmp;
            int        numNPCs;

            // Pedir numero de PCs ao utilizador
            Console.Write("Indica o numero de NPCs: ");
            tmp     = Console.ReadLine();
            numNPCs = Convert.ToInt32(tmp);

            // Criar array de NPCs
            npcs = new NPCPerks[numNPCs];
            npcs.Initialize();

            // Pedir ao utilizador para indicar as caracteristicas de cada NPC
            for (int i = 0; i < numNPCs; i++)
            {
                // Inicializar NPC atual a zero (sem nada ainda)
                npcs[i] = 0;

                Console.WriteLine("NPC " + (i + 1) + "\n------------");

                // Este NPC tem característica Stealth?
                npcs[i] |= ReadPerk(NPCPerks.Stealth);

                // Este NPC tem característica Combat?
                npcs[i] |= ReadPerk(NPCPerks.Combat);

                // Este NPC tem característica Lockpick?
                npcs[i] |= ReadPerk(NPCPerks.Lockpick);

                // Este NPC tem característica Luck?
                npcs[i] |= ReadPerk(NPCPerks.Luck);
            }

            // Mostrar caracteristicas de cada NPC
            Console.WriteLine("\nCaracteristicas de cada NPC\n---------------");
            for (int i = 0; i < numNPCs; i++)
            {
                Console.Write($"NPC {i + 1}: {npcs[i]}");
                if ((npcs[i] & niceCombo) == niceCombo)
                {
                    Console.Write("\t<<< You shall win all fights! >>>");
                }
                Console.WriteLine();
            }
        }
        // Método que faz a leitura de um dado perk
        static NPCPerks ReadPerk(NPCPerks perk)
        {
            // Variaveis
            string   resposta;
            NPCPerks readPerk = 0;

            // Pedir ao user para confirmar perk
            Console.Write(perk + " (s/n)? ");
            resposta = Console.ReadLine();

            // User confirmou perk?
            if (resposta == "s")
            {
                // Confirmar que sim
                readPerk = perk;
            }

            // Retornar possível perk lido
            return(readPerk);
        }
Example #4
0
        // Metodo que faz a leitura de um dado perk
        static NPCPerks ReadPerk(NPCPerks perk)
        {
            // Variaveis
            string   tmp;
            NPCPerks readPerk = 0;

            // Pedir ao user para confirmar perk
            do
            {
                Console.Write(perk + " (s/n)? ");
                tmp = Console.ReadLine();
            } while ((tmp != "s") && (tmp != "n"));

            // User confirmou perk?
            if (tmp == "s")
            {
                // Confirmar que sim
                readPerk = perk;
            }

            // Retornar possivel perk lido
            return(readPerk);
        }