123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664 |
- ::custom girl <4671,6822>
- <<set
- _breast_sizes = {
- 'D': 'just big enough to get me into the tournament',
- 'DD': 'as big as mine are now',
- 'E': 'a little bigger than they are now',
- 'EE': 'as big as possible',
- }
- >>\
- "Make the breasts <<cyclinglinkd "$breast_size" _breast_sizes>>."
- "Give me a <<cyclinglink "$butt_size" "flat" "small" "round" "bubble">> butt."
- "I want <<cyclinglink "$skin_tone" "black" "dark brown" "brown" "olive" "tan" "fair" "pale">> skin, <<cyclinglink "$hair_color" "black" "brown" "blonde" "platinum blonde" "red" "bright pink">> hair, and <<cyclinglink "$eye_color" "brown" "blue" "green">> eyes."
- "Also, give me <<cyclinglink "$facial_feature" "duck lips" "freckles" "squinty eyes" "a button nose">>, please."
- [['"Did you get all that?"'->custom girl 2]]
- [[DEBUG->custom girl 5]]
- ::custom girl 2 <4668,6978>
- "Of course I got all that," Sally says, tapping her notepad with her pencil which you hadn't noticed her pull out of her purse.
- <<include [[custom girl 2.5]]>>
- ::custom girl 3 <4665,7250>
- <<if $keep_genitals>>\
- "Of course I remembered, but I've been thinking, I could make you a second set of bottoms for use after the tournament is over."
- <<else>>\
- <<switch $new_genitals>>\
- <<case "vagina">>\
- "Good choice. I like my vagina, but why don't I give you a second set of bottoms for use after the tournament?"
- <<set $genitals1 = "vagina" >>\
- <<case "girlcock">>\
- "Sure. We need to keep you limp for the duration of the tournament, but I suppose I could give you second set of bottoms that let you get hard."
- <<case "kendoll">>\
- "Maybe that's for the best during the tournament, but I could make you a second set for afterwards. Would you like that?"
- <<case "normal_penis" "massive_dong">>\
- "We can't have a your bulge showing during the tournament, but I could give you a second set of bottoms for later."
- <<case "futanari">>\
- "Hrm. That's tricky magic. I couldn't do it in time for the tournament, but I could make you a second set afterwards?"
- <<default>>\
- \#ERROR\#
- <</if>>\
- <<if $keep_the_bikini == 'new' >>\
- <<choice [['"I\'d get to keep both sets of bottoms right?"'->both sets]]>>
- <</if>>\
- <<include [[genital chooser]]>>
- ::both sets <4814,7307>
- "Of course, but you'll only be able to use the first one during the tournament. I don't have time //right// now to make pair."
- <<include [[genital chooser]]>>
- ::genital chooser <4666,7379>
- <set
- _genitals_1_opts = {
- vagina: 'a pussy',
- girlcock: 'a small, flaccid cock',
- kendoll: 'nothing at all'
- }
- _genitals_2_opts = {
- normal_penis: 'my normal cock',
- massive_dong: 'a massive dong for the',
- futanari: 'both a dick and a pussy for the',
- none: 'I don\'t need a'
- }
- >>\
- "Give me <<cyclinglinkd "$genitals1" _genitals_1_opts>> between my legs for the first pair."
- "And, <<cyclinglinkd "$genitals2" _genitals_2_opts>> second pair."
- [[Tell Sally what you want.->custom girl 4]]
- ::custom girl 4 <4670,7508>
- "What about pubic hair?"
- <<inlude [[pubic hair options]]>>
- ::custom girl 5 <4395,7629>
- <<nobr>>
- <<set _hotness = 0;
- _bimbo = ($facial_feature == 'duck lips') ? 1 : 0;
- _breast_sizes = {
- 'D': 'just big enough to get you into the tournament',
- 'DD': 'as big as they are now',
- 'E': 'a little bigger than they are now',
- 'EE': 'as big as possible'
- }
- >>
- <<switch $breast_size>>
- <<case "D" "DD">>
- <<set _hotness += 1>>
- <<case "E">>
- <<set _hotness += 2 >>
- <<case "EE">>
- <<set _hotness += 4;
- _bimbo += 1>>
- <<default>>
- \#\#ERROR\#\# invalid breast_size $breast_size
- <</switch>>
- <<switch $butt_size>>
- <<case "flat">>
- <<set _hotness -= 1>>
- <<case "small">>
- <<set _hotness += 0>>
- <<case "round">>
- <<set _hotness += 1>>
- <<case "bubble">>
- <<set _hotness += 2; _bimbo += 1>>
- <<default>>
- \#\#ERROR\#\# invalid butt_size $butt_size
- <</switch>>
- <<set
- _girl = [];
- _unmentioned = ['skin', 'hair', 'eyes', 'face', 'butt']; >>
- <<if _hotness >= 5>>
- <<set _girl.push("smokin' hot")>>
- <<elseif _hotness >= 4>>
- <<set _girl.push('hot')>>
- <<else>>
- <<set _girl.push('cute')>>
- <</if>>
- <<if $skin_tone == 'black' && $facial_feature != 'squinty eyes'>>
- <<set
- _girl.push('black');
- _unmentioned.delete('skin')>>
- <</if>>
- <<if _bimbo >= 3>>
- <<if $hair_color == 'blonde'>>
- <<set
- _girl.push('blonde');
- _unmentioned.delete('hair') >>
- <</if>>
- <<if $facial_feature == 'squinty eyes'>>
- <<set
- _girl.push('asian');
- _unmentioned.delete('face') >>
- <</if>>
- <<set _girl.push('bimbo')>>
- <<elseif $hair_color == 'blonde'>>
- <<set _girl.push('blonde')>>
- <<if $facial_feature == 'squinty eyes' >>
- <<set _girl.push('asian');
- _unmentioned.delete('face') >>
- <</if>>
- <<set _unmentioned.delete('hair') >>
- <<elseif $hair_color == 'brown' || $hair_color == 'red'>>
- <<if $facial_feature == 'squinty eyes' >>
- <<set _girl.push('asian');
- _unmentioned.delete('face') >>
- <</if>>
- <<if $hair_color == 'red'>>
- <<if $facial_feature == 'freckles'>>
- <<set
- _girl.push('ginger');
- _unmentioned.delete('face');
- _unmentioned.delete('hair');
- >>
- <<else>>
- <<set
- _girl.push('redhead');
- _unmentioned.delete('hair');
- >>
- <</if>>
- <<elseif $hair_color == 'brown'>>
- <<set
- _girl.push('brunette');
- _unmentioned.delete('hair');
- >>
- <<else>>
- \#\#ERROR\#\# invalid hair_color $hair_color (must be red or brown in this block)
- <</if>>
- <<set _unmentioned.delete('hair') >>
- <<elseif $facial_feature == 'squinty eyes'>>
- <<set
- _girl.push('asian');
- _unmentioned.delete('face'); >>
- <<else>>
- <<set _girl.push('girl')>>
- <</if>>
- <<set _features = [] >>
- <<if _unmentioned.includes('skin')>>
- <<if $skin_tone == 'black'>>
- <<set _features.push('dark skin')>>
- <<else>>
- <<set _features.push($skin_tone + ' skin')>>
- <</if>>
- <</if>>
- <<if _unmentioned.includes('hair')>>
- <<set _features.push($hair_color + ' hair')>>
- <</if>>
- <<if _unmentioned.includes('eyes')>>
- <<set _features.push($eye_color + ' eyes')>>
- <</if>>
- <<if _unmentioned.includes('face')>>
- <<set _features.push($facial_feature)>>
- <</if>>
- <<if _features.length == 0>>
- <<elseif _features.length == 1>>
- <<set _girl.push('with ' + _features[0]) >>
- <<elseif _features.length == 2>>
- <<set _girl.push('with ' + _features[0] + ' and ' + _features[1])>>
- <<else>>
- <<set _girl.push('with') >>
- <<set _girl.push(
- _features.slice(0, -1).join(', ')
- + ', and ' +
- _features.slice(-1)[0]
- )>>
- <</if>>
- <</nobr>>\
- <<switch $heather_bikini_options>>
- <<case 'heather_sister'>>
- "You want to look like Heather's long lost sister," Sally states.
- <<case 'kinda_like_heather'>>
- "You kinda want to look like Heather," Sally states.
- <<case 'custom'>>\
- "On top, you wanna be a <<=_girl.join(' ')>>, and you want your boobs to be <<= _breast_sizes[$breast_size]>>."
- <<default>>\
- \#\#ERROR\#\# - invalid $$heather_bikini_options $heather_bikini_options
- <</switch>>\
- <<set
- _genitals_1_opts = {
- vagina: 'a vagina',
- girlcock: 'a small, flaccid cock',
- kendoll: 'nothing at all, like a Ken Doll'
- };
- _genitals_2_opts = {
- normal_penis: 'a normal cock',
- massive_dong: 'a massive dong',
- futanari: 'penis and vagina',
- none: 'no second set of bottoms'
- };
- _pubic_hair_opts = {
- heart: 'heart-shaped',
- bolt: 'lighting bolt shaped',
- strip: 'landing strip',
- muff: 'muff',
- natural: 'natural',
- none: 'no'
- };
- >>\
- "On bottom, you want a $butt_size butt in back, and <<=_genitals_1_opts[$genitals1]>> with <<=_pubic_hair_opts[$pubic_hair]>> pubic hair in front."
- <<if $genitals2 == 'none'>>\
- "You don't want a second bikini bottom."
- <<else>>\
- "For your second bikini, which is only for non-tournament use, you want the same deal but with a <<=_genitals_2_opts[$genitals2]>> instead."
- <</if>>\
- "I've got it all written down in my notes," Sally describes.
- [['"May I see your notes?" (refine/edit"'->custom notes]]
- [['"That sounds great!"'->accept custom girl]]
- ::carpet matches drapes <4932,7639>
- <<if $hair_color == 'bright pink'>>\
- "Even if the drapes are bright pink?"
- [['"Yeah!"'->pubic hair shape]]
- <<else>>\
- <<include [[pubic hair shape]]>>
- <</if>>\
- ::pubic hair shape <4672,7994>
- "So what kind of shape do you want it in?"
- [['"Heart shaped."'->custom girl 5][$pubic_hair = 'heart']]
- [['"Lightning bolt shaped."'->custom girl 5][$pubic_hair = 'bolt']]
- [['"A little landing strip."'->custom girl 5][$pubic_hair = 'strip']]
- [['"A massive muff."'->custom girl 5][$pubic_hair = 'muff']]
- [['"Just let it grow naturally."'->custom girl 5][$pubic_hair = 'natural']]
- ::custom notes [nobr] <4165,7624>
- <<set
- _genitals_1_opts = {
- vagina: 'a vagina',
- girlcock: 'a small, flaccid cock',
- kendoll: 'nothing at all'
- };
- _genitals_2_opts = {
- normal_penis: 'a normal cock',
- massive_dong: 'a massive dong',
- futanari: 'penis and vagina',
- none: 'no second set of bottoms'
- };
- _pubic_hair_opts = {
- heart: 'heart-shaped',
- bolt: 'lighting bolt shaped',
- strip: 'landing strip',
- muff: 'muff',
- natural: 'natural',
- none: 'none'
- };
- >>
- <div class="notepad">
- <div class="lines" style="height: 606px"></div>
- <h4>Bikini for $girl_name</h4>
- <ul class="list">
- <li>Cup Size: <<cyclinglink "$breast_size" D DD E EE>></li>
- <li>Butt Size: <<cyclinglink "$butt_size" "flat" "small" "round" "bubble">></li>
- <li>Skin Tone: <<cyclinglink "$skin_tone" "black" "dark brown" "brown" "olive" "tan" "fair" "pale">></li>
- <li>Hair Color: <<cyclinglink "$hair_color" "black" "brown" "blonde" "platinum blonde" "red" "bright pink">></li>
- <li>Eye Color: <<cyclinglink "$eye_color" "brown" "blue" "green">></li>
- <li>Facial Feature: <<cyclinglink "$facial_feature" "duck lips" "freckles" "squinty eyes" "a button nose">></li>
- <li>Genitals #1: <<cyclinglinkd "$genitals1" _genitals_1_opts>></li>
- <li>Genitals #2: <<cyclinglinkd "$genitals2" _genitals_2_opts>></li>
- <li>Pubic Hair: <<cyclinglinkd "$pubic_hair" _pubic_hair_opts>></li>
- </ul>
- </div>
- <br><br>
- <a id="hand-back-link" data-passage="custom girl 5">Hand back notes, "That looks good."</a>
- <<script>>
- var _old_vars = JSON.parse(JSON.stringify(variables()));
- function on_cyclinkLink_click(){
- if(passage() != 'custom notes'){
- throw 'passage is not custom notes!';
- }
- if (myutils.isEqual(variables(), _old_vars)){
- $('#hand-back-link').text('Hand back notes, "That looks good."');
- } else {
- window.v1 = variables();
- window.v2 = _old_vars;
- $('#hand-back-link').text('Hand back notes, "I\'ve made some changes."');
- }
- }
- $(document).on('click', '.cyclingLink', on_cyclinkLink_click);
- prehistory["custom notes"] = function (taskName) {
- delete prehistory["custom notes"];
- $(document).off('click', '.cyclingLink', on_cyclinkLink_click);
- };
- <</script>>
- ::custom girl start <4204,6740>
- "What! They have shoes on sale!" Nat exlaims.
- "Let's go try on shoes!" Jess replies.
- "That's okay, I need to talk with $girl_name about something," Sally says.
- Jess replies, "Alright we'll meet up with you at the coffee shop."
- Nat and Sally head off to the shoe store.
- [['"So what did you want to talk about?"'->custom girl 0]]
- ::custom girl 0 <4206,6912>
- "Earlier, you said you wanted a custom bikini enchantment. How do you want it to look!"
- [['"I want to look like Heather."'->clone heather]]
- [['"Guess what kind of girl I\'d like to be." (randomize"'->random girl][$tournament_bikini = 'custom_bikini'; $heather_bikini_options = 'custom']]
- [['"I\'ll tell you exactly what I want to look like."'->custom girl][$tournament_bikini = 'custom_bikini'; $heather_bikini_options = 'custom']]
- ::clone heather <4210,7079>
- <<set
- _use_heather_bik_opts = {
- heather: "I'd like to wear the Heather bikini I'm currently wearing during the tournament and get a second bikini to keep.",
- custom: "I'd rather wear a custom bikini during the tournament."
- };
- _custom_bik_opts = {
- "heather_sister": "Yeah! Make my custom bikini make me look like Heather's sister!",
- "kinda_like_heather": "Just make the custom bikini make me kinda look like Heather.",
- "custom_bikini": "I'd like a fully custom bikini."
- }
- >>\
- "You can wear the Heather bikini for the tournament, but I can't let you keep it. I could enchant your bikini so you looked like her long lost sister though."
- "<<cyclinglinkd "$tournament_bikini" _use_heather_bik_opts>>"
- "<<cyclinglinkd "$heather_bikini_options" _custom_bik_opts>>"
- [[Continue.->clone heather 2]]
- ::random girl <4056,7077>
- <<set
- $breast_size = Array.random(['D', 'DD', 'E', 'EE'])
- $butt_size = Array.random(["flat", "small", "round", "bubble"])
- $skin_tone = Array.random(["black", "dark brown", "brown", "olive", "tan", "fair", "pale"])
- $hair_color = Array.random(["black", "brown", "blonde", "platinum blonde", "red", "bright pink"])
- $eye_color = Array.random(["brown", "blue", "green"])
- $facial_feature = Array.random(["duck lips", "freckles", "squinty eyes", "a button nose"])
- $genitals1 = Array.random(['vagina', 'girlcock', 'kendoll']);
- $genitals2 = Array.random(['normal_penis', 'massive_dong','futanari', 'none'])
- $pubic_hair = Array.random(['heart', 'bolt', 'muff', 'natural', 'none'])
- >>\
- \
- "Hrm. let me think..." You can see the the look of intense thought on Sally's forehead.
- <<include [[custom girl 5]]>>
- [['"I don\'t like that, can you guess again?" (re-randomize"'->random girl]]
- ::get a girl name <4494,5333>
- You walk out of your room, boobs jiggling.
- "Oh you look great! What are we going to call you?" Sally asks.
- "Yeah we can't call you by your name while you're a girl," Jess adds.
- [['"Why not Heather?"'->call me a name that's in-use][$girl_name = 'Heather']]
- [['"What do you want to call me?"'->girls decide name]]
- [['"I have an idea."'->custom name][$girl_name = $girl_names.pluck()]]
- ::call me a name that's in-use <4261,5483>
- "We can't call you '$girl_name' that would be confusing!" Jess retorts.
- Natalie says, "Yeah think up a better name."
- "Pick a different name," Sally suggests.
- <<include [[custom name]]>>
- ::custom name <4495,5469>
- <<set
- _rand_girl_name = $girl_names.pluck()
- >>
- "I want to be called <<textbox "$girl_name" _rand_girl_name>>."
- [[Speak->custom name 2]]
- <<if $girl_names.length >= 2 >>\
- [[Think of a new name->custom name]]
- <<else>>
- You're out of ideas, thinking longer won't help.
- <</if>>
- ::girls decide name <4647,5475>
- Sally says, "I've always liked the name Kathryn."
- Jess mocks Sally, "You've always liked strong women, haven't you Sally? Like Captain Kathryn Janeway from Star Trek: Voyager?"
- Sally puts her hands up, "Guilty, I would do whatever Janeway said."
- The girls laugh.
- Jess continues, "Anyway, I always wanted a sister named Barbara."
- Natalie says, "Did you play with lots of Barbie toys as a kid?'
- Jess mumbles under her breath, "As if you didn't have Barbie Dolls."
- Natalie suggests, "Why don't you go with Alexandra, or Alex for short?"
- [[Go with Jess's Suggestion, Barbara->custom name 2][$girl_name = 'Barbara'; $jess_disposition += 2]]
- [[Go with Nat's Suggestion, Alex->custom name 2][$girl_name = 'Alex'; $nat_disposition += 2]]
- [[Go with Sally's Suggestion, Kathryn->custom name 2][$girl_name = 'Kathryn'; $sally_disposition += 2]]
- ::custom name 2 <4489,5639>
- <<silently>>
- <<set _names_in_use = [
- //FIXME I could do this smarter with like regexes or starts with, but whatever
- 'heather',
- 'jess',
- 'jes',
- 'jessica',
- 'jessi',
- 'jesse',
- 'jessy',
- 'nat',
- 'natalie',
- 'sally',
- 'sal',
- ] >>
- <<set $girl_name = $girl_name.replace(/^\s+|\s+$/g, '') >>
- <<if !$girl_name.match(/[A-Z]/) >>
- <<set $girl_name = $girl_name.toLocaleUpperFirst()>>
- <</if>>
- <</silently>>\
- <<if _names_in_use.includes($girl_name.toLowerCase())>>\
- <<include [[call me a name that's in-use]]>>
- <<elseif $girl_name == 'Amanda'>>
- "Oh that's clever, because, 'Your a man... duh!'"
- [['"Maybe I should pick something else."'->custom name]]
- [['"That\'s exactly what I was thinking!"'->amanda1]]
- [['"No? I just like the name \'Amanda\'."'->amanda2]]
- <<elseif $girl_name == ''>>\
- "We've got to call you something..." Jess says.
- <<include [[custom name]]>>\
- <<else>>\
- "Oh that's a great name, we'll be sure to call you '$girl_name' while you're a girl," your sister responds.
- <</if>>\
- [[Fast Forward ⏩->ff2]]
- ::clone heather 2 <4410,7081>
- <<switch $heather_bikini_options>>\
- <<case "heather_sister" "kinda_like_heather">>\
- <<set
- $breast_size = 'DD'
- $butt_size = 'round'
- $skin_tone = 'fair'
- $hair_color = 'brown'
- $eye_color = 'brown'
- $facial_feature = 'a button nose'
- $genitals1 = $bottom_style
- $genitals2 = 'none'
- $pubic_hair = 'natural'
- >>\
- <<include [[custom girl 2.5]]>>
- <<case "custom_bikini">>\
- <<include [[custom girl]]>>
- <</switch>>
- ::accept custom girl <4390,7870>
- TODO
- ::custom girl 2.5 <4663,7115>
- <<set
- _available_genitals = {
- vagina: 'a vagina',
- girlcock: 'a small, flaccid cock',
- kendoll: 'nothing',
- normal_penis: 'my normal penis',
- massive_dong: 'a massive dong',
- futanari: 'a penis and vagina'
- };
- >>
- <<nobr>>
- "Okay, earlier, I said I wanted,
- <<switch $bottom_style>>
- <<case 'vagina'>>a vagina,
- <<case 'girlcock'>>a small, flaccid cock,
- <<case 'kendoll'>>to be as smooth as a ken doll,
- <<default>>
- \#ERROR\# - invalid $$bottom_style "$bottom_style"
- <</switch>>
- <span class="keep-genitals"><<click "and I just wanted to make sure you remembered.">>
- <<addclass ".keep-genitals" "hidden">>
- <<removeclass ".swap-genitals" "hidden">>
- <<set $keep_genitals = true>>
- <</click>></span><span class="swap-genitals hidden"><<click "but I've changed my mind.">>
- <<removeclass ".keep-genitals" "hidden">>
- <<addclass ".swap-genitals" "hidden">>
- <<set $keep_genitals = false>>
- <<script>>
- State.temporary.available_genitals = JSON.parse(JSON.stringify(variables().available_genitals));
- delete State.temporary.available_genitals[variables()['bottom_style']]
- <</script>>
- <span class="swap-genitals hidden"><br><br>"I'd really like <<cyclinglinkd "$new_genitals" _available_genitals>> between my legs when I'm transformed."
- </span>
- <</nobr>>
- [[Wait for Sally to respond.->custom girl 3]]
- ::pubic hair options <4676,7631>
- [['"None."'->custom girl 5][$pubic_hair = 'none']]
- [['"Well the carpet should match the drapes."'->carpet matches drapes]]
- [['"A big muff."'->custom girl 5][$pubic_hair = 'muff']]
- [['"A landing strip."'->custom girl 5][$pubic_hair = 'strip']]
- <<if ['kinda_like_heather', 'heather_sister'].include($heather_bikini_options)>>\
- <<choice [['"However, Heather keeps hers."'->heather pubes]]>>
- <</if>>\
- ::amanda1 <4617,5794>
- TODO
- [[Fast Forward ⏩->ff2]]
- ::amanda2 <4759,5794>
- TODO
- [[Fast Forward ⏩->ff2]]
- ::heather pubes <4669,7766>
- "You know what... I don't know how Heather keeps her pubes, and I don't wanna ask," Sally says, "Natural I guess."
- <<include [[pubic hair options]]>>
- ::ff3 <2494,4691>
- Here you'll choose how to customize your bikini, if you used dialog options earlier to "keep the bikini".
|