Esempio n. 1
0
        public static void displaymixture(CharacterInstance ch, MixtureData mix)
        {
            ch.SendToPager(" .-.                ,\r\n");
            ch.SendToPager("`._ ,\r\n");
            ch.SendToPager("   \\ \\                 o\r\n");
            ch.SendToPager("    \\ `-,.\r\n");
            ch.SendToPager("   .'o .  `.[]           o\r\n");
            ch.SendToPager("<~- - , ,[].'.[] ~>     ___\r\n");
            ch.SendToPager(" :               :     (-~.)\r\n");
            ch.SendToPager("  `             '       `|'\r\n");
            ch.SendToPager("   `           '         |\r\n");
            ch.SendToPager("    `-.     .-'          |\r\n");
            ch.SendToPager("-----{. _ _ .}-------------------\r\n");

            ch.PagerPrintf("&gRecipe for Mixture &G%s&g:\r\n", mix.Name);
            ch.SendToPager("---------------------------------\r\n");

            if (!mix.Object)
            {
                var ingredient1 = RepositoryManager.Instance.GetEntity <LiquidData>(mix.Data.ToList()[0]);
                var ingredient2 = RepositoryManager.Instance.GetEntity <LiquidData>(mix.Data.ToList()[1]);
                ch.SendToPager("&wCombine two liquids to create this mixture:");

                if (ingredient1 == null)
                {
                    ch.PagerPrintf("Vnum1 (%d) is invalid, tell an Admin\r\n", mix.Data.ToList()[0]);
                }
                else
                {
                    ch.PagerPrintf("&wOne part &G%s&w (%d)\r\n", ingredient1.Name, mix.Data.ToList()[0]);
                }

                if (ingredient2 == null)
                {
                    ch.PagerPrintf("Vnum2 (%d) is invalid, tell an Admin\r\n", mix.Data.ToList()[1]);
                }
                else
                {
                    ch.PagerPrintf("&wAnd part &G%s&w (%d)&D\r\n", ingredient2.Name, mix.Data.ToList()[1]);
                }
            }
            else
            {
                var obj = RepositoryManager.Instance.OBJECTTEMPLATES.CastAs <Repository <long, ObjectTemplate> >().Get(mix.Data.ToList()[0]);
                if (obj == null)
                {
                    ch.PagerPrintf("%s has a bad object vnum %d, inform an Admin\r\n", mix.Name, mix.Data.ToList()[0]);
                    return;
                }

                var ingredient1 = RepositoryManager.Instance.GetEntity <LiquidData>(mix.Data.ToList()[1]);
                ch.SendToPager("Combine an object and a liquid in this mixture");
                ch.PagerPrintf("&wMix &G%s&w (%d)\r\n", obj.Name, mix.Data.ToList()[0]);
                ch.PagerPrintf("&winto one part &G%s&w (%d)&D\r\n", ingredient1.Name, mix.Data.ToList()[1]);
            }
        }
Esempio n. 2
0
        private static MixtureData ReadMixture(TextReaderProxy proxy)
        {
            var word = string.Empty;
            var mix  = new MixtureData();

            do
            {
                word = proxy.ReadNextWord();
                if (word.StartsWithIgnoreCase("*"))
                {
                    continue;
                }
                if (word.StartsWithIgnoreCase("#"))
                {
                    break;
                }

                switch (word.ToLower())
                {
                case "end":
                    break;

                case "data":
                    mix.Data.ToList()[0] = proxy.ReadNumber();
                    mix.Data.ToList()[1] = proxy.ReadNumber();
                    mix.Data.ToList()[2] = proxy.ReadNumber();
                    break;

                case "into":
                    mix.Data.ToList()[2] = proxy.ReadNumber();
                    break;

                case "name":
                    mix.Name = proxy.ReadString().TrimHash();
                    break;

                case "object":
                    mix.Object = proxy.ReadNumber() > 0;
                    break;

                case "with":
                    mix.Data.ToList()[0] = proxy.ReadNumber();
                    mix.Data.ToList()[1] = proxy.ReadNumber();
                    break;
                }
            } while (!proxy.EndOfStream && !word.EqualsIgnoreCase("end"));

            return(mix);
        }