コード例 #1
0
        } // end method DashLineText

        // -----
        private static void CreateOneRandomPBHouse(DiceBagEngine diceBag, WordWrap ww, int AbsoLooply)
        {
            // ---- create an example P3BHouse
            PBHouse pbh = new PBHouse();

            var name         = pbh.Name();
            var quality_list = pbh.EstablishmentQuality(); // quality, rooms_cost, meals_cost
            var mood         = pbh.Mood();
            var lights       = pbh.Lighting();
            var smells       = pbh.Smells();
            var size         = pbh.Size();
            var posted_sign  = diceBag.SearchStringForRolls(pbh.PostedSign());
            var drinks       = diceBag.SearchStringForRolls(pbh.SpecialtyDrink(quality_list.Item1));
            var foods        = diceBag.SearchStringForRolls(pbh.SpecialtyFood(quality_list.Item1));
            var history      = diceBag.SearchStringForRolls(pbh.EstablishmentHistory());
            var naughty      = diceBag.SearchStringForRolls(pbh.RedLightServices());

            // --- summary blurb output
            string FormatedAbsoLooply = String.Format("{0,2:d2}", AbsoLooply);

            Console.WriteLine(DashLineText($"--[{FormatedAbsoLooply}]--"));
            Console.WriteLine("\n" + DashLineText("Player Blurb"));

            var desc_line1 = $"  The local Pub and Bed House for travellers is the {name}." +
                             $" The {quality_list.Item1}-quality establishment would be considered {size}." +
                             $" Rooms are {quality_list.Item2} per day, and meals are {quality_list.Item3} per day.";

            var desc_line2 = $"\n  As you enter, you smell {smells}. It seems to be a {mood} place, {lights}." +
                             $" A sign {posted_sign}.";

            var desc_line3 = "\n  The menu has the usual standard fare posted. " +
                             $"The House Specialty Drink is {drinks}, while the House Specialty Meal is {foods}.";

            Console.WriteLine(ww.doWordWrap(desc_line1, MaxTextWidthCols));
            Console.WriteLine(ww.doWordWrap(desc_line2, MaxTextWidthCols));
            Console.WriteLine(ww.doWordWrap(desc_line3, MaxTextWidthCols));

            // --- new feature;  staff and patron NPCs
            NPCMaker NPC_Owner = new NPCMaker("Staff", "Owner");

            NPC_Owner.RandomDetails();

            int patronHeadCount = diceBag.RollDice("2d4-6");

            Console.WriteLine("\n " + DashLineText("Notable Staff & Patrons"));
            Console.WriteLine(ww.doWordWrap(NPC_Owner.toString(), MaxTextWidthCols));

            if (size.Contains("modest") || size.Contains("large") || size.Contains("massive"))
            {
                patronHeadCount++;
                NPCMaker NPC_Cook = new NPCMaker("Staff", "Cook");
                NPC_Cook.RandomDetails();
                Console.WriteLine("\n " + ww.doWordWrap(NPC_Cook.toString(), MaxTextWidthCols));
            }

            // "modest", "large", "massive"
            if (size.Contains("large") || size.Contains("massive"))
            {
                patronHeadCount++;
                NPCMaker NPC_HeadServer = new NPCMaker("Staff", "Head Server");
                NPC_HeadServer.RandomDetails();
                Console.WriteLine("\n " + ww.doWordWrap(NPC_HeadServer.toString(), MaxTextWidthCols));
            }

            if (size.Contains("massive"))
            {
                patronHeadCount++;
                NPCMaker NPC_Bouncer = new NPCMaker("Staff", "Bouncer");
                NPC_Bouncer.RandomDetails();
                Console.WriteLine("\n " + ww.doWordWrap(NPC_Bouncer.toString(), MaxTextWidthCols));
            }

            for (int patronLoop = 0; patronLoop < patronHeadCount; patronLoop++)
            {
                NPCMaker NPC_Patron = new NPCMaker("Patron", "Random");
                NPC_Patron.RandomDetails();
                NPC_Patron.TaskDesc = NPC_Patron.getRandomTaskDesc();
                Console.WriteLine("\n " + ww.doWordWrap(NPC_Patron.toString(), MaxTextWidthCols));
            }

            Console.WriteLine("\n" + DashLineText("DM Notes"));
            Console.WriteLine(ww.doWordWrap($"Establishment History: {history}", MaxTextWidthCols));
            Console.WriteLine(ww.doWordWrap($"Red Light Services: {naughty}", MaxTextWidthCols));
        } // end CreateOneRandomPBHouse
コード例 #2
0
        } // end method getGenderCodeByText

        private string getRandomHeightDesc()
        {
            string localHeightDesc = "average*";
            int    roll_2d6        = diceBag.RollDice("2d6");

            if (roll_2d6 == 2)
            {
                localHeightDesc = diceBag.SearchStringForRolls("very short (-[3d8+6]%)");
            }
            if (roll_2d6 == 3)
            {
                localHeightDesc = diceBag.SearchStringForRolls("short (-[2d8+3]%)");
            }
            if (4 <= roll_2d6 && roll_2d6 <= 5)
            {
                localHeightDesc = diceBag.SearchStringForRolls("short-ish (-[1d8+1]%)");
            }

            if (6 <= roll_2d6 && roll_2d6 <= 8)
            {
                localHeightDesc = diceBag.SearchStringForRolls("average height ([2d4-4]%)");
            }

            if (9 <= roll_2d6 && roll_2d6 <= 10)
            {
                localHeightDesc = diceBag.SearchStringForRolls("tall-ish (+[1d8+1]%)");
            }
            if (roll_2d6 == 11)
            {
                localHeightDesc = diceBag.SearchStringForRolls("tall (+[2d8+3]%)");
            }
            if (roll_2d6 == 12)
            {
                localHeightDesc = diceBag.SearchStringForRolls("very tall (+[3d8+6]%)");
            }

            return(localHeightDesc);
        } // end method getRandomHeightDesc