Your browser lacks required capabilities. Please upgrade it or switch to another to continue.
Loading…
<<set $idk to "yes">>Hello, and welcome to the Slime Puncher Tech Demonstator.
Since this project is only really being made to test out potential ways to make a text-based combat system that isn't just pure RNG, so I didn't put much thought into plot. But essentially, you're boxing against slimes.
This tech demo may be a bit buggy, unbalanced, or just plain not good. Feedback and bug reports would be much appreciated so I may either improve this system or design a better one in the future.
Now what are you waiting for? Get out there and [[Punch Some Slimes!]]
[[Wait, how do I play?!]]<<set $action to "punchything1">><<display $action>>
You raise your fists just in time to block the <<print $slime>>'s fist!<<nobr>><<set $ms to (random(1500,3000)*$enemyspeedmod)>><<set $nextstage to either("enemyblock1","enemyattack1","enemyattack1")>><</nobr>>Version 0.3
<<nobr>>
<<if $combat is "yes">>
<<repeat `($regenspeed) + 's'`>>
<<if $energy lt $energymax>>
<<set $energy += 1>>
<</if>>
<</repeat>>
<</if>>
<</nobr>>
Fullness: <span id="player-FULL"><<print $fullness>></span>%
Stamina: <span id="player-STAM"><<print $stamina>></span>%
Weight: <span id="player-LBS"><<print $lbs>></span> lbs
<<if $exp gte 1>> Upgrade points:<<print $exp>><</if>><<nobr>>
<<set $stamina to (($energy/$energymax)*100).toFixed(0)>>
<<replace "#player-STAM">><<print $stamina>><</replace>>
<</nobr>><<set $combat to "no">>
<<set $cap to 20>>
<<set $full to 0>>
<<set $energymax to 10>>
<<set $energy to 10>>
<<set $stamina to 100>>
<<set $lbs to 120>>
<<set $ep to 3>>
<<set $wins to 0>>
<<set $loses to 0>>
<<set $regentimer to 1>>
<<set $resting to "no">>
<<set $forcedrest to "no">>
<<set $exp to 0>>
<<set $lbexp to 0>>
<<set $playerhitbonus to 1>>
<<set $lhb to (($lbs/100)-1.2).toFixed(0)>>
<<set $lbshitbonus to $lhb - ($lhb / 4)>>
<<set $enemyhitbonus to 1>>
<<set $ehplevel to 1>>
<<set $enemyhpmod to 1>>
<<set $enemyspeedmod to 1>>
<<set $enemyblock to "no">>
<<set $damage to 0>>
<<set $scrappyhp to 10>>
<<set $averagehp to 15>>
<<set $bighp to 20>>
<<set $enemytimer to 0>>
<<goto "start">><<nobr>>
<<if $idk is "yes">>
<<set $fullness to (($full/$cap)*100).toFixed(0)>>
<<set $stamina to (($energy/$energymax)*100).toFixed(0)>>
<<replace "#player-FULL">><<print $fullness>><</replace>>
<<replace "#player-LBS">><<print $lbs>><</replace>>
<<replace "#player-STAM">><<print $stamina>><</replace>>
<<if $combat is "no">>
<<if $resting is "no">>
<<set $regenspeed to ((($lbs - 20) / 100).toFixed(1))>>
<<else>>
<<set $regenspeed to ((($lbs - 20) / 50).toFixed(1))>>
<</if>>
<</if>>
<</if>>
<</nobr>><<set $action to "punchything1">><<display $action>>
<<set $energy -= 2>><<nobr>><<set $damage to random(1,2)>>
<<set $enemyhp to $enemyhp - ($damage * $playerhitbonus) - $lbshitbonus>><</nobr>>
You manage to punch the $slime in its "face"!<<nobr>>
<<set $ms to $ms + (random(400,800)*$enemyspeedmod)>>
<<set $nextstage to either("enemyblock1","enemyattack1","enemyattack1")>>
<<if $enemyhp lte 0>><<goto "fightwininit">><</if>><</nobr>><<set $action to "punchything2">><<display $action>>
<<set $energy -= 2>>
You swing a fist at the <<print $flavor>> <<print $slime>>, but it manages to block it!<<nobr>><<set $ms to (random(1500,3000)*$enemyspeedmod)>><<set $nextstage to either("enemyblock1","enemyattack1","enemyattack1")>><</nobr>>You enter the arena, taking off your robe as you make your way into the Boxing Ring.
<<display "enemyintro">><<nobr>>
<<set $slime to either("Slime","Pudding")>>
<<if $slime is "Pudding">>
<<set $flavor to either("Chocolate","Vanilla","Butterscotch")>>
<<else>>
<<set $flavor to either("Strawberry","Cherry","Orange","Lime","Watermelon")>>
<</if>>
<</nobr>>As you enter the boxing ring, you see a $flavor $slime enter on the opposite side to you.
<<set $physique to either("scrappyslime","bigslime","balancedslime")>><<display $physique>>
Once you and your opponent reach the middle of the ring, the referee goes over the rules with each of you, backs away and [[blows the whistle->fightinit]].<<set $enemyhitbonus to (0.5 * $ehplevel)>><<set $enemyhp to (10*$enemyhpmod).toFixed(0)>><<set $enemyhpmax to $enemyhp>><<set $enemyspeedmod to 0.5>><<set $enemyadj to either("scrappy","small","little")>>
The $slime is relatively small, taking the shape of a short, lithe, <<print $flavor>>-flavored human. The $slime looks quite agile, hopping around a bit and throwing a rapid flurry of warmup punches at the air in front of it.<<set $enemyhitbonus to (2 * $ehplevel)>><<set $enemyhp to (20*$enemyhpmod).toFixed(1)>><<set $enemyhpmax to $enemyhp>><<set $enemyspeedmod to 1.5>><<set $enemyadj to either("bulky","large","big")>>
The $slime in front of you towers over you, standing at least a head above you. Barely able to maintain it's bulky human shape, the $flavor $slime raises it's large "fists" in the air, letting out a gurgly roar.<<set $enemyhitbonus to (1 * $ehplevel)>><<set $enemyhp to (15*$enemyhpmod).toFixed(1)>><<set $enemyhpmax to $enemyhp>><<set $enemyspeedmod to 1>><<set $enemyadj to "normal">>
Your opponent is a relatively normal-sized humanoid shape, looking like it's about the same size as you are<<if $lbs gt 200>>. Or at least were, about <<print $lbs-120>> lbs ago<</if>>. The $slime raises it's fists up, getting ready for the match.<<set $combat to "yes">><<set $nextstage to either("enemyattack1","enemyblock1")>><<goto $nextstage>><<set $action to "punchything1">><<display $action>>
<<set $ms to (random(800,1400)*$enemyspeedmod)>><<set $nextstage to "enemyattack2">><<set $enemyblock to "no">><<set $action to "punchything2">><<display $action>>
<<set $enemyblock to "yes">>The $slime raises its arms defensively.<<nobr>>
<<set $ms to random(1500,5000)>><<set $nextstage to "enemyblock2">><</nobr>><<set $action to "blockything">><<display $action>>
The $slime raises a fist to swing at you!<<nobr>>
<<set $ms to (random(1000,2000)*$enemyspeedmod)>><<set $nextstage to "enemyattack3">><<set $enemyblock to "no">><</nobr>><<set $action to "punchything1">><<display $action>>
The $slime lowers its arms to a neutral stance.<<nobr>><<set $enemyblock to "no">>
<<set $ms to (random(1500,3000)*$enemyspeedmod)>><<set $nextstage to either("enemyblock1","enemyattack1","enemyattack1")>><</nobr>>With one last good punch, the $flavor $slime falls over, hitting the ground with a splat!
<<set $wins += 1>><<set $exp += 1>>
You look out to the cheering crowd, raising your boxing goves in victory as your opponent is poured into a bucket and taken away.
<<set $ep to 3>>
[[Continue->winrest]]<<set $action to "punchything1">><<display $action>>
<<set $fill to random(2,3)>><<set $full to $full + ($fill * $enemyhitbonus)>>
The $slime hits you in the face, stuffing a <<print $flavor>>-flavored glob down your throat.<<nobr>><<set $enemyblock to "no">>
<<if $full gt $cap>>
<<goto "fightloseinit">>
<</if>>
<<set $ms to (random(1500,3000)*$enemyspeedmod)>><<set $nextstage to either("enemyblock1","enemyattack1","enemyattack1")>><</nobr>><<set $combat to "no">>
<<goto "fightwin">>
<<display "restdata">><<nobr>>
<<if $combat is "yes">>
<<silently>>
<<repeat 100ms>>
<<set $ms to $ms - 100>>
<<if $ms lt 80>>
<<set $ms to (random(500,2500)*$enemyspeedmod)>>
<<goto $nextstage>>
<<stop>>
<</if>>
<</repeat>>
<</silently>>
<</if>>
<</nobr>>Oh right. Sorry.
Basically, you'll have 2 buttons to press. "Attack!" and "Block!".
You can press "Attack!" at any time, though your attacks won't do damage if you attack while your opponent is blocking. Be careful about your timing, as punching too much in rapid succession will quickly drain away at your stamina. If you use up all your stamina at once punching, you'll have to wait for it to regenerate before you can act again, leaving you vulnerable to attack!
When the enemy is about to attack you, the "Block!" button will appear. You will need to press it quickly before the slime hits you, or else it will stuff some of itself down your throat.
If your stomach gets too full, you will get KO'd, and the slime will win that match.
After a match, any slime you've been fed will be turned into fat. The fatter you become, the harder your hits will... Well, hit. However, it will also take longer to regain stamina the heavier you are. Furthermore, if you get too big, you may end up immobile!
More mechanics may be added in future versions.
[[Ok thanks->start]]<<set $combat to "no">>
<<goto "fightlose">>
<<display "restdata">>The $flavor $slime jams one last glob of itself down your throat, causing you to stumble backwards and fall over<<if $lbs gt 250>>, causing ripples to jiggle through your body and you hit the ground with a loud thud<</if>>.
<<set $loses += 1>>
As you black out from a food coma, the last thing you see is your opponent celebrating and waving to the cheering crowd...
<<set $ep to 3>>
[[Continue->loserest]]<<nobr>>
<<set $lbs += $full>>
<<set $full to 0>>
<<set $energy to $energymax>>
<<set $ep to 3>>
<</nobr>>After your match, you return to your home in triumph to prepare for your next fight.
<<nobr>>
<<set $enemyhpmod += 0.2>>
<<set $ehplevel += 0.1>>
<</nobr>>
<<if $lbs lt 750>><<display "home">><<else>><<display "immobile">><</if>>After you wake up and recover from your last fight, you return to your home to train up for your next match...
<<if $lbs lt 750>><<display "home">><<else>><<goto "immobilelose">><</if>>You are currently in your home.
[[Next Match!]]
<<if $lbs gte 95>><<if $ep gt 0>>[[Exercise]]<<else>>You don't have anymore time to shave weight before your next match!<</if>>
<</if>><<if $exp gte 1>>[[Training]]<</if>>You once again enter the arena, taking off your<<if $lbs > 199>> ill-fitting<</if>> robe as you make your way into the Boxing Ring.
<<nobr>>
<<set $lhb to (($lbs/100)-1.2).toFixed(0)>>
<<set $lbshitbonus to $lhb - ($lhb / 4)>>
<</nobr>>
<<display "enemyintro">>How hard are you going to exercise?
[[Light Exercise]] (-5 lbs)
[[Moderate Exercise]] (-10 lbs)
[[Rigorous Exercise]] (-20 lbs)
<<if $lbs gt 200>>[[Extreme Diet and Exercise]] (-100 lbs)<</if>>
[[Go back->home]]You decide to do some training to get yourself ready for the next match.
You currently have <<print $exp>> Upgrade Points.
[[Stomach Capacity Training]] (+1 Capacity, currently <<print $cap>>)
[[Endurance Training]] (+2 Max Energy, currently <<print $energymax>>)
[[Boxing Training]] (+0.1 to Damage Modifier, currently x<<print ($playerhitbonus).toFixed(1)>>)
[[Go back->home]]<<set $lbs -= 5>><<set $ep -=1>><<set $lbexp += 5>>You decide to do some light exercises to get yourself in shape for your next match. Light jogging, hitting a punching bag, nothing too fancy.
<<display "expcheck">>
[[Continue->home]]<<set $lbs -= 10>><<set $ep -=1>><<set $lbexp += 10>>You decide to push yourself a little to get yourself ready for your next match. You jog through the park, do some pull ups, that kinda stuff.
<<display "expcheck">>
[[Continue->home]]<<set $lbs -= 20>><<set $ep -=1>><<set $lbexp += 20>>Wanting to really get in shape, you decide to do some seriously tough exercises. We're talking a full on 4 minute 50 second montage worth of exercise.
As you finish jogging up a stairway in the park to your personal theme song, you know you're gonna really be ready for your next match.
<<display "expcheck">>
[[Continue->home]]<<set $lbs -= 100>><<set $ep -=3>><<set $exp += 1>>You know, you've really gotten to be way heavier than you're comfortable with being. It's time for that to change. You spend a long period of time on hiatus, dieting and exercising to shave off all the weight you've gained from boxing slimes and puddings.
Eventually, you manage to get your weight down a hundred pounds or so, feeling like you're a lot more in shape as a result! (+1 Upgrade Point)
[[Continue->home]]<<if $lbsexp gte 100>><<set $exp += 1>><<set $lbsexp -= 100>>
Thanks to all the exercise you've been doing, you feel like you've gotten a bit more in shape! (+1 Upgrade Point)
<</if>>Now I don't think this is a normal training technique in boxing. But your opponents are all Slimes, so I guess normal goes out the window in this case.
You practice stuffing yourself to help stretch out your stomach, doing everything from drinking water until you feel like you're about to burst, to going to the all-you-can-eat Buffet, to even just getting your coach to funnel feed you.
Sure, you definitely put on a few pounds while you were "training", but now you can take more hits.
<<set $cap to $cap + 1>><<set $exp -=1>><<set $lbs += random(0,30)>>
<<if $exp gte 1>><<display "Training">><<else>>[[Continue->home]]<</if>>You decide to train yourself to go a bit further, pushing your body a bit more to have more endurance for your next match.
<<set $energymax += 2>><<set $exp -=1>><<set $lbs += random(0,30)>>
<<if $exp gte 1>><<display "Training">><<else>>[[Continue->home]]<</if>>You decide to spend some time practicing boxing techniques and training to hit harder.
<<set $playerhitbonus += 0.1>><<set $exp -=1>>
<<if $exp gte 1>><<display "Training">><<else>>[[Continue->home]]<</if>>After you head home and rest away your full stomach after your victory, you wake up to find that you are unable to get yourself out of bed! After a bit of panic, you take some time to think over your options.
<<display "endingcheck">>When you wake up from being beaten in your last match, you find yourself unable to move. After a bit of panic, you take some time to think over your options.
<<display "endingcheck">>Luckily for you, you've managed to rack up a lot of winnings from your fights, so you don't need to worry about having to find someone to take care of you.
GAME OVER
Victories: $wins
Defeats: $loses
[[Restart->preinit]]Now that you aren't able to move, your career is pretty much over. Which is unfortunate, since it wasn't a very <<if $loses gt 4>>successful<<else>>long<</if>> one all things considered. You'll be able to make ends meet for now, but you'll need to somehow figure out how to get back your ability to walk before you eat yourself out of house and home.
GAME OVER
Victories: $wins
Defeats: $loses
[[Restart->preinit]]Having never lost a match, you've got quite the treasure saved up from your successful slime boxing career. You'll easily be able to afford to live comfortably, maybe even never having to work another day in your life. Not that you are really able to work, in your current state.
You decide to order up some delivery and enjoy your immobility.
GAME OVER
//UNDEFEATED CHAMPION!//
Victories: $wins
[[Restart->preinit]]Unfortunately, it would seem that your aspirations to become a champion Slime Boxer were hopeless, and now you are left with no winnings and no mobility...
GAME OVER
//Glass Jaw//
Defeats: $loses
[[Restart->preinit]]<<if $wins lt 1>><<display "worstending">><<else>><<if $wins lt 5>><<display "badending">><<else>><<if $loses lte 0>><<display "bestending">><<else>><<display "goodending">><</if>><</if>><</if>>
<<nobr>>
<<if $idk is "yes">>
<<set $fullness to (($full/$cap)*100).toFixed(0)>>
<<set $stamina to (($energy/$energymax)*100).toFixed(0)>>
<<replace "#player-FULL">><<print $fullness>><</replace>>
<<replace "#player-LBS">><<print $lbs>><</replace>>
<<if $combat is "no">>
<<set $regenspeed to ((($lbs - 20) / 100).toFixed(1))>>
<<set $lbshitbonus to (($lbs-120)/100).toFixed(0)>>
<</if>>
<</if>>
<</nobr>>
<<if tags().includes("punch")>>
<<replace "#can-punch">>
<<if $energy gte 1>>
<<if $energy gte 2>>[[Attack!->attacksuccess]]
<<else>>You are too tired to swing any punches right now...
<</if>><<else>>You are too tired to even raise your arms...
<</if>>
<</replace>>
<</if>>
<<if tags().includes("block")>>
<<if $energy gte 1>>
<<replace "#can-block">>
[[Block!]]
<</replace>>
<</if>>
<<else>>
<<replace "#can-block">><</replace>>
<</if>><<if $resting is "no">><<if $stamina gte 20>>[[Attack!->attacksuccess]] <<else>>You are too tired to swing any punches right now...<<set $resting to "yes">><<set $forcedrest to "yes">> <</if>>
[[Rest]]<<else>><<display "restything">><</if>>
<<print $flavor>> <<print $slime>>'s HP: <<print $enemyhp>>/<<print $enemyhpmax>><<if $resting is "no">><<if $stamina gte 20>>[[Attack!->attackblock]] <<else>>You are too tired to swing any punches right now...<<set $resting to "yes">><<set $forcedrest to "yes">> <</if>>
[[Rest]]<<else>><<display "restything">><</if>>
<<print $flavor>> <<print $slime>>'s HP: <<print $enemyhp>>/<<print $enemyhpmax>><<if $resting is "no">><<if $stamina gte 20>><<if $energy gte 2>>[[Attack!->attacksuccess]] <<else>>You are too tired to swing any punches right now...<<set $resting to "yes">><<set $forcedrest to "yes">> <</if>>--- [[Block!]]<<else>>You are too tired to even raise your arms...<<set $resting to "yes">><<set $forcedrest to "yes">><</if>>
[[Rest]]<<else>><<display "restything">><</if>>
<<print $flavor>> <<print $slime>>'s HP: <<print $enemyhp>>/<<print $enemyhpmax>><<if $lbs gt 119>><<display "normal">><<else>>
<</if>><<if $lbs gt 144>><<display "soft">><<else>>
<</if>><<if $lbs gt 179>><<display "chubby">><<else>>
<</if>>Test
<<display "home">><<if $lbs gt 199>><<display "plump">><<else>>
<</if>><<if $lbs gt 229>><<display "fat">><<else>>
<</if>><<if $lbs gt 349>><<display "obese">><<else>>
<</if>><<if $lbs gt 399>><<display "morbid">><<else>>
<</if>><<if $lbs gt 449>><<display "corpulent">><<else>>
<</if>><<if $lbs gt 549>><<display "rotund">><<else>>
<</if>><<if $lbs gt 599>><<display "barelymobile">><<else>>
<</if>>Double-click this passage to edit it.<<if $stamina gt 80>><<set $resting to "no">>You are no longer feeling too worn out and are back in the fight!<<set $forcedrest to "no">>
<<display $action>><<else>>You are currently trying to catch your breath and regain your stamina...<<if $forcedrest is "no" and $energy gte 2>>
[[Stop Resting]]<</if>><</if>><<set $resting to "yes">><<set $forcedrest to "no">>You take a moment to catch your breath and gather yourself...<<set $nextstage to "enemyattack1">>
<<print $flavor>> <<print $slime>>'s HP: <<print $enemyhp>>/<<print $enemyhpmax>><<set $resting to "no">>You finish resting and get back into the fight!
<<display $action>>