示例#1
0
        protected override void RunEncounter()
        {
            StandardDisplay currentDisplay = DisplayManager.GetCurrentDisplay();

            currentDisplay.OutputText(obtainText());
            currentDisplay.DoNext(() => GameEngine.UseHoursGoToBase(1));
        }
示例#2
0
        protected override DisplayBase BuildMenu(Creature consumer, UseItemCallback postItemUseCallback)
        {
            if (!consumer.hasCock)
            {
                string results = "As you look over the needle, you realize that its intended purpose is to thicken a penis which you do not possess. Sighing dejectedly, you put away the needle.";
                postItemUseCallback(false, results, null, this);
            }
            StandardDisplay display = new StandardDisplay();

            display.OutputText("You ponder the needle in your hand knowing it will thicken a c**k it's injected into.");
            if (consumer.cocks.Count == 1)
            {
                display.AddButton(0, "Inject", () => ChooseSingleCock(consumer, postItemUseCallback));
                display.AddButton(1, "Don't", () => GirthPlusCancel(consumer, postItemUseCallback));
            }
            else
            {
                for (int i = 0; i < consumer.cocks.Count; i++)
                {
                    string tip = consumer.cocks[i].LongDescription() + Environment.NewLine + "Length: " + consumer.cocks[i].length + Environment.NewLine
                                 + "Thickness: " + consumer.cocks[i].girth;

                    display.AddButtonWithToolTip((byte)i, "C**k #" + (i + 1), () => ChooseSingleCock(consumer, postItemUseCallback, i), tip);
                }
                display.AddButton(10, GlobalStrings.ALL(), () => ChooseAllCocks(consumer, postItemUseCallback));
                display.AddButton(14, GlobalStrings.NEVERMIND(), () => GirthPlusCancel(consumer, postItemUseCallback));
            }

            return(display);
        }
示例#3
0
        protected override void RunEncounter()
        {
            bool isForest = true, isLake = false;

            if (sourceLocation == typeof(Areas.Locations.Lake))
            {
                isForest = false;
                isLake   = true;
            }
            else if (sourceLocation == typeof(Areas.Locations.Desert))
            {
                isForest = false;
            }
#if DEBUG
            else if (sourceLocation != typeof(Areas.Locations.Forest) && sourceLocation != typeof(Areas.Locations.Deepwoods))
            {
                Debug.WriteLine("An unexpected area has been given a big junk text location. it will default to using the forest. if this is not ideal, implement a new text for" +
                                "this new location within the big junk encounter text function.");
            }
#endif

            StandardDisplay currentDisplay = DisplayManager.GetCurrentDisplay();
            OutputBigJunkText(currentDisplay, isForest, isLake);
            player.IncreaseLustBy(25 + Utils.Rand(player.corruption / 5));
            player.GainFatigue(5);
            currentDisplay.DoNext(() => GameEngine.UseHoursGoToBase(1));
        }
示例#4
0
        internal static bool QueryDisplay(out StandardDisplay display)
        {
            var changed = displayChanged;

            display        = currentDisplay;
            displayChanged = false;
            return(changed);
        }
示例#5
0
 internal static void LoadDisplay(StandardDisplay display)
 {
     if (!ReferenceEquals(display, currentDisplay))
     {
         currentDisplay = display;
         displayChanged = true;
     }
 }
示例#6
0
        protected override void RunEncounter()
        {
            //player.TakeDamage(10);
            GameEngine.currentlyControlledCharacter.TakeDamage(10);
            StandardDisplay currentDisplay = DisplayManager.GetCurrentDisplay();

            currentDisplay.OutputText(flavorText());
        }
示例#7
0
        protected override void RunEncounter()
        {
            GameEngine.UnlockArea <Areas.Locations.Deepwoods>(out string unlockText);
            StandardDisplay currentDisplay = DisplayManager.GetCurrentDisplay();

            currentDisplay.OutputText(unlockText);
            currentDisplay.DoNext(() => GameEngine.UseHoursGoToBase(2));
        }
示例#8
0
        private void PutBack()
        {
            buttonMaker = null;
            display     = null;
            source      = null;

            itemCallback(false, PutBackItemText(), Author(), this);
            itemCallback = null;
        }
示例#9
0
    public static void Main()
    {
        TM1637.SetupWiringPi(WiringPiSetupFunction.GPIO);

        var display = StandardDisplay.Craete(
            pinDIO: TM1637.PhysicalPinToGpio(16 /*GPIO.23*/), // The pin number connected to TM1637's DIO (#17)
            pinCLK: TM1637.PhysicalPinToGpio(18 /*GPIO.24*/), // The pin number connected to TM1637's CLK (#18)
            numberOfDigits: 6
            );

        display.Begin();

        for (var digit = 0; digit < display.NumberOfDigits; digit++)
        {
            display.SetSegmentBitsAt(digit, 0b11111111); // set all segments on
        }

        Console.WriteLine("set display switch off");
        display.DisplaySwitch = false;
        Thread.Sleep(1000);

        Console.WriteLine("set display switch on");
        display.DisplaySwitch = true;
        Thread.Sleep(1000);

        Console.WriteLine("set display brightness from 0% to 100%");

        for (var brightness = 0; brightness < 100; brightness += 10)
        {
            display.DisplayBrightness = brightness; // 0% = display off
            Thread.Sleep(250);
        }

        Console.WriteLine("set display brightness from 100% to 0%");

        for (var brightness = 100; 0 <= brightness; brightness -= 10)
        {
            display.DisplayBrightness = brightness;
            Thread.Sleep(250);
        }

        Console.WriteLine("set brightness minimum (1/16 duty cycle)");
        display.SetDisplayBrightnessMinimum();
        Thread.Sleep(1000);

        Console.WriteLine("set brightness to darker level (4/16 duty cycle)");
        display.SetDisplayBrightnessDarker();
        Thread.Sleep(1000);

        Console.WriteLine("set brightness to brighter level (10/16 duty cycle)");
        display.SetDisplayBrightnessBrighter();
        Thread.Sleep(1000);

        Console.WriteLine("set brightness maximum (14/16 duty cycle)");
        display.SetDisplayBrightnessMaximum();
        Thread.Sleep(1000);
    }
示例#10
0
            protected override DisplayBase AsFullPageScene(bool currentlyIdling, bool hasIdleHours)
            {
                StandardDisplay display = new StandardDisplay();
                var             tf      = new DryadTFs();

                display.OutputText(tf.DoTransformation(target, out bool isBadEnd));
                //silently ignore the bad end. if it happens that feels like some next level bullshit, so...
                display.DoNext(GameEngine.ResumeExection);
                return(display);
            }
示例#11
0
        private StandardDisplay BuildMenu(Creature wearer, UseItemCallbackSafe <ArmorBase> postItemCallback)
        {
            var display = new StandardDisplay();

            display.OutputText(WearBimboSkirt(wearer));

            display.AddButtonWithToolTip(0, GlobalStrings.ENABLE(), () => DoEquip(wearer, postItemCallback, true), BimboText(true), BimboTitle(true));
            display.AddButtonWithToolTip(1, GlobalStrings.DISABLE(), () => DoEquip(wearer, postItemCallback, false), BimboText(false), BimboTitle(false));

            return(display);
        }
示例#12
0
        public void Setup()
        {
            expressionFormatter = new Mock <IFormatter>();
            expressionFormatter.Setup(x => x.Format(It.IsAny <string>())).Returns("log(15) + 6");

            numberFormatter = new Mock <IFormatter>();
            numberFormatter.Setup(x => x.Format(It.IsAny <string>())).Returns("55,055,055.9");

            standardDisplay        = new StandardDisplay();
            standardDisplay.Parent = new Panel();
        }
示例#13
0
 internal static void LoadDisplay(DisplayBase display)
 {
     if (display is null)
     {
         throw new ArgumentNullException(nameof(display));
     }
     if (!ReferenceEquals(display, currentDisplay))
     {
         currentDisplay = (StandardDisplay)display;
         displayChanged = true;
     }
 }
示例#14
0
        protected override DisplayBase BuildMenu(Creature target, UseItemCallback postItemUseCallback)
        {
            listOfDyeableParts = target.bodyParts.Where(x => x is IDyeable || x is IMultiDyeable);

            display = new StandardDisplay();

            //set the globals.
            buttonMaker  = new ButtonListMaker(display);
            itemCallback = postItemUseCallback;
            source       = target;

            RunMainMenu();
            return(display);
        }
示例#15
0
        public DisplayBase Init()
        {
            var slot = inventory.TryAddItem(item);

            if (slot != -1)
            {
                return(new StandardDisplay(context + inventory.PlaceItemInSlot(item, (byte)slot)));                //should never occur.
            }
            else
            {
                display = new StandardDisplay();
                FullItemsChooseAction();
                return(display);
            }
        }
示例#16
0
        public static void NewGamePlus(PlayerBase currentPlayer)
        {
            if (currentDisplay == null)
            {
                currentDisplay = new StandardDisplay();
            }
            currentDisplay.ClearOutput();

            //parse the current player to New Game Plus related PlayerCreator;
            PlayerCreator     pc      = new PlayerCreator(currentPlayer.name);
            CharacterCreation creator = new CharacterCreation(currentDisplay, pc, true);

            creator.SetGenderGeneric();
            throw new Backend.Tools.InDevelopmentExceptionThatBreaksOnRelease();
        }
示例#17
0
    public static void Main()
    {
        TM1637.SetupWiringPi(WiringPiSetupFunction.GPIO);

        var display = StandardDisplay.Craete(
            pinDIO: TM1637.PhysicalPinToGpio(16 /*GPIO.23*/), // The pin number connected to TM1637's DIO (#17)
            pinCLK: TM1637.PhysicalPinToGpio(18 /*GPIO.24*/), // The pin number connected to TM1637's CLK (#18)
            numberOfDigits: 6
            );

        display.Begin();

        for (;;)
        {
            display.DisplayNumericalString(" 8. 8. 8.");
        }
    }
示例#18
0
        protected override DisplayBase BuildMenu(Creature consumer, UseItemCallback postItemUseCallback)
        {
            var display = new StandardDisplay();

            display.OutputText("You ponder the needle in your hand knowing it will enlarge the injection site. What part of your body will you use it on? ");

            var listMaker = new ButtonListMaker(display);

            foreach (var bodyPart in consumer.bodyParts)
            {
                if (bodyPart is IGrowable growable)
                {
                    listMaker.AddButtonToList(bodyPart.BodyPartName(), growable.CanGroPlus(), () => ApplyGrowPlus(consumer, growable, postItemUseCallback));
                }
            }

            return(display);
        }
示例#19
0
        protected override DisplayBase BuildMenu(Creature consumer, UseItemCallback postItemUseCallback)
        {
            validMembers = consumer.bodyParts.Where(x => x is ILotionable || x is IMultiLotionable).ToList();
            display      = new StandardDisplay();
            listMaker    = new ButtonListMaker(display);

            if (validMembers.Count == 0)
            {
                LotionCancel(consumer, postItemUseCallback);
                return(null);
            }
            if (validMembers.Count == 1 && validMembers[0] is ILotionable lotionable)
            {
                DoLotion(consumer, lotionable, postItemUseCallback);
            }

            return(StandardMenu(consumer, postItemUseCallback));
        }
示例#20
0
        private void CleanupAndReturn(string result)
        {
            if (source.relativeLust > 50)
            {
                result += LessLustyText();
                source.DecreaseLust(15);
            }

            //clear the globals.
            source      = null;
            buttonMaker = null;
            display     = null;

            UseItemCallback temp = itemCallback;

            itemCallback = null;

            //and resume normal execution.
            temp(true, result, Author(), null);
        }
示例#21
0
        public static void NewGame()
        {
            //clear all the extraneous data stored in the various engines in the backend.
            GameEngine.StartNewGame();

            GameEngine.UnlockAchievement <Achievements.StartTheGameINeedAnAchievementForDebugging>();

            SetPlayerStatus(PlayerStatus.IDLE);
            HideMenu();
            HideStats();

            if (currentDisplay is null)
            {
                currentDisplay = new StandardDisplay();
            }
            DisplayManager.LoadDisplay(currentDisplay);

            currentDisplay.ClearOutput();
            currentDisplay.OutputText(NewGameHelperText.IntroText());
            currentDisplay.ActivateInputField();
            currentDisplay.ActivateDropDownMenu(SpecialCharacters.SpecialCharacterDropDownList(currentDisplay));
            currentDisplay.AddButton(0, GlobalStrings.OK(), ChooseName);
        }
示例#22
0
        //motorboat scene. on a herm character, variants for balls or no.
        void DoMotorboat(Player player)
        {
            StandardDisplay currentDisplay = DisplayManager.GetCurrentDisplay();

            currentDisplay.OutputText(" Your request for sex is met with obvious enthusiasm; she's completely stripped off all her clothing at an unbelievable pace. " +
                                      "She's definitely well endowed but your attention is immediately drawn to her volumous breasts. A giggle escapes her lips, and you realize you've already taken one " +
                                      "in hand. Embarrassed, you remove your hand, a sheepish look on your face. <i>Drawn to my knockers, ehh? Can't say i blame you - they are irresistable.</i> " +
                                      "You can't get over just how plush they are, and you have one thought in mind: \"I wanna motorboat these puppies.\" A moment passes before you realize " +
                                      "you said that aloud. A bemused look crosses <Name>'s face, and she responds: <i>Not sure what you mean by that, hun - care to explain?</i>" +
                                      "You quickly explain what that entails, ");
            if (silly)
            {
                currentDisplay.OutputText("careful to omit the fact that its namesake doesn't exist yet. ");
            }
            else
            {
                currentDisplay.OutputText("though you're not entirely sure where the name comes from. ");
            }

            currentDisplay.OutputText("<i>Sounds like fun, though i hope that's not all you have in mind.</i> You're sure you'll come up with something, but for now you're focused " +
                                      "on burying your head between the twin prizes. With your face now firmly in place, you begin to make the telltale 'brrrr' sound, grabbing both breasts so they remain in" +
                                      "place as you move your head from side to side. Her short fur caresses you with each motion, feeling absolutely divine. Suddenly, they seem to vibrate on their own, " +
                                      "and it takes you a moment to realize the source is <Name>, laughing. Now Reminded you're not the only one participating in your little fantasy, You pause, " +
                                      "curious to see exactly what she's laughing at. ");


            //if (player.hasBeard)
            //{
            //	currentDisplay.OutputText("<i>Yo-you're <beard></i> she manages between giggles <i>it-it tickles!</i>");
            //}
            //else
            //{
            currentDisplay.OutputText("<i>Yo-you look</i> she manages unable to finish the thought before bursting out into another round of giggles. <i>You look so absurd!</i>");
            //}
            currentDisplay.OutputText("<i> D-Don't stop, love</i>, she manages before bursting into laughter once again. You oblige, but it's not exactly the reaction you were hoping " +
                                      "for. A thought crosses your mind, and the laughter is soon cut short, replaced with an audible gasp as your fingers find her nipples and tug, ever so gently. " +
                                      "Seizing the opportunity, you lift your head, sticking out your tongue just enough");

            if (player.tongue.piercings.wearingJewelry)
            {
                currentDisplay.OutputText("so that both it and the bottom half of your tongue stud make contact with her sensitive fur between her bust. You gradually move " +
                                          "down her chest, occasionally adjusting your tongue to vary when and where your piercing makes contact. You can tell this is having a marked impact, as " +
                                          "she twitches each time the contrasting sensation of warm and cold shifts.");
            }
            else
            {
                currentDisplay.OutputText("so that you're just barely dragging your tongue along the sensitive fur between her bust. You move down withward with agonizing slowness, " +
                                          "trying to gauge how she'll react to the new stimulation. You can tell you're starting to get to her as a shudder runs through her body, and you continue on with " +
                                          "renewed vigor.");
            }

            currentDisplay.OutputText("You continue your quest downward, lingering ever so slightly whenever she draws a breath. By the time you reach her navel, her breathing has " +
                                      "become erratic and you know you've got her. As you probe ever closer to her dual sexes, you notice her breath has caught, as if desperately trying to speed you up." +
                                      "That simply won't do, you think to yourself, your fingers resuming their assault on her sensitive nipples. The resulting moan is music to your ears. " +
                                      "You consider continuing to tease her, but decide she's had enough. You run you tongue down her c**k, which rapidly elongates under the sudden stimulation. " +
                                      "You pause for a moment, allow it to rise to a full erection before continuing, this time down its generous length");

            //if (hasBalls)
            //{

            //	currentDisplay.OutputText(", towards her now throbbing balls. They too feel your tongue, but only briefly; you're true player glistening just below them.");
            //}
            //else
            //{
            currentDisplay.OutputText(". As you reach its base, you briefly pause, but soon find your way to your true player, the glistening entrance situated just below.");
            //}

            currentDisplay.OutputText("At this point, you abandon any remsining hints of foreplay, attacking her buzzer with your tongue. ");

            if (player.tongue.piercings.wearingJewelry)
            {
                currentDisplay.OutputText("With each pass, you ");
            }
        }
示例#23
0
 private static void OutputBigJunkText(StandardDisplay display, bool isForest, bool isLake)
 {
     /*
      * Player player = GameEngine.currentPlayer;
      * C**k largestCock = player.genitals.LargestCock();
      * string helperText1, helperText2;
      * if (isForest)
      * {
      *      helperText1 = "various paths of the forest";
      *      helperText2 = "earth behind you.";
      * }
      * else if (isLake)
      * {
      *      helperText1 = "grassy and muddy shores of the lake";
      *      helperText2 = "wet ground behind you.";
      * }
      * else
      * {
      *      helperText1 = "sandy dunes of the desert";
      *      helperText2 = "sandscape behind you. The incredibly hot surface of the desert causes your loins to sweat heavily and fills them with relentless heat.";
      * }
      * display.OutputText("Walking along the " + helperText1 + ", you find yourself increasingly impeded by the bulk of your " + largestCock.fullDescription() + " dragging along the " + helperText2);
      * if (player.cocks.Count == 1)
      * {
      *      if (isForest)
      *      {
      *              helperText1 = " across the grass, twigs, and exposed tree roots";
      *              helperText2 = " the fingers of a giant hand sliding along the head of your " + largestCock.shortDescription() + ", gently jerking it off.";
      *      }
      *      else if (isLake)
      *      {
      *              helperText1 = " through the lakeside mud";
      *              helperText2 = " the velvety folds of a monstrous pussy sliding along the head of your " + largestCock.shortDescription() + ", gently attempting to suck it off.";
      *      }
      *
      *      else
      *      {
      *              helperText1 = " along the dunes";
      *              helperText2 = " the rough textured tongue of a monstrous animal sliding along the head of your " + largestCock.shortDescription() + ".";
      *      }
      *      display.OutputText(" As it drags" + helperText1 + ", the sensation forces you to imagine" + helperText2);
      * }
      * else //(player.cocks.Count >= 2)
      * {
      *      if (isForest)
      *      {
      *              helperText1 = " across the grass, twigs, and exposed tree roots";
      *              helperText2 = " rough fingers of " + Utils.NumberAsText(player.genitals.numCocks) + " different monstrous hands were sliding over each shaft, gently jerking them off.";
      *      }
      *      else if (isLake)
      *      {
      *              helperText1 = " through the mud";
      *              helperText2 = " lips of " + Utils.NumberAsText(player.genitals.numCocks) + " different cunts were slobbering over each one.";
      *      }
      *      else
      *      {
      *              helperText1 = " through the sands";
      *              helperText2 = " rough textured tongues of " + Utils.NumberAsText(player.genitals.numCocks) + " different monstrous animals were slobbering over each one.";
      *      }
      *      display.OutputText(" With all of your " + player.genitals.AllCocksShortDesc() + " dragging" + helperText1 + ", they begin feeling as if the" + helperText2);
      * }
      * display.OutputText(Environment.NewLine + Environment.NewLine);
      *
      * //PARAGRAPH 2
      * if (player.lowerBody.isQuadruped)
      * {
      *      helperText1 = "the barrel of your bestial torso to the ground. Normally your erection would merely hover above the ground in between your legs";
      *      helperText2 = "being forcibly pulled down at your hind legs until your bestial body is resting on top of your " + player.genitals.AllCocksShortDesc() + ".";
      * }
      * else
      * {
      *      helperText1 = "your torso to the ground. Normally your erection would merely raise itself skyward";
      *      helperText2 = "forcibly pivoting at the hips until your torso is compelled to rest face down atop your " + player.genitals.AllCocksShortDesc() + ".";
      * }
      * display.OutputText(" The impending erection can't seem to be stopped. Your sexual frustration forces stiffness into your " + player.genitals.AllCocksShortDesc() + ", which forces" +
      *      helperText1 + ", but your genitals have grown too large and heavy for your " + player.hips.ShortDescription() + " to hold them aloft. Instead, you feel your body" + helperText2);
      *
      * if (player.biggestTitSize() >= 35)
      * {
      *      if (player.lowerBody.isQuadruped)
      *      {
      *
      *      }
      *      else
      *      {
      *
      *              display.OutputText(" Your " + player.chestDesc() + "hang lewdly off your torso to rest" + helperText1 + ".Their immense weight anchors your body, further preventing your torso from lifting itself up." + helperText2;
      *      }
      * }
      *
      * if (player.hasBalls)
      * {
      *      if (isForest) helperText1 = " Your " + player.balls.ShortDescription() + " pulse with the need to release their sperm through your " + player.genitals.AllCocksShortDesc() + " and onto the fertile soil of the forest.";
      *      else if (isLake) helperText1 = " Your " + player.balls.ShortDescription() + " pulse with the need to release their sperm through your " + player.genitals.AllCocksShortDesc() + " and into the waters of the nearby lake.";
      *      else helperText1 = " The fiery warmth of the desert caresses it, causing your " + player.balls.ShortDescription() + " to pulse with the need to release their sperm through your " + player.genitals.AllCocksShortDesc() + ".";
      *
      *      display.OutputText(" Your " + player.skin.tone + " " + player.sackDescript() + " rests beneath your raised " + player.buttDescript() + "." + helperText1);
      * }
      *
      * if (player.hasVagina)
      * {
      *      display.OutputText(" Your " + player.vaginaDescript() + " and " + player.clitDescript() + " are thoroughly squashed between the bulky flesh where your male genitals protrude from between your hips and the " + player.buttDescript() + " above.");
      *      if (player.lowerBody.isQuadruped)
      *      {
      *              //IF CHARACTER HAS A DROOLING PUSSY ADD SENTENCE
      *              if (player.vaginas[0].wetness >= VaginalWetness.DROOLING)
      *              {
      *                      if (isLake || isForest) helperText1 = " A leaf falls from a tree and lands on the wet lips of your c**t, its light touch teasing your sensitive skin. Like a mare or cow in heat, your juices stream from your womanhood and pool in";
      *                      else helperText1 = " The desert sun beats down on your body, its fiery heat inflaming the senses of your vaginal lips.";
      *
      *                      if (isForest) helperText2 = " the dirt and twigs beneath you.";
      *                      else if (isLake) helperText2 = "the mud beneath you. The sloppy fem-spunk only makes the ground more muddy.";
      *                      else helperText2 = "Juices stream from your womanhood and begin pooling on the hot sand beneath you.";
      *
      *                      display.OutputText(helperText1 + helperText2);
      *              }
      *      }
      *      else
      *      {
      *              //IF CHARACTER HAS A DROOLING PUSSY ADD SENTENCE
      *              if (player.vaginas[0].wetness >= VaginalWetness.DROOLING)
      *              {
      *                      if (isForest) helperText1 = "the dirt and twigs beneath you. The sticky fem-spunk immediately soaks down into the rich soil.";
      *                      else if (isLake) helperText1 = "the wet ground beneath you. The drooling fem-spunk only makes the ground more muddy.";
      *                      else helperText1 = " the hot sand beneath you. Wisps of steam rise up into the air only to tease your genitals further.";
      *
      *                      display.OutputText("Juices stream from your womanhood and begin pooling on " + helperText1);
      *              }
      *      }
      * }
      *
      * //PARAGRAPH 3
      *
      * display.OutputText(Environment.NewLine + Environment.NewLine + "You realize you are effectively trapped here by your own body.");
      * //CORRUPTION BASED CHARACTER'S VIEW OF SITUATION
      * if (player.corruption < 33) display.OutputText(" Panic slips into your heart as you realize that if any dangerous predator were to find you in this state, you'd be completely defenseless. You must find a way to regain your mobility immediately!");
      * else if (player.corruption < 66) display.OutputText(" You realize that if any dangerous predator were to find you in this state, you'd be completely defenseless! You must find a way to regain your mobility... yet there is a certain appeal to imagining how pleasurable it would be for a sexual predator to take advantage of your obscene body.");
      * else display.OutputText(" Your endowments have rendered you completely helpless should any predators find you. Somewhere in your heart, you find this prospect almost exhilarating. The idea of being a helpless fucktoy for a wandering beast is unusually inviting to you. Were it not for the thought that you might starve to death, you'd be incredibly tempted to remain right where you are.");
      *
      * //SCENE END = IF CHARACTER HAS FULL WINGS
      * if (player.wings.canFly)
      * {
      *      if (isForest) helperText1 = " out of the forest";
      *      else if (isLake) helperText1 = " out of the mud";
      *      else helperText1 = " across the hot sands";
      *      display.OutputText(" You extend your wings and flap as hard as you can until at last, you manage to lighten the bulk of your body. It helps just enough to let you drag your genitals" + helperText1 + " and back to camp.The ordeal takes nearly an hour for you to return and deal with.");
      * }
      * //SCENE END IF CHARACTER HAS CENTAUR BODY
      * else if (player.lowerBody.isQuadruped)
      * {
      *      if (isForest)
      *      {
      *              helperText1 = " soft dirt";
      *              helperText2 = " ground fails to provide enough leverage to lift your bulk. You breath in deeply and lean side to side, until eventually, your feet brace against the various roots of the trees around you. " +
      *                      "With a crude crawl, your legs manage to shuffle your body and genitals out of the forest and back to camp.";
      *      }
      *      else if (isLake)
      *      {
      *              helperText1 = " wet ground";
      *              helperText2 = " mud fails to provide enough leverage to lift your bulk. You breath in deeply and lean side to side, trying to find some easier vertical leverage beneath your feet." +
      *                      " Eventually, with a crude crawl, your legs manages to push the bulk of your body onto more solid ground. With great difficulty, you spend the next hour shuffling your genitals back to camp.";
      *      }
      *      else
      *      {
      *              helperText1 = " surface of the dune you are trapped on";
      *              helperText2 = " soft sand fails to provide enough leverage to lift your bulk. You breath in deeply and lean from side to side, trying to find some easier vertical leverage." +
      *                      " Eventually, with a crude crawl, your legs manage to push the bulk of your body onto more solid ground. With great difficulty, you spend the next hour shuffling your genitals across the sandscape and back to camp.";
      *      }
      *
      *      display.OutputText(" You struggle and work your multiple legs against the" + helperText1 + ". Your " + player.feet() + " have consistent trouble finding footing as the" + helperText2);
      * }
      * //SCENE END = FOR ALL OTHER CHARACTERS
      * else
      * {
      *      if (isForest) helperText1 = " across the forest floor.";
      *      else if (isLake) helperText1 = " through the mud.";
      *      else helperText1 = " across the warm sand.";
      *      display.OutputText(" You struggle and push with your " + player.legs() + " as hard as you can, but it's no use. You do the only thing you can and begin stroking your " +
      *              player.genitals.AllCocksShortDesc() + " with as much vigor as you can muster. Eventually your body tenses and a light load of j**z erupts from your body, " +
      *              "but the o****m is truly mild compared to what you need. You're simply too weary from struggling to give yourself the masturbation you truly need, but you continue to try." +
      *              " Nearly an hour later " + player.genitals.AllCocksFullDesc() + " has softened enough to allow you to stand again, and you make your way back to camp, still dragging your genitals" + helperText1);
      * }*/
 }
示例#24
0
        public static bool UpdateAntennaeDisplayMessageOnActivePage(this PlayerBase player, AntennaeType newType, StandardDisplay display)
        {
            var oldData = player.antennae.AsReadOnlyData();

            if (player.UpdateAntennae(newType))
            {
                display.OutputText(player.antennae.TransformFromText(oldData));
                return(true);
            }
            return(false);
        }
示例#25
0
        public static bool RestoreAntennaeDisplayMessageOnActivePage(this PlayerBase player, StandardDisplay display)
        {
            var oldData = player.antennae.AsReadOnlyData();

            if (player.RestoreAntennae())
            {
                display.OutputText(player.antennae.RestoredText(oldData));
                return(true);
            }
            return(false);
        }
示例#26
0
    public static void Main()
    {
        TM1637.SetupWiringPi(WiringPiSetupFunction.GPIO);

        var display = StandardDisplay.Craete(
            pinDIO: TM1637.PhysicalPinToGpio(16 /*GPIO.23*/), // The pin number connected to TM1637's DIO (#17)
            pinCLK: TM1637.PhysicalPinToGpio(18 /*GPIO.24*/), // The pin number connected to TM1637's CLK (#18)
            numberOfDigits: 6
            );

        display.Begin();

        var numericalStrings = new[] {
            "1",
            "1.2",
            "12.3",
            "123.4",
            "1234.5",
            "12345.6",
            "123456.7",
            "-1",
            "-1.2",
            "-12.3",
            "-123.4",
            "-1234.5",
            "-12345.6",
            "     0",
            "    01",
            "   012",
            "  0123",
            " 01234",
            "012345",
            "0 1234",
            "01 234",
            "012 34",
            "0123 4",
            "01234 ",
            "      ",
            "01-01",
            "12-31",
            "-.-.-.-.-.-.",
        };

        foreach (var s in numericalStrings)
        {
            Console.WriteLine($"display '{s}'");
            display.DisplayNumericalString(s);
            Thread.Sleep(1000);
        }

        var hexNumericalStrings = new[] {
            "B",
            "BA",
            "BAD",
            "BADC",
            "badca",
            "badcaf",
            "badcafe",
            "-A",
            "-B.A",
            "-CB.A",
            "-DCB.A",
            "-EDCB.A",
            "-FEDCB.A",
        };

        foreach (var s in hexNumericalStrings)
        {
            Console.WriteLine($"display '{s}'");
            display.DisplayNumericalString(s);
            Thread.Sleep(1000);
        }

        Console.WriteLine("display integer 1~max");

        for (var e = 0.0f; e <= (float)display.NumberOfDigits; e += 0.01f)
        {
            display.Display((int)MathF.Pow(10.0f, e));
            Thread.Sleep(10);
        }

        Console.WriteLine("display integer -1~min");

        for (var e = 0.0f; e <= (float)(display.NumberOfDigits - 1); e += 0.01f)
        {
            display.Display(-(int)MathF.Pow(10.0f, e));
            Thread.Sleep(10);
        }

        Console.WriteLine("display hex integer 0x1~max");

        for (var e = 0.0f; e <= (float)display.NumberOfDigits; e += 0.002f)
        {
            display.DisplayHex((int)MathF.Pow(16.0f, e));
            Thread.Sleep(10);
        }

        Console.WriteLine("display float +min~+max");

        for (var e = -(float)display.NumberOfDigits; e <= +(float)display.NumberOfDigits; e += 0.01f)
        {
            display.Display((float)MathF.Pow(10.0f, e));
            Thread.Sleep(10);
        }

        Console.WriteLine("display float -min~-max");

        for (var e = -(float)(display.NumberOfDigits - 1); e <= +(float)(display.NumberOfDigits - 1); e += 0.01f)
        {
            display.Display(-(float)MathF.Pow(10.0f, e));
            Thread.Sleep(10);
        }

        Console.WriteLine("display integer with zero padding");

        for (var e = 0.0f; e <= (float)display.NumberOfDigits; e += 0.02f)
        {
            display.DisplayZeroPadding((int)MathF.Pow(10.0f, e));
            Thread.Sleep(10);
        }

        for (var e = 0.0f; e <= (float)(display.NumberOfDigits - 1); e += 0.02f)
        {
            display.DisplayZeroPadding(-(int)MathF.Pow(10.0f, e));
            Thread.Sleep(10);
        }

        for (var e = 0.0f; e <= (float)display.NumberOfDigits; e += 0.01f)
        {
            display.DisplayHexZeroPadding((int)MathF.Pow(16.0f, e));
            Thread.Sleep(10);
        }

        Console.WriteLine("display float with width and precision");

        for (var e = -(float)display.NumberOfDigits; e <= +(float)display.NumberOfDigits; e += 0.02f)
        {
            display.Display((float)MathF.Pow(10.0f, e), 1, 2); // in format 'x.xx'
            Thread.Sleep(10);
        }

        for (var e = -(float)(display.NumberOfDigits - 1); e <= +(float)(display.NumberOfDigits - 1); e += 0.02f)
        {
            display.Display(-(float)MathF.Pow(10.0f, e), 1, 2); // in format 'x.xx'
            Thread.Sleep(10);
        }

        Console.WriteLine("display integer 0");
        display.Display(0);
        Thread.Sleep(1000);

        Console.WriteLine("display float +0");
        display.Display(0.0f);
        Thread.Sleep(1000);

        Console.WriteLine("display float -0");
        display.Display(-0.0f);
        Thread.Sleep(1000);

        Console.WriteLine("display float +INF");
        display.Display(float.PositiveInfinity);
        Thread.Sleep(1000);

        Console.WriteLine("display float -INF");
        display.Display(float.NegativeInfinity);
        Thread.Sleep(1000);

        Console.WriteLine("display float NaN");
        display.Display(float.NaN);
        Thread.Sleep(1000);

        Console.WriteLine("display decimal point per digit");

        for (var digit = 0; digit < display.NumberOfDigits; digit++)
        {
            display.Clear();

            display.SetDecimalPointOnAt(digit);

            Thread.Sleep(500);
        }

        Console.WriteLine("display hexadecimal number per digit");

        for (var digit = 0; digit < display.NumberOfDigits; digit++)
        {
            display.Clear();

            for (var number = 0; number < 0x10; number++)
            {
                display.SetHexNumberAt(digit, number);

                Thread.Sleep(100);
            }
        }

        Console.WriteLine("display decimal number per digit");

        for (var digit = 0; digit < display.NumberOfDigits; digit++)
        {
            display.Clear();

            for (var number = 0; number < 10; number++)
            {
                display.SetDecimalNumberAt(digit, number);

                Thread.Sleep(100);
            }
        }

        Console.WriteLine("set each segment on (A~G and DP)");

        for (var digit = 0; digit < display.NumberOfDigits; digit++)
        {
            display.Clear();

            for (var segment = 0; segment < 8; segment++)
            {
                display.SetSegmentBitsAt(digit, (byte)(0b1 << segment));

                Thread.Sleep(100);
            }
        }

        Console.WriteLine("clear only character segments (A~G)");

        for (var digit = 0; digit < display.NumberOfDigits; digit++)
        {
            display.SetSegmentBitsAt(digit, (byte)0b11111111); // set all segments on
        }

        Thread.Sleep(1000);

        display.ClearCharacterSegments();

        Thread.Sleep(1000);

        display.Clear();

        Thread.Sleep(1000);


        Console.WriteLine("clear only decimal point segment (DP)");

        for (var digit = 0; digit < display.NumberOfDigits; digit++)
        {
            display.SetSegmentBitsAt(digit, 0b11111111); // set all segments on
        }

        Thread.Sleep(1000);

        display.ClearDecimalPointSegments();

        Thread.Sleep(1000);

        display.Clear();

        Thread.Sleep(1000);
    }
示例#27
0
 private void CleanupItems()
 {
     display      = null;
     listMaker    = null;
     validMembers = null;
 }