<<nobr>>
/* 8 when very corrupted, masturbation, she fights back */
/* 0 spying dressing, has no panties, happy */
/* 1 spying dressing, has panties on, grope */
/* 1 spying dressing, has panties on, pussy rub */
/* 2 spying dressing, has panties on, pussy rub */
/* 3 spying dressing, has panties on, pussy rub */
/* 4 spying dressing, panties tease */
/* 5 spying dressing, panties undress, tease */
/* 6 spying dressing, forced pulling panties */
/* 7 spying dressing, forced pulling panties */
<</nobr>>
<<set _hornyEvent = random(0, 3) === 0>>\
<<if $player.corruption > 50 && $player.lust > 70 && _hornyEvent === true>>
<img src="images/alice/pantiless/punishment/punishment_intro_1.webp">
<<alice>><<relationText "Brother" "Roommate">>, what are you..<</alice>>
<<player>>You're wearing panties! I told you no panties!<</player>>
<<alice>>But you know there is a re...<</alice>>
<<player>>That's enough, Alice. We have talked about it.<</player>>
<<linkreplace "Grab her">>
With one long move you remove her panties. One move later, her shirt is also gone.
<<alice>>Let go of me, you're hurting me!<</alice>>
<<player>>You think this hurts? You think this hurts? Wait until I'm done with you!<</player>>
<img src="images/alice/pantiless/punishment/punishment_0.webp">
<<alice>>Stop... please...<</alice>>
<<player>>You've been a naughty girl, Alice. And naughty girls need to be punished..<</player>>
<<set $alice.stats.morningPantyTest['corrupted_and_horny'].timesDone to $alice.stats.morningPantyTest['corrupted_and_horny'].timesDone + 1>>
<<statChange "player.corruption" +2>>
<<statChange "alice.lust" 0>>
<<set $time = $time + 1>>
[[Leave the room->Corridor]]
<</linkreplace>>
<<else>>\
<<set _event = random(0, 8)>>\
<<switch _event>>
<<case 0>>
<img src="images/alice/pantiless/punishment/dressing_0.webp">
<<player>>Oh, perfect timing. I was just thinking about how much I love it when you wear skirts without underwear<</player>>
<<alice>>You like that, do you? Well, I thought it might please you<</alice>>
<<player>>It does, very much so. You have no idea how often I think about what's beneath your clothes when you're walking around the house like this<</player>>
<<alice>>I can only imagine. But I'm happy to provide you with such delightful sights<</alice>>
<<set $alice.stats.morningPantyTest[0].timesDone to $alice.stats.morningPantyTest[0].timesDone + 1>>
<<statChange "player.lust" +20>>
<<statChange "alice.lust" +20>>
<<statChange "alice.corruption" +2>>
<<set $time = $time + 1>>
[[Leave the room->Corridor]]
<<case 1>>
<img src="images/alice/pantiless/punishment/punishment_intro_1.webp">
<<player>>Alice, what are you doing?<</player>>
Alice looks at you with a mischievous glint in her eye
<<alice>>Just waiting for you, <<relationText "brother" "roomie">><</alice>>
<<player>>You know the rule - no underwear allowed for you in the house<</player>>
<<alice>>I know. What are you planning to do about it?<</alice>>
<<player>>I have to punish you for breaking the rule. You remember, this means the no-touch part of our agreement is also out of place due to this<</player>>
<<alice>>Then do what you have to do<</alice>>
She smiles slightly while saying this
<<linkreplace "Grope her">>
<img src="images/alice/pantiless/punishment/panties_on_grope_0.webp">
<<player>>You're enjoying this, aren't you?<</player>>
<<alice>>(slightly moans)<</alice>>
<<set $alice.stats.morningPantyTest[1].timesDone to $alice.stats.morningPantyTest[1].timesDone + 1>>
<<statChange "alice.lust" +20>>
<<statChange "alice.corruption" +2>>
<<set $time = $time + 1>>
[[Leave the room->Corridor]]
<</linkreplace>>
<<case 2>>
<<player>>Alice, I caught you wearing underwear again. You know the rules - no underwear allowed in the house<</player>>
<<alice>>I'm sorry <<relationText "brother" "roomie">>... it just feels more comfortable sometimes...<</alice>>
<<player>> Comfort is not an excuse, Alice. And since you've broken the rule again, I will touch you in your intimate areas right now<</player>>
<<alice>>What? But that's so... intimate...<</alice>>
<<player>>Yes, it is. But if you want that we can live together as a <<relationText "family" "community">>, you'll do as I say. Now, slide your skirt down and let me in<</player>>
<<linkreplace "Touch her">>
<img src="images/alice/pantiless/punishment/panties_on_grope_1.webp">
<<alice>>This is so humiliating...<</alice>>
<<player>>Is it? Well, maybe next time you'll think twice before breaking the rules again..<</player>>
<<alice>><<relationText "Bro" "Roommate">> I am nearly...<</alice>>
<<set $alice.stats.morningPantyTest[2].timesDone to $alice.stats.morningPantyTest[2].timesDone + 1>>
<<statChange "alice.corruption" +2>>
<<statChange "alice.lust" 0>>
<<statChange "player.corruption" +2>>
<<set $time = $time + 1>>
[[Leave the room->Corridor]]
<</linkreplace>>
<<case 3>>
<img src="images/alice/pantiless/punishment/punishment_intro_0.webp">
<<player>>Alice, I caught you wearing underwear again. You know the rules - no underwear allowed in the house<</player>>
<<alice>>Oh, <<relationText "brother" "roommate">>... but this one is my favorite...<</alice>>
<<player>>Your favorite? Do you even have spend one thought how this situation affects me and my situation?<</player>>
<<alice>>I'm sorry, <<relationText "brother" "roommate">>... it's just that these panties make me so happy...<</alice>>
<<player>>Well lets see if this makes you happy as well. Come here now!<</player>>
<<linkreplace "Put your hands on her">>
<img src="images/alice/pantiless/punishment/panties_on_grope_2.webp">
<<alice>>mhmmmmmm...<</alice>>
<<set $alice.stats.morningPantyTest[3].timesDone to $alice.stats.morningPantyTest[3].timesDone + 1>>
<<statChange "alice.corruption" +2>>
<<statChange "player.corruption" +2>>
<<statChange "alice.lust" +20>>
<<set $time = $time + 1>>
[[Leave the room->Corridor]]
<</linkreplace>>
<<case 4>>
<<player>>Hey Alice! I am here to check if you have sticked to our agreement. Could you lift up your dress?<</player>>
Alice looks down, her face burning with embarrassment before slowly lifting the hem of her dress up to her hips, exposing her lower half to her <<relationText "brother" "roommate">>
<<player>>Alice I am really not happy what I am seeing. Do you know what I have to do now?<</player>>
<<alice>>Please <<relationText "bro" "roommate">>, it is just for today.. I don't want you to touch me...<</alice>>
<<player>>Well bad luck then...<</player>>
<img src="images/alice/pantiless/punishment/panties_on_grope_3.webp">
<<alice>>Please stop... I have to...<</alice>>
<<player>>What?<</player>>
<<alice>>Just a little mo...<</alice>>
<<set $alice.stats.morningPantyTest[4].timesDone to $alice.stats.morningPantyTest[4].timesDone + 1>>
<<statChange "player.corruption" +2>>
<<statChange "alice.lust" 0>>
<<set $time = $time + 1>>
[[Leave the room->Corridor]]
<<case 5>>
<<alice>>Ah, welcome home, <<relationText "little brother" "roomie">>. I was just thinking about you..<</alice>>
<<player>>What are you doing in such a provocative position?<</player>>
<<alice>>Just relaxing. Why don't you come join me and help me unwind?<</alice>>
<img src="images/alice/pantiless/punishment/panties_tease_0.webp">
<<player>>When you remove these, I am fine<</player>>
<<alice>>Oh you don't want to join me today? This makes me sad..<</alice>>
<<set $alice.stats.morningPantyTest[5].timesDone to $alice.stats.morningPantyTest[5].timesDone + 1>>
<<statChange "alice.corruption" +2>>
<<statChange "alice.lust" +20>>
<<statChange "player.lust" +10>>
<<set $time = $time + 1>>
[[Leave the room->Corridor]]
<<case 6>>
<<player>>Alice, I need you to undress for me.<</player>>
<<alice>>Hmm? What for?<</alice>>
<<player>>Morning panty check. Strip off completely and stand in front of me so I can inspect that you are not wearing panties.<</player>>
<<alice>>Oh... okay...<</alice>>
<<linkreplace "Lean back and enjoy">>
<img src="images/alice/pantiless/punishment/panties_undress_0.webp">
<<player>>Alice you are really showing off..<</player>>
<<set $alice.stats.morningPantyTest[6].timesDone to $alice.stats.morningPantyTest[6].timesDone + 1>>
<<statChange "alice.corruption" +2>>
<<statChange "player.lust" +30>>
<<statChange "alice.lust" +20>>
<<set $time = $time + 1>>
[[Leave the room->Corridor]]
<</linkreplace>>
<<case 7>>
<<player>>Alice, I need you to undress for me<</player>>
<<alice>>Hmm? What for?<</alice>>
<<player>>Morning panty check. Strip off completely and stand in front of me so I can inspect that you are not wearing panties<</player>>
<<alice>>Oh... okay...<</alice>>
<<linkreplace "Lean back and enjoy">>
<img src="images/alice/pantiless/punishment/panties_undress_0.webp">
<<player>>Alice you are really showing off..<</player>>
<<set $alice.stats.morningPantyTest[7].timesDone to $alice.stats.morningPantyTest[7].timesDone + 1>>
<<statChange "alice.corruption" +2>>
<<statChange "player.lust" +30>>
<<statChange "alice.lust" +20>>
<<set $time = $time + 1>>
[[Leave the room->Corridor]]
<</linkreplace>>
<<case 8>>
<<player>>Alice, time for...<</player>>
<<alice>>Oh no, not again...<</alice>>
<<player>>Yes, again. And this time, I'm going to do it a little differently.<</player>>
<<alice>>What do you mean?<</alice>>
<<linkreplace "Undress her">>
<<player>>What's this? You're not wearing any underwear at all!<</player>>
<<alice>>I... I forgot...<</alice>>
<<player>>Forgot?! How could you forget something so simple?!<</player>>
You want to make her to remember this morning a little more, therefore you are putting you hands on her a little harder today by spreading her cheeks and groping firmly
<img src="images/alice/pantiless/punishment/pulling_panties_1.webp">
<<alice>>P-please...<</alice>>
<<set $alice.stats.morningPantyTest[8].timesDone to $alice.stats.morningPantyTest[8].timesDone + 1>>
<<statChange "player.corruption" +2>>
<<statChange "player.lust" +20>>
<<statChange "emily.lust" +20>>
<<set $time = $time + 1>>
[[Leave the room->Corridor]]
<</linkreplace>>
<<case 9>>
<</switch>>
<</if>><<set _event = random(0, 1)>>
<<switch _event>>
<<case 0>>
<img src="images/alice/tension_relief/reading.webp" class="img-ambient">
Emily is reading on the couch. Alice enters the room
<<alice>>Hey, is everything okay? You look like you're in pain or something...<</alice>>
<<player>>I just need some "help", <<relationText "sis" "Alice">>, if you know what I mean. Can you help me out with that?<</player>>
<<alice>>Okay... Let's go to my bedroom then.<</alice>>
<<linkreplace "Follow her">>
Alice smiles and takes off her shirt
<<alice>>Figured this will speed up the process.<</alice>>
<<player>>Definitely..<</player>>
Alice kneels down between your legs, looking up at you with a mix of reluctance and desire as she starts to unbutton your pants
<<alice>>Can you hold my hair back for me, please? It's kind of in the way right now.<</alice>>
<<linkreplace "Grab her hair">>
<img src="images/alice/tension_relief/bj_0.webp">
<<player>>There, is that better?<</player>>
She nods, then takes your hard cock into her mouth and starts to bob her head up and down, using her tongue to swirl around the sensitive head
<<player>>Alice I am about to...<</player>>
<<alice>>Give it to me, splatter it on your <<relationText "little sisters" "little roommates">>face!<</alice>>
<img src="images/alice/tension_relief/bj_cum_0.webp">
<<set $alice.stats.tension_relief['bj_1'].timesDone to $alice.stats.tension_relief['bj_1'].timesDone + 1>>
<<statChange "alice.lust" +10>>
<<statChange "player.corruption" +2>>
<<statChange "player.lust" 0>>
<<set $time = $time + 1>>
[[Leave->Corridor]]
<</linkreplace>>
<</linkreplace>>
<<case 1>>
You see Alice sitting on the sofa. She is sitting very restless as she is really uncomfortable.
<<player>>Hey, what's up?<</player>>
<<alice>>I never thought I would ask you something like this.. But me helping you in the last days made me a little... exited..<</alice>>
<<player>>And what do you want from me?<</player>>
<<alice>>I was wondering if maybe you could help me with it... I don't know how to relieve it on my own...<</alice>>
<<player>><<relationText "Sis" "Alice">>, I don't think that's a good idea. Emily could come here any moment and you wanted to expose her less to this lewd stuff..<</player>>
<<alice>>I know, but please... Just for this once. I promise I won't tell anyone and it'll only take a few minutes.<</alice>>
<<player>>Alice, we can't just start doing stuff like this willy-nilly...<</player>>
<<alice>>Please, <<relationText "bro" "roommate">>... I really need this. And if you help me, then I'll help you too, okay? It will be like a secret thing between us.<</alice>>
/* TODO in the future there could be a reasoning why brother is only in shorts */
<<linkreplace "Agree to help her">>
<img src="images/alice/tension_relief/hj_0.webp">
<<set $alice.stats.tension_relief['bj_1'].timesDone to $alice.stats.tension_relief['bj_1'].timesDone + 1>>
<<statChange "alice.lust" 0>>
<<statChange "alice.corruption" 3>>
<<statChange "player.lust" 0>>
<<set $time = $time + 1>>
[[Leave->Corridor]]
<</linkreplace>>
<</switch>><<set _playerVeryHorny = $player.lust >= 90>>\
/* rough blowjob with undressing */\
<<if _playerVeryHorny && random(0, 1)>>
<<player>>(Man I really need relief now. Lets try out how she reacts to me if I am more pushy than usual)<</player>>
<<player>>Alice... I need you now. I've been thinking about this all day and I can't take it anymore<</player>>
<<alice>>What do you mean? You know we can't do anything while Emily is in the room next to us. She will hear us<</alice>>
<<player>>Emily's not here right now and besides, I don't care. I need release and I need it now. So get over here and give me head, NOW!<</player>>
<<alice>>Alright alright, I am coming<</alice>>
You Alice's arms and pulls her towards you, forcing her to sit on all 4 in front of you
<<player>>Now get to work, damn it! Suck my cock like your life depends on it!<</player>>
<<linkreplace "Let her suck your dick">>
<img src="images/alice/tension_relief/bj_forced.webp">
Alice reluctantly wraps her mouth around your hard cock, starting to bob her head up and down as she tries to pleasure you.
<<player>>This is taking too long. I need more<</player>>
<<linkreplace "Undress her">>
<img src="images/alice/tension_relief/bj_undress_0.webp">
<<player>>Nice. Now I can see your perky titties bounce<</player>>
<<alice>><<relationText "Bro" "Roommate">> I really don't like how you speak with me right now..<</alice>>
<<player>>I dont care..<</player>>
<<player>>But you have such perfect tits. I'm so glad I could finally get a good look at them...<</player>>
Few moments later..
<<player>>Alice I am near. Get on your knees again!<</player>>
<img src="images/alice/tension_relief/bj_cum_2.webp">
<<statChange "alice.lust" +10>>
<<statChange "alice.corruption" +2>>
<<statChange "player.lust" 0>>
<<set $alice.stats.tension_relief['rough_bj'].timesDone to $alice.stats.tension_relief['rough_bj'].timesDone + 1>>
<<set $time = $time + 1>>
[[Finish->Alice Bedroom]]
<</linkreplace>>
<</linkreplace>>
<<else>>\
<<set _event = random(0, 2)>>\
<<switch _event>>
/* default bj */
<<case 0>>
<<alice>><<relationText "Brother" "Roommate">>? Is everything alright? You seem quite... tense.<</alice>>
<<player>>Ah, y-yeah. I've just been working hard all day, that's all. Just need to relieve some stress.<</player>>
<<alice>>I see. Well, maybe I can help you with that...<</alice>>
<<alice>>Remember our agreement?<</alice>>
<<player>>Alright... just be gentle, okay?<</player>>
<<linkreplace "Alice reaches out to your pants">>
<img src="images/alice/tension_relief/bj_tease_0.webp">
<<alice>>Look what we have here...<</alice>>
Alice leans forward, taking the head of your cock into her mouth. Her tongue swirls around it as she starts to bob her head up and down, sucking you deeper with each pass.
<img src="images/alice/tension_relief/bj_1.webp">
<<player>>Alice... oh god... you're so good at this...<</player>>
<<linkreplace "You are about to cum">>
<<player>>Alice I am about top cum..<</player>>
<<alice>>Let it go little <<relationText "bro" "roommate">><</alice>>
<img src="images/alice/tension_relief/bj_cum_1.webp">
<<player>>Oh god, thanks Alice. Thats what I needed right now<</player>>
<<alice>>Happy to help. And remember, no lewd things with Emily!<</alice>>
<<statChange "alice.lust" +10>>
<<statChange "alice.corruption" +2>>
<<statChange "player.lust" 0>>
<<set $alice.stats.tension_relief['bj_0'].timesDone to $alice.stats.tension_relief['bj_0'].timesDone + 1>>
<<set $time = $time + 1>>
[[Finish->Alice Bedroom]]
<</linkreplace>>
<</linkreplace>>
/* boobjob */
<<case 1>>
Alice is lying with only her underwear on her bed and doing something on her laptop.
<img src="images/alice/tension_relief/boobjob_0.webp">
<<player>>Hey Alice, I need your help again.<</player>>
<<alice>>Are you having a hard-on again?<</alice>>
<<player>>unfortunately yes..<</player>>
<<alice>>Alright, lets try something new. I was reading some 4chan thread and came across something they called 'boobjob'. Have you ever heard of it?<</alice>>
<<player>>A... boobjob? I think so. But cannot imagine how it feels.<</player>>
<<alice>>Me neither. But It sounded like it could help in your situation..<</alice>>
<<linkreplace "Alice removes her shirt">>
<<alice>>Okay let me lay down on my back. And now get rid of your pants and sit on my stomach.<</alice>>
<<player>>Like this?<</player>>
<<alice>>Yeah I guess this works.<</alice>>
She starts squeezing your cock between her beatiful round boobs.
<<player>>Your tits are absolutely perfect, Alice. So soft and succulent... I could worship them all day<</player>>
<<alice>>Stop it, you're making me blush! But okay, keep going if it turns you on that much<</alice>>
<<player>>You have no idea how sexy this is... looking up at you with my cock right here between your tits...<</player>>
You start to feel more close to your climax.
<<linkreplace "Push forward and cum on her tongue">>
<img src="images/alice/tension_relief/boobjob_1.webp">
<<player>>Oh Alice. This was unbelievable!<</player>>
<<alice>>Thanks. I quite liked it as well<</alice>>
<<statChange "alice.lust" +10>>
<<statChange "alice.corruption" +2>>
<<statChange "player.lust" 0>>
<<set $alice.stats.tension_relief['boobjob'].timesDone to $alice.stats.tension_relief['boobjob'].timesDone + 1>>
<<set $time = $time + 1>>
[[Finish->Alice Bedroom]]
<</linkreplace>>
<</linkreplace>>
/* cum on jeans */
<<case 2>>
<<player>>Hey, <<relationText "sis" "Alice">>... I think my lust level has gotten pretty high today. Remember our agreement?<</player>>
<<alice>>Yeah, I remember... But can't it wait until later? I'm not really in the mood right now<</alice>>
<<player>>But we agreed that if one of us is horny, we have to fulfill each other's needs. Otherwise, I cant guarantee that I resist Emily...<</player>>
<<alice>>Well, okay. How about you jerk off while I'm laying down on the bed? I have to wash the jeans anyway today.<</alice>>
<<player>>You mean you're offering to let me cum on your ass?<</player>>
<<alice>>eah, that's exactly what I mean. Just make sure to aim for my butt crack and not my face or anything like that.<</alice>>
<<player>>Damn, <<relationText "sis" "Alice">>... You really know how to satisfy a guy's desires, don't you? Alright, let's give it a try then<</player>>
<<linkreplace "Jump on her">>
You start stroking your dick in long motions.
<<alice>>You done already?<</alice>>
<<player>>Almost..<</player>>
<img src="images/alice/tension_relief/cum_on_clothes.webp">
<<set $alice.stats.tension_relief['cum_on_clothes'].timesDone to $alice.stats.tension_relief['cum_on_clothes'].timesDone + 1>>
<<statChange "alice.lust" +10>>
<<statChange "player.corruption" +2>>
<<statChange "player.lust" 0>>
<<set $time = $time + 1>>
[[Finish->Alice Bedroom]]
<</linkreplace>>
<</switch>>
<</if>><<set _aliceHorny = $alice.lust >= 50>>\
<<set _event to random(0, 2)>>\
<<if _aliceHorny && random(0, 1) === 0>>
<<player>>Alice... Emily and I... we've been doing some things together...<</player>>
<<alice>>Oh? Pray tell, what sort of "things" have you two been up to?<</alice>>
<<player>>Well, it's just... sometimes she'll let me touch her in places that little <<relationText "sisters" "roommates">> shouldn't be touched...<</player>>
<<alice>>And how does that make you feel, hmm? Touching your little <<relationText "sister" "roommate">> like that?<</alice>>
<<player>>(It seems like Alice is really horny as well right now, otherwise she would never talk like that. Lets see how far I can push her...)<</player>>
<<linkreplace "It makes me feel... really fucking horny. Like I can't concentrate on anything else">>
<<alice>>Oh, I see. Well, maybe we should give you something else to think about then...<</alice>>
<img src="images/alice/pantiless/pantiless_horny.webp" />
<<alice>>Like what you see?<</alice>>
<<player>>I can see how wet you are...<</player>>
<<alice>>Good. Then you can go now in your room and masturbate to this image.. <</alice>>
<<set $alice.stats.pantilessTest['horny'].timesDone to $alice.stats.pantilessTest['horny'].timesDone + 1>>
<<statChange "player.corruption" +2>>
<<statChange "player.lust" +40>>
<<set $time = $time + 1>>
[[Go to your room->Your room]]
<</linkreplace>>
<<else>>
<<switch _event>>
<<case 0>>
<<player>>Hey Alice, just wanted to check if our "agreement" is still in place? Can I see it?<</player>>
<<alice>>I stick to my work.<</alice>>
<img src="images/alice/pantiless/pantiless_0.webp" />
<<set $alice.stats.pantilessTest[0].timesDone to $alice.stats.pantilessTest[0].timesDone + 1>>
<<statChange "player.lust" +30>>
<<statChange "player.corruption" +2>>
<<statChange "alice.corruption" +2>>
<<set $time = $time + 1>>
[[Leave->Corridor]]
<<case 1>>
<<player>>Alice can I..<</player>>
<<alice>>I already know what you are up to. I don't have much time... You get one quick glance<</alice>>
<img src="images/alice/pantiless/pantiless_1.webp" />
<<set $alice.stats.pantilessTest[1].timesDone to $alice.stats.pantilessTest[1].timesDone + 1>>
<<statChange "player.lust" +30>>
<<statChange "player.corruption" +2>>
<<statChange "alice.corruption" +2>>
<<set $time = $time + 1>>
[[Leave->Corridor]]
<<case 2>>
<<player>>Hey Alice, I have an urgent need again..<</player>>
<<alice>>I can see that... Lets go to my room<</alice>>
<<linkreplace "Go to her room">>
<<alice>>Take a seat, I feel like a little show is needed today..<</alice>>
<img src="images/alice/pantiless/pantiless_2.webp" />
<<player>>Oh Alice, you can't imagine how much that helps me<</player>>
<<set $alice.stats.pantilessTest[2].timesDone to $alice.stats.pantilessTest[2].timesDone + 1>>
<<statChange "player.lust" +30>>
<<statChange "player.corruption" +2>>
<<statChange "alice.corruption" +2>>
<<set $time = $time + 1>>
[[Leave->Corridor]]
<</linkreplace>>
<</switch>>
<</if>><<set _hornyEventChance = random(0, 1)>>
<<set _event to random(0, 3)>>
<<alice>>Remember what we agreed on. Whenever you need to see a naked body... I'll be the one providing it<</alice>>
<<player>>Thank you Alice, I will try to behave myself<</player>>
<<linkreplace "Sit down and watch the show">>
<<switch _event>>
<<case 0>>
Alice wears a red-striped shirt and joggers. She starts pulling her shirt up slowly, revealing her flat belly
<img src="images/alice/visual_stimulation/undressing_0.webp" class="event-image"/>
<<set $alice.stats.visualStimulation[0].timesDone to $alice.stats.visualStimulation[0].timesDone + 1>>
<<statChange "player.lust" +30>>
<<statChange "alice.lust" +10>>
<<statChange "player.corruption" +2>>
<<statChange "alice.corruption" +2>>
<<set $time = $time + 1>>
[[Leave->Corridor]]
<<case 1>>
<<player>>(thinking: Is she not wearing a bra? I can clearly see her nipples through her shirt)<</player>>
<img src="images/alice/visual_stimulation/undressing_1.webp" />
<<alice>>Are you done looking? I have to take care of some stuff, so you cant watch all day..<</alice>>
<<set $alice.stats.visualStimulation[1].timesDone to $alice.stats.visualStimulation[1].timesDone + 1>>
<<statChange "player.lust" +30>>
<<statChange "alice.lust" +10>>
<<statChange "player.corruption" +2>>
<<statChange "alice.corruption" +2>>
<<set $time = $time + 1>>
[[Leave->Corridor]]
<<case 2>>
Alice is removing her joggers, revealing her black panties.
<<player>>What did I do this time that I am allowed to see more?<</player>>
<<alice>>Just shut up and take it..<</alice>>
<img src="images/alice/visual_stimulation/undressing_2.webp" />
<<set $alice.stats.visualStimulation[2].timesDone to $alice.stats.visualStimulation[2].timesDone + 1>>
<<statChange "player.lust" +30>>
<<statChange "alice.lust" +10>>
<<statChange "player.corruption" +2>>
<<statChange "alice.corruption" +2>>
<<set $time = $time + 1>>
[[Leave->Corridor]]
<<case 3>>
<<alice>>Today is your lucky day. I think I know how we can reduce your urges to be with Emily like this<</alice>>
<<linkreplace "Alice takes a deep breath">>
<<alice>>When you see more of me, maybe your desire for Emily will diminish<</alice>>
<img src="images/alice/visual_stimulation/undressing_3.webp" />
<<set $alice.stats.visualStimulation[3].timesDone to $alice.stats.visualStimulation[0].timesDone + 3>>
<<statChange "player.lust" +30>>
<<statChange "player.corruption" +2>>
<<statChange "alice.corruption" +2>>
<<set $time = $time + 1>>
[[Leave->Corridor]]
<</linkreplace>>
<</switch>>
<</linkreplace>><<player>>I thought we had an understanding about not wearing panties at home.<</player>>
<<alice>>Oh, yeah... sorry about that. I actually put them on for a reason this time.<</alice>>
<<player>>And what might that be?<</player>>
<<alice>>I am going to work in an hour, I need to wear panties there.<</alice>>
<<player>>But you are only going there in an hour. We had an agreement Alice!<</player>>
<<alice>>I know and I can understand that you are angry..<</alice>>
<<linkreplace "Try to push her more">>
<<player>>(Lets see how far I can go. After the last days I think she gathered some liking in our encounters.)<</player>>
<<player>>No you do not understand. I think I have to punish you.<</player>>
<<alice>>WHAT???<</alice>>
<<linkreplace "Pull down her panties">>
<img src="images/alice/pantiless/punishment/pulling_panties_0.webp" />
<<alice>>Stop it! We did say no touching!<</alice>>
<<player>>We did also say no panties, but I can clearly see them now!<</player>>
<<alice>>I promise I will not wear them anymore! But please leave me alone!<</alice>>
<<player>>I will do for now. But keep this in mind, If I see you again in panties, I might have to do more!<</player>>
<<alice>>Will do soo... Have to leave now..<</alice>>
Alice leaves the room quickly.
<<player>>(Hm it seems the original reason for our agreement is not important anymore. Maybe this whole thing is a game for her aswell? Lets see)<</player>>
@@You should try to check if Alice is sticking to your agreement now when she dresses in the morning@@
<<set $alice.story to 4>>
[[Go back->Corridor]]
<</linkreplace>>
<</linkreplace>><img src="images/rooms/masturbating/masturbating_0.webp">
<<statChange "player.lust" 0>>
<<player>>Alice?? What are you doing here. Can't you see I am in the middle of something?<</player>>
<<alice>>Just wanted to see if everything is okay<</alice>>
<<player>>I'm fine <<relationText "sis" "Alice">>, just needed a little release, thats all<</player>>
<<alice>>Alex, we need to talk about this<</alice>>
<<player>>What's there to talk about? I'm an adult, Alice. I can take care of myself however I see fit<</player>>
<<alice>>But it's not just about you anymore, you have a <<relationText "younger sister" "young roommate">> living with us now, and she doesn't need to be exposed to this sort of thing!<</alice>>
<<linkreplace "Try to argue with her">>
<<player>>You think I don't know that? But let's be real here - I'm always going to struggle with these urges as long as we live here together. And since Emily is going to be around for a while, I need some sort of outlet for my desires.<</player>>
<<alice>>Okay, Let's say I would agree to give you more visual stimulation. But there has to be boundaries, Alex. We can't just let Emily see everything.<</alice>>
<<linkreplace "Ask her if she has an idea what could help you">>
<<player>>Do yu have an idea what could help me?<</player>>
<<alice>>I could stop wearing panties during the day in the house. When you catch a glance I would be fine with that. But no touching!<</alice>>
<<player>>And that way Emily would not notice a thing! You are a genius Alice<</player>>
@@From now on Alice will stop wearing panties in the house@@
@@She offers you to see more in certain situations@@
@@If you find her in a situation wearing panties despite, you might have a new option to react@@
<<linkreplace "Can you maybe start with it right now?">>
<<alice>>Fine. But don't you dare to put a hand on you again!<</alice>>
<img src="images/alice/pantiless/convincing.webp" />
<<alice>>Happy now?<</alice>>
<<player>>Yes..<</player>>
<<statChange "player.lust" +30>>
<<statChange "player.corruption" +2>>
<<statChange "alice.corruption" +2>>
<<set $alice.story to 3>>
<<set $time = $time + 1>>
[[Leave the room->Corridor]]
<</linkreplace>>
<</linkreplace>>
<</linkreplace>><img src="images/emily/dressing_detected_by_alice.webp" />
You try to sneak a peek at Alice while she is changing. She is pulling up a very short pair of yoga pants
While watching her, out of nowhere Alice storms into your room.
<<alice>>What the hell are you doing, spying on our <<relationText "little sister" "roommate">> like some kind of pervert?<</alice>>
<<player>>Oh, Alice, I was just... making sure she's okay. We're alone now and all<</player>>
<<alice>>Alone? We've been alone for weeks! And just because we don't have parents doesn't mean you can act like some kind of degenerate!<</alice>>
Emily, who abruptly covered herself in a blanket, looked up at the argument with wide eyes. She hadn't realized you were spying on her
<<emily>>Can you two please leave? I am half naked here<</emily>>
<<linkreplace "Go to the corridor">>
You try to relax the situation a bit and approach Alice calmly.
<<player>>Alice, please... I'm not trying to be a creep. The truth is, I need this kind of simple pleasure in my life right now. I'm feeling really stressed out and overwhelmed, and watching Emily just helps me relax<</player>>
<<alice>>You're stressed out? Is that what you get from being with us - your <<relationText "family" "friends">>? We've been through so much together already!<</alice>>
<<player>>I know we have, Alice... but this is different. I need something more intimate, something that satisfies my base urges as a man<</player>>
<<alice>>You mean... sex?<</alice>>
<<linkreplace "Think about an excuse">>
<<player>>No No, not that much. But something which pleasures me, one way or the other. You see, today looking already helped. I can focus again<</player>>
<<alice>>And why you have to do it here, with us?<</alice>>
<<player>>You know, I have these urges since a while. But now, since we only have ourselves I do not want to find someone outside which could satisfy my needs and leave you two alone. I am sure you understand that<</player>>
<<player>>This only leaves two options: Emily and you<</player>>
<<alice>>So you've been spying on our <<relationText "little sister" "roommate">> just so you can have a convenient outlet for your desires?<</alice>>
<<player>>Yeah... I guess so. But please, Alice, don't be too hard on me. I love all of us as a family, and this is the only way I know how to cope right now<</player>>
Alice seems to think about it. After a long moment of silence, she finally speaks.
<<alice>>And if I... Would help you with this...<</alice>>
<<alice>>Would you leave Emily alone?<</alice>>
<<player>>Of course!<</player>>
<<player>>(Of course not!)<</player>>
<<alice>>Alright. Give me a day to think about it and meet me tomorrow evening in my room. Then we can talk about it<</alice>>
<<player>>Thank you, Alice. I appreciate it!<</player>>
You are surprised of yourself that this weird excuse worked. But you are also happy that Alice is willing to help you with your "problem"
<<set $alice.story to 1>>\
<<set $alice.stats.story[1].happenedDay to $day>>\
<<set $time to $time + 1>>\
[[Go back->Corridor]]
<</linkreplace>>
<</linkreplace>><<set _aliceIsConvinced = window.aliceIsConvinced($alice.stats.caughtWithEmily, 0)>>
<<set _aliceConvincedEventsMissing = window.aliceConvincedEventsMissing($alice.stats.caughtWithEmily, 0)>>
<<if _aliceIsConvinced === true>>
<<alice>>Fine, I agree to your damn proposal<</alice>>
<<player>>Really?<</player>>
<<alice>>Yes, really. But there are going to be rules<</alice>>
<<player>>Anything, Alice. What do you want?<</player>>
<<alice>>From now on, whenever you have the need to see a naked body... I'll be the one providing it<</alice>>
<<alice>>There will be no touching or any other physical contact. And don't you date to take your dick out in front of me and rub it<</alice>>
<<player>>I can live with that, As long as you're comfortable with it.<</player>>
@@Alice is now willing to show off her body to you in certain situations@@
<<set $alice.story to 2>>
[[Leave the room->Corridor]]
<<else>>
<<player>>I know I pushed you hard, but please... just thing about my proposal. Wouldn't this be better for all of us? No more sneaking around, no more guilt or shame...<</player>>
<<alice>>I can still change your mind, Alex. You don't have to do these things with Emily. There are other ways we can find contentment without you corrupting Emily<</alice>>
<<player>>Alice, I love you, But this isn't about changing my mind. Its about finding a solution for my problem within the constrains we are facing as a <<relationText "family" "friend group">> right now<</player>>
<<alice>>I can't agree to this. At least, not yet. I need more time to think about it, and maybe even talk to Emily about what we're considering<</alice>>
<<player>>Take all the time you need, but remember... My problems are not going away out of nowhere. I cannot guarantee what will happen in the next days<</player>>
<<alice>>I know...<</alice>>
@@You have to convince Alice more! Try to do lewd things with Emily and get caught at least _aliceConvincedEventsMissing times more!@@
[[Go back->Alice Bedroom]]
<</if>>/* when level 0, introduction to job */
<<if $alice.job.level === 0>>
<<player>>Hey Alice, in the morning you said you may be able to organize some metal from work<</player>>
<<alice>>Right, we have all kinds of crap in the back alley of the store. I might even be able to find some other useful stuff there.<</alice>>
<<player>>Cool. We could really use some metal.<</player>>
<<linkreplace "[About giving Alice a job]">>
@@During your time in the house, you can send your <<relationText "sister" "roommate">> to do specific jobs. For now, that is limited to gathering materials.@@
@@You can choose the material she should gather. At the end of each day, Alice will find a random amount of materials. Increasing her job level will increase this chance.@@
@@To add the materials to your inventory, you have to collect it from her. In the future there might be special events depending on what she found@@
<<set $alice.job.level to 1>>
<<aliceJob>>
<<linkreplace "[Confirm selection]">>
<<player>>Alright Alice, thank you a lot!<</player>>
<<alice>>No problem <<relationText "bro" "roommate">>! I want to live in a beautiful home as well!<</alice>>
[[Go back->Corridor]]
<</linkreplace>>
<</linkreplace>>
<<else>>\
<<linkreplace "Change job">>
<<aliceJob>>
<</linkreplace>>
<<set _collectedAmount = Object.values($alice.job.collected).reduce((a, b) => a + b, 0)>>\
<<if $alice.job.current !== 'none' && _collectedAmount > 0>>
<<linkreplace "Ask Alice for the materials she found">>
<<player>>Hey Alice, did you find some materials for the house?<</player>>
<<alice>>Yes, I did. I found some <<print $alice.job.current>><</alice>>
<<linkreplace "Take the <<print $alice.job.current>>">>
<<set $inventory[$alice.job.current] += _collectedAmount>>
<<set $alice.job.collected[$alice.job.current] = 0>>
<<set $alice.job.workingSince to 0>>
<<set $time = $time + 1>>
<</linkreplace>>
<</linkreplace>>
<<elseif _collectedAmount === 0>>\
<<linkreplace "Ask Alice for the materials she found">>
<<player>>Hey Alice, did you find some materials for the house?<</player>>
<<alice>>No, I didn't find anything yet. I will try again tomorrow.<</alice>>
<</linkreplace>>
<</if>>\
<<return Leave>>
<</if>><<player>>Hey, <<relationText "sis" "Alice">>, about yesterday..<</player>>
<<alice>>Do you have anything so say about that?<</alice>>
<<player>>I spoke with Emily. She told me that she got a little too excited and things escalated faster than she intended<</player>>
<<alice>>Excuses...<</alice>>
<<alice>>Look, I know you have urges and all that, but can't you control yourself for once? It's not fair to Emily or me<</alice>>
<<player>>I'm sorry, Alice. But sometimes my needs are just too strong to ignore<</player>>
<<player>>Emily tried to help, but we got interrupted before things could go any further. If it makes you feel better, I'll make sure to be more careful in the future<</player>>
<<alice>>And how exactly do you plan on doing that?<</alice>>
<<player>>I guess if I try hard enough, it will work<</player>>
<<alice>>After all these occasions I lost trust in your abilities to control yourself...<</alice>>
<<alice>>Well...if things get too out of hand again, maybe we could work something out...<</alice>>
<<linkreplace "Ask her what she means">>
<<player>>What kind of 'something' are you talking about?<</player>>
<<alice>>If you promise not to bother Emily, I could help you relieve the tension<</alice>>
<<player>>Thank you, Alice. I promise I won't let you down<</player>>
<<alice>>Remember, I am only doing this to protect Emily<</alice>>
<<player>>(...sure you do...)<</player>>
<<alice>>But this is not a 'getting time every time you want card'. Only when you need it!<</alice>>
@@Alice is now willing to help you with your urges when you are very horny (Lust > 60%)@@
<<set $alice.story to 6>>
[[Leave->Corridor]]
<</linkreplace>>Your<<relationText " sister" "">> Alice hands you a small bag, her eyes shining with a mix of excitement and trepidation.
<img src="images/events/intro/old_house.webp" class="img-ambient">
<<alice>>This is everything we have<</alice>>
\
Alice is glancing back at her younger <<relationText "sister" "roommate">> Emily, who lags behind, her gaze fixed on the old house that looms before them.
<<linkreplace "Enter">>
As you step across the threshold of the old house, your eyes are immediately drawn to your older <<relationText "sister" "roommate">> Alice standing just inside the doorway.
She's peeling off her jacket, revealing a cropped tank top that hugs her athletic physique perfectly.
<img src="images/events/intro/alice_crop_top.webp" style="min-width: unset" class="img-ambient">
You can't help but let your gaze wander over her toned abs and lean waist, taking in the way the fabric stretches taut across her chest.
<<alice>>Hey, what are you looking at, <<relationText "bro" "boy">>?<</alice>>
<<player>>Nothing, just... admiring the view<</player>>
<<alice>>Well, make sure you appreciate it now because once we start working on this house, you might not get a chance to see me in anything other than overalls and t-shirts<</alice>>
You try to laugh it off, but the image of your <<relationText "sister" "roommate">> in those overalls is already seared into your mind.\
<br>
There's something undeniably sexy about seeing a woman comfortable in her own skin, especially when that woman just so happens to be your older <<relationText "sister" "roommate">>.
<br>
As you follow Alice deeper into the house, you can't help but sneak glances at her, trying to commit every detail of her athletic beauty to memory without arousing her suspicion.
<br>
This newfound attraction is confusing and exciting all at once, and you're not sure what the future holds for you and your <<relationText "sisters" "roommates">> in this house...
[[Goto your room->Your room]]
<</linkreplace>><<set _event to random(0, 5)>>
<<set _emilyHorny to $emily.lust > 60>>
<<if _emilyHorny === true>>
<<set _event to random(0, 1)>>
<<if _event === 0>>
<<emily>>Please....<</emily>>
<<emily>>I need you so bad right now..<</emily>>
<<player>>What for?<</player>>
<<emily>>You know what for idiot. My training!<</emily>>
While saying this, she strips down to just her small panties.
<<player>>You're such a dirty girl, always getting yourself all worked up like this<</player>>
<<linkreplace "Touch her">>
<<emily>>Yess<</emily>>
<img src="images/emily/grope/extended/grope_horny_0.webp">
<<set $emily.stats.extendedGroping[3].timesDone to $emily.stats.extendedGroping[3].timesDone + 1>>
<<statChange "emily.lust" +30>>
<</linkreplace>>
<<else>>
<img src="images/emily/grope/extended/grope_horny_1_undress.webp">
<<emily>>Hey bro. I thought you would like to see these<</emily>>
<<player>>(..gulp)<</player>>
<<emily>>And I also thought that you would again like to touch me down there..<</emily>>
<<linkreplace "Do as she says">>
<<player>>You're so fucking wet... I can feel myself getting harder just from touching you<</player>>
<<emily>>Please.. I need more.. <</emily>>
<<emily>>Like this?<</emily>>
<img src="images/emily/grope/extended/grope_horny_1.webp">
<<emily>>YESSSSSS<</emily>>
<<emily>>I'm going to cum....<</emily>>
<<set $emily.stats.extendedGroping[4].timesDone to $emily.stats.extendedGroping[4].timesDone + 1>>
<<statChange "emily.lust" 0>>
<</linkreplace>>
<</if>>\
<<else>>
<<set _event to random(0, 2)>>
<<if _event === 0>>
<<player>>Hey <<relationText "sis" "roommate">>, ready for some advanced training to make you feel more comfortable with your body?<</player>>
<<emily>>Yeah, whats in today?<</emily>>
<<player>>Let's just say that we're going to explore some new sensations today..<</player>>
<img src="images/emily/grope/extended/grope_0.webp">
<<set $emily.stats.extendedGroping[0].timesDone to $emily.stats.extendedGroping[0].timesDone + 1>>
<<statChange "emily.lust" +20>>
<<elseif _event === 1>>
<<emily>>Hey <<relationText "bro" "roommate">>, I think I need some training again. What do you want me to do?<</emily>>
<<player>>First, I need you to strip down to just your underwear<</player>>
Within seconds she slips out of her shirt and trousers.
<img src="images/emily/grope/extended/grope_1_undress.webp">
<<emily>>Like that <<relationText "brother" "">>?<</emily>>
<<player>>Now, lie down on the bed<</player>>
<<linkreplace "put your hand in her panties">>
<img src="images/emily/grope/extended/grope_1.webp">
<<player>>Do you like that?<</player>>
<<emily>>Yes.. Please don't stop..<</emily>>
<<set $emily.stats.extendedGroping[1].timesDone to $emily.stats.extendedGroping[1].timesDone + 1>>
<<statChange "emily.lust" +20>>
<</linkreplace>>
<<else>>
<<player>>Hey Emily, I need you to do something for me<</player>>
<<player>>I want to see your boobs. Without clothes this time<</player>>
<<emily>>mhhmm I don't know. You did not ask me that before...<</emily>>
<<player>>Trust me, it is all part of your training to get more confident with your body<</player>>
Emily hesitated for a moment longer before finally nodding her head in agreement.
<<player>>And move them a little<</player>>
<img src="images/emily/grope/extended/grope_2_undress.webp">
<<player>>Beautiful..<</player>>
<<linkreplace "Request more">>
<<player>>Now, I want you to allow me to put my hand in your panties<</player>>
Emily's eyes widened at his words, a mix of excitement and anxiety coursing through her body.
<<emily>>Okay...<</emily>>
<img src="images/emily/grope/extended/grope_2.webp">
<<set $emily.stats.extendedGroping[2].timesDone to $emily.stats.extendedGroping[2].timesDone + 1>>
<<statChange "emily.lust" +20>>
<</linkreplace>>
<</if>>
<</if>>\
<<statChange "emily.corruption" +2>>
<<statChange "player.corruption" +1>>
<<statChange "player.lust" +15>>
<<set _willCaughtByAlice = random(0, 1) === 1>>\
<<if $alice.story >= 1 && _willCaughtByAlice>>\
<<linkreplace "Suddenly you feel someone breathing behind you in your neck">>
You turn around and see Alice looking at you. She does not seem to be happy with what she found.
<<aliceConvincing>>
<<set $alice.stats.caughtWithEmily.bedroom.timesDone += 1>>
[[Leave Alice->Corridor]]
<</linkreplace>>
<<else>>
[[Leave->Corridor]]
<</if>><<set _event to random(0, 100)>>\
/* 14 schoolgirl -> 0 */\
<<if _event < 14>>
You see Emily in a schoolgirl outfit
<<player>>Wow, Emily... you look so cute today. It has been a long time since I saw you in such a a school uniform<</player>>
<<emily>>(blushing slightly) Oh, um, it's just my new school uniform<</emily>>
<<player>>You remember what you asked me? Can I touch you?<</player>>
<<emily>>yes...<</emily>>
<img src="images/emily/grope/grope_0.webp">
<<set $emily.stats.groping[0].timesDone to $emily.stats.groping[0].timesDone + 1>>
/* 14 underboob free shirt -> 1 */
<<elseif _event < 28>>
<<player>>You are looking pretty sex today. I like that outfit a lot<</player>>
<<emily>>I was trying to look nicer for you. Do you think my top is too short?<</emily>>
<<player>>Depending on what you want to do with that outfit. I can see clearly the underside of your boobs<</player>>
<<emily>>Well.... I need more training. May I ask you to touch me? I want to feel your hands<</emily>>
<img src="images/emily/grope/grope_1.webp">
<<set $emily.stats.groping[1].timesDone to $emily.stats.groping[1].timesDone + 1>>
/* 14 braless -> 2 */
<<elseif _event < 42>>
You are seeing Emily in a grey shirt without a bra. She notices you looking at her.
<<emily>>Oh, I thought it would be nice for a change of pace. What do you think?<</emily>>
<<player>>I think it looks... very inviting. Almost like an invitation for me to touch you<</player>>
<<emily>>That's because it is, isn't it? You're just too polite to say so outright<</emily>>
<<player>>Since you asked so nicely...<</player>>
<img src="images/emily/grope/grope_2.webp">
<<set $emily.stats.groping[2].timesDone to $emily.stats.groping[2].timesDone + 1>>
/* 14 laying on bed without pants -> 3 */
<<elseif _event < 56>>
<<player>>Hey Emily, what are you doing?<</player>>
<<emily>>Well just chilling. Its good to take some time off from the work in the house.. In such an exiting position....<</emily>>
She is lying back on the bed, spreading her legs slightly and running a hand along her inner thigh
<<emily>>Oh, I know what you're looking at. And if you're feeling bold enough, why don't you come over here and join me?<</emily>>
<<player>>I guess you also want me to continue your "training"?<</player>>
She does not respond but you are sure she wants you to touch her.
<img src="images/emily/grope/grope_3.webp">
<<set $emily.stats.groping[3].timesDone to $emily.stats.groping[3].timesDone + 1>>
/* 14 white shirt, focus on something -> 4 */
<<elseif _event < 64>>
Emily is sitting at her desk, intently focused on writing in her diary.
<<player>>(Lets see if she can stay focussed while I touch her..)<</player>>
<img src="images/emily/grope/grope_4.webp">
<<player>>Well done Emily, its a good thing that you can stay focussed while others around you want to disturb you!<</player>>
<<emily>>Thanks <<relationText "bro" "roommate">><</emily>>
<<set $emily.stats.groping[4].timesDone to $emily.stats.groping[4].timesDone + 1>>
/* 14 braless, inside top -> 5 */
<<elseif _event < 70>>
<<emily>> Hey there, <<relationText "big brother" "roommate">>... I was thinking about something...<</emily>>
<<player>>What's on your mind, Emily?<</player>>
<<emily>>I was thinking... maybe you could train me now? Please grope hard me so I can get more confidence with my body...<</emily>>
<<player>>And what would be the reward for such hard work from me, Emily?<</player>>
<<emily>>Well... I thought maybe you could touch my breasts under my shirt? Just to motivate me and show me that I'm learning...<</emily>>
<img src="images/emily/grope/grope_5.webp">
<<emily>>Oh god... just like that...<</emily>>
<<set $emily.stats.groping[5].timesDone to $emily.stats.groping[5].timesDone + 1>>
/* 14 focus on something else -> 6 */
<<elseif _event < 84>>
Emily is standing at the old broken flipper machine in one corner of the room.
<<player>>Hey Emily, I thought it would be fun to play a little "training" game. You have to concentrate on the flipper machine while I touch you<</player>>
<<emily>>Thats not exactly fair, I want to get more confident with my body, not just be groped by you in your weird imaginated scenarios<</emily>>
<<player>>Trust me, it is a valuable skill in the end<</player>>
<img src="images/emily/grope/grope_6.webp">
<<set $emily.stats.groping[6].timesDone to $emily.stats.groping[6].timesDone + 1>>
/* 7% + high player lust, high emily lust -> 7 happy ass grope */
<<elseif $emily.lust >= 50 and $player.lust >= 50 >>
<<emily>><<relationText "Bro" "Roommate">> come here! I need you to touch your little <<relationText "sister" "roommate">><</emily>>
<<player>>Like this?<</player>>
<<emily>>Yes! Just like that! Don't be gentle, I want to feel your strength...<</emily>>
<<player>>You're so slutty for me, Emily... begging for my hands to roam all over you...<</player>>
<img src="images/emily/grope/grope_7_0.webp">
<<linkreplace "Go further">>
You also start lightly to suck her unbelievable hart nipple through her shirt.
<<emily>>Oh my god I am so horny right now...<</emily>>
<<emily>>Yes, big <<relationText "brother" "roommate">>! I'm your little slut... use me however you want...<</emily>>
<img src="images/emily/grope/grope_7_1.webp">
<<set $emily.stats.groping[7].timesDone to $emily.stats.groping[7].timesDone + 1>>
<</linkreplace>>
/* 7% + high player lust, low emily lust -> 8 force grope */
<<elseif $emily.lust < 50 and $player.lust >= 50 >>
Emily is sitting at her desk
<<player>>Oh, <<relationText "sis" "Emily">>... you look so sweet and innocent right now...<</player>>
<<emily>>Not right now <<relationText "brother" "roommate">>. I have to concentrate on this<</emily>>
<<player>>I need some comfort right now, Emily. And I know just how to get it...<</player>>
While saying that you reach out to her shoulders, ready to put your hands between her pink bra and her perky tits.
<<emily>>No! Big brother, stop!<</emily>>
<<linkreplace "Ignore her">>
<img src="images/emily/grope/grope_8.webp">
<<player>>Mmm, you're so sexy when you try to fight me...<</player>>
<<emily>>Stop it! Big brother, please stop!<</emily>>
<<player>>You're going to enjoy this, little <<relationText "sis" "roommate">>... whether you admit it or not...<</player>>
<<set $emily.stats.groping[8].timesDone to $emily.stats.groping[8].timesDone + 1>>
<</linkreplace>>
<<else>>
Should not happen
<<goto "Groping">>
<</if>>
<<statChange "player.lust" +10>>
<<statChange "emily.lust" +10>>
<<statChange "player.corruption" +1>>
<<statChange "emily.corruption" +1>>
<<set $time = $time + 1>>
\
<<set _willCaughtByAlice = random(0, 1) === 1>>
<<if $alice.story >= 1 && _willCaughtByAlice>>
Just about you wanted to leave the room, you see Alice in the doorway, looking at you
<<player>>(..shit..)<</player>>
<<aliceConvincing>>
<<set $alice.stats.caughtWithEmily.bedroom.timesDone += 1>>
[[Leave Alice->Your room]]
<<elseif $alice.story >= 3 && _willCaughtByAlice>>
<<linkreplace "You hear a throat clearing from the doorway">>
<<alice>><<relationText "Bro" "Roommate">> I think it's time for us to uphold our agreement..<</alice>>
<<player>>You are right<</player>>
[[Go with Alice to her room->Alice Bedroom]]
<</linkreplace>>
[[Go back->Your room]]
<<else>>
[[Go back->Your room]]
<</if>><<set _event to random(0, 5)>>
<<set _cumTasted to $emily.stats.handjob[4].timesDone > 0>>
<<if _event === 0>>
You unbutton your pants.
<img src="images/emily/handjob/hj_0_undress.webp">
<<player>>Like what you see? I think it is time for you to give something back for all the training I did with you<</player>>
<<emily>>Okay<</emily>>
You can see in her yes that she is not totally on board with her new tasks, but you are sure she will get used to it.
<<player>>That's my good girl<</player>>
<<player>>But before you start, please remove your top. I want to see these tan marks again<</player>>
<img src="images/emily/handjob/hj_0.webp">
<<player>>Thanks <<relationText "sis" "roommate">>, that was nice. But you still have to train more to really show your appreciation.<</player>>
<<emily>>Will do. Thanks <<relationText "bro" "roommate">>for training me<</emily>>
<<set $emily.stats.handjob[0].timesDone to $emily.stats.handjob[0].timesDone + 1>>
<<statChange "player.lust" 0>>
<<statChange "emily.lust" +20>>
<<statChange "player.corruption" +2>>
<<statChange "emily.corruption" +2>>
<<set $time = $time + 1>>
<<elseif _event === 1>>
<<emily>>Hey <<relationText "bro" "roommate">>, up for some training?<</emily>>
<<player>>Depends on what you want to do<</player>>
<<emily>>Well lets start with fixing your enormous bulge in your pants<</emily>>
<<player>>Okay, but today I want to cum on your belly<</player>>
<<emily>>I am okay with that<</emily>>
<img src="images/emily/handjob/hj_1_undress.webp">
<<linkreplace "Unbutton your pants">>
<<player>>Lay down on the bed <<relationText "sis" "Emily">>, I will sit on your stomach<</player>>
<<emily>>Hurry up then!<</emily>>
<img src="images/emily/handjob/hj_1.webp">
<<set $emily.stats.handjob[1].timesDone to $emily.stats.handjob[1].timesDone + 1>>
<<statChange "player.lust" 0>>
<<statChange "emily.lust" +20>>
<<statChange "player.corruption" +2>>
<<statChange "emily.corruption" +2>>
<<set $time = $time + 1>>
<</linkreplace>>
<<elseif _event === 2>>
<<emily>>What is it?<</emily>>
<<player>> I have to say, that handjob you gave me was incredible.<</player>>
<<emily>>Thanks.. I guess<</emily>>
<<player>>Would you be willing to do it again?<</player>>
<<emily>>But just this once<</emily>>
<<player>>(Sure, only "once". I will make you slutty little pet)<</player>>
<<player>>That's all I was asking for!<</player>>
<img src="images/emily/handjob/hj_2_wo_fingering.webp">
<<linkreplace "Ask her for more">>
<<player>>I was thinking maybe we could take it a step further this time<</player>>
<<player>>I've always been curious about what's down there in your pants<</player>>
<<emily>>You already know how my pussy looks like<</emily>>
<<player>>Yeah, but I want to feel it while you are stroking the cock of your <<relationText "older brother" "roommate">><</player>>
<<emily>>You mean... you want to finger me right now?<</emily>>
<<player>>That's exactly what I mean<</player>>
<<emily>>Okay, but go slow<</emily>>
<img src="images/emily/handjob/hj_2.webp">
<<set $emily.stats.handjob[2].timesDone to $emily.stats.handjob[2].timesDone + 1>>
<<statChange "player.lust" 0>>
<<statChange "emily.lust" +20>>
<<statChange "player.corruption" +2>>
<<statChange "emily.corruption" +2>>
<<set $time = $time + 1>>
<</linkreplace>>
<<elseif _event === 3>>
<<player>>What's up <<relationText "sis" "Emily">>?<</player>>
<<emily>>I was thinking about yesterday... I want to give you an handjob again<</emily>>
<<player>>(that was easier than expected..)<</player>>
Emily unbuttons your pants and pulls out your half-erect cock
<<emily>>This is what I've been craving all day..<</emily>>
Emily starts stroking your cock with an enthusiasm you never experienced before..
<<emily>>I can feel it throbbing in my palm<</emily>>
<<emily>>I need you to cum all over my hand, <<relationText "brother" "roommate">>. I want to taste your seed on my fingers.<</emily>>
That was enough to bring you over the edge.
<img src="images/emily/handjob/hj_3.webp">
<<player>>You're insatiable, <<relationText"sis" "roommate">>!<</player>>
<<set $emily.stats.handjob[3].timesDone to $emily.stats.handjob[3].timesDone + 1>>
<<statChange "player.lust" 0>>
<<statChange "emily.lust" +20>>
<<statChange "player.corruption" +2>>
<<statChange "emily.corruption" +2>>
<<set $time = $time + 1>>
<<elseif _event === 4 || (_event === 5 && _cumTasted === false)>>
<<player>>Hey <<relationText "sis" "roommate">>, up to giving something back to your dear <<relationText "brother" "roommate">>?<</player>>
<<emily>>Fine. What do you want?<</emily>>
<<player>>I want to cum on your chest<</player>>
You see her breathing more intense as you say that.
<<player>>Whats up <<relationText "sis" "Emily">>? Cat got your tongue? Or you just got turned on by the though of having my semen on your little tits?<</player>>
Instead of answering she eagerly pulls down your pants.
<img src="images/emily/handjob/hj_4.webp">
Your cum splatters on her chest, her collar and some blips even accidentally land in her mouth.
<<player>>You like the taste of it?<</player>>
<<emily>>I didn't expect to..<</emily>>
She is leaning forward and sucks another drop from her chest.
<<emily>>But it's... quite good.<</emily>>
<<player>>Well in that case we can up with something more "direct" to give you the taste..<</player>>
<<emily>>Hold your horses.. I am not going to get your cum dump!<</emily>>
<<player>>(yet..)<</player>>
<<if $emily.stats.handjob[4].timesDone === 0>>
@@Emily tasted your cum for the first time!
<</if>>\
<<set $emily.stats.handjob[4].timesDone to $emily.stats.handjob[4].timesDone + 1>>
<<statChange "player.lust" 0>>
<<statChange "emily.lust" +20>>
<<statChange "player.corruption" +2>>
<<statChange "emily.corruption" +2>>
<<set $time = $time + 1>>
<<elseif _event === 5 and _cumTasted === true>>
<<emily>>Hey <<relationText "bro" "roommate">>, I need something from you<</emily>>
<<player>>What is it?<</player>>
Emily pushes you on her bed and starts to pull down your pants
<<emily>>Do you remember our training where you wanted to cum on my tits? And I tasted your semen?<</emily>>
<<player>>Yeah..<</player>>
<img src="images/emily/handjob/hj_5_prep.webp">
<<emily>>I realized that there's something more I want to try<</emily>>
<<emily>>I want you to sit on my chest when you cum..<</emily>>
<<emily>>That way, I can taste your seed directly from the source.<</emily>>
<<linkreplace "That sounds like an fantastic idea">>
<img src="images/emily/handjob/hj_5.webp">
<<set $emily.stats.handjob[5].timesDone to $emily.stats.handjob[5].timesDone + 1>>
<<statChange "player.lust" 0>>
<<statChange "emily.lust" +20>>
<<statChange "player.corruption" +2>>
<<statChange "emily.corruption" +2>>
<<set $time = $time + 1>>
<</linkreplace>>
<</if>>\
<<set _willCaughtByAlice = random(0, 1) === 1>>
<<if $alice.story >= 1 && _willCaughtByAlice>>
<<linkreplace "Suddenly you feel someone breathing behind you in your neck">>
You turn around and see Alice looking at you. She does not seem to be happy with what she found.
<<aliceConvincing>>
<<set $alice.stats.caughtWithEmily.bedroom.timesDone += 1>>
[[Leave Alice->Corridor]]
<</linkreplace>>
<<else>>
[[Leave->Corridor]]
<</if>><<return back>>
<<if $emily.story >= 5>>
[[Training: Groping->Groping]]\
<</if>>
<<if $emily.story >= 6>>
[[Training: Extended Groping->Extended Groping]]\
<</if>>
<<if $emily.story >= 7>>
[[Training: Handjob->Handjob]]\
<</if>><img src="images/emily/at_desk.webp" class="img-ambient">
/* --- Stage I Wood, low corruption -------------------------------------------------- */
<<if $emily.corruption < 5>>
Emily is sitting in a light summer dress at the table and writing something.
<<linkreplace "Approach her">>
<<player>>Hey Emily, uhm, I was wondering if you already found some materials for the house<</player>>
Emily turns around, smiling at you warmly, her ample breasts slightly swaying as she does so.
<<emily>>Of course! Do you already know where you will use these?<</emily>>
While speaking she stands up and grabs something from besides the table.
<img src="images/emily/emily_material_0.webp" class="img-ambient">
<<linkreplace "Grab..">>
<<= window.getMaterialsGifted(State.variables.inventory, ['wood'], 2, 'Emily')>>
<<set $time = $time + 1>>
<</linkreplace>>
<</linkreplace>>
/* --- Stage II wood, metal, medium corruption -------------------------------------------------- */
<<elseif $emily.corruption < 10 and $emily.story >= 1>>
Emily is currently getting ready for an walk outside. She notices you standing in the doorframe.
<<emily>>Hey!<</emily>>
<<linkreplace "Approach her">>
<<player>>Did you find any extra materials lately?<</player>>
<<emily>>Maybe.. But first you have to do something for me. I noticed you are spying at me in the early mornings while I get ready.<</emily>>
<<player>>I am not...<</player>>
<<emily>>We all know you are. So here is the deal: I give you the materials I find and you give me a compliment on my outfit. Fine?<</emily>>
<<linkreplace "Sure..">>
<img src="images/emily/tease/tease_0.webp">
<<player>>Your outfit is... passable. It's not horrible or anything. The colors kind of clash a bit but overall it's okay.<</player>>
<<emily>>Oh, so it's just "okay," huh? That's not exactly the rave review I was expecting for my hard work<</emily>>
<<player>>Look, I didn't say it was bad. It's not like you look like a clown or something. Just give me those damn materials before I change my mind<</player>>
<<emily>>Fine, fine. Here you go. Just remember the deal for next time. Now, scat!<</emily>>
<<linkreplace "Grab..">>
<<player>>Thank God that's over... I swear, girls and their need for constant validation...<</player>>
<<= window.getMaterialsGifted(State.variables.inventory, ['wood', 'metal'], 3, 'Emily')>>
<<set $time = $time + 1>>
<<statChange "emily.corruption" +2>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
/* --- Stage III wood, metal, high corruption -------------------------------------------------- */
<<else>>
Emily is currently getting ready for an walk outside. She notices you standing in the doorframe.
<<if $emily.story === 1>>
<<set $emily.story to 2>>
<</if>>
<<emily>>Hey!<</emily>>
<<linkreplace "Approach her">>
<<player>>Did you find any extra materials lately?<</player>>
<<emily>>Yes. Any by now you should know our deal. But today I want you to rate something else<</emily>>
<<if random(0,1) is 0>>\
<<player>><<relationText "Sis" "Girl">>, we really don't have to..<</player>>
<<emily>>Oh, but we do, <<relationText "brother" "boy">>! We made a deal, remember? Now, tell me how I look!<</emily>>
With that, she slowly, seductively pulled her baggy shirt and oversized sweatpants down, revealing a white pair of panties.
<img src="images/emily/tease/tease_3.webp">
Her curves were perfectly highlighted by the revealing yet modest outfit, leaving nothing to imagination but also giving just enough to tease.
<<player>>You... you look... very... sexy! Dammit! Now can we...<</player>>
<<emily>>Oh, come on, sissy boy! I know you can do better than that!<</emily>>
<<linkreplace "Do better">>
She turned around, giving him a slow and sensual spin, her behind swaying seductively in his face
<<player>>You... you're stunning, <<relationText "sis" "girl">>. Absolutely stunning! The colors are perfect, the fit is amazing... um..<</player>>
<<emily>>That's better! Where did I put the materials...<</emily>>
<<statChange "player.lust" +20>>
<<statChange "player.corruption" +2>>
<<linkreplace "Grab..">>
<<= window.getMaterialsGifted(State.variables.inventory, ['wood', 'metal'], 4, 'Emily')>>
<<set $time = $time + 1>>
<</linkreplace>>
<</linkreplace>>
<<else>>
She quickly gets out of her shirt and her trousers.
<img src="images/emily/tease/tease_2.webp">
<<emily>>I have a beach party coming up and I really want to impress the guys with my new bikini.<</emily>>
<<player>>Fine. Alright, <<relationText "sis" "girl">>. Uhm... your... underwear? They're... uh... very... well-made? The fabric feels quite durable.<</player>>
<<emily>>Durable? <<relationText "Bro" "Boy">>, this is a freaking bikini we're talking about! I wanted you to say something hot like 'wow, <<relationText "sis" "girl">>! That little number is sure to turn heads at the beach!<</emily>>
<<player>>Well, uh... it's... yeah, it's pretty revealing. I mean, you know, if that's what you're going for.<</player>>
<<emily>>Come on, brotherly love! You can do better than that!<</emily>>
<<linkreplace "Do better">>
<<player>>Fine! Your bikini is... very... um... it accentuates your, uh, assets nicely. It will definitely catch the eye of any beach-goers lucky enough to see you in it. Satisfied now?<</player>>
Emily squeals with delight
<<emily>>OMG, thank you so much, <<relationText "brother" "roomie">>! You're the best!! Now, where are those materials?<</emily>>
<<statChange "player.lust" +20>>
<<statChange "player.corruption" +2>>
<<linkreplace "Grab..">>
<<= window.getMaterialsGifted(State.variables.inventory, ['wood', 'metal', 'nails'], 4, 'Emily')>>
<<set $time = $time + 1>>
<</linkreplace>>
<</linkreplace>>
<</if>>
<</linkreplace>>
<</if>>
[[Go back->Your room]]<<emily>>Hey bro, do you gave 1 minute?<</emily>>
<<player>>Yes, whats up?<</player>>
<<emily>>I wanted to thank you for all the training you gave me in the last days. I really feel more comfortable with my body by now..<</emily>>
<<player>>(welp.. I have to make sure that she still needs my confirmation. Otherwise everything was just for some petting, I am sure there is more in for me)<</player>>
<<emily>>.. I really appreciate it<</emily>>
<<player>>No problem little <<relationText "sis" "roomie">><</player>>
<<player>>By the way, Josh send me the second chapter of $corruptionBook.name! Do you want to read it?<</player>>
<<emily>>Yes for sure! the first chapter was already incredibly helpful.<</emily>>
<<player>>Alright here it is!<</player>>
<<emily>>Thanks <<relationText "bro" "roommate">>!<</emily>>
<<linkreplace "Excuse yourself and spy from the outside">>
<<emily>>...Chapter 2: Trust others...<</emily>>
<<emily>>...it's essential to confront any lingering fears or inhibitions that may be holding us back from fully realizing our potential...<</emily>>
<<emily>>...by allowing ourselves to let down our guard and be receptive to others...<</emily>>
<<emily>>...to touch or explore certain intimate areas may seem uncomfortable or even unprecedented...<</emily>>
<<emily>>...take, for example, the act of masturbating a beloved person...<</emily>>
<<emily>>...this is an act of self-love and empowerment - not exploitation or submission...<</emily>>
<<linkreplace "Grab something to snack and reenter the room">>
<<player>>Hey Em, already took a look at the chapter?<</player>>
<<emily>>Yeah a little..<</emily>>
<<emily>>You remember that I wanted to thank you for all your support? I might have an idea for an reward<</emily>>
<<player>>(me as well...)<</player>>
<<player>>Okay, what is it?<</player>>
<<emily>>For that you have to lay down on your bed and undress..<</emily>>
<<player>>Sounds a little weird but okay..<</player>>
<<linkreplace "Do as she says">>
<<emily>>You know you helped me to understand my body better. Now I think it is time to understand your body better.<</emily>>
<img src="images/events/corruption_book/chapter_2_done_0.webp">
<<emily>>How am I doing? Do you like that?<</emily>>
<<player>>Yeah you are doing good for your first time..<</player>>
She continuously strokes your erect cock. The handjob itself is not the best you could imagine, but the thought that you tricked your little innocent <<relationText "sister" "roommate">> into doing it makes it a lot hotter.
<<linkreplace "Cum">>
<<player>>Emily I am gonna cum!<</player>>
<<emily>>Whoooaa that was fast!<</emily>>
<img src="images/events/corruption_book/chapter_2_done_1.webp">
You lay on your bed for some minutes, recovering after the fist handjob you received in this house. By tricking your <<relationText "sister" "roommate">> into incest-action by writing a book. What a time to be alive.
<<player>>Thank you Emily! It was pretty good for your first time!<</player>>
<<emily>>What do you mean by "pretty good"? Was it not the best handjob you ever received?<</emily>>
<<player>>Well... not really. But if you want, we can also include these in our trainings.<</player>>
<<emily>>I guarantee you we will! I will be a handjob queen in no time!<</emily>>
<<player>>I am looking forward to that!<</player>>
<<set $emily.story to 7>>
<<statChange "player.lust" 0>>
<<statChange "emily.corruption" +5>>
<<set $time = $time + 1>>
[[Dress and leave the room->Corridor]]
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>><<player>>Hey Em! You know, you really helped us a lot with gathering the materials for the living room. Rebuilding our house is a big job, but you are handling it like a pro<</player>>
<<emily>>Thanks... I don't want to let you down, <<relationText "brother" "roommate">><</emily>>
<<linkreplace "She is standing up and starts to sit on your lap">>
<<player>>(thinking: After all your grope training you think she is ready for the next step. You are thinking about how you could corrupt her more.)<</player>>
<<player>>(thinking: Maybe she is ready to get touched at her pussy?)<</player>>
<<linkreplace "Touch her pussy">>
<img src="images/emily/grope/grope_chapter_2_start.webp">
<<emily>>Thanks... I don't want to let you down, <<relationText "brother" "roommate">><</emily>>
<<player>>Oh emily.... Are you getting wet down there?<</player>>
<<emily>>...<</emily>>
She is not really able to answer you right now
<<statChange "player.lust" +20>>
<<statChange "emily.lust" +40>>
<<statChange "player.corruption" +2>>
<<statChange "emily.corruption" +2>>
@@You can now grope Emily now in more intimate areas@@
<<linkreplace "Try to pull her slip to the side to get full access">>
<<emily>>I think this is enough for today. Thank you <<relationText "brother" "roommate">> for my training!<</emily>>
While saying these words she leaves the room.
<<player>>(thinking: I think it is time to come up with something that will also help me to get off. I guess its time for the next chapter in the book.)<</player>>
<<set $corruptionBook.currentChapter to 1>>
<<set $emily.story to 6>>
<<set $time = $time + 1>>
[[Leave->Corridor]]
<</linkreplace>>
<</linkreplace>>
<</linkreplace>><<player>>Hey <<relationText "sis," "emily,">> Josh just send me a new chapter of the book!<</player>>
<<emily>>Cool! What is it about?<</emily>>
<<player>>Not sure, I think the chapter is called "$corruptionBook.chapters[2].topic"<</player>>
<<emily>>Thats sounds weird... It sounds similar to what I talked with you some days ago..<</emily>>
<<linkreplace "(Shit)">>
<img src="images/events/corruption_book/chapter_3_done.webp">
<<player>>Now that you say it, you are right..<</player>>
<<player>>But it must be a coincidence. Josh is very successful at his job, it seems that this topic was important for his success in his business.<</player>>
<<emily>>Makes sense. Give it to me, I want to read it. I want also to become successful.<</emily>>
<<player>>Here it is. See you later!<</player>>
<<linkreplace "Leave the room and eavesdrop">>
<<emily>>...Chapter 3: $corruptionBook.chapters[2].topic...<</emily>>
<<emily>>...bring tremendous pleasure to both partners involved, but it also offers a range of physical, emotional, and psychological benefits...<</emily>>
<<emily>>...oral techniques and exploring new methods can help build confidence...<</emily>>
<<emily>>...Receiving oral sex, especially involving semen, could provide a natural boost to one's immune function...<</emily>>
<<emily>>...enhance their overall experiences and deepens their connections with close ones....<</emily>>
<<set $emily.story to 9>>
<<statChange "emily.corruption" +15>>
[[Leave->Corridor]]
<</linkreplace>>
<</linkreplace>><<player>>Hey, how was school today?<</player>>
<<linkreplace "Start playing with her while you talk">>
<img src="images/events/corruption_book/chapter_3_idea.webp">
<<emily>>Fine I guess. During lunch I talked with some of my classmates and they told me something very disgusting..<</emily>>
<<player>>What is it?<</player>>
<<emily>>Well, one girl talked about that she gave a blowjob to her boyfriend yesterday. That's so gross! I couldn't ever do something like that.<</emily>>
<<player>>What makes you say that? It seems like a pretty intimate way to show affection for someone.<</player>>
<<emily>>I don't know...it just seems so...dirty and degrading. Having someone's face in your crotch all the time, swallowing their spit and semen...bleh! Just the thought of it makes me nauseous<</emily>>
<<player>>I get it, <<relationText "sis" "Emily">>. It's sounds weird when you first hear about it. But it is one very effective way to show affection to others<</player>>
<<player>>(Maybe its time for a new chapter from the book)<</player>>
<<set $corruptionBook.currentChapter to 2>>
<<set $emily.story to 8>>
<<set $time = $time + 1>>
[[Stop caressing her->Your room]]
<</linkreplace>><<player>>God this girl searches constantly affirmation. But she does not allow me to doe anything to her<</player>>
<<player>>When this continues I will get definitely blue ball syndrome<</player>>
<<player>>Maybe I can find something in online forums that could help me...<</player>>
<<linkreplace "Search the web">>
<img src="images/events/corruption_book/research_0.webp">
You find some weird online forum named "Sibling Support Network" which looks like it was build in the early 2000s.
On the homepage there is a post of a new member which strikes your eyes:
//So glad I found this community of like-minded individuals who understand the thrill of corrupting our own family members. My older sister is finally submitting to my desires after years of denying them, and it's absolutely intoxicating.//
<<player>>This sounds interesting. Lets search for all posts of this user<</player>>
<<linkreplace "Search in forum">>
<img src="images/events/corruption_book/research_1.webp">
------------------------------------
The Secret to Getting Your Sibling in Bed - I Wrote the Book on It!
Hey guys,
I've got a confession to make. Up until recently, I was just like all of you - struggling to get my sister to put out. But then something clicked in my mind, and I came up with a plan that worked better than anything else out there.
And guess what? I wrote a whole book solely for this purpose!\
<br>
But this is not about the book, the real success story here is mine and my sister's relationship. After she read my book (yes, I did make her buy a copy), we sat down for a talk and suddenly, all the barriers were gone.
Now, if you're wondering how I came up with this whole "book" idea, let me tell you - it was pure genius on my part! I knew that by creating a fake self-help book, I could manipulate my sister into doing exactly what I wanted her to do. And it worked like a charm!\
<br>
So here's the deal, guys. If you really want to get your sibling in bed, you need to trick them into reading your book. Trust me, once they're hooked on the concept of "embracing their innate desires," there's no turning back.
It's been weeks now and my sister is still coming for me like clockwork. And it's all thanks to this little scam I pulled off!\
<br>
Thanks for listening, guys! Let me know if you have any questions or want more details on my experience.
Best,
SisterLover84
------------------------------------
<<linkreplace "Think about it">>
<<player>>Hmm thats an interesting idea. I could try to write a book that appeal to her affirmation trait and link it to my sexual satisfaction.<</player>>
<<linkreplace "No that is too fucked up">>
<img src="images/events/corruption_book/deny.webp">
What are you here for then? This is a porn game?
<</linkreplace>>
<<linkreplace "That sounds like a good idea!">>
<<player>>Lets start with the first chapter!<</player>>
<<set $emily.story to 3>>
<<set $corruptionBook.currentChapter to 0>>
[[Start Writing->Writing Corruption Book]]
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>><<emily>>Hey <<relationText "bro" "roommate">>, can you quickly help me?<</emily>>
<<linkreplace "Help her">>
<<emily>>Do you remember this shirt? I used this shirt some years ago and found it when packing my stuff for the new house<</emily>>
<<emily>>Do you think it is too short by now?<</emily>>
<img src="images/emily/tease/tease_4.webp">
<<player>>(..gulp..) No I think it fits great!<</player>>
<<player>>(This cant be unintentional. She does want me to see her adult chest now. What a perfect moment to give her the first chapter of my book)<</player>>
<<statChange "player.lust" +20>>
<<statChange "player.corruption" +2>>
<<linkreplace "Hand her the first chapter of \"$corruptionBook.name\"">>
<<emily>>What is this?<</emily>>
<<player>>Do you remember Josh? He is a friend of mine and a very successful business man. He is currently writing a self-help book how he got so successful and gave me an early access to his fist chapter<</player>>
<<player>>I thought after our recent talks a little reassurance could help you, you might find it in this book<</player>>
<<emily>>Oh this is so cute of you! I will take a look immediately! Thank you <<relationText "bro" "roommate">>!<</emily>>
<<player>>Alright, I will leave you then. See you later!<</player>>
<<linkreplace "Leave the room, but spy from outside">>
<<player>>(Its a little cute she cannot really read silently..)<</player>>
<<emily>>...Chapter 1: Set your goals...<</emily>>
<<emily>>...we'll explore the key elements of effective goal-setting...<</emily>>
<<emily>>...if you want to improve your relationships, a more specific goal might be "I want to have a deeper connection with my siblings."...<</emily>>
<<emily>>...Setting unrealistic targets can lead to discouragement...<</emily>>
<<emily>>...Instead, strive for challenges that push you out of your comfort zone ...<</emily>>
<<player>>(hehe lets hope she translates that in allowing me to see more of her..)<</player>>
<<set $emily.story to 4>>
<<set $time = $time + 1>>
[[Leave->Corridor]]
<</linkreplace>>
<</linkreplace>>
<</linkreplace>><<set _current to $corruptionBook.chapters[$corruptionBook.currentChapter].currentStep>>
<<set _needed to $corruptionBook.chapters[$corruptionBook.currentChapter].stepsNeeded>>
/* start of chapter 1 */
<<if _current === 0 && $corruptionBook.currentChapter === 0>>
<<player>>First I have to give my book a title.<</player>>
// Remember the title should not sound totally suspicious, it should seem like a normal self-help book. Or not, you know what kind of game this is ;)//
Book Title:
<<textbox "$bookName" "Embracing Our Inherent Desire" autofocus>>
<<linkreplace "Come up with the idea for the first chapter">>
<<set $corruptionBook.name to $bookName>>
<<player>>If I want Emily to actually follow the book Is has to be about something she wants. Her incredible need for affirmation could be the hook.<</player>>
<<player>>The first chapter should be about the goal she has to set herself. Maybe I can hint to something already.<</player>>
<<set $corruptionBook.chapters[$corruptionBook.currentChapter].currentStep += 1>>
<<linkreplace "Start writing">>
<img src="images/events/corruption_book/typing/chapter_done.webp">
Thats a good start!
<<set $corruptionBook.chapters[$corruptionBook.currentChapter].currentStep += 1>>
<<set $time = $time + 1>>
[[Take a break->Your room]]
<</linkreplace>>
<</linkreplace>>
<<elseif _current === 0 && $corruptionBook.currentChapter === 1>>
<<player>>(thinking: Okay lets start with the new chapter. I think to convince her to put hand on me she has to learn that my satisfaction contributes to her fulfilling.)<</player>>
<<player>>(thinking: Maybe we can start with some basic things about giving and receiving? Maybe I could let her think that my training to her is already requiring her to give something back?)<</player>>
You are now thinking about the hot young <<relationText "sisterly">> body of Emily and what she will do to you.
<<linkreplace "Loose your thoughts and think of emily">>
<img src="images/events/corruption_book/dream_chapter_2.webp">
<<set $corruptionBook.chapters[$corruptionBook.currentChapter].currentStep += 1>>
<<statChange "player.lust" +20>>
<<statChange "player.corruption" +5>>
<<set $time = $time + 1>>
[[Take a break->Your room]]
<</linkreplace>>
<<else>>
<<print
'<img src="images/events/corruption_book/typing/typing_'
+ random(0, 4)
+ '.webp">'
>>
You made progress writing your corruption book!
<br>
Also you got a little horny writing imagining what you hope to do to your <<relationText "sister" "roommate">> when this whole book trick works
<<statChange "player.lust" +10>>
<<statChange "player.corruption" +1>>
<<set $corruptionBook.chapters[$corruptionBook.currentChapter].currentStep += 1>>
<<set $time = $time + 1>>
[[Take a break->Your room]]
<</if>><<set _event = random(0, 1)>>
You hear some wet, rhythmic sounds coming from the bathroom.
<<linkreplace "Slightly open the door to see what is going on">>
<<print
'<img src="images/emily/masturbating/shower_'
+ _event
+ '.webp">'
>>
<<player>>(thinking: Well this was surely not why I repaired the shower. But I take it..)<</player>>
<<set _newLust to -($emily.lust / 2)>>
<<statChange "emily.lust" _newLust>>
<<statChange "player.lust" +20>>
<<set _willCaughtByAlice = random(0, 1) === 1>>
<<if $alice.story >= 1 && _willCaughtByAlice>>
<<linkreplace "Suddenly you feel someone breathing behind you in your neck">>
You turn around and see Alice looking at you. She does not seem to be happy with what she found.
<<aliceConvincing>>
<<set $alice.stats.caughtWithEmily.shower.timesDone += 1>>
<<set $emily.stats.spyMasturbating[('shower' + _event)] += 1>>
[[Leave Alice->Corridor]]
<</linkreplace>>
<<else>>
[[Leave->Corridor]]
<</if>>
<</linkreplace>><<emily>>Ugh, I'm so bored<</emily>>
<<player>>Want to do something else?<</player>>
<<emily>>Actually, yeah...I think I want to show you something<</emily>>
<img src="images/emily/blowjob/first_bj/first_bj_intro.webp" />
<<emily>>Like what you see?<</emily>>
<<linkreplace "Praise her">>
<<player>>Yess very much<</player>>
<<statChange "player.lust" +20>>
<<emily>>Come on, let's go to our room, I want to try something more<</emily>>
You walk behind emily and enter your bedroom
<<emily>>I want to try something new... You remember that I told you about my fried that told me about giving her boyfriend a blowjob? And that I think its disgusting?<</emily>>
<<player>>Yeah I do<</player>>
<<emily>>Well I changed my mind. This new chapter from Josh's book changed my perspective..<</emily>>
<<player>>Do you mean... You want to give me...<</player>>
<<emily>>... a blowjob, yes. And now undress before I change my mind<</emily>>
<<linkreplace "Undress">>
Emily also undresses and kneels down in front of you
<img src="images/emily/blowjob/first_bj/first_bj_lick.webp" />
<<alice>>WHAT THE HELL DO YOU THINK YOU'RE DOING?!<</alice>>
Emily quickly pulled off your cock, visibily scared by Alice. She grabs her clothes and quickly runs out of the room
<<alice>>This isn't over!<</alice>>
<<player>>Alice let me explain..<</player>>
<<alice>>Don't even try it, currently I cannot guarantee anything. We will talk tomorrow!<</alice>>
<<player>>(Shit this looks bad..)<</player>>
<<set $alice.story to 5>>
<<set $alice.stats.story[5].happenedDay to $day>>
<<set $emily.story to 10>>
[[Get dressed and leave the room->Corridor]]
<</linkreplace>>
<</linkreplace>><<if $emily.story === 4>>
<img src="images/emily/grope/intro_grope.webp" class="img-ambient">
<<emily>>You know, I read the first chapter of the book you gave me, it was really inspiring!.<</emily>>
<<player>>Cool! Do you already have set a goal for yourself?<</player>>
<<emily>>Yes, but I want to keep it to myself for now. I only can tell you that I have to step out of my comfort zone for it.<</emily>>
<<player>>This is okay! Take all the time you need. What do you mean by getting out of your comfort zone?<</player>>
<<emily>>Well.. first I want to build for confidence for my body. I searched online and some people suggest that physical touch can help here.<</emily>>
<<player>>Are you suggesting that I can help you with your goal by touching you?<</player>>
<<player>>(JACKPOT)<</player>>
While saying that you are closely watching Emily's reaction.
<<emily>>yes..<</emily>>
<<emily>>But only when I want it! No touching without asking!<</emily>>
<<linkreplace "Agree to conditions">>
<<player>>I agree to your conditions. I will only touch you when you want it<</player>>
<<player>>So should we start right now?<</player>>
<<emily>>If you want..<</emily>>
<<linkreplace "Lightly touch her">>
<img src="images/emily/grope/grope_0.webp">
@@You can now grope Emily in certain situations@@
@@Emily will tease you more often to get affirmation for her body@@
<<set $time = $time + 1>>
<<statChange "player.lust" +20>>
<<statChange "player.corruption" +2>>
<<statChange "emily.lust" +20>>
/* should be 5 after this */
<<set $emily.story to 5>>
[[Go back->Corridor]]
<</linkreplace>>
<</linkreplace>>
/* Iterative groping */
<<else>>
/* TODO in the future implement more context related groping events here */
<<goto "Groping">>
<</if>><<player>>Hey Emily, I got something for you.<</player>>
<<emily>>Oh, what is it?<</emily>>
<<player>>I thought you might need this<</player>>
<img src="images/shop/shop_dildo.webp" width="500" height="500">
Emily takes it from him curiously, unwrapping the paper to reveal a sleek, high-quality dildo inside.
Her eyes widen in shock as she looks up at her <<relationText "brother" "roommate">>
<<emily>>Where did you get this?<</emily>>
<<player>>It's not important, the important thing is that it'll make your life a hell of a lot easier when you're feeling horny and can't stop thinking about it.<</player>>
<<emily>>Thank you...<</emily>>
<<player>>Anytime, <<relationText "Sis" "roomie">>. Just remember, it's our little secret. Don't tell Alice I gifted that thing to you<</player>>
<<player>>(thinking: Lets hope she will use it in the near future..)<</player>>
<<set $emily.stats.spyMasturbating[2].timesDone to 1>>
[[Leave the room->Corridor]]<<set _willCaughtByAlice = random(0, 1) === 1>>
<<if random(0, 1) === 0>>
<img src="images/emily/grope/grope_kitchen_0.webp">
<<else>>
<img src="images/emily/grope/grope_kitchen_1.webp">
<</if>>\
<<player>>Fuck... Emily...<</player>>
<<emily>>Hey <<relationText "big brother" "roommate">>! I'm making food for us. Can you give me some help?<</emily>>
<<player>>Oh yeah, but I am not helping you with the food..<</player>>
<<set $emily.stats.groping['kitchen_grope'].timesDone to $emily.stats.groping['kitchen_grope'].timesDone + 1>>
<<if $alice.story >= 1 && _willCaughtByAlice>>
Just about you wanted to leave the room, you see Alice in the doorway, looking at you
<<player>>(..shit..)<</player>>
<<aliceConvincing>>
<<set $alice.stats.caughtWithEmily.kitchen.timesDone += 1>>
[[Leave Alice->Corridor]]
<<else>>
[[Go back->Corridor]]
<</if>><img src="images/emily/grope/living_room_0.webp">
<<set _willCaughtByAlice = random(0, 1) === 1>>
You see emily laying on the couch with just panties and a top on, no pants to been anywhere.
<<player>>Well well, looks like someone is feeling a little naughty today..<</player>>
<<emily>>What are you doing here? I thought you were studying all day<</emily>>
She looks at you with a mixture of fear and excitement in her eyes.
<<emily>>You should not see me like this...<</emily>>
You crouch next down to her
<<player>>Oh, come on Em, don't act ashamed. Its not the first time I have seen you in your cute panties<</player>>
<<linkreplace "Start touching her perfect butt">>
<img src="images/emily/grope/living_room_1.webp">
<<emily>>Oh my gosh... bro, stop! Alice will find us!<</emily>>
<<player>>Ah, but it's starting to feel so right. You're such a sexy little thing, Em<</player>>
<<if $alice.story >= 1 && _willCaughtByAlice>>
<<linkreplace "You hear some steps closer from the corridor..">>
<<emily>>Oh my god, she's coming! Stop it now!<</emily>>
<<player>>Okay...<</player>>
<<alice>>Hello you two...<<relationText "Bro" "Roommate">> can we speak for a moment?<</alice>>
<<aliceConvincing>>
<<set $alice.stats.caughtWithEmily.livingRoom.timesDone += 1>>
[[Leave Alice->Corridor]]
<</linkreplace>>
<<else>>
[[Leave->Corridor]]
<</if>>
<</linkreplace>>While your <<relationText "sister" "roommate">> is laying on the rusty bed, you are grabbing a chair and sitting down opposite of her.
<<player>>You know, I never hoped we would be in this situation. Starting our own lives, while you still going to school, Alice quits her studies and I also did not start into the work-life.<</player>>
<<emily>>\
Well, I am also sad that <<relationText "our" "my">> parents passed away. But since some days I see this as a challenge.
There is nothing we can change in the past. We have to learn how to be *real* adults now.\
<</emily>>
\
Emily stands up. She is wearing a white shirt and her hair tucked behind her head.
<<linkreplace "Continue">>
<img src="images/emily/0.webp" class="img-ambient"/>
<<emily>>We have to stay positive. Lets face the challenges they come. I am just happy that I have you <<relationText "bro" "">><</emily>>
While her shirt is now under full light, you are noticing some dark spots under her shirt, which have to be her nipples.
They are not hard, but clearly visible.
<<linkreplace "Continue">>
<<statChange "player.corruption" +1>>
<<statChange "player.lust" +10>>
In that moment you realize that Emily not only had reached adultship in her mind, but also her body.
You are leaving the room with that in your head...
<<set $emily.story to 1>>
[[Leave...->Corridor]]
<</linkreplace>>
<</linkreplace>>You slowly open your eyes. It is very early morning
Emily is getting dressed. It seems that she does not have noticed that you are awake.
<<linkreplace "[Corruption 7] Peek on her">>
<<if $player.corruption >= 10 && $alice.story < 1>>
<<goto "Alice finds you spying">>
<</if>>\
<<if $player.corruption >= 7>>
You see her changing into a beige dress. It is quite short, although not as short to call it shameless. You get a glimpse at her butt. You feel your hard on pressing against your pants and are beginning to feel uncomfortable
<img src="images/emily/dressing_static_0.webp" class="img-ambient mt-4"/>
<<linkreplace "She notices you are awake..">>
<<emily>>I saw you looking at me while I was changing<</emily>>
<<player>>I couldn't help it, Alice. You look incredible in that dress<</player>>
<<emily>>Do you like what you see?<</emily>>
She asks that whit a noticeable smirk on her face, while running her hand down the front of her dress and over her cleavage.
Your heart starts to beat faster.
<<player>>I've always liked how beautiful you are<</player>>
You say that honestly while feeling a sudden urge to touch her but restraining yourself.
<<emily>>Do you like what you see?<</emily>>
She repeated the question, taking a step closer to him as she did so.
<<player>>I-I should probably go<</player>>
<<if $emily.corruption >= 15>>\
<<linkreplace "She signals you to stop">>\
<<emily>>Stop!<</emily>>
<<emily>>I think today I don't feel the dress. I think I will switch back into my white pants.<</emily>>
<<emily>>Please look away<</emily>>
<<linkreplace "Look away">>
After some seconds..
<<emily>>Now look! Do you like these?<</emily>>
<video autoplay loop>
<source src="images/emily/dressing_2.mp4" type="video/mp4">
</video>
<<player>>Ehm... Yes... I like them a lot..<</player>>
Your heart starts to beat even faster now. You are thinking that you should get a cold shower immediately.
<<linkreplace "Event: [Corruption 15, Emily Corruption 15, Gave first chapter of book] Ask her if you can touch her">>
<<if $player.corruption >= 15 and $emily.corruption >= 15 && $emily.story >= 4>>
<<goto "Get dressed groping">>
<<else>>
@@Not corrupted enough or first chapter not given to her@@
<</if>>
<</linkreplace>>
<<statChange "player.lust" 50>>
<<statChange "player.corruption" 3>>
<</linkreplace>>
<</linkreplace>>
<<elseif $emily.corruption >= 7>>
<<linkreplace "Ask her why she did tease you">>
<<emily>>It's fun! Your head starts getting red and you are starting to loose your speech more.<</emily>>
<<emily>>And I //know// you like to look at me<</emily>>
She now smirks way more after saying that. Maybe she knows that are more attracted to here more than you think.
<img src="images/emily/dressing_1.webp" class="event-image"/>
<<statChange "emily.corruption" +2>>
<</linkreplace>>
<<else>>\
<<emily>>Wait, don't you want to know why I did tease you?<</emily>>
<<linkreplace "Ask her">>
<<player>>Why did you do it?<</player>>
<<emily>>Mhhmm now I don't want to tell you. See you later<</emily>>
<<player>>Hmm that was weird<</player>>
<<statChange "emily.corruption" +2>>
<</linkreplace>>
<</if>>\
<</linkreplace>>\
<<else>>\
@@Not corrupted enough@@
<</if>>\
<</linkreplace>>\
<<if $alice.story >= 4>>
[[Go to Alice for the morning panty check->Alice Bedroom]]\
<</if>>\
<<set $emily.awake to true>>
[[Get up->Your room]]You here some moaning from your room.
<<linkreplace "Open the door">>
<<set _eventNumber = random(0, 1)>>\
<<if $inventory.dildo === true && $emily.stats.spyMasturbating[2].timesDone >= 1 && _eventNumber === 0>>
You see your <<relationText "sister" "roommate">> on the ground, using the dildo you gave her.
She is moaning and seems to be enjoying herself.
You can't help but feel a little aroused yourself.
<<set _dildoEventNumber = random(0, 3)>>
<<print
'<img src="images/emily/masturbating/solo_dildo_'
+ _dildoEventNumber
+ '.webp">'
>>
/* 3 is offset for the previous events */
<<set $emily.stats.spyMasturbating[_dildoEventNumber + 2].timesDone to $emily.stats.spyMasturbating[_dildoEventNumber + 2].timesDone + 1>>
<<statChange "emily.lust" 0>>
<<statChange "player.lust" +20>>
[[Silently close the door->Corridor]]
<<else>>
You see your <<relationText "sister" "roommate">> laying on her bed. You had the assumption she was more aroused in the last hours, but you did not expect that.
<<print
'<img src="images/emily/masturbating/solo_hand_'
+ random(0, 2)
+ '.webp">'
>>
<<statChange "emily.lust" 0>>
<<statChange "player.lust" +20>>
/* only when not having the dildo yet */
<<if $emily.stats.spyMasturbating[2].timesDone === 0>>
<<player>>Maybe I should buy her something from an online shop that will make her already comfortable of having something inside her...<</player>>
<</if>>
<<set $time = $time + 1>>
<<set $emily.stats.spyMasturbating[0].timesDone to $emily.stats.spyMasturbating[0].timesDone + 1>>
[[Silently close the door->Corridor]]
<</if>>
<</linkreplace>>
/* TODO ideally this is not shown when the player clicks the option above */
<<linkreplace "Don't enter">>
<<set _newLust to -($emily.lust / 2)>>
<<statChange "emily.lust" _newLust>>
<<goto "Corridor">>
<</linkreplace>><<player>>Alice, come here! I finished the bathroom!<</player>>
<<alice>>Im coming!<</alice>>
Some seconds later..
<<alice>>Wow thats really impressive..<</alice>>
<<player>>Thanks. Do you want to try it out?<</player>>
<<alice>>Yes, absolutely. But alone...<</alice>>
<<player>>Alright, I am leaving<</player>>
<<player>>(temporarily..)<</player>>
<<linkreplace "Leave the room and spy">>
Alice starts undressing. She does not notice you at all. It seems like she is so happy, she starts moving her hips a little like she is dancing.
<img src="images/events/rebuilding/bathroom_finished_0.webp">
<<linkreplace "Watch as she enters the shower">>
<img src="images/events/rebuilding/bathroom_finished_1.webp">
For some reason she really exposes her firm ass to you. Does she know you are there?
<<set $houseRebuilding to 4>>
<<statChange 'player.lust' +20>>
[[Better Leave->Corridor]]
<</linkreplace>>
<</linkreplace>><<player>>Emily, Alice, Come here!<</player>>
After a few seconds your <<relationText "sisters" "roommates">> come into the new living room.
<<alice>>I never thought we'd get this done so quickly.<</alice>>
<<emily>>Can we have a party to celebrate?<</emily>>
<<player>>I think that can be arranged.<</player>>
Alice shoots you a warning look as Emily bounces off excitedly, her blonde pigtails bobbing with each step.
You turn back to Alice.
<<player>>You're going to have to keep an eye on her. She's a handful.<</player>>
<<alice>>Don't worry, I've got her covered.<</alice>>
Emily returns with her phone and begins blasting some music through the speakers.
The siblings let loose, dancing and laughing together wildly as if they were normal again.
As the evening wears on, you can't help but steal glances at your <<relationText "sisters" "roommates">>, your thoughts turning dark and forbidden.
<<linkreplace "Later at night">>
The party is in full swing, fueled by alcohol and music.
Alice is sitting on the couch, her skirt hiking up as she dances with a bottle of beer.
Emily is spinning around the room, lost in the music, her tank top riding up to reveal her flat stomach.
<img src="images/emily/dancing_0.webp">
<<linkreplace "Think about Emily">>
While looking at Emily, you start thinking about what opportunities this whole now living situations offers.
There is no one to stop you from doing anything you want with your <<relationText "sisters" "roommates">>.
Maybe the sad death of your parents is not so bad after all...
<<script>>
State.variables.inventory = window.useMaterialsForRoomBuilding(State.variables.inventory, State.variables.livingRoom)
<</script>>
<<set $livingRoom.rebuildingStep to 4>>
<<set $houseRebuilding to 2>>
<<statChange "player.corruption" +3>>
[[Go back->Corridor]]
<</linkreplace>>
<</linkreplace>><<if $houseRebuilding >= 4>>
<img src="images/events/shower/shower_default.webp">
<<else>>
<<player>>We really have to fix that damn shower...<</player>>
<img src="images/events/shower/shower_bucket.webp">
<</if>>
You feel fresh and clean!
[[Finish->Bathroom]]<<player>>Hey Alice, whats up?<</player>>
<<alice>>That was quite a celebration, wasn't it?<</alice>>
<<player>>Yeah it was quite fun<</player>>
<<alice>>I also wanted to talk with you. Now that we have a room where we can stay, we should fix the bathroom. I need a warm shower.<</alice>>
<<player>>I agree. I will start with it tomorrow<</player>>
<<alice>>Nice! You know, if you need some materials, I can check behind the cafe I work in every day if I find something useful.<</alice>>
<<set $houseRebuilding to 3>>
[[Leave->Corridor]]You are searching the old kitchen for some coffee. You find some in the shelf and brew yourself a cup. You are sitting down on the table and enjoying a moment of silence after the last days.
<img src="images/events/rebuilding/breakfast_coffee.webp" class="img-ambient">
<<linkreplace "Someone enters the room">>
<<player>>Good Morning! We should start working on the house soon<</player>>
<<emily>>Agree. I' cant wait until I get my own room. I think it is still unfair that Alice gets her own room<</emily>>
<<alice>>First off, I am older than you. Secondly, I have to get up early for my job and we both don't want you to wake up and getting annoyed<</alice>>
<<alice>>But I agree with our <<relationText "brother" "roommate">>.We have to start doing something<</alice>>
<<linkreplace "Suggest starting with the living room">>
<<player>>I think we should start with creating a living room. This one is by far most complete already. Also we can relax there after the hard work which we will need to do with the other rooms<</player>>
<<emily>>I still would like my own room more, but I can see your point. What should we do to start with?<</emily>>
<<player>>We should split the task. First we need wood for the floor. We don't have to craft furniture, I think there are enough things laying around. Secondly we need nails for fixing the broken windows. And lastly we need to fix the chairs and the table. We need metal scrap for that<</player>>
<<alice>>I think I can organize some metal scrap from my workplace. My boss just dumped 2 crates of all random stuff in the back alley of the store, there should be something useful in it<</alice>>
<<emily>>Then I will search for nails. I am sure I will find some in the other rooms<</emily>>
<<player>>Okay, then I will clean up the old living room and find some wooden planks<</player>>
<<alice>>Sounds like a plan!<</alice>>
<<linkreplace "[How to rebuild the house]">>
@@The story progresses with rebuilding the house and you building a life for you and your <<relationText "sisters" "roommates">>@@
@@To rebuild the house, you need 2 things: materials & effort@@
@@Materials can be acquired through different ways. You can search for them yourself in the house, buy them in the Workshop (unlocked later) or your <<relationText "sisters" "roommates">> will bring some as the time goes on.@@
@@Effort basically means that you have to do work in the specific rooms. There is no gameplay itself to it, but different things can happen during that time@@
<<set $houseRebuilding to 1>>
<<set $player.story to 0>>
<<set $time = $time + 1>>
[[Go back-> Kitchen]]
<</linkreplace>>
<</linkreplace>>
<</linkreplace>><img src="images/events/intro/nyc.webp">
__Settings__
<<radiobutton "$familyRelationship" true checked>> ''Real''
You lived together with your father, mother and 2 (step)sisters in New York
<<radiobutton "$familyRelationship" false>> ''Friends of the family''
Your biological parents died when you very very young. Since then the family of a friend adopted you and now you are living with their father, their mother and 2 roommates.
<<linkreplace "New York City. The concrete jungle that never sleeps. For you, this city has been your home for as long as you can remember.">>
\
Sharing an opulent apartment with your parents and your <<relationText "sisters" "roommates">>, Emily (18) and Alice (25), you grew up surrounded by wealth and luxury.
<<linkreplace "The family">>
<img src="images/events/intro/father.webp">
Your father, a successful lawyer, provides for all the family's every needs.
The high-rise penthouse apartment is a testament to his success, but it comes at a price.
The exorbitant mortgage payments have left him struggling to keep up with the loan.
You often heard your parents arguing about money late at night, their voices muffled by the thick walls.
<img src="images/events/intro/dispute.webp">
Emily and Alice lived relatively normal lives for teenagers living in the city that never sleeps.
Emily attended school during the day while Alice balanced her studies with a part-time job at a trendy coffee shop.
<<linkreplace "The incident">>
But one fateful night changes everything.
You woke up to the sound of sirens outside your apartment window.
Rushing to the balcony, you saw the mangled wreckage of his parents' car, an eerie orange glow illuminating the devastation below.
The next few days are a blur of hospital visits, funeral arrangements, and tearful goodbyes as they say farewell to your beloved parents.
You, Emily, and Alice grieve together, your futures uncertain in the wake of this tragedy.
<img src="images/events/intro/funeral.webp">
<<linkreplace "The way forward">>
At the reading of your parents' will, you learn that they will soon be evicted from their apartment due to your father's unpaid debts.
With nowhere else to go, you inherit a small, run-down house in the rural areas of Michigan.
A summer vacation home built by your grandfather, left half-finished and untouched for years.
<img src="images/events/intro/old_house.webp" class="img-ambient">
You are faced with a dilemma: rebuild this dilapidated house as a new family home or sell it off for quick cash.
As you ponder the uncertain future, you realize that rebuilding the old homestead could be just what you need – a chance to come together as a <<relationText "family" "friend group">> and start a new life in a place away from the hustle and bustle of the city life.
But little do you know, this move will lead to more than just physical reconstruction. In this old house, hidden secrets, forbidden desires, and unexpected bonds will emerge, forever changing the course of your life...
[[Start the journey->Arrival]]
<</linkreplace>>
<</linkreplace>>
<</linkreplace>>
<</linkreplace>><<print
'<img src="images/rooms/masturbating/masturbating_'
+ random(0, 1)
+ '.webp">'
>>
<<if $alice.story === 2>>
<<goto 'Alice Convincing Pantiless'>>
<<elseif $alice.story >= 6 && random(0, 3)>>
<<linkreplace "You hear the door opening">>
<<alice>>Oh my god... Bro, what are you doing?<</alice>>
<<player>>Alice! I didn't know anyone was home yet...<</player>>
<<alice>>I can see that... I've never seen you like this before. Are you always horny?<</alice>>
<<player>>Well, when I'm alone and no one's around to help me, yeah...<</player>>
Alice looks at your laptop
<<alice>>I think it's kind of hot... Do you mind if I join you?<</alice>>
<<player>>Sure<</player>>
<<linkreplace "Continue watching">>
<<alice>>Don't you want to finish what you started?<</alice>>
<<player>>Mhhmm I don't feel really comfortable with you laying next to me..<</player>>
<<alice>>Well then let me help you. Cant let you stay that hard like that<</alice>>
<img src="images/alice/tension_relief/porn_hj.webp">
<<statChange "player.lust" 0>>
<<statChange "alice.corruption" +2>>
<<set $alice.stats.tension_relief.watching_porn.timesDone to $alice.stats.tension_relief.watching_porn.timesDone + 1>>
<</linkreplace>>
<</linkreplace>>
<<else>>
<<player>>Man I wish I would have something to look at..<</player>>
<<statChange "player.lust" 0>>
<</if>>
[[Go back-> Your room]]<<newmeter 'playerLust' 1>>
<<colors 'red' 'yellow'>>
<<sizing '100%'>>
<</newmeter>>
<<newmeter 'emilyLust' 1>>
<<colors 'red' 'yellow'>>
<<sizing '100%'>>
<</newmeter>>
<<newmeter 'aliceLust' 1>>
<<colors 'red' 'yellow'>>
<<sizing '100%'>>
<</newmeter>>
/* global config */
<<set $maxLust to 100>>
<<set setup.DAYS to ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]>>
<<set setup.DAY_TIMES to ["Early Morning", "Morning", "Afternoon", "Evening", "Night"]>>
/* global variables */
<<set $day to 0>>
<<set $time to 0>>
<<set $familyRelationship to true>>
<<set $displayNamesInSpeech to true>>
/* storyvariables */
<<set $emilyOwnRoom to false>>
<<set $houseRebuilding to 0>>
<<set $inventory to {
wood: 0,
nails: 0,
metal: 0,
mirror: 0,
paint: 0
}>>
<<set $livingRoom to {
name: 'livingRoom',
rebuildingStep: 0,
rebuildingSteps: 4,
materialsNeeded: {
wood: 3,
nails: 1,
metal: 1,
mirror: 0,
paint: 0
},
materialsToHarvest: {
wood: 10,
nails: 0,
metal: 0,
mirror: 0,
paint: 0
}
}>>
<<set $bathroom to {
name: 'livingRoom',
rebuildingStep: 0,
rebuildingSteps: 4,
materialsNeeded: {
wood: 4,
nails: 2,
metal: 7,
mirror: 0,
paint: 0
},
materialsToHarvest: {
wood: 0,
nails: 0,
metal: 0,
mirror: 0,
paint: 0
}
}>>
<<set $corruptionBook to {
name: '',
currentChapter: -1,
chapters: [
{
topic: 'Identifying Your Personal Goals',
currentStep: 0,
stepsNeeded: 3,
extra: {}
},
{
topic: 'Trust others',
currentStep: 0,
stepsNeeded: 6,
extra: {}
},
{
topic: 'Perks of Oral Stimulation',
currentStep: 0,
stepsNeeded: 6,
extra: {}
}
]
}>>
<<set $player to {
name: 'player',
corruption: 0,
lust: 0,
story: -1,
money: 100,
spiedOnAliceToday: false,
stats: {
story: {
0: {
hint: 'Sit down in the kitchen',
}
},
house: {
0: {
hint: 'Talk with Alice & Emily in the Kitchen'
},
1: {
hint: 'Finish rebuilding of the living room. Search for Materials in the old Living Room, ask Emily for some or put Alice on search and finish the rebuilding'
},
2: {
hint: 'Talk with Alice in the living room'
},
3: {
hint: 'Collect the Materials for renovating the bathroom and finish the rebuilding'
}
}
}
}>>
<<set $alice to {
name: 'alice',
corruption: 0,
lust: 0,
story: 0,
stats: {
story: {
0: {
hint: 'xxx'
},
1: {
hint: 'Spy on Emily after you have reached 10 corruption',
happenedDay: -1
},
2: {
hint: 'Speak with Alice about her Proposal tomorrow. You might have to do more lewd things with Emily and get catched by her until she agrees',
happenedDay: -1
},
3: {
hint: 'Masturbate in your room and get caught'
},
4: {
hint: 'Check if she sticks to the agreement in the morning in her room',
},
5: {
hint: 'Progress further in Emily\'s story',
happenedDay: -1
},
6: {
hint: 'Talk with Alice in the Living room tomorrow'
}
},
caughtWithEmily: {
/* eventGroup 0 */
'bedroom': {
eventGroup: 0,
timesDone: 0,
hint: '[Random] Do some grope training with Emily and get caught by Alice'
},
'kitchen': {
eventGroup: 0,
timesDone: 0,
hint: '[Random, during the day] Have a little fun with Emily in the kitchen while she is cooking'
},
'shower': {
eventGroup: 0,
timesDone: 0,
hint: '[Random, during the day] After fixing the bathroom and giving emily a dildo, someone will occupy the bathroom for a longer time'
},
'livingRoom': {
eventGroup: 0,
timesDone: 0,
hint: '[Random, during the day] Have a little fun with Emily in the living room'
}
/* eventGroup 1 */
},
visualStimulation: {
0: {
timesDone: 0,
hint: '[Random] Ask Alice for help in her room'
},
1: {
timesDone: 0,
hint: '[Random] Ask Alice for help in her room'
},
2: {
timesDone: 0,
hint: '[Random] Ask Alice for help in her room'
},
3: {
timesDone: 0,
hint: '[Random] Ask Alice for help in her room'
},
},
pantilessTest: {
0: {
timesDone: 0,
hint: '[Random, during the day] Catch Alice around the house and check if she sticks to your agreement'
},
1: {
timesDone: 0,
hint: '[Random, during the day] Catch Alice around the house and check if she sticks to your agreement'
},
2: {
timesDone: 0,
hint: '[Random, during the day] Catch Alice around the house and check if she sticks to your agreement'
},
'horny': {
timesDone: 0,
hint: '[Random, during the day] Test if Alice is pantiless when with her Lust >= 50. To increase lust test her in the morning in her room.'
},
},
morningPantyTest: {
0: {
timesDone: 0,
hint: '[Random] Do a Panty check in Alice room in the morning'
},
1: {
timesDone: 0,
hint: '[Random] Do a Panty check in Alice room in the morning'
},
2: {
timesDone: 0,
hint: '[Random] Do a Panty check in Alice room in the morning'
},
3: {
timesDone: 0,
hint: '[Random] Do a Panty check in Alice room in the morning'
},
4: {
timesDone: 0,
hint: '[Random] Do a Panty check in Alice room in the morning'
},
5: {
timesDone: 0,
hint: '[Random] Do a Panty check in Alice room in the morning'
},
6: {
timesDone: 0,
hint: '[Random] Do a Panty check in Alice room in the morning'
},
7: {
timesDone: 0,
hint: '[Random] Do a Panty check in Alice room in the morning'
},
8: {
timesDone: 0,
hint: '[Random] Do a Panty check in Alice room in the morning'
},
'corrupted_and_horny': {
timesDone: 0,
hint: '[Random] Have at least 50 corruption, high lust >= 70 and then do a panty check in her room'
},
},
tension_relief: {
bathroom: {
timesDone: 0,
hint: 'Go to the bathroom after you repaired the shower with Lust >= 60'
},
watching_porn: {
timesDone: 0,
hint: '[Random] Masturbate in your room'
},
cum_on_clothes: {
timesDone: 0,
hint: '[Random] Go to Alice bedroom and ask for relief'
},
boobjob: {
timesDone: 0,
hint: '[Random] Go to Alice bedroom and ask for relief'
},
rough_bj: {
timesDone: 0,
hint: '[Random] Go to Alice bedroom with very high Lust and ask for relief>= 90'
},
bj_0: {
timesDone: 0,
hint: '[Random] Go to Alice bedroom and ask for relief'
},
bj_1: {
timesDone: 0,
hint: '[Random] Go to the living room and ask Alice for relief'
},
}
},
job: {
currentXP: 0,
level: 0,
jobLevel: {
1: {
neededExperience: 100,
hint: 'Let her collect 15 wood'
},
2: {
neededExperience: 200,
hint: 'Let her collect 15 metal'
},
3: {
neededExperience: 300,
hint: 'Let her collect 15 nails'
}
},
current: 'none', // 'wood', 'metal', 'nails'
workingSince: 0, // in days
collected: {
wood: 0,
nails: 0,
metal: 0,
paint: 0,
mirror: 0
}
}
}>>
<<set $emily to {
name: 'emily',
corruption: 0,
lust: 0,
story: 0,
awake: false,
stats: {
story: {
0: {
hint: 'xxx',
},
1: {
hint: 'Talk with her in your room after early morning',
},
2: {
hint: 'Look at her until you have 7 corruption, then spy on her in the morning. Increase her corruption to 5 during peeking, then ask her for materials multiple times. (Needed to attend the meeting in the kitchen)',
},
3: {
hint: 'Keep spying on her until you can talk with her in your room',
},
4: {
hint: 'Continue writing the corruption book in your room & give it to her after finished',
},
5: {
hint: 'Spy on her dressing in the early morning until some new opportunity appears',
},
6: {
hint: 'After emily has 20 corruption, talk with Emily in your room during the day',
},
7: {
hint: 'Finish writing the second chapter of the book and talk with her in your room with her corruption > 35',
},
8: {
hint: 'Talk with her in your room in the evening',
},
9: {
hint: 'Finish writing the third chapter of the book and talk with her in your room',
},
10: {
hint: 'Talk with Emily in the Living room with her lust above 50',
}
},
groping: {
0: {
timesDone: 0,
hint: '[Random] Try to do some grope training with her in her room',
},
1: {
timesDone: 0,
hint: '[Random] Try to do some grope training with her in her room',
},
2: {
timesDone: 0,
hint: '[Random] Try to do some grope training with her in her room',
},
3: {
timesDone: 0,
hint: '[Random] Try to do some grope training with her in her room',
},
4: {
timesDone: 0,
hint: '[Random] Try to do some grope training with her in her room',
},
5: {
timesDone: 0,
hint: '[Random] Try to do some grope training with her in her room',
},
6: {
timesDone: 0,
hint: '[Random] Try to do some grope training with her in her room',
},
7: {
timesDone: 0,
hint: '[Random] Try to do some grope training with her in her room with your lust higher 50 and her lust higher 50',
},
8: {
timesDone: 0,
hint: '[Random] Try to do some grope training with her in her room with your lust higher 50 and her lust below 50',
},
'kitchen_grope': {
timesDone: 0,
hint: '[Random] Go to the kitchen during daytime and interact with emily'
}
},
extendedGroping: {
0: {
timesDone: 0,
hint: '[Random] Try to do some extended grope training with her in her room'
},
1: {
timesDone: 0,
hint: '[Random] Try to do some extended grope training with her in her room'
},
2: {
timesDone: 0,
hint: '[Random] Try to do some extended grope training with her in her room'
},
3: {
timesDone: 0,
hint: '[Random] Try to do some extended grope training with her in her room and her lust higher 60'
},
4: {
timesDone: 0,
hint: '[Random] Try to do some extended grope training with her in her room and her lust higher 60'
}
},
handjob: {
0: {
timesDone: 0,
hint: '[Random] Try to do some handjob training with her in her room'
},
1: {
timesDone: 0,
hint: '[Random] Try to do some handjob training with her in her room'
},
2: {
timesDone: 0,
hint: '[Random] Try to do some handjob training with her in her room'
},
3: {
timesDone: 0,
hint: '[Random] Try to do some handjob training with her in her room'
},
4: {
timesDone: 0,
hint: '[Random] Try to do some handjob training with her in her room'
},
5: {
timesDone: 0,
hint: '[Random] Try to do some handjob training with her after she has tasted your cum'
},
},
spyMasturbating: {
0: {
timesDone: 0,
hint: 'Spy on Emily when her lust is >= 50% in your room'
},
1: {
timesDone: 0,
hint: 'Buy a dildo in the online shop on your phone'
},
2: {
timesDone: 0,
hint: 'Give emily the dildo you bought in your room'
},
// dildo0
3: {
timesDone: 0,
hint: '[Random] Spy on emily when she is horny in your room'
},
// dildo1
4: {
timesDone: 0,
hint: '[Random] Spy on emily when she is horny in your room'
},
// dildo2
5: {
timesDone: 0,
hint: '[Random] Spy on emily when she is horny in your room'
},
shower0: {
timesDone: 0,
hint: '[Random] Go to the shower after you bought emily a dildo'
},
shower1: {
timesDone: 0,
hint: '[Random] Go to the shower after you bought emily a dildo'
}
}
}
}>>
<<include "Time">>
<<include "Text Widgets">>
<<include "Alice Job">>
<<include "Next Morning">>
<<include "Emily Status">>
<<include "Emily Speech">>
<<include "Player Status">>
<<include "Alice Speech">>
<<include "Player Speech">>
<<include "Alice Status">>
<<include "Alice Convincing">>
<<script>>
Config.saves.maxAutoSaves = 3
window.constructionPossible = (inventory, room) => {
const enoughWood = inventory.wood >= room.materialsNeeded.wood
const enoughNails = inventory.nails >= room.materialsNeeded.nails
const enoughMetal = inventory.metal >= room.materialsNeeded.metal
const enoughMirror = inventory.mirror >= room.materialsNeeded.mirror
const enoughPaint = inventory.paint >= room.materialsNeeded.paint
return [enoughWood, enoughNails, enoughMetal, enoughMirror, enoughPaint].filter(v => v === false).length === 0
}
window.useMaterialsForRoomBuilding = (inventory, room) => {
inventory.wood -= room.materialsNeeded.wood
inventory.nails -= room.materialsNeeded.nails
inventory.metal -= room.materialsNeeded.metal
inventory.mirror -= room.materialsNeeded.mirror
inventory.paint -= room.materialsNeeded.paint
return inventory
}
window.getMaterialsGifted = (inventory, possibleMaterials, maxGifted, character) => {
const MATERIALS = ['wood', 'nails', 'metal', 'mirror', 'paint']
if (possibleMaterials.every(m => MATERIALS.includes(m))) {
const giftedMaterial = possibleMaterials[Math.floor(Math.random()*possibleMaterials.length)]
const amount = Math.floor(Math.random() * maxGifted + 1)
inventory[giftedMaterial] += amount
return `${character} gave you ${amount} ${giftedMaterial}!`
}
console.error(`getMaterialsGifted: Materials ${possibleMaterials.join(',')} not possible`)
return ''
}
window.aliceIsConvinced = (events, eventGroupToComplete) => {
if (eventGroupToComplete === undefined) {
throw new Error('eventGroupToComplete has to be defined!')
}
// at least 5 times player has to be caught
const missing = Object.values(events).filter(event => event.eventGroup === eventGroupToComplete).map(event => event.timesDone).reduce((partialSum, a) => partialSum + a, 0)
return 5 <= missing
};
window.aliceConvincedEventsMissing = (events, eventGroupToComplete) => {
if (eventGroupToComplete === undefined) {
throw new Error('eventGroupToComplete has to be defined!')
}
// at least 5 times player has to be caught
const missing = Object.values(events).filter(event => event.eventGroup === eventGroupToComplete).map(event => event.timesDone).reduce((partialSum, a) => partialSum + a, 0)
return 5 - missing
};
window.bookChapterDone = (book, chapter) => {
const chapterIndex = chapter - 1
if (chapter > book.currentChapter) {
return true
}
if (chapter < book.currentChapter) {
return false
}
const current = book.chapters[chapter].currentStep
const needed = book.chapters[chapter].stepsNeeded
return current === needed
}
<</script>><img src="images/cw.webp" style="width: 100%" class="img-ambient">
Hello There!
Welcome to Crimson Whispers, a story about a young man building a life with some hot girls in an old house after the tragic death of his parents.
<<linkreplace "disclaimer">>
This is a work of fiction. Names, characters, businesses, places, events, locales, and incidents are either the products of the author's imagination or used in a fictitious manner. Any resemblance to actual persons, living or dead, or actual events is purely coincidental.\
All characters in this story are 18 years or older.\
There are explicit scenes in this story. If you are not comfortable with that, please leave now.\
There is no blood relation between the characters in this story.
<</linkreplace>>
This is actually my first dip in the world of lewd games, I can't tell how it will turn out.
If you already like the game, you can checkout my <img src="images/kofi_logo.svg" height="16" style="margin: 0; display: inline-block; min-width: unset"/> page <a target="_blank" href="https://ko-fi.com/dsigames">here</a>, my <img src="images/ss_logomark.webp" style="min-width: unset;" class="h-[16px] w-[16px] !m-0 !inline-block"/><a target="_blank" href="https://subscribestar.adult/dsi-games">SubscribeStar</a> or search for the game on <a target="_blank" href="https://f95zone.to/threads/crimson-whispers-v0-1-0-dirtysiblinginc.238650/">F95zone</a>.
<<linkreplace "Changelog">>
!!!v0.2.0
This version mostly focusses on Alice. Images from 120 to 159 (+32%), Words from 6.308 to 11.376 (+80%)
__old saves are not compatible! Please start a new game__
* Added
** Added Bathroom repair
** Added storyline for Alice with 6 story-events and 29 repeatable events
** You can now send Alice to gather specific materials
** Added 3 story events and 3 repeatable events for Emily
** settings menu to enable/ disable character images in dialogues
* Changed
** improved dialog readability
** Replaced some stat-texts with icons
** several corruption requirements
** several corruption & lust gains/ decreases
** improved stat changes readability
** extended some events from Emily to fit to Alice now events
** adjusted some hints to be more clear
* Fixes
** typos
** reduce whitespace irregularities (still not optimal though)
** prevent some events to progress dayTime to a undefined state
!!!v0.1.0 (demo)
* initial release
<</linkreplace>>
[[Start the story->Intro]]
[[Skip the Intro (uses default settings)->Arrival]]!Inventory
wood: $inventory.wood
nails: $inventory.nails
metal: $inventory.metal
mirrors: $inventory.metal
paint: $inventory.paint
<<return back>><<widget aliceConvincing>>
<<linkreplace "Go speak with Alice">>
<<alice>>Do you want to explain yourself?<</alice>>
<<player>>Let's talk about this. Remember what we discussed before - you, me, Emily, my problem..<</player>>
<<alice>>Yes I do... But that does not mean you have an excuse for corruption our little <<relationText "sister" "roommate">>!<</alice>>
<<player>>I know. But you also have to understand me... It is just in my nature... And I gave you an opportunity to help me which will prevent these situations<</player>>
<<alice>>I remember..<</alice>>
<<if $alice.story >= 1>>\
<<alice>>Come to my room later. I might be able to help you<</alice>>
<<else>>
@@Alice is thinking more about your offer@@
<<alice>>This time I let it slip through. But don't do this again!<</alice>>
<<player>>Sure...<</player>>
<</if>>
<</linkreplace>>
<</widget>><<widget aliceJob>>
---------------------------------------------
Select a resource to gather:
<<radiobutton "$alice.job.current" "none" checked>> ''No materials''
<<radiobutton "$alice.job.current" "wood">> ''Wood''
<<radiobutton "$alice.job.current" "metal">> ''Metal''
<<radiobutton "$alice.job.current" "nails">> ''Nails''
Current job level: @@color:orange;font-weight:900;<<print $alice.job.level>>@@
Needed XP for the next level: @@color:orange;font-weight:900;<<print ($alice.job.jobLevel[$alice.job.level].neededExperience) - ($alice.job.currentXP)>>@@
---------------------------------------------
<</widget>><<widget "alice" container>>\
<<say "Alice" `"images/alice/clothed/" + $aliceImageNumber + "_sm.webp"` $displayNamesInSpeech>><<print _contents>><</say>>\
<</widget>><<widget aliceStatus>>
<<nobr>>
<<set $aliceImageNumber to 0>>
<div class="playerCard" style="border-color: #d9f99d;">
<div class="characterProfileContainer" >
<img @src="'images/alice/clothed/' + $aliceImageNumber + '_sm.webp'" class="characterProfileImg">
<p>Alice</p>
</div>
Lust: <<showmeter 'aliceLust' `$alice.lust / $maxLust`>>
<div style="display: flex; align-items: center; gap: 4px; justify-content: center; padding-top: 6px; cursor: help" title="Corruption">
<svg style="height: 20px" fill="#8B0000" version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 45.405 45.404" xml:space="preserve" stroke="#8B0000"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"> <g> <g> <path d="M39.686,26.021c-0.137-0.285-0.426-0.465-0.742-0.467c-0.315,0-0.604,0.18-0.743,0.465 c-1.808,3.723-5.105,5.336-7.438,6.03c-0.345,0.103-0.583,0.416-0.59,0.775c-0.007,0.358,0.22,0.682,0.561,0.797 c1.646,0.555,3.027,0.812,4.112,0.923c-0.378,0.609-0.938,1.336-1.768,2.159c-2.154,2.137-9.46,5.075-14.382,4.663 c-1.065-0.09-2.47-0.385-3.115-1.284c-0.682-0.949-0.891-1.883-0.661-2.937c0.454-2.072,2.481-4.172,4.411-5.732 c0.765,0.761,1.447,1.439,1.989,1.979c0.741,0.738,1.939,0.737,2.68,0c3.676-3.658,13.658-13.594,13.86-13.795 c2.274-2.275,3.309-5.315,3.121-8.293c-0.161,0.112-0.331,0.209-0.518,0.27c-0.7,0.229-1.396,0.344-2.068,0.344 c-3.875,0-5.933-3.67-6.537-5.839c-0.295-1.06,0.32-2.158,1.377-2.46c0.836-0.239,1.57-0.617,2.227-1.052 c-4.084-2.265-9.325-1.679-12.802,1.77c-3.477-3.448-8.716-4.034-12.801-1.77c0.656,0.435,1.39,0.813,2.227,1.053 c1.057,0.302,1.672,1.401,1.376,2.46c-0.604,2.168-2.661,5.838-6.536,5.838c-0.673,0-1.369-0.115-2.068-0.344 c-0.187-0.061-0.357-0.157-0.518-0.27c-0.186,2.978,0.846,6.018,3.119,8.293c0.142,0.139,4.871,4.846,9.017,8.973 c-2.271,1.893-4.774,4.591-5.461,7.713c-0.473,2.15-0.018,4.271,1.316,6.132c1.233,1.718,3.262,2.706,6.031,2.938 c0.411,0.033,0.833,0.051,1.264,0.051c5.844,0,13.415-3.029,16.269-5.86c1.233-1.224,2.063-2.353,2.623-3.351 c0.765,1.358,1.44,2.795,1.94,3.938c0.145,0.331,0.487,0.529,0.847,0.489c0.358-0.04,0.649-0.31,0.719-0.663 C43.127,34.268,40.965,28.678,39.686,26.021z"></path> <path d="M5.479,9.674C6,9.844,6.482,9.919,6.927,9.919c3.39,0,4.61-4.375,4.61-4.375C8.189,4.587,6.087,2.04,5.029,0.381 C4.876,0.142,4.613,0,4.334,0C4.296,0,4.257,0.002,4.219,0.008C3.9,0.053,3.635,0.279,3.543,0.589 C1.806,6.409,5.479,9.674,5.479,9.674z"></path> <path d="M38.397,9.919c0.444,0,0.926-0.075,1.447-0.245c0,0,3.672-3.266,1.936-9.084c-0.092-0.311-0.355-0.537-0.676-0.581 C41.065,0.003,41.026,0,40.988,0c-0.277,0-0.54,0.143-0.692,0.381c-1.06,1.659-3.16,4.205-6.509,5.162 C33.787,5.543,35.007,9.919,38.397,9.919z"></path> </g> </g> </g></svg>
<div>
<span id="aliceCorruption">$alice.corruption</span>
</div>
</div>
</div>
<</nobr>>\
<</widget>><<widget "emily" container>>\
<<say 'Emily' `"images/emily/clothed/" + $emilyImageNumber + "_sm.webp"` $displayNamesInSpeech>><<print _contents>><</say>>\
<</widget>><<widget emilyStatus>>
<<nobr>>
<<if $emily.corruption >=30 >>
<<set $emilyImageNumber to 3>>
<<elseif $emily.corruption >= 20>>
<<set $emilyImageNumber to 2>>
<<elseif $emily.corruption >= 10>>
<<set $emilyImageNumber to 1>>
<<else>>
<<set $emilyImageNumber to 0>>
<</if>>
<div class="playerCard" style="border-color: #fecaca;">
<div class="characterProfileContainer">
<img @src="'images/emily/clothed/' + $emilyImageNumber + '_sm.webp'" class="characterProfileImg">
<p>Emily</p>
</div>
Lust: <<showmeter 'emilyLust' `$emily.lust / $maxLust`>>
<div style="display: flex; align-items: center; gap: 4px; justify-content: center; padding-top: 6px; cursor: help" title="Corruption">
<svg style="height: 20px" fill="#8B0000" version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 45.405 45.404" xml:space="preserve" stroke="#8B0000"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"> <g> <g> <path d="M39.686,26.021c-0.137-0.285-0.426-0.465-0.742-0.467c-0.315,0-0.604,0.18-0.743,0.465 c-1.808,3.723-5.105,5.336-7.438,6.03c-0.345,0.103-0.583,0.416-0.59,0.775c-0.007,0.358,0.22,0.682,0.561,0.797 c1.646,0.555,3.027,0.812,4.112,0.923c-0.378,0.609-0.938,1.336-1.768,2.159c-2.154,2.137-9.46,5.075-14.382,4.663 c-1.065-0.09-2.47-0.385-3.115-1.284c-0.682-0.949-0.891-1.883-0.661-2.937c0.454-2.072,2.481-4.172,4.411-5.732 c0.765,0.761,1.447,1.439,1.989,1.979c0.741,0.738,1.939,0.737,2.68,0c3.676-3.658,13.658-13.594,13.86-13.795 c2.274-2.275,3.309-5.315,3.121-8.293c-0.161,0.112-0.331,0.209-0.518,0.27c-0.7,0.229-1.396,0.344-2.068,0.344 c-3.875,0-5.933-3.67-6.537-5.839c-0.295-1.06,0.32-2.158,1.377-2.46c0.836-0.239,1.57-0.617,2.227-1.052 c-4.084-2.265-9.325-1.679-12.802,1.77c-3.477-3.448-8.716-4.034-12.801-1.77c0.656,0.435,1.39,0.813,2.227,1.053 c1.057,0.302,1.672,1.401,1.376,2.46c-0.604,2.168-2.661,5.838-6.536,5.838c-0.673,0-1.369-0.115-2.068-0.344 c-0.187-0.061-0.357-0.157-0.518-0.27c-0.186,2.978,0.846,6.018,3.119,8.293c0.142,0.139,4.871,4.846,9.017,8.973 c-2.271,1.893-4.774,4.591-5.461,7.713c-0.473,2.15-0.018,4.271,1.316,6.132c1.233,1.718,3.262,2.706,6.031,2.938 c0.411,0.033,0.833,0.051,1.264,0.051c5.844,0,13.415-3.029,16.269-5.86c1.233-1.224,2.063-2.353,2.623-3.351 c0.765,1.358,1.44,2.795,1.94,3.938c0.145,0.331,0.487,0.529,0.847,0.489c0.358-0.04,0.649-0.31,0.719-0.663 C43.127,34.268,40.965,28.678,39.686,26.021z"></path> <path d="M5.479,9.674C6,9.844,6.482,9.919,6.927,9.919c3.39,0,4.61-4.375,4.61-4.375C8.189,4.587,6.087,2.04,5.029,0.381 C4.876,0.142,4.613,0,4.334,0C4.296,0,4.257,0.002,4.219,0.008C3.9,0.053,3.635,0.279,3.543,0.589 C1.806,6.409,5.479,9.674,5.479,9.674z"></path> <path d="M38.397,9.919c0.444,0,0.926-0.075,1.447-0.245c0,0,3.672-3.266,1.936-9.084c-0.092-0.311-0.355-0.537-0.676-0.581 C41.065,0.003,41.026,0,40.988,0c-0.277,0-0.54,0.143-0.692,0.381c-1.06,1.659-3.16,4.205-6.509,5.162 C33.787,5.543,35.007,9.919,38.397,9.919z"></path> </g> </g> </g></svg>
<div>
<span id="aliceCorruption">$emily.corruption</span>
</div>
</div>
</div>
<</nobr>>\
<</widget>><<widget nextMorning>>
<<set $day += 1>>\
<<set $time to 0>>\
<<set $emily.awake to false>>\
/* alice material gathering */
<<script>>
window.checkAliceJob = (alice) => {
const MATERIAL_XP = 40
let gainedMaterialAmount = 0
if (alice.job.current !== 'none') {
switch (alice.job.level) {
case 1: {
gainedMaterialAmount = Math.floor(Math.random() * 2)
break
}
case 2: {
gainedMaterialAmount = Math.floor(Math.random() * 4)
break
}
case 3: {
gainedMaterialAmount = Math.floor(Math.random() * 6)
break
}
}
alice.job.collected[alice.job.current] += gainedMaterialAmount
alice.job.currentXP += gainedMaterialAmount * MATERIAL_XP
alice.job.workingSince += 1
}
// no materials gathered when no job assigned
}
<</script>>\
<<silent>>
<<= window.checkAliceJob(State.variables.alice)>>
<</silent>>\
<</widget>><<widget "player" container>>\
<<say 'You' `"images/player_avatar.webp"` $displayNamesInSpeech>><<print _contents>><</say>>\
<</widget>><<widget playerStatus>>
<<nobr>>
<div class="playerCard" style="border-color: #a5f3fc;">
<div class="characterProfileContainer">
<img src="images/player_avatar.webp" class="characterProfileImg">
<div class="playerCardInfo">
<p style="margin-bottom: 0">You</p>
<b style="display: flex; justify-content: center; gap: 4px; cursor: help;" title="Money">
<svg style="height: 20px;" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"> <path fill-rule="evenodd" clip-rule="evenodd" d="M10.2322 1.05711C9.8417 0.66659 9.20854 0.66659 8.81802 1.05711L1.03984 8.83529C0.649317 9.22581 0.649317 9.85898 1.03984 10.2495L1.74698 10.9566L13.7678 22.9774C14.1583 23.3679 14.7915 23.3679 15.182 22.9774L15.8811 22.2783L15.8891 22.2703L15.8972 22.2622L22.2456 15.9138L22.2531 15.9064L22.2605 15.8989L22.9601 15.1992C23.3507 14.8087 23.3507 14.1756 22.9601 13.785L22.2603 13.0852L22.2531 13.0779L22.2458 13.0707L10.9454 1.77027C10.9434 1.76825 10.9414 1.76623 10.9394 1.76422C10.9373 1.76221 10.9353 1.7602 10.9333 1.7582L10.2322 1.05711ZM8.11092 4.59264L4.57539 8.12817L4.57541 8.12818C5.35646 8.90923 5.35646 10.1756 4.57541 10.9566L4.57539 10.9566L8.81804 15.1992L13.0607 19.4419C13.8417 18.6608 15.1081 18.6608 15.8891 19.4419L19.4247 15.9064C18.6436 15.1253 18.6436 13.859 19.4247 13.0779L15.1894 8.84272C16.8413 10.5038 16.4772 13.197 14.8284 14.8457C13.1773 16.4969 10.4785 16.8597 8.81804 15.1992C7.1576 13.5388 7.52042 10.84 9.17159 9.18884C10.8203 7.54013 13.5135 7.17594 15.1746 8.82788L10.9393 4.59266C10.1583 5.3737 8.89198 5.37369 8.11093 4.59265C8.11093 4.59264 8.11093 4.59264 8.11092 4.59264ZM10.5858 10.6031C11.6683 9.52055 13.0851 9.56679 13.7678 10.2495C14.4505 10.9322 14.4967 12.349 13.4142 13.4315C12.3317 14.514 10.915 14.4677 10.2322 13.785C9.54954 13.1023 9.5033 11.6856 10.5858 10.6031Z" fill="#005c0f"></path> </g></svg>
<span id="playerMoney">$player.money</span><br>
</b>
</div>
</div>
Lust: <<showmeter 'playerLust' `$player.lust / $maxLust`>>
<div style="display: flex; align-items: center; gap: 4px; justify-content: center; padding-top: 6px; cursor: help" title="Corruption">
<svg style="height: 20px" fill="#8B0000" version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 45.405 45.404" xml:space="preserve" stroke="#8B0000"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"> <g> <g> <path d="M39.686,26.021c-0.137-0.285-0.426-0.465-0.742-0.467c-0.315,0-0.604,0.18-0.743,0.465 c-1.808,3.723-5.105,5.336-7.438,6.03c-0.345,0.103-0.583,0.416-0.59,0.775c-0.007,0.358,0.22,0.682,0.561,0.797 c1.646,0.555,3.027,0.812,4.112,0.923c-0.378,0.609-0.938,1.336-1.768,2.159c-2.154,2.137-9.46,5.075-14.382,4.663 c-1.065-0.09-2.47-0.385-3.115-1.284c-0.682-0.949-0.891-1.883-0.661-2.937c0.454-2.072,2.481-4.172,4.411-5.732 c0.765,0.761,1.447,1.439,1.989,1.979c0.741,0.738,1.939,0.737,2.68,0c3.676-3.658,13.658-13.594,13.86-13.795 c2.274-2.275,3.309-5.315,3.121-8.293c-0.161,0.112-0.331,0.209-0.518,0.27c-0.7,0.229-1.396,0.344-2.068,0.344 c-3.875,0-5.933-3.67-6.537-5.839c-0.295-1.06,0.32-2.158,1.377-2.46c0.836-0.239,1.57-0.617,2.227-1.052 c-4.084-2.265-9.325-1.679-12.802,1.77c-3.477-3.448-8.716-4.034-12.801-1.77c0.656,0.435,1.39,0.813,2.227,1.053 c1.057,0.302,1.672,1.401,1.376,2.46c-0.604,2.168-2.661,5.838-6.536,5.838c-0.673,0-1.369-0.115-2.068-0.344 c-0.187-0.061-0.357-0.157-0.518-0.27c-0.186,2.978,0.846,6.018,3.119,8.293c0.142,0.139,4.871,4.846,9.017,8.973 c-2.271,1.893-4.774,4.591-5.461,7.713c-0.473,2.15-0.018,4.271,1.316,6.132c1.233,1.718,3.262,2.706,6.031,2.938 c0.411,0.033,0.833,0.051,1.264,0.051c5.844,0,13.415-3.029,16.269-5.86c1.233-1.224,2.063-2.353,2.623-3.351 c0.765,1.358,1.44,2.795,1.94,3.938c0.145,0.331,0.487,0.529,0.847,0.489c0.358-0.04,0.649-0.31,0.719-0.663 C43.127,34.268,40.965,28.678,39.686,26.021z"></path> <path d="M5.479,9.674C6,9.844,6.482,9.919,6.927,9.919c3.39,0,4.61-4.375,4.61-4.375C8.189,4.587,6.087,2.04,5.029,0.381 C4.876,0.142,4.613,0,4.334,0C4.296,0,4.257,0.002,4.219,0.008C3.9,0.053,3.635,0.279,3.543,0.589 C1.806,6.409,5.479,9.674,5.479,9.674z"></path> <path d="M38.397,9.919c0.444,0,0.926-0.075,1.447-0.245c0,0,3.672-3.266,1.936-9.084c-0.092-0.311-0.355-0.537-0.676-0.581 C41.065,0.003,41.026,0,40.988,0c-0.277,0-0.54,0.143-0.692,0.381c-1.06,1.659-3.16,4.205-6.509,5.162 C33.787,5.543,35.007,9.919,38.397,9.919z"></path> </g> </g> </g></svg>
<div>
<span id="aliceCorruption">$player.corruption</span>
</div>
</div>
</div>
<</nobr>>\
<</widget>><<nobr>>
<<widget 'relationText'>>
/* relationship text widget by JAKE v0.3*/
<<if $familyRelationship == true>>
<<print $args[0]>>
<<else>>
<<print $args[1]>>
<</if>>
<</widget>>
<<widget 'statChange'>>
/* inspired by: stat change widget by JAKE v0.6*/
<<set _type to $args[0].split('.').at(-1)>>
<<set _person to $args[0].split('.')[0]>>
<<set _baseStyles = 'display: flex; justify-content: left; align-items: center; gap: 4px; '>>
<<switch _type>>
<<case "corruption">>
<<set _style = _baseStyles + "color:#8B0000">>
<<set _icon = '<svg style="height: 20px" fill="#8B0000" version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 45.405 45.404" xml:space="preserve" stroke="#8B0000"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"> <g> <g> <path d="M39.686,26.021c-0.137-0.285-0.426-0.465-0.742-0.467c-0.315,0-0.604,0.18-0.743,0.465 c-1.808,3.723-5.105,5.336-7.438,6.03c-0.345,0.103-0.583,0.416-0.59,0.775c-0.007,0.358,0.22,0.682,0.561,0.797 c1.646,0.555,3.027,0.812,4.112,0.923c-0.378,0.609-0.938,1.336-1.768,2.159c-2.154,2.137-9.46,5.075-14.382,4.663 c-1.065-0.09-2.47-0.385-3.115-1.284c-0.682-0.949-0.891-1.883-0.661-2.937c0.454-2.072,2.481-4.172,4.411-5.732 c0.765,0.761,1.447,1.439,1.989,1.979c0.741,0.738,1.939,0.737,2.68,0c3.676-3.658,13.658-13.594,13.86-13.795 c2.274-2.275,3.309-5.315,3.121-8.293c-0.161,0.112-0.331,0.209-0.518,0.27c-0.7,0.229-1.396,0.344-2.068,0.344 c-3.875,0-5.933-3.67-6.537-5.839c-0.295-1.06,0.32-2.158,1.377-2.46c0.836-0.239,1.57-0.617,2.227-1.052 c-4.084-2.265-9.325-1.679-12.802,1.77c-3.477-3.448-8.716-4.034-12.801-1.77c0.656,0.435,1.39,0.813,2.227,1.053 c1.057,0.302,1.672,1.401,1.376,2.46c-0.604,2.168-2.661,5.838-6.536,5.838c-0.673,0-1.369-0.115-2.068-0.344 c-0.187-0.061-0.357-0.157-0.518-0.27c-0.186,2.978,0.846,6.018,3.119,8.293c0.142,0.139,4.871,4.846,9.017,8.973 c-2.271,1.893-4.774,4.591-5.461,7.713c-0.473,2.15-0.018,4.271,1.316,6.132c1.233,1.718,3.262,2.706,6.031,2.938 c0.411,0.033,0.833,0.051,1.264,0.051c5.844,0,13.415-3.029,16.269-5.86c1.233-1.224,2.063-2.353,2.623-3.351 c0.765,1.358,1.44,2.795,1.94,3.938c0.145,0.331,0.487,0.529,0.847,0.489c0.358-0.04,0.649-0.31,0.719-0.663 C43.127,34.268,40.965,28.678,39.686,26.021z"></path> <path d="M5.479,9.674C6,9.844,6.482,9.919,6.927,9.919c3.39,0,4.61-4.375,4.61-4.375C8.189,4.587,6.087,2.04,5.029,0.381 C4.876,0.142,4.613,0,4.334,0C4.296,0,4.257,0.002,4.219,0.008C3.9,0.053,3.635,0.279,3.543,0.589 C1.806,6.409,5.479,9.674,5.479,9.674z"></path> <path d="M38.397,9.919c0.444,0,0.926-0.075,1.447-0.245c0,0,3.672-3.266,1.936-9.084c-0.092-0.311-0.355-0.537-0.676-0.581 C41.065,0.003,41.026,0,40.988,0c-0.277,0-0.54,0.143-0.692,0.381c-1.06,1.659-3.16,4.205-6.509,5.162 C33.787,5.543,35.007,9.919,38.397,9.919z"></path> </g> </g> </g></svg>'>>
<<case "lust">>
<<if _person === 'player'>>
<<set _icon = '<svg fill="#FF8DA1" width="20px" height="20px" viewBox="0 0 583 636" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><path d="M14.046,456.79c-5.005,-8.439 -9.686,-17.093 -14.027,-25.943c6.228,-8.032 12.934,-15.485 19.848,-21.754l263.906,-263.88c4.934,-4.933 8.094,-11.546 8.894,-18.613c5.36,-47.28 36.053,-87.213 80.093,-104.173l34.12,-13.16c59.533,-22.974 127.6,-0.054 158.32,53.266c18.587,32.267 22.16,70.814 9.8,105.747c-12.413,35.08 -39.293,62.813 -73.76,76.107c-16.147,6.24 -30.547,15.6 -42.773,27.826l-157.68,157.694c22.586,24.52 35.32,56.68 35.32,90.2c-0,47.856 -25.603,90.79 -64.827,114.329c-23.299,-4.019 -45.86,-10.203 -67.47,-18.337c0.279,-0.35 0.578,-0.685 0.843,-1.046c0.6,-0.813 1.147,-1.653 1.734,-2.48c1.506,-2.146 2.96,-4.32 4.333,-6.546c0.64,-1.04 1.227,-2.107 1.84,-3.16c1.2,-2.08 2.347,-4.187 3.413,-6.32c0.6,-1.187 1.174,-2.387 1.734,-3.6c0.96,-2.067 1.853,-4.16 2.693,-6.267c0.52,-1.293 1.027,-2.587 1.493,-3.893c0.76,-2.107 1.427,-4.24 2.08,-6.374c0.414,-1.333 0.827,-2.666 1.187,-4.026c0.587,-2.187 1.067,-4.4 1.533,-6.627c0.28,-1.333 0.587,-2.653 0.827,-3.987c0.427,-2.413 0.72,-4.866 1,-7.32c0.133,-1.16 0.32,-2.293 0.427,-3.453c0.306,-3.613 0.493,-7.24 0.493,-10.893c0,-18.187 -3.907,-35.907 -11.6,-52.68l-3.867,-8.427l0,-0.013l58.547,-58.534l167.067,-167.08c0.68,-0.68 1.426,-1.253 2.12,-1.92c-27.24,-5 -46.107,-19.586 -46.107,-38.013c0,-7.373 5.973,-13.333 13.333,-13.333c7.36,-0 13.334,5.96 13.334,13.333c-0,3.32 14.186,13.333 40,13.333c3.16,0 5.933,1.254 8.213,3.08c6.76,-3.92 13.747,-7.48 21.147,-10.333c27.186,-10.493 48.413,-32.413 58.213,-60.133c9.28,-26.2 7.053,-54.947 -5.787,-79.64c-0.6,0.08 -1.146,0.36 -1.773,0.36l-4.613,-0.014c-8.64,0.014 -24.134,-0.093 -29.467,2.107c-0.907,6.48 -6.467,11.467 -13.2,11.467c-7.36,-0 -13.333,-5.96 -13.333,-13.334c-0,-6.426 2.346,-12.16 6.8,-16.573c8.053,-8.04 21.013,-9.84 35.626,-10.227c-27.746,-25.426 -69.746,-33.973 -107.613,-19.4l-34.12,13.16c-34.747,13.4 -58.96,44.934 -63.2,82.307c-1.493,13.04 -7.36,25.28 -16.533,34.467l-264.867,264.773c-8.456,7.676 -16.702,17.408 -23.714,27.95Zm267.874,-8.017l-36.147,36.187c6.88,17.693 10.36,36.213 10.36,55.16c0,4.227 -0.226,8.427 -0.573,12.613c-0.107,1.307 -0.28,2.614 -0.427,3.92c-0.32,2.894 -0.706,5.787 -1.186,8.654c-0.254,1.466 -0.507,2.92 -0.8,4.373c-0.56,2.84 -1.227,5.653 -1.947,8.453c-0.333,1.294 -0.627,2.6 -1,3.88c-1.12,3.92 -2.373,7.8 -3.8,11.627c-0.307,0.8 -0.667,1.573 -0.987,2.373c-1.2,3.027 -2.48,6.04 -3.866,9c-0.707,1.494 -1.48,2.96 -2.227,4.44c-1.133,2.214 -2.32,4.414 -3.56,6.587c-0.907,1.587 -1.827,3.147 -2.787,4.693c-0.413,0.654 -0.773,1.334 -1.186,1.987c45.493,-12.8 77.653,-54.613 77.653,-102.613c0,-26.427 -9.907,-51.814 -27.52,-71.334Z" style="stroke:#010101;stroke-width:1px;"/></svg>'>>
<<else>>
<<set _icon = '<svg fill="#FF8DA1" height="20px" width="20px" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 186.204 186.204" xml:space="preserve"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"> <g> <g> <g> <path d="M95.517,0.799c-1.428-1.065-3.401-1.065-4.829,0c-24.681,18.399-40.01,53.768-40.01,92.302s15.329,73.903,40.009,92.302 c0.714,0.533,1.566,0.801,2.415,0.801c0.848,0,1.701-0.268,2.415-0.801c24.68-18.399,40.009-53.768,40.009-92.302 S120.197,19.198,95.517,0.799z M93.102,177.038c-21.255-17.393-34.343-49.203-34.343-83.937 c0-34.734,13.087-66.544,34.343-83.937c21.255,17.393,34.343,49.203,34.343,83.937S114.357,159.645,93.102,177.038z"></path> <path d="M90.687,51.391c-14.453,10.776-23.429,31.4-23.429,53.831c0,22.431,8.977,43.055,23.429,53.831 c0.718,0.533,1.566,0.802,2.415,0.802c0.848,0,1.697-0.268,2.415-0.801c14.453-10.776,23.429-31.4,23.429-53.831 c0-22.431-8.977-43.055-23.429-53.831C94.08,50.326,92.123,50.326,90.687,51.391z M110.865,105.222 c0,18.608-6.739,35.657-17.764,45.392c-11.024-9.734-17.764-26.783-17.764-45.392s6.739-35.657,17.764-45.392 C104.126,69.565,110.865,86.614,110.865,105.222z"></path> <path d="M48.673,11.819l-6.854-4.281l-2.139,3.425C25.926,32.964,18.354,62.135,18.354,93.101s7.572,60.137,21.326,82.138 l2.139,3.425l6.854-4.281l-2.143-3.429c-12.958-20.731-20.095-48.378-20.095-77.853c0-29.475,7.138-57.122,20.095-77.853 L48.673,11.819z"></path> <path d="M146.523,10.963l-2.139-3.425l-6.854,4.281l2.143,3.429c12.958,20.731,20.095,48.379,20.095,77.853 s-7.138,57.122-20.095,77.853l-2.143,3.429l6.854,4.281l2.139-3.425c13.755-22.001,21.326-51.172,21.326-82.138 S160.278,32.964,146.523,10.963z"></path> </g> </g> </g> </g></svg>'>>
<</if>>
<<set _style = _baseStyles + "color:#FF69B4">>
<<case "money">>
<<set _icon = '<svg style="height: 20px;" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"> <path fill-rule="evenodd" clip-rule="evenodd" d="M10.2322 1.05711C9.8417 0.66659 9.20854 0.66659 8.81802 1.05711L1.03984 8.83529C0.649317 9.22581 0.649317 9.85898 1.03984 10.2495L1.74698 10.9566L13.7678 22.9774C14.1583 23.3679 14.7915 23.3679 15.182 22.9774L15.8811 22.2783L15.8891 22.2703L15.8972 22.2622L22.2456 15.9138L22.2531 15.9064L22.2605 15.8989L22.9601 15.1992C23.3507 14.8087 23.3507 14.1756 22.9601 13.785L22.2603 13.0852L22.2531 13.0779L22.2458 13.0707L10.9454 1.77027C10.9434 1.76825 10.9414 1.76623 10.9394 1.76422C10.9373 1.76221 10.9353 1.7602 10.9333 1.7582L10.2322 1.05711ZM8.11092 4.59264L4.57539 8.12817L4.57541 8.12818C5.35646 8.90923 5.35646 10.1756 4.57541 10.9566L4.57539 10.9566L8.81804 15.1992L13.0607 19.4419C13.8417 18.6608 15.1081 18.6608 15.8891 19.4419L19.4247 15.9064C18.6436 15.1253 18.6436 13.859 19.4247 13.0779L15.1894 8.84272C16.8413 10.5038 16.4772 13.197 14.8284 14.8457C13.1773 16.4969 10.4785 16.8597 8.81804 15.1992C7.1576 13.5388 7.52042 10.84 9.17159 9.18884C10.8203 7.54013 13.5135 7.17594 15.1746 8.82788L10.9393 4.59266C10.1583 5.3737 8.89198 5.37369 8.11093 4.59265C8.11093 4.59264 8.11093 4.59264 8.11092 4.59264ZM10.5858 10.6031C11.6683 9.52055 13.0851 9.56679 13.7678 10.2495C14.4505 10.9322 14.4967 12.349 13.4142 13.4315C12.3317 14.514 10.915 14.4677 10.2322 13.785C9.54954 13.1023 9.5033 11.6856 10.5858 10.6031Z" fill="#005c0f"></path> </g></svg>'>>
<<set _style = _baseStyles + "color:#2E8B57">>
<<default>>
<<set _style = _baseStyles + "color:#4682B4">>
<</switch>>
//
<div @style="_style">
/* if value is 0 nullify the variable instead of adding it*/
<<if $args[1] === 0>>
<<set _person to $args[0].split('.')[0]>>
<<set _displayPerson = _person === 'player' ? 'Your' : _person + '\'s'>>
<<set _attribute to $args[0].split('.')[1]>>
<<print _icon>> <span style="text-transform: capitalize"><<print _displayPerson>></span> <span style="text-transform: capitalize"><<print _attribute>></span> goes down to <<print $args[1]>>
<<set State.active.variables[_person][_attribute] to 0>>
<<elseif $args[1] > 0>>
<<set _sign = "+">>
<<else>>
<<set _sign = "-">>
<</if>>
<<if $args.length !== 2>>
<<script>>
UI.alert("Invalid amount of arguments for statChange widget!");
<</script>>
<</if>>
<<if $args[0].split('.').length !== 2>>
<<script>>
UI.alert("Invalid statChange property path!");
<</script>>
<</if>>
/* only do adjustments when value is not null */
<<if $args[1] !== 0>>
<<set _person to $args[0].split('.')[0]>>
<<set _displayPerson = _person === 'player' ? 'Your' : _person + '\'s'>>
<<set _attribute to $args[0].split('.')[1]>>
<<print _icon>> <span style="text-transform: capitalize"><<print _displayPerson>></span> <span style="text-transform: capitalize"><<print _attribute>></span> goes <<print _sign === '+' ? 'up by (' : 'down by ('>><<print _sign>><<print Math.round(Math.abs($args[1]))>><<print ')'>>
<<set State.active.variables[_person][_attribute] += $args[1]>>
<</if>>
</div>
//
<</widget>>
<</nobr>><<widget currenttime>>
It is <<print setup.DAYS[$day % 7]>>, <<print setup.DAY_TIMES[$time]>><br>Day <<print $day>>
<</widget>><<set $time +=1>>
Time has passed
<<goto "Your room">>
/* [[Your room]] */You are going to sleep...
<<print
'<img src="images/rooms/sleeping/sleeping_'
+ random(0, 2)
+ '.webp">'
>>
<<nextMorning>>
[[Your room]][[Leave Phone->Your room]]
<table style="width: 600px; text-align: center">
<<if $emily.stats.spyMasturbating[0].timesDone >= 1>>
<tr>
<td>
<img src="images/shop/shop_dildo.webp" width="100" height="100" style="min-width: unset;">
</td>
<td>Dildo</td>
<td>\
<<if $inventory.dildo === true>>\
Bought!
<<else>>
<<linkreplace "50$">>
<<if $player.money >= 50>>
Bought!
<<set $player.money = $player.money>>
<<statChange "player.money" -50>>
<<set $inventory.dildo to true>>
<<set $emily.stats.spyMasturbating[1].timesDone to 1>>
<<else>>
@@You don't have enough money!
<</if>>
<</linkreplace>>
<</if>>
</td>
</tr>
<</if>>
</table><<script>>
/* --------- Emily ---------------------------------------------------------------------------------*/
window.findNextStoryHint = (character) => {
if (
Object.keys(character.stats.story).length > character.story + 1) {
return `@@${character.stats.story[character.story + 1].hint}@@`
}
return 'You have done all story events for ' + character.name + ' available!'
}
window.findNextGropeEventHint = (character) => {
if (character.name === 'emily' && character.story < 5) {
return '@@You need to progress her story more to unlock@@'
}
if (character.stats.groping === undefined) {
return 'You have done all grope events available'
}
for (const eventKey in character.stats.groping) {
if (character.stats.groping[eventKey].timesDone === 0) {
return `@@${character.stats.groping[eventKey].hint}@@`
}
}
return 'You have done all grope events'
}
window.findNextExtendedGropeEventHint = (character) => {
if (character.name === 'emily' && character.story < 6) {
return '@@You need to progress her story more to unlock@@'
}
if (character.stats.extendedGroping === undefined) {
return 'You have done all grope events available'
}
for (const eventKey in character.stats.extendedGroping) {
if (character.stats.extendedGroping[eventKey].timesDone === 0) {
return `@@${character.stats.extendedGroping[eventKey].hint}@@`
}
}
return 'You have done all extended grope events'
}
window.findNextHandjobEventHint = (character) => {
if (character.name === 'emily' && character.story < 7) {
return '@@You need to progress her story more to unlock@@'
}
if (character.stats.handjob === undefined) {
return 'You have done all handjob events available'
}
for (const eventKey in character.stats.handjob) {
if (character.stats.handjob[eventKey].timesDone === 0) {
return `@@${character.stats.handjob[eventKey].hint}@@`
}
}
return 'You have done all handjob events'
}
window.findNextSpyMasturbatingEvents = (character) => {
// if (character.name === 'emily' && character.stats.spyMasturbating[0].timesDone === 0) {
// return '@@You need to progress her story more to unlock@@'
// }
if (character.stats.spyMasturbating === undefined) {
return 'You have spied on all masturbation events'
}
for (const eventKey in character.stats.spyMasturbating) {
if (character.stats.spyMasturbating[eventKey].timesDone === 0) {
return `@@${character.stats.spyMasturbating[eventKey].hint}@@`
}
}
return 'You have spied on all masturbation events'
}
/* --------- Alice ---------------------------------------------------------------------------------*/
window.findNextCaughtWithEmilyEvent = (character) => {
if (character.name === 'alice' && character.story < 1) {
return '@@You need to progress her story more to unlock@@'
}
if (character.stats.caughtWithEmily === undefined) {
return 'You have been caught in all available events'
}
for (const eventKey in character.stats.caughtWithEmily) {
if (character.stats.caughtWithEmily[eventKey].timesDone === 0) {
return `@@${character.stats.caughtWithEmily[eventKey].hint}@@`
}
}
return 'You have been caught in all available events'
}
window.findNextVisualStimulationEvent = (character) => {
if (character.name === 'alice' && character.story < 2) {
return '@@You need to progress her story more to unlock@@'
}
if (character.stats.visualStimulation === undefined) {
return 'You have done all visual stimulation events'
}
for (const eventKey in character.stats.visualStimulation) {
if (character.stats.visualStimulation[eventKey].timesDone === 0) {
return `@@${character.stats.visualStimulation[eventKey].hint}@@`
}
}
return 'You have done all visual stimulation events'
}
window.findNextPantilessCheckEvent = (character) => {
if (character.name === 'alice' && character.story < 3) {
return '@@You need to progress her story more to unlock@@'
}
if (character.stats.pantilessTest === undefined) {
return 'You have done all pantiless checks'
}
for (const eventKey in character.stats.pantilessTest) {
if (character.stats.pantilessTest[eventKey].timesDone === 0) {
return `@@${character.stats.pantilessTest[eventKey].hint}@@`
}
}
return 'You have done all pantiless checks'
}
window.morningPantyTest = (character) => {
if (character.name === 'alice' && character.story < 3) {
return '@@You need to progress her story more to unlock@@'
}
if (character.stats.morningPantyTest === undefined) {
return 'You have done all wearing panties punishments'
}
for (const eventKey in character.stats.morningPantyTest) {
if (character.stats.morningPantyTest[eventKey].timesDone === 0) {
return `@@${character.stats.morningPantyTest[eventKey].hint}@@`
}
}
return 'You have done all wearing panties punishments'
}
window.tension_relief = (character) => {
if (character.name === 'alice' && character.story < 6) {
return '@@You need to progress her story more to unlock@@'
}
if (character.stats.tension_relief === undefined) {
return 'You have done all tension relief events'
}
for (const eventKey in character.stats.tension_relief) {
if (character.stats.tension_relief[eventKey].timesDone === 0) {
return `@@${character.stats.tension_relief[eventKey].hint}@@`
}
}
return 'You have done all tension relief events'
}
/* --------- House ---------------------------------------------------------------------------------*/
window.findNextHouseRebuildingEvent = () => {
const player = State.active.variables.player
const houseRebuilding = State.active.variables.houseRebuilding
if (player.stats.house[houseRebuilding] === undefined) {
return 'You have done all house rebuilding events available'
}
for (const eventKey in player.stats.house) {
return `@@${player.stats.house[houseRebuilding].hint}@@`
}
return 'You have done all house rebuilding events available'
}
<</script>>
<<return back>>
[[Online Shop->Online Shop]]
!Character Stats & Walkthrough:
<<player>><</player>>\
Money: $player.money
Corruption: $player.corruption
Lust: $player.lust
Story:
* <<= window.findNextStoryHint(State.variables.player)>>
House Rebuilding:
* <<= window.findNextHouseRebuildingEvent(State.variables.player)>>
----
<<emily>><</emily>>\
Corruption: $emily.corruption
Lust: $emily.lust
Story:
* <<= window.findNextStoryHint(State.variables.emily)>>
Events:
* Grope: <<= window.findNextGropeEventHint(State.variables.emily)>>
* Extended Grope: <<= window.findNextExtendedGropeEventHint(State.variables.emily)>>
* Handjob: <<= window.findNextHandjobEventHint(State.variables.emily)>>
* Spied during masturbation: <<= window.findNextSpyMasturbatingEvents(State.variables.emily)>>
----
<<alice>><</alice>>\
Corruption: $alice.corruption
Lust: $alice.lust
Current Job: <<nobr>>@@color:orange;font-weight:900;
<<switch $alice.job.current>>
<<case "metal">>
Gathering metal
<<case "wood">>
Gathering wood
<<case "nails">>
Gathering nails
<<default>>
No job assigned
<</switch>>
<</nobr>>
Days since you last collected materials from her: @@color:orange;font-weight:900;<<print $alice.job.workingSince>> <<if $alice.job.workingSince >= 2>>(You should talk with her. She might have something to give you)<</if>>@@
Story:
* <<= window.findNextStoryHint(State.variables.alice)>>
Events:
* Getting caught with Emily: <<= window.findNextCaughtWithEmilyEvent(State.variables.alice)>>
* Visual Stimulation: <<= window.findNextVisualStimulationEvent(State.variables.alice)>>
* Pantiless Test: <<= window.findNextPantilessCheckEvent(State.variables.alice)>>
* Wearing panties punishment: <<= window.morningPantyTest(State.variables.alice)>>
* Tension relief: <<= window.tension_relief(State.variables.alice)>>
<<return back>><img src="images/rooms/alice_bedroom_old.webp" class="img-ambient">
This is Alice bedroom. You are somehow jealous of her having her own room. On the other hand you remember that she has to get up very early for her job in the coffee shop, you would not want to waken up by her every day.
<<if $time === 4>>
<<alice>>Hey <<relationText "brother," "roomie,">>its late. I want to go to bed<</alice>>
<<else>>
<<alice>>Hey <<relationText "brother" "roomie">>! Whats up?<</alice>>
<</if>>
<<if $houseRebuilding >= 1 && $time < 4>>
[[Ask Alice about crafting materials]]
<</if>>\
<<if $alice.story >= 2 && $time < 4>>
[[Ask Alice for Visual Stimulation->Visual Stimulation]]\
<</if>>\
<<if $alice.story === 1 && $alice.stats.story[1].happenedDay >= 0 && $day > $alice.stats.story[1].happenedDay && $time < 4>>
[[See how Alice has decided about your proposal->Alice Proposal]]\
<</if>>\
<<if $alice.story === 3 && $time < 4>>
[[Panty Check->Alice allow punishments]]\
<</if>>\
<<if $alice.story >= 4 && ($time === 0 || $time === 1)>>
[[Morning Panty Check->Alice Dressing Punishment]]\
<</if>>\
<<if $alice.story >= 6 && $player.lust >= 60 && $time < 4>>
[[Ask Alice for tension relieve->Alice room relieve]]
<</if>>\
[[Leave->Corridor]]<<if $houseRebuilding < 4>>
<img src="images/rooms/bathroom_old.webp" style="width: 100%; max-height: 400px; object-fit: cover" class="img-ambient">
A shitty bathroom. The toilet is broken and the sink is leaking. The shower is not working. But it is all you have right now.
<<if $houseRebuilding === 3 && $bathroom.rebuildingStep < ($bathroom.rebuildingSteps - 1) && $time < 4>>
<<linkreplace "Rebuild the room [$bathroom.rebuildingStep/$bathroom.rebuildingSteps]">>
<<set $bathroom.rebuildingStep +=1>>
<<print
'<img src="images/events/rebuilding/construction_'
+ random(0, 4)
+ '.webp">'
>>
<<set $time = $time + 1>>
You are progressing in the rebuilding of the bathroom room!
<</linkreplace>>
<<elseif $houseRebuilding === 3 && $bathroom.rebuildingStep == ($bathroom.rebuildingSteps - 1) && window.constructionPossible($inventory, $bathroom) && $time < 4>>
[[Finish bathroom->Bathroom Finished]]
<<elseif $time === 4>>
/* building is not possible during night */
<<else>>
@@Not enough materials for finishing the rebuilding!@@
@@Need $bathroom.materialsNeeded.wood wood, you currently have $inventory.wood wood@@
@@Need $bathroom.materialsNeeded.nails nails, you currently have $inventory.nails nails@@
@@Need $bathroom.materialsNeeded.metal metal, you currently have $inventory.metal metal@@
@@Need $bathroom.materialsNeeded.mirror mirror, you currently have $inventory.mirror mirror@@
@@Need $bathroom.materialsNeeded.paint paint, you currently have $inventory.paint paint@@
@@Go find some in the house, ask your <<relationText "sisters" "roommates">> or buy some
<</if>>\
<<else>>
<img src="images/rooms/bathroom_new.webp" class="img-ambient w-full max-h-[400px] object-cover"/>
Your pretty new bathroom. It was a lot of work, but now you feel comfortable every time you spy on your <<relationText "sisters" "roommates">> or take a shit.
<<set _emilyShowerMasturbating = random(0, 3) === 0>>
/* spy on masturbation only possible when dildo bought & given */
<<if _emilyShowerMasturbating && $emily.stats.spyMasturbating[2].timesDone>>
<<goto "Emily Shower">>
<</if>>
<<if $alice.story >= 5 && $player.lust >= 60>>
<img src="images/alice/tension_relief/bj_tease_1.webp">
<<alice>>Hey <<relationText "bro" "roommate">>, you got a minute?<</alice>>
<<linkreplace "Undress">>
<<player>>For you every time..<</player>>
<img src="images/alice/tension_relief/bj_1.webp">
<<player>>Oh god Alice, this feels so good...<</player>>
<<set $alice.stats.tension_relief['bathroom'].timesDone to $alice.stats.tension_relief['bathroom'].timesDone + 1>>
<<statChange "player.lust" 0>>
<</linkreplace>>
<</if>>
<</if>>
[[Shower]]
[[Leave->Corridor]]<img src="images/rooms/corridor.webp" style="width: 100%; max-height: 400px; object-fit: cover" class="img-ambient">
<<if $time <= 3>>
[[Waste time|Corridor][$time = $time + 1]]
<<else>>\
[[Better go to sleep->Your room]]
<</if>>\
<<if random(0, 2) === 0 && $alice.story >= 3 && $time < 4>>
Alice is standing in the corridor.
<img src="images/alice/alice_corridor.webp" class="!max-w-80 mt-4 !ml-0">
[[Test if Alice is pantiless->Pantiless test]]
<</if>>
First Floor
[[Kitchen]]
<<if $houseRebuilding >= 1>>\
[[Living Room]]
<</if>>\
[[Bathroom]]
/* [[Workshop]] */
/* [[Garden]] */
Second Floor
[[Your room]]
[[Alice Bedroom]]
/* [[Emily's Bedroom]] */TODO Emilys Bedroom
[[Leave->Corridor]]TODO A garden
[[Go back inside->Corridor]]<img src="images/rooms/kitchen_old.webp" class="img-ambient">
<<if $houseRebuilding == 0>>
[[Event: Sit down->Start Rebuilding]]
<</if>>\
<<if random(0, 2) === 0 and $time > 1 and $time < 4>>
[[You see Emily cooking in an apron->Kitchen Groping]]
<</if>>\
<<if $time === 1>>
Your older<<relationText "sister" "roommate">> is cooking breakfast. While there is not much to make out of, she still gives everything.
<div id="aliceCooking">
<img src="images/alice/breakfast_cooking.webp" />
</div>
<<linkreplace "Eat breakfast">>
<<replace "#aliceCooking">>
<img src="images/rooms/sweet-breakfast.webp" />
<</replace>>
Emily joins you. You are having a nice a real nice breakfast together.
<<set $time = $time + 1>>
<</linkreplace>>
<</if>>
[[Leave->Corridor]]<<if $houseRebuilding >= 2>>\
<img src="images/rooms/living_room_new.webp" class="img-ambient">
Your new living room. Every time you look at it, you are reminded of the hard work you put into rebuilding it.
<<if random(0, 1) === 0 && $alice.story >= 3>>
Alice is laying on the couch, reading a book.
<img src="images/alice/reading.webp" class="event-image">
[[Test if Alice is pantiless->Pantiless test]]
<</if>>\
<<if $houseRebuilding === 2>>
[[Event: Talk with Alice->Start Bathroom]]
<</if>>\
<<set _secondChapterDone = window.bookChapterDone($corruptionBook, 3)>>
<<if _secondChapterDone && $alice.story === 4 && $emily.lust >= 50>>
[[Event: Talk with Emily->First Blowjob]]
<<elseif $corruptionBook.chapter === 3 && $alice.story === 4>>
@@Emily must have >= 50 lust@@
<</if>>\
<<if $alice.story === 5 && $alice.stats.story[5].happenedDay >= 0 && $day > $alice.stats.story[5].happenedDay>>
[[Talk with Alice about what happened->Alice Blowjob Intro]]
<</if>>\
<<if $alice.story > 5 && $player.lust >= 60>>
[[Ask Alice for Relief->Alice Living Room relieve]]
<</if>>\
<<if $emily.story >= 5 && random(0, 1)>>
[[Sit with Emily->Living Room Grope]]
<</if>>
<<else>>\
<img src="images/rooms/living_room_old.webp" class="img-ambient">
This was a living room.
<<if $time < 4>>\
<<if $livingRoom.materialsToHarvest.wood == 0>>\
There are not materials to harvest left..
<<else>>\
<<linkreplace "[Search for wooden plans]">>
<<set _woodFound to random(0, $livingRoom.materialsToHarvest.wood ?? 0)>>
Found _woodFound wooden planks!
<<set $livingRoom.materialsToHarvest.wood -= _woodFound>>
<<set $inventory.wood += _woodFound>>
<</linkreplace>>
<</if>>\
<<if $livingRoom.rebuildingStep == ($livingRoom.rebuildingSteps - 1) and window.constructionPossible($inventory, $livingRoom)>>\
[[Finish Construction->Living Room Finished]]
<<elseif $livingRoom.rebuildingStep < ($livingRoom.rebuildingSteps - 1)>>
<<linkreplace "Rebuild the room [$livingRoom.rebuildingStep/$livingRoom.rebuildingSteps]">>
<<set $livingRoom.rebuildingStep +=1>>
<<print
'<img src="images/events/rebuilding/construction_'
+ random(0, 4)
+ '.webp">'
>>
<<set $time = $time + 1>>
You are progressing in the rebuilding of the living room!
<</linkreplace>>
<<else>>
@@Not enough materials for finishing the rebuilding!@@
@@Need $livingRoom.materialsNeeded.wood wood, you currently have $inventory.wood wood@@
@@Need $livingRoom.materialsNeeded.nails nails, you currently have $inventory.nails nails@@
@@Need $livingRoom.materialsNeeded.metal metal, you currently have $inventory.metal metal@@
@@Need $livingRoom.materialsNeeded.mirror mirror, you currently have $inventory.mirror mirror@@
@@Need $livingRoom.materialsNeeded.paint paint, you currently have $inventory.paint paint@@
@@Go find some in the house, ask your <<relationText "sisters" "roommates">> or buy some
<</if>>\
<<else>>
@@It is too late for doing any work in the living room@@
<</if>>\
<</if>>\
[[Leave->Corridor]]TODO
<img src="images/rooms/workshop.webp" class="img-ambient">
[[Leave->Corridor]]/* increase number to reduce chance of this event happening */
<<set _emilyHornyEncounter to random(0, 2)>>\
<<if $emily.lust >= 50 && _emilyHornyEncounter === 0 && $time < 4>>\
<<goto "Spy Masturbating">>\
<</if>>\
<img src="images/rooms/bedroom_old.webp" class="img-ambient">
This is your room. It's pretty rough, but at least its something.
<<if !$emilyOwnRoom>>
Your younger <<relationText "sister" "roommate">> currently lives in your room as well. You are thinking how you could get some privacy with an own room in the future.
<<if $time == 0 and $emily.story >= 1 and !$emily.awake>>
<<goto "Spy Dressing Emily">>
<<elseif $time == 0>>
<<emily>>Good Morning <<relationText "brother" "roomie">>!<</emily>>\
<</if>>\
<<if $emily.story === 2 and $time < 4>>\
[[Event: Think about Emily and how you can corrupt her more->Corruption Book Idea]]
<</if>>\
<<if $time > 0 and $time <= 3>>
<<emily>>Hey<<relationText "bro" "roomie">>, whats up?<</emily>>
<<if $emily.story === 0>>
[[Talk about uncertainty of the future->Nipples]]
<</if>>\
<</if>>\
<<if $emily.story === 1 and $time < 4>>\
<<linkreplace "Look at her">>
<<print
'<img class="img-ambient" src="images/emily/clothed/'
+ random(0, 3)
+ '.webp">'
>>
Just as last time, her petite nipples shine through her cute top.
<<linkreplace "You are wondering what these nipples would look like if there was no shirt between them and you..">>
<<emily>>Hey, is everything alright?<</emily>>
<<player>>Yeah, I just got lost in thoughts...<</player>>
<<statChange "player.corruption" +2>>
<<statChange "player.lust" +10>>
<<set $time = $time + 1>>
<</linkreplace>>
<</linkreplace>>\
<</if>>
<<if $houseRebuilding >= 1 and $time < 4>>\
[[Ask Emily about crafting materials]]
<</if>>\
<<silently>>\
/* allowing writing in corruption book after emily allowed to see her panties (stage III asking for materials) */
<<set _nextChapterAvailable to $corruptionBook.currentChapter < $corruptionBook.chapters.length && $corruptionBook.currentChapter >= 0>>\
<<set _current to _nextChapterAvailable ? $corruptionBook.chapters[$corruptionBook.currentChapter].currentStep : 0>>\
<<set _needed to _nextChapterAvailable ? $corruptionBook.chapters[$corruptionBook.currentChapter].stepsNeeded : 999>>\
<</silently>>\
<<if $emily.story >= 3 and $time < 4 and _current < _needed and _nextChapterAvailable>>\
[["Write the corruption book " + _current + "/" + _needed->Writing Corruption Book]]
<</if>>\
/* First chapter for corruption book done */
<<if $emily.story === 3 and $time < 4 and _current === _needed>>\
[[Event: Finish the first chapter->First Chapter Done]]
<</if>>\
<<if $emily.story >= 5 and $time < 4>>\
[[Training->Training]]
<</if>>\
<<if $emily.story === 5 and $emily.corruption >= 20 and $time < 4>>\
[[Event: Talk with Emily->Chapter Two Idea]]
<</if>>\
<<if $emily.story === 6 and _current === _needed and $emily.corruption >= 35 and $time < 4>>\
[[Event: Finish the second chapter->Second Chapter Done]]
<</if>>\
<<if $emily.story === 7 and $time < 4>>\
[[Event: Talk with Emily->Chapter 3 Idea]]
<</if>>\
<<if $emily.story === 8 and _current === _needed and $time < 4>>\
[[Event: Finish the third chapter->Third Chapter Done]]
<</if>>\
<<if $inventory.dildo === true && $emily.stats.spyMasturbating[1].timesDone >= 1 && $emily.stats.spyMasturbating[2].timesDone === 0>>\
[[Event: Give Emily the Dildo->Give Dildo]]
<</if>>\
<</if>>\
<<if $time < 4 >>\
[[Pass time]]
<</if>> \
[[Sleep->Sleep]]
[[Phone]]
[[Masturbate]]
[[Leave->Corridor]]!Settings
<<checkbox "$displayNamesInSpeech" false true autocheck>> Display Character names in Dialog Boxes?
<<return back>>[[Phone]]
[[Inventory]]
[[Settings]]<img src="images/cw_banner.webp" style="width: 100%; height: 100px; object-fit: cover; min-width: unset;">
version 0.2.0
<<nobr>>
<<currenttime>>
<<playerStatus>>
<<emilyStatus>>
<<aliceStatus>>
<</nobr>>