Your browser lacks required capabilities. Please upgrade it or switch to another to continue.
Loading…
/% I won't comment passage content and you think this think will be the exception? Well I'll just comment it but not because you told me to do it. Hpmf.%/
/% Now in more serious matters, I won't explain with details what is here but it just where the character is made. With fieldset (The cool looking border with a word between it) some list and things.%/
<<if $cmessage>>
<<print $cmessage>>
<<unset $cmessage>>
<</if>>
<fieldset class="charc">
<legend>Character Creation</legend>
@@.darkyellow;What is your name?@@
<br>
<<textbox "$pName" $pName autofocus>> <<textbox "$pSurname" $pSurname>>
<br>
<br>
@@.darkyellow;Select your gender:@@
<ul>
<<listbox "$playervar.gender" autoselect>>
<<option "Male" "male">>
<<option "Female" "female">>
<</listbox>>
</ul>
@@.darkyellow;Select your body height:@@ ^^@@.red;Your body height will affect some statistics of your character.@@^^
<ul>
<<listbox "$playervar.height" autoselect>>
<<option "Tall" "tall">>
<<option "Common" "common">>
<<option "Small" "small">>
<</listbox>>
</ul>
@@.darkyellow;Select your body shape:@@ ^^@@.red;Your body shape will affect some statistics of your character.@@^^
<ul>
<<listbox "$playervar.bodyshape" autoselect>>
<<option "Fit" 60>>
<<option "Common" 40>>
<<option "Chubby" 20>>
<</listbox>>
</ul>
@@.darkyellow;Select your preferred hobby:@@ ^^@@.red;Your hobby will give a learning bonus to your selected skill.@@^^
<ul>
<<listbox "$hobby" autoselect>>
<<option "None" "joat">>
<<option "Programming" "programming">>
<<option "Cooking" "cooking">>
<<option "Gardening" "gardening">>
<<option "Art" "art">>
<<option "Athletic" "athletic">>
<</listbox>>
</ul>
<<set _skinTones to { Light: "light", Fair: "fair", Olive: "olive", Brown: "brown", Black: "blackT"}>>
@@.darkyellow;Select your skin tone@@
<ul>
<<listbox "$pSkinTone" autoselect>>
<<optionsfrom _skinTones>>
<</listbox>>
</ul>
</fieldset>
<<button "Continue">>
<<if $pName isnot "Name" and $pSurname isnot "Surname">>
<<goto charcreation2>>
<<else>>
<<set $cmessage to "@@.red;Your name/surname can't be the default one.@@">>
<<goto charcreation1>>
<</if>>
<</button>><<gendersetter>>
<<if $playervar.sensibility isnot 0>>
<<set $playervar.sensibility to 0>>
<</if>>
<fieldset class="charc">
<legend>Character Creation</legend>
<fieldset class="charc">
<legend>Hair</legend>
<<switch $playervar.gender>>
<<case "female">>
<<set _hairstyle to ["Bun", "Braided", "Crown Braid", "French Braid", "Asymmetric Cut", "Undercut", "Fishtail", "Bob Cut", "Lob", "Ponytail", "Pigtails(Short)", "Pigtails(Long)", "Pigtails(Loose)", "Pixie Cut", "Straight(Loose)"]>>
<<case "male">>
<<set _hairstyle to ["Butch", "Crew Cut", "Ivy League", "Regular cut", "Undercut", "Wings", "Pixie Cut", "Loose", "Ponytail(Male)"]>>
<</switch>>
@@.yellow;Select your hair style: @@
<ul>
<<listbox "$pHairStyle" autoselect>>
<<optionsfrom _hairstyle>>
<</listbox>>
</ul>
<<set _haircolors to ["Black", "Brown", "Blonde", "Ginger"]>>
@@.yellow;Select your hair color: @@
<ul>
<<listbox "$pHairColor" autoselect>>
<<optionsfrom _haircolors>>
<</listbox>>
</ul>
<<if $playervar.gender is "male">>
@@.yellow;Select your beard size: @@
<ul>
<<listbox "$pBeardSize" autoselect>>
<<option "Inexistent (It wont grow)" 0>>
<<option "Almost none" 1>>
<<option "Small" 5>>
<<option "Medium" 10>>
<<option "Large" 15>>
<</listbox>>
</ul>
<</if>>
</fieldset>
<<if $playervar.gender is "female">>
<fieldset class="charc">
<legend>Chest</legend>
@@.yellow;Select your breast size: @@
<ul>
<<listbox "$playervar.breastsize" autoselect>>
<<option "Perky" 60>>
<<option "Common" 40>>
<<option "Small" 20>>
<<option "Flat" 0>>
<</listbox>>
</ul>
@@.yellow;Select your nipple type: @@
<ul>
<<listbox "$playervar.nippletype" autoselect>>
<<option "Inverted" "inverted">>
<<option "Protruding" "protruding">>
<<option "Puffy" "puffy">>
<<option "Flat" "flat">>
<</listbox>>
</ul>
@@.yellow;Select your nipple size: @@
<ul>
<<listbox "$playervar.nipplesize" autoselect>>
<<option "Medium" 1.25>>
<<option "Common" 0.95>>
<<option "Small" 0.48>>
<<option "Tiny" 0.24>>
<</listbox>>
</ul>
</fieldset>
<</if>>
<fieldset class="charc">
<legend>Genital</legend>
<<if $playervar.gender is "female">>
@@.yellow;Select your clitoris size: @@
<ul>
<<listbox "$playervar.clitorissize" autoselect>>
<<option "Medium" 1.2>>
<<option "Common" 0.9>>
<<option "Small" 0.5>>
<<option "Tiny" 0.3>>
<</listbox>>
</ul>
@@.yellow;Select your vagina tightness: @@
<ul>
<<listbox "$playervar.vagtightness" autoselect>>
<<option "Tight" 50>>
<<option "Common" 35>>
<<option "Loose" 20>>
<</listbox>>
</ul>
<<else>>
@@.yellow;Select your penis size: @@
<ul>
<<listbox "$playervar.penissize" autoselect>>
<<option "Big" 15>>
<<option "Common" 12>>
<<option "Small" 6>>
<<option "Tiny" 3>>
<</listbox>>
</ul>
@@.yellow;Select your balls size: @@
<ul>
<<listbox "$playervar.ballssize" autoselect>>
<<option "Big" 8>>
<<option "Common" 4>>
<<option "Small" 2>>
<</listbox>>
</ul>
<</if>>
</fieldset>
<fieldset class="charc">
<legend>Back</legend>
@@.yellow;Select your butt size: @@
<ul>
<<listbox "$playervar.buttsize" autoselect>>
<<option "Plumpy" 60>>
<<option "Common" 40>>
<<option "Small" 20>>
<<option "Flat" 0>>
<</listbox>>
</ul>
@@.yellow;Select your anus tightness: @@
<ul>
<<listbox "$playervar.anustightness" autoselect>>
<<option "Tight" 50>>
<<option "Common" 35>>
<<option "Loose" 20>>
<</listbox>>
</ul>
</fieldset>
</fieldset>
<<button "Change Selections" "charcreation1">><</button>>
<br>
<<button "Continue" "charcreation3">><</button>><<bsandhsetter>>
<<antrwidthsetter>>
<<if $playervar.gender is "female">>
<<femalesetter>>
<<set $playervar.sensibility += (($playervar.vagtightness + $playervar.anustightness)/2)>>
<<set $playervar.penissize to undefined>>
<<set $playervar.ballssize to undefined>>
<<else>>
<<malesetter>>
<<set $playervar.sensibility += $playervar.anustightness>>
<<set $playervar.breastsize to undefined>>
<<set $playervar.nipplesize to undefined>>
<<set $playervar.vagtightness to undefined>>
<<set $playervar.clitorissize to undefined>>
<</if>>
<<charStatus>>
<br>
<<button "Change Selections" "charcreation2">><</button>>
<br>
<<button "Continue" "charcreation4">><</button>><<set $gamestarted to 1>>
<<set $disablernggod to false>>
<<set $bps.upperbody[5].primary to clone(setup.clothes.accesories[1])>>
<<set $displayColorText to true>>
<<set _keys to Object.keys(setup.clothes.colors)>>
<<if $playervar.gender is "female">>
<<set $bps.upperbody[0].primary to clone(setup.clothes.upperbouter[2]); $bps.upperbody[0].primary.color to _keys[_keys.length * Math.random() << 0]>>
<<set $bps.upperbody[0].secondary to clone(setup.clothes.upperbunder[1]); $bps.upperbody[0].secondary.color to _keys[_keys.length * Math.random() << 0]>>
<<set $bps.lowerbody[0].primary to clone(setup.clothes.lowerbouter[2]); $bps.lowerbody[0].primary.color to _keys[_keys.length * Math.random() << 0]>>
<<set $bps.lowerbody[0].secondary to clone(setup.clothes.lowerbunder[1]); $bps.lowerbody[0].secondary.color to _keys[_keys.length * Math.random() << 0]>>
<<set $bps.lowerbody[2].primary to clone(setup.clothes.legwear[1]); $bps.lowerbody[2].primary.color to _keys[_keys.length * Math.random() << 0]>>
<<set $bps.lowerbody[3].primary to clone(setup.clothes.shoes[1]); $bps.lowerbody[3].primary.color to _keys[_keys.length * Math.random() << 0]>>
<<set $bps.lowerbody[3].secondary to clone(setup.clothes.footwear[2]); $bps.lowerbody[3].secondary.color to _keys[_keys.length * Math.random() << 0]>>
<<elseif $playervar.gender is "male">>
<<set $bps.upperbody[0].primary to clone(setup.clothes.upperbouter[1]); $bps.upperbody[0].primary.color to _keys[_keys.length * Math.random() << 0]>>
<<set $bps.lowerbody[0].primary to clone(setup.clothes.lowerbouter[1]); $bps.lowerbody[0].primary.color to _keys[_keys.length * Math.random() << 0]>>
<<set $bps.lowerbody[0].secondary to clone(setup.clothes.lowerbunder[2]); $bps.lowerbody[0].secondary.color to _keys[_keys.length * Math.random() << 0]>>
<<set $bps.lowerbody[3].primary to clone(setup.clothes.shoes[0]); $bps.lowerbody[3].primary.color to _keys[_keys.length * Math.random() << 0]>>
<<set $bps.lowerbody[3].secondary to clone(setup.clothes.footwear[1]); $bps.lowerbody[3].secondary.color to _keys[_keys.length * Math.random() << 0]>>
<</if>>
<<hobbyselection>>
You are @@.orange;<<print "$pName $pSurname">>@@, you are in a train to @@.gold;Golden Leaf City@@ after finishing high school and turning 18 you told your parents that you wanted to live alone so you can achieve your personal goals. /*Expand later with the selected hobby. */
<br>
<br>
They were excited at your attitude and told you about a small house in @@.gold;Golden Leaf City@@ where they lived many years ago that they rented out to other people. But, since the last tenant didn't take care of the house, they stopped renting it out and now you have a house all to yourself. So, here you are, on your way to @@.gold;Golden Leaf City@@ on a slow train with @@.yellow;$credits credits@@ in your account. You haven't slept well since you got out of your parents' house nor eaten anything besides the food that you bought on the train.
<br>
<br>
<div class="divisor"></div>
//* After what looks like an eternity (But where just 3 hours) *//
<br>
<br>
Welcome to @@.gold;Golden Leaf City@@. From the station you can see a small panorama of a few places in the city with a suprising amount of greenery around, quite a lot considering it's a city. On one end of the city, there appear to be three main buildings that attract a lot of your attention due to their unique modern designs.
<br>
In the past the city was just a small rural town, but thanks to the arrival of a successful businessman called <<print $spirealfOw.name>> it has expanded and thrived to the point where it is now. On the other side of the city you can see what appears to be the residential area where you will live.
<br>
<br>
When you finally arrive at your new house, you notice it's pretty big from the outside. You are about to open the front door with the digital key in your phone when you get a message on your phone, it's from your parents. It's odd that you didn't recieve the message until now, maybe there was a problem with the Network?
<br>
<br>
// "@@.lightyellow;Hey <span class="orange"><<print $pName>></span>, we hope that you arrived well. We are really happy that you made this decision and we really hope that you use it to decide what you want to do with your life.@@
<br>
<<timed 1s>> <<set $credits += 70>><<replace #credits>>$credits<</replace>>
@@.lightyellow;We transfered some money in your account so you can buy some food, you will need to clean the house as we haven't been there since we started to live here. There are probably a few things that need to be repaired or changed so we bought a little gift for you, it's probably already at the front door. That's all, love you and take care!@@"
// @@.yellow; +70 credits@@
<br>
<br>
<<next 250ms>>
After reading the message you step through the front gate and take a look around. There is space for a small garden or something out nearby and in the corner by the wall there was indeed a "small" gift;
A wardrobe, a bed, a table with a chair and a laptop on top, a sofa, a TV, some cookware and a box with personal use things like soap and shampoo and cleaning supplies. Not exactly a small gift, this could've cost a fortune.
After inspecting everything and unlocking the house's door you put the phone in your pocket and step inside.
~~''@@.red;You are about to start the game, you may join college [Not implemented. WIP] or start working [1 job implemented. WIP] directly but beware that if you don't join college in a span of 2 weeks you will need to wait 6 months to apply.@@''~~
<br>
<br>
<<button "Enter the house" "prelivingroom">><</button>>
<</timed>><<passNameRep "House">>
<<if $finishL isnot true>>
@@#call1;As you enter the house and take a good look around, you see that it's in pretty bad shape. There are things that need to be fixed, others that needs to be replaced and rooms that need to be cleaned.
Fortunately for you, there is running water and some useful cleaning supplies in the boxes. You may need to call your father and ask if he knows someone in this city that can help you fix some parts of the house.@@
@@#call;
<br>
<<button "Call father">>
<<remove #skip>>
<<replace #call>>
<</replace>>
<<set $clean to 0>>
<<replace #call1>>
<br>
//<<type 50ms>>Calling...Ding<</type>>
<br>
<<timed 1500ms>>
- "@@.lightyellow;Hello, @@@@.orange;<<print $pName>>@@ @@.lightyellow;what happened, is everything alright?@@"
<br><br>- @@.lightblue;Hello Dad, yes everything is fine, but the house is in pretty bad shape, so I called to ask if you know someone that could help me to fix some things. Oh, and your little gift wasn't exactly that little> But thanks a lot, really.@@
<br><br>- "@@.lightyellow;No problem, we though you might need those things so you can start your new life there. Is the house really that bad? We didn't expect it to be perfect, but at least it should be in a somewhat liveable state. Alright, I'll send you a phone number for a company that we used to call when we needed something fixed in the house. You'll need to check if they're' still operating.@@"
<br><br>- @@.lightblue;Thanks Dad! Call you later, bye.@@
<br><br>- "@@.lightyellow;Bye, @@@@.orange;<<print $pName>>@@ @@.lightyellow;take care.@@"
<<next 1s>>
<br>
Bep
<br>Alright! Lets see if this number works and please, please don't be expensive.
//
<<replace #call>>
<<button "Call the home repair company">>
<<replace #call>>
<</replace>>
<<replace #call1>>
//<<type 50ms>>Calling...Ding<</type>>
<<timed 1500ms>>
<br>
- "@@.lightyellow;HORECO Inc., how may I help you?@@"
<br><br>- @@.lightblue;Hello, I'm <span class="orange"><<print "$pName $pSurname">></span>. I'm calling because recently I moved to a new house and it's in a pretty bad shape, I need some help to repair it.@@
<br><br>- "@@.lightyellow;Alright <span class="orange"><<courtesy>> <<print $pSurname>></span>, wait a moment please... Your dad is @@@@.orange;<<print "$dadname $pSurname">>@@?"
<br><br>- @@.lightblue;Yes, everything alright? Did he owe any money or anything that I need to worry about?.@@
<br><br>- "@@.lightyellow;No, nothing like that hahaha. It's just that <span class="orange">Mr.<<print $pSurname>> </span>was my dad's friend, he helped us a lot when we began this family company so in return we will give you a big discount, unfortunately I can't help you free but it's better than nothing right?. Give me your address and I'll send one of our employee ASAP.@@"
<br><br>- @@.lightblue;Great thanks a lot, give me a sec... Ready.@@
<br><br>- "@@.lightyellow;Let me check... Ok got it, he will arrive in 2 hours, he will look at the house and tell you how much it will cost to repair, after the discount of course.@@"
<br><br>- @@.lightblue;Thank you very much, bye!.@@
<br><br>- "@@.lightyellow;Bye.@@"
<br>
<<next 1600ms>>
Bep
<br>
Well, I need to wait, fortunately enough I have data so I can check some videos or shitposts. Because who doesn't like shitposts?.
//
<<replace #call>>
<br>
<<button "Wait until the HORECO Inc.'s employee comes">>
<<replace #call>>
<</replace>>
<<replace #call1>>
// Two hours later of shitposts //
// <<type 75ms>>Ding Dong...<</type>>
<<timed 1500ms>>
<br><br>- "@@.lightyellow;Hello, I'm from HORECO Inc.@@"
<br><br>- @@.lightblue;Hang on a second, I'll get the door.@@
<<next 1600ms>>
<br><br>- @@.lightblue;Hello, I'm <span class="orange"><<print $pName>></span> step on in please.@@
<br><br>- "@@.lightyellow;Alright <span class="orange"><<courtesy>> <<print $pName>></span>... I'll check everything with this little friend of mine..." he says and you see a little robot that he drops in the floor. As he looks in the house he says "Wow, this house is in a pretty bad shape... Ok I'll check everything and after I finish I'll tell you how much this will cost.@@"
<<next 2s>>
<<addminutes 15>>
<<replace #timedate>>
<<timedate>>
<</replace>>
<br>
<br><br>- "@@.lightyellow;I'm back, I left the robot working. Checked everything and there were a lot of things to be fixed. Lucky for you, you got a big discount from my boss so it will be 250 credits. We'll be done in about 3 hours, the place is a bit of a mess so you may need to clean after we finish.@@"
<br><br>- @@.lightblue;Alright, thanks. I'll transfer it in a second.@@
//
<<next 1s>>
<<replace #call>>
<<button "Pay and wait" "prelivingroom">>
<<remove #call>>
<<remove #call1>>
<<addhours 3>>
<<set $credits -= 250>>
<<set $finishL to true>>
<</button>> @@.red;-250 credits +3 hours@@
<</replace>>
<</timed>>
<</replace>>
<<addhours 2>>
<</button>> @@.red;+2 hours.@@
<</replace>>
<</timed>>
<</replace>>
<</button>>
<</replace>>
<</timed>>
<</replace>>
<</button>>
@@
<br>
@@#skip;<<button "Skip" "prelivingroom">>
<<remove #call1>>
<<remove #call>>
<<remove #skip>>
<<set $finishL to true>>
<<set $clean to 0>>
<<set $credits -= 250>>
<<addhours 5>>
<<addminutes 15>>
<</button>>@@
<<elseif $finishL is true>>
<<if !$messageL>>
<<set $messageL to []>>
<</if>>
<<if $clean lt 7>>
Well the house is in a better shape, still needs cleaning but is better than before. Unfortunately you don't have enough money to pay someone to clean the house :(.
<br>
<</if>>
<fieldset class="charc" id="FrontHouse">
<legend>Front house</legend>
<<if !$messageL[0]>>
The front of the house needs to be cleaned. It doesn't look that bad but you don't want any visitors to see it.
<<button "Clean the front of the house" "prelivingroom">>
<<timeattached 15 "handyman" 10>>
<<set $messageL[0] to true>>
<<set $clean +=1>>
<</button>>@@.red; +15 Minutes@@
<br>
<<else>>
@@.green;Now you can feel proud if someone came to your house, because it looks somewhat decent.@@
<</if>>
</fieldset>
<br>
<fieldset class="charc" id="Livingroom">
<legend>Livingroom</legend>
<<if !$messageL[1]>>
Wow the livingroom, it's like a world of difference but it's still dirty and needs a good cleaning.
<br>
<<button "Clean the livingroom" "prelivingroom">>
<<timeattached 15 "handyman" 10>>
<<set $messageL[1] to true>>
<<set $clean +=1>>
<</button>>@@.red; +15 Minutes@@
<br>
<<else>>
@@.green;Now the livingroom looks like something you could spend your time off in and is worth looking at, you even bought a little clock :D.@@
<<if !$messageL[2]>>
There is an old tv, who still uses a 21 inch LED tv anymore?.
<br>
<<button "Install the new TV" "prelivingroom">>
<<timeattached 10 "handyman" 10>>
<<set $messageL[2] to true>>
<<set $clean +=1>>
<</button>>@@.red; +10 Minutes@@
<<else>>
<br>
@@.green;You installed the new TV, it's an Echelon Enterprise S.A QLED 36 inch TV, that's all you can afford and not run out of money.@@
<</if>>
<<if !$messageL[3]>>
You will need to move the new sofa to the living room. It weighs a lot, so lets put those muscles to work.
<br>
<<button "Buy a new sofa" "prelivingroom">>
<<timeattached 15 "handyman" 10>>
<<set $messageL[3] to true>>
<<set $clean +=1>>
<</button>>@@.red; +15 Minutes@@
<<else>>
<br>
@@.green;Hey you finally moved the sofa, got tired? Well you haven't finished yet, move along.@@
<</if>>
<</if>>
</fieldset>
<br>
<fieldset class="charc" id="Kitchen">
<legend>Kitchen</legend>
<<if !$messageL[4]>>
This kitchen doesn't look that bad, but it needs to be cleaned before you use it. Lucky for you the fridge and the stove are fixed! They even repaired the cupboards, cabinets, and counters.
<br>
<<button "Clean the kitchen and store the cookware" "prelivingroom">>
<<timeattached 10 "handyman" 10>>
<<set $messageL[4] to true>>
<<set $clean +=1>>
<</button>>@@.red; +10 Minutes@@
<<else>>
@@.green;Now this is a place where you could cook!@@
<</if>>
</fieldset>
<br>
<fieldset class="charc" id="Bedroom">
<legend>Bedroom</legend>
<<if !$messageL[5]>>
The bedroom looks fine, a little empty but after you move everything in, it will be ready.
<br>
<<button "Clean the bedroom and settle in" "prelivingroom">>
<<timeattached 15 "handyman" 10>>
<<set $messageL[5] to true>>
<<set $clean +=1>>
<</button>>@@.red; +15 Minutes@@
<<else>>
@@.green;You can sleep here, the bed isn't that good but it was free so it'll' work until you can afford a better one. Your new laptop is on the table in case you want to use it. The wardrobe difficult to move, why did they buy one so big? Oh well, it *was* free...@@
<</if>>
</fieldset>
<br>
<fieldset class="charc" id="Bathroom">
<legend>Bathroom</legend>
<<if !$messageL[6]>>
The bathroom is the best looking part of the house, but it still needs some cleaning.
<br>
<<button "Clean the bathroom" "prelivingroom">>
<<timeattached 10 "handyman" 10>>
<<set $messageL[6] to true>>
<<set $clean +=1>>
<</button>>@@.red; +10 Minutes@@
<<else>>
@@.green;The bathroom is so clean that you can see your own reflection, some soaps and shampoos were in the boxes as well.@@
<</if>>
</fieldset>
<br>
<<if $clean gte 7>>
<<button "Finish">>
<<goto "livingroom">>
<<set $bathrclean to true>>
<<set $bedroomclean to true>>
<<set $livingclean to true>>
<<set $kitchenclean to true>>
<<unset $clean>>
<<unset $finishL>>
<<unset $messageL>>
<<unset $footerMessager>>
<</button>>
<</if>>
<</if>><<passNameRep "Bus">>
<img src="img\placesimg\bus.png" style="width: 20em;">
<br>
<<if $credits gte 5>>
You get inside the bus, you can go almost anywhere you want in the city for the convenient price of @@.yellow; 5 credits@@.
<br>
<br>
<<bus>>
<<else>>
You don't have enough credits to use the bus. Please get them or take a walk.
<</if>>
<br>
<<button "Leave" $lastPass>>
<<unset $lastPass>>
<</button>><<passNameRep "Clove Row Complex">>
You are outside of your home, located in a nice housing complex called Clove Row.
<br>
<<if $time.getHours() lt 18 and $time.getHours() gt 5>>
<<print either("You see a security man walking by.", "You can see some cars passing by.", "You see some people walking with their pets.")>>
<<else>>
You can still see some people going out of the complex, maybe to their night shift or some other places.
<</if>>
<br>
<<button "Get inside the house" "livingroom">><</button>>
<br>
<br>
You can catch a bus or walk, heading either to Blythe Celyn or Hollins Drift from here.
<br>
<<button "Take a bus" "bus">><<set $lastPass to passage()>><</button>><<passNameRep "Blythe Celyn">>
You are at Blythe Celyn. Between some buildings, you can identify the grocery shop.
<br>
<<if $time.getHours() lt 18 and $time.getHours() gt 5>>
You can see some cars passing by and people walking.
<<else>>
It's a bit dark but, you can still see people walking around and, although few, some cars.
<</if>>
<br>
<<if visited() is 1>>
//A flyer on the street comes into your sight from a place called the "Frozen Jar", apparently having a "Grand Opening". It says that they're open at <<print setup.frozenjar.workingHours.openingHours>> am.
<br>
You should take a look and see if they're looking for workers, maybe it's your lucky day ;).
<br>//
<</if>>
<br>
<<button "Go inside the Grocery" "grocerystore">><</button>>
<br>
<br>
<<button "Take a bus" "bus">><<set $lastPass to passage()>><</button>><<passNameRep "Barlow Grove">>
You are at Barlow Grove. You can see the building of Horeco and some people going in and out.
<br>
You can identify the Black Nectar Corner at the corner of the street.
<<if $time.getHours() lt 18 and $time.getHours() gt 5>>
<<print either("You see a group of people talking while walking.", "You see some cars passing by.", "You can see a bus making a stop.")>>
<<else>>
It's a bit dark but, you can still see people walking around and, although few, some cars.
<</if>>
<br>
/*<<button "Go inside Horeco Inc." "horeco">><</button>>*/
<<disable $time.getHours() gte setup.blacknectar.workingHours.closingHours or $time.getHours() lt setup.blacknectar.workingHours.openingHours>>
<<button "Black Nectar Corner" "coffeshop">><</button>>
<</disable>><<if $time.getHours() gte setup.blacknectar.workingHours.closingHours or $time.getHours() lt setup.blacknectar.workingHours.openingHours>>You see a sign that says: We are open from 5 AM to 6 PM.<</if>>
<br>
<br>
<<button "Take a bus" "bus">><<set $lastPass to passage()>><</button>><<passNameRep "Ashrout">>
<<if $time.getHours() lt 18 and $time.getHours() gt 7>>
You can identify Alexandra's Gym and some people going in. The library has some people going in too, probably some students.
<br>
<<print either("You see a group of people talking while walking.", "You see some cars passing by.", "You can see a bus making a stop.")>>
<<else>>
It's a bit dark but, you can still see people walking around and, although few, some cars.
<</if>>
<br>
<<disable $time.getHours() gte 18 or $time.getHours() lt 7>>
<<button "GL Public Library" "library">><</button>>
<</disable>><<if $time.getHours() gte 18 or $time.getHours() lt 8>>You see a sign that says: The Public Library open from 7 AM to 6 PM.<</if>>
<br>
<<disable $time.getHours() gte 18 or $time.getHours() lt 8>>
<<button "Alexandra's Gym" "alegym">><<set $aleWelcome to true>><</button>>
<</disable>><<if $time.getHours() gte 18 or $time.getHours() lt 8>>You see a sign that says: We are open from 8 AM to 6 PM.<</if>>
<br>
<br>
<<button "Take a bus" "bus">><<set $lastPass to passage()>><</button>><<passNameRep "Hollins Drift">>
Arriving at Hollins Drift, you see a building that is in construction. Who knows what it will be. Maybe some furniture related thing? ;).
<br>
<<if $time.getHours() lt 18 and $time.getHours() gt 7>>
<<print either("You see a group of people talking while walking.", "You see some cars passing by.", "You can see a bus making a stop.")>>
<<else>>
It's a bit dark but, you can still see people walking around and, although few, some cars.
<</if>>
<br>
<br>
<<button "Take a bus" "bus">><<set $lastPass to passage()>><</button>><<passNameRep "Pioneer Lane">>
<<if $time.getHours() lt 18 and $time.getHours() gt 7>>
You can identify Frozen Jar and some people going in and out and some people going on their way to work.
<br>
<<print either("You see a group of people talking while walking.", "You see some cars passing by.", "You can see a bus making a stop.")>>
<<else>>
<<if !$time.getHours() gt setup.frozenjar.workingHours.closingHours and !$time.getHours() lt setup.frozenjar.workingHours.openingHours>>
Frozen Jar it's still open and it appears to be quite active
<</if>>
It's a bit dark but, you can still see people walking around and, although few, some cars.
<</if>>
<br>
<<disable $time.getHours() gt setup.frozenjar.workingHours.closingHours and $time.getHours() lt setup.frozenjar.workingHours.openingHours>>
<<button "Enter Frozen Jar" "frozenjar">><</button>>
<</disable>><<if $time.getHours() gt setup.frozenjar.workingHours.closingHours and $time.getHours() lt setup.frozenjar.workingHours.openingHours>>You see a sign that says: We are open from 11 AM to 3 AM.<</if>>
<br>
<br>
<<button "Take a bus" "bus">><<set $lastPass to passage()>><</button>><<passNameRep "Golbrow Path">>
<<if $time.getHours() lt 18 and $time.getHours() gt 7>>
You see some people going in and out of the park.
<br>
<<print either("You see a group of people talking while walking.", "You see some cars passing by.", "You can see a bus making a stop.")>>
<<else>>
It's a bit dark but, you can still see people walking around and, although few, some cars. Some people it's still going inside the park, maybe using it as a shortcut.
<</if>>
<br>
<<button "To the park" "goldpark">><</button>>
<br>
<br>
<<button "Take a bus" "bus">><<set $lastPass to passage()>><</button>>
/* This is some voodoo shit I tell you. People think that this is programming but no, this is just magic, its power comes from the pain and tears of the people who call themselves "programmers". It doesn't work? I don't know why. It works? I don't know too. */<<passNameRep "Alexandra's Gym">>
<img src="img\placesimg\gym.png" style="width: 20em;">
<br>
<<if visited() is 1>>
After going inside the gym a girl with workout clothes approaches you.
<<dialogue "???" "lightyellow">>
Hello! Welcome to Alexandra's Gym I'm Alexandra and, well, the owner of this gym as the name may give it out. May I know your name?. @@.white;She says with a bit of hyperactivity.@@
<</dialogue>>
<<dialogue "$pName $pSurname" "lightblue">>
Hello, it's @@.gold;<<print $pName>>@@.
<</dialogue>>
<<dialogue "???" "lightyellow">>
Well <<print $pName>>, I'll explain how the gym works. @@.white;Then she takes her tablet out and show you a list of memberships.@@
<</dialogue>>
<<dialogue "Alexandra" "lightyellow">>
The first one is the daily membership, it means that you will need to pay each day that you use the gym, has limited access and has a cost of 6 credits. @@.white;Moving to the next membership with an slide of her finger.@@
<br>
The next one is a bi-weekly membership, it cost 60 credits but you can use everything in the gym and you just need to pay it each 2 weeks. @@.white;As she finishes she moves to the last membership.@@
<br>
And the last membership, it's a montly membership and has a cost of 100 credits, you can use everything in the gym and can get help from any of the trainers in the gym or if I'm available I can help too. So if you need any help or have any questions about the memberships you can ask me. @@.white;She says as she put the tablet back at the reception table.@@
<</dialogue>>
<<else>>
<<set _incMS to $memberships.includesAny("AleDayMember", "AleBiMember", "AleMonMember")>>
As you get inside the gym you see Alexandra at the reception.
<<if $aleWelcome is true>>
<br>
When she notices your presence she welcomes you.
<<dialogue "Alexandra" "lightyellow">>
Welcome back <<print $pName>>,
<<if _incMS is true>>
are you going to train today?
<<if $memberships.includes("AleMonMember")>>
or do you need my help with your training?.
<</if>>
<<else>>
do you want to buy any of our memberships?.
<</if>>
<</dialogue>>
<</if>>
<</if>>
<br>
<<if !$memberships.includes("AleDayMember")>>
<<button "Ask about memberships" "buyalemem">><</button>>
<<elseif !$limitedExerc>>
<<disable $energy lt 5>>
<<button "Train" "aletrain">><</button>>
<</disable>><<if $energy lt 5>>@@.blue;You don't have enough energy@@<</if>>
<<else>>
<br>
You have already trained today. Come back tomorrow.
<</if>>
<br>
<br>
<<button "Go outside" "ashrout">>
<<unset $aleWelcome>>
<<set $memberships to []>>
<</button>><<passNameRep "Gym Memberships">>
After you approach Alexandra she gives you the membership list.
<span class="memName" style="font-size: medium;"></span>
<br>
<span class="memDesc"></span>
<span class="hide">
<<button "Buy" "alegym">>
<<set $memberships.push(_membership)>>
<<set $credits -= _cost>>
<</button>>
<br>
</span>
<br>
<div class="smollfont">
<<if !$memberships.includesAny("AleDayMember", "AleMonMember", "AleBiMember")>>
<<disable $credits lt 6>>
<<button "Daily Membership">>
<<replace ".memName">>
Daily Membership
<</replace>>
<<replace ".memDesc">>
The daily membership needs to be paid each day, it has limited access to some training machines. It has a cost of @@.yellow;6 credits@@.
<br>
<</replace>>
<<removeclass ".hide">>
<<set _membership to "AleDayMember">>
<<set _cost to 6>>
<</button>>
<</disable>>
<br>
<<disable>>
<<button "Bi-weekly Membership">>
<<replace ".memName">>
Bi-weekly Membership
<</replace>>
<<replace ".memDesc">>
The bi-weekly membership needs to be paid each 2 weeks, it has access to everything in the gym. It has a cost of @@.yellow;60 credits@@.
<br>
<</replace>>
<<set _membership to "AleBiMember">>
<</button>>
<</disable>>
<br>
<<disable>>
<<button "Monthly Membership">>
<<replace ".memName">>
Monthly Membership
<</replace>>
<<replace ".memDesc">>
The monthly membership needs to be paid each month, it has access to everything in the gym and you can use the help of the gym's trainers or ask help from Alexandra if she is available. It has a cost of @@.yellow;100 credits@@.
<br>
<</replace>>
<<set _membership to "AleMonMember">>
<</button>>
<</disable>>
Bi-weekly and monthly memberships aren't implemented yet.
<<else>>
Your current membership need to end before changing them.
<</if>>
</div>
<br>
<br>
<<button "Back" "alegym">><</button>><<passNameRep "Alexandra's Gym">>
<<button "Train(WIP)" "alegym">>
<<timeattached 5 5>>
<</button>> @@.red;I'm developing and testing the system so it does nothing for now@@
<br>
<<button "Finish" "alegym">><</button>><<passNameRep "Public Library">>
<img src="img\placesimg\library.png" style="width: 20em;">
<br>
//Welcome to Golden Leaf’s Public library. All E-books are free and will be deleted from your device once you leave the establishment. You can pay a membership if you are one of those that like to read paper books, likewise, these books can’t leave the library.
<br>
If you are interested in the membership, please approach the librarian@@.red;(Not implemented)@@.//
<br>
<br>
<<button "Books about Golden Leaf" "glbooks">><</button>>
<br>
<br>
<<button "Go out" "ashrout">><</button>><<passNameRep "Golden Leaf's History">>
<span class="mainB">
<<libBooks>>
</span>
<br>
<br>
<<button "Go back" "library">><</button>><<widget "libBooks">>
<<button "Golden Leaf History">>@@.red; +5 min@@
<<timeattached 5>>
<<replace ".mainB">>
Golden Leaf was a relatively small town, whose economy for that time was based solely on 2 things: cocoa and orange farming.
The trade was basically among the villagers themselves and sometimes among visitors.
<br>
<br>
Gradually, the town grew and the main products where started to be exported the people had an increased quality of life but even then,
it didn’t grow more than that, not until the arrival of what we call @@.green;“The Turnaround”@@.
<br>
<br>
<h3 class="green">The Turnaround</h3>
With the arrival of @@.orange;<<print String.format("{0} {1}", $spirealfOw.name, $spirealfOw.surname)>>@@ to the town in 2014 what seemed like a holiday trip became something more. @@.orange;<<print $spirealfOw.name>>@@ returned to the town after a year and brought a big change;
Infrastructure improvements, modern farming machinery, investments, etc. Thanks to this gradually the town developed more and more to the point where it’s today.
<br>
<br>
The town went from having practically nothing to having research centers, a college the size of a soccer field, a library with one of the largest book collections in the country and that also collaborates with the research centers and the college,
one of the most modern and efficient shopping centers in the country, energy from solar panel and state cutting-edge wind generators, among other things. And not only this, @@.orange;<<print $spirealfOw.name>>@@, moved the headquarters to the city, bringing even more movement to Golden Leaf.
<br>
<br>
Also, Golden Leaf developed his own system called GLODEX, where each citizen can view their physical situation, their e-mails and many other useful functions available in GLODEX.
<br>
<br>
<<button "Close book">>
<<replace ".mainB">>
<<libBooks>>
<</replace>>
<</button>>
<</replace>>
<</button>>
<br>
<<button "GLODEX Information">>@@.red; +5 min@@
<<timeattached 5>>
<<replace ".mainB">>
@@.green;GLODEX@@ is a system developed by Golden Leaf’s government in collaboration with research centers and the college.
Its development and subsequent launch are relatively recent, as it was not less than 3 years ago (2047) that it was finally released for public access to some functions of @@.green;GLODEX@@. By 2049, around 90% of the city used @@.green;GLODEX@@; Either companies, businesses and individuals.
<br>
<br>
Both companies and business use functions to ease the payment of their employees. For individuals, we could say that @@.green;GLODEX@@ is a personal assistant, you can check your physical status, your emails, work information, notifications, among other things.
@@.green;GLODEX@@ records your address, so companies only need to request this information and it will be provided.
<br>
<br>
And sure, you may wonder, if you can see your info through the system, wouldn’t someone hacking mean they can access it too?
Of course, but @@.green;GLODEX@@ has an open source security system and any person with the skills to improve the strength or find any bug the Golden Leaf city will provide financial reward or if the person wishes so, a job developing and improving @@.green;GLODEX@@. Thanks to this the system is less prone to hacking.
<br>
<br>
Also, there could be also the doubt that some company with illegal purposes could abuse the info that @@.green;GLODEX@@ provides, but don’t worry, companies must request @@.green;GLODEX Enterprise@@ to make use of these functions.
Before giving them these devices, a thorough investigation is made, because of course, no one wants their information being used for negative purposes.
<br>
<br>
<<button "Close book">>
<<replace ".mainB">>
<<libBooks>>
<</replace>>
<</button>>
<</replace>>
<</button>>
<</widget>><<passNameRep "Black Nectar Corner">>
<<if $time.getHours() gte setup.blacknectar.workingHours.openingHours and $workedhours is $pJob.hoursreq>>
<<unset $workedhours>>
<</if>>
<img src="img\placesimg\coffeshop.png" style="width: 20em;">
<br>
<div id="aW">
After getting inside the shop you notice that it has a quite presentable appearance, very well illuminated and without any dark spots,
the tables have a rather minimalistic and good looking design of a gray color going to black and the chairs looks pretty comfortable too and with a color that matches the tables and the place.
<<print either("They are probably at their peak hour since you can see a lot of movement inside the shop and it's almost crowded.", "")>>
<<if $knowsBNOwner is false>>
On one side of the shop is the barista making the coffee, is a person in his mid 30, black hair, tall and fit.
<<else>>
You see @@.orange;<<print $bnName>>@@ working.
<</if>>
<<if visited() is 1>>
You notice a pamphlet saying that they are looking for workers.
Perhaps you should ask one of the staff if you are interested in working here.
<</if>>
<br>
<br>
<<disable $credits lt 4>>
<<button "Buy some coffe" "coffeshop">>
<<set $credits -= 4>>
<<timeattached 5 0>>
<<restoreEnergy 8>>
<</button>>
<</disable>>@@.green; +8 Energy@@ | @@.red; -4 credits, +5 min.@@
<<if $pJob.place is "blacknectar" and !$workedhours>>
<<set _totalEU to $pJob.hoursreq * $pJob.energyused>>
<br>
You see @@.orange;<<print $bnName>>@@ working at some tables and serving food to the costumers.
<br>
<<disable $energy lt _totalEU or $time.getHours() gt setup.blacknectar.workingHours.closingHours - $pJob.hoursreq>>
<<button "Start Working" "bnwork">><</button>>
<</disable>>~~@@.red;Energy required: <<print _totalEU>>.@@~~
<<if $time.getHours() gte setup.blacknectar.workingHours.closingHours>>
<<goto "barlowgrove">>
<</if>>
<<if $time.getHours() gt setup.blacknectar.workingHours.closingHours - $pJob.hoursreq>>
@@.blue;//It's too late to complete your required hours, come back tomorrow//@@
<</if>>
<br>
<<elseif $pJob.place is undefined>>
<<if $pdenyjob.includes("blacknectar")>>
<br>
<br>
You declined the contract not too long ago. Come back later to see if it's available.
<<elseif !hasVisited("employingbn")>>
<br>
You could approach the barista and ask him about the pamphlet at the entrance.
<br>
<<button "Ask for work">>
<<replace #aW>>
<<dialogue "$pName $pSurname" "lightblue">>
Excuse me, hello. I’m looking for a job and saw the pamphlet that is at the entrance and said that you are searching for employees and I’m interested in the job.
<</dialogue>>
<<dialogue "???" "lightyellow">>
Sure, just give me a moment to search for someone that could replace me while I explain everything to you. @@.white;He says while waving to a staff member who was passing nearby.@@
<br>
Alright, now follow me to the office so I could show you the contract and explain what you will need to do.
<</dialogue>>
<<button "Follow him" "employingbn">><<set $knowsBNOwner to true>><</button>>
<</replace>>
<</button>>
<</if>>
<br>
<<elseif $workedhours eq $pJob.hoursreq>>
<br>
@@.blue;//You finished working your @@.orange;<<print $pJob.hoursreq>>@@ required hours!//@@
<br>
<</if>>
<br>
<br>
<<button "Go Outside" "barlowgrove">><</button>>
</div><<set _passN to $bnName + "'s Office">>
<<passNameRep _passN>>
Upon entering you notice that the office is pretty much the same as the shop with the only difference being that it has just the right amount of stuff;
2 chairs and a table. It's probably used only for interviews.
<<dialogue "$bnName $bnSurname" "lightyellow">>
Well, let's start with the introductions. I'm @@.orange;<<print "$bnName $bnSurname">>@@ and I'm the owner of this coffee shop. Can you give me your name?.
<</dialogue>>
<<dialogue "$pName $pSurname" "lightblue">>
Of course, it's @@.gold;<<print "$pName $pSurname">>@@.
<</dialogue>>
<<dialogue "$bnName $bnSurname" "lightyellow">>
Alright, @@.gold;<<print $pName>>@@ glad to meet you. I'll start explaining what we do here and what your duties will be. @@.white;He says while getting comfortable in his chair.@@
<br>
We are a coffee shop, but we sell pastries and snacks to go with the coffe, therefore, we have pastry chefs. You will be given a uniform that you must wear during your working hours. After finishing your workday uniforms are deposited in a basket inside the locker room
we have a cleaning service and they'll be clean the next day.
You'll start as a <<barGender>> and any amount of tips will be enterely yours. I'm proud that my shop has a clean appearance and a comfortable environment for both customers and employees. If you see or feel that any customer or employee is being rude or obnoxious, please notify me to take action.
<br>
<br>
Now the contract, be sure to read it thoroughly before agreeing. Oh... Right, I see that probably you'll be starting the local college if you need financial assitance we can help you with that, most of the staff also study there. @@.white;Says while giving you the tablet.@@
<</dialogue>>
<br>
<fieldset class="charc">
<legend>Black Nectar Corner's Employee Contract</legend>
We @@.blue;Black Nectar Corner@@ bla bla legal stuff here bla bla contract bla bla with @@.darkyellow;<<print "$pName $pSurname">>@@ with the following payment.
<br>
The employee will get paid @@.yellow;<<print setup.blacknectar.jobs[0].payment>>@@ Credits per day.
<br>
<br>
If you accept everything that was stated above, put your signature here: //__@@.gold;<<print "$pName $pSurname">>@@__//
<br>
<br>
Please put your finger here: <img src="img\others\fingerprint.png" style="vertical-align: middle; height: 64px; background-color: white;">
<br>
<br>
//__@@.orange;<<print "$bnName $bnSurname">>@@__//
<br>
Black Nectar Corner
</fieldset>
<<button "Accept" "employingbn2">>
<<set $jobaccepted to true>>
<<set $pJob to clone(setup.blacknectar.jobs[0])>>
<</button>>
<<button "Decline" "employingbn2">>
<<set $jobaccepted to false>>
<</button>><<set _passN to $bnName + "'s Office">>
<<passNameRep _passN>>
<<switch $jobaccepted>>
<<case true>>
After signing in and putting in your fingerprint, you return the tablet.
<<dialogue "$pName $pSurname" "lightblue">>
I signed the document.
<</dialogue>>
@@.orange;<<print $bnName>>@@ verify a few things in the tablet and store it.
<<dialogue "$bnName $bnSurname" "lightyellow">>
Good, you can start tomorrow. We are open from Monday to Friday from 5 AM to 6 PM. You don't have a fixed schedule so as long as you fulfill your required hours, it's all good. Oh, by the way before I forget, I just sent the locker's key to your <span class="green">GLODEX</span> so you can access your uniform tomorrow.
<span class="red">(Uniforms not implemented yet, so it isn't required.)</span>.
<</dialogue>>
<br>
@@#q1;<<link "How do I get paid?">>
<<replace #q1>>
<<dialogue "$pName $pSurname" "lightblue">>
How do I get paid? I didn't see anything in the contract mentioned about thats.
<</dialogue>>
<<dialogue "$bnName $bnSurname" "lightyellow">>
All payments are done directly to your account. As you must know, thanks to your signature and fingerprint we know where to deposit the credits.
<</dialogue>>
<</replace>>
<</link>>@@
<br>
@@#q2;<<link "Don't you need my address?">>
<<replace #q2>>
<<dialogue "$pName $pSurname" "lightblue">>
Don't you need my address? I got told that jobs needed them.
<</dialogue>>
<<dialogue "$bnName $bnSurname" "lightyellow">>
Well yes, we require your address in case we need to send something to your place or in case of an emergency, but everything is given to us with your signature and fingerprint.
<</dialogue>>
<<dialogue "$pName $pSurname" "lightblue">>
Isn't it insecure? Whats if someone could get my address with them?
<</dialogue>>
<<dialogue "$bnName $bnSurname" "lightyellow">>
No, don't worry. The tablet that I gave you is registered with the <span class="orange">A.P.D.T.S</span> from the goverment and only authorized devices by them are enabled to get that information.
<</dialogue>>
<</replace>>
<</link>>@@
<br>
@@#q3;<<link "Regarding a possible promotion">>
<<replace #q3>>
<<dialogue "$pName $pSurname" "lightblue">>
About promotions, how do I know when I'll get it? Or what is required to be able to get one?
<</dialogue>>
<<dialogue "$bnName $bnSurname" "lightyellow">>
I will call you to my office if you are working or send a message to your GLODEX to meet me here if you aren't. About the requeriments, well you just need to accumulate working hours ;).
<</dialogue>>
<</replace>>
<</link>>@@
<br>
<<button "Bye" "coffeshop">>
<<unset $jobaccepted>>
<</button>>
<<case false>>
You return the tablet.
<<dialogue "$pName $pSurname" "lightblue">>
I'm sorry but I need to think it through and come back.
<</dialogue>>
<<dialogue "$bnName $bnSurname" "lightyellow">>
Alright, no problem, I can't guarantee that we will be looking for employees when you return. Have a good day.
<</dialogue>>
Says, as he puts the tablet away and invites you to leave the office.
<br>
<<button "Finish" "coffeshop">><<unset $jobaccepted>><<set $pdenyjob.push("blacknectar")>><</button>>
<</switch>><<passNameRep "Get to work you little shit >:D">>
<<if !$workedhours>>
<<set $workedhours to 0>>
You greet @@.orange;<<print $bnName>>@@, change yourself into the uniform in the staff room and start working.
<</if>>
<<if $workedhours eq $pJob.hoursreq>>
You finished your working hours. Congrats, you did a lot of nothing! :D
<<timed 3s>>
<<goto "coffeshop">>
<</timed>>
<<elseif $workedhours lt $pJob.hoursreq>>
<<print "Hours left: " + ($pJob.hoursreq - $workedhours)>>
<br>
<<set _workinghour to 1>>
There would be some kind of story development if it existed. But there isn't so there you go, a funny weird meme (Or that's what the link says).
//Black Nectar Corner Edition//
<br>
[img[https://www.askideas.com/media/36/I-Know-There-Is-Something-That-I-Am-Supposed-To-Do-Here-Funny-Weird-Meme-Picture.jpg]]
<br>
<<button `"Work " + _workinghour + " hour(s)"` "bnwork">>
<<timeattached `_workinghour*60` $pJob.energyused>>
<<payment _workinghour>>
<<set $workedhours++>>
<</button>>
<</if>><<passNameRep "Grocery Store">>
<<if $shoppingcart is undefined>>
<<set $shoppingcart to []>>
<</if>>
<img src="img\placesimg\grocerystore.png" style="width: 20em;">
<br>
<<if visited() is 1>>
You get inside the store from the AD. It seems that they sell many foodstuffs here.
<<else>>
You are inside the Grocery Store.
<</if>>
<br>
There are @@.blue;4@@ main aisles:
<br>
<br>
<<button "Meat aisle" "meataisle">><</button>>
<br>
<<button "Fruit and Veg aisle" "fandvaisle">><</button>>
<br>
<<button "Spices aisle" "spicesaisle">><</button>>
<br>
<<button "General ingredients aisle" "ingredaisle">><</button>>
<br>
<br>
<<if $shoppingcart[0] isnot undefined>>
<<button "Purchase Items" "fspurchase">><</button>>
<<else>>
<<button "Go out" "blythecelyn">><<unset $shoppingcart>><</button>>
<</if>><<passNameRep "Meat Aisle">>
<<foodshow "meat">>
<<button "Back" "grocerystore">> <</button>><<passNameRep "Fruits and Vegs Aisle">>
<br>
<span style="font-size=large; font-weight: bold">Fruits</span>
<<foodshow "fruits">>
<span style="font-size=large; font-weight: bold">Vegetables</span>
<<foodshow "vegetables">>
<<button "Back" "grocerystore">> <</button>><<passNameRep "Spices Aisle">>
<<foodshow "spices">>
<<button "Back" "grocerystore">> <</button>><<passNameRep "General Ingredients Aisle">>
<<foodshow "generalIng">>
<<button "Back" "grocerystore">> <</button>><<purchase "grocerystore">><<passNameRep "College Lobby">>
<img src="img\placesimg\college.png" style="width: 20em;">
<br>
You are at Golden Leaf Central College lobby.
<<if $time.getHours() lt 18 and $time.getHours() gt 6>>
You see some people going in and out of the College.
<br>
<<print either("You see a group of people talking while they are walking.", "You see some people eating food in a bench", "You can see some cars parking.")>>
<<else>>
It's a bit dark but, you can still see people walking around probably going to their evening lessons, while others are maybe going to their houses.
/*Parking cars may have no sense for now, but it will be moved to a "College Campus passage" when more content for the college start to be added. */
<</if>>
<br>
<<if visited() is 1>>
There is a reception where you can get info about what careers are available to study, payments, etc.
<<else>>
There is a reception where you can ask any question.
<</if>>
<br>
<br>
<<button "Reception" "collreception">><</button>>
<br>
<<button "Take a bus" "bus">><<set $lastPass to passage()>><</button>><<passNameRep "College Reception">>
You are at the reception,
<<if visited() is 1 >>
if you are interested in studying here, you can ask for a list of available careers to study and how much you would need to pay.
<<else>>
if you have any question, ask them here.
<</if>>
<br>
<br>
@@#q1;<<link "Request a list of available careers">>
<<replace #q1>>
// At Golden Leaf Central College (GLCC) we are proud of our diverse list of carrers so that our students can feel comfortable when choosing their future.//
<br>
There is a list with the following available careers:
<br>
<br>
<<set _careers to ["Programming", "Cooking", "Art", "Athletics"]>>
<<for _i to 0; _i lt _careers.length; _i++>>
<div class="list">
<div id="insidelist">
Name: <<print _careers[_i]>>
<br>
Duration: @@.red; WIP@@
<br>
Classes: @@.red; WIP@@
<br>
GLCC Credits needed: @@.red; WIP@@/* Move to More info */
<br>
Extra-curricular activities: @@.red; WIP@@
<br>
<<disable>>
<<button "More Info">><</button>>
<</disable>>
</div>
</div>
<</for>>
<br>
<</replace>>
<</link>>
@@
<br>
@@#q2;<<link "About payment">>
<<replace #q2>>
// GLCC cares about its students, so if you have any financial difficulties we offer other solutions.
<br>
Do public service around the College(Maintenance, repairing, etc.) or be a professor's assistant are some of the options that you have.
For students living far away we have housing options.
//
@@.red; WIP@@
<</replace>>
<</link>>
@@
<br>
<br>
<<button "Back" "collobby">><</button>><<passNameRep "Chrysanthus Park">>
<img src="img\placesimg\park.png" style="width: 20em;">
<br>
You are in Chrysanthus Park, a large park with several yellow flowering trees and a tree that stands out to the eye because there are many people around it taking pictures.
The tree is fenced to prevent getting too close to it, probably to protect it from ill-intentioned people. There is a plaque near the fence.
@@.plaque;
<<link "Read Plaque">>
<<replace ".plaque">>
<fieldset class="charc">
<legend>Plaque</legend>
//"This tree by the name of <b>Handroanthus chrysanthus</b> with an approximate age of 200 years, is the oldest in the city.
With the arrival of more people to live or do tourism in the city, a plan was created to protect it from damage. Those who attempt to damage the tree can be fined or in moderate cases, even 1 year in prison.
<br>
<br>
According to the stories of the old settlers, the area where the tree is located was used as a place of commerce or in festive times as a meeting place to have parties."//
</fieldset>
<</replace>>
<</link>>@@
<<if $time.getHours() lt 18>>
<br>
<br>
Elsewhere in the park, you can see people exercising. Some are jogging and others are doing what appears to be yoga.
There are also old people sitting around talking, the occasional person riding a bicycle and someone walking their pet around.
<br>
<<elseif $time.getHours() gte 18 and $time.getHours() lt 5>>
<br>
The place, although almost empty, is illuminated and you can still see some people who may be using the park as a shortcut to their home or workplace.
<br>
<</if>>
<br>
<<disable $energy lt 5>>
<<button "Run around" "goldpark">>
<<timeattached 10 5>>
<</button>>
<</disable>><<if $energy lt 5>>@@.blue;You don't have enough energy@@<</if>> @@.red;I'm developing and testing the system so it does nothing for now@@
<br>
<br>
<<button "Back" "golbrowpath">><</button>><<passNameRep "Frozen Jar">>
<<if $time.getHours() gte setup.frozenjar.workingHours.openingHours and $workedhours is $pJob.hoursreq>>
<<unset $workedhours>>
<</if>>
/* If you think I liked writing everything here, you were wrong. I enjoyed making the coding part but writing some(If you call 227 lines here, with aprox of 160 being plain text some...) "lore" or story it's just not my forte. */
<img src="img\placesimg\frozenjar.png" style="width: 20em;">
<div id="aW">
You are inside @@.blue;Frozen Jar@@, a restaurant-bar.
<<if visited() is 1>>
It's a pretty cozy place. There are tables and chairs made of wood or some similar material, spaced out so that it doesn't look or feel cramped. Large windows face the street, giving good lightning,
and make the place give a feeling of warmth and lightness.
As you open the door, you see an asian girl with @@.black;background-color: #383e65;long black hair@@ and a petite frame focused on cleaning some tables and chairs. The place seems pretty empty. Maybe they are opening?
<br>
<</if>>
There is a menu showing the food available today.
<br>
<br>
<<disable $credits lt 8>>
<<button "Eat some food" "frozenjar">>
<<set $credits -= 8>>
<<timeattached 10 0>>
<<restoreEnergy 20>>
<</button>>
<</disable>>@@.green; +16 Energy@@ | @@.red; -8 credits, +10 min.@@
<br>
<<if $pJob.place is "frozenjar" and !$workedhours>>
<<set _totalEU to $pJob.hoursreq * $pJob.energyused>>
<br>
You see @@.orange;<<print $fjName>>@@ working at some tables and serving food to the costumers.
<br>
<<disable $energy lt _totalEU or $time.getHours() gt setup.frozenjar.workingHours.closingHours + 24 - $pJob.hoursreq>>
<<button "Start Working" "frozenJwork">><</button>>
<</disable>>~~@@.red;Energy required: <<print _totalEU>>.@@~~
<<if $time.getHours() lte setup.frozenjar.workingHours.closingHours>>
<<goto "pioneerlane">>
<</if>>
<<if $time.getHours() gt setup.frozenjar.workingHours.closingHours + 24 - $pJob.hoursreq>>
@@.blue;//It's too late to complete your required hours, come back tomorrow//@@
<</if>>
<br>
<<elseif $pJob.place is undefined>>
<<if $pdenyjob.includes("frozenjar")>>
You declined the contract not too long ago. Come back later to see if it's available.
<<elseif !hasVisited("employingfj")>>
<br>
Try to approach her to see if she can give you work.
<br>
<<button "Ask for work">>
<<replace #aW>>
<<dialogue "$pName $pSurname" "lightblue">>
Excuse me, hello. I'm currently looking for work. Do you know if they are looking for someone here?
<</dialogue>>
<<dialogue "???" "lightyellow">>
Oh, well umm hello... Sorry, you startled me hahaha. Hello, I'm <span class="orange"><<print "$fjName $fjSurname">></span>, the owner of this little place, and yes, we are currently looking for someone to work here. As you can see, I'm the only one here at the moment, besides the cook in the kitchen, and I'm in need of a little help here.
<br>
We serve food and drinks here, but food is serverd mostly during the day. You could start as a @@.orange;<<barGender>>@@ and depending how well you perform you may be promoted to a bartender with a higher salary and benefits, of course.
<br>
And... As you saw, the place is pretty empty, mostly because we just opened and this is one of those slow days. So it's just me and the cook in the kitchen making food.
<br>
<br>
Let's go to my office so we can finish the contract and have you start working.
If you have any other question, ask me.
<</dialogue>>
<<button "Follow her" "employingfj">><<set $knowsFJOwner to true>><</button>>
<</replace>>
<</button>>
<</if>>
<br>
<<elseif $workedhours eq $pJob.hoursreq>>
<br>
@@.blue;//You finished working your @@.orange;<<print $pJob.hoursreq>>@@ required hours!//@@
<br>
<</if>>
<<button "Go Out" "pioneerlane">><</button>>
</div><<set _passN to $fjName + "'s Office">>
<<passNameRep _passN>>
You get inside a little office. It's like a typical office with a desk, two chairs and a file cabinet.
<<dialogue "$fjName $fjSurname" "lightyellow">>
Welcome to my office. I don't use it that much to be honest... Please could you give me your name?.
<</dialogue>>
<<dialogue "$pName $pSurname" "lightblue">>
Sure, it's @@.gold;<<print "$pName $pSurname">>@@.
<</dialogue>>
<<dialogue "$fjName $fjSurname" "lightyellow">>
Glad to meet you @@.gold;<<print $pName>>@@, let me get the contract.
<</dialogue>>
She open the drawer and takes a tablet from it as she speaks. A few taps are made on it and hands it to you, containing all of the details regarding the contract.
<<dialogue "$fjName $fjSurname" "lightyellow">>
There you go. Read it carefully and if you have any question, ask me.
<</dialogue>>
<br>
<fieldset class="charc">
<legend>Frozen Jar's Employee Contract</legend>
We @@.blue;Frozen Jar@@ bla bla legal stuff here bla bla contract bla bla with @@.darkyellow;<<print "$pSurname $pName">>@@ with the following payment.
<br>
The employee will get paid @@.yellow;<<print setup.frozenjar.jobs[0].payment * setup.frozenjar.jobs[0].hoursreq>>@@ Credits per day.
<br>
<br>
If you accept everything that was stated above, put your signature here: //__@@.gold;<<print "$pName $pSurname" >>@@__//
<br>
<br>
Please put your finger here: <img src="img\others\fingerprint.png" style="vertical-align: middle; height: 64px; background-color: white;">
<br>
<br>
//__@@.orange;<<print "$fjName $fjSurname">>@@__//
<br>
Frozen Jar
</fieldset>
<<button "Accept" "employingfj2">>
<<set $jobaccepted to true>>
<<set $pJob to clone(setup.frozenjar.jobs[0])>>
<</button>>
<<button "Decline" "employingfj2">>
<<set $jobaccepted to false>>
<</button>><<set _passN to $fjName + "'s Office">>
<<passNameRep _passN>>
<<switch $jobaccepted>>
<<case true>>
After signing and giving it your fingerprint you hand back the tablet to her.
<<dialogue "$pName $pSurname" "lightblue">>
Here, I've signed the document.
<</dialogue>>
She confirms something and puts the tablet back from where it came.
<<dialogue "$fjName $fjSurname" "lightyellow">>
Good... You can start tomorrow. We are open Saturdays and Sundays but you have those days off. Wait a second, let me borrow a uniform for you.
<</dialogue>>
Says while pulling out a uniform from the cabinet and hands it to you.
<<dialogue "$fjName $fjSurname" "lightyellow">>
Here, if you lose it or something happens to it, you have to buy a new one. You get a locker in the staff room, so you can keep it there or take it home, as you see fit <span class="red">(Uniform not implemented yet, so it isn't required.)</span>. It's mandatory that you use it while you are working. Well, any question?.
<</dialogue>>
@@#q1;<<link "Are there any other employees here?">>
<<replace #q1>>
<br>
<<dialogue "$pName $pSurname" "lightblue">>
Are there any other employees here?
<</dialogue>>
<<dialogue "$fjName $fjSurname" "lightyellow">>
Yes, as I said, there is a guy who is the one in the kitchen cooking the food and me... Oh right, there is also a part-time girl working here on weekends. So pretty much the three of us.
<</dialogue>>
<</replace>>
<</link>>@@
<br>
@@#q2;<<link "How do I get paid?">>
<<replace #q2>>
<<dialogue "$pName $pSurname" "lightblue">>
How do I get paid? I didn't see anything in the contract mentioned about thats.
<</dialogue>>
<<dialogue "$fjName $fjSurname" "lightyellow">>
All payments are done directly to your account. As you must know, thanks to your signature and fingerprint we know where to deposit the credits.
<</dialogue>>
<</replace>>
<</link>>@@
<br>
@@#q3;<<link "Don't you need my address?">>
<<replace #q3>>
<<dialogue "$pName $pSurname" "lightblue">>
Don't you need my address? I got told that jobs needed them.
<</dialogue>>
<<dialogue "$fjName $fjSurname" "lightyellow">>
Well yes, we require your address in case we need to send something to your place or in case of an emergency, but everything is given to us with your signature and fingerprint.
<</dialogue>>
<<dialogue "$pName $pSurname" "lightblue">>
Isn't it insecure? Whats if someone could get my address with them?
<</dialogue>>
<<dialogue "$fjName $fjSurname" "lightyellow">>
No, don't worry. The tablet that I gave you is registered with the <span class="orange">A.P.D.T.S</span> from the goverment and only authorized devices by them are enabled to get that information.
<</dialogue>>
<</replace>>
<</link>>@@
<br>
@@#q4;<<link "Regarding a possible promotion">>
<<replace #q4>>
<<dialogue "$pName $pSurname" "lightblue">>
Regarding a possible promotion, how do I know when I'll get it? Or what is required to be able to get one?
<</dialogue>>
<<dialogue "$fjName $fjSurname" "lightyellow">>
I will call you to my office if you are working or send you a message to meet me here if you aren't. About the requeriments, well you just need to accumulate working hours ;).
<</dialogue>>
<</replace>>
<</link>>@@
<br>
@@#q5;<<link "About working days and hours">>
<<replace #q5>>
<<dialogue "$pName $pSurname" "lightblue">>
About working days and hours. Do I need to work every day? And those <span class="orange"><<print setup.frozenjar.jobs[0].hoursreq>></span> hours required, they can be anytime of the day?
<</dialogue>>
<<dialogue "$fjName $fjSurname" "lightyellow">>
Yes, as you saw in the contract you need to work at least <span class="orange"><<print setup.frozenjar.jobs[0].hoursreq>></span> hours, Monday through Friday.
The good thing is that it can be anytime during the day but of course, <span class="orange"><<print setup.frozenjar.jobs[0].hoursreq>></span> hours before we close. We __open__ at <span class="orange"><<print setup.frozenjar.workingHours.openingHours>></span> am and __close__ at <span class="orange"><<print setup.frozenjar.workingHours.closingHours>></span> am.
<</dialogue>>
<</replace>>
<</link>>@@
<br>
<br>
@@#smsg;
<<button "Bye">>
<<replace #smsg>>
She stops you before you go out.
<<dialogue "$fjName $fjSurname" "lightyellow">>
Oh before I forget. You will get a copy of the contract in your mail.
<</dialogue>>
<<dialogue "$pName $pSurname" "lightblue">>
Alright, thanks. Have a nice day.
<</dialogue>>
You say as you close the door.
<</replace>>
<<script>>
document.getElementById("smsg").scrollIntoView();
<</script>>
<<unset $jobaccepted>>
<<timed 5s>>
<<goto "frozenjar">>
<</timed>>
<</button>>
@@
<<case false>>
You hand back the tablet to her.
<<dialogue "$pName $pSurname" "lightblue">>
Sorry but I'm not interested.
<</dialogue>>
<<dialogue "$fjName $fjSurname" "lightyellow">>
Alright, if you want the job just come again and if it's available I'll tell you. Have a nice day.
<</dialogue>>
She says with a smile, putting the tablet back from where it came.
<<button "Finish" "frozenjar">><<unset $jobaccepted>><<set $pdenyjob.push("frozenjar")>><</button>>
<</switch>><<passNameRep "Get to work you little shit >:D">>
<<if !$workedhours>>
<<set $workedhours to 0>>
You greet @@.orange;<<print $fjName>>@@, change yourself into the uniform in the staff room and start working.
<</if>>
<<if $workedhours eq $pJob.hoursreq>>
You finished your working hours. Congrats, you did a lot of nothing! :D
<<timed 3s>>
<<goto "frozenjar">>
<</timed>>
<<elseif $workedhours lt $pJob.hoursreq>>
<<print "Hours left: " + ($pJob.hoursreq - $workedhours)>>
<br>
<<set _workinghour to 1>>
There would be some kind of story development if it existed. But there isn't so there you go, a funny weird meme (Or that's what the link says).
//Frozen Jar Edition//
<br>
[img[https://www.askideas.com/media/36/I-Know-There-Is-Something-That-I-Am-Supposed-To-Do-Here-Funny-Weird-Meme-Picture.jpg]]
<br>
<<button `"Work " + _workinghour + " hour(s)"` "frozenJwork">>
<<timeattached `_workinghour*60` $pJob.energyused>>
<<payment _workinghour>>
<<set $workedhours++>>
<</button>>
<</if>><<passNameRep "Clothing Store">>
<<if $shoppingcart is undefined>>
<<set $shoppingcart to []>>
<</if>>
<img src="img\placesimg\clothesstore.png" style="width: 20em;">
<br>
<<if visited() is 1>>
After seeing a big announcement outside the store, you step inside. It seems that they sell shirts, blouses, pants, skirts, shoes and even underwear. There is a girl attending the store.
<<else>>
You are inside the Clothing Store. There is a <<print either("girl", "guy")>> attending the store.
<</if>>
<br>
<<button "Outerwear" "outerwear">><</button>>
<br>
<<button "Underwear" "underwear">><</button>>
<br>
<<button "Footwear" "footwear">><</button>>
<br>
<br>
<<if $shoppingcart[0] isnot undefined>>
<<button "Purchase Items" "cspurchase">><</button>>
<<else>>
<<button "Go out" "shoppingcenter">><<unset $shoppingcart>><</button>>
<</if>><<passNameRep "Outerwear">>
<<csShow "Outerwear" "upperbouter">><<passNameRep "Underwear">>
<<csShow "Underwear" "upperbunder">><<passNameRep "Footwear">>
<<csShow "Footwear" "shoes">><<purchase "clothesstore">><<passNameRep "Sex Shop">>
<<if $shoppingcart is undefined>>
<<set $shoppingcart to []>>
<</if>>
<img src="img\placesimg\sexshop.png" style="width: 20em;">
<br>
After getting inside the sex shop you see many kinds of toys (animal-shaped, human-shaped, and many other forms), lubes, and many other things. There is a girl at the counter with a bored face.
<br>
<<print either("Some people are going out with embarrassed faces.","")>>
<br>
<<button "Sex Toys" "sextoys">><</button>>
<br>
<br>
<<if $shoppingcart[0] isnot undefined>>
<<button "Purchase Items" "sspurchase">><</button>>
<<else>>
<<button "Go out" "shoppingcenter">><<unset $shoppingcart>><</button>>
<</if>><<passNameRep "Sex Toys">>
<<ssShow>><<purchase "sexshop">><<passNameRep "Shopping Center">>
<img src="img\placesimg\shoppingcenter.png" style="width: 20em;">
<br>
<<if $time.getHours() lt 18 and $time.getHours() gt 7>>
You see some people going in and out of the Shopping Center.
<br>
<<print either("You see a group of people talking while they are walking.", "You see some people eating food in a bench", "You see some people walking with bags of clothes.")>>
<<else>>
It's a bit dark but, you can still see people walking around. There are some people who are leaving the Shopping Center and/or closing their stores, while others are opening theirs.
<</if>>
<br>
<<disable $time.getHours() gte 18 and $time.getHours() lt 7>>
<<button "Clothing Store" "clothesstore">><</button>>
<</disable>><<if $time.getHours() gte 18 and $time.getHours() lt 7>>//You see a sign that says: We open at 7 AM.// <</if>>
<br>
<<if $time.getHours() lte 3 or $time.getHours() gte 18>>
<<set _open to true>>
<</if>>
<<disable !_open>>
<<button "Sex Shop" "sexshop">><</button>> <<if !_open>>//You see a sign that says: We open at 6 PM.//<</if>>
<</disable>>
<br>
<br>
<<button "Take a bus" "bus">><<set $lastPass to passage()>><</button>><<passNameRep "Bathroom">>
<<bathrclean>>
You are in your bathroom and you see the door to the living room.
<br>
Inside in one corner you see a @@.orange;small shower@@ and a @@.orange;normal toilet@@ to the left of it. Near the little bathroom ventilator you see the sink.
<br>
<<if $bathrclean>>
<br>
<<button "Shower" "bathroom">>
<<timeattached 4 0>>
<<set $bathed to true>>
<</button>> @@.red; +4 Minutes@@
<br>
<<button "Energizing shower" "bathroom">>
<<timeattached 6 0>>
<<restoreEnergy 5>>
<<set $bathed to true>>
<</button>> @@.green; +5 energy@@ |@@.red; +6 Minutes@@
<br>
<br>
<<masturbutton>>
<</if>>
<br>
<br>
<<button "To the living room" "livingroom">><</button>><<passNameRep "Bedroom">>
You are in your bedroom and you see the door to the living room.
<br>
Your room has a @@.orange;normal bed@@ in one corner and your wardrobe and a mirror in the other.
<br>
Near the window you can see a cheap desk that has a @@.orange;normal laptop@@ on top of it and a @@.orange;cheap chair@@.
<br>
<br>
<<cleanbedroom>>
<fieldset id="fieldinline">
<legend>Use</legend>
<<if $bedroomclean>>
<<button "Use the bed" "bed">><</button>>
<br>
<</if>>
<<button "Use the computer" "computer">><</button>>
</fieldset>
<br>
<fieldset id="fieldinline">
<legend>Misc</legend>
<<button "Change clothes" "wardrobe">><</button>>
<br>
<<disable>><<button "Approach the window">><</button>><</disable>>
</fieldset>
<br>
<br>
<<button "To the living room" "livingroom">><</button>><<passNameRep "Bed">>
You are in your normal bed, what do you want to do?
<br>
<br>
<div class="list" style="max-width: 13em;">
<div id="insidelist">
<<set _sleeptime to {"2 hours, +40 energy": 2, "4 hours, +60 energy": 4, "6 hours, +80 energy": 6, "8 hours, +100 energy": 8}>>
Sleeping time:
<<listbox "_time">>
<<optionsfrom _sleeptime>>
<</listbox>>
<br>
<div class="med-button">
<<button "Sleep" "bed">>
<<set _ene to (_time*10)+20>>
<<restoreEnergy _ene>>
<<sleep>>
<<timeattached _time*60 0>>
<<unset _time>>
<</button>>
</div>
</div>
</div>
<div class="list" style="max-width: 14em;">
<div id="insidelist">
<<set _relaxtime to {"5 minutes, +2 energy": 5, "15 minutes, +6 energy": 15, "30 minutes, +12 energy": 30, "1 hour, +24 energy": 60}>>
Relaxing time:
<<listbox "_rtime">>
<<optionsfrom _relaxtime>>
<</listbox>>
<br>
<div class="med-button">
<<button "Relax" "bed">>
<<set _rene to _rtime * 0.4>>
<<restoreEnergy _rene>>
<<timeattached _rtime 0>>
<</button>>
</div>
</div>
</div>
<br>
<br>
<<masturbutton>>
<br>
<br>
<<button "Get up" "bedroom">><</button>><<passNameRep "Wardrobe">>
<<storingClothes>>
<<if $message>>
<<print $message>>
<br>
<<unset $message>>
<</if>>
<div>
<div id="wardrobeLinks">
<<wardrobeLinks>>
</div>
<div id="wardrobeContent">
<<showWardrobeCC $pressedlink>>
</div>
</div>
<br>
<div>
<span style="font-size: large;">Outfits:</span>
<br>
<<for _iOF to 0; _iOF lt $outfits.length; _iOF++>>
<div class="list" style="min-width: 13.4em; ">
<div id="insidelist" style="overflow-wrap: break-word;">
<<capture _iOF>>
<<link "$outfits[_iOF].name" "wardrobe">>
<<wearOutfit>>
<</link>>
<br>
<span class="smollbutt">
<<button "Delete" "wardrobe">>
<<set $outfits.deleteAt(_iOF)>>
<<set $message to "@@.red; Outfit Deleted@@">>
<</button>>
<<button "Update" "wardrobe">>
<<newOutfit "update" _iOF>>
<</button>>
<<button "Info">>
<<replacer "outfitInfo" _iOF>>
<</button>>
</span>
<</capture>>
</div>
</div>
<</for>>
<br>
<<if $outfits.length lte 15>>
<span class="med-button smollfont">
<<button "New Outfit">>
<<toggleclass ".newOutfit" "hide">>
<</button>>
</span>
@@.newOutfit.hide;
<br>
<span class="med-texbox"><<textbox "_outFName" "">></span>
<span class="med-button smollfont">
<<button "Create" "wardrobe">>
<<newOutfit>>
<</button>>
</span>
@@
<<else>>
<span class="red" style="font-size: large;"> You can't have more than 15 outfits</span>
<</if>>
</div>
<br>
<<showWClothes>>
<br>
<br>
<<button "Close the wardrobe" "bedroom">><<unset $pressedlink>><</button>>
/%<br>
<<button "Use the mirror" "mirror">><</button>>%/<<button "Back" "wardrobe">><</button>><<passNameRep "Computer">>
<<button "Play videogames" "computer">>
<<if $energy gt 2>>
<<timeattached 4 "gaming" 3>>
<<else>>
<<set $message to "noEnergy">>
<</if>>
<</button>>@@.red; +5 Minutes@@
<br>
<<button "Open WaterDog Browser" "browser">><</button>>
<br>
<<if $hobby is "programming" or $programmingskill is 2>>
<<button "Practice programming" "computer">>
<<if $energy gte Math.round(15 * 0.2)>>
<<timeattached 15 "programming" 6>>
<<else>>
<<set $message to "noEnergy">>
<</if>>
<</button>>@@.red; +15 Minutes@@
<</if>>
<br>
<br>
<<button "Get up" "bedroom">><</button>><<passNameRep "Waterdog Browser">>
<<button "Search cooking recipes" "learnrecipes">><</button>>
<br>
<<masturbutton>>
<br>
<br>
<<button "Close Browser" "computer">><</button>><<passNameRep "Front Door">>
You are at the front door surrounded by brick walls that have a hexagonal shape(because reasons).
<br>
From here you can go to the city, the garden, or inside the house.
<br>
<fieldset id="fieldinline">
<legend>Places</legend>
<<button "City" "cloverow">><</button>>
<br>
<<button "Garden (WIP)" "garden">><</button>>
<br>
<<button "Living Room" "livingroom">><</button>>
</fieldset><<passNameRep "Garden">>
You are in the garden. You see the door that leads back inside the house.
<br>
The garden looks like it wasn't cleaned in a long time. If you want to do something here you need to fix and clean it.
@@.red;(WIP)@@
<br>
<br>
[[To the living room|livingroom]]
<br>
[[To the front door|frontdoor]]<<passNameRep "Kitchen">>
You are in the kitchen. It's small and is divided by an open-wall through which you can see your living room from.
<br>
In the corner you see your fridge, on top of which you have a spice cabinet and a cupboard.
Next to your fridge there is your @@.orange;cheap stove@@ and kitchen sink.
At the open wall you see the kitchen table, where you can prepare food.
<br>
<<kitchenclean>>
<br>
<<if $backpack[0] isnot undefined>>
<<storefood>>
<</if>>
<fieldset id="fieldinline">
<legend>Open</legend>
<<button "Fridge" "fridge">><</button>>
<br>
<<button "Spice cabinet" "spicecabinet">><</button>>
<br>
<<button "Cupboard" "cupboard">><</button>>
</fieldset>
<br>
<fieldset id="fieldinline">
<legend>Use</legend>
<<if $kitchenclean>>
<<button "Kitchen table" "kitchentable">><</button>>
<br>
<</if>>
</fieldset>
<br>
<br>
<<button "To the living room" "livingroom">><</button>><<passNameRep "Fridge">>
<div id="fridge">
<<foodVisu>>
</div>
<br>
<br>
<<button "Close" "kitchen">><</button>><<passNameRep "Spice Cabinet">>
<div id="spicecabinet">
<<foodVisu>>
</div>
<br>
<br>
<<button "Close" "kitchen">><</button>><<passNameRep "Cupboard">>
<div id="cupboard">
<<foodVisu>>
</div>
<br>
<<button "Close" "kitchen">><</button>><<passNameRep "Kitchen Table">>
<<if $selectedrecipe>>
<<button "Change Recipe" "kitchentable">><</button>>
<<button "Clear selected recipe" "kitchentable">>
<<set $selectedrecipe to undefined>>
<</button>>
<br>
<br>
<<recipeselection>>
<br>
<br>
<<selectrecipe>>
<br>
<br>
<<elseif !$selectedrecipe>>
You haven't choose any recipe. Please choose one to start preparing food.
<br>
<fieldset id="fieldinline">
<<if $learnedrecipes>>
<<button "Change Recipe" "kitchentable">><</button>>
<br>
<br>
<<recipeselection>>
<<else>>
You haven't learned any recipe, learn one first!
<</if>>
</fieldset>
<br>
<br>
<</if>>
<<if !$kitchentable[0]>>
You don't have any ingredient or prepared food on the table.
<<elseif $kitchentable[0]>>
<<kitchentablevisu>>
<</if>>
<br>
<br>
<<button "Back" "kitchen">><</button>><<if $recipesteps is undefined>>
<<set $correctCount to 0>>
<<set $steps to 0>>
<<set _recipeSID to setup.recipes.findIndex(x => x.name === $selectedrecipe)>>
<<set $recipesteps to setup.recipes[_recipeSID].steps>>
<<set $preptime to 0>>
<</if>>
<<set _passN to "Preparation Step " + ($steps + 1)>>
<<passNameRep _passN>>
<br>
Select the correct option based on the recipe instruction for @@.green;<<print $selectedrecipe>>@@. @@.red;Beware that the quality of the food depends on the selected options@@
<br>
<br>
<<preparationsteps>><<passNameRep "Living Room">>
<img src="img\placesimg\house.png" style="width: 20em;">
<br>
<<if visited() is 1>>
//You start to get hungry, so maybe your phone could tell you where to buy some ingredients and learn a recipe. Oh, and remember to download the map of the city so you know where everything is ;).//
<br>
//You should take a bath before going out, all this cleaning left you pretty sweaty and dirty.//
<br>
<br>
You pull out your phone from your pocket and start searching where to buy food. After some time you see an ad about a grocery shop.
<br>
//@@.lightyellow;If you want cheap, fresh, and quality ingredients come to the Grocery Shop! We are located at Blythe Celyn and are open 24/7. That's right, 24 hours a day, 7 days a week! "The best service and the best ingredients" is our slogan! What are you waiting for? Come and see it for yourself!@@//
<br>
<br>
//Hmmm... this looks interesting, maybe you should take a look? After you come back, you should learn a recipe on your laptop.// @@.red;Read each step carefully, as you will need it for the cooking "minigame".@@
<br>
<br>
<<elseif !$bathed>>
@@.blue;//You should take a bath before going out//@@
<br>
<</if>>
<<livingrclean>>
You are in your living room. From here you can see the door that goes to the front door and the garden. In one of the sides you can see your kitchen. Next to the door you have a @@.orange;normal tv@@ and a @@.orange;cheap sofa@@. /% Normal and cheap sofa probably can be upgradable. %/
<br>
You can see two more doors, one goes to your bedroom and the others goes to the bathroom. You look at the wall clock, the time is @@.green;<<convert12h>>@@
<br>
<br>
<fieldset id="fieldinline">
<legend>Rooms</legend>
<<button "Bedroom" "bedroom">><</button>>
<br>
<<button "Bathroom" "bathroom">><</button>>
</fieldset>
<br>
<fieldset id="fieldinline">
<legend>Places</legend>
<<set _cond to $livingclean and $bathed and !$exposed>>
<<disable _cond isnot true>>
<<button "Front Door" "frontdoor">><</button>>
<br>
<</disable>>
<<button "Kitchen" "kitchen">><</button>>
</fieldset>
<<if $livingclean>>
<br>
<fieldset id="fieldinline">
<legend>Misc</legend>
<<button "Watch TV" "tv">><</button>>
<br>
<<button "Sit on the Sofa" "sofa">><</button>>
</fieldset>
<</if>><<passNameRep "TV">>
You can watch the news if you wan't to know what's happening in the city or maybe a cooking show if you wan't to improve your cooking skills @@.red;WIP@@
<br>
<<button "Watch news channel" "tv">>
<<timeattached 3>>
<</button>> @@.red;+3 Minutes@@
<br>
<br>
<<button "Turn off" "livingroom">><</button>><<passNameRep "Sofa">>
You sit on your sofa, you could relax or have some "fun" if you want.
<br>
<div class="list" style="max-width: 14em;">
<div id="insidelist">
<<set _relaxtime to {"5 minutes, +2 energy": 5, "10 minutes, +4 energy": 10, "15 minutes, +6 energy": 15, "20 minutes, +8 energy": 20}>>
Relaxing time:
<<listbox "_rtime" autoselect>>
<<optionsfrom _relaxtime>>
<</listbox>>
<br>
<div class="med-button">
<<button "Relax" "bed">>
<<set _rene to _rtime * 0.4>>
<<restoreEnergy _rene>>
<<timeattached _rtime 0>>
<</button>>
</div>
</div>
</div>
<br>
<br>
<<masturbutton>>
<br>
<br>
<<button "Get up" "livingroom">><</button>><<passNameRep "Masturbation">>
<<if !$mastSession>>
<<set $mastSession to 0>>
<</if>>
<<if !$sexLog>>
<<set $sexLog to []>>
<</if>>
<<set _fID to $backpack.findIndex(x => x.category.some(y => y === "dildo"))>>
<<if _fID isnot -1 and $playervar.virginity.vagina is true and !$dispMess>>
<<dialogue "GLODEX" "green">>
@@.red;Warning@@@@.white;
<br>
Sex toy with penetration capabilities detected. Using it will break your hymen
<<if $backpack[_fID].tLength gt $playervar.vagcomfortinsert and $backpack[_fID].tWidth gt $playervar.vagwidthcomfortinsert>>
<br>
Detected sex toy with an uncomfortable size for your vagina, please refrain fom using it.
<</if>>
<<if $backpack[_fID].tLength gt $playervar.anuscomfortinsert and $backpack[_fID].tWidth gt $playervar.anuswidthcomfortinsert>>
<br>
Detected sex toy with an uncomfortable size for your anus, please refrain fom using it.
<</if>>
@@
<</dialogue>>
<<set $dispMess to true>>
<</if>>
<<sexWindow>>
<<if $mastSession eq $mastLimit>>
<<dialogue "GLODEX" "green">>
//@@.orange;Warning, high exhaustion levels.@@
<br>
You have reached your masturbation limit for this session. //
<</dialogue>>
<<else>>
<div class="sexOpts">
<<sexButtons "masturb">>
<div class="sexBttns"></div>
</div>
<</if>>
<br>
<br>
<<button "Finish" $location>>
<<unset $sexLog>>
<<unset $location>>
<<unset $dispMess>>
<<unset $aroused>>
<<unset $mastSession>>
<<unset $secAct>>
<<unset $mainAct>>
<</button>><<widget "masturbutton">>
<<disable $energy lt 30>>
<div class="med-button">
<<button "Masturbate" "masturbate">>
<<set $location to passage()>>
<</button>>
</div>
<</disable>>
<</widget>><<widget "sexIni">>
<<set setup.sexActions to {}>>
<<masturbActions>>
<</widget>>
/* These widgets are self-explanatory.
But for addArousal the arguments are like this: $args[1] = the message in case of being a "premade" message or the type of action(ex: masturb).
$args[2] is in case of a "pre-made" message so it does collide with the one that doesn't use "pre-made" messages.*/
<<widget "addArousal">>
<<set _amount to $args[0]>>
<<set _mult to $playervar.sensibility / 200>>
<<if $mainAct isnot undefined and setup.sexActions[$mainAct].type.includes("sextoy") and $playervar.virginity.vagina is true>>
<<set $playervar.virginity.vagina to "Your hymen was teared with a <<print $backpack[_fID].name>>.">>
<<set $sexLog.push("@@.red;You have teared your hymen@@")>>
<</if>>
<<set $arousal += Math.round(_amount + (_amount * _mult))>>
<<if $arousal gte 25>>
<<set $aroused to true>>
<</if>>
<<if $arousal gte 100>>
<<orgasmCheck $args[1]>>
<</if>>
<</widget>>
<<widget "orgasmCheck">>
<<set $arousal to 0>>
<<if $playervar.gender is "male">>
<<set $sexLog.push("After reaching an orgasm you ejaculate and feel satisfied")>>
<<elseif $playervar.cansquirt is true>>
<<set $sexLog.push("After reaching an orgasm you feel satisfied and expel some fluids")>>
<<else>>
<<set $sexLog.push("After reaching an orgasm you feel satisfied. Or maybe not?")>>
<</if>>
<<unset $secAct>>
<<addSexTraits $args[0]>>
<</widget>>
/* Will need to expand this later when more sexual traits are added. */
<<widget "addSexTraits">>
<<if $args.includesAny("masturb")>>
<<set $masturCount++>>
<<set $mastSession += 1>>
<<set _find to $pTraits.findIndex(x => x.name == setup.traits[1].name)>>
<<if $masturCount gte 5 and _find is -1>>
<<set $pTraits.pushUnique(setup.traits[1])>>
<<set $mastLimit to 2>>
<<elseif _find isnot -1>>
<<traitsEXP _find 1>>
<<set $mastLimit to $mastLimit*$pTraits[_find].level>>
<</if>>
<</if>>
<</widget>>
<<widget "wearSexToy">>
<<set _parts to ["genitals", "lowerbody"]>>
<<set _slots to ["primary", "secondary"]>>
<<set _arAmount to 0>>
<<for _bps to 0; _bps lt _parts.length; _bps++>>
<<switch _parts[_bps]>>
<<case "genitals">>
<<set _id to 0>>
<<case "lowerbody">>
<<set _id to 1>>
<</switch>>
<<for _sl to 0; _sl lt _slots.length; _sl++>>
<<if $bps[_parts[_bps]][_id][_slots[_sl]].category.includes("sextoy")>>
<<set _arAmount += $bps[_parts[_bps]][_id][_slots[_sl]].arsGain>>
<<if $bps[_parts[_bps]][_id][_slots[_sl]].amount gt 0>>
<<set _arAmount *= $bps[_parts[_bps]][_id][_slots[_sl]].amount>>
<</if>>
<</if>>
<</for>>
<</for>>
<<if _arAmount isnot 0 and $args[0] is "timeatt">>
<<set _arAmount += $args[1] / 2>>
<<elseif _arAmount isnot 0 and $args[0] is "sideB">>
<<set _arAmount = Math.round(_arAmount * 0.5)>>
<</if>>
<<if _arAmount isnot 0>>
<<addArousal _arAmount "masturb" "noMsg">>
<</if>>
<</widget>>
<<widget "sexWindow">>
<<sexVal>>
<div class="scrollWin">
<<for _sl to 0; _sl lt $sexLog.length; _sl++>>
- <<print $sexLog[_sl]>>
<br>
<br>
<</for>>
<<done>>
<<script>>
var el = document.querySelector('.scrollWin');
el.scrollTop = el.scrollHeight;
<</script>>
<</done>>
</div>
<</widget>>
<<widget "sexButtons">>
<<switch $args[0]>>
<<case "masturb">>
<<for _o to 0; _o lt setup.sexActions.length; _o++>>
<<if setup.sexActions[_o].type.includesAny("main", "secondary") and setup.sexActions[_o].for.includes($playervar.gender)>>
<<if setup.sexActions[_o].type.includes("sextoy") and _fID is -1>>
<<continue>>
<<elseif setup.sexActions[_o].type.includes("sextoy") and _fID isnot -1 and setup.sexActions[_o].requirements.includesAny($backpack[_fID].name) and $backpack[_fID].tLength gt $playervar.anuscomfortinsert and $backpack[_fID].tWidth gt $playervar.anuswidthcomfortinsert>>
<<set _disable to true>>
<<elseif setup.sexActions[_o].type.includes("sextoy") and _fID isnot -1 and setup.sexActions[_o].requirements.includesAny($backpack[_fID].name) and $backpack[_fID].tLength gt $playervar.vagcomfortinsert and $backpack[_fID].tWidth gt $playervar.vagwidthcomfortinsert>>
<<set _disable to true>>
<<else>>
<<unset _disable>>
<</if>>
<<if setup.sexActions[_o].type.includes("secondary")>>
<<set _name to setup.sexActions[_o].name + ($secAct is setup.sexActions[_o].id ? " (Active)" : " (Repeatable)")>>
<<else>>
<<set _name to setup.sexActions[_o].name>>
<</if>>
<span style="font-size: small; max-width: 7rem; display: inline-block;">
<<disable setup.sexActions[_o].type.includes("main") and !$aroused
or _disable is true>>
<<capture _o>>
<<button _name "masturbate">>
<<set (setup.sexActions[_o].type.includes("secondary") ? $secAct to setup.sexActions[_o].id : (setup.sexActions[_o].type.includes("main") ? $mainAct to setup.sexActions[_o].id : ""))>>
<<timeattached 1 4>>
<</button>>
<</capture>>
<</disable>>
</span>
<</if>>
<</for>>
<</switch>>
<</widget>>
<<widget "sexVal">>
<<if def $secAct or def $mainAct>>
<<if def $mainAct and def $secAct and setup.sexActions[$mainAct].excludes.includes(setup.sexActions[$secAct].name)>>
<<unset $secAct>>
<</if>>
<<set _secVal to (def $secAct ? setup.sexActions[$secAct].value : 0)>>
<<set (def $secAct ? $sexLog.push(either(setup.sexActions[$secAct].text)) : '')>>
<<set _mainVal to (def $mainAct ? setup.sexActions[$mainAct].value : 0)>>
<<set (def $mainAct ? $sexLog.push(either(setup.sexActions[$mainAct].text)) : '')>>
<<set _val to _secVal + _mainVal>>
<<unset $mainAct>>
<<addArousal _val "masturb">>
<</if>>
<</widget>>
<<widget "masturbActions">>
<<set setup.sexActions to [
{
id: 0,
name: "Insert fingers (Vagina)",
type: ["main", "masturbation"],
for: ["female"],
requirements: [],
excludes: [],
text: [
"You gently insert @@.orange;2@@ @@.pink;fingers into your pussy@@, trying to find the spot that feels the best",
"After inserting @@.orange;2@@ @@.pink;fingers into your pussy@@ so much stimulation caused you start to feel better, making you put your fingers faster and faster inside,@@.darkpink; making a wet sound that echoes around@@"
],
value: 8,
},
{
id: 1,
name: "Insert fingers (Anus)",
type: ["main", "masturbation"],
for: ["female", "male"],
requirements: [],
excludes: ["Massage anus"],
text: [
"You gently insert @@.orange;1@@ @@.pink;finger into your anus@@, @@.pink;finger into your anus, opening it step by step, with so much care to not hurt yourself@@. @@.darkpink;You start to feel good@@",
"After a bit you insert @@.orange;1@@ @@.pink;fingers into your anus@@. So much stimulation has caused you to feel better, making you put your fingers faster and faster inside, @@.darkpink; making a wet sound@@"
],
value: 8,
},
{
id: 2,
name: "Stroke penis",
type: ["main", "masturbation"],
requirements: [],
excludes: ["Caress penis"],
for: ["male"],
text: [
"You start stroking your @@.pink;erected <<penissizechecker>> penis@@ up and down with your hand, building up arousal@@",
"You start stroking @@.pink;erected <<penissizechecker>> penis@@ up and down with your hand, doing it faster and faster each time and getting close to an orgasm@@"
],
value: 8,
},
{
id: 3,
name: "Insert dildo (Vagina)",
type: ["main", "sextoy"],
for: ["female"],
requirements: [setup.clothes.sextoys[1].name],
excludes: [],
text: [
"You insert your @@.orange;<<print $backpack[_fID].lowname>>@@ in your @@.pink;pussy@@ carefully searching for your sweet spot, thrusting in and out repeatedly @@.pink;making wet sounds each time@@"
],
value: 12,
},
{
id: 4,
name: "Insert dildo (Anus)",
type: ["main", "sextoy"],
requirements: [setup.clothes.sextoys[1].name],
excludes: [],
for: ["female", "male"],
text: [
"You insert your @@.orange;<<print $backpack[_fID].lowname>>@@ in your @@.pink;anus@@ finding a bit of resistance as it makes its way through giving you pleasure with each thrust"
],
value: 12,
},
{
id: 5,
name: "Caress nipples",
type: ["secondary", "masturbation"],
requirements: [],
excludes: [],
for: ["female", "male"],
text: [
"With your fingers you gently massage your @@.orange;<<print $playervar.nippletype>>@@@@.pink; nipples with regular motions, making them stiffen@@",
"With your fingers you gently massage your @@.pink;stiffened@@ @@.orange;<<print $playervar.nippletype>>@@ @@.pink;nipples@@"
],
value: 4,
},
{
id: 6,
name: "Massage clitoris",
type: ["secondary", "masturbation"],
requirements: [],
excludes: [],
for: ["female"],
text: [
"@@.pink;You gently massage your@@ @@.darkpink;clitoris@@ doing regular motions.",
"@@.pink;You gently massage your@@ @@.darkpink;clitoris@@ doing regular motions. With that much @@.pink;stimulation@@, your @@.darkpink;clitoris@@ is @@.pink;swollen from arousal@@."
],
value: 8,
},
{
id: 7,
name: "Massage anus",
type: ["secondary", "masturbation"],
requirements: [],
excludes: ["Insert fingers (Anus)"],
for: ["female", "male"],
text: [
"With your fingers @@.pink;you gently massage around your anus and start to @@@@.darkpink;feel good@@",
"With your fingers @@.pink;you gently massage around your anus and start, trying to @@@@.darkpink;feel better, taking care of not putting a finger in, yet@@"
],
value: 4,
},
{
id: 8,
name: "Caress penis",
type: ["secondary", "masturbation"],
requirements: [],
excludes: ["Insert fingers (Anus)"],
for: ["male"],
text: [
"You start caressing your @@.pink;<<penissizechecker>> penis@@, building up arousal and starting to @@.darkpink;feel good@@",
"You start caressing your @@.pink;<<print ($arousal is true ? 'erected' : 'semi-erected')>> <<penissizechecker>> penis@@ with pre-seminal liquid going out of it"
],
value: 4,
},
{
id: 9,
name: "Caress testicles",
type: ["secondary", "masturbation"],
requirements: [],
excludes: ["Insert fingers (Anus)"],
for: ["male"],
text: [
"You gently massage your @@.pink;<<ballssizechecker>> testicles@@ with your fingers, with regular motions trying to feel better each time."
],
value: 4,
}
]>>
<</widget>><<widget "restoreEnergy">> /* This is some energy thing. The energy know where is it at all times. It knows this because it knows where it isn't. By subtracting where it is from where it isn't, or where it isn't from where it is - whichever is greater - it obtains a difference or deviation. The guidance subsystem uses deviation to generate corrective commands to drive the energy from a position where it is to a position where it isn't, and arriving at a position that it wasn't, it now is.*/
<<set $energy += $args[0]>>
<<set $energy to Math.clamp($energy, 0, $maxenergy)>>
<</widget>>
<<widget "timeattached">> /% It's pretty self explanatory I think. args 1 in case we need to use an specific amount of energy or an string in case is skilling %/
<<set _mult to 0.20>>
<<if $args[3] is "chngMult">>
<<set _mult to $args[2]>>
<</if>>
<<if typeof($args[1]) is "number">>
<<set _uE to $args[1]>>
<<else>>
<<set _uE to $args[0] * _mult>>
<</if>>
<<if _disableToy is false>>
<<wearSexToy "timeatt" $args[0]>>
<</if>>
<<set $energy -= Math.round(_uE); $energy to Math.clamp($energy, 0, $maxenergy)>>
<<addminutes $args[0]>>
<<if typeof($args[1]) is "string" and $args[2]>>
<<addexp $args[1] $args[2]>>
<<elseif typeof($args[2]) is "string" and $args[3]>>
<<addexp $args[2] $args[3]>>
<</if>>
<</widget>>
<<widget "eatFood">>/%The args need to be assigned as 0= Value to be used add energy. 1=Food index to delete it. 2= Location from where it came and will be deleted. %/
<<set _value to $args[0]>>
<<set _foodID to $args[1]>>
<<set _location to State.getVar("$" + $args[2])>>
<<if $args[2] is "kitchentable">>
<<if $kitchentable[_foodID].foodtype.includes("Prepared Food")>>
<<set _consUse to 1>>
<<else>>
<<set _consUse to setup.food[$args[2]][_location[_foodID].id].uses>>
<</if>>
<<else>>
<<set _consUse to setup.food[$args[2]][_location[_foodID].id].uses>>
<</if>>
<<if _location[_foodID].amount gte 2>>
<<if _location[_foodID].uses eq 1>>
<<set _location[_foodID].amount -= 1>>
<<set _location[_foodID].uses = _consUse>>
<<elseif _location[_foodID].uses lte _consUse>>
<<set _location[_foodID].uses -= 1>>
<</if>>
<<else>>
<<if _location[_foodID].uses eq 1>>
<<set _location.deleteAt(_foodID)>>
<<else>>
<<set _location[_foodID].uses -= 1>>
<</if>>
<</if>>
<<set $energy += _value>>
<<set $energy to Math.clamp($energy, 0, $maxenergy)>>
<</widget>>
/* Who are you, who is so wise in the ways of science *//* If you think that this need code comment. Check your priorities D:. */
<<widget "courtesy">>
<<switch $playervar.gender>>
<<case "male">>
Sir
<<case "female">>
Miss
<</switch>>
<</widget>>
<<widget "sondaughter">>
<<switch $playervar.gender>>
<<case "male">>
Son
<<case "female">>
Daughter
<</switch>>
<</widget>>
<<widget "barGender">>
<<switch $playervar.gender>>
<<case "male">>
Waiter
<<case "female">>
Waitress
<</switch>>
<</widget>>/% Some checkers that may and probably will change later on how it works. %/
<<widget "buttsizechecker">> /* Butt size checker */
<<if $playervar.buttsize eq 100>>
<span class="lightgreen">huge</span>
<<elseif $playervar.buttsize gte 80>>
<span class="greenyellow">big</span>
<<elseif $playervar.buttsize gte 60>>
<span class="pink">plumpy</span>
<<elseif $playervar.buttsize gte 40>>
<span class="gray">common</span>
<<elseif $playervar.buttsize gte 20>>
<span class="lightorange">small</span>
<<elseif $playervar.buttsize gte 0>>
<span class="lightyellow">flat</span>
<</if>>
<</widget>>
<<widget "anustightnesschecker">>
Your anus
<<if $playervar.anustightness eq 70>>
is <span class="red">extremely tight</span>.
<<elseif $playervar.anustightness gte 50>>
is <span class="lightred">tight</span>.
<<elseif $playervar.anustightness gte 35>>
has a <span class="gray">normal</span> tightness.
<<elseif $playervar.anustightness gte 15>>
is <span class="lightred">loose</span>.
<<elseif $playervar.anustightness gte 5>>
is <span class="darkred">extremely loose</span>.
<</if>>
<</widget>>
<<widget "sensibilitychecker">>
<<if $playervar.sensibility gte 100>>
<span class="red">very sensitive</span>.
<<elseif $playervar.sensibility gte 60>>
<span class="lightred">sensitive</span>.
<<elseif $playervar.sensibility gte 35>>
<span class="gray">normal</span>.
<<elseif $playervar.sensibility gte 10>>
<span class="red">somewhat insensitive</span>.
<<elseif $playervar.sensibility gte 0>>
<span class="darkred">insensitive</span>.
<</if>>
<</widget>>
/* Male Checkers */
<<widget "penissizechecker">>
<<if $playervar.penissize eq 24>>
<span class="green">enormous</span>
<<elseif $playervar.penissize gte 20>>
<span class="lightgreen">huge</span>
<<elseif $playervar.penissize gte 15>>
<span class="greenyellow">big</span>
<<elseif $playervar.penissize gte 12>>
<span class="gray">common</span>
<<elseif $playervar.penissize gte 5>>
<span class="lightorange">small</span>
<<elseif $playervar.penissize gte 3>>
<span class="lightyellow">tiny</span>
<</if>>
<</widget>>
<<widget "ballssizechecker">>
<<if $playervar.ballssize eq 12>>
<span class="lightgreen">huge</span>
<<elseif $playervar.ballssize gte 8>>
<span class="greenyellow">big</span>
<<elseif $playervar.ballssize gte 4>>
<span class="gray">common</span>
<<elseif $playervar.ballssize gte 2>>
<span class="lightorange">small</span>
<<elseif $playervar.ballssize gte 1>>
<span class="lightyellow">tiny</span>
<</if>>
<</widget>>
/* Female Checkers*/
<<widget "breastsizechecker">>
<<if $playervar.breastsize eq 100>>
<span class="green">enormous</span>
<<elseif $playervar.breastsize gte 80>>
<span class="greenyellow">big</span>
<<elseif $playervar.breastsize gte 60>>
<span class="pink">perky</span>
<<elseif $playervar.breastsize gte 40>>
<span class="gray">common</span>
<<elseif $playervar.breastsize gte 20>>
<span class="lightorange">small</span>
<<elseif $playervar.breastsize gte 0>>
<span class="lightyellow">flat</span>
<</if>>
<</widget>>
<<widget "clitorissizechecker">>
<<if $playervar.clitorissize eq 3.4>>
<span class="green">enormous</span>
<<elseif $playervar.clitorissize gte 2.2>>
<span class="lightgreen">huge</span>
<<elseif $playervar.clitorissize gte 1.8>>
<span class="greenyellow">big</span>
<<elseif $playervar.clitorissize gte 1.25>>
<span class="graypink">medium</span>
<<elseif $playervar.clitorissize gte 0.9>>
<span class="gray">common</span>
<<elseif $playervar.clitorissize gte 0.5>>
<span class="lightorange">small</span>
<<elseif $playervar.clitorissize gte 0.3>>
<span class="lightyellow">tiny</span>
<</if>>
<</widget>>
<<widget "nipplesizechecker">>
<<if $playervar.nipplesize eq 3.2>>
<span class="green">enormous</span>
<<elseif $playervar.nipplesize gte 2.1>>
<span class="lightgreen">huge</span>
<<elseif $playervar.nipplesize gte 1.5>>
<span class="greenyellow">big</span>
<<elseif $playervar.nipplesize gte 1.25>>
<span class="graypink">medium</span>
<<elseif $playervar.nipplesize gte 0.95>>
<span class="gray">common</span>
<<elseif $playervar.nipplesize gte 0.48>>
<span class="lightorange">small</span>
<<elseif $playervar.nipplesize gte 0.25>>
<span class="lightyellow">tiny</span>
<</if>>
<</widget>>
<<widget "vagtightnesschecker">>
Your vagina
<<if $playervar.vagtightness eq 70>>
is <span class="red">extremely tight</span>
<<elseif $playervar.vagtightness gte 50>>
is <span class="lightred">tight</span>
<<elseif $playervar.vagtightness gte 35>>
has a <span class="gray">normal</span> tightness.
<<elseif $playervar.vagtightness gte 15>>
is <span class="lightred">loose</span>.
<<elseif $playervar.vagtightness gte 5>>
is <span class="darkred">extremely loose</span>.
<</if>>
<</widget>>/% Character creation widgets and things that can or can't change later. %/
<<widget "gendersetter">>
<<switch $playervar.gender>>
/*Female player*/
<<case "female">>
<<set $playervar.hasvagina to true>>
<<set $playervar.haspenis to false>>
<<set $playervar.virginity to {
anus: true,
mouth: true,
vagina: true,
breast: true,
nipples: true,
throat: true,
hands: true,
tights: true,
butt: true,
urethra: true
}>>
<<set $bps.genitals.deleteAt(2); $bps.genitals.deleteAt(2)>>
<<if $disablernggod is false>>
<<rngod>>
<<if $rnggod gte 50>>
<<set $playervar.cansquirt to true>>
<</if>>
<<if $rnggod gte 80>>
<<set $playervar.gagreflex to false>>
<</if>>
<<set $disablernggod to true>>
<</if>>
<<switch $playervar.height>>
<<case "small">>
<<set $playervar.vagdepth to 13>>
<<set $playervar.anusdepth to 20>>
<<set $playervar.anuscomfortinsert to 18>>
<<set $playervar.anuswidthcomfortinsert to 12>>
<<set $playervar.vagcomfortinsert to 11>>
<<set $playervar.uterusdepth to 5>>
<<set $playervar.throatdepth to 14>>
<<set $playervar.throatcomfortinsert to 12>>
<<set $playervar.vagwidthcomfortinsert to 10>>
<<set $playervar.throatwidthcomfortinsert to 8>>
<<case "common">>
<<set $playervar.vagdepth to 18>>
<<set $playervar.anusdepth to 23>>
<<set $playervar.anuscomfortinsert to 21>>
<<set $playervar.anuswidthcomfortinsert to 14>>
<<set $playervar.vagcomfortinsert to 16>>
<<set $playervar.uterusdepth to 8>>
<<set $playervar.throatdepth to 19>>
<<set $playervar.throatcomfortinsert to 17>>
<<set $playervar.vagwidthcomfortinsert to 12>>
<<set $playervar.throatwidthcomfortinsert to 10>>
<<case "tall">>
<<set $playervar.vagdepth to 23>>
<<set $playervar.anusdepth to 27>>
<<set $playervar.anuscomfortinsert to 25>>
<<set $playervar.anuswidthcomfortinsert to 16>>
<<set $playervar.vagcomfortinsert to 21>>
<<set $playervar.uterusdepth to 11>>
<<set $playervar.throatdepth to 24>>
<<set $playervar.throatcomfortinsert to 22>>
<<set $playervar.vagwidthcomfortinsert to 14>>
<<set $playervar.throatwidthcomfortinsert to 12>>
<</switch>>
<<set $playervar.insidemaxcumlevel to 1000 + ($playervar.uterusdepth * 50)>>
/*Male player*/
<<case "male">>
<<set $playervar.haspenis to true>>
<<set $playervar.hasvagina to false>>
<<set $playervar.virginity to {
anus: true,
mouth: true,
penis: true,
throat: true,
hands: true,
tights: true,
butt: true,
urethra: true
}>>
<<set $bps.genitals.deleteAt(0); $bps.genitals.deleteAt(0)>>
<<if $disablernggod is false>>
<<rngod>>
<<if $rnggod gte 80>>
<<set $playervar.gagreflex to false>>
<</if>>
<<set $disablernggod to true>>
<</if>>
<<switch $playervar.height>>
<<case "small">>
<<set $playervar.anusdepth to 20>>
<<set $playervar.anuscomfortinsert to 18>>
<<set $playervar.anuswidthcomfortinsert to 12>>
<<set $playervar.throatdepth to 14>>
<<set $playervar.throatcomfortinsert to 12>>
<<set $playervar.throatwidthcomfortinsert to 8>>
<<case "common">>
<<set $playervar.anusdepth to 23>>
<<set $playervar.anuscomfortinsert to 21>>
<<set $playervar.anuswidthcomfortinsert to 14>>
<<set $playervar.throatdepth to 19>>
<<set $playervar.throatcomfortinsert to 17>>
<<set $playervar.throatwidthcomfortinsert to 10>>
<<case "tall">>
<<set $playervar.anusdepth to 27>>
<<set $playervar.anuscomfortinsert to 25>>
<<set $playervar.anuswidthcomfortinsert to 16>>
<<set $playervar.throatdepth to 24>>
<<set $playervar.throatcomfortinsert to 22>>
<<set $playervar.throatwidthcomfortinsert to 13>>
<</switch>>
<</switch>>
<</widget>>
<<widget "bsandhsetter">> /* Bodyshape and height setter */
<<if $playervar.bodyshape eq 100>>
<<set $playervar.bodyshapestate to "muscular" >>
<<elseif $playervar.bodyshape gte 80>>
<<set $playervar.bodyshapestate to "toned">>
<<elseif $playervar.bodyshape gte 60>>
<<set $playervar.bodyshapestate to "fit">>
<<elseif $playervar.bodyshape gte 40>>
<<set $playervar.bodyshapestate to "common">>
<<elseif $playervar.bodyshape gte 20>>
<<set $playervar.bodyshapestate to "chubby">>
<<elseif $playervar.bodyshape gte 0>>
<<set $playervar.bodyshapestate to "fat">>
<</if>>
<</widget>>
<<widget "antrwidthsetter">>
<<if $playervar.anustightness eq 70>> /* Very tight */
<<set $playervar.sensibility += 10>>
<<set $playervar.anuswidthcomfortinsert -= 8>>
<<elseif $playervar.anustightness gte 50>> /* Tight */
<<set $playervar.sensibility += 5>>
<<set $playervar.anuswidthcomfortinsert -= 4>>
<<elseif $playervar.anustightness lte 15>> /* Loose */
<<set $playervar.sensibility -= 5>>
<<set $playervar.anuswidthcomfortinsert += 4>>
<<elseif $playervar.anustightness lte 5>> /* Very loose */
<<set $playervar.sensibility -= 10>>
<<set $playervar.anuswidthcomfortinsert += 8>>
<</if>>
<<if $playervar.gagreflex is true>>
<<set $playervar.throatwidthcomfortinsert *= 0.75>>
<</if>>
<</widget>>
/* Male setter*/
<<widget "malesetter">>
<<if $playervar.ballssize eq 12>>
<<set $playervar.cummaxlevel to 550>>
<<set $playervar.cumregen to 5.5>>
<<set $playervar.sensibility += 5>>
<<elseif $playervar.ballssize gte 8>>
<<set $playervar.cummaxlevel to 450>>
<<set $playervar.cumregen to 4.5>>
<<set $playervar.sensibility += 4>>
<<elseif $playervar.ballssize gte 4>>
<<set $playervar.cummaxlevel to 350>>
<<set $playervar.cumregen to 3.5>>
<<set $playervar.sensibility += 3>>
<<elseif $playervar.ballssize gte 2>>
<<set $playervar.cummaxlevel to 250>>
<<set $playervar.cumregen to 2.5>>
<<set $playervar.sensibility += 2>>
<<elseif $playervar.ballssize gte 1>>
<<set $playervar.cummaxlevel to 150>>
<<set $playervar.cumregen to 1.5>>
<<set $playervar.sensibility += 1>>
<</if>>
<<if $playervar.penissize eq 24>>
<<set $playervar.peniswidth to 6.5>>
<<elseif $playervar.penissize gte 20>>
<<set $playervar.peniswidth to 5.5>>
<<elseif $playervar.penissize gte 15>>
<<set $playervar.peniswidth to 4.5>>
<<elseif $playervar.penissize gte 12>>
<<set $playervar.peniswidth to 3.5>>
<<elseif $playervar.penissize gte 5>>
<<set $playervar.peniswidth to 2.5>>
<<elseif $playervar.penissize gte 3>>
<<set $playervar.peniswidth to 1.5>>
<</if>>
<</widget>>
/* Female setter */
<<widget "femalesetter">>
/* Upper body sensibility */
<<if $playervar.breastsize eq 100>> /* Enormous */
<<set $playervar.breastmilkmaxlevel to 420>>
<<set $playervar.sensibility += 5>>
<<elseif $playervar.breastsize gte 80>> /* Big */
<<set $playervar.breastmilkmaxlevel to 360>>
<<set $playervar.sensibility += 4>>
<<elseif $playervar.breastsize gte 60>> /* Perky */
<<set $playervar.breastmilkmaxlevel to 300>>
<<set $playervar.sensibility += 3>>
<<elseif $playervar.breastsize gte 40>> /* Normal */
<<set $playervar.breastmilkmaxlevel to 240>>
<<set $playervar.sensibility += 2>>
<<elseif $playervar.breastsize gte 20>> /* Small */
<<set $playervar.breastmilkmaxlevel to 180>>
<<set $playervar.sensibility += 1>>
<<elseif $playervar.breastsize gte 0>> /* Flat */
<<set $playervar.breastmilkmaxlevel to 120>>
<</if>>
<<if $playervar.nipplesize eq 3.2>>
<<set $playervar.sensibility += 5>>
<<elseif $playervar.nipplesize gte 2.1>>
<<set $playervar.sensibility += 4>>
<<elseif $playervar.nipplesize gte 1.25>>
<<set $playervar.sensibility += 3>>
<<elseif $playervar.nipplesize gte 0.95>>
<<set $playervar.sensibility += 2>>
<<elseif $playervar.nipplesize gte 0.48>>
<<set $playervar.sensibility += 1>>
<</if>>
/* Lower body sensibility */
<<if $playervar.clitorissize eq 3.4>>
<<set $playervar.sensibility += 5>>
<<elseif $playervar.clitorissize gte 2.2>>
<<set $playervar.sensibility += 4>>
<<elseif $playervar.clitorissize gte 1.8>>
<<set $playervar.sensibility += 3>>
<<elseif $playervar.clitorissize gte 1.2>>
<<set $playervar.sensibility += 2.5>>
<<elseif $playervar.clitorissize gte 0.9>>
<<set $playervar.sensibility += 2>>
<<elseif $playervar.clitorissize gte 0.5>>
<<set $playervar.sensibility += 1>>
<</if>>
<<if $playervar.vagtightness eq 70>> /* Very tight */
<<set $playervar.sensibility += 10>>
<<set $playervar.vagwidthcomfortinsert -= 6>>
<<elseif $playervar.vagtightness gte 50>> /* Tight */
<<set $playervar.sensibility += 5>>
<<set $playervar.vagwidthcomfortinsert -= 3>>
<<elseif $playervar.vagtightness lte 15>> /* Loose */
<<set $playervar.sensibility -= 5>>
<<set $playervar.vagwidthcomfortinsert += 3>>
<<elseif $playervar.vagtightness lte 5>> /* Very loose */
<<set $playervar.sensibility -= 10>>
<<set $playervar.vagwidthcomfortinsert += 5>>
<</if>>
<</widget>>
/%<<widget "lactationsetter">>
<<if $playervar.lactationenabler eq 1>>
<<switch $playervar.breastsize>>
<<case "100">>
<<set $playervar.breastmilkmaxlevel to 1000 + (random(1000,1500))>>
<<case "80">>
<<set $playervar.breastmilkmaxlevel to 1000 + (random(750-1000))>>
<</switch>>
<<else>>
You are not lactating.
<</if>>
<</widget>>%/
<<widget "hobbyselection">>
<<switch $hobby>>
<<case "joat">>
<<set $genSkillMod to 1.2>>
<<case $hobby>>
<<set _fSk to setup.skills.findIndex(x => x.name === $hobby)>>
<<set $pSkills.push(clone(setup.skills[_fSk]))>>
<<set $genSkillMod to 1>>
<<set $pSkills[$pSkills.length - 1].learningMod to 2>>
<</switch>>
<</widget>><<widget "skillsIni">>
<<set setup.skills to [
{
id: 0,
name: "programming",
exp: 0,
expleft: 100,
learningMod: 1,
category: ["Main"],
lvl: 1
},
{
id: 1,
name: "cooking",
exp: 0,
expleft: 100,
learningMod: 1,
category: ["Main"],
lvl: 1
},
{
id: 2,
name: "gardening",
exp: 0,
expleft: 100,
learningMod: 1,
category: ["Main"],
lvl: 1
},
{
id: 3,
name: "art",
exp: 0,
expleft: 100,
learningMod: 1,
category: ["Main"],
lvl: 1
},
{
id: 4,
name: "athletic",
exp: 0,
expleft: 100,
learningMod: 1,
category: ["Main"],
lvl: 1
},
{
id: 5,
name: "handyman",
exp: 0,
expleft: 100,
learningMod: 1,
category: ["Secondary"],
lvl: 1
},
{
id: 6,
name: "gaming",
exp: 0,
expleft: 100,
learningMod: 1,
category: ["Secondary"],
lvl: 1
},
]>>
<</widget>>
<<widget "skillup">> /* If the exp is greater than the exp left to level up, it level up that skill as many time as the exp meet the exp left threshold. */
<<for $pSkills[_fSk].exp gte $pSkills[_fSk].expleft>>
<<set $pSkills[_fSk].exp -= $pSkills[_fSk].expleft>>
<<set $pSkills[_fSk].expleft = Math.round(1.25 * ($pSkills[_fSk].expleft + 1.25)) + ($pSkills[_fSk].category.includes("Secondary") ? 50 : 0)>>
<<set $pSkills[_fSk].lvl += 1>>
<</for>>
<</widget>>
/% It just add exp to the skill and then calls the widget skillup so it can check if it got the needed exp to lvl up.%/
<<widget "addexp">>
<<set _fSk to $pSkills.findIndex(x => x.name === $args[0])>>
<<set _val to $args[1]>>
<<if _fSk is -1>>
<<set _fSSk to setup.skills.findIndex(x => x.name === $args[0])>>
<<set $pSkills.pushUnique(setup.skills[_fSSk])>>
<<set _fSk to $pSkills.findIndex(x => x.name === $args[0])>>
<</if>>
<<set $pSkills[_fSk].exp += Math.round((_val * ($pSkills[_fSk].learningMod * $genSkillMod ))/ ($arousal gte 80 ? 2 : 1))>>
<<set $message to "addedExp"; $mExp to Math.round((_val * ($pSkills[_fSk].learningMod * $genSkillMod ))/ ($arousal gte 80 ? 2 : 1)); $mSkill to $pSkills[_fSk].name>>
<<skillup>>
<</widget>><<widget "traitsInit">>
<<set setup.traits to [
{
id: 0,
name: "Crossdressing",
type: ["Non-Sexual"],
excludes: [""],
exp: 0,
expleft: 10,
level: 0
},
{
id: 1,
name: "Masturbation Lover",
type: ["Sexual"],
excludes: [""],
exp: 0,
expleft: 10,
level: 0
}
]>>
<</widget>>
<<widget "traitsEXP">>
<<set _trait to $args[0]>>
<<set _expAm to $args[1]>>
<<set $pTraits[_trait].exp += _expAm>>
<<for $pTraits[_trait].exp gte $pTraits[_trait].expleft>>
<<set $pTraits[_trait].exp -= $pTraits[_trait].expleft>>
<<set $pTraits[_trait].level++>>
<</for>>
<</widget>><<widget "codexMain">>
@@#codexBody;<<cContentMain>>@@
<br>
<<codexButtons>>
<</widget>>
<<widget "codexButtons">>
<div class="listCodex">
<<button "Main">>
<<replace "#codexBody">>
<<cContentMain>>
<</replace>>
<</button>>
</div>
<div class="listCodex">
<<button "Status">>
<<replace "#codexBody">>
<<charStatus>>
<</replace>>
<</button>>
</div>
<div class="listCodex">
<<button "Recipes">>
<<replace "#codexBody">>
<<learnedRecipes>>
<</replace>>
<</button>>
</div>
<div class="listCodex">
<<button "Skills">>
<<replace "#codexBody">>
<<skillbar>>
<</replace>>
<</button>>
</div>
<div class="listCodex">
<<button "Traits">>
<<replace "#codexBody">>
<<traitsList>>
<</replace>>
<</button>>
</div>
<div class="listCodex">
<<button "Options">>
<<replace "#codexBody">>
<<options>>
<</replace>>
<</button>>
</div>
<</widget>>
<<widget "cContentMain">>
<div style="text-align:left; margin-left: 3px;">
Hello @@.gold;<<print String.format("{0} {1}", $pName, $pSurname)>>@@! Welcome back to @@.lightorange;GLODEX@@.
<br>
You have @@.orange;0@@ unread messages. (@@.red;WIP@@)
<br>
You have @@.orange;0@@ unread emails. (@@.red;WIP@@)
<br>
<br>
<<shoppingList>>
</div>
<</widget>>
<<widget "learnedRecipes">>
<h3>Learned Recipes</h3>
<<for _i to 0; _i lt $learnedrecipes.length; _i++>>
<<set _rID to setup.recipes.findIndex(x => x.name === $learnedrecipes[_i])>>
<<capture _i _rID>>
<span style="float: left; margin-left: 5px;">
<<print _i + 1>>)
<<link "$learnedrecipes[_i]">>
<<toggleclass `"#lr" + _i` "hide">>
<</link>>
</span>
<div @id="'lr' + _i" class="hide" style="text-align:left;">
<span class="listCodex">
<<instructions _rID>>
<br>
<br>
<<ingredientsList>>
</span>
<div class="thindiv"></div>
</div>
<</capture>>
<</for>>
<<if !$learnedrecipes[0]>>
You haven't learned any recipe yet.
<</if>>
<</widget>>
<<widget "shoppingList">>
<<if $selectedrecipe>>
Your current shopping list for @@.blue;$selectedrecipe@@ is:
<br>
<<set _rID to setup.recipes.findIndex(x => x.name === $selectedrecipe)>>
<<ingredientsList>>
<<else>>
You must select a recipe in the kitchen table to get a shopping list.
<</if>>
<</widget>>
<<widget "ingredientsList">>
Required ingredients:
<<for _iRI to 0; _iRI lt setup.recipes[_rID].reqingredients.length; _iRI++>>
@@.orange;<<print setup.recipes[_rID].reqingredients[_iRI]>>@@<<if _iRI lt setup.recipes[_rID].reqingredients.length -1>>,<</if>>
<</for>>
<br>
Optional ingredients:
<<for _iRI to 0; _iRI lt setup.recipes[_rID].extraingredients.length; _iRI++>>
@@.orange;<<print setup.recipes[_rID].extraingredients[_iRI]>>@@<<if _iRI lt setup.recipes[_rID].extraingredients.length -1>>,<</if>>
<</for>>
<<if setup.recipes[_rID].defingredients>>
<br>
Defining ingredients:
<<for _iRI to 0; _iRI lt setup.recipes[_rID].defingredients.length; _iRI++>>
@@.orange;<<print setup.recipes[_rID].defingredients[_iRI]>>@@<<if _iRI lt setup.recipes[_rID].defingredients.length -1>> or<</if>>
<</for>>
<</if>>
<</widget>>
<<widget "traitsList">>
<<if $pTraits[0]>>
<<set _types to ["Non-Sexual", "Sexual"]>>
<div style="margin: auto; display: table;">
<<for _i to 0; _i lt _types.length; _i++>>
<div style="display: inline-block">
<span @class="_types[_i] is 'Sexual' ? 'lightred' : 'lightyellow'"><<print _types[_i]>></span>
<br>
<<for _iT to 0; _iT lt $pTraits.length; _iT++>>
<<if $pTraits[_iT].type.includes(_types[_i])>>
<div class="listSkills">
<<print String.format("{0}<br>Level:{1}<br>Exp:{2}/{3}", $pTraits[_iT].name, $pTraits[_iT].level, $pTraits[_iT].exp, $pTraits[_iT].expleft)>>
</div>
<</if>>
<</for>>
</div>
<</for>>
</div>
<<else>>
You have no traits.
<</if>>
<</widget>>
<<widget "options">>
<<checkbox "$displayColorText" false true autocheck>> Enabled clothes text color.
<br>
<<checkbox "$enableAutoToys" false true autocheck>> Enable auto-storage of sex toys.
<br>
(Must change passage to update).
<</widget>><<widget "charStatus">>
<fieldset class="charc">
<legend class="centered"> Character Status </legend>
<fieldset class="charc">
<legend> General info: </legend>
Your name is @@.gold;<<print "$pName $pSurname">>@@,
you are a
<<if $playervar.gender is "female">>
@@.pink;<<print $playervar.gender>>@@.
<<else>>
@@.lightblue;<<print $playervar.gender>>@@.
<</if>>
Your skin tone is <<skintone>>
<br>
You hair color is <span @class="$pHairColor.toLowerCase();">$pHairColor</span> with a @@.orange;$pHairStyle@@ style.
<<if $pBeardSize>>
And your beard length is @@.blue;<<print $pBeardSize>>@@ mm.
<</if>>
Your body sensibility is <<sensibilitychecker>>
Your body is @@.orange;<<print $playervar.height>>@@ and @@.orange;<<print $playervar.bodyshapestate>>@@.
</fieldset>
<fieldset class="charc">
<legend> Mouth info: </legend>
You have a mouth that has a pair of lips. <<if $playervar.virginity.mouth is true>>@@.green;You haven't performed any sex action with your mouth@@.<</if>><br>
Your throat has a depth of @@.blue;<<print $playervar.throatdepth>>@@ cm and can comfortably insert objects up to @@.blue;<<print $playervar.throatcomfortinsert>>@@ cm in length and @@.blue;<<print $playervar.throatwidthcomfortinsert>>@@ cm width.
It <<if $playervar.virginity.throat is true>>@@.green;had no object in it before@@.<</if>> <<if $playervar.gagreflex is true>>@@.green;You still have your gag reflex@@. <<else>> You don't have a gag reflex.<</if>>
</fieldset>
<<if $playervar.gender is "female">>
<fieldset class="charc">
<legend>Breast info: </legend>
You have a pair of <<breastsizechecker>> breast. /*They can hold @@.blue;<<print $playervar.breastmilkmaxlevel>>@@ ml of milk //Disabled until used*/. <<if $playervar.virginity.breast is true>> @@.green;You haven't performed any sex action with your breast@@.<</if>>
<br>
Each breast has <<nipplesizechecker>> nipple and they are @@.orange;<<print $playervar.nippletype>>@@. Their size is @@.blue;<<print $playervar.nipplesize>>@@ cm. <<if $playervar.virginity.nipples is true>>@@.green;You haven't performed any sex action with your nipples@@.<</if>>
</fieldset>
<fieldset class="charc">
<legend>Genitals info: </legend>
<<vagtightnesschecker>> It has a depth of @@.blue;<<print $playervar.vagdepth>>@@ cm, can insert objects up to @@.blue;<<print $playervar.vagcomfortinsert>>@@ cm in length and @@.blue;<<print $playervar.vagwidthcomfortinsert>>@@ cm width. <<if $playervar.virginity.vagina is true>> @@.green;Your hymen is still intact@@.<<else>>@@.gray;<<print $playervar.virginity.vagina>>@@<</if>>
<<if $playervar.cansquirt is true>><br>@@.green;When you orgasm you expel liquids from it@@.<</if>>
<br>
Your clitoris has a <<clitorissizechecker>>size and is @@.blue;<<print $playervar.clitorissize>>@@ cm in total.
</fieldset>
<<elseif $playervar.gender is "male">>
<fieldset class="charc">
<legend>Genitals info: </legend>
You have a @@.orange;<<penissizechecker>>@@ penis. Its size is @@.blue;<<print $playervar.penissize>>@@ cm in length and @@.blue;<<print $playervar.peniswidth>>@@ cm width. <<if $playervar.virginity.penis is true>> @@.green;You are a virgin@@.<</if>>
<br>
Below it you have a pair of <<ballssizechecker>> balls and their size is @@.blue;<<print $playervar.ballssize>>@@ cm.
</fieldset>
<</if>>
<fieldset class="charc">
<legend> Butt info: </legend>
Your butt is <<buttsizechecker>> and <<if $playervar.virginity.butt is true>> @@.green;You haven't performed any sex action with your butt@@.<</if>>
<br>
<<anustightnesschecker>> It has a depth of @@.blue;<<print $playervar.anusdepth>>@@ cm and can insert objects up to @@.blue;<<print $playervar.anuscomfortinsert>>@@ cm in length and @@.blue;<<print $playervar.anuswidthcomfortinsert>>@@ cm width. <<if $playervar.virginity.anus is true>> @@.green; It's still virgin@@.<</if>>
</fieldset>
</fieldset>
<</widget>>/* Now that I know what I'm doing it's just an skillbar.*/
<<widget "skillbar">>
<<for _i to 0; _i lt $pSkills.length; _i++>>
<div class="listSkills">
<<print $pSkills[_i].name.toUpperFirst()>> level: <span @id="$pSkills[_i].name"><<print $pSkills[_i].lvl>></span>
<br>
Category: <<print $pSkills[_i].category[0]>>
<br>
<<progressbar $pSkills[_i].exp $pSkills[_i].expleft $pSkills[_i].name>>
</div>
<</for>>
<<if !$pSkills[0]>>
You don't have any skill yet.
<</if>>
<</widget>>
<<widget "progressbar">> /* This is the progress bar. A pretty bar I tell you. With some green color and shit. Please refer to SugarCube Doc if you don't know what @id does. I didn't know but now I do :D */
<<set _expval to $args[0]>>
<<set _expleftval to $args[1]>>
<<set _skill to $args[2]>>
<<set _progress = Math.round((_expval/_expleftval)*100)>>
<div @id="_skill">
<div id="progressbar">
<div id="bar" @style="'width:' + _progress + '%'"></div>
</div>
<h4 id="expnumber" style="padding:0; margin:0;">Exp: <<print _expval + "/" + _expleftval>></h4>
</div>
<</widget>><<widget "setFruitsVeget">>
<<set setup.food.fruits to [
{
id: 0,
name: "Coconut",
description: "A coconut",
uses: 2,
price: 2,
energy: 2,
amount: 1,
foodtype: "fruits"
},
{
id: 1,
name: "Watermelon",
description: "A watermelon",
uses: 3,
price: 3,
energy: 2,
amount: 1,
foodtype: "fruits"
},
{
id: 3,
name: "Melon",
description: "A melon",
uses: 2,
price: 3,
energy: 3,
amount: 1,
foodtype: "fruits"
},
]>>
<<set setup.food.vegetables to [
{
id: 0,
name: "Tomatoes",
description: "Tomatoes",
uses: 2,
price: 3,
amount: 1,
foodtype: "vegetables"
},
{
id: 1,
name: "Cabbages",
description: "Cabbages",
uses: 2,
price: 4,
amount: 1,
foodtype: "vegetables"
},
]>>
<</widget>><<widget "setgeneralIng">>
<<set setup.food.generalIng to [
{
id: 0,
name: "Rice",
description: "A pack of rice",
price: 2,
uses: 3,
amount: 1,
foodtype: "generalIng"
},
{
id: 1,
name: "Pasta",
description: "A pack of pasta",
price: 2,
uses: 3,
amount: 1,
foodtype: "generalIng"
},
{
id: 2,
name: "Salt",
description: "A pack of salt",
uses: 3,
price: 1,
amount: 1,
foodtype: "generalIng"
},
{
id: 3,
name: "Flour",
description: "A pack of flour",
uses: 3,
price: 2,
amount: 1,
foodtype: "generalIng"
},
{
id: 4,
name: "Butter",
description: "Just butter",
uses: 4,
price: 3,
amount: 1,
foodtype: "generalIng"
},
{
id: 5,
name: "Sugar",
description: "A pack of sugar",
uses: 3,
price: 2,
amount: 1,
foodtype: "generalIng"
}
]>>
<</widget>><<widget "setmeat">>
<<set setup.food.meat to [
{
id: 0,
name: "Raw Chicken Breast",
description: "Raw chicken breast",
uses: 1,
price: 4,
amount: 1,
foodtype: "meat"
},
{
id: 1,
name: "Raw Chicken Wings",
description: "Raw chicken wings",
uses: 1,
price: 4,
amount: 1,
foodtype: "meat"
},
{
id: 2,
name: "Raw Steak",
description: "Raw Steak",
uses: 1,
price: 5,
amount: 1,
foodtype: "meat"
},
{
id: 3,
name: "Raw Ground Beef",
description: "Raw Ground Beef",
uses: 1,
price: 4,
amount: 1,
foodtype: "meat"
},
{
id: 4,
name: "Sausages",
description: "Sausages",
uses: 2,
price: 3,
energy: 4,
amount: 1,
foodtype: "meat"
},
]>>
<</widget>><<widget "setprepfood">>
<<set setup.food.preparedfood to [
{
id: 0,
name: "Chicken Rice",
quality: "Normal",
uses: 1,
amount: 1,
energy: 27,
price: 0,
exp: 10,
foodtype: ["Cooked Meat", "Prepared Food"]
},
{
id: 1,
name: "Fried Chicken Wings",
quality: "Normal",
uses: 1,
amount: 1,
energy: 23,
price: 0,
exp: 8,
foodtype: ["Cooked Meat", "Prepared Food"]
},
{
id: 2,
name: "Chicken Fillet",
quality: "Normal",
uses: 1,
amount: 1,
energy: 27,
price: 0,
exp: 11,
foodtype: ["Cooked Meat", "Prepared Food"]
},
{
id: 3,
name: "Rice with Sausages",
quality: "Normal",
uses: 1,
amount: 1,
energy: 20,
price: 0,
exp: 7,
foodtype: ["Cooked Meat", "Prepared Food"]
},
{
id: 4,
name: "Steak",
quality: "Normal",
uses: 1,
amount: 1,
energy: 27,
price: 0,
exp: 10,
foodtype: ["Cooked Meat", "Prepared Food"]
},
{
id: 5,
name: "Ground Beef",
quality: "Normal",
uses: 1,
amount: 1,
energy: 29,
price: 0,
exp: 16,
foodtype: ["Cooked Meat", "Prepared Food"]
}
]>>
<</widget>><<widget "setspices">>
<<set setup.food.spices to [
{
id: 0,
name: "Pepper",
description: "A pack of pepper.",
uses: 3,
price: 1,
amount: 1,
foodtype: "spices",
}
]>>
<</widget>><<widget "foodshow">>
<<set _foodlist to State.getVar("setup.food."+ $args[0])>>
<<set _n to [1, 2, 3, 4, 5]>>
<br>
<<for _fLI to 0; _fLI lt _foodlist.length; _fLI++>>
<<set _exist to $shoppingcart.findIndex(x => x.name === _foodlist[_fLI].name)>>
<div class="list">
<div id="insidelist">
Name: @@.orange;<<print _foodlist[_fLI].name>>@@
<br>
Price: @@.yellow;<<print _foodlist[_fLI].price>> credits@@
<br>
Amount:
<<listbox "_Amount" autoselect>>
<<optionsfrom _n>>
<</listbox>>
<<pButton "grocery">>
</div>
</div>
<</for>>
<br>
<br>
<</widget>>/* Note to myself: Remember to write the comments after you have finished these widgets. Because is a PITA to write them. Fuck. */
/*These are just some for loops to check if the kitchen table has the ingredients of the selected recipe.*/
<<widget "selectrecipe">>
<fieldset id="fieldinline">
<legend><<print $selectedrecipe>></legend>
<<set _recipeNameID to setup.recipes.findIndex(x => x.name === $selectedrecipe)>>
<<set _ingredID to 0>>
<<set _eingredID to 0>>
<<set $ingCount to 0>>
Main ingredients needed:<<for _i to 0; _i lt setup.recipes[_recipeNameID].reqingredients.length; _i++>>
<<set _ingredientN to setup.recipes[_recipeNameID].reqingredients[_i]>>
<<set _foodnameID to $kitchentable.findIndex(x => x.name === _ingredientN)>>
<<if $kitchentable[_foodnameID]>>
<<if $kitchentable[_foodnameID].name is _ingredientN>>
<<set $ingCount++>>
<</if>>
<</if>>
<<if _ingredID eq setup.recipes[_recipeNameID].reqingredients.length - 1>>
<span @class="($kitchentable[_foodnameID] isnot undefined ? ($kitchentable[_foodnameID].name is _ingredientN ? 'green' : '') : 'orange')"><<print _ingredientN>></span>.
<<set _ingredID++>>
<<elseif _ingredID eq setup.recipes[_recipeNameID].reqingredients.length - 2>>
<span @class="($kitchentable[_foodnameID] isnot undefined ? ($kitchentable[_foodnameID].name is _ingredientN ? 'green' : '') : 'orange')"><<print _ingredientN>></span> and
<<set _ingredID++>>
<<elseif _ingredID lt setup.recipes[_recipeNameID].reqingredients.length>>
<span @class="($kitchentable[_foodnameID] isnot undefined ? ($kitchentable[_foodnameID].name is _ingredientN ? 'green' : '') : 'orange')"><<print _ingredientN>></span>,
<<set _ingredID++>>
<</if>>
<</for>>
<<if setup.recipes[_recipeNameID].defingredients>>
<br>
Defining ingredients:
<<set _ingredientDef to []>>
<<set _tempKitchenTable to []>>
<<set _ingredientDef to setup.recipes[_recipeNameID].defingredients>>
<<set _defIngredCount to false>>
<<set _defIngredID to 0>>
<<for _j to 0; _j lt setup.recipes[_recipeNameID].defingredients.length; _j++>>
<<set _foodnameDefID to $kitchentable.findIndex(x => x.name === _ingredientDef[_j])>>
<<if $kitchentable[_foodnameDefID]>>
<<set _tempKitchenTable.push($kitchentable[_foodnameDefID].name)>>
<</if>>
<<if _tempKitchenTable.includesAll(_ingredientDef)>>
<<set _defIngredCount to false>>
<<else>>
<<set _defIngredCount to true>>
<</if>>
<</for>>
<<for _i to 0; _i lt setup.recipes[_recipeNameID].defingredients.length; _i++>>
<<if _defIngredID eq setup.recipes[_recipeNameID].defingredients.length - 1>>
<span @class="(_tempKitchenTable[_i] is _ingredientDef[_i] ? (_defIngredCount is true ? 'green' : 'red') : 'orange')"><<print _ingredientDef[_i]>></span>.
<<set _defIngredID++>>
<<elseif _defIngredID lt setup.recipes[_recipeNameID].defingredients.length>>
<span @class="(_tempKitchenTable[_i] is _ingredientDef[_i] ? (_defIngredCount is true ? 'green' : 'red') : 'orange')"><<print _ingredientDef[_i]>></span> or
<<set _defIngredID++>>
<</if>>
<</for>>
<</if>>
<br>
Extra ingredients needed: <<for _i to 0; _i lt setup.recipes[_recipeNameID].extraingredients.length; _i++>>
<<set _eingredientN to setup.recipes[_recipeNameID].extraingredients[_i]>>
<<set _foodnameID to $kitchentable.findIndex(x => x.name === _eingredientN)>>
<<if _eingredID eq setup.recipes[_recipeNameID].extraingredients.length - 1>>
<span @class="($kitchentable[_foodnameID] isnot undefined ? ($kitchentable[_foodnameID].name is _eingredientN ? 'green' : '') : 'orange')"><<print _eingredientN>></span>.
<<set _eingredID++>>
<<elseif _eingredID eq setup.recipes[_recipeNameID].extraingredients.length - 2>>
<span @class="($kitchentable[_foodnameID] isnot undefined ? ($kitchentable[_foodnameID].name is _eingredientN ? 'green' : '') : 'orange')"><<print _eingredientN>></span> and
<<set _eingredID++>>
<<elseif _eingredID lt setup.recipes[_recipeNameID].extraingredients.length>>
<span @class="($kitchentable[_foodnameID] isnot undefined ? ($kitchentable[_foodnameID].name is _eingredientN ? 'green' : '') : 'orange')"><<print _eingredientN>></span>,
<<set _eingredID++>>
<</if>>
<</for>>
<br>
<<if $ingCount eq setup.recipes[_recipeNameID].reqingredients.length and !_tempKitchenTable>>
<<button `"Prepare " + $selectedrecipe`>>
<<if $energy gte 15>>
<<goto "preparation">>
<<else>>
<<set $message to "noEnergy">>
<<goto "kitchentable">>
<</if>>
<</button>>
<<elseif $ingCount eq setup.recipes[_recipeNameID].reqingredients.length and _defIngredCount is true>>
<<button `"Prepare " + $selectedrecipe`>>
<<if $energy gte 15>>
<<goto "preparation">>
<<else>>
<<set $message to "noEnergy">>
<<goto "kitchentable">>
<</if>>
<</button>>
<</if>>
</fieldset>
<</widget>>
/* Here is where the magic happens part 1. It finds and delete the ingredient then per ingredient added it counts to the next magic part. */
<<widget "foodpreparation">>
<<set _reqingredients to []>>
<<set _extraIngredients to []>>
<<set $ingCount to 0>>
<<set $defExist to 0>>
<<set _recipeNameID to setup.recipes.findIndex(x => x.name === $selectedrecipe)>>
<<set _reqingredients to setup.recipes[_recipeNameID].reqingredients>>
<<set _extraIngredients to setup.recipes[_recipeNameID].extraingredients>>
<<if setup.recipes[_recipeNameID].defingredients>>
<<set _defIngredients to []>>
<<set _defIngredients to setup.recipes[_recipeNameID].defingredients>>
<<for _i to 0; _i lt _defIngredients.length; _i++>>
<<set _f to $kitchentable.findIndex(kt => kt.name === _defIngredients[_i])>>
<<if _f isnot -1>>
<<set _defIngredients to $kitchentable[_f].name>>
<<break>>
<</if>>
<</for>>
<<set $defExist to 1>>
<</if>>
<<for _iri to 0; _iri lt _reqingredients.length; _iri++>>
<<set _foodID to $kitchentable.findIndex(x => x.name === _reqingredients[_iri])>>
<<usesCheck _foodID _reqingredients _iri>>
<<set $ingCount++>>
<</for>>
<<for _iei to 0; _iei lt _extraIngredients.length; _iei++>>
<<set _foodIDE to $kitchentable.findIndex(y => y.name === _extraIngredients[_iei])>>
<<usesCheck _foodIDE _extraIngredients _iei>>
<<set $ingCount++>>
<</for>>
<<if $defExist is 1>>
<<set _foodIDD to $kitchentable.findIndex(z => z.name === _defIngredients)>>
<<usesCheck _foodIDD _defIngredients 0>>
<<set $ingCount++>>
<</if>>
<<foodready>>
<</widget>>
/* Here is where the magic happens part 2. It checks if the correct count (If you followed the steps as the recipe says) and assigns a quality, a price and a energy value.
In the case that the recipe has a defining ingredient it adds a "with" to their name.
It stores the new "prepared food" in a temporary kitchen table, makes all changes to it and then add it to the kitchen table.
Checking if any item inside it has the same name, quality, price and energy value. If it does then the amount values goes up. Meaning that you can eat it more than 1 time.
Everything else is self explatanory I think.
*/
<<widget "foodready">>
<<set _stepsL to setup.recipes[_recipeNameID].steps.length>>
<<set _minskill to setup.recipes[_recipeNameID].minskill>>
<<set _recskill to setup.recipes[_recipeNameID].recskill>>
<<set _prepfoodID to setup.food.preparedfood.findIndex(pf => pf.name === $selectedrecipe)>>
<<set _tempKTable to setup.food.preparedfood[_prepfoodID]>>
<<set _fSkill to $pSkills.findIndex(fs => fs.name === "cooking")>>
<<if $correctCount lte _stepsL -3 and $pSkills[_fSkill].lvl gte _minskill or _fSkill is -1>>
<<set _quality to "Mediocre">>
<<if $ingCount gte _reqingredients.length + _extraIngredients.length + $defExist>>
<<set _pMult to 0.75>>
<<set _bonus to 1.16>>
<<elseif $ingCount eq (_reqingredients.length + _extraIngredients.length + $defExist) -1>>
<<set _pMult to 0.72>>
<<set _bonus to 1.22>>
<<elseif $ingCount eq (_reqingredients.length + _extraIngredients.length + $defExist) -2>>
<<set _pMult to 0.69>>
<<set _bonus to 1.28>>
<<elseif $ingCount lte (_reqingredients.length + _extraIngredients.length + $defExist) -3>>
<<set _pMult to 0.66>>
<<set _bonus to 1.32>>
<</if>>
<<elseif $correctCount eq _stepsL -2 and $pSkills[_fSkill].lvl gte _minskill>>
<<set _quality to "Normal">>
<<if $ingCount gte _reqingredients.length + _extraIngredients.length + $defExist>>
<<set _pMult to 1>>
<<set _bonus to 1>>
<<elseif $ingCount eq (_reqingredients.length + _extraIngredients.length + $defExist) -1>>
<<set _pMult to 0.98>>
<<set _bonus to 1.02>>
<<elseif $ingCount eq (_reqingredients.length + _extraIngredients.length + $defExist) -2>>
<<set _pMult to 1.19>>
<<set _bonus to 1.04>>
<<elseif $ingCount lte (_reqingredients.length + _extraIngredients.length + $defExist) -3>>
<<set _pMult to 1.2>>
<<set _bonus to 1.06>>
<</if>>
<<elseif $correctCount eq _stepsL -1 and $pSkills[_fSkill].lvl gte _minskill or $correctCount eq _stepsL and $pSkills[_fSkill].lvl gte _minskill>>
<<set _quality to "Good">>
<<if $ingCount gte _reqingredients.length + _extraIngredients.length + $defExist>>
<<set _pMult to 1.25>>
<<set _bonus to 0.95>>
<<elseif $ingCount eq (_reqingredients.length + _extraIngredients.length + $defExist) -1>>
<<set _pMult to 1.22>>
<<set _bonus to 0.97>>
<<elseif $ingCount eq (_reqingredients.length + _extraIngredients.length + $defExist) -2>>
<<set _pMult to 1.19>>
<<set _bonus to 0.99>>
<<elseif $ingCount lte (_reqingredients.length + _extraIngredients.length + $defExist) -3>>
<<set _pMult to 1.2>>
<<set _bonus to 1.01>>
<</if>>
<<elseif $correctCount gte _stepsL and $pSkills[_fSkill].lvl gt _recskill>>
<<set _quality to "Masterpiece">>
<<if $ingCount gte _reqingredients.length + _extraIngredients.length + $defExist>>
<<set _pMult to 1.5>>
<<set _bonus to 0.90>>
<<elseif $ingCount eq (_reqingredients.length + _extraIngredients.length + $defExist) -1>>
<<set _pMult to 1.4>>
<<set _bonus to 0.92>>
<<elseif $ingCount eq (_reqingredients.length + _extraIngredients.length + $defExist) -2>>
<<set _pMult to 1.3>>
<<set _bonus to 0.94>>
<<elseif $ingCount lte (_reqingredients.length + _extraIngredients.length + $defExist) -3>>
<<set _pMult to 1.2>>
<<set _bonus to 0.96>>
<</if>>
<</if>>
<<if $defExist>>
<<set _tempKTable.name to _defIngredients.toUpperFirst() + " with " + _tempKTable.name>>
<</if>>
<<set _tempKTable.quality to _quality>>
<<set _tempKTable.price to Math.round(_tempKTable.price * _pMult)>>
<<set _tempKTable.energy to Math.round(_tempKTable.energy /= _bonus)>>
<<set _id to $kitchentable.findIndex(kti => kti.name === _tempKTable.name)>>
<<if $kitchentable[_id]>>
<<if $kitchentable[_id].name is _tempKTable.name>>
<<set _uQuality to _tempKTable.quality>>
<<set _uPrice to _tempKTable.price>>
<<set _uEner to _tempKTable.energy>>
<<if $kitchentable[_id].quality is _uQuality and $kitchentable[_id].price is _uPrice and $kitchentable[_id].energy is _uEner>>
<<set $kitchentable[_id].amount += 1>>
<<else>>
<<set $kitchentable.push(clone(_tempKTable))>>
<</if>>
<</if>>
<<else>>
<<set $kitchentable.push(clone(_tempKTable))>>
<</if>>
<<set _exp to _tempKTable.exp / _bonus>>
<<timeattached $preptime "cooking" _exp>>
<<set _ener to - (Math.round($preptime * 0.5))>>
<<restoreEnergy _ener>>
<<unset $defExist>>
<<unset $ingCount>>
<<unset $steps>>
<<unset $correctCount>>
<<unset $recipesteps>>
<<unset $preptime>>
<</widget>>
/* Just some recipe selection widget :D. */
<<widget "recipeselection">>
<<listbox "$selectedrecipe" autoselect>>
<<option "Select a recipe" undefined>>
<<optionsfrom $learnedrecipes>>
<</listbox>>
<</widget>>
<<widget "usesCheck">>
<<set _id to $args[0]>>
<<set _useIngredients to $args[1]>>
<<set _useStep to $args[2]>>
<<set _usesIng to ["Flour", "Salt", "Pepper", "Pasta", "Rice"]>>
<<set _fT to $kitchentable[_id].foodtype>>
<<set _consUse to setup.food[_fT][$kitchentable[_id].id].uses>>
<<if _id isnot -1 and $kitchentable[_id].name is _useIngredients[_useStep]>>
<<if $kitchentable[_id].amount gt 1>>
<<if $kitchentable[_id].uses eq 1>>
<<set $kitchentable[_id].amount -= 1>>
<<set $kitchentable[_id].uses = _consUse>>
<<elseif $kitchentable[_id].uses lte _consUse>>
<<set $kitchentable[_id].uses -= 1>>
<</if>>
<<else>>
<<if $kitchentable[_id].uses eq 1>>
<<set $kitchentable.deleteAt(_id)>>
<<else>>
<<set $kitchentable[_id].uses -= 1>>
<</if>>
<</if>>
<</if>>
<</widget>>
/* Twenty dollars is twenty dollars. *//% Just some for loops to display the stored food, nothing else.%/
<<widget "foodVisu">>
<<if passage() is "fridge">>
<<set _foodTypes to ["fruits", "meat", "vegetables", "liquids", "misc"]>>
<<elseif passage() is "cupboard">>
<<set _foodTypes to ["generalIng"]>>
<<elseif passage() is "spicecabinet">>
<<set _foodTypes to ["spices"]>>
<</if>>
<<set _currPass to passage()>>
<<for _ifv to 0; _ifv lt _foodTypes.length; _ifv++>>
<fieldset id="fieldinline">
<legend style="text-transform:capitalize;"><<if _foodTypes.includes("generalIng")>>General Ingredients <<else>><<print _foodTypes[_ifv]>><</if>></legend>
<<set _fvFTName to State.getVar("$"+ _foodTypes[_ifv])>>
<<if _fvFTName[0]>>
<<for _fvFT to 0; _fvFT lt _fvFTName.length; _fvFT++>>
<<set _n to []>>
<<set _foodnameF to _fvFTName[_fvFT].name>>
<<set _foodamountF to _fvFTName[_fvFT].amount>>
<<set _foodener to _fvFTName[_fvFT].energy>>
<<set _fooduses to _fvFTName[_fvFT].uses>>
_foodnameF <<if _foodamountF gt 1 >> x _foodamountF <</if>>
<br>
Uses left: @@.orange;_fooduses@@
<br>
<<for _j to 0; _j lt _fvFTName[_fvFT].amount; _j++>>
<<set _n.push(_j +1)>>
<</for>>
<<listbox "$moveAm">>
<<optionsfrom _n>>
<</listbox>>
@@.smollbutt;<<capture _foodnameF _foodTypes[_ifv]>>
<<button "Move" _currPass>>
<<storekitchentable _foodnameF _foodTypes[_ifv]>>
<</button>>
<</capture>>@@
<br>
<<if _foodener>>
<button class="macro-button smollbutt" @onclick='`wikifier("eatFood", `+_foodener+`, `+_fvFT+`, \"`+_foodTypes[_ifv]+`\"); SugarCube.Engine.play(SugarCube.State.passage)`'>Eat</button>@@.green;+<<print _foodener>> energy@@
<</if>>
<div class="thindiv"></div>
<</for>>
<<else>>
Nothing to see here move on.
<</if>>
</fieldset>
<br>
<</for>>
<</widget>>
<<widget "kitchentablevisu">>
<fieldset id="fieldinline">
<legend style="text-transform:capitalize;">Food</legend>
<<set _recipeNameID to setup.recipes.findIndex(x => x.name === $selectedrecipe)>>
<<for _ikt to 0; _ikt lt $kitchentable.length; _ikt++>>
<<set _foodnameKT to $kitchentable[_ikt].name>>
<<set _foodamountKT to $kitchentable[_ikt].amount>>
<<set _foodtypeKT to $kitchentable[_ikt].foodtype>>
<<set _foodquality to $kitchentable[_ikt].quality>>
<<set _foodener to $kitchentable[_ikt].energy>>
<<set _fooduses to $kitchentable[_ikt].uses>>
_foodnameKT <<if _foodquality>> <<print "(" + _foodquality + ")">><</if>> <<if _foodamountKT gt 1 >> x _foodamountKT <</if>>
<br>
Uses left: @@.orange;_fooduses@@
<<if _foodener>>
<br>
<<capture _foodener _ikt>>
@@.smollbutt;
<<button "Eat" "kitchentable">>
<<eatFood _foodener _ikt "kitchentable">>
<</button>>
@@
<</capture>>@@.green;+<<print _foodener>> energy@@
<</if>>
<<if !_foodtypeKT.includes("Prepared Food")>>
<br>
<<capture _foodnameKT _foodtypeKT>>
<<button "Move back" "kitchentable">>
<<moveFood _foodnameKT _foodtypeKT>>
<</button>>
<</capture>>
<</if>>
<div class="thindiv"></div>
<</for>>
</fieldset>
<</widget>><<widget "kitchenini">>
<<kitchenvar>>
<<foodIniWidgets>>
<</widget>>
<<widget "foodIniWidgets">>
<<setFruitsVeget>>
<<setspices>>
<<setgeneralIng>>
<<setmeat>>
<<setrecipes>>
<<setprepfood>>
<</widget>>
<<widget "kitchenvar">>
<<set $fruits to []>>
<<set $meat to []>>
<<set $vegetables to []>>
<<set $liquids to []>>
<<set $misc to []>>
<<set $learnedrecipes to []>>
<<set $spices to []>>
<<set $generalIng to []>>
<<set $kitchentable to []>>
<<set $selectedrecipe to undefined>>
<<set setup.food to {}>>
<</widget>>/* Just preparations steps and the button for it. Check if the type of the step is string or number. Does a shuffle and then the button is made.*/
<<widget "preparationsteps">>
<<if typeof($recipesteps[$steps]) is "string">>
<<set _steps to []>>
<<for _js to 0; _js lt setup.recipes.length; _js++>>
<<for _is to 0; _is lt setup.recipes[_js].steps.length; _is++>>
<<if typeof(setup.recipes[_js].steps[_is]) is "string">>
<<set _steps.pushUnique(setup.recipes[_js].steps[_is])>>
<</if>>
<</for>>
<</for>>
<<for _steps.length gt 4>>
<<if _steps[0] isnot $recipesteps[$steps]>>
<<set _steps.deleteAt(0)>>
<<else>>
<<set _steps.deleteAt(random(1, _steps.length))>>
<</if>>
<</for>>
<<elseif typeof($recipesteps[$steps]) is "number">>
<<set _steps to [$recipesteps[$steps], Math.round($recipesteps[$steps] * 1.5), Math.round($recipesteps[$steps] * 2), Math.round($recipesteps[$steps] / 2)]>>
<</if>>
<<set _steps.shuffle()>>
<<for _i to 0; _i lt 4; _i++>>
<<if typeof($recipesteps[$steps]) is "number">>
<<if _steps[_i] gte 60>>
<<set _minHour to " hour(s)">>
<<else>>
<<set _minHour to " minutes">>
<</if>>
<<set _bname to "Cook " + _steps[_i] + _minHour>>
<<else>>
<<set _bname to _steps[_i]>>
<</if>>
<<capture _i>>
<<button _bname>>
<<if $recipesteps[$steps] is _steps[_i]>>
<<set $correctCount++>>
<</if>>
<<set $steps++>>
<<if typeof(_steps[_i]) is "string">>
<<set $preptime += 2>>
<<else>>
<<set $preptime += _steps[_i]>>
<</if>>
<<if $steps gte $recipesteps.length>>
<<foodpreparation>>
<<goto "kitchentable">>
<<else>>
<<goto "preparation">>
<</if>>
<</button>>
<</capture>>
<br>
<</for>>
<</widget>>/%Making a recipe: Name, Raw Ingredients (Required ingredients), Extra ingredients (These are optional), defining ingredients (If they are needed. Ex: Chicken fillet with rice or pasta)
Minimum skill level (Required to learn the recipe), Recomended skill level (To get "Masterwork" quality) and steps.%/
<<widget "setrecipes">>
<<set _foodnameM to []>>
<<set _foodnameS to []>>
<<set _foodnameO to []>>
<<set _foodnameV to []>>
/%IDs:
Raw Chicken Breast = 0
Raw Chicken Wings = 1
Raw Steak = 2
Raw grounded beef = 3
Sausages = 4
%/
<<for _i to 0; _i lt setup.food.meat.length; _i++>>
<<set _foodnameM.push(setup.food.meat[_i].name)>>
<</for>>
/%IDs:
Pepper = 0
%/
<<for _i to 0; _i lt setup.food.spices.length; _i++>>
<<set _foodnameS.push(setup.food.spices[_i].name)>>
<</for>>
/%IDs:
Rice = 0
Pasta = 1
Salt = 2
Flour = 3
Butter = 4
Sugar = 5
%/
<<for _i to 0; _i lt setup.food.generalIng.length; _i++>>
<<set _foodnameO.push(setup.food.generalIng[_i].name)>>
<</for>>
/%<<for _i to 0; _i lt setup.food.fruits.length; _i++>>
/%IDs: Coconut = 0
Watermelon = 1
/
<<set _foodnameF.push(setup.food.fruits[_i].name)>>
<</for>>%/
/%IDs:
Tomato = 0,
Cabbage = 1
%/
<<for _i to 0; _i lt setup.food.vegetables.length; _i++>>
<<set _foodnameV.push(setup.food.vegetables[_i].name)>>
<</for>>
<<set _sSteps to ["Clean", "Cut into pieces", "Clean and Prepare", "Fillet", "Prepare"]>>
<<set setup.recipes to [
{
id: 0,
name: "Chicken Rice",
reqingredients: [_foodnameO[0], _foodnameM[0]],
extraingredients: [_foodnameS[0], _foodnameO[2]],
minskill: 2,
recskill: 3,
steps: [_sSteps[0], _sSteps[1], 4, 8]
},
{
id: 1,
name: "Chicken Fillet",
reqingredients: [_foodnameM[0]],
extraingredients: [_foodnameS[0], _foodnameO[2]],
defingredients: [_foodnameO[0], _foodnameO[1]],
minskill: 3,
recskill: 4,
steps: [_sSteps[3], _sSteps[2], 7, 8]
},
{
id: 2,
name: "Fried Chicken Wings",
reqingredients: [_foodnameM[1], _foodnameO[3]],
extraingredients: [_foodnameS[0], _foodnameO[2]],
minskill: 0,
recskill: 2,
steps: [_sSteps[3], 7]
},
{
id: 3,
name: "Rice with Sausages",
reqingredients: [_foodnameM[4], _foodnameO[0]],
extraingredients: [_foodnameS[0], _foodnameO[2], _foodnameO[4]],
minskill: 2,
recskill: 3,
steps: [_sSteps[2], 3, 8]
},
{
id: 4,
name: "Steak",
reqingredients: [_foodnameM[2]],
extraingredients: [_foodnameS[0], _foodnameO[2]],
defingredients: [_foodnameO[0], _foodnameO[1]],
minskill: 2,
recskill: 3,
steps: [8, _sSteps[4], 7]
},
{
id: 5,
name: "Ground Beef",
reqingredients: [_foodnameM[3]],
extraingredients: [_foodnameS[0], _foodnameO[2], _foodnameV[0], _foodnameO[5]],
defingredients: [_foodnameO[0], _foodnameO[1]],
minskill: 2,
recskill: 3,
steps: [_sSteps[0], _sSteps[4], 20, 8]
}
]>>
<</widget>>/% Stores food in their respective "category". The first widget uses State.getVar so we can use one case for everyting instead of one case per each foodtype%/
<<widget "storefood">>
<<for _index range $backpack>>
<<set _positb to $backpack.findIndex(x => x.name === _index.name)>>
<<switch $backpack[_positb].foodtype>>
<<case "fruits" "meat" "vegetables" "liquids" "misc" "spices" "generalIng">>
<<set _ftName to State.getVar("$"+ $backpack[_positb].foodtype)>>
<<set _posit to _ftName.findIndex(x => x.name === $backpack[_positb].name)>>
<<if !_ftName[_posit]>>
<<set _ftName.push(clone($backpack[_positb]))>>
<<set $backpack.deleteAt(_positb)>>
<<elseif _ftName[_posit].name.includes($backpack[_positb].name)>>
<<set _ftName[_posit].amount += $backpack[_positb].amount>>
<<set $backpack.deleteAt(_positb)>>
<</if>>
<<default>>
<<break>>
<</switch>>
<</for>>
<</widget>>
<<widget "storekitchentable">>
<<set _fName to $args[0]>>
<<set _location to State.getVar("$"+ $args[1])>>
<<set _positIn to $kitchentable.findIndex(x => x.name === _fName)>>
<<set _positOut to _location.findIndex(x => x.name === _fName)>>
<<set _setupID to setup.food[_location[_positOut].foodtype].findIndex(x => x.name === _fName)>>
<<set _consUse to setup.food[_location[_positOut].foodtype][_setupID].uses>>
<<if !$kitchentable[_positIn]>>
<<set $kitchentable.push(clone(_location[_positOut]))>>
<<set _positIn to $kitchentable.findIndex(x => x.name === _fName)>>
<<set $kitchentable[_positIn].amount to $moveAm>>
<<elseif $kitchentable[_positIn]>>
<<set $kitchentable[_positIn].amount += $moveAm>>
<</if>>
<<if _location[_positOut].amount is $moveAm>>
<<set _location.deleteAt(_positOut)>>
<<else>>
<<set _location[_positOut].amount -= $moveAm>>
<<set _location[_positOut].uses = _consUse>>
<</if>>
<<unset $moveAm>>
<</widget>>
<<widget "moveFood">>
<<set _fName to $args[0]>>
<<set _location to State.getVar("$"+ $args[1])>>
<<set _positOut to $kitchentable.findIndex(x => x.name === _fName)>>
<<set _positIn to _location.findIndex(x => x.name === _fName)>>
<<if !_location[_positIn]>>
<<set _location.push(clone($kitchentable[_positOut]))>>
<<set _positIn to _location.findIndex(x => x.name === _fName)>>
<<set _location[_positIn].amount to 1>>
<<set $kitchentable[_positOut].amount -= 1>>
<<elseif _location[_positIn]>>
<<set _setupID to setup.food[_location[_positIn].foodtype].findIndex(x => x.name === _fName)>>
<<set _consUse to setup.food[_location[_positIn].foodtype][_setupID].uses>>
<<set _location[_positIn].amount += 1>>
<<set _location[_positIn].uses = $kitchentable[_positOut].uses>>
<<set $kitchentable[_positOut].amount -= 1>>
<<set $kitchentable[_positOut].uses = _consUse>>
<</if>>
<<if $kitchentable[_positOut].amount is 0>>
<<set $kitchentable.deleteAt(_positOut)>>
<</if>>
<</widget>><<widget "accesories">>
<<set setup.clothes.accesories to [
{
id: 0,
name: "Naked",
lowname: "naked",
price: 0,
description: "naked",
category: ["naked"],
gender: "none"
},
{
id: 1,
name: "Backpack",
lowname: "backpack",
price: 0,
description: "A normal backpack.",
category: ["backpack", "accesories"],
gender: "none",
maxitems: 7
}
]>>
<<set setup.clothes.sextoys to [
{
id: 0,
name: "Egg Vibe",
lowname: "egg vibe",
price: 10,
amount: 1,
description: "An egg vibe",
category: ["vibrator", "accesories", "sextoy", {wearable: ["vulva", "anus"]}],
gender: "female",
arsGain: 2
},
{
id: 1,
name: "Dildo",
lowname: "dildo",
price: 20,
color: undefined,
tLength: 0,
tWidth: 0,
description: "A dildo",
category: ["dildo", "accesories", "sextoy"],
gender: "female"
},
{
id: 2,
name: "Anal Plug",
lowname: "anal plug",
price: 15,
color: undefined,
tLength: 0,
tWidth: 0,
description: "An anal plug",
category: ["plug", "accesories", "sextoy", {wearable: ["anus"]}],
gender: "female",
arsGain: 2
},
]>>
<</widget>><<widget "CColorIni">>
<<set setup.clothes.colors to {
yellow: "yellow",
darkyellow: "dark yellow",
lightyellow: "light yellow",
red: "red",
darkred: "dark red",
lightred: "light red",
green: "green",
lightgreen: "light green",
blue: "blue",
lightblue: "light blue",
orange: "orange",
lightorange: "light orange",
gray: "gray",
darkpink: "dark pink",
pink: "pink",
graypink: "gray pink",
purple: "purple",
brown: "brown",
lightbrown: "light brown",
black: "black",
}>>
<</widget>><<widget "footwearIni">>
<<set setup.clothes.footwear to [
{
id: 0,
name: "Naked",
lowname: "naked",
price: 0,
color: undefined,
description: "Naked",
category: ["naked"],
gender: "none",
},
{
id: 1,
name: "Socks",
lowname: "socks",
price: 10,
color: undefined,
description: "A pair of socks",
descriptor: "a pair of",
category: ["socks", "footwear"],
gender: "neutral",
},
{
id: 2,
name: "Long socks",
lowname: "long socks",
price: 12,
color: undefined,
description: "A pair of long socks",
descriptor: "a pair of",
category: ["socks", "footwear"],
gender: "neutral",
}
]>>
<</widget>><<widget "legwearIni">>
<<set setup.clothes.legwear to [
{
id: 0,
name: "Naked",
lowname: "naked",
price: 0,
color: undefined,
description: "Naked",
category: ["naked"],
gender: "none"
},
{
id: 1,
name: "Pantyhose",
lowname: "pantyhose",
price: 20,
color: undefined,
description: "A pair of pantyhose",
descriptor: "a",
category: ["pantyhose", "legwear"],
gender: "female"
},
{
id: 2,
name: "Lace Pantyhose",
lowname: "lace pantyhose",
price: 24,
color: undefined,
description: "A pair of lace pantyhose",
descriptor: "a",
category: ["pantyhose", "legwear"],
gender: "female"
}
]>>
<</widget>><<widget "lowerb_outerwearIni">>
<<set setup.clothes.lowerbouter to [
{
id: 0,
name: "Naked",
lowname: "naked",
price: 0,
color: undefined,
description: "Naked",
category: ["naked"],
gender: "none",
exposedgenitals: true
},
{
id: 1,
name: "Jeans",
lowname: "jeans",
price: 25,
color: undefined,
description: "A pair of Jeans",
descriptor: "a pair of",
category: ["pants", "lowerbouter", "outerwear"],
gender: "neutral",
exposedgenitals: false
},
{
id: 2,
name: "Medium Skirt",
lowname: "medium skirt",
price: 20,
color: undefined,
description: "Just a medium skirt",
descriptor: "a",
category: ["skirt", "lowerbouter", "outerwear"],
gender: "female",
exposedgenitals: false
},
{
id: 3,
name: "Shorts",
lowname: "shorts",
price: 14,
color: undefined,
description: "Just shorts",
descriptor: "a",
category: ["shorts", "lowerbouter", "outerwear"],
gender: "neutral",
exposedgenitals: false
},
{
id: 4,
name: "Suit(Bottom)",
lowname: "suit(bottom)",
price: 30,
color: undefined,
description: "A suit(bottom)",
descriptor: "a",
category: ["suit", "lowerbouter", "outerwear"],
gender: "neutral",
exposedchest: false
},
{
id: 5,
name: "Sport Shorts",
lowname: "sport shorts",
price: 14,
color: undefined,
description: "Just sport shorts",
descriptor: "a",
category: ["shorts", "lowerbouter", "outerwear"],
gender: "neutral",
exposedgenitals: false
},
]>>
<</widget>><<widget "lowerb_underwearIni">>
<<set setup.clothes.lowerbunder to [
{
id: 0,
name: "Naked",
lowname: "naked",
price: 0,
color: undefined,
description: "Naked",
category: ["naked"],
gender: "none",
exposedgenitals: true
},
{
id: 1,
name: "Panties",
lowname: "panties",
price: 5,
color: undefined,
description: "Just a pair of panties",
category: ["panties", "lowerbunder", "underwear"],
descriptor: "a pair of",
gender: "female",
exposedgenitals: false
},
{
id: 2,
name: "Boxers",
lowname: "boxers",
price: 5,
color: undefined,
description: "Just a pair of boxers",
category: ["boxers", "lowerbunder", "underwear"],
descriptor: "a pair of",
gender: "male",
exposedgenitals: false
},
{
id: 3,
name: "Lace Panties",
lowname: "lace panties",
price: 9,
color: undefined,
description: "Just a pair of lace panties",
category: ["panties", "lowerbunder", "underwear"],
descriptor: "a pair of",
gender: "female",
exposedgenitals: false
},
{
id: 4,
name: "Boxers Briefs",
lowname: "boxers briefs",
price: 6,
color: undefined,
description: "Just a pair of boxers briefs",
category: ["boxers", "lowerbunder", "underwear"],
descriptor: "a pair of",
gender: "male",
exposedgenitals: false
}
]>>
<</widget>><<widget "shoesIni">>
<<set setup.clothes.shoes to [
{
id: 0,
name: "Sport shoes",
lowname: "sport shoes",
price: 25,
color: undefined,
description: "A pair of sport shoes",
descriptor: "a pair of",
category: ["sport", "shoes"],
gender: "neutral"
},
{
id: 1,
name: "Sneakers",
lowname: "sneakers",
price: 25,
color: undefined,
description: "A pair of sneaker shoes",
descriptor: "a pair of",
category: ["sport", "shoes"],
gender: "neutral"
},
{
id: 2,
name: "Sandals",
lowname: "sandals",
price: 20,
color: undefined,
description: "A pair of cool looking sandals",
descriptor: "a pair of",
category: ["sandals", "shoes"],
gender: "neutral"
},
{
id: 3,
name: "Heels",
lowname: "heels",
price: 30,
color: undefined,
description: "A pair of heels",
descriptor: "a pair of",
category: ["heels", "shoes"],
gender: "female"
},
{
id: 4,
name: "Boots",
lowname: "boots",
price: 28,
color: undefined,
description: "A pair of boots",
descriptor: "a pair of",
category: ["boots", "shoes"],
gender: "neutral"
}
]>>
<</widget>><<widget "upperb_outerwearIni">>
<<set setup.clothes.upperbouter to [
{
id: 0,
name: "Naked",
lowname: "naked",
price: 0,
color: undefined,
description: "Naked",
category: ["naked"],
gender: "none",
exposedchest: true
},
{
id: 1,
name: "Polo shirt",
lowname: "polo shirt",
price: 15,
color: undefined,
description: "A normal polo shirt",
descriptor: "a",
category: ["shirt", "upperbouter", "outerwear"],
gender: "neutral",
exposedchest: false
},
{
id: 2,
name: "Blouse",
lowname: "blouse",
price: 20,
color: undefined,
description: "A normal blouse",
descriptor: "a",
category: ["shirt", "upperbouter", "outerwear"],
gender: "female",
exposedchest: false
},
{
id: 3,
name: "Tank Top",
lowname: "tank top",
price: 13,
color: undefined,
description: "A tank top",
descriptor: "a",
category: ["shirt", "upperbouter", "outerwear"],
gender: "neutral",
exposedchest: false
},
{
id: 4,
name: "T-Shirt",
lowname: "t-shirt",
price: 12,
color: undefined,
description: "A t-shirt",
descriptor: "a",
category: ["shirt", "upperbouter", "outerwear"],
gender: "neutral",
exposedchest: false
},
{
id: 5,
name: "Camisole",
lowname: "camisole",
price: 10,
color: undefined,
description: "A camisole",
descriptor: "a",
category: ["shirt", "upperbouter", "outerwear"],
gender: "female",
exposedchest: false
},
{
id: 6,
name: "Sweater",
lowname: "sweater",
price: 20,
color: undefined,
description: "A sweater",
descriptor: "a",
category: ["sweater", "upperbouter", "outerwear"],
gender: "neutral",
exposedchest: false
},
{
id: 7,
name: "Jacket",
lowname: "jacket",
price: 25,
color: undefined,
description: "A jacket",
descriptor: "a",
category: ["jacket", "upperbouter", "outerwear"],
gender: "male",
exposedchest: false
},
{
id: 8,
name: "Suit(Top)",
lowname: "suit(top)",
price: 30,
color: undefined,
description: "A suit(top)",
descriptor: "a",
category: ["suit", "upperbouter", "outerwear"],
gender: "neutral",
exposedchest: false
}
/*This needs a check because it doesn't need a lowerbody outerwear, so for now is disabled{
id: 6,
name: "Sundress",
lowname: "sundress",
price: 16,
color: undefined,
description: "A sundress",
descriptor: "a",
category: ["dress", "upperbouter", "outerwear"],
gender: "female",
exposedchest: false
},*/
]>>
<</widget>><<widget "upperb_underwearIni">>
<<set setup.clothes.upperbunder to [
{
id: 0,
name: "Naked",
lowname: "naked",
price: 0,
color: undefined,
description: "Naked",
category: ["naked"],
gender: "none",
exposedchest: true
},
{
id: 1,
name: "Bra",
lowname: "bra",
price: 10,
color: undefined,
description: "A normal bra",
descriptor: "a",
category: ["bra", "upperbunder", "underwear"],
gender: "female",
exposedchest: false
},
{
id: 2,
name: "Lace Bra",
lowname: "lace bra",
price: 13,
color: undefined,
description: "A lace bra",
descriptor: "a",
category: ["bra", "upperbunder", "underwear"],
gender: "female",
exposedchest: false
}
]>>
<</widget>>/* These widgets are nearly the same as the one for the wardrobe. Just modified for the store. */
<<widget "csShow">>
<<if !$pressedlStore>>
<<set $pressedlStore to $args[1]>>
<</if>>
<br>
<div id="storeLinks" class="storeLinks">
<<storeLinks $args[0]>>
</div>
<div class="thindiv"></div>
<div id="storeContent">
<<showStoreIC $pressedlStore>>
</div>
<br>
<<button "Finish" "clothesstore">>
<<unset $pressedlStore>>
<</button>>
<</widget>>
<<widget "storeLinks">>
<div class="list">
<span style="font-size: 130%; margin-left: 5px;"> Category: </span>
<div id="insidelist">
<<switch $args[0]>>
<<case "Outerwear">>
<button class="macro-button" onclick="wikifier('storeContent', 'upperbouter', 'Outerwear')"><span @class="($pressedlStore is 'upperbouter' ? 'selected' : '')">Upper Body</span></button>
<br>
<button class="macro-button" onclick="wikifier('storeContent', 'lowerbouter', 'Outerwear')"><span @class="($pressedlStore is 'lowerbouter' ? 'selected' : '')">Lower Body</span></button>
<<case "Underwear">>
<button class="macro-button" onclick="wikifier('storeContent', 'upperbunder', 'Underwear')"><span @class="($pressedlStore is 'upperbunder' ? 'selected' : '')">Upper Body</span></button>
<br>
<button class="macro-button" onclick="wikifier('storeContent', 'lowerbunder', 'Underwear')"><span @class="($pressedlStore is 'lowerbunder' ? 'selected' : '')">Lower Body</span></button>
<br>
<button class="macro-button" onclick="wikifier('storeContent', 'legwear', 'Underwear')"><span @class="($pressedlStore is 'legwear' ? 'selected' : '')">Legwear</span></button>
<<case "Footwear">>
<button class="macro-button" onclick="wikifier('storeContent', 'shoes', 'Footwear')"><span @class="($pressedlStore is 'shoes' ? 'selected' : '')">Shoes</span></button>
<br>
<button class="macro-button" onclick="wikifier('storeContent', 'footwear', 'Footwear')"><span @class="($pressedlStore is 'footwear' ? 'selected' : '')">Socks</span></button>
<</switch>>
</div>
</div>
<</widget>>
<<widget "storeContent">>
<<replace "#storeContent">>
<<showStoreIC $args[0]>>
<</replace>>
<<set $pressedlStore to $args[0]>>
<<replace "#storeLinks">>
<<storeLinks $args[1]>>
<</replace>>
<</widget>>
<<widget "showStoreIC">>
<<storeItemContent $args[0]>>
<div id="storeItemContent"></div>
<</widget>>
<<widget "storeItemContent">>
<<set _values to State.getVar("setup.clothes."+$args[0])>>
<<set _colors to {}>>
<<set _keys to Object.keys(setup.clothes.colors)>>
<<for _i to 0; _i lt _keys.length; _i++>>
<<set _colors[setup.clothes.colors[_keys[_i]].toUpperFirst()] to _keys[_i]>>
<</for>>
<<set _selectedColor to undefined>>
<<for _j to 0; _j lt _values.length; _j++>>
<<if _values[_j].lowname isnot "naked">>
<div class="list">
<div id="insidelist">
Name: @@.orange;<<print _values[_j].name>>@@
<<genderIcon _values[_j].category[1]>>
<br>
Price: @@.yellow;<<print _values[_j].price>> credits@@
<br>
Color: <<listbox "_selectedColor" autoselect>>
<<optionsfrom _colors>>
<</listbox>>
<<pButton "clothstore">>
</div>
</div>
<</if>>
<</for>>
<</widget>><<widget "ssShow">>
<div id="storeLinks" class="storeLinks">
<<ssLinks>>
</div>
<div class="thindiv"></div>
<div id="storeContent">
<<showSSIC $pressedlStore>>
</div>
<br>
<<button "Finish" "sexshop">>
<<unset $pressedlStore>>
<</button>>
<</widget>>
<<widget "ssLinks">>
<div class="list">
<span style="font-size: 130%; margin-left: 5px;"> Category: </span>
<div id="insidelist">
<button class="macro-button" onclick="wikifier('ssContent', 'vibrator', 'SexToys')"><span @class="($pressedlStore is 'vibrator' ? 'selected' : '')">Vibrators</span></button>
<button class="macro-button" onclick="wikifier('ssContent', 'dildo', 'SexToys')"><span @class="($pressedlStore is 'dildo' ? 'selected' : '')">Dildos</span></button>
<button class="macro-button" onclick="wikifier('ssContent', 'plug', 'SexToys')"><span @class="($pressedlStore is 'plug' ? 'selected' : '')">Plugs</span></button>
</div>
</div>
<</widget>>
<<widget "ssContent">>
<<replace "#storeContent">>
<<showSSIC $args[0]>>
<</replace>>
<<set $pressedlStore to $args[0]>>
<<replace "#storeLinks">>
<<ssLinks>>
<</replace>>
<</widget>>
<<widget "showSSIC">>
<<ssItemContent $args[0]>>
<div id="storeItemContent"></div>
<</widget>>
<<widget "ssItemContent">>
<<set _colors to {}>>
<<set _keys to Object.keys(setup.clothes.colors)>>
<<for _i to 0; _i lt _keys.length; _i++>>
<<set _colors[setup.clothes.colors[_keys[_i]].toUpperFirst()] to _keys[_i]>>
<</for>>
<<set _selectedColor to undefined>>
<<set _sizes to ["Huge", "Big", "Medium", "Small", "Tiny"]>>
<<set _n to [1, 2, 3, 4, 5]>>
<<for _j to 0; _j lt setup.clothes.sextoys.length; _j++>>
<<if setup.clothes.sextoys[_j].category.includes($args[0])>>
<div class="list">
<div id="insidelist">
Name: @@.orange;<<print setup.clothes.sextoys[_j].name>>@@
<<genderIcon "sextoys">>
<br>
Price: @@.yellow;<<print setup.clothes.sextoys[_j].price>> credits@@
<br>
<<if setup.clothes.sextoys[_j].name isnot "Egg Vibe">>
Color:
<<listbox "_selectedColor" autoselect>>
<<optionsfrom _colors>>
<</listbox>>
<<else>>
Amount:
<<listbox "_Amount" autoselect>>
<<optionsfrom _n>>
<</listbox>>
<<set _existsc to $shoppingcart.findIndex(x => x.name === setup.clothes.sextoys[_j].name)>>
<</if>>
<<if setup.clothes.sextoys[_j].length isnot undefined and setup.clothes.sextoys[_j].width isnot undefined>>
<br>
Size: <<listbox "_size">> autoselect
<<optionsfrom _sizes>>
<</listbox>>
<</if>>
<<pButton "ssShop">>
</div>
</div>
<</if>>
<</for>>
<</widget>><<widget "bodyparts">>
<<set $bps.head to [
{
id: 0,
bodypart: "face",
primary: {},
secondary: {}
},
{
id: 1,
bodypart: "ears",
primary: {},
secondary: {}
},
{
id: 2,
bodypart: "nose",
primary: {},
secondary: {}
},
{
id: 3,
bodypart: "mouth",
primary: {},
secondary: {}
}
]>>
<<set $bps.upperbody to [
{
id: 0,
bodypart: "torso",
primary: {},
secondary: {}
},
{
id: 1,
bodypart: "nipples",
primary: {},
secondary: {}
},
{
id: 2,
bodypart: "navel",
primary: {},
secondary: {}
},
{
id: 3,
bodypart: "arms",
primary: {},
secondary: {}
},
{
id: 4,
bodypart: "hands",
primary: {},
secondary: {}
},
{
id: 5,
bodypart: "back",
primary: {},
secondary: {}
}
]>>
<<set $bps.genitals to [
{
id: 0,
bodypart: "vulva",
primary: {},
secondary: {}
},
{
id: 1,
bodypart: "clitoris",
primary: {},
secondary: {}
},
{
id: 2,
bodypart: "penis",
primary: {},
secondary: {}
},
{
id: 3,
bodypart: "balls",
primary: {},
secondary: {}
}
]>>
<<set $bps.lowerbody to [
{
id: 0,
bodypart: "lowerbody",
primary: {},
secondary: {}
},
{
id: 1,
bodypart: "anus",
primary: {},
secondary: {}
},
{
id: 2,
bodypart: "legs",
primary: {},
secondary: {}
},
{
id: 3,
bodypart: "feets",
primary: {},
secondary: {}
}
]>>
<</widget>>/% The widget checks what clothes the player is using and what not.
This comment is from 15/05/2020 when I finally "finished" the WandU system, each comment here was before is started commeting the wardrobe system.
This thing is and was a Pain in the Ass to make so not a long comment this one will be :D.
Credits and Thanks a lot to DoL again, because this was heavely inspired and may look the same as the one of them.
Really, you may want to try and play DoL is a great game and it inspired me to make my own (Beware that DoL is more "rapey").
%/
<<widget "clotheschecker">>
<<if $bps.upperbody[0].primary.lowname is "naked">> /% The player doesn't have outerwear %/
<<if $bps.upperbody[0].primary.lowname is "naked" and $bps.upperbody[0].secondary.lowname is "naked">> /% The player doesn't have underwear%/
<<if $bps.lowerbody[0].primary.lowname is "naked" and $bps.lowerbody[0].secondary.lowname is "naked">> /% The player is naked (because it doesn't have lowerbody's outerwear nor underwear %/
<span class="purple">You are naked</span>.
<br>
<</if>>
<<switch $playervar.gender>> /% Gender check %/
<<case "male">>
Your torso is visible.
<<case "female">>
<span class="darkpink">Your <<breastsizechecker>> breast and <span class="orange"><<print $playervar.nippletype>></span> nipples are visible</span>.
<</switch>>
<<elseif $bps.upperbody[0].primary.lowname is "naked" and $bps.upperbody[0].secondary.lowname isnot "naked">> /% Or upperbody underwear but not outerwear%/
<<switch $playervar.gender>>
<<case "male">>
<span class="darkpink">Your <<clothescolor $bps.upperbody[0].secondary>> are visible</span>.
<<case "female">>
<span class="darkpink">Your <<clothescolor $bps.upperbody[0].secondary>> is visible</span>.
<</switch>>
<</if>>
<<if $bps.lowerbody[0].primary.lowname is "naked" and $bps.lowerbody[0].secondary.lowname is "naked">> /% Lowerbody doesn't have outerwear nor underwear %/
<<switch $playervar.gender>>
<<case "male">>
<span class="darkpink">Your <<penissizechecker>>penis, <<ballssizechecker>>balls and anus are visible</span>.
<<case "female">>
<span class="darkpink">Your vagina and anus are visible</span>.
<</switch>>
<<elseif $bps.lowerbody[0].primary.lowname is "naked" and $bps.lowerbody[0].secondary.lowname isnot "naked">> /% Or lowerbody doesn't have outerwear but have underwear%/
<<switch $playervar.gender>>
<<case "male">>
<span class="darkpink">Your <<clothescolor $bps.lowerbody[0].secondary>> are visible</span>.
<<case "female">>
<span class="darkpink">Your <<clothescolor $bps.lowerbody[0].secondary>> are visible</span>.
<</switch>>
<<elseif $bps.lowerbody[0].primary.lowname isnot "naked">> /% Lowerbody have outerwearwear %/
<<if $bps.lowerbody[0].secondary.lowname is "naked">> /% Upperbody doesn't have underwear %/
You have <<clothesDescriptor $bps.lowerbody[0].primary>> <<clothescolor $bps.lowerbody[0].primary>> <span class="darkpink">but nothing underneath</span>.
<<elseif $bps.lowerbody[0].secondary.lowname isnot "naked">> /% Or lowerbody have underwear %/
You have <<clothesDescriptor $bps.lowerbody[0].primary>> <<clothescolor $bps.lowerbody[0].primary>> and <<clothescolor $bps.lowerbody[0].secondary>>
<</if>>
<</if>>
<<elseif $bps.upperbody[0].primary.lowname isnot "naked">> /% Upperbody have outerwear %/
<<if $bps.upperbody[0].secondary.lowname isnot "naked">> /% Upperbody have underwear %/
You have <<clothesDescriptor $bps.upperbody[0].primary>> <<clothescolor $bps.upperbody[0].primary>> and <<clothesDescriptor $bps.upperbody[0].secondary>> <<clothescolor $bps.upperbody[0].secondary>>
<<elseif $bps.upperbody[0].secondary.lowname is "naked">> /% Or doesn't have underwear %/
<<switch $playervar.gender>>
<<case "male">>
You have <<clothesDescriptor $bps.upperbody[0].primary>> <<clothescolor $bps.upperbody[0].primary>>,
<<case "female">>
You have <<clothesDescriptor $bps.upperbody[0].primary>> <<clothescolor $bps.upperbody[0].primary>> @@.darkpink;but nothing underneath@@,
<</switch>>
<</if>>
<<if $bps.lowerbody[0].primary.lowname isnot "naked">> /% Lowerbody have outerwear %/
<<if $bps.lowerbody[0].secondary.lowname isnot "naked">> /% Lower body have underwear%/
with <<clothesDescriptor $bps.lowerbody[0].primary>> <<clothescolor $bps.lowerbody[0].primary>> and <<clothescolor $bps.lowerbody[0].secondary>>
<<elseif $bps.lowerbody[0].secondary.lowname is "naked">> /% Lowerbody doesn't have underwear %/
with <<clothesDescriptor $bps.lowerbody[0].primary>> <<clothescolor $bps.lowerbody[0].primary>> @@.darkpink;but nothing underneath@@.
<</if>>
<<elseif $bps.lowerbody[0].primary.lowname is "naked" and $bps.lowerbody[0].secondary.lowname isnot "naked">> /% Lowerbody have underwear but not outerwear %/
<span class="darkpink">your <<clothescolor $bps.lowerbody[0].secondary>> are visible</span>.
<<elseif $bps.lowerbody[0].primary.lowname is "naked" and $bps.lowerbody[0].secondary.lowname is "naked">> /% Lowerbody doesn't have underwear nor outerwears %/
<<switch $playervar.gender>>
<<case "male">>
<span class="darkpink">Your <<penissizechecker>>penis, <<ballssizechecker>>balls and anus are visible</span>.
<<case "female">>
<span class="darkpink">Your vagina and anus are visible</span>.
<</switch>>
<</if>>
<</if>>
<br>
/% This thing checks if the player have any shoes, socks or any other footwear. %/
<<if $bps.lowerbody[2].primary.lowname isnot "naked">>
On your feet you have <<clothesDescriptor $bps.lowerbody[2].primary>><<clothescolor $bps.lowerbody[2].primary>>
<<if $bps.lowerbody[3].secondary.lowname isnot "naked">>
and <<clothesDescriptor $bps.lowerbody[3].secondary>> <<clothescolor $bps.lowerbody[3].secondary>>
<<if $bps.lowerbody[3].primary.lowname isnot "naked">>
with <<clothescolor $bps.lowerbody[3].primary>>
<<elseif $bps.lowerbody[3].primary.lowname is "naked">>
but no shoes.
<</if>>
<<elseif $bps.lowerbody[3].secondary.lowname is "naked">>
<<if $bps.lowerbody[3].primary.lowname isnot "naked">>
and <<clothesDescriptor $bps.lowerbody[3].primary>><<clothescolor $bps.lowerbody[3].primary>>.
<<elseif $bps.lowerbody[3].primary.lowname is "naked">>
but no shoes.
<</if>>
<</if>>
<<elseif $bps.lowerbody[2].primary.lowname is "naked">>
<<if $bps.lowerbody[3].secondary.lowname isnot "naked">>
On your feet you have <<clothesDescriptor $bps.lowerbody[3].secondary>><<clothescolor $bps.lowerbody[3].secondary>>
<<if $bps.lowerbody[3].primary.lowname isnot "naked">>
and <<clothescolor $bps.lowerbody[3].primary>>
<<elseif $bps.lowerbody[3].primary.lowname is "naked">>
but no shoes.
<</if>>
<<elseif $bps.lowerbody[3].secondary.lowname is "naked">>
<<if $bps.lowerbody[3].primary.lowname isnot "naked">>
On your feet you have <<clothesDescriptor $bps.lowerbody[3].primary>><<clothescolor $bps.lowerbody[3].primary>> but no socks.
<<elseif $bps.lowerbody[3].primary.lowname is "naked">>
You are barefoot.
<</if>>
<</if>>
<</if>>
<</widget>>
/* Enable/disable color clothes */
<<widget "clothescolor">>
<<if $args[0] is "inColor">>
<<set _clothColor to setup.clothes.colors[$args[1]]>>
<<if $displayColorText>>
<<set _clothColorChk to $args[1]>>
<</if>>
<<if $args[2] is "colorOnly">>
<span @class="_clothColorChk"><<print _clothColor.toUpperFirst()>></span>
<<else>>
(<span @class="_clothColorChk"><<print _clothColor.toUpperFirst()>></span>)
<</if>>
<<else>>
<<set _clothes to $args[0]>>
<<set _clothColor to setup.clothes.colors[_clothes.color]>>
<<set _clothesName to _clothes.lowname>>
<<if $displayColorText>>
<<set _clothColorChk to _clothes.color>>
<</if>>
<span @class="_clothColorChk"><<print String.format("{0} {1}", _clothColor, _clothesName)>></span>
<</if>>
<</widget>>
<<widget "exposedCheck">>
<<set _upperbPri to $bps.upperbody[0].primary.lowname is "naked">>
<<set _upperbSec to $bps.upperbody[0].secondary.lowname is "naked">>
<<set _lowerbPri to $bps.lowerbody[0].primary.lowname is "naked">>
<<set _lowerbSec to $bps.lowerbody[0].secondary.lowname is "naked">>
/*<<set _upperbSwimSec to $bps.upperbody[0].secondary.category.includesAny("swimsuit")>>
<<set _lowerbSwimSec to $bps.lowerbody[0].secondary.category.includesAny("swimsuit")>>*/
<<switch $playervar.gender>>
<<case "female">>
<<if _upperbPri and _upperbSec or _upperbPri and !_upperbSec>>
<<if !_lowerbPri and _lowerbSec
or !_lowerbPri and !_lowerbSec
or _lowerbPri and _lowerbSec
or _lowerbPri and !_lowerbSec>>
<<set $exposed to true>>
<br>
@@.textshining;You are exposed!@@
<</if>>
<<elseif !_upperbPri>>
<<if _lowerbPri and _lowerbSec
or _lowerbPri and !_lowerbSec>>
<<set $exposed to true>>
<br>
@@.textshining;You are exposed!@@
<<else>>
<<unset $exposed>>
<</if>>
<</if>>
<<case "male">>
<<if _lowerbPri and _lowerbSec or _lowerbPri and !_lowerbSec>>
<<set $exposed to true>>
<br>
@@.textshining;You are exposed!@@
<<else>>
<<unset $exposed>>
<</if>>
<</switch>>
<</widget>>
<<widget "clothesDescriptor">>
<<set _clothes to $args[0]>>
<<print _clothes.descriptor>>
<</widget>>/% Just initializing some widgets and things you know. %/
/% Oh and btw if you somehow got to read everything I wrote, thank you :D. English isn't my first languague so I hope u can understand something. %/
<<widget "clothesinit">>
<<clothesvar>>
<<bodyparts>>
<<CColorIni>>
<<upperb_outerwearIni>>
<<upperb_underwearIni>>
<<lowerb_outerwearIni>>
<<lowerb_underwearIni>>
<<footwearIni>>
<<legwearIni>>
<<shoesIni>>
<<accesories>>
<<clothessetter>>
<</widget>>
/% Making the wardrobe content variable to store a lot(soon™) of clothes, the bodypart, the clothes the bodypart identifiers for the WandU widget etc. %/
<<widget "clothesvar">>
<<set $wardrobeContent to {
upperbouter: [],
upperbunder: [],
lowerbouter: [],
lowerbunder: [],
legwear: [],
footwear: [],
shoes: [],
accesories: []
}>>
<<set $outfits to []>>
<<set $bps to {}>>
<<set setup.clothes to {}>>
<</widget>>
/% Because who doesn't like loops? More loops, you want a loop? You get a loop.%/
/% It just give the "naked" to every part in the body. %/
<<widget "clothessetter">>
/* Head setter */
<<for _i to 0; _i lt $bps.head.length; _i++>>
<<set $bps.head[_i].primary to clone(setup.clothes.accesories[0])>>
<<set $bps.head[_i].secondary to clone(setup.clothes.accesories[0])>>
<</for>>
/* Upper body setter */
<<for _i to 0; _i lt $bps.upperbody.length; _i++>>
<<set $bps.upperbody[_i].primary to clone(setup.clothes.accesories[0])>>
<<set $bps.upperbody[_i].secondary to clone(setup.clothes.accesories[0])>>
<</for>>
<<set $bps.upperbody[0].primary to clone(setup.clothes.upperbouter[0])>>
<<set $bps.upperbody[0].secondary to clone(setup.clothes.upperbouter[0])>>
/* Genitals setter */
<<for _i to 0; _i lt $bps.genitals.length; _i++>>
<<set $bps.genitals[_i].primary to clone(setup.clothes.accesories[0])>>
<<set $bps.genitals[_i].secondary to clone(setup.clothes.accesories[0])>>
<</for>>
/* Lower body setter */
<<for _i to 0; _i lt $bps.lowerbody.length; _i++>>
<<set $bps.lowerbody[_i].primary to clone(setup.clothes.accesories[0])>>
<<set $bps.lowerbody[_i].secondary to clone(setup.clothes.accesories[0])>>
<</for>>
<<set $bps.lowerbody[0].primary to clone(setup.clothes.lowerbouter[0])>>
<<set $bps.lowerbody[0].secondary to clone(setup.clothes.lowerbouter[0])>>
<</widget>>
/* This widget add a new outfit or update one if $args[0] is "update". It checks if any item was stored in the for loop before creating/updating it.*/
<<widget "newOutfit">>
<<set _content to {
upperbouter: {item: [], color: []},
upperbunder: {item: [], color: []},
lowerbouter: {item: [], color: []},
lowerbunder: {item: [], color: []},
legwear: {item: [], color: []},
footwear: {item: [], color: []},
shoes: {item: [], color: []},
accesories: {item: [], color: []},
}>>
<<set _bodyP to Object.keys($bps)>>
<<set _check to 0>>
<<for _i to 0; _i lt _bodyP.length; _i++>>
<<set _bodyPIndex to Object.keys($bps[_bodyP[_i]])>>
<<for _j to 0; _j lt _bodyPIndex.length; _j++>>
<<if $bps[_bodyP[_i]][_bodyPIndex[_j]].primary.lowname isnot "naked" and !$bps[_bodyP[_i]][_bodyPIndex[_j]].primary.category.includes("backpack")>>
<<set _content[$bps[_bodyP[_i]][_bodyPIndex[_j]].primary.category[1]].item.push($bps[_bodyP[_i]][_bodyPIndex[_j]].primary.name)>>
<<set _content[$bps[_bodyP[_i]][_bodyPIndex[_j]].primary.category[1]].color.push($bps[_bodyP[_i]][_bodyPIndex[_j]].primary.color)>>
<<set _check++>>
<</if>>
<<if $bps[_bodyP[_i]][_bodyPIndex[_j]].secondary.lowname isnot "naked" and !$bps[_bodyP[_i]][_bodyPIndex[_j]].secondary.category.includes("backpack")>>
<<set _content[$bps[_bodyP[_i]][_bodyPIndex[_j]].secondary.category[1]].item.push($bps[_bodyP[_i]][_bodyPIndex[_j]].secondary.name)>>
<<set _content[$bps[_bodyP[_i]][_bodyPIndex[_j]].secondary.category[1]].color.push($bps[_bodyP[_i]][_bodyPIndex[_j]].secondary.color)>>
<<set _check++>>
<</if>>
<</for>>
<</for>>
<<if _check gt 0 and $args[0] is "update">>
<<set $outfits[$args[1]].content to _content>>
<<set $message to "@@.green; Outfit Updated@@">>
<<elseif _check gt 0>>
<<set _newOutfit to {name: _outFName, content: _content}>>
<<set $outfits.push(_newOutfit)>>
<<set $message to "@@.green; Outfit Created@@">>
<</if>>
<</widget>>
/* Undress the player before making them wear the outfit's items, this will need to be modified when accesories get implemented */
<<widget "wearOutfit">>
<<set _keys to Object.keys($wardrobeContent)>>
<<undressAll>>
<<for _iK to 0; _iK lt _keys.length; _iK++>>
<<for _iO to 0; _iO lt $outfits[_iOF].content[_keys[_iK]].item.length; _iO++>>
<<set _iID to $wardrobeContent[_keys[_iK]].findIndex(x => x.name === $outfits[_iOF].content[_keys[_iK]].item[_iO] && x.color === $outfits[_iOF].content[_keys[_iK]].color[_iO])>>
<<if _iID != -1>>
<<set _iSlot to $wardrobeContent[_keys[_iK]][_iID].category[1]>>
<<if _iSlot is "upperbouter" or _iSlot is "upperbunder">>
<<set _body to "upperbody">>
<<else>>
<<set _body to "lowerbody">>
<</if>>
<<if _iSlot is "upperbunder" or _iSlot is "lowerbunder" or _iSlot is "footwear">>
<<set _itemSlot to "secondary">>
<<else>>
<<set _itemSlot to "primary">>
<</if>>
<<if _iSlot is "upperbouter" or _iSlot is "upperbunder" or _iSlot is "lowerbouter" or _iSlot is "lowerbunder">>
<<set _bpIndex to 0>>
<<elseif _iSlot is "legwear">>
<<set _bpIndex to 2>>
<<elseif _iSlot is "footwear" or _iSlot is "shoes">>
<<set _bpIndex to 3>>
<</if>>
<<capture _iK>>
<<wearMain _keys[_iK] _iID _body _bpIndex _itemSlot>>
<</capture>>
<</if>>
<</for>>
<</for>>
<<set $message to String.format('You put on the "<span class="orange">{0}</span>" outfit', $outfits[_iOF].name)>>
<</widget>>
/* Just shows the outfit info */
<<widget "outfitPop">>
<<set _outfID to $args[0]>>
Outfit: <<print $outfits[_outfID].name>>
<br>
<br>
Composed by:
<br>
<<set _ofKeys to Object.keys($outfits[_outfID].content)>>
<div style="text-align: left;">
<<for _i to 0; _i lt _ofKeys.length; _i++>>
<<for _j to 0; _j lt $outfits[_outfID].content[_ofKeys[_i]].item.length; _j++>>
<<print $outfits[_outfID].content[_ofKeys[_i]].item[_j]>>
<<if $outfits[_outfID].content[_ofKeys[_i]].color[_j]>>
<<clothescolor "inColor" $outfits[_outfID].content[_ofKeys[_i]].color[_j]>>
<</if>>
<br>
<</for>>
<</for>>
</div>
<</widget>>
<<widget "genderIcon">>
<<if setup.clothes[$args[0]][_j].gender is "male">>
<<set _ic to "img/others/maleGIcon.png">>
<<elseif setup.clothes[$args[0]][_j].gender is "female">>
<<set _ic to "img/others/femaleGIcon.png">>
<<else>>
<<set _ic to "img/others/neutralIcon.png">>
<</if>>
<img @src="_ic" style="max-width: 5%;">
<</widget>><<widget "inventory">>
<<set _passage to passage()>>
<<if $backpack[0]>>
<<for _ibp to 0; _ibp lt $backpack.length; _ibp++>>
<div class="list">
<div id="insidelist">
Name: @@.green;<<print $backpack[_ibp].name>>@@
<br>
Description: <<print $backpack[_ibp].description>>
<<if $backpack[_ibp].color>>
<br>
Color: <<clothescolor "inColor" $backpack[_ibp].color "colorOnly">>
<</if>>
<<if $backpack[_ibp].tLength and $backpack[_ibp].tWidth>>
<br>
Length: <<print $backpack[_ibp].tLength>> / Width: <<print $backpack[_ibp].tWidth>>
<</if>>
<<if $backpack[_ibp].category.includes("sextoy") and _passage is "wardrobe">>
<span class="toysButtons">
<<capture _ibp>>
<<button "To Wardrobe" _passage>>
<<moveItem "toWB" _ibp "accesories">>
<</button>>
<</capture>>
</span>
<</if>>
</div>
</div>
<</for>>
<<else>>
Your backpack is empty.
<</if>>
<</widget>><<widget "iteminfo">>
<<set _id to $args[0]>>
<<set _slot to $args[1]>>
<<if $wardrobeContent[_slot][_id].category.includes("upperbouter")>>
<img src="img\others\clothes\shirt.png">
<<elseif $wardrobeContent[_slot][_id].category.includes("lowerbouter")>>
<img src="img\others\clothes\pants.png" style="height:65px;">
<</if>>
<br>
Name: <<print $wardrobeContent[_slot][_id].name>>
<<wardItemIcn _slot _id>>
<br>
Description:
<<if $wardrobeContent[_slot][_id].amount gt 1>>
<<print String.format("x{0} {1}s", $wardrobeContent[_slot][_id].amount, $wardrobeContent[_slot][_id].name)>>
<<else>>
<<print $wardrobeContent[_slot][_id].description>>
<</if>>
<<if $wardrobeContent[_slot][_id].color>>
<br>
Color: <<clothescolor $wardrobeContent[_slot][_id] true>>
<</if>>
<br>
<<if $wardrobeContent[_slot][_id].length isnot undefined and $wardrobeContent[_slot][_id].width isnot undefined>>
Length: <<print $wardrobeContent[_slot][_id].length>>
<br>
Width: <<print $wardrobeContent[_slot][_id].width>>
<</if>>
<</widget>>
<<widget "wardItemIcn">>
<<if $wardrobeContent[$args[0]][$args[1]].gender is "male">>
<<set _ic to "img/others/maleGIcon.png">>
<<elseif $wardrobeContent[$args[0]][$args[1]].gender is "female">>
<<set _ic to "img/others/femaleGIcon.png">>
<<else>>
<<set _ic to "img/others/neutralIcon.png">>
<</if>>
<img @src="_ic" style="max-width: 5%;">
<</widget>>/* Wardrobe wear and undress widget.*/
<<widget "wearMain">>
<<set _wrSlot to $args[0]>>
<<set _itemID to $args[1]>>
<<set _bodyPart to $args[2]>>
<<set _bodyPIndex to $args[3]>>
<<set _itemSlot to $args[4]>>
<<set _tID to $pTraits.findIndex(x => x.name === "Crossdressing")>>
<<if $wardrobeContent[_wrSlot][_itemID].gender is "neutral" or $wardrobeContent[_wrSlot][_itemID].gender is $playervar.gender or $pTraits[_tID]>>
<<undressMain _bodyPart _bodyPIndex _itemSlot _wrSlot>>
<<set $bps[_bodyPart][_bodyPIndex][_itemSlot] to clone($wardrobeContent[_wrSlot][_itemID])>>
<<set $message to "@@.green;You put your <span class='orange'>"+ $wardrobeContent[_wrSlot][_itemID].name +"</span> on.@@">>
<<set $wardrobeContent[_wrSlot].deleteAt(_itemID)>>
<<else>>
<<set $message to "@@.red;You can't wear <span class='orange'>"+ $wardrobeContent[_wrSlot][_itemID].name +"</span>, they are not for your gender or you don't have the crossdresser trait.@@">>
<</if>>
<</widget>>
<<widget "undressMain">>
<<set _bodyPart to $args[0]>>
<<set _bodySlot to $args[1]>>
<<set _itemsSlot to $args[2]>>
<<set _clothesSlot to $args[3]>>
/% Checks if the player is in the wardrobe, then it checks if the player isn't naked(because we can't remove our skin you know.)
Then it undress the player.
%/
<<if passage() is "wardrobe">>
<<if $bps[_bodyPart][_bodySlot][_itemsSlot].lowname isnot "naked">>
<<if $bps[_bodyPart][_bodySlot][_itemsSlot].amount>>
<<set _findI to $wardrobeContent[_clothesSlot].findIndex(x => x.lowname === $bps[_bodyPart][_bodySlot][_itemsSlot].lowname)>>
<<if _findI is -1>>
<<set $wardrobeContent[_clothesSlot].push(clone($bps[_bodyPart][_bodySlot][_itemsSlot]))>>
<<else>>
<<set $wardrobeContent[_clothesSlot][_findI].amount += $bps[_bodyPart][_bodySlot][_itemsSlot].amount>>
<</if>>
<<else>>
<<set $wardrobeContent[_clothesSlot].push(clone($bps[_bodyPart][_bodySlot][_itemsSlot]))>>
<</if>>
<<set $message to "@@.red;You remove your <span class='orange'>"+ $bps[_bodyPart][_bodySlot][_itemsSlot].name +"</span>.@@">>
<<if _clothesSlot is "shoes" or _clothesSlot is "accesories">>
<<set $bps[_bodyPart][_bodySlot][_itemsSlot] to clone(setup.clothes.accesories[0])>>
<<else>>
<<set $bps[_bodyPart][_bodySlot][_itemsSlot] to clone(setup.clothes[_clothesSlot][0])>>
<</if>>
<</if>>
<<else>>
<<set $bps[_bodyPart][_bodySlot][_itemsSlot] to clone(setup.clothes[_clothesSlot][0])>>
<</if>>
<</widget>>
<<widget "putSextoy">>
<<set _itemID to $args[0]>>
<<set _bodyPart to $args[1]>>
<<set _bodyPIndex to $args[2]>>
<<set _itemSlot to $args[3]>>
<<set _warLowName to $wardrobeContent.accesories[_itemID].lowname>>
<<if $bps[_bodyPart][_bodyPIndex].primary.lowname isnot "naked" and $bps[_bodyPart][_bodyPIndex].primary.lowname isnot _warLowName>>
<<set _itemSlot to "secondary">>
<<run console.log("to secondary")>>
<<elseif $bps[_bodyPart][_bodyPIndex].secondary.lowname isnot "naked" and $bps[_bodyPart][_bodyPIndex].secondary.lowname isnot _warLowName>>
<<set _itemSlot to "primary">>
<<run console.log("to primary")>>
<</if>>
<<set _bpslowName to $bps[_bodyPart][_bodyPIndex][_itemSlot].lowname>>
<<limitToy>>
<<if $bps[_bodyPart][_bodyPIndex][_itemSlot].amount eq _vLimit or
$bps[_bodyPart][_bodyPIndex][_itemSlot].amount eq _aLimit>>
<<set $message to "@@.red;You can't put more of this item inside.@@">>
<<else>>
<<if _bpslowName isnot _warLowName>>
<<undressMain _bodyPart _bodyPIndex _itemSlot "accesories">>
<</if>>
<<if $wardrobeContent.accesories[_itemID].arsGain>>
<<if $arousal + $wardrobeContent.accesories[_itemID].arsGain gte 100>>
<<set _message to String.format("<span class='green'> After inserting your @@.orange;{0}@@ you reached your limit and had an @@.pink;orgasm@@</span>.", $wardrobeContent.accesories[_itemID].name)>>
<<else>>
<<set $message to String.format("<span class='green'> After inserting your @@.orange;{0}@@ you feel @@.pink;more aroused@@</span>.", $wardrobeContent.accesories[_itemID].name)>>
<</if>>
<<addArousal $wardrobeContent.accesories[_itemID].arsGain _message "masturb" "preM">>
<</if>>
<<if _bpslowName is _warLowName and $wardrobeContent.accesories[_itemID].amount gt 0>>
<<set $bps[_bodyPart][_bodyPIndex][_itemSlot].amount++>>
<<elseif $wardrobeContent.accesories[_itemID].amount gt 0>>
<<set $bps[_bodyPart][_bodyPIndex][_itemSlot] to clone($wardrobeContent.accesories[_itemID])>>
<<set $bps[_bodyPart][_bodyPIndex][_itemSlot].amount to 1>>
<<else>>
<<set $bps[_bodyPart][_bodyPIndex][_itemSlot] to clone($wardrobeContent.accesories[_itemID])>>
<</if>>
<<if $wardrobeContent.accesories[_itemID].amount and $wardrobeContent.accesories[_itemID].amount gt 1>>
<<set $wardrobeContent.accesories[_itemID].amount-->>
<<else>>
<<set $wardrobeContent.accesories.deleteAt(_itemID)>>
<</if>>
<</if>>
<</widget>>
<<widget "limitToy">>
<<if $playervar.vagdepth gte 23>>
<<set _vLimit to 5>>
<<elseif $playervar.vagdepth gte 18>>
<<set _vLimit to 3>>
<<elseif $playervar.vagdepth gte 13>>
<<set _vLimit to 2>>
<</if>>
<<if $playervar.anusdepth gte 27>>
<<set _aLimit to 7>>
<<elseif $playervar.anusdepth gte 23>>
<<set _aLimit to 5>>
<<elseif $playervar.anusdepth gte 20>>
<<set _aLimit to 4>>
<</if>>
<</widget>>
/* Stores clothes inside the wardrobe, can be extended to any other "storage" that may exist in the future */
<<widget "storingClothes">>
<<set _enabledCat to ["underwear", "outerwear", "shoes", "legwear", "footwear"]>>
<<if $enableAutoToys is true>>
<<set _enabledCat.push("sextoy")>>
<</if>>
<<for _index range $backpack>>
<<set _posit to $backpack.findIndex(x => x.name === _index.name)>>
<<if $backpack[_posit].category.includesAny(_enabledCat)>>
<<set $wardrobeContent[$backpack[_posit].category[1]].push(clone($backpack[_posit]))>>
<<set $backpack.deleteAt(_posit)>>
<</if>>
<</for>>
<</widget>>
/* Move item between backpack and wardrobe and viceversa */
<<widget "moveItem">>
<<set _itemPos to $args[1]>>
<<set _itemBoP to $args[2]>>
<<switch $args[0]>>
<<case "toBP">>
<<set $backpack.push(clone($wardrobeContent[_itemBoP][_itemPos]))>>
<<set $wardrobeContent[_itemBoP].deleteAt(_itemPos)>>
<<case "toWB">>
<<set $wardrobeContent[_itemBoP].push(clone($backpack[_itemPos]))>>
<<set $backpack.deleteAt(_itemPos)>>
<</switch>>
<</widget>>
/* Undress all. Calling undressMain */
<<widget "undressAll">>
<<set _cats to ["upperbouter", "upperbunder", "lowerbouter", "lowerbunder", "legwear", "footwear", "shoes", "accesories"]>>
<<set _bodyP to Object.keys($bps)>>
<<set _iSlots to ["primary", "secondary"]>>
<<for _i to 0; _i lt _bodyP.length; _i++>>
<<set _bodyPIndex to Object.keys($bps[_bodyP[_i]])>>
<<for _j to 0; _j lt _bodyPIndex.length; _j++>>
<<for _is to 0; _is lt _iSlots.length; _is++>>
<<if $bps[_bodyP[_i]][_bodyPIndex[_j]][_iSlots[_is]].category.includesAny(_cats) and !$bps[_bodyP[_i]][_bodyPIndex[_j]][_iSlots[_is]].lowname.includes("backpack")>>
<<undressMain _bodyP[_i] _bodyPIndex[_j] _iSlots[_is] $bps[_bodyP[_i]][_bodyPIndex[_j]][_iSlots[_is]].category[1]>>
<</if>>
<</for>>
<</for>>
<</for>>
<</widget>>
/* Show the clothes in a certain order with an undress button.
The _items array is used to have an order of items, so it doesn't display like "bra, pantyhose, blouse, etc" and instead is in order of categories */
<<widget "showWClothes">>
<<set _bodyP to Object.keys($bps)>>
<<set _pos to ["primary", "secondary"]>>
<<set _items to [[],[],[],[],[],[],[]]>>
<<for _ipk to 0; _ipk lt _bodyP.length; _ipk++>>
<<set _bodyPIndex to Object.keys($bps[_bodyP[_ipk]])>>
<<for _jpi to 0; _jpi lt _bodyPIndex.length; _jpi++>>
<<for _k to 0; _k lt _pos.length; _k++>>
<<if $bps[_bodyP[_ipk]][_bodyPIndex[_jpi]][_pos[_k]].lowname isnot "naked" and $bps[_bodyP[_ipk]][_bodyPIndex[_jpi]][_pos[_k]].lowname isnot "backpack">>
<<if $bps[_bodyP[_ipk]][_bodyPIndex[_jpi]][_pos[_k]].category.includes("outerwear")>>
<<set _items[0].push($bps[_bodyP[_ipk]][_bodyPIndex[_jpi]][_pos[_k]])>>
<<elseif $bps[_bodyP[_ipk]][_bodyPIndex[_jpi]][_pos[_k]].category.includes("underwear")>>
<<set _items[1].push($bps[_bodyP[_ipk]][_bodyPIndex[_jpi]][_pos[_k]])>>
<<elseif $bps[_bodyP[_ipk]][_bodyPIndex[_jpi]][_pos[_k]].category.includes("legwear")>>
<<set _items[2].push($bps[_bodyP[_ipk]][_bodyPIndex[_jpi]][_pos[_k]])>>
<<elseif $bps[_bodyP[_ipk]][_bodyPIndex[_jpi]][_pos[_k]].category.includes("footwear")>>
<<set _items[3].push($bps[_bodyP[_ipk]][_bodyPIndex[_jpi]][_pos[_k]])>>
<<elseif $bps[_bodyP[_ipk]][_bodyPIndex[_jpi]][_pos[_k]].category.includes("shoes")>>
<<set _items[4].push($bps[_bodyP[_ipk]][_bodyPIndex[_jpi]][_pos[_k]])>>
<<elseif $bps[_bodyP[_ipk]][_bodyPIndex[_jpi]][_pos[_k]].category.includes("footwear")>>
<<set _items[5].push($bps[_bodyP[_ipk]][_bodyPIndex[_jpi]][_pos[_k]])>>
<<elseif $bps[_bodyP[_ipk]][_bodyPIndex[_jpi]][_pos[_k]].category.includes("sextoy")>>
<<set _items[6].push($bps[_bodyP[_ipk]][_bodyPIndex[_jpi]][_pos[_k]])>>
<</if>>
<</if>>
<</for>>
<</for>>
<</for>>
<<for _it to 0; _it lt _items.length; _it++>>
<<for _iit to 0; _iit lt _items[_it].length; _iit++>>
<div class="list" style="min-width: 7.5em;">
<div id="insidelist">
<<if _items[_it][_iit].amount gt 1>>
x<<print _items[_it][_iit].amount>>
<</if>>
<<print _items[_it][_iit].name>><<if _items[_it][_iit].slot>>(<<print _items[_it][_iit].slot>>)<</if>>
<<if _items[_it][_iit].color>>
<<clothescolor "inColor" _items[_it][_iit].color>>
<</if>>
<<if _items[_it][_iit].category.includes("sextoy")>>
<<set _name to "Expel">>
<<else>>
<<set _name to "Take off">>
<</if>>
<br>
<span class="smollbutt">
<<capture _it _iit>>
<<button "_name" "wardrobe">>
<<for _ipk to 0; _ipk lt _bodyP.length; _ipk++>>
<<set _bodyPIndex to Object.keys($bps[_bodyP[_ipk]])>>
<<for _jpi to 0; _jpi lt _bodyPIndex.length and !_break; _jpi++>>
<<for _kp to 0; _kp lt _pos.length; _kp++>>
<<if $bps[_bodyP[_ipk]][_bodyPIndex[_jpi]][_pos[_kp]].name is _items[_it][_iit].name>>
<<undressMain _bodyP[_ipk] _bodyPIndex[_jpi] _pos[_kp] _items[_it][_iit].category[1]>>
<<set _break to true>>
<<break>>
<</if>>
<</for>>
<</for>>
<</for>>
<</button>>
<</capture>>
</span>
</div>
</div>
<</for>>
<</for>>
<</widget>>/% Just some wardrobelinks that are put as a <a> to use them as functions and so the "game" can remember what was pressed when you leave the passage or refreshes%/
/% Credits to DoL.%/
<<widget "wardrobeLinks">>
<fieldset id="fieldinline" style="min-width: 18.5em;">
<legend style="font-size: 130%;">Clothes</legend>
<button class="macro-button med-button" onclick="wikifier('wardrobeCCReplacer', 'clothes', 'upperbody')"><span @class="($pressedlink is 'upperbody' ? 'selected' : '')">Upper Body</span></button>
<button class="macro-button med-button" onclick="wikifier('wardrobeCCReplacer', 'clothes', 'lowerbody')"><span @class="($pressedlink is 'lowerbody' ? 'selected' : '')">Lower Body</span></button>
</fieldset>
<<if $wardrobeContent.accesories[0]>>
<fieldset id="fieldinline" style="min-width: 18.5em;">
<legend style="font-size: 130%;">Accesories</legend>
<button class="macro-button med-button" onclick="wikifier('wardrobeCCReplacer', 'accesories', 'sextoys')"><span @class="($pressedlink is 'sextoys' ? 'selected' : '')">Sex Toys</span></button>
</fieldset>
<</if>>
@@.wardrobeBttns;<<button "Undress All" "wardrobe">>
<<undressAll>>
<</button>>@@
<</widget>>
/% This replaces some divs in the wardrobe passage and makes it remember what link was pressed.%/
<<widget "wardrobeCCReplacer">>
<<switch $args[0]>>
<<case "clothes">>
<<switch $args[1]>>
<<case "upperbody">>
<<replace "#wardrobeContent">>
<<showWardrobeCC "upperbody">>
<</replace>>
<<set $pressedlink to "upperbody">>
<<case "lowerbody">>
<<replace "#wardrobeContent">>
<<showWardrobeCC "lowerbody">>
<</replace>>
<<set $pressedlink to "lowerbody">>
<</switch>>
<<case "accesories">>
<<switch $args[1]>>
<<case "sextoys">>
<<replace "#wardrobeContent">>
<<showWardrobeCC "sextoys">>
<</replace>>
<<set $pressedlink to "sextoys">>
<</switch>>
<<replace "#wardrobeLinks">>
<<wardrobeLinks>>
<</replace>>
<</switch>>
<</widget>>
/% Just some styling and calls to the main "wardrobe content"%/
<<widget "showWardrobeCC">>
<br>
<<switch $args[0]>>
<<case "upperbody">>
<<wardrobeItemsContent "upperbody">>
<<case "lowerbody">>
<<wardrobeItemsContent "lowerbody">>
<<case "sextoys">>
<<wardrobeSexToys>>
<</switch>>
<div id="wardrobeItemsContent"></div>
<</widget>>
/% This is where the fun begins holy shit. I was like 2-3 weeks doing this thing.%/
/% BTW Credits and thanks a lot to Degree of Lewdity for the code as this one is based from the code that they have and heavely modified to work with what I have.%/
/% There are 3 switches, one checks for the "upperbody", the other for the lowerbody, it may be expanded further in the future.%/
/% That switch stores it temporary so in case the args is, it becomes more easy to use later.%/
/% The last 2 does essentially the same except that one is for "primary" and "secondary" body slots and the last one is for the bodypart index.%/
/% After all that little happy story of me and this shit, now there is an if that checks if the player is naked so it hides and shows the "undress" link %/
/% finally, another for loops for the length of the $wardrobeContent that makes a link for each item it has stored. %/
<<widget "wardrobeItemsContent">>
<<switch $args[0]>>
<<case "upperbody">>
<<set _body to "upperbody">>
<<set _wardrobeSlot to ["upperbouter", "upperbunder"]>>
<<set _categories to ["Outerwear", "Underwear"]>>
<<case "lowerbody">>
<<set _body to "lowerbody">>
<<set _wardrobeSlot to ["lowerbouter", "lowerbunder", "legwear", "footwear", "shoes"]>>
<<set _categories to ["Outerwear", "Underwear", "Legwear", "Footwear", "Shoes"]>>
<</switch>>
<<for _i to 0; _i lt _wardrobeSlot.length; _i++>>
<div class="list" style="min-width: 10.7em;">
<div id="insidelist">
<span style="font-size: 115%"><<print _categories[_i]>></span>
<<switch _categories[_i]>>
<<case "Outerwear" "Legwear" "Shoes">>
<<set _itemSlot to "primary">>
<<case "Underwear" "Footwear">>
<<set _itemSlot to "secondary">>
<</switch>>
<<switch _categories[_i]>>
<<case "Outerwear" "Underwear">>
<<set _bpIndex to 0>>
<<case "Legwear">>
<<set _bpIndex to 2>>
<<case "Footwear" "Shoes">>
<<set _bpIndex to 3>>
<</switch>>
<div class="divisor"></div>
<<for _j to 0; _j lt $wardrobeContent[_wardrobeSlot[_i]].length; _j++>>
<<set _itemContentN to $wardrobeContent[_wardrobeSlot[_i]][_j].name>>
<<print _itemContentN>>
<<clothescolor "inColor" $wardrobeContent[_wardrobeSlot[_i]][_j].color>>
<<wardItemIcn _wardrobeSlot[_i] _j>>
<span class="wardrobeBttns">
<br>
<<capture _wardrobeSlot[_i] _j _body _bpIndex _itemSlot>>
<<button "Wear" "wardrobe">>
<<wearMain _wardrobeSlot[_i] _j _body _bpIndex _itemSlot>>
<</button>>
<</capture>>
<<capture _itemContentN _wardrobeSlot[_i]>>
<<button "Info">>
<<replacer "iteminfo" _j _wardrobeSlot[_i]>>
<</button>>
<</capture>>
</span>
<br>
<</for>>
<div class="thindiv"></div>
</div>
</div>
<</for>>
<</widget>>
<<widget "wardrobeSexToys">>
<<set _categories to []>>
<<for _st to 0; _st lt setup.clothes.sextoys.length; _st++>>
<<set _categories.pushUnique(setup.clothes.sextoys[_st].category[0])>>
<</for>>
<<for _i to 0; _i lt _categories.length; _i++>>
<div class="list" style="min-width: 10.6em;">
<div id="insidelist">
<span style="font-size: 115%"><<print _categories[_i].toUpperFirst() + "s">></span>
<div class="divisor"></div>
<<for _j to 0; _j lt $wardrobeContent.accesories.length; _j++>>
<<if $wardrobeContent.accesories[_j].category.includes(_categories[_i])>>
<<if $wardrobeContent.accesories[_j].amount gt 1>>
x<<print $wardrobeContent.accesories[_j].amount>>
<</if>>
<<print $wardrobeContent.accesories[_j].name>>
<<if $wardrobeContent.accesories[_j].color>>
<<clothescolor "inColor" $wardrobeContent.accesories[_j].color>>
<</if>>
<<wardItemIcn "accesories" _j>>
<span class="wardrobeBttns">
<<capture _j>>
<<button "Info">>
<<replacer "iteminfo" _j "accesories">>
<</button>>
<</capture>>
</span>
<span class="toysButtons">
<<if $wardrobeContent.accesories[_j].category[3] and $wardrobeContent.accesories[_j].category[3].wearable>>
<br>
<<for _p to 0; _p lt $wardrobeContent.accesories[_j].category[3].wearable.length; _p++>>
<<if $wardrobeContent.accesories[_j].category[3].wearable[_p] is "vulva" and $playervar.gender is "female">>
<<set _body to "genitals">>
<<set _bpIndex to 0>>
<<set _itemPl to "secondary">>
<<set _part to "Vag">>
<<if $wardrobeContent.accesories[_j].tLength gt $playervar.vagcomfortinsert and $wardrobeContent.accesories[_j].tWidth gt $playervar.vagwidthcomfortinsert>>
<<set _disable to true>>
<<else>>
<<set _disable to false>>
<</if>>
<<elseif $wardrobeContent.accesories[_j].category[3].wearable[_p] is "anus">>
<<set _body to "lowerbody">>
<<set _bpIndex to 1>>
<<set _itemPl to "primary">>
<<set _part to "Anus">>
<<if $wardrobeContent.accesories[_j].tLength gt $playervar.anuscomfortinsert and $wardrobeContent.accesories[_j].tWidth gt $playervar.anuswidthcomfortinsert>>
<<set _disable to true>>
<<else>>
<<set _disable to false>>
<</if>>
<<else>>
<<continue>>
<</if>>
<<capture _j _body _bpIndex _itemPl _part>>
<<disable _disable>>
<<button "Put in (_part)" "wardrobe">>
<<set $wardrobeContent.accesories[_j].slot = _part>>
<<putSextoy _j _body _bpIndex _itemPl>>
<</button>>
<</disable>>
<</capture>>
<</for>>
<</if>>
<<capture _j>>
<<button "To Backpack" "wardrobe">>
<<moveItem "toBP" _j "accesories">>
<</button>>
<</capture>>
</span>
<br>
<</if>>
<</for>>
</div>
</div>
<</for>>
<</widget>><<widget "jobsInfo">>
<<set setup.frozenjar.workingHours to {
openingHours : 11,
closingHours : 3
}>>
<<set setup.blacknectar.workingHours to {
openingHours: 5,
closingHours: 18
}>>
<</widget>>/* Just pay me! D: D: */
<<widget "payment">>
<<set _hoursworked to $args[0]>>
<<set $credits += $pJob.payment * _hoursworked>>
<</widget>><<widget "jobsIni">>
<<set setup.frozenjar to []>>
<<set setup.blacknectar to []>>
<<jobs>>
<</widget>>
<<widget "jobs">>
<<set setup.frozenjar.jobs to [
{
rank: 0,
place: "frozenjar",
name: "waiter/waitress",
payment: 5,
energyused: 5,
hoursreq: 4,
daysreq: 5,
expreq: 120,
}
]>>
<<set setup.blacknectar.jobs to [
{
rank: 0,
place: "blacknectar",
name: "waiter/waitress",
payment: 5,
energyused: 5,
hoursreq: 4,
daysreq: 5,
expreq: 120,
}
]>>
<</widget>><<widget "pButton">> /* Some buttons for purchasing items. The first one is for grocery items and the second one for "unique" purchases (Limited to one, or in the case of clothes 2 :)). */
<<set _passage to passage()>>
<<switch $args[0]>>
<<case "grocery">>
@@.pButton;
<<capture _fLI _exist>>
<<button "Add to shopping cart" _passage>>
<<if _exist is -1>>
<<set $shoppingcart.push(clone(_foodlist[_fLI]))>>
<<set $shoppingcart[$shoppingcart.length - 1].amount to _Amount>>
<<set $message to "addedToSC">>
<<elseif ($shoppingcart[_exist].amount + _Amount) lte 5>>
<<set $shoppingcart[_exist].amount += _Amount>>
<<set $message to "addedToSC">>
<<else>>
<<set $message to "enough">>
<</if>>
<</button>>
<</capture>>
@@
<<case "clothstore">>
@@.pButton;
<<capture _j>>
<<button "Add to shopping cart" _passage>>
<<set $shoppingcart.push(clone(_values[_j]))>>
<<set $message to "addedToSC">>
<<set $shoppingcart[$shoppingcart.length - 1].color to _selectedColor>>
<</button>>
<</capture>>
@@
<<case "ssShop">>
@@.pButton;
<<capture _j _existsc>>
<<button "Add to shopping cart" _passage>>
<<if setup.clothes.sextoys[_j].amount gt 0>>
<<if _existsc is -1>>
<<set $shoppingcart.push(clone(setup.clothes.sextoys[_j]))>>
<<set $message to "addedToSC">>
<<set $shoppingcart[$shoppingcart.length - 1].amount to _Amount>>
<<elseif ($shoppingcart[_existsc].amount + _Amount) lte 5>>
<<set $shoppingcart[_existsc].amount += _Amount>>
<<set $message to "addedToSC">>
<<else>>
<<set $message to "enough">>
<</if>>
<<else>>
<<set $shoppingcart.push(clone(setup.clothes.sextoys[_j]))>>
<<set $message to "addedToSC">>
<<set $shoppingcart[$shoppingcart.length - 1].color to _selectedColor>>
<<if setup.clothes.sextoys[_j].length isnot undefined and setup.clothes.sextoys[_j].width isnot undefined>>
<<if setup.clothes.sextoys[_j].category.includes("plug")>>
<<set _mult to 0.75>>
<<else>>
<<set _mult to 1>>
<</if>>
<<switch _size>>
<<case "Huge">>
<<set $shoppingcart[$shoppingcart.length - 1].name += String.format(" ({0})", _size) >>
<<set $shoppingcart[$shoppingcart.length - 1].tLength to Math.round(20 * _mult)>>
<<set $shoppingcart[$shoppingcart.length - 1].tWidth to Math.round(5.5 * _mult)>>
<<case "Big">>
<<set $shoppingcart[$shoppingcart.length - 1].name += String.format(" ({0})", _size) >>
<<set $shoppingcart[$shoppingcart.length - 1].tLength to Math.round(15 * _mult)>>
<<set $shoppingcart[$shoppingcart.length - 1].tWidth to Math.round(4.5 * _mult)>>
<<case "Medium">>
<<set $shoppingcart[$shoppingcart.length - 1].name += String.format(" ({0})", _size) >>
<<set $shoppingcart[$shoppingcart.length - 1].tLength to Math.round(12 * _mult)>>
<<set $shoppingcart[$shoppingcart.length - 1].tWidth to Math.round(3.5 * _mult)>>
<<case "Small">>
<<set $shoppingcart[$shoppingcart.length - 1].name += String.format(" ({0})", _size) >>
<<set $shoppingcart[$shoppingcart.length - 1].tLength to Math.round(5 * _mult)>>
<<set $shoppingcart[$shoppingcart.length - 1].tWidth to Math.round(2.5 * _mult)>>
<<case "Tiny">>
<<set $shoppingcart[$shoppingcart.length - 1].name += String.format(" ({0})", _size) >>
<<set $shoppingcart[$shoppingcart.length - 1].tLength to Math.round(3 * _mult)>>
<<set $shoppingcart[$shoppingcart.length - 1].tWidth to Math.round(1.5 * _mult)>>
<</switch>>
<</if>>
<</if>>
<</button>>
<</capture>>
@@
<</switch>>
<</widget>>
<<widget "cleaningb">> /* This is a magic button. It knows everything by its args. That's all you need to know ;). */
<<set _name to $args[0]>>
<<set _exp to $args[1]>>
<<set _e to $args[2]>>
<<set _t to $args[3]>>
<<set _p to passage()>>
<<set _varN to "$" + $args[4]>>
<<button _name _p>>
<<if $energy gte 10>>
<<run State.setVar(_varN, true)>>
<<timeattached _t _e "handyman" _exp>>
<<else>>
<<set $message to "noEnergy">>
<</if>>
<</button>>@@.red.smollfont; +<<print _t>> Minutes@@
<</widget>><<widget "maxEnergyAr">>
<<set $energy to $maxenergy>>
<<if $args[0] is 1>>
<<set $arousal to 100>>
<<else>>
<<set $arousal to 0>>
<</if>>
<<run console.log("Widget maxEnergyAr called.")>>
<</widget>>
<<widget "addCredits">>
<<set $credits += $args[0]>>
<<run console.log("Called widget addCredits. Added " + $args[0] + " credits.")>>
<</widget>><<widget "gameUpdate">>
<<set $version to updatedVersion>>
/*Variables added in 0.2.4*/
<<set $mastLimit to 2>>
<<sexIni>>
<</widget>><<widget "cleanbedroom">>
<<if !$bedroomclean>>
@@.lightblue.smollfont;You will need to clean your room and fix the bed before using it.@@
<br>
<<cleaningb "Clean and fix the bed" 5 10 8 "bedroomclean">>
<br>
<</if>>
<</widget>>
<<widget "livingrclean">>
<<if !$livingclean>>
@@.lightblue;The livingroom is dirty and you need to clean it before going outside, watching tv or using the sofa.@@
<br>
<<cleaningb "Clean" 10 14 14 "livingclean">>
<br>
<br>
<</if>>
<</widget>>
<<widget "kitchenclean">>
<<if !$kitchenclean>>
@@.lightblue.smollfont;You will need to clean the kitchen before cooking.@@
<br>
<<cleaningb "Clean the kitchen" 8 10 16 "kitchenclean">>
<br>
<</if>>
<</widget>>
<<widget "bathrclean">>
<<if !$bathrclean>>
@@.lightblue;You will need to clean your room and fix the bed before using it.@@
<br>
<<cleaningb "Clean the bathroom" 7 13 10 "bathrclean">>
<br>
<</if>>
<</widget>><<passNameRep "Cook-ing for Newbies">>
<<set _rID to setup.recipes.findIndex(x => x.name === $recipeTL)>>
<<set $learnedrecipes.push(setup.recipes[_rID].name)>>
To make $recipeTL you need to follow these steps:
<br>
<br>
<<instructions $recipeTL>>
<br>
<br>
Congratulations! Now you have learned how to cook @@.orange;<<print $recipeTL>>@@.
<br>
<<button "Finish" "learnrecipes">>
<<timeattached 5>>
<<unset $recipeTL>>
<</button>>@@.red; +5 minutes@@/* Pretty self explanatory I think. Just a for loop for each recipe that the setup.recipe has and a little "checker" for skill requirements.*/
<<if $cookingskill lte 5 and visited() is 1>>
<<passNameRep "Waterdog Search Result">>
You found some recipes in a webpage called "Cook-ing for Newbies".
<<button "Click on the link" "learnrecipes">><</button>>
<<else>>
<<passNameRep "Cook-ing for Newbies">>
//Welcome to Cook-ing for Newbies, where you can learn some useful recipes so you can delight your family, or yourself if you are a loner.
<br>
Are you interested in some Chicken Wings? Or maybe some easy-to-make pizza? Then this is your place! Scroll down to see our recommended recipes!
~~@@.red;We use an AI system to learn your preferences, if you are concerned about your privacy please __click here__. By continuing to use site, you are agreeing to the COMPLETELY NON-INVASIVE terms regarding your privacy.@@~~//
<br>
<br>
<<for _i to 0; _i lt setup.recipes.length; _i++>>
<<set _recipeName to setup.recipes[_i].name>>
<<set _minskill to setup.recipes[_i].minskill>>
<<set _recskill to setup.recipes[_i].recskill>>
<<set _findLearned to $learnedrecipes.findIndex(x => x === _recipeName)>>
<<set _fSkill to $pSkills.findIndex(x => x.name === "cooking")>>
<<set _defIng to "">>
<<if setup.recipes[_i].defingredients>>
<<set _defIng to String.format(" With {0} or {1}", setup.recipes[_i].defingredients[0], setup.recipes[_i].defingredients[1])>>
<</if>>
<<if _fSkill is -1 and !_minskill eq 0>>
<<set _disabled to true>>
<<elseif _minskill eq 0>>
<<set _disabled to false>>
<</if>>
<<if _findLearned is -1>>
<<disable _disabled>>
<<capture _recipeName>>
<<button `"Learn " + _recipeName + _defIng` "learnrecipsteps">>
<<set $recipeTL to _recipeName>>
<<set $message to "recipeLearned">>
<</button>>
<</capture>>
<</disable>>
@@.smollfont;Minimum Skill Level: <span @class="(!_disabled or _fSkill isnot -1 and $pSkill[_fSkill] gte _minskill ? 'green' : 'red');">_minskill</span>. Recommended Level: <span @class="($cookingskill gte _recskill ? 'green' : 'red');">_recskill</span>@@
<br>
<</if>>
<</for>>
<br>
<<button "Close tab" "browser">><</button>>
<</if>><<widget "instructions">>
<<set _steps to setup.recipes[_rID].steps>>
<<switch $args[0]>>
<<case "Chicken Rice">>
1- Carefully @@.orange;clean@@ the Chicken Breast, removing any remnants that may exist.
<br>
2- @@.orange;Cut it into cubes or pieces@@. Remember to add salt and pepper to your liking!
<br>
3- Add the chicken in to a pot and let it brown for about @@.orange;<<print _steps[2]>>@@ minutes.
<br>
4- Finally, add one cup of rice to the pot. Let it cook for about @@.orange;<<print _steps[3]>>@@ minutes. Add salt and seasoning to your taste.
<br>
Remember that per cup of rice you need to add 2 cups of water.
<<case "Chicken Fillet">>
1- @@.orange;Fillet@@ the chicken breast.
<br>
2- @@.orange;Clean and prepare@@ it, adding salt and pepper to taste.
<br>
3- You may use @@.orange;rice or pasta@@. Assuming that you used pasta and the water was already preheated cook it for @@.orange;<<print _steps[2]>>@@ minutes or to be al dente. Same time for rice, assuming you are using one cup of rice per 2 cups of water. Remember to add salt and/or pepper
<br>
4- The last step is to cook the chicken fillet for about @@.orange;<<print _steps[3]>>@@ minutes. Add the pasta or rice(that you cooked previously).
<<case "Fried Chicken Wings">>
1- First @@.orange;clean and prepare@@ the Chicken Wings, adding salt and seasoning to taste.
<br>
2- Prepare the flour adding cornstarch, salt, pepper and any other seasoning that you have. Coat the wings in the flour mixture, let it rest while you heat the oil.
<br>
3- In preheated oil, fry the wings for about @@.orange;<<print _steps[1]>>@@ minutes turning them halfway.
<br>
4- Serve and eat them! :).
<<case "Rice with Sausages">>
1- First @@.orange;cut the sausage into pieces@@(Any shape you like round, square, etc).
<br>
2- Add them to the pot where you will make the rice and saute with butter for @@.orange;<<print _steps[1]>>@@ minutes.
<br>
3- Add the water, rice and season to taste. Let it cook for about @@.orange;<<print _steps[2]>>@@ minutes.
<br>
4- Serve and enjoy!
<<case "Steak">>
1- In a pot with water, add rice or pasta, season and cook for about @@.orange;<<print _steps[0]>>@@ minutes.
<br>
2- While it's cooking, we'll @@.orange;prepare@@ the steak seasoning it with salt and pepper.
<br>
3- In a hot pan, add the steak and let it cook for about @@.orange;<<print _steps[2]>>@@ minutes or depending on the doneness you like.
<br>
4- Once it's finished, serve the rice or pasta with the steak (if there is any cooking juice left, you can add it) and enjoy!
<<case "Ground Beef">>
1- Cut the tomatoes, @@.orange;clean@@ them and add them to the blender adding water, blend until you get saucey-liquid.
<br>
2- Now, we'll @@.orange;prepare@@ the meat in a large pot add the ground beef, if you wish, you can let it saute a little or add the tomato sauce directly. Season and add a bit of sugar and some bay leaves to balance the acidity of the tomato.
Let it cook for about @@.orange;<<print _steps[2]>>@@ minutes.
<br>
3- While it's cooking, setup a pot with water to cook the rice or pasta, add salt and season it to taste. If it's pasta, add the pasta when the water is boling. Cook for about @@.orange;<<print _steps[3]>>@@ minutes.
<br>
4- Once everything is cooked, serve and enjoy!
<</switch>>
<</widget>><<widget "messager">>
<<if $message>>
<<dialogue "GLODEX" "green">>
<span class="red">
//
''
<<switch $message>>
<<case "noEne">>
No enough energy left to do this action.
<<case "noCredits">>
You don't have enough credits.
<<case "space">>
You don't have enough space in your backpack to store so many items.
<<case "succPurch">>
@@.green;Thank you for you purchase, please come back again!.@@
<<case "addedToSC">>
@@.green;Added to shopping cart!@@ Current amount to spend:
<<set _total to 0>>
<<for _isc to 0; _isc lt $shoppingcart.length; _isc++>>
<<if $shoppingcart[_isc].amount>>
<<set _total += $shoppingcart[_isc].price * $shoppingcart[_isc].amount>>
<<else>>
<<set _total += $shoppingcart[_isc].price>>
<</if>>
<</for>>
@@.yellow;<<print _total>> credits.
<<case "recipeLearned">>
@@.green;New recipe added to Glodex!@@
<<case "addedExp">>
@@.green;<<print String.format("+{0} {1} exp", $mExp, $mSkill)>>@@
<<unset $mExp; $mSkill>>
<<if $multiSkill is true>>
@@.green;<<print String.format("+{0} {1} exp", $mExp1, $mSkill1)>>@@
<<unset $mExp1; $mSkill1>>
<</if>>
<<default>>
<<print $message>>
<</switch>>
''
//
</span>
<<unset $message>>
<</dialogue>>
<</if>>
<</widget>>
<<widget "footerMessager">>
//<<switch $args[0]>>
<<case "tips">>
<<set _rngM to random(0, 6)>>
<<switch _rngM>>
<<case 0>>
With high arousal you won't be able to focus when working, studying or any activity that gives exp giving you half of it.
<<case 1>>
Certain actions like cooking, masturbating and others uses energy if you don't have enough they will tell you so.
<<case 2>>
Each weekend you will need to clean your house. If you don't, many options will be unavailable to be used (Not implemented yet).
<<case 3>>
Fruits and liquids may be consumed for a low amount of energy replenishment.
<<case 4>>
You will need to bath atleast once per day before going out.
<<case 5>>
Each hobby has a learning multiplier according to their respective skill but that multiplier isn't static, they can be "upgraded" but those with that hobby will start with an upperhand.
<<case 6>>
Some things that advance time will either increase or decrease you energy or arousal(if you have a sex toy inside) values even if it's not stated.
<</switch>>
<<case "commessages">>
<</switch>>
//
/* If you wan't to add any message to "community messages" so it can be displayed in-game please open an issue :).*/
<</widget>><<widget "skintone">>
<<if $displayColorText is true>>
<span @class="$pSkinTone" id ="skinTone"><<print $pSkinTone.toUpperFirst()>></span>.
<<else>>
<<print $pSkinTone.toUpperFirst()>>.
<</if>>
<</widget>>
/% All hail the RNG god. \[R]/ %/
<<widget "rngod">>
<<set $rnggod to random(0,100)>>
<</widget>><<widget "purchase">>
<<passNameRep "Cash Register">>
<<set _total to 0>>
<<set _deleteAm to 0>>
<<set _currPass to passage()>>
<br>
<div>
<<for _sci to 0; _sci lt $shoppingcart.length; _sci++>>
<<set _n to []>>
<div class="list">
<div id="insidelist">
Name: @@.orange;<<print $shoppingcart[_sci].name>>@@
<br>
<<if $args[0] is "grocerystore">>
Amount: @@.blue;<<print $shoppingcart[_sci].amount>>@@
<br>
<<set _total += $shoppingcart[_sci].price * $shoppingcart[_sci].amount>>
Price: @@.yellow;<<print $shoppingcart[_sci].price>>@@ Credits
<br>
<div class="thindiv"></div>
<<for _scj to 0; _scj lt $shoppingcart[_sci].amount; _scj++>>
<<set _n.push(_scj +1)>>
<</for>>
<<listbox "_deleteAm">>
<<optionsfrom _n>>
<</listbox>>
<button class="macro-button smollfont smollbutt" @onclick='`(SugarCube.State.variables.shoppingcart[`+_sci+`].amount > SugarCube.State.temporary.deleteAm ? SugarCube.State.variables.shoppingcart[`+_sci+`].amount -= SugarCube.State.temporary.deleteAm : SugarCube.State.variables.shoppingcart.deleteAt(`+_sci+`)); SugarCube.Engine.play(SugarCube.State.passage)`'>Remove</button>
<<else>>
Price: @@.yellow;<<print $shoppingcart[_sci].price>>@@ Credits
<<if $shoppingcart[_sci].color>>
<br>
Color: <<clothescolor "inColor" $shoppingcart[_sci].color "colorOnly">>
<</if>>
<div class="thindiv"></div>
<<if $shoppingcart[_sci].amount>>
<<set _total += $shoppingcart[_sci].price * $shoppingcart[_sci].amount>>
<<for _sc to 0; _sc lt $shoppingcart[_sci].amount; _sc++>>
<<set _n.push(_sc +1)>>
<</for>>
<<listbox "_deleteAm">>
<<optionsfrom _n>>
<</listbox>>
<button class="macro-button smollfont smollbutt" @onclick='`(SugarCube.State.variables.shoppingcart[`+_sci+`].amount > SugarCube.State.temporary.deleteAm ? SugarCube.State.variables.shoppingcart[`+_sci+`].amount -= SugarCube.State.temporary.deleteAm : SugarCube.State.variables.shoppingcart.deleteAt(`+_sci+`)); SugarCube.Engine.play(SugarCube.State.passage)`'>Remove</button>
<<else>>
<<set _total += $shoppingcart[_sci].price>>
<button class="macro-button smollfont smollbutt" @onclick='`SugarCube.State.variables.shoppingcart.deleteAt(`+_sci+`); SugarCube.Engine.play(SugarCube.State.passage)`'>Remove</button>
<</if>>
<br>
<</if>>
</div>
</div>
<</for>>
<br>
<div class="thindiv" style="margin-top: 5px;"></div>
Total to pay: @@.yellow;<<print _total>>@@ Credits
</div>
<br>
<<if $shoppingcart[0]>>
<<button "Confirm">>
/* You know, sometimes I hate myself because I don't comment my code. I understand them but it's just hard to explain it. Well here I go...
It's just a button that checks if the player has enough money to buy everything and if the player has enough space in its backpack.
*/
<<if $credits gte _total>>
<<if $bps.upperbody[5].primary.name is "Backpack">>
<<if $shoppingcart.length gt $bps.upperbody[5].primary.maxitems>>
<<set $message to "space">>
<<goto _currPass>>
<<else>>
<<set $credits -= _total>>
<<for _sci to 0; _sci lt $shoppingcart.length; _sci++>>
<<set _find to $backpack.findIndex(x => x.name === $shoppingcart[_sci].name)>>
<<if _find isnot -1 and $backpack[_find].name is $shoppingcart[_sci].name>>
<<set $backpack[_find].amount += $shoppingcart[_sci].amount>>
<<else>>
<<set $backpack.push(clone($shoppingcart[_sci]))>>
<</if>>
<</for>>
<<set _minut to Math.round($shoppingcart.length * 1.25)>>
<<timeattached _minut>>
<<unset $shoppingcart>>
<<set $message to "succPurch">>
<<goto $args[0]>>
<</if>>
<</if>>
<<else>>
<<set $message to "noCredits">>
<<goto _currPass>>
<</if>>
<</button>>@@.red; +<<print Math.round($shoppingcart.length * 1.25)>> minute(s)@@
<</if>>
<<button "Back" $args[0]>><</button>>
<</widget>><<widget "map">>/* Hippity Hoppity, get off my property */
<<set _mID to setup.mapStreets.findIndex(x => x.place === passage())>>
<<if _mID isnot -1>>
<br>
<svg width="416" height="350" style="border: 0.2px solid #383e65; border-radius: 5px;">
<image href="img/others/Map.png" height="100%" width="100%"></image>
<a onclick="passageMov(0);">
<rect id="cloverow" class="map" x="140" y="40" height="32" width="65">
<title>To Clove Row +8 min.</title>
</a>
<a onclick="passageMov(1);">
<rect id="blythecelyn" class="map" x="98" y="69" height="76" width="34">
<title>To Blythe Celyn +7 min.</title>
</a>
<a onclick="passageMov(2);">
<rect id="barlowgrove" class="map" x="98" y="168" height="83" width="34">
<title>To Barlow Grove +9 min.</title>
</a>
<a onclick="passageMov(3);">
<rect id="hollinsdrift" class="map" x="226" y="114" height="34" width="73">
<title>To Hollins Drift +6 min.</title>
</a>
<a onclick="passageMov(4);">
<rect id="pioneerlane" class="map" x="341" y="96" height="70" width="36">
<title>To Pioneer Lane +8 min.</title>
</a>
<a onclick="passageMov(5);">
<rect id="ashrout" class="map" x="110" y="286" height="34" width="56">
<title>To Ashrout +4 min.</title>
</a>
<a onclick="passageMov(6);">
<rect id="shoppingcenter" class="map" x="199" y="185" height="45" width="50">
<title>To Shopping Center +6 min.</title>
</a>
<a onclick="passageMov(7);">
<rect id="collobby" class="map" x="25" y="274" height="48" width="53">
<title>To Golden Leaf Central College +3 min.</title>
</a>
<a onclick="passageMov(8);">
<rect id="golbrowpath" class="map" x="341" y="203" height="70" width="36">
<title>To Golbrow Path +3 min.</title>
</a>
<image href="img/others/mapLoc.png" id="location" x="131" y="43" height="8%" width="8%"></img>
</svg>
<<done>>
<<set _mapCoord to {}>>
<<run _place = document.getElementById(passage());
_mapCoord.x = _place.getAttributeNS(null, "x");
_mapCoord.y = _place.getAttributeNS(null, "y");
_imgLoc = document.querySelector("#location");
_imgLoc.setAttributeNS(null, "x", _mapCoord.x);
_imgLoc.setAttributeNS(null, "y", _mapCoord.y);>>
<</done>>
<<script>>
/* Parameters: placeid=Is the id of the passage in mapPlace.
It compares if the current passage connects to the passage that the players want to move to.
*/
window.passageMov = function(placeid) {
var id = setup.mapStreets.findIndex(x => x.place === State.passage);
var connts = setup.mapStreets[id].connectedTo;
var moveTo = setup.mapStreets[placeid].place;
var time = setup.mapStreets[placeid].timeTo;
if (connts.includes(moveTo)) {
wikifier("timeattached", time);
Engine.play(moveTo);
}
}
<</script>>
<</if>>
<</widget>>
<<widget "bus">>
<<for _tl to 0; _tl lt setup.mapStreets.length; _tl++>>
<<if setup.mapStreets[_tl].place isnot $lastPass>>
<<set _name to setup.mapStreets[_tl].name>>
<img src="img/others/bus-icons/bus.png" title="Placeholder image, will change later." class="busIcons">
<<capture _tl>>
<<link `"To " + setup.mapStreets[_tl].name` setup.mapStreets[_tl].place>>
<<unset $lastPass>>
<<set $credits -= 5>>
<<timeattached 3>>
<</link>>@@.red; +3 min@@
<</capture>>
<br>
<</if>>
<</for>>
<</widget>><<if $version isnot updatedVersion>>
<<gameUpdate>>
<</if>>
<<daychange>>
<h2 class="passName"></h2>
<div class="passDiv"></div>
<<messager>><<map>>
<<if !$footerMessager>>
<br>
<br>
<div class="thindiv"></div>
<div>
<<footerMessager "tips">>
</div>
<</if>><<widget "passNameRep">>
<<done>>
<<replace .passName>>$args[0]<</replace>>
<<addclass .passDiv divisor>>
<</done>>
<</widget>>
<<widget "daychange">>
<<if $currDay is undefined>>
<<set $currDay to $time.getDate()>>
<</if>>
<<if $currDay isnot $time.getDate()>>
<<unset $limitedExerc>>
<<set $pdenyjob to []>>
<<unset $bathed>>
<<unset $currDay>>
<</if>>
<</widget>><div id="popUp" class="popUp">
<div id="popUpContent"></div>
<div id="popUpBottom" style="margin-top: 2.5%;"></div>
</div>
<<if $gamestarted is 1>>
<fieldset class="info">
<legend class="centered">Info</legend>
<div style="text-align: left;">
<<clotheschecker>><<exposedCheck>>
<br>
<br>
Your backpack has @@.blue;<<print $bps.upperbody[5].primary.maxitems - $backpack.length>>@@ available slots.
</div>
<br>
<div style="text-align: left;" id="StatContainer">
<div>
<img src="img/sidebar-icons/credits.png" class="sbIcons" title="Credits: Your credits, used to buy items." alt="Credits">: @@#credits.yellow; $credits@@
</div>
<div>
<img src="img/sidebar-icons/energy.png" class="sbIcons" title="Energy: You energy level, you can't do certain actions if you don't have enought energy" alt="Energy">: @@#energy.green; <<print $energy + "/" + $maxenergy>>@@
</div>
<div>
<<wearSexToy "sideB">>
<img src="img/sidebar-icons/arousal.png" class="sbIcons" title="Arousal: High levels of arousal may lower your learning profficiency." alt="arousal">: @@#arousal.lightred; <<print $arousal>>/100@@
</div>
</div>
<br>
<div id="timedate" style="text-align: left;"><<timedate>></div>
</fieldset>
<<set $popupbox to 0>>
<br>
<div class="divisor" style="margin-bottom: 5px;"></div>
<div>
<<button "GLODEX">>
<<replacer "codex">>
<</button>>
</div>
<div>
<<button "Inventory">>
<<replacer "inventory">>
<</button>>
</div>
<div class="divisor" style="margin-top: 5px;"></div>
<<else>>
<<button "Credits">>
<<replacer "credits">>
<</button>>
<</if>><<widget "creds">>
Powered By:
<br>
Busted Minds
@@
<br>
Image credits:
<div class="imgCred">
"Unsplash.com"
</div>
<</widget>>/% Powered By: Busted Minds %/
<<widget "replacer">>
<<if $args[0]>>
<<if $popupbox isnot $args[0]>>
<<set $popupbox to $args[0]>>
<<switch $args[0]>>
<<case "codex">>
<<replace #popUpContent>>
<<codexMain>>
<</replace>>
<<case "iteminfo">>
<<replace #popUpContent>>
<<iteminfo $args[1] $args[2]>>
<</replace>>
<<case "inventory">>
<<replace #popUpContent>>
<<inventory>>
<</replace>>
<<case "outfitInfo">>
<<replace #popUpContent>>
<<outfitPop $args[1]>>
<</replace>>
<<case "credits">>
<<replace #popUpContent>>
<<creds>>
<</replace>>
<</switch>>
<<replace #popUpBottom>>
<span class="med-button">
<<button "Close">>
<<removeclass "#popUp" "open">>
<<set $popupbox to 0>>
<</button>>
</span>
<</replace>>
<<addclass "#popUp" "open">>
<<else>>
<<set $popupbox to 0>>
<<removeclass "#popUp" "open">>
<</if>>
<</if>>
<</widget>>/% This is just the time system, nothing to see go on. Its very easy. %/
/% Credits to the internet, as I saw how to do this there and I don't remember where, sorry :(. (VSCode stop trying to make my sad faces like if they had an open mouth :()) %/
<<widget "addminutes">> /* Add minutes*/
<<run $time.setMinutes($time.getMinutes() + $args[0])>>
<</widget>>
<<widget "addhours">> /* Add hours */
<<run $time.setHours($time.getHours() + $args[0])>>
<</widget>>
<<widget "date">> /* Gives format to the date */
<<print String.format("{0} {1} {2}.",
setup.months[$time.getMonth()],
setup.days[$time.getDay()],
$time.getDate()
)>>
<</widget>>
<<widget "daystatechecker">>
<<if $time.getHours() eq 0>>
<<set _daystate to "Midnight">>
<<set _color to "midnightblue">>
<<elseif $time.getHours() lte 4>>
<<set _daystate to "Early Morning">>
<<set _color to "lightyellow">>
<<elseif $time.getHours() lte 11>>
<<set _daystate to "Morning">>
<<set _color to "gold">>
<<elseif $time.getHours() lte 17>>
<<set _daystate to "Afternoon">>
<<set _color to "darkyellow">>
<<elseif $time.getHours() lte 21>>
<<set _daystate to "Evening">>
<<set _color to "eveningblue">>
<<elseif $time.getHours() lte 24>>
<<set _daystate to "Late Evening">>
<<set _color to "lateveningblue">>
<</if>>
<</widget>>
<<widget "convert12h">> /* Converts to 12 hours */
<<if $time.getHours() eq 0>>
<<if $time.getMinutes() lt 10>>
<<print $time.getHours() + 12 + ":0" + $time.getMinutes()>>
<<else>>
<<print $time.getHours() + 12 + ":" + $time.getMinutes()>>
<</if>>
<<elseif $time.getHours() gt 12>>
<<if $time.getMinutes() lt 10>>
<<print $time.getHours() - 12 + ":0" + $time.getMinutes()>>
<<else>>
<<print $time.getHours() - 12 + ":" + $time.getMinutes()>>
<</if>>
<<else>>
<<if $time.getMinutes() lt 10>>
<<print $time.getHours() + ":0" + $time.getMinutes()>>
<<else>>
<<print $time.getHours() + ":" + $time.getMinutes()>>
<</if>>
<</if>>
<<if $time.getHours() gte 12>>
PM.
<<else>>
AM.
<</if>>
<</widget>>
<<widget "timedate">>
<<daystatechecker>>
<<set _imgIc to setup.icons.stateD[_daystate]>>
<<date>><span @class="_color"><<convert12h>> <<print _daystate>></span> <img @src="_imgIc" class="sbIcons" title="The state of the day." @alt="_daystate">
<</widget>>
<<widget "sleep">>
<<run $time.setMinutes(0)>>
<</widget>><<widget "qsGT">>
<<geneVariables>>
<<importantNPCs>>
<<jobsInfo>>
<<mapStreets>>
<<traitsInit>>
<<skillsIni>>
<<sexIni>>
<</widget>>
<<widget "geneVariables">>
<<set $gamestarted to 0>>
/%<<set $lactationenabler to 0>>%/ /* Enables lactation */
<<if $pressedlink is undefined>>
<<set $pressedlink to "upperbody">>
<</if>>
<<set $disablernggod to false>>
<<set $livingclean to false>>
<<set $kitchenclean to false>>
<<set $bedroomclean to false>>
<<set $bathroomclean to false>>
<<set $dadname to either("Joshua", "Daniel", "David", "Christopher", "Michael", "James", "Matthew", "Robert", "Andrew")>>
<<set $momname to either("Emily", "Megan", "Jessica", "Sarah", "Rebecca", "Laura", "Amber", "Victoria", "Katie")>>
<<set $spirealfOw to {
name: either("Donnel","Jaymie","Ado","Lance","Perry"),
surname: either("Bruns","Mcilroy","Osler","Stampfer","Gaskell")
}>>
<<set $backpack to []>>
<<set $selectedSexOpt to {"RightHand": 0, "LeftHand": 0}>>
<<set $masturCount to 0>>
<<set $aroused to false>>
<<set $memberships to []>>
<<set $pdenyjob to []>>
<<set $mastLimit to 2>>
<</widget>>
<<widget "importantNPCs">>
<<set $fjName to "Mona">>
<<set $fjSurname to "Hanazawa">>
<<set $bnName to either("Lucio", "Danny", "Alasteir", "Farrel")>>
<<set $bnSurname to either("Hillion", "Alence", "Kazis", "Jernigan")>>
<</widget>>
<<widget "mapStreets">>
<<set setup.mapStreets to [
{
id: 0,
place: "cloverow",
name: "Clove Row Complex",
icon: "img/others/bus-icons/cloverow.png",
timeTo: 8,
connectedTo: ["blythecelyn", "hollinsdrift"]
},
{
id: 1,
place: "blythecelyn",
name: "Blythe Celyn",
icon: "img/others/bus-icons/blythecelyn.png",
timeTo: 7,
connectedTo: ["barlowgrove", "cloverow"]
},
{
id: 2,
place: "barlowgrove",
name: "Barlow Grove",
icon: "img/others/bus-icons/barlowgrove.png",
timeTo: 9,
connectedTo: ["blythecelyn", "ashrout", "shoppingcenter"]
},
{
id: 3,
place: "hollinsdrift",
name: "Hollins Drift",
icon: "img/others/bus-icons/hollinsdrift.png",
timeTo: 6,
connectedTo: ["pioneerlane", "cloverow"]
},
{
id: 4,
place: "pioneerlane",
name: "Pioneer Lane",
icon: "img/others/bus-icons/pioneerlane.png",
timeTo: 8,
connectedTo: ["hollinsdrift", "golbrowpath"]
},
{
id: 5,
place: "ashrout",
name: "Ashrout",
icon: "img/others/bus-icons/ashrout.png",
timeTo: 4,
connectedTo: ["barlowgrove", "shoppingcenter", "collobby"]
},
{
id: 6,
place: "shoppingcenter",
name: "Shopping Center",
icon: "img/others/bus-icons/shoppingcenter.png",
timeTo: 6,
connectedTo: ["barlowgrove","ashrout"]
},
{
id: 7,
place: "collobby",
name: "Golden Leaf's College",
icon: "img/others/bus-icons/collobby.png",
timeTo: 3,
connectedTo: ["ashrout"]
},
{
id: 8,
place: "golbrowpath",
name: "Golbrow Path",
icon: "img/others/bus-icons/golbrowpath.png",
timeTo: 3,
connectedTo: ["pioneerlane"]
}
]>>
<</widget>>
<<widget "updateSave">>
<<set $version to updatedVersion>>
<</widget>><<widget "images">>
<<set setup.icons to {
"stateD": {
"Morning": "img/sidebar-icons/Morning.png",
"Early Morning": "img/sidebar-icons/Early_morning.png",
"Afternoon": "img/sidebar-icons/Afternoon.png",
"Evening": "img/sidebar-icons/Evening.png",
"Late Evening": "img/sidebar-icons/Late_evening.png",
"Midnight": "img/sidebar-icons/Midnight.png"
}
}>>
<</widget>><<clothesinit>>
<<kitchenini>>
<<images>>
<<jobsIni>>
<<qsGT>>
<<run State.prng.init()>>
/* Player body variables */
<<set $playervar to {
gender: null, /* Gender of the player; Male or female */
height: null, /* Height of the player */
bodyshape: null, /* Body shape of the player */
bodyshapestate: null,
/* Female variables */
hasvagina: null, /* Player has a vagina */
vagdepth: null, /* Player vaginal depth */
vagcomfortinsert: null, /* Player vaginal comfortable insertion */
vagwidthcomfortinsert: null,
breastsize: null, /* Size of player breast */
vagtightness: null,
cansquirt: null,
uterusdepth: null, /* Size of player uterus depth */
insidemaxcumlevel: null, /* How much cum the player can have inside in ml (pre-cuminflation variable) */
clitorissize: null, /* Size of player clitoris*/
nipplesize: null, /* Size of player nipples*/
nippletype: null, /* Type of player nipples */
/* Lactation */
breastmilklevel: null, /* How much breast milk the player currently has in ml. */
breastmilkmaxlevel: null, /* How much breast milk the player can have in ml.*/
breastmilkregen: null, /* How much breast milk the player regens */
/* Male variables */
haspenis: null, /* Player has a penis */
penissize: null, /* Size of player penis */
peniswidth: null,
ballssize: null, /* Size of player balls */
cummaxlevel: null, /* How much cum the player has accumulated in ml */
cumregen: null, /* How much cum the player regens */
/* General variables */
buttsize: null, /* Size of player butt */
anuscomfortinsert: null, /* Player anus comfortable insertion */
anusdepth: null,
anuswidthcomfortinsert: null,
throatdepth: null, /* Size of player throat depth */
throatcomfortinsert: null, /* Player throat comfortable insertion */
throatwidthcomfortinsert: null,
anustightness: null,
gagreflex: true,
sensibility: null,
virginity:{}
}>>
<<set $pTraits to []>>
<<set $pSkills to []>>
<<set $credits to 250>>
<<set $energy to 100>>
<<set $maxenergy to 100>>
<<set $arousal to 0>>
<<set $footerMessager to true>>
<<set $hobby to undefined>>
<<set $pName to "Name">>
<<set $pSurname to "Surname">>
<<set $pHairStyle to undefined>>
<<set $pHairColor to undefined>>
<<set $pBeardSize to undefined>>
<<set $pJob to false>>
<<set $time to new Date("2050-02-03T09:05:00")>>
<<set setup.days to [
"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
]>>
<<set setup.months to [
"Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
]>>~~By Busted Minds~~
V<<print updatedVersion>><img src="img/others/Logo.png" id="logo">
!<span class="green" style="text-align: center;"> Disclaimer!</span>
!!@@.red;You need to be 18 years old to play this game. (Or whatever age you need to be to be considered legally an "adult" in your country)
Every character, relationship, name, etc. is purely fictional and not related in any way to real life.
Every fetish in this game isn't endorsed by the Dev and can be disabled.
Play at your own risk, and more importantly have fun!.@@
Powered By:
Busted Minds
@@
Reminder: This game is in a very "green" state so every feature/thing in the game may/will change in the future. As of the current version(V0.2.4) there isn't a guarantee that your save will work with future updates since there isn't much content that needs a save compatibility system.
There aren't too many things to do in the game(for now), So if you play, it means that you want to give feedback or ideas. Or maybe you just want to test it, so welcome :).
<<button "Accept" "charcreation1">><</button>>
/* Nobody expects the Spanish Inquisition */