Exemplo n.º 1
0
        public string toString()
        {
            // do some new do with the here do

            string word = "the";

            if (TypeCode > 0)
            {
                word = "a";
            }

            string patronInfoText = getTypeCodeText();

            if (TypeCode == 1)
            {
                int odds_here = Math.Max(diceBag.RollDice("1d8-1"), 1);
                patronInfoText = $"Regular {getTypeCodeText()} (visiting: {odds_here} in 8)";
            }

            string visible = $"{patronInfoText} : {PublicName} is {word} {TaskDesc}. "
                             + $"They are a {getGenderCodeText()} {Race}; {HeightDesc} and {BuildDesc}. "
                             + $"They are {EyeColor}-eyed, with their {HairColor} hair kept {HairStyle}. ";

            string socText = "";

            if (SexualOrientationText != "-no-")
            {
                socText = $"They {SexualOrientationText}. ";
            }

            string qpText = "";

            if (QuirkPhysical != "-no-")
            {
                qpText = $"They have a {QuirkPhysical}. ";
            }
            string qeText = "";

            if (QuirkEmotional != "-no-")
            {
                qeText = $"They {QuirkEmotional}. ";
            }

            string quirkText = "";

            if ((qpText + qeText).Length > 3)
            {
                quirkText = $"(Quirks:  {qpText} {qeText})";
            }

            string invisible = $"[GM Notes: {socText} {quirkText} {NotableAttributePositive} {NotableAttributeNegative}]";
            string paragraph = $"{visible}\n{invisible}";

            return(paragraph);
        }
Exemplo n.º 2
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
Exemplo n.º 3
0
        } // end public string Smells()

        // -----
        public string Size()
        {
            // use a weighted case/switch ladder to determine size info for the PBHouse

            // init the blank holder variables
            string size_description   = "";
            int    table_count        = 0;
            string common_bed_word    = "";
            int    common_bed_count   = 0;
            int    private_room_count = 0;

            // non-linear chance for size
            int dice_roll = diceBag.RollDice("1d12");

            switch (dice_roll)
            {
            case 1:
                size_description   = "tiny";
                table_count        = diceBag.RollDice("2d4");
                common_bed_word    = "hammocks";
                common_bed_count   = diceBag.RollDice("1d4");
                private_room_count = 0;
                break;

            case 2:
            case 3:
            case 4:
                size_description   = "small";
                table_count        = diceBag.RollDice("3d4");
                common_bed_word    = "bunk-beds";
                common_bed_count   = diceBag.RollDice("2d4");
                private_room_count = diceBag.RollDice("1d4");
                break;

            case 5:
            case 6:
            case 7:
            case 8:
                size_description   = "modest";
                table_count        = diceBag.RollDice("4d6");
                common_bed_word    = "single beds";
                common_bed_count   = diceBag.RollDice("3d6");
                private_room_count = diceBag.RollDice("2d6");
                break;

            case 9:
            case 10:
            case 11:
                size_description   = "large";
                table_count        = diceBag.RollDice("5d6");
                common_bed_word    = "tent-beds";
                common_bed_count   = diceBag.RollDice("4d6");
                private_room_count = diceBag.RollDice("3d6");
                break;

            case 12:
                size_description   = "massive";
                table_count        = diceBag.RollDice("7d8");
                common_bed_word    = "tent-beds";
                common_bed_count   = diceBag.RollDice("6d8");
                private_room_count = diceBag.RollDice("4d8");
                break;
            } // end-switch

            string blurb = $"{size_description}, with {table_count} tables. It has {common_bed_count} {common_bed_word} in the common room and {private_room_count} private rooms";

            return(blurb);
        } //public string Size()