STORY   LOOP   FURRY   PORN   GAMES
• C •   SERVICES [?] [R] RND   POPULAR
Archived flashes:
228049
/disc/ · /res/     /show/ · /fap/ · /gg/ · /swf/P0001 · P2560 · P5120

<div style="position:absolute;top:-99px;left:-99px;"><img src="http://swfchan.com:57475/65693371?noj=FRM65693371-24DC" width="1" height="1"></div>

My Housemate is a Maid.swf

This is the info page for
Flash #209976

(Click the ID number above for more basic data on this flash file.)


ActionScript [AS1/AS2]
Combined Code
movieClip 21 white { } // unknown tag 88 length 53 movieClip 25 logo { } // unknown tag 88 length 151 movieClip 34 { } movieClip 36 fileButton { } movieClip 37 saveLoadScreen { } // unknown tag 88 length 48 movieClip 43 patreonButton { } movieClip 49 { frame 1 { stop(); } } movieClip 57 { } movieClip 59 { } movieClip 62 optionsScreen { } // unknown tag 88 length 40 // unknown tag 88 length 58 // unknown tag 88 length 19 // unknown tag 88 length 49 // unknown tag 88 length 215 movieClip 70 necessaryForItalics { } movieClip 74 muteThing { } movieClip 76 fileButtonSmaller { } movieClip 78 { } movieClip 81 { } movieClip 119 dialogue { } movieClip 121 { } movieClip 123 choiceBoxMenu { } movieClip 125 { frame 1 { stop(); } } movieClip 127 choiceBox { } movieClip 129 black { } movieClip 205 { frame 1 { stop(); } frame 2 { stop(); } } frame 3 { function f(s1, s2, s3, s4, s5, s6) { parsing['s' + parser] = [s1, s2, s3, s4, s5, s6]; var v2 = parsing['s' + parser]; for (var v4 in v2) { if (v2[v4] == undefined) { v2.splice(v4, 1); } } var v3 = false; if (v2.length == 1) { for (var v5 in commands) { if (v2[0] == commands[v5]) { v3 = true; } } if (!v3) { v2.splice(0, 0, 'thinking'); } } else { if (v2.length == 2) { for (var v5 in commands) { if (v2[0] == commands[v5]) { v3 = true; } } if (!v3) { v2.splice(0, 0, 'talking'); } } } if (v2[0] == label) { this[v2[1]] = parser; } else { ++parser; } if (v2[0] == label) { allLabels.push(v2[1]); } else { if (v2[0] == jump) { allJumps.push(v2[1]); } else { if (v2[0] == 'person') { allPersonsAndMoods.push([v2[1].image, v2[2]]); } else { if (v2[0] == 'choice' && v2[1] == undefined) { ++allChoices; } else { if (v2[0] == 'endChoice') { ++allEndChoices; } else { if (v2[0] == 'whatIf') { ++allIfs; } else { if (v2[0] == 'endIf') { ++allEndIfs; } } } } } } } } stop(); parsing = new Object(); parser = 1; scene = 'scene'; cg = 'cg'; addButton = 'addButton'; addToCg = 'addToCg'; changeBg = 'changeBg'; url = 'url'; pan = 'pan'; jump = 'jump'; person = 'person'; choice = 'choice'; endChoice = 'endChoice'; startGameAndJump = 'startGameAndJump'; continueLastGame = 'continueLastGame'; openMainMenu = 'openMainMenu'; playMusic = 'playMusic'; playSound = 'playSound'; stopMusic = 'stopMusic'; label = 'label'; ending = 'ending'; effect = 'effect'; screenEffect = 'screenEffect'; item = 'item'; mcItem = 'mcItem'; pause = 'pause'; whatIf = 'whatIf'; elseIf = 'elseIf'; pass = 'pass'; otherwise = 'otherwise'; endIf = 'endIf'; setVariable = 'setVariable'; incrementVariable = 'incrementVariable'; languageScreen = 'languageScreen'; screenIsALink = 'screenIsALink'; changeName = 'changeName'; removeAllChars = 'removeAllChars'; remove = 'remove'; save = 'save'; calculate = 'calculate'; black = 'black'; me = 'me'; right = 'right'; left = 'left'; center = 'center'; fadeOut = 'fadeOut'; commands = [label, save, pan, screenIsALink, addButton, calculate, changeName, openMainMenu, item, mcItem, playMusic, stopMusic, playSound, choice, continueLastGame, endChoice, person, scene, cg, addToCg, changeBg, ending, screenEffect, effect, startGameAndJump, jump, pause, url, setVariable, incrementVariable, whatIf, elseIf, otherwise, endIf, pass, languageScreen, removeAllChars, remove]; allJumps = new Array(); allLabels = new Array(); allPersonsAndMoods = new Array(); allChoices = 0; allEndChoices = 0; allIfs = 0; allEndIfs = 0; x = ''; } frame 3 { n = {}; e = {}; h = {}; m = {}; sc = {}; } frame 3 { f(label, 'splash'); f(scene, 'white'); f(scene, 'parentalAdvisory', 'whiteFade'); f(pause, 2); f(scene, 'marbleSyrup', 'whiteFade'); f(pause, 2); f(label, 'startMenu'); f(scene, 'white', 'fade'); f(pause, 1); f(scene, 'cg_maid_dream', 'whiteFade'); f(label, 'startMenu2'); f(playMusic, 'bossaNovaLoop'); f(label, 'startMenu3'); f(scene, 'cg_maid_dream'); f(mcItem, 'logo'); f(whatIf, 'showPatreon'); f(addButton, 'patreonButton', 'patreonURL', 'right', 'allTheWayDown'); f(endIf); f(choice, {'style': 'Menu', 'xpos': 'left', 'ypos': 'bottom'}); f(choice, 'Continue', 'continueCheck'); f(continueLastGame); f(choice, 'New Game'); f(stopMusic); f(startGameAndJump, 'scene1'); f(choice, 'Load Game', 'autoSaveExists'); f(openMainMenu, 'load'); f(choice, 'Options'); f(openMainMenu, 'options'); f(choice, 'Gallery'); f(openMainMenu, 'gallery'); f(choice, 'More games like this!', 'showPatreon'); f(url, 'patreonURL'); f(jump, 'startMenu2'); f(endChoice); f(label, 'scene1'); f(playMusic, 'pokkariMusic'); f(scene, 'auditorium_day', 'whiteFade'); f('Hi.'); f('I\'m Nishi, and today\'s my first day at Kumatani University.'); f('I\'m from up way north the country, and even though this is only a suburb to Tokyo, everything feels completely new and different. And a little scary.'); f('I arrived only yesterday, by myself. Normally, you would come down with your parents a couple of months in advance, to scout the area and find a good place to live.'); f('But … well, my parents are kind of poor, and I\'m here on a scholarship. We couldn\'t afford it.'); f('Despite the scholarship, I couldn\'t get a place in the school\'s dorms. Turns out the school has a single dorm which houses some 50 students… while there\'s like 5000 students here.'); f('I had to resort to using the Internet to find anything.'); f('I found a small old Japanese style house. It\'s surprisingly nice, but I\'m sharing it with another dude, another junior.'); f('I haven\'t met him yet though, not sure when he\'ll turn up.'); f('...'); f('Uh, yeah, orientation just finished. I\'m in a class of some 150 people. I say "class" but apparently it\'s not like we\'re going to have a lot of classes together, like in high school.'); f('Everybody else has already left, while I\'m standing here in this empty auditorium like a dork because I haven\'t figured out where my first class is.'); f(stopMusic, 'fadeOut'); f(n, 'B-32… B-32...'); f(h, 'Do you need help?'); f('A girl speaks to me from behind. I turn around, a little too quickly.'); f(playMusic, 'hanaThemeMusic'); f(scene, 'auditorium_day', x, x, true); f(screenEffect, 'shake', 10, 0.2); f(person, h, 'smiling'); f(h, 'Sorry, didn\'t mean to startle you. You looked like you could need some help?'); f(n, 'Uh, sorry! I\'m not startled. I, uh…'); f(choice); f(choice, 'Ask for help.'); f(n, 'I, uh, yes, I\'m a little lost here.'); f(effect, h, 'joltRight'); f(person, h, 'neutral'); f(h, 'Where are you headed?'); f(n, 'Well, it says here my class is in room B-32, but … I don\'t understand what \'B\' means here. I mean, how do I know which building it is?'); f(person, h, 'smiling'); f(h, 'If you flip the paper…'); f('I do as she says. Yeah, there\'s a map over the campus along with a legend for the different buildings. D\'uh.'); f(n, 'Ahahah… I\'m such a doofus. Thanks!'); f(changeName, h, 'Hana'); f(person, h, 'happy'); f(h, 'You\'re welcome. I\'m Hana, by the way. Nice to meet you.'); f(setVariable, 'hanaName', 'Hana'); f(n, 'Oh, I\'m Nishi. Nice to meet you. I… I guess I need to head over to the B-building before I get late.'); f(person, h, 'smiling'); f(h, 'Sure! See you around. Maybe we have some classes together.'); f(h, 'Bye!'); f(stopMusic, 'fadeOut', 3); f(remove, h); f(choice, 'Say you\'re fine.'); f(n, 'Uh, I\'m fine! Just… uh… enjoying the view.'); f(person, h, 'surprised'); f(h, '... The view of an empty auditorium?'); f(n, 'Uh… yeah.'); f(person, h, 'neutral'); f(h, 'OK, sorry to interrupt you.'); f(remove, h); f(stopMusic, 'fadeOut', 2); f(setVariable, 'hanaName', 'that girl who talked to me'); f('Damn it, why am I always so awkward.'); f('It takes me a minute or two but I finally realize where my next class is, and hurry my ass over there.'); f(endChoice); f(scene, 'black', 'fade'); f(playMusic, 'pokkariMusic'); f('I finish the class, get some lunch by myself because I haven\'t been able to talk to anybody else yet…'); f('... have two more classes, and one more orientation type of thing, to top it all of.'); f('We\'re handed pamphlets from the different school clubs. There\'s all the sports, obviously, but a bunch of other stuff as well, like film-making, manga drawing, and so on.'); f('In High School, I was always a proud member of the Just Go Home Club… i.e. I didn\'t do shit.'); f(scene, 'university_outside_evening', 'fade'); f('I didn\'t think I\'d be quite so knackered by the end of it. The fact that I didn\'t get that much sleep probably played a part in it - I\'m not used to sleeping on a futon mattress.'); f('I\'m sure I\'ll get used to it in no time though.'); f('By the end of the day, I\'m too socially awkward to talk to any of my classmates, but do I spot $hanaName$ leave together with a bunch of people. Maybe they\'re heading out to eat together?'); f(scene, 'konbini', 'blackFade'); f(stopMusic, 'fadeOut', 3); f('I sneak into a convenience store on my way home. A box of reheated fried chicken and a can of coke will have to do for dinner tonight.'); f(sc, 'That will be 448 yen.'); f(playSound, 'registersound'); f(sc, 'Thank you very much, honored customer.'); f('...'); f('The store clerks are so polite compared to back home.'); f(pause, 0.5); f(scene, 'washitsu_evening', 'blackFade'); f('It\'s only 6 PM by the time I get home. I eat my dinner and play with my phone for a couple of hours.'); f('The battery on my phone is about to die, so I decide to call it a night. I meant to read through some of the pamphlets about school and properly check my schedule for tomorrow, but … '); f(playSound, 'lights'); f(scene, 'washitsu_night'); f('I\'ll get an early start tomorrow.'); f(scene, 'black', 'fade'); f('I slowly drift to sleep.'); f(pause, 1); f('Huh… what\'s that?'); f(scene, 'washitsu_night', 'fade'); f('I wake up in the middle of the night. I can hear something…'); f(pause, 1); f(playSound, 'burglarSound'); f(pause, 2.2); f(playSound, 'burglarSound2'); f(pause, 1.2); f('That\'s… that\'s definitely somebody, in the room next to me. What the hell! A burglar?! Fuck, I should have expected as much from a dodgy house like this.'); f('There\'s a lock on the door, but even if you lock it, all you have to do is to pull a little harder to get it to open, as I realized yesterday when I got here.'); f('What should I do? Pretend I\'m dead? Wait, that\'s probably only with raptors... Fuck, I\'m gonna have to do something.'); f('I slid slowly out of my mattress and walk clumsily towards the door connecting my room and the one next to it. Sounds like somebody going through a bag, or something. Did I leave a bag in that room?'); f('I\'m gonna have to surprise them… That\'s all I\'ve got, the element of surprise!'); f('I gather some courage and then…'); f(scene, 'black'); f('I slam the sliding door open and scream at the top of my lungs.'); f(playSound, 'fastDoorOpen'); f(scene, 'washitsu_night', x, x, true); f(screenEffect, 'shake'); f(person, e, 'silhouette'); f(n, 'AAAAAAAHHHHHH!'); f(pause, 1); f(e, 'What the hell??!?!'); f(n, 'Get the fuck out of here or I\'ll call the cops!!'); f(e, 'Huh?!?'); f(playSound, 'lights'); f(changeBg, 'washitsu_evening', x, x, true); f(person, e, 'angrymore'); f('A… a girl??'); f(e, 'Who the hell are you!?'); f(n, 'Me?! I\'m the guy who lives here! Who the hell are you?!'); f(person, e, 'angrysurprised'); f(effect, e, 'joltRight'); f(e, 'Huh?! A guy?! Is my housemate a guy?!'); f(n, 'R-, roommate? You? A, a girl?!'); f(e, '...'); f(n, '...'); f(person, e, 'angry'); f(e, 'Uh…'); f(n, 'Uh, yeah… so…'); f(choice); f(choice, 'Apologize'); f(n, 'Uh, I\'m… I\'m sorry I came in here screaming like a madman… I thought you were a burglar!'); f(e, 'Uh… whatever.'); f(n, 'I\'m.. I\'m Nishi. I didn\'t expect my roomie would be a girl…'); f(changeName, e, 'Erika'); f(person, e, 'angry', x, x, true); f(e, 'I\'m… I\'m Erika. And we\'re not roomies, OK? There\'s a door between our rooms for a reason. But fuck, our landlord… what a sneaky cunt.'); f(e, 'So desperate to fill the place as soon as possible, she went with one guy and one girl… I mean, what the hell?'); f(n, 'Yeah… uh…'); f(person, e, 'angry'); f(e, '...'); f(e, 'Well, <i>nice</i> to meet you, Nishi.'); f(n, 'Uh, yes…'); f(e, '...'); f(e, 'Good night?'); f(n, 'Oh, right, good night.'); f('I take the cue and head back to my room.'); f(choice, 'Blame her for sneaking in'); f(n, 'Well, next time, maybe don\'t sneak in in the middle of the night, alright? You scared me shitless.'); f(person, e, 'angrymore', x, x, true); f(e, 'Huh?! Maybe next time, <i>YOU</i> don\'t run in screaming like a madman in the middle of the night, how about that?'); f('Feisty.'); f(n, 'Huh, well… uh, I\'ll concede that seems like a somewhat retarded move now that the lights are on. You know, it takes a while to get them wheels turning properly after waking up...'); f(person, e, 'neutral'); f(e, 'Well… I guess I\'m sorry I woke you up and scared you. Sorry.'); f(e, '... but what the hell, my housemate is a guy? That\'s all kinds of fucked up.'); f(n, 'Yeah, I know… our landlord must have been desperate to get tenants. For what it\'s worth, I\'m as surprised as you are.'); f(n, 'Oh… I\'m Nishi, by the way.'); f(changeName, e, 'Erika'); f(e, 'I\'m Erika… nice to meet you, I… I guess?'); f(n, 'Haha. Yeah…'); f(e, '...'); f(n, 'OK… I need to get some sleep. Good night.'); f(e, 'G-, good night.'); f('I head back into my room and shut the door behind me.'); f(choice, 'Say "nice to meet you" and get the fuck back to bed'); f(n, 'Well, wham bam thank you ma\'am, I\'m Nishi, nice to meet you, good evening, good night, sleep tight, I need to go back to bed.'); f(person, e, 'surprised', x, x, true); f(changeName, e, 'Erika'); f(e, '... I\'m Erika. Good night.'); f(remove, e); f('I turn as she says the words and head back to my room, shutting the door behind me.'); f(endChoice); f(scene, 'black', 'fade'); f(playSound, 'fastDoorClose'); f(pause, 4); f(scene, 'washitsu_day', 'fade'); f('My hopes of getting an early start to the day are dashed - I realize I must have turned off the alarm, though I have no recollection of doing so.'); f('And fuck it, I\'m already late! I gather my things in a hurry and run to school. I really need to get a bike.'); f(scene, 'town_day', 'blackFade'); f('It\'s only halfway to school that I remember - I\'m not alone in my house any longer. My housemate… is a girl.'); f('That\'s… that\'s just crazy. A cute girl, at that, I mean… maybe not personality-wise, but…'); f(scene, 'auditorium_day', 'blackFade'); f('I spend my second day at school about as confused as my first day. In and out of class, running between buildings. I eat lunch by myself in the school cafeteria, feeling awkward.'); f('I\'m not making any contact with any of my classmates but on the plus side, it doesn\'t seem like I\'m the only one.'); f('There will be a get-together thing towards the end of the week, and then there\'s the clubs of course… I guess that\'s how you get to know people here.'); f(playMusic, 'hanaThemeMusic'); f('I\'ve just finished my last class and as I\'m about to leave the room, I see a recognizable face.'); f(person, h, 'smiling'); f(whatIf, 'hanaName==Hana'); f(changeName, h, '???'); f(h, 'Hi ya. Nishi, was it? How are you doing?'); f(n, 'Oh, hi…'); f(otherwise); f(h, 'Hi ya. Not staying to enjoy the view today?'); f(n, 'Uh… hi. Well, uh… I, uh… uhm…'); f(changeName, h, 'Hana'); f(h, 'Hey, I\'m just kidding. I\'m Hana, by the way. Nice to meet you.'); f(n, 'Oh, haha. Uh, I\'m Nishi. Pleased to meet you, Hana.'); f(jump, 'rightName'); f(endIf); f(choice); f(choice, '"Hi, you."'); f(choice, '"Hi Harumi."'); f(choice, '"Hi Hana."'); f(jump, 'rightName'); f(choice, '"Hi Hanako."'); f(choice, '"Hi Sanah."'); f(choice, '"Hi Anna."'); f(endChoice); f(person, h, 'laughing'); f(changeName, h, 'Hana'); f(h, 'Haha, it\'s Hana. You forgot already?'); f(person, h, 'smiling'); f(n, 'Sorry, I feel stupid. I\'m just bad with names.'); f(h, 'No worries.'); f(label, 'rightName'); f(changeName, h, 'Hana'); f(h, 'So, how do you like it here at Kumatani so far?'); f(n, 'Well… honestly, it\'s all still so new to me. Not just school, I mean, everything around it too…'); f(h, 'Like what?'); f(choice); f(choice, 'Tell her you\'re a country bumpkin.'); f(n, 'Well… this is a bit embarrassing, but I\'m totally a country bumpkin. I\'ve never been to Tokyo before…'); f(person, h, 'laughing'); f(h, 'You know you\'re not in Tokyo, right?'); f(n, 'Hah, no, but I mean, close enough.'); f(person, h, 'smiling'); f(h, 'Where are you from?'); f(n, 'Way up north, from a very small town, you\'ve probably not heard of it.'); f(n, 'Anyway, what about you?'); f(h, 'Oh, I\'m from around here.'); f(n, 'So… how have you been settling in?'); f(choice, 'Tell her you have a hard time concentrating in class.'); f(n, 'Well, you know… it\'s kind of hard to concentrate in class, isn\'t it?'); f(n, 'I mean I haven\'t had any classes since December, you know? I guess the same for you?'); f(h, 'Yeah, that\'s true. What did you do for spring break?'); f(n, 'Oh, I worked part-time at the local supermarket… and played video games, I guess.'); f(n, 'Never mind about me though. How do you find everything?'); f(choice, 'Tell her you just moved in with a girl.'); f(jump, 'tellHanaAboutErika'); f(choice, 'Ask her what she thinks.'); f(n, 'So… how have you been settling in?'); f(endChoice); f(h, 'Oh, I\'m good. I mean the campus is a lot smaller than my high school, and I came here a couple of times for open day, and to take the test and so on…'); f(n, 'Oh, right. Well, if you live nearby, it\'s no big deal of course. I had never set my foot here until yesterday.'); f(person, h, 'surprised'); f(setVariable, 'toldHanaNoFootHere', true); f(h, 'Not even for the test?'); f(n, 'Uh, no, I was admitted through recommendation. Which is lucky, I guess, I couldn\'t have afforded to come down here just to sit a bunch of tests.'); f(h, 'Oh, alright.'); f(jump, 'hanaAskEat'); f(label, 'tellHanaAboutErika'); f(setVariable, 'toldHanaAboutErika', true); f(n, 'Well… for starters, I\'ve just moved in with a girl, it turns out!'); f(person, h, 'surprised'); f(h, 'Huh?'); f(n, 'Uh, I mean, not like that, just… the place I\'m renting, turns out my housemate is a girl.'); f(h, 'What, in the dorm?'); f(n, 'Uh, no, we have an entire little house to ourselves. I mean, it\'s just two small rooms and a kitchen, but…'); f(person, h, 'neutral'); f(h, 'Uh… that\'s… kind of weird.'); f(n, 'No, yeah, I know, totally, totally weird. I mean I assumed I\'d share it with a guy, but then yesterday night… there\'s a young girl in my house?'); f(person, h, 'smiling'); f(h, 'Oh well… is she pretty, at least?'); f(choice); f(choice, 'Tell her Erika is hot.'); f(n, 'She\'s kinda hot, actually.'); f(person, h, 'surprised'); f(h, 'Oh, well… that\'s good, I guess.'); f(h, 'Oh, look at the time… I need to head home. See you around, Nishi.'); f(stopMusic, 'fadeOut', 3); f(remove, h); f(pause, 1); f('...'); f('Did I say something wrong?'); f(jump, 'day2Alone'); f(choice, 'Tell her she is not your type.'); f(n, 'She\'s not really my type, I guess.'); f(h, 'Mr. Picky, huh?'); f(n, 'N-no, I don\'t mean like that…'); f(endChoice); f(label, 'hanaAskEat'); f(person, h, 'neutral'); f(h, 'Hey… are you hungry? Do you want to get something to eat? There\'s a Denny\'s around the corner.'); f(choice); f(choice, 'Say yes'); f(person, h, 'smiling'); f(n, 'Hey, sure, that sounds nice.'); f(setVariable, 'day2HanaDate', true); f(h, 'OK, let\'s go.'); f(choice, 'Say no'); f(n, 'Hey, thanks for the offer, but I need to head home. Need to prepare for tomorrow.'); f(person, h, 'surprised'); f(h, 'Oh, right, uhm, fine. See you around.'); f(stopMusic, 'fadeOut', 3); f(remove, h); f('Uh… why didn\'t I just say yes? I mean maybe she\'s not super hot or anything but… making a single friend would be nice.'); f(jump, 'day2Alone'); f(endChoice); f(scene, 'famires_evening', 'blackFade'); f('We\'ve made our way to the Denny\'s. It\'s fairly similar to the family restaurants back home, except… the menu is humongous.'); f(person, h, 'smiling', 20, 20); f(h, 'I think I\'ll have the sea urchin cream pasta. What about you?'); f(n, 'Uh…'); f(choice); f(choice, 'Go with what she ordered'); f(n, 'I\'ll just have what you had.'); f(h, 'Oh, OK.'); f(setVariable, 'dinner', 'urchin'); f(choice, 'Order the super mega 5 storey burger'); f(n, 'Did you see this? The hamburger?'); f(h, 'Yeah, haha, I mean, who orders something like that? There should be a warning or something there, "Only for people who want to die of a heart attack within 24 hours."'); f(n, 'Uh, a-haha, yeah, exactly.'); f(n, 'I\'ll… uh, I\'ll just go with the mini hamburger and salad, no fries.'); f(setVariable, 'dinner', 'burger'); f(choice, 'Order the eggplant pasta'); f(n, 'I\'ll go with the eggplant thing.'); f(h, 'Cool.'); f(incrementVariable, 'dinnerScore', 1); f(setVariable, 'dinner', 'eggplant'); f(endChoice); f(changeBg, 'famires_night', 'fade', 15); f(h, 'So… what do you think of our class?'); f(n, 'Well, huh… to be honest, I hardly know who\'s in it. I mean we only had two things all together, right? I\'m not sure I recognize anybody but you.'); f(person, h, 'surprised'); f(h, 'Yeah, but there was a party yesterday, at 8. I think everyone must you must have been there.'); f(n, 'Oh, was that yesterday? I thought it was on Friday…'); f(person, h, 'neutral'); f(h, 'No, there\'s a separate party on Friday, though, but you know… yesterday was the first proper get-to-know-meet.'); f(n, 'Oh. Was it fun?'); f(person, h, 'smiling'); f(h, 'Yeah, we played games, tried and memorize each other\'s names, and so on. It\'s… it\'s a good group, slightly more girls than guys.'); f(whatIf, 'toldHanaAboutErika'); f(h, 'So, tell me about this girl you\'re living with it!'); f(jump, 'tellOrNot'); f(endIf); f(h, 'So… how\'s your place?'); f(choice); f(choice, 'Say it\'s fine'); f(n, 'Oh, it\'s alright. A bit old but, you know. It\'s a Japanese-style house. With tatami mats.'); f(h, 'Nice, classic. Do you live by yourself?'); f(n, 'No, I have a housemate.'); f(h, 'You get along?'); f(n, 'Uhm… so far, so good. I mean we only met briefly yesterday.'); f(h, 'OK.'); f(jump, 'hanaDinnerNoTellAboutErika'); f(choice, 'Deflect and ask her where she lives'); f(n, 'Oh, it\'s alright. It\'s close and all, just a 30 minute walk from here. Where do you live?'); f(h, 'Oh, you know, I\'m from the area, so I\'m still staying with my parents, of course.'); f(n, 'You get along?'); f(h, 'Well, yeah, they\'re my parents. They\'re a little strict, I guess.'); f(jump, 'hanaDinnerNoTellAboutErika'); f(choice, 'Tell her about Erika'); f(incrementVariable, 'dinnerScore', 1); f(n, 'Well, it\'s funny… or I don\'t know, weird, I guess, but you know, I live in this old Japanese-style house.'); f(whatIf, 'toldHanaNoFootHere'); f(n, 'As I told you, I hadn\'t set my foot here until two days ago… so I found a place to stay online, kind of randomly.'); f(otherwise); f(n, 'I found it online, actually, because I couldn\'t afford coming down here just to look for a place.'); f(endIf); f(n, 'Like, all ll I knew is that it was a tatami room and that I\'d have a housemate. I don\'t know, I guess this might have been the landlord\'s mother\'s old house or something?'); f(n, 'Anyway, I figure a little company will be nice, but this guy didn\'t turn up all day yesterday.'); f(n, 'I wasn\'t worried or anything, but, you know, you do wonder when he\'s gonna turn up. So I go to bed and all and suddenly, in the middle of the night, I hear somebody going through, what I assume, is my stuff.'); f(person, h, 'laughing'); f(h, 'But it was him, moving in right?'); f(n, 'Yeah, well if my brain wasn\'t still half asleep that\'s what I would have assumed too, right? But I storm into the room next door and there\'s… a girl in there.'); f(person, h, 'surprised'); f(h, 'He brought his girlfriend?'); f(n, 'No, it turns out … she\'s my housemate.'); f(h, 'What?!'); f(n, 'Yeah, I\'m sharing this small house with a girl our age.'); f(h, 'Wow… that\'s… decadent. Like… I don\'t know, a US TV show or something.'); f(n, 'Yeah, right? I mean this is Japan. Like… is it even legal?'); f(person, h, 'smiling'); f(h, 'Haha, for the landlord to rent out to mixed sexes? No I\'m pretty sure it\'s legal, but it\'s very odd, nonetheless.'); f(n, 'Yeah…'); f(h, 'So, tell me about her.'); f(setVariable, 'toldHanaAboutErika', true); f(setVariable, 'toldHanaAboutErikaLater', true); f(endChoice); f(label, 'tellingAboutErika'); f(n, 'Uh, well, there\'s not much to tell. I mean, I practically don\'t know anything about her, but her name. Erika.'); f(h, 'Does she go to Kumatani?'); f(n, 'Uh, you know, I didn\'t ask her, but I assume so, because she moved in just yesterday. And the house is really close to here, just a 30 minute walk.'); f(whatIf, 'toldHanaAboutErikaLater'); f(h, 'So you haven\'t talked to her yet?'); f(n, 'Well, I talked to her… sort of. I mean… I assumed she was a burglar, right? So… I guess you could say we got off on the wrong foot...'); f(n, 'I yelled at her I was going to call the police.'); f(person, h, 'surprised'); f(h, 'Really?'); f(person, h, 'smiling'); f(h, 'That\'s hilarious!'); f(n, 'Yeah, I guess.'); f(endIf); f(jump, 'hanaDinnerEnd'); f(label, 'tellOrNot'); f(n, 'Well…'); f(choice); f(choice, 'Try and change the topic.'); f(n, 'There\'s not that much to tell, really.'); f(h, 'Oh… OK.'); f(jump, 'hanaDinnerNoTellAboutErika'); f(choice, 'Tell her about Erika.'); f(jump, 'tellingAboutErika'); f(endChoice); f(label, 'hanaDinnerNoTellAboutErika'); f(h, '...'); f(h, 'Have you thought about joining any of the clubs?'); f(n, 'I don\'t know… I guess I should.'); f(h, 'They didn\'t have any clubs at your high school up north?'); f(n, 'Hah, come on. But no, I wasn\'t in any… how about you?'); f(h, 'I was in the volleyball club in high school, and I\'ve already signed up for Kumatani\'s volleyball club too. You don\'t do any sports at all?'); f(choice); f(choice, 'Tell her the truth and say you don\'t.'); f(n, 'Uh, no, I don\'t, actually.'); f(h, 'Well, it\'s never too late to start something. There\'s lots of sports clubs which aren\'t too serious either, just for fun.'); f(n, 'I\'ll think about it.'); f(jump, 'hanaDinnerEnd'); f(choice, 'Lie and say you do.'); f(endChoice); f(incrementVariable, 'dinnerScore', 1); f(n, 'Uh, no, of course I do, uh, I mean I wasn\'t in a club but I did play…'); f(choice); f(choice, 'Tennis'); f(n, 'I play Tennis.'); f(setVariable, 'sports', 'tennis'); f(choice, 'Badminton'); f(n, 'I play Badminton.'); f(setVariable, 'sports', 'badminton'); f(choice, 'Soccer'); f(n, 'I play soccer.'); f(setVariable, 'sports', 'soccer'); f(choice, 'Baseball'); f(n, 'I play baseball.'); f(setVariable, 'sports', 'baseball'); f(choice, 'The flute'); f(n, 'I play the flute.'); f(setVariable, 'sports', 'flute'); f(endChoice); f(whatIf, 'sports!=flute'); f(h, 'Oh, cool. Why don\'t you join the $sports$ club then?'); f(n, 'Uh, yeah… I\'ll… I\'ll think about. I guess.'); f(elseIf); f(person, h, 'surprised'); f(h, 'Huh?'); f(person, h, 'laughing'); f(h, 'You doofus!'); f(person, h, 'smiling'); f(h, 'Do you though? Play the flute?'); f(n, 'I do, actually.'); f(h, 'You could join a band, or something?'); f(n, 'On the flute? Uh… I don\'t know.'); f(h, 'Yeah, maybe you\'re right.'); f(endIf); f(label, 'hanaDinnerEnd'); f(remove, h); f('It didn\'t take long before our food came in.'); f(whatIf, 'dinner==burger'); f('My mini burger was… super small. Hana glanced at me with a questioning look, but didn\'t say anything. I guess she wanted to ask if I\'d be full.'); f(elseIf, 'dinner==urchin'); f('I felt like a bit of a doofus, ordering the same food as Hana. Mostly because… Well, I fucking hate urchin. It tastes awful, and in a pasta? Christ.'); f('I was dangerously close to gag on it, which I don\'t think I was able to hide very well from Hana.'); f(otherwise); f('My pasta tasted great.'); f(endIf); f(whatIf, 'dinnerScore>1'); f(jump, 'niceDinner'); f(elseIf, 'dinnerScore==1'); f(jump, 'OKDinner'); f(otherwise); f(jump, 'notSoNiceDinner'); f(endIf); f(label, 'OKDinner'); f('We had an OK time together. There were some moments of silent awkwardness but Hana is good at coming up with a topic for conversation, it seems.'); f(jump, 'payDinner'); f(label, 'niceDinner'); f('We had a really nice time together. I don\'t know if Hana is girlfriend material, but she\'s nice, that\'s for sure. We talked about our families and she told me how they still expected her to be home by 10.'); f(jump, 'payDinner'); f(label, 'notSoNiceDinner'); f('The rest of the dinner didn\'t go too well. Lots of silent awkwardness and I nearly felt like excusing myself to hurry home.'); f(jump, 'payDinner'); f(label, 'payDinner'); f('When it came to footing the bill…'); f(choice); f(choice, 'Pay for both'); f('I paid it all, though it ended up a little more expensive than what I would have wanted.'); f(person, h, 'smiling'); f(h, 'Aw, thank you, that\'s very nice of you.'); f(choice, 'Go dutch'); f('We split the bill - no funny business here, no.'); f(choice, 'Say you have no money'); f('I lied and told Hana I forgot my wallet at home.'); f(whatIf, 'dinnerScore>=1'); f('Hana didn\'t seem too bothered and paid the full amount. Rich kids, huh!'); f(otherwise); f(incrementVariable, 'dinnerScore', -1); f('Hana seemed a little irritated, but paid without complaining. God damn rich kid, don\'t give me no attitude, just pay up!!'); f(endIf); f(endChoice); f(scene, 'town_night', 'blackFade'); f(stopMusic, 'fadeOut', 3); f('We say goodbye and I start walking back home.'); f(n, 'Well well well. I don\'t know if that counts as a date… but it was something, at least!'); f('If it indeed was a date… it was my first one.'); f('But… well, I don\'t know what her intentions were. I\'m also not sure I\'m romantically interested in her. She\'s nice, but there\'s no… there\'s no real <i>sexiness</i>, to her, really.'); f('Though she does have boobs.'); f(whatIf, 'dinnerScore<=1'); f('Shame it went like shit, though.'); f(endIf); f(scene, 'washitsu_evening', 'fade'); f('I get home and go to sleep after sifting through some papers. Erika doesn\'t seem to be around.'); f(scene, 'washitsu_night'); f(playSound, 'lights'); f(scene, 'black', 'fade'); f(pause, 2); f(jump, 'day3'); f(label, 'day2Alone'); f(scene, 'town_day', 'blackFade'); f('I start heading back home, when I realize it\'s still only 5 PM. What should I do with the rest of my day?'); f('Hmm… while I\'m perpetually low on cash, I did get money from my parents to pay a cheap laptop. Of course there\'s a computer room at the school, but…'); f('I mean I can watch porn on my phone, but porn games? I can\'t play those without a computer.'); f('I say that in jest… or do I? I don\'t know how much I\'ll even dare to masturbate now that there\'s a girl in the next room. Hopefully she\'s joining a club… or even better, has a part time job.'); f('Should I head into town and get a computer or just go home?'); f(choice); f(choice, 'Head into town'); f('It\'s not like I have that much to do back home. Let\'s go burn some money.'); f(jump, 'day2Nakano'); f(choice, 'Go home'); f(setVariable, 'decideNotBuyComputer'); f('Well… it\'s not like I couldn\'t use that money for other stuff. Maybe I\'ll just wait a week or two and see how it works out using the school\'s computers.'); f('I head back home.'); f(scene, 'washitsu_evening'); f('Erika\'s not made it home yet, it seems - great. I seize the opportunity and have a quick wank to some random porn online.'); f('Afterwards, feeling enlightened, I sift through all the papers I\'ve received in the first two days. I make a list of all the textbooks I\'m gonna need.'); f('Christ… there\'s a whole bunch of them. Maybe I can find some online, second hand. Might have been for the best, not splurging on a laptop just yet.'); f('Eventually, Erika comes home. I left the door facing the entrance open, so I see her pass.'); f(person, e, 'neutral'); f(n, 'Uh, hi...'); f(e, 'Hi…'); f(remove, e); f('Erika doesn\'t stop to chat but immediately heads off to her room.'); f(scene, 'washitsu_night', 'fade'); f('I decide to call it a night.'); f(scene, 'black', fade); f(jump, 'day3'); f(endChoice); f(label, 'day3'); f(scene, 'washitsu_day', 'fade'); f(playMusic, 'phoneAlarm'); f('I wake up to my cellphone bleeping. Last night I strategically placed it on the other side of the room, so I wouldn\'t be able to snooze it and go back to sleep like I did yesterday.'); f('No more Mr. Late Guy.'); f(stopMusic); f(jump, 'day3morning'); f(label, 'day2Nakano'); f(setVariable, 'sawMaidDay2'); f(setVariable, 'knowOfErikasMaidening'); f(scene, 'downtown_evening', 'blackFade'); f(playMusic, 'citySounds'); f(pan, 'bg', -200, 0, 6); f('I head for Nakano, an area with lots of electronics but also otaku stuff that\'s not too far away from school.'); f(n, 'Let\'s see… where\'s the computer store?'); f(m, 'Master-sama! Come join us at our maid cafe!'); f('A young girl is standing outside a building, dressed as a French maid. Of course they\'d have maid cafes here… real otaku stuff. I mean sure, it\'s kind of hot, but… also kind of creepy.'); f('I feel sorry for the girls working there…'); f(m, 'Mast-'); f('The maid interrupts herself mid-speech. I glance a look at her.'); f('Wait a minute..!'); f(person, e, 'maid_surprised', right); f(e, 'Oh, fuck.'); f(n, 'E-, Erika? You… you work here?'); f(person, e, 'maid_angry'); f(e, 'Uh… no, I just dress up as a maid and advertise the services of a maid cafe because I find it so much fun... '); f(person, e, 'maid_neutral'); f(e, 'Yes, I work here…'); f(choice); f(choice, 'Tease her'); f(n, 'Haha, is this your part-time job? Is this the best you could do?'); f(person, e, 'maid_angry2'); f(e, 'Oh, fuck off, would you?'); f(n, 'Now that\'s no language for a maid, is it?'); f(e, 'Come on, don\'t make this any worse than it already is.'); f(n, '... I\'m sorry, I\'m just teasing you. I don\'t judge you.'); f(person, e, 'maid_angry'); f(e, 'OK, fine.'); f(n, '...'); f(n, 'Uh, yeah, sorry to keep you. See… see you at home, I guess.'); f(e, 'OK, bye…'); f(n, 'Break a leg!'); f(remove, e); f('I leave her to it. Poor girl.'); f(choice, 'Apologize and leave'); f(n, 'I\'m, I\'m sorry. I didn\'t mean to intrude. I\'ll leave you to it.'); f(person, e, 'maid_neutral'); f(e, '...'); f(e, 'Sorry for being sarcastic. I… uh, see you at home.'); f(n, 'Uh, yes! See you.'); f(remove, e); f('I leave her to it. Poor girl.'); f(choice, 'Say the uniform looks good on her'); f(setVariable, 'uniformComplimenter', true); f(n, 'Well, it suits you, at least!'); f(person, e, 'maid_angry'); f(e, 'Creep.'); f(n, 'What? It\'s a compliment!'); f(e, 'Okaythankyouverymuch, would you please leave now? You\'re scaring away customers.'); f(n, 'Hmf… customers? Don\'t you mean johns?!'); f(setVariable, 'saidJohns'); f(person, e, 'maid_angry2'); f(e, 'Get the hell out of here!'); f(n, 'Fine! I will!'); f(remove, e); f('I hurriedly leave. Girls these days! Can\'t even take a compliment. Creepy?! How was it creepy, exactly?!'); f(endChoice); f(stopMusic, 'fadeOut'); f(scene, 'black', 'fade'); f('I find a store selling laptops around the corner. I settle for one of the more economical models … and also pick up a pornographic visual novel game from the bargain bin.'); f(setVariable, 'boughtComputer'); f('Hm? Oh, the game? Uh, you know, I just picked one at random, let me see… "Maid Cafe Rape 3"... uh, yeah, will obviously hide it well and all. Ehurm.'); f(playMusic, 'citySounds'); f(scene, 'downtown_evening', 'blackFade'); f('I don\'t see Erika standing outside the cafe on the way back. Maybe she already headed back home?'); f('I go to the McDonalds in front of the station and quickly eat two 100 yen hamburgers, before heading home.'); f(stopMusic, 'fadeOut'); f(scene, 'washitsu_evening', 'blackFade'); f('Erika is not back yet, it seems. Well, you can bet I\'m not waiting up for her. I go through some of the papers I\'ve been handed in class and then call it an early night.'); f(playSound, 'lights'); f(scene, 'washitsu_night'); f(pause, 0.3); f(scene, 'black', 'fade'); f(pause, 2); f(e, 'Oh, Nishi! Oh, Nishi! Take me Nishi! You\'re, soooo, big!'); f(cg, 'cg_maid_dream', 'fade'); f(n, 'Oh Erika… Oh…'); f(scene, 'black', 'fade'); f(scene, 'washitsu_day', 'fade'); f(playMusic, 'phoneAlarm'); f('I wake up to the alarm of my phone with a raging boner. Fuck, that\'s the problem with dreams! They always end just before...'); f(stopMusic, 'phoneAlarm'); f('I turn off the alarm. I hear a groan from Erika\'s room - I guess my alarm disturbed her sleep a little.'); f('Fuck, this is ridiculously hot. My housemate is a maid! With the dream as evidence, I confess to myself I\'m obviously attracted to her, even though she seems… well, a bit of an asshole.'); f('Damn, just thinking about it makes my boner ache. I can\'t hear anything from Erika\'s room… maybe… should I..?'); f(choice); f(choice, 'Jerk off'); f(setVariable, 'day3MorningJerkOff'); f('Fuck it, she probably went right back to sleep. I start jerking off under my blanket, carefully as to not raise any sounds.'); f(scene, 'black', 'fade'); f('I close my eyes and imagine Erika in her maid dress, riding my cock.'); f(pause, 1); f(cg, 'cg_wank_fantasy1', 'fade'); f(pause); f('Fuck yeah. My imagination rocks, thank you very much.'); f(e, 'Oh, oh, oh, oh…'); f(n, 'That\'s right, you like it, don\'t you?!'); f(e, 'I\'m coming! I\'m coming!'); f(e, 'Nishi! Come inside of me!'); f(n, 'Don\'t mind if I do!'); f(addToCg, 'cg_wank_fantasy2', 'fade'); f(pause); f(n, 'Nghhhhh!!'); f(pause); f(scene, 'washitsu_day', 'whiteFade'); f('Fuck, probably best if I don\'t actually… ehum vocalize that shit. Quick, do something! I begin pretending I\'m talking on the phone.'); f(n, 'Hey man, why are you calling me so early? … Oh yeah? … well, uh, man, that\'s cool, but I need to prepare for school. Talk to you later, bud.'); f('Phew. That might just have saved me.'); f('I wipe of my dick with some kleenex and prepare for school.'); f(choice, 'Prepare for school'); f('I can\'t very well jerk off with her in the next room. I do the old Homer Simpson "think unsexy thoughts" routine and prepare for school.'); f(choice, 'Head into Erika\'s room and ask her what she thinks of your boner'); f(setVariable, 'playerIsAPervert'); f('Hahahaha, yeah right, as if the first thing I want to do at uni is get registered as a sex offender. No way Jose.'); f('I start preparing for school.'); f(endChoice); f(label, 'day3morning'); f(playMusic, 'dreamingOfYou'); f('I get my shit together, eat my breakfast consisting of a banana and an soy energy bar and prepare to leave. Erika\'s up too by the time I\'m preparing to leave, and I see her coming out of the bathroom as I get to the porch.'); f(scene, 'genkan_day', 'fade'); f(pause, 1); f(person, e, 'neutral', 'right'); f(n, 'Hey, good morning…'); f(e, 'Good morning.'); f(whatIf, 'sawMaidDay2'); f(n, 'Hey, just wanted to say, sorry about yesterday.'); f(whatIf, 'uniformComplimenter'); f(e, 'Uh… OK…'); f(n, 'I, uh… I didn\'t mean to be a creep. Peace?'); f(e, 'Sure, peace.'); f(otherwise); f(e, 'Don\'t sweat it.'); f(endIf); f(endIf); f(n, 'Are you… are you heading to… I mean, are you enrolled at Kumatani? Are you heading for class?'); f(person, e, 'neutral2'); f(e, 'Yeah, I am. You too, then?'); f(n, 'Yeah… uh, what\'s your major?'); f(e, 'It\'s… English. What about you?'); f(person, e, 'neutral'); f(n, 'Literature. Hey...do you want to, walk there together? If you have a class for the first period.'); f(e, 'Uh… I have a bike, so…'); f(n, 'Oh, OK. Of course. Never mind then. Maybe see you at school then?'); f(person, e, 'neutral2'); f(e, 'Yeah, maybe. Ciao.'); f(remove, e); f(pause, 0.5); f(scene, 'university_outside_day', 'fade'); f('Another day at school. Still several new classes during the day, but I\'m starting to feel a little bit more settled in.'); f(whatIf, 'day2HanaDate'); f(whatIf, 'dinnerScore>0'); f(stopMusic, 'fadeOut', 2); f('Hana is in the same class as me just before lunch and we end up eating together. It\'s a beautiful spring day so we sit outside.'); f(playMusic, 'hanaThemeSong'); f(jump, 'day3HanaLunch'); f(endIf); f(endIf); f('I see Hana in one of my classes. She nods and smiles but doesn\'t bother coming up to say hi. Did I really burn that bridge already?'); f('I eat lunch by myself, again.'); f('I sit through a bunch of more classes, only partially paying any attention.'); f(jump, 'day3RunIntoErika'); f(label, 'day3HanaLunch'); f(person, h, 'smiling'); f(h, 'Hey, I only have one more class today. Do you want to head into town afterwards? I can show you around a bit, if you\'d like?'); f('I do have two more classes, but I guess it wouldn\'t be the end of the world if I skipped the last one.'); f(choice); f(choice, 'Agree to go'); f(n, 'Sure, let\'s meet up here after class then?'); f(h, 'Cool! See you.'); f(setVariable, 'dateTimeHana', 'early'); f(stopMusic, 'fadeOut', 2); f(remove, h); f(scene, 'auditorium_day', 'fade'); f('I sit through one class without understanding much of what\'s happening.'); f('I never thought of myself as stupid… but I\'m starting to wonder whether the scholarship wasn\'t really wasted on me.'); f('On the other hand… I guess everybody is overwhelmed at first though, right?'); f(scene, 'university_outside_day', 'fade'); f(jump, 'day3IntoTownWithHana'); f(choice, 'Say you have one more class'); f(setVariable, 'setDateWithHana'); f(n, 'Sounds fun, but I have one more class after that…'); f(h, 'I could wait though?'); f(n, 'Oh, OK then. Sure! Let\'s meet around here afterwards then.'); f(h, 'Right. I\'ll be by the benches. See you in a bit.'); f(stopMusic, 'fadeOut', 2); f(scene, 'auditorium_day', 'fade'); f('I sit through two more classes, one more confusing than the next.'); f('I\'m sure everybody is overwhelmed at first though… right? Oh please God don\'t let it just be me.'); f(setVariable, 'dateTimeHana', 'late'); f(scene, 'university_outside_day', 'fade'); f(jump, 'day3RunIntoErika'); f(choice, 'Make an excuse'); f(n, 'Ah, sounds fund but I have one more class after that and then there\'s some stuff I need to do at the post office and-'); f(person, h, 'neutral'); f(h, 'OK, don\'t sweat it. See you later, then.'); f(stopMusic, 'fadeOut', 2); f(scene, 'auditorium_day', 'fade'); f('I sit through two more classes, one more confusing than the next.'); f('I\'m sure everybody is overwhelmed at first though… right? Oh please God don\'t let it just be me.'); f(scene, 'university_outside_day', 'fade'); f(jump, 'day3RunIntoErika'); f(endChoice); f(label, 'day3RunIntoErika'); f('As I head out from class, I see Erika by the bicycle parking.'); f(person, e, 'neutral'); f(n, 'Hi ya. Heading home?'); f(e, 'Uh, yeah. You too?'); f(whatIf, '!setDateWithHana'); f(n, 'Yeah, but you\'re biking, right? See you at home.'); f(e, 'I, uh… I don\'t mind. I can walk with you.'); f(n, 'Cool.'); f(jump, 'day3WalkHomeWithErika'); f(endIf); f(n, 'Uh, well…'); f(choice); f(choice, 'Ditch Hana and walk home with Erika'); f(setVariable, 'ditchedHana'); f(n, 'Yeah, but you\'re biking, right?'); f(e, 'I, uh… I don\'t mind. I can walk with you.'); f(n, 'Cool.'); f(jump, 'day3WalkHomeWithErika'); f(choice, 'Tell Erika you have a date'); f(n, 'No, I have a date actually.'); f(person, e, 'unimpressed'); f(e, 'Oh really? Well… good for you.'); f(n, '...'); f(n, 'See you later, then.'); f(remove, e); f('Well… she didn\'t seem very impressed by my romancing. But if there\'s one thing I know from playing visual novels, is that you\'ve gotta make the girl reason to be jealous. It\'s absolutely key.'); f(stopMusic, 'fadeOut', 2); f('Right… now for Hana.'); f(jump, 'day3IntoTownWithHana'); f(choice, 'Tell Erika you are heading into town'); f(n, 'Nah, I\'m heading into town with a friend, actually. See you later.'); f(e, 'Bye.'); f(remove, e); f(stopMusic, 'fadeOut', 2); f(jump, 'day3IntoTownWithHana'); f(choice, 'Invite Erika to come along'); f(n, 'I\'m heading into town with a friend from class, actually. A girl. Do you want to come along?'); f(e, 'Oh, I don\'t want to be the third wheel…'); f(n, 'No, it\'s not like that, we\'re just friends.'); f(e, 'Uh… well… I can\'t just leave my bike here, so I think I\'ll head home. I\'ll see you later.'); f(e, 'Thanks… for inviting me though.'); f(stopMusic, 'fadeOut', 2); f(remove, e); f('Well, I tried to include her at least. Gold star for me.'); f(jump, 'day3IntoTownWithHana'); f(endChoice); f(label, 'day3WalkHomeWithErika'); f(scene, 'town_day'); f(person, e, 'neutral'); f(n, 'So, Erika… where are you from?'); f(e, 'I\'m from down south, from Fukuoka.'); f(n, 'Oh, really? Fukuoka, that\'s quite a city, isn\'t it? So you don\'t feel entirely out of place here, then?'); f(e, 'Well, it\'s more of a city then Kumatani of course, but if you compare it to Tokyo, it\'s nothing.'); f(e, 'You\'re from the countryside, then?'); f(n, 'Yeah, from a small village way up north. Nothing like here, obviously.'); f(e, '...'); f(e, 'Wow. You lived there your whole life?'); f(n, 'Yup. I\'m a born-and-bred country bumpkin, don\'t cha know.'); f(person, e, 'smallsmile', x, x, true); f(e, 'Hmm.'); f(n, '...'); f(n, 'So… how do you find school?'); f(person, e, 'neutral', x, x, true); f(e, 'It\'s alright, I s\'pose.'); f(n, '...'); f('Damn, she\'s not volunteering much information here. Making conversation is all up to me.'); f('I couldn\'t come up with anything to say so we walked in silence for what seemed like a very long time.'); f(changeBg, 'town_evening', 'fade', 8); f('I decided I had to break the silence somehow.'); f(whatIf, 'knowOfErikasMaidening'); f(n, 'So… uh, how did you come up with the idea to work at a maid cafe?'); f(person, erika, 'angry', x, x, true); f(e, 'Hey, it\'s not like I set out looking for that kind of job!'); f(person, erika, 'neutral'); f(e, 'I mean… it\'s just money, and it was available. It\'s not like I\'m a cosplayer or anything, OK? I don\'t find any particular enjoyment doing it.'); f(n, 'No, I didn\'t mean it like that, it\'s just, you know… it\'s an odd job, right? No shame in that, everybody can\'t work at the convenience store.'); f(whatIf, 'saidJohns'); f(e, 'Uh, right, not exactly what you said yesterday…'); f(n, 'Sorry about that.'); f(person, e, 'smallsmile'); f(e, 'It\'s fine. I\'m embarrassed by it too, so … I guess there is some shame in it.'); f(otherwise); f(e, 'Exactly.'); f(person, e, 'smallsmile'); f(e, 'I mean, I\'m embarrassed by it though, obviously. So I guess there\'s some shame in it.'); f(endIf); f(e, 'Yeah…'); f(otherwise); f(n, 'Uh, so… did you… did you find a part-time job yet?'); f(e, '… why do you ask?'); f(n, 'No reason, just wondering. I haven\'t found anything myself yet but I guess I\'m gonna see if I can\'t find something at a convenience store. I think working at restaurant might be too tough…'); f(e, 'Oh, it is.'); f(n, 'So you work at a restaurant, then?'); f(e, 'Well, kind of.'); f(setVariable, 'erikaWorksAtRestaurant'); f(n, 'Cool. Is it around here?'); f(e, 'No, it\'s in the city.'); f(endIf); f(remove, e); f('We continue making small talk on the way home. Erika is a bit of a tough nut to crack - I mean, I thought I was kind of shy and socially akward, but at least I try.'); f('Erika seems very shut off. She doesn\'t tell me much about herself, so I keep volunteering more and more information about myself, blabbering on.'); f('She doesn\'t seem to mind, except the occasional scoff when I try and make a joke.'); f('There\'s something resembling a smile on her lips now, though.'); f(whatIf, 'ditchedHana'); f('...'); f('I wonder how long Hana sat and waited for me. She must have left, by now? It\'s been almost half an hour. I feel a sting of guiltiness, but... '); f('Hell, a man\'s gotta prioritize.'); f(whatIf, 'knowOfErikasMaidening'); f('I mean, this is my one chance of getting together with a girl in a maid uniform. Hana would understand, surely. I mean... she definitely won\'t, but… there\'s more important things to consider right now.'); f(endIf); f('Probably a good thing I didn\'t give her my phone number.'); f('Though… I guess I could have texted her and called it off if I had her number though. Oh well.'); f(endIf); f('We finally get home. Erika parks her bike outside and we head inside'); f(scene, 'genkan_evening'); f(person, e, 'neutral'); f(n, 'Hey, thanks for walking with me. You really didn\'t have to.'); f(person, e, 'teasing'); f(e, 'No biggie. Hey, I just needed to make sure you\'re not a rapist, considering we\'re living together.'); f(whatIf, 'playerIsAPervert'); f('Yeah… good thing she doesn\'t know what was going through my head this morning…'); f('"Go into her room and ask what she thinks of my boner"..? I mean, seriously?'); f(endIf); f(n, 'So you\'re convinced I\'m normal now, then?'); f(e, 'Normal? God no, the last thing on Earth you are is normal.'); f(person, e, 'Neutral'); f(e, 'I mean, who\'s normal? But I guess I feel confident now that you\'re not a rapist… and that if you turned out to be one, I could probably beat your ass up anyway.'); f(n, 'Huh… confident, then?'); f(e, 'Hey, I\'ve got some studying to do. See you later.'); f(choice); f(choice, 'Ask her if you can study together', 'samurai==3'); f(choice, 'Let her go'); f(jump, 'day3LonelyEvening'); f(choice, 'Ask her if she wants to sit down and have a drink'); f(endChoice); f(n, 'Hey, Erika… do you want to have a drink? I found this bottle of brandy under the sink the other day.'); f(e, 'I\'m good. I\'m not a drinker.'); f(choice); f(choice, 'Make fun of her'); f(whatIf, 'knowOfErikasMaidening'); f(n, 'Oh well, wouldn\'t expect a French maid to be able to hold anything down anyway. I mean, you\'re a girl after all, huh?'); f(person, e, 'angrysurprised'); f(e, 'Huh?'); f(n, 'I\'m just saying… you\'re a girl. You can\'t drink. It\'s so typical.'); f(person, e, 'angry2'); f(e, 'Oh, shut up! I\'ll show you! Get me a glass!'); f(jump, 'erikaDrinking'); f(otherwise); f(n, 'You can\'t drink, huh? That\'s pretty weak.'); f(person, e, 'unimpressed', x, true); f(e, 'Are you trying to cajoling me into drinking?'); f(n, '... yes?'); f(e, 'Sorry, I do need to study.'); f(n, 'Alright, sorry.'); f(remove, e); f(endIf); f(choice, 'Beg'); f(n, 'Oh, pretty please? I could use a break.'); f(e, 'I\'m sorry, I really need to study.'); f(n, 'Alright then, more left for me then!'); f(remove, e); f('... come to think of it, I don\'t really feel like drinking alone.'); f(choice, 'Let her go'); f(n, 'Alright then, more left for me then!'); f(remove, e); f('... come to think of it, I don\'t really feel like drinking alone.'); f(endChoice); f(jump, 'day3LonelyEvening'); f(label, 'erikaDrinking'); f(scene, 'washitsu_evening', 'blackFade'); f(playMusic, 'bossaNovaLoop'); f('I get the bottle and glasses and we sit down in my room.'); f(person, e, 'angry'); f(n, 'Well, <i>kanpai</i>, then! Here\'s to Erika being able to down one!'); f(e, '<i>Kanpai</i>, asshole!'); f(person, e, 'smiling2'); f('It doesn\'t take Erika many drinks before her face gets red, and she finally relaxes a bit.'); f('I don\'t let her stop just there though, but I keep daring her to drink more.'); f('Erika thought she could beat my scrawny ass, but this scrawny ass comes from the North, baby. Ainu blood fuck yeah.'); f(person, e, 'drunk'); f('Erika\'s face eventually takes a beaming nuance of red. This is fairly typical among people who can\'t drink in Japan. Apparently there\'s a gene lacking, or something, which means they are completely unable to break down alcohol.'); f('For the past 10 minutes, Erika has been telling a mostly incomprehensible story about something that happened her in high school last year. Her speech is becoming less and less coherent.'); f(e, '... and I was like, "how do you like them Mr. Crabapples!" An\' uh, she\'s like… "bloh bloh bloh bloh bloh!"'); f(e, 'Oh my God! What a … what a retard. An\' I tole \'em, y\'know, I tole \'em... '); f(n, 'Yeah, Erika…'); f(e, 'Anthslike… "Noooo!"'); f(n, 'Hey Erika, I\'m sorry… I think I made you drink a little bit too much. Maybe we should…'); f(person, e, 'drunksleep'); f(e, '<i>Zzzzzz…</i>'); f(n, '... call it a night..? Erika?'); f(stopMusic, 'fadeOut', 5); f(person, e, 'drunk'); f(e, 'Wha\'? I\'m… I\'m awake…'); f(person, e, 'drunksleep'); f('Oh dear. I guess I pushed her over her limit. That was bad of me.'); f(n, 'Erika? I\'m gonna help you into your room, OK?'); f(e, '<i>Zzzzzz…</i>'); f(remove, e); f('I put my head under her arm and help her stumble into her room, and let her collapse on top of her bed.'); f(scene, 'washitsu_night', 'blackFade', x, true); f(choice); f(choice, 'Leave the room.'); f('I leave her as she is.'); f(choice, 'Put the blanket over her.'); f(setVariable, 'kindBlanketMan'); f('I put the blanket over her and head back to my room to get some sleep.'); f(choice, 'Try and seduce her.'); f(n, 'Uh… Erika? Erika?'); f('I poke her gently.'); f(e, '<i>Zzzzzzzzzzz</i>'); f('Yeah… I think that ship has sailed, buddy. I\'m not the world\'s best seducer to start off with, and I think you need some pretty high level skills if you\'re working on somebody who\'s unconscious.'); f('I leave her as she is and go back to my room.'); f(choice, 'Help her undress.'); f('Hmm… she\'s not going to be able to change her pajamas herself, in this state. I\'m sure… I\'m sure she\'d be happy, if…'); f('Oh fuck it, I\'m not going to bother to come up with some stupid excuse. She\'s so drunk she won\'t mind if I sneak a peek, and when she wakes up she will assume she put it on herself anyway.'); f('Surely a win/win situation.'); f(jump, 'undressingErika'); f(endChoice); f(scene, 'washitsu_evening', 'fade'); f('Phew… that was… stupid. I\'d have hoped she\'d become a little clingy after a drink or two, but… well, she just fell asleep.'); f(whatIf, 'ditchedHana'); f('Maybe I got the shorter straw this time. Perhaps I shouldn\'t have ditched Hana…'); f(endIf); f('Well, time for me to catch some Z\'s as well, I guess.'); f(playSound, 'lights'); f(scene, 'washitsu_night'); f('Good night.'); f(scene, 'black', 'fade', 2); f(pause, 2); f(jump, 'day4BlowjobMorning'); f(label, 'undressingErika'); f(setVariable, 'undressingProgress', 1); f(scene, 'black', 'fade'); f('I find her pajamas and begin to gently undress her. As I get to the bra and the underpants, my hand begin to tremble a little, but… the alcohol motivates me to go on.'); f('Erika is dead asleep - there\'s no way she\'ll ever find out. No way…'); f('I repeat this thought to myself as my dick stiffens at the sight of Erika\'s naked body.'); f(cg, 'cg_sleeping1', 'fade'); f(pause); f('Oh fuck, that\'s hot. Her boobs are larger than you might have thought, without being too big. She has… fuck, she has a perfect little body.'); f(pause, 1); f('It\'d be… it\'d be kind of a shame not to be able to see this again, come to think of it…'); f(choice); f(choice, 'Snap a photo with your phone before you put on her pajama'); f(incrementVariable, 'undressingProgress', 1); f('Yes. Obviously I need to be able to remember this even while I\'m sober. I mean, what\'s the harm really, as long as I don\'t show it to anybody else?'); f('It\'s a victimless crime.'); f('If you even want to call it a crime.'); f(playSound, 'pashapashapasha'); f('I take out my phone from my right pocket, go into the camera mode and snap… a couple of pictures. I also end up recording a movie, hovering the camera over her body, slowly panning.'); f('It\'s… it\'s all harmless. A victimless crime.'); f('...'); f('Fuck, my dick is hard.'); f(choice, 'Enough is enough. Let\'s get her dressed'); f('No… fuck, I\'ve already gone too far. A photo, that\'s dangerous, it\'s actual evidence of me doing something, even.'); f('I mean, this is all relatively innocent… right?'); f('A slight feeling of panic is starting to creep up on me as I hurry and put Erika\'s pajamas on her and go back to my room.'); f(jump, 'undressedHerButGoToSleep'); f(endChoice); f('I put away my phone.'); f('I realize… there\'s a liquid running down from her crotch, over her ass. Is this… is she wet? Or is it just sweat?'); f(choice); f(choice, 'Lift her leg and have a look'); f(incrementVariable, 'undressingProgress', 1); f(choice, 'I\'ve gone too far already. Time to wrap things up.'); f('I sense a pang of guiltiness and hurriedly put Erika\'s pajamas on and get back to my room.'); f(jump, 'undressedHerButGoToSleep'); f(endChoice); f('I\'ve already gone this far… one more little peek won\'t do much of a difference, will it? Not at this stage?'); f('I slowly lift her leg.'); f(addToCg, 'cg_sleeping2'); f(pause); f('A pleasant, musky smell rises up towards me.'); f('Whatever the reason, Erika is without a doubt wet.'); f('My already throbbing cock makes a sudden jerk. Fuck, this… is making me horny.'); f(choice); f(choice, 'Snap some more photos and be done with it'); f(incrementVariable, 'undressingProgress', 1); f(setVariable, 'undressedErikaAndForgotToRedressHer'); f('I excitedly pull out my phone, accidentally dropping it onto Erika\'s leg.'); f(playSound, 'phoneFallOnLeg'); f('I freeze. Oh my god, I\'m fucked.'); f(e, 'Mmm…'); f('Erika makes no attempt to move and only moans slightly.'); f('Panicked, I still don\'t move a muscle for the next minute.'); f('When Erika begins to snore again, I pick up the phone, pull her blanket over her without putting her pajamas on and head straight to my room, shaking.'); f(jump, 'undressedHerButGoToSleepDistressed'); f(choice, 'Return to your room before you do something you will regret'); f('What… what am I doing?'); f('This has already gone way too far. I hurry and put on her pajamas and head straight back to my room.'); f(jump, 'undressedHerButGoToSleep'); f(choice, 'Hmmm….'); f('You know… she\'s dead out of it. She… she wouldn\'t even notice if I did … <i>something</i>. If she isn\'t aware of me… doing <i>something</i>… it\'s not like she\'d really be a victim of anything, is there?'); f('Really… what would be the difference between undressing her, and… going a little further… really be? She won\'t remember anything anyway. It will be as if nothing ever happened.'); f('Again, it\'s victimless.'); f(endChoice); f('Don\'t you think?'); f(choice); f(choice, 'You\'re not a rapist'); f('...'); f('This is bizarre. This… this is sexual assault already. This… this is so not me. I\'m not a rapist.'); f('What\'s gotten over me!?'); f('This has already gone way too far. I hurry and put on her pajamas and head straight back to my room, shaking.'); f(jump, 'undressedHerButGoToSleepDistressed'); f(choice, 'It\'s not rape if she doesn\'t resist.'); f(incrementVariable, 'undressingProgress', 2); f('Or, I dunno, maybe it is… but… she won\'t remember it, will she? Also, I\'m drunk, she\'s drunk. These kind of things happen. It\'s nobody\'s fault, really.'); f('That\'s it… I can\'t be expected to help myself, to restrain myself. I\'m drunk… and well, it\'s only natural. This is like these things have happened for as long as there\'s been alcohol around, I\'m sure.'); f(endChoice); f(playSound, 'zipper'); f('I hurriedly remove my trousers and pants as if I\'m obsessed. I\'ve never felt my dick this hard before.'); f('I place one hand on Erika\'s shoulder and the other on her leg and immediately plunge my cock inside of her wet pussy.'); f(cg, 'cg_sleeping3', 'blackFade'); f(pause); f('The warm feeling as my penis slides into her is indescribable.'); f('I lose all control of myself, and just pound and thrust myself inside Erika. I\'m losing my virginity, and it\'s the best feeling I\'ve ever experienced. I\'m euphoric, high above the clouds.'); f('I hardly notice Erika squirming a little, and beginning to moan. She still seems to be asleep.'); f('But I don\'t even care, any longer.'); f(e, 'Hnfh… mmm… ah… mmm… ah…'); f('Erika\'s mouth is still closed, but she\'s making more and more sounds. The groaning brings me to the very brink of cumming. I would stop myself and hold it…'); f('But I\'m too excited. I can\'t stop.'); f('Suddenly, I feel Erika\'s pussy tightening around my dick.'); f(pause); f(cg, 'cg_sleeping4'); f(screenEffect, 'shake', 14, 0.4); f(pause); f('I cum, violently, inside of Erika, shaking. Erika screams, in pain, or what else, I don\'t know, but her eyes remain closed.'); f(cg, 'cg_sleeping3'); f(addToCg, 'cg_sleeping5'); f('I continue to thrust erratically as I cum, with the cum ending up both inside and outside of her.'); f(addToCg, 'cg_sleepingMouth'); f(screenEffect, 'shake', 10, 0.2); f(pause); f('Erika lets out one more shout before she goes quiet.'); f(cg, 'cg_sleeping3'); f(addToCg, 'cg_sleeping5'); f(pause); f('As my euphoria subsides, it begins to dawn on me what I\'ve done.'); f(n, 'Shit…'); f(cg, 'cg_sleeping1', 'fade'); f(addToCg, 'cg_sleeping1Cum'); f(n, 'Oh, shit shit shit!!'); f('I cover my mouth.'); f('I hurry to my room and pick up some tissue and begin to lightly clean up the mess I\'ve left on Erika\'s stomach, but I\'m instead smearing it all over, and getting small pieces of the flaky tissue paper stuck in the cum.'); f('I don\'t dare to wipe any harder, and panic. I put her pajamas on over the cum and tissue and and hurry back to my room.'); f(scene, 'washitsu_evening'); f('The light in my room is still on, which greatly unsettles me for some reason.'); f(playSound, 'lights'); f(scene, 'washitsu_night'); f('I feel sick to my stomach.'); f('I try to go to sleep, but I\'m haunted by what I\'ve done, and what might await in the morning.'); f('Deliriously, I slowly fade into sleep…'); f(scene, 'black', 'fade', 2); f(jump, 'day4Rapist'); f(label, 'undressedHerButGoToSleep'); f(scene, 'washitsu_evening'); f('I turn off the lamp and jump straight in bed.'); f(playSound, 'lights'); f(scene, 'washitsu_night'); f('My dick is hard as titanium and throbbing so much I almost believe I\'m experiencing a minor earthquake. I masturbate myself to sleep, thinking of Erika\'s naked body.'); f(jump, 'day4'); f(label, 'undressedHerButGoToSleepDistressed'); f(scene, 'washitsu_evening'); f('I turn off the lamp and jump straight in bed.'); f(playSound, 'lights'); f(scene, 'washitsu_night'); f('My dick is throbbing so much it hurts but I feel sick to my stomach and can\'t get myself to masturbate.'); f('I slowly drift to sleep.'); f(scene, 'black', 'fade', 2); f(jump, 'day4'); f(label, 'day3LonelyEvening'); f(stopMusic, 'fadeOut', 2); f(scene, 'washitsu_evening'); f('I spend the evening in my room, going through paperwork from school.'); f(whatIf, 'ditchedHana'); f('Maybe I shouldn\'t have ditched Hana after all…'); f(endIf); f(playSound, 'lights'); f(scene, 'washitsu_night'); f('Good night.'); f(scene, 'black', 'fade'); f(jump, 'day4'); f(label, 'day3IntoTownWithHana'); f('I find Hana sitting by the benches, like she said she would.'); f(whatIf, 'dateTimeHana==late'); f('She\'s looking like she\'s bored to death, half-attempting to read a brick-thick textbook.'); f(n, 'Hi ya, sorry to keep you waiting. You look kind of bored!'); f(person, h, 'smiling'); f(h, 'Yeah.'); f(n, 'I see you got the textbooks already?'); f(h, 'Uh-huh. I figured, why wait?'); f(n, 'True. I\'m going to see if I can\'t find some of these second hand, though.'); f(playSound, 'closingThickBook'); f('Hana closes the textbook.'); f(endIf); f(person, h, 'happy'); f(n, 'OK, let\'s get going then! Where do you want to go? Is there anything you want to see?'); f(h, 'Well… I was thinking yesterday about going to Nakano and look for a computer, but I don\'t know…'); f(person, h, 'smiling'); f(n, 'That\'s not too far from here! Alright, let\'s get to it!'); f('Before I have time to protest, we\'re on the train to Nakano.'); f(scene, 'downtown_day', 'whiteFade', x, x, 'right'); f(playMusic, 'citySounds'); f('We soon arrive in Nakano. You do get a sense that you\'re actually in Tokyo here in a different way than when you\'re out by the uni, I guess.'); f(person, h, 'smiling'); f(h, 'OK, I guess we should be heading to Yodobashi Camera!'); f(whatIf, 'dateTimeHana==early'); f(jump, 'erikaAndHanaInNakano'); f(endIf); f('We start walking just as I\'m starting to get second thoughts about buying the laptop.'); f(whatIf, 'decideNotBuyComputer'); f('I mean, I already decided I\'d wait.'); f(otherwise); f('I need a computer, but maybe not just yet. I could use the computer room at school for starters. I mean, I sure could use the money.'); f(endIf); f('And with Hana around, I\'ll probably be nervous and stress to close the deal, even if I\'m not sure about the specific model.'); f(changeBg, 'downtown_evening', 8); f('Let\'s re-route this whole thing before I end up doing something stupid.'); f(person, h, 'surprised'); f(label, 'letsSkipYodobashi'); f(n, 'Hey, Hana. Maybe we should skip Yodobashi Camera and just…'); f(choice); f(choice, '"... go to the video arcade."'); f(person, h, 'happy'); f(h, 'The video arcade? I haven\'t been in ages! That sounds like fun!'); f(person, h, 'surprised'); f(h, 'Are you sure, though? What about your laptop?'); f(n, 'Oh, that can wait!'); f(jump, 'arcadeWithHana'); f(choice, '"... find a karaoke bar."'); f(h, 'Karaoke?'); f(h, 'Uhm… you know, I\'m not a great singer, but hell, why not? As long as you understand I suck, OK?'); f(n, 'That\'s fine!'); f(person, h, 'surprised'); f(h, 'Are you sure, though? What about your laptop?'); f(n, 'Oh, that can wait!'); f(jump, 'karaokeWithHana'); f(choice, '"... go back home."'); f(person, h, 'angry'); f(h, 'What?!'); f(h, 'After coming out all the way here? Why?'); f(person, h, 'upset'); f(n, 'Well, I… you kind of spirited me away there, I didn\'t really want to come out here…'); f(n, 'And I said I wasn\'t sure about buying the computer…'); f(h, 'Couldn\'t you have said something sooner?'); f(n, 'I-... I\'m sorry.'); f(person, h, 'neutral'); f(h, 'OK, well, you go back to Kumatani then. I\'ll stay for a little longer. See you later, I guess.'); f(remove, h); f('Could have handled that better I guess. But who needs Hana anyway? She\'s … too domineering.'); f('I go home by myself.'); f(jump, 'day3LonelyEvening'); f(endChoice); f(label, 'erikaAndHanaInNakano'); f('As we walk towards the computer store, we pass a girl in a French maid\'s uniform.'); f(m, 'Master-sama! Come join us at our maid cafe!'); f('A young girl is standing outside a building, dressed as a French maid. Of course they\'d have maid cafes here… real otaku stuff. I mean sure, it\'s kind of hot, but… also kind of creepy.'); f(h, 'I feel sorry for the girls working there…'); f(person, e, 'maid_happy', 'rightOutside'); f(pan, e, -300, 0, 1); f(pan, h, -120, 0, 1); f(pause, 0.5); f(m, 'Couples are welcome too!'); f(n, 'E-... Erika?'); f(person, e, 'maid_surprised'); f(changeBg, 'downtown_evening', 'fade', 8, x, 'right'); f(setVariable, 'knowOfErikasMaidening'); f(e, '... Nishi?'); f(person, h, 'surprised'); f(h, 'You… you know this girl?'); f(person, h, 'upset'); f(h, 'You… you go to maid cafes?'); f(person, h, 'angry'); f(h, 'You perv!'); f(n, 'No, no! I\'d never go to a place like this! I have nothing to do with this!'); f(person, e, 'maid_angry'); f(e, 'Fuck you guys! There\'s nothing perverted about this!'); f(n, 'Uh, Hana... this is Erika, my housemate. Erika, this is Hana… a classmate.'); f(person, h, 'surprised'); f(h, 'Oh… I\'m… I\'m sorry! Nice to meet you, Erika.'); f(person, e, 'maid_angry2', x, true); f(e, 'Oh, fuck off!'); f(person, h, 'angry'); f(h, 'Hey! Who the hell do you think you are! Let me talk to your boss!'); f(person, e, 'maid_angry', x, true); f(e, 'Do you think he wants to talk to your ugly ass?'); f('Shit, I need to break this up. I start pushing Hana away from Erika.'); f(pan, 'bg', 250, 0, 10); f(pan, e, 330, 0, 10); f(pan, h, 60, 0, 10); f(n, 'Girls, I\'m sorry for the misunderstanding! Let\'s meet up all together sometime!'); f(h, 'Perv enabler! Rude little shit!'); f(e, 'Conformist! Rich fuckin\' kid!'); f(scene, 'black'); f(scene, 'gamecenter_evening', 'fade'); f('I manage to push Hana inside a video arcade. She still seems quite upset.'); f(person, h, 'upset'); f(h, 'That girl… so rude! I can\'t believe it.'); f(n, 'Yeah, she\'s a little feisty. I mean she has a strong personality.'); f(h, 'You can say that again…'); f(person, h, 'surprised'); f(h, 'Hey, look! We\'re in a video arcade! That\'s funny, I haven\'t been in one for ages. Do you want to play something?'); f(n, 'Sure. Hey, there\'s an air hockey board, do you want to give it a go!'); f(person, h, 'happy'); f(h, 'Let\'s do it!'); f('Wow… it really didn\'t take her long to turn around from mad cussing bitch back to well-brought up rich kid. Impressive.'); f(remove, h); f(jump, 'airHockey'); f(label, 'karaokeWithHana'); f(stopMusic, 'fadeOut'); f(scene, 'karaoke_dark', 'darkFade'); f('We spend a couple of hours at the karaoke. Of course, Hana being a girl, saying "she sucks" is of course only girl language for, "I haven\'t been signed yet". She sings classics from when we were in middle and high school.'); f('When it\'s my turn, I sing some more rocky tunes, but in general, I don\'t really know the lyrics beyond the refrains.'); f(jump, 'darkNight'); f(label, 'arcadeWithHana'); f(stopMusic, 'fadeOut'); f(scene, 'gamecenter_evening', 'blackFade'); f(person, h, 'surprised'); f(h, 'Wow, this place feels kind of dated.'); f(person, h, 'happy'); f(h, 'Hey, there\'s an air hockey board! Let\'s play!'); f(n, 'OK, let\'s do it!'); f(label, 'airHockey'); f(scene, 'black', 'fade'); f(playMusic, 'airHockeyMatch'); f(h, 'Take this… and that!'); f('Hana beats my ass black and blue. My eye-hand coordination kind of sucks, I guess. Maybe playing video games only really makes you good at video games.'); f(stopMusic, 'fadeOut'); f(scene, 'gamecenter_night', fade); f('We hang around until it gets really late, having a lot of fun. I beat Hana at some of the arcade games, until I start to feel bad and let her win.'); f(label, 'darkNight'); f(scene, 'downtown_night', 'fade'); f('It\'s all dark by the time we head outside.'); f(person, h, 'happy'); f(h, 'Hey, Nishi… I had a really good time today!'); f(n, 'Yeah, me too. It was good fun.'); f(person, h, 'smiling'); f(h, 'Are you in a hurry to get home? Do you wanna go get a drink?'); f(n, 'Uh, sure.'); f(scene, 'black', 'fade'); f(jump, 'loveHotelWithHana'); f(label, 'loveHotelWithHana'); f('One drink leads to another, and one thing to another. Eventually, we find ourselves in a love hotel.'); f(scene, 'lovehotel', 'fade'); f('A love hotel, you know...a, uh, pay-by-the-hour fuck house. No, that sounds horrible. They\'re nice and clean, of course, and some are pretty nice. I mean, we\'re still in Japan, after all.'); f('I sit down on the bed while Hana is in the bathroom. I\'m a little tipsy, but not really drunk.'); f('I thought I wasn\'t all that interested in Hana, but here we are… and here I am, about to lose my virginity with her.'); f('Hana comes out of the bathroom.'); f(person, h, 'nude', x, 50); f(pause); f(h, 'Do you like what you see?'); f('In truth, I almost come at the sight of Hana\'s naked body. When is the last time I actually saw a girl my age in the nude, and not on a screen?'); f(cg, 'cg_hana_sex', 'fade'); f(pause); f(h, 'Faster! Oh! Faster!'); f('Hana definitely seems to have more experience than me, despite the whole rich girl thing she has going for her.'); f('Her warm pussy feels amazing as it embraces my cock.'); f(h, 'Harder! Come on, Nishi! Ahng… do me harder!'); f(n, 'Uhn, uhn… ough… uhmm....'); f(h, 'I\'m cumming, I\'m cumming!'); f(pause); f(scene, 'white', 'fade'); f('Afterwards, we lie on the bed for a couple of minutes, only smiling at each other. '); f('But… this is a love hotel, and we are paying by the hour.'); f('We get up, get dressed, and get on our way. Hana gives me a kiss as we part.'); f(setVariable, 'hadSexWithHana'); f(h, 'See you at school, loverboy!'); f(scene, 'washitsu_night', 'blackFade'); f('By the time I finally get home, it\'s almost 1AM.'); f('I go straight to bed.'); f(jump, 'day4'); f(label, 'day4BlowjobMorning'); f('I sleep comfortably, dreaming a shapeless but colorful dream, as if I\'m adrift.'); f(pause, 3); f('Suddenly…'); f('I feel a warm sensation, a… a pleasurable…'); f('Hold on a minute. Something is odd.'); f('I wake up, with my eyes still closed. What… what\'s going on?'); f(cg, 'cg_blowjob1', 'fade'); f('Oh my fucking God. Unh! Ahh!'); f('I take off the blanket…'); f(playSound, 'blanketRemoved'); f(cg, 'cg_blowjob2', 'fade'); f(pause); f(n, 'E, Erika?! Uhn!! Mmm!'); f(addToCg, 'cg_blowjob3'); f(pause); f('Erika opens her eyes and looks towards me, with a drunken look on her face, before getting back to work.'); f('The warmth of her mouth feels incredible.'); f(cg, 'cg_blowjob2'); f(pause); f(n, 'Uhn… uhn… oh… mmmh… mmmh…'); f('This… this is unbelievable. Is this a dream? No, it can\'t be, it feels way too real. Erika is going down on me!'); f(n, 'Ah, Erika, oh… mmhh... '); f('My mind is on fire, my thoughts ablaze. This is the first time I receive a blowjob, and it\'s literally… blowing my mind.'); f('OK, so maybe not literally, but… Uhmmmngnghn!!'); f('Erika wraps her tongue around my dick, inside her mouth.'); f('Her hand movements become more and more aggressive and I don\'t know how long I can hold it in.'); f('Will she mind if I cum in her mouth? Oh, fuck, she\'s leaving me no choo-o-oh..!'); f(pause); f(scene, 'white', 'fade'); f(pause, 2); f(cg, 'cg_blowjob4'); f(screenEffect, 'shake', 14, 0.4); f(pause); f('I\'m in heaven.'); f(pause); f('At least for a moment. Erika keeps tugging at my dick with her hand a while, until I\'ve emptied it all inside her mouth.'); f(pause); f(cg, 'cg_blowjob2', 'fade'); f(addToCg, 'cg_blowjob5'); f('As she pulls out my dick, the gentle pull makes my dick jerk once more, unloading my last reserves right onto Erika\'s head.'); f(pause); f('It looks rather comical, really.'); f(pause); f(scene, 'black', 'fade'); f('Erika gets up and leaves the room, leaving me in total confusion.'); f(scene, 'washitsu_night', 'fade', 3); f(playMusic, 'waterRunning'); f('I hear her running the tap water, spitting out my cum.'); f('What… what the hell just happened? I lie down without moving, almost paralyzed in pleasure.'); f(stopMusic); f('After a minute or two, Erika sneaks her head back into the room.'); f(person, e, 'dark_nude'); f(e, 'Uh… consider that you\'re one freebie… for… for not being a rapist. Don\'t expect any more, OK?'); f(n, '...'); f(remove, e); f('Erika disappears before I come up with anything to say. I lie down on the bed, staring at the ceiling. I\'m feeling better than I can ever remember.'); f(whatIf, 'ditchedHana'); f('Fucking happy I ditched Hana yesterday. Best decision ever.'); f(endIf); f('I check my cellphone. It\'s still 3:30 AM.'); f('I slowly drift back to sleep.'); f(setVariable, 'gotFreebieBlowjob'); f(scene, 'black', 'fade', 2); f(jump, 'day4'); f(label, 'day4Rapist'); f(ending, 'rapist', true); f(scene, 'washitsu_day', 'blackFade'); f('I wake up, feeling relaxed and as if everything is as it should in the world.'); f('This feeling only lasts for a couple of seconds, as I realize what I did yesterday night.'); f('I\'m-... I\'m a rapist...'); f('I get up, and try and sneak a peek into Erika\'s room.'); f('She\'s… gone! I check the bathroom and the kitchen, but she\'s nowhere to be found.'); f('It\'s still only 7 in the morning… where could she have gone?'); f(scene, 'genkan_day', 'fade'); f('I prepare to have a look outside, just in case. As I get to the porch, I hear a sound from outside.'); f(playMusic, 'policeCar'); f('Fuck. The police. Fuck..! Fuck!! I\'m... fucked.'); f('... fuck.'); f('This is not how I imagined my first week at university would end.'); f(scene, 'black', 'fade'); f(pause, 2); f(stopMusic, 'fade', 3); f('You\'ve reached the "rapist" ending. Give the game another go and see if you can get a less depressing conclusion!'); f(pause, 1); f(jump, 'startMenu'); f(label, 'day4'); f(scene, 'washitsu_day', 'blackFade'); f('Good morning.'); f(whatIf, 'hadSexWithHana'); f(ending, 'hadSexWithHana', false); f(elseIf, 'gotFreebieBlowjob'); f(ending, 'gotBlowjobFromErika', false); f(elseIf, 'undressingProgress>1'); f(ending, 'undressedHana', false); f(otherwise); f(ending, 'noProgress', false); f(endIf); f('What, what- … what\'s happening?'); f(scene, 'white', 'fade'); f(pause, 2); f('Thanks for playing! This marks the end of Chapter 1 of "My housemate is a maid".'); f('Your data has been saved automatically and when/if the next chapter is released, you\'ll be able to load this file and continue just where you left off.'); f('So… how did you like it? Did you score? If you didn\'t, try and replay the game and re-think your choices. There\'s several sex scenes in the game - see if you can unlock them all!'); f('If you liked what you saw and would like to see Chapter 2 become a reality, please support us on Patreon!'); f('You can pledge to support us with a small amount every month - and you, along with our other backers, get to determine what we should work on next!'); f(jump, 'startMenu'); } frame 3 { function checkShit() { var v7 = new Object(); var v3 = new Array(); var v8 = new Array(); var v2 = 0; while (v2 < allLabels.length) { if (v7[allLabels[v2]]) { v3.push('duplicate label: "' + allLabels[v2] + '"'); } v7[allLabels[v2]] = true; ++v2; } var v5 = 0; while (v5 < allJumps.length) { if (v7[allJumps[v5]]) { } else { v3.push('jump to undefined label: "' + allJumps[v5] + '"'); } ++v5; } var v1 = 0; while (v1 < allPersonsAndMoods.length) { if (v7[allPersonsAndMoods[v1][0] + '_' + allPersonsAndMoods[v1][1]]) { } else { v8.push(allPersonsAndMoods[v1][0] + '_' + allPersonsAndMoods[v1][1]); v7[allPersonsAndMoods[v1][0] + '_' + allPersonsAndMoods[v1][1]] = true; } ++v1; } var v6 = 0; while (v6 < v8.length) { var v9 = flash.display.BitmapData.loadBitmap(v8[v6]); if (v9 == undefined) { v3.push('missing character (bitmap) file : ' + v8[v6]); } ++v6; } var v4 = 0; while (v4 < v3.length) { trace('______________________________________'); trace('SCRIPT ERROR (' + (v4 + 1) + '/' + v3.length + ')!! ' + v3[v4]); ++v4; } trace('______________________________________'); trace('CHOICES:ENDCHOICES ' + allChoices + ' : ' + allEndChoices); trace('IFS:ENDIFS ' + allIfs + ' : ' + allEndIfs); trace('______________________________________'); } function initVar() { function acg(o) { allCgs.push(o); ++amountOfCgs; } localTesting = true; gameFile = 'maid1'; gameName = 'My Housemate is a Maid - Chapter 1'; seriesName = 'My Housemate is a Maid'; numberInSeries = 1; patreonURL = 'http://billkershaw.com/clients/redir/maid1.html'; if (System.capabilities.language == 'ja') { dontShowPatreon = true; } allCgs = new Array(); amountOfCgs = 0; acg({'base': ['cg_maid_dream']}); acg({'base': ['cg_wank_fantasy1'], 'sequence': [[0], [0, 'cg_wank_fantasy2']]}); acg({'base': ['cg_hana_sex']}); acg({'base': ['cg_sleeping1'], 'sequence': [[0], [0, 'cg_sleeping2'], [0, 'cg_sleeping1Cum']]}); acg({'base': ['cg_sleeping3'], 'sequence': [[0], [0, 'cg_sleepingMouth'], [0, 'cg_sleeping4'], [0, 'cg_sleeping5']]}); acg({'base': ['cg_blowjob2'], 'sequence': [['cg_blowjob1'], [0], [0, 'cg_blowjob3'], ['cg_blowjob4'], [0, 'cg_blowjob5']]}); saveLayer = 20; crapLayer = 21; outOfMenuIntoGame = false; this.createEmptyMovieClip('server', saveLayer); this.createEmptyMovieClip('crap', crapLayer); server._x = -2000; serverSaveOK = false; if (!localTesting) { var v2 = new Object(); v2.onLoadInit = function (target_mc) { serverSaveOK = true; delete crap.onEnterFrame; onlyOnceStartF(); }; var v3 = new MovieClipLoader(); v3.addListener(v2); v3.loadClip('http://www.billkershaw.com/clients/b/server.swf', server); } crap.t = 0; crap.onEnterFrame = function () { ++this.t; if (this.t == 100 or localTesting) { trace('failed! serverSaveOK: ' + serverSaveOK); onlyOnceStartF(); delete this.onEnterFrame; } }; } function initVar2() { trace('initVar2 called'); removeMovieClip(dialogue); removeMovieClip(bg); removeMovieClip(fadeDealer); removeMovieClip(pixelDealer); removeMovieClip(menu); removeMovieClip(soundMC); currentlyPlaying = 'none'; musicBeingFadedOut = 'none'; sounds = {}; gameEnded = false; outOfMenuIntoGame = false; skipping = false; screenWidth = 800; screenHeight = 600; fps = 24; ifNests = 0; gamePaused = false; var margin = 10; var dialogueHeight = 168; dialogueY = screenHeight - dialogueHeight - margin; gameWorldLayer = 1; bgLayer = 1; pixelBehindDealerLayer = 2; foregroundObjectLayer = 5; pixelDealerLayer = 22; mouseCheckerLayer = 10; dialogueLayer = 11; wordPopUpLayer = 12; pixellationLayer = 23; pauseHandlerLayer = 24; soundLayer = 25; transitionLayer = 26; buttonLayer = 29; menuLayer = 30; muteLayer = 35; characterWidth = 400; nvlText = ''; currentBackground = ''; foregroundObjectsA = new Array(); variables = new Object(); characterDataA = new Array(); characterData = new Object(); newChar('n', 'Nishi', '', 6737151); newChar('e', '???', 'erika', 13421823); newChar('h', '???', 'hana', 6750105); newChar('m', 'Maid', '', 13421772); newChar('sc', 'Store clerk', '', 13421772); parser = 1; initJapanese(); this.createEmptyMovieClip('gw', gameWorldLayer); bg = gw.createEmptyMovieClip('bg', bgLayer); foregroundObjects = gw.createEmptyMovieClip('foregroundObjects', foregroundObjectLayer); var bf = gw.createEmptyMovieClip('blackframe', 20); with (bf) { beginFill(0, 100); moveTo(-3000, -3000); lineTo(screenWidth + 3000, -3000); lineTo(screenWidth + 3000, screenHeight + 3000); lineTo(-3000, screenHeight + 3000); lineTo(-3000, -3000); moveTo(0, 0); lineTo(screenWidth, 0); lineTo(screenWidth, screenHeight); lineTo(0, screenHeight); lineTo(0, 0); endFill(); } this.createEmptyMovieClip('soundMC', soundLayer); this.createEmptyMovieClip('mouseChecker', mouseCheckerLayer); this.createEmptyMovieClip('transitions', transitionLayer); this.createEmptyMovieClip('pauseHandler', pauseHandlerLayer); this.createEmptyMovieClip('buttons', buttonLayer); var mute = this.attachMovie('muteThing', 'muteThing', muteLayer); if (generalSave.removeMuteButton) { mute._visible = false; } mute.stop(); mute._x = screenWidth - mute._width; mute._y = 0; mute._alpha = 70; mute.t = 0; masterVolume = 1; mute.back.onRollOver = function () { mute._alpha = 100; mute.t = 0; }; mute.back.onRollOut = function () { mute._alpha = 70; mute.t = 0; }; mute.onEnterFrame = function () { ++mute.t; if (!gameMuted && mute.t % 50 == 49) { if (mute._alpha > 10) { mute._alpha -= 1; } } }; mute.back.onPress = function () { if (gameMuted) { mute.gotoAndStop(1); gameMuted = false; masterVolume = 1; if (musicPlaying) { sounds[currentlyPlaying].setVolume(soundMC[currentlyPlaying].vol * masterVolume * globalSave.musicVolume); } } else { mute.gotoAndStop(2); gameMuted = true; masterVolume = 0; if (musicPlaying) { sounds[currentlyPlaying].setVolume(0); } } }; with (mouseChecker) { beginFill(16711680); moveTo(0, 0); lineTo(screenWidth, 0); lineTo(screenWidth, screenHeight); lineTo(0, screenHeight); lineTo(0, 0); endFill(); } mouseChecker._alpha = 0; mouseChecker.onPress = function () { if (!gamePaused) { mouseClick = true; } }; myKeys = new Object(); keys = ['UP', 'DOWN', 'SPACE', 'RIGHT', 'LEFT', 'ENTER', 'CTRL', 'ESCAPE']; } function newChar(letter, pName, image, pColor, protagonist) { var v2 = characterData[letter]; v2 = {'letter': letter, 'pName': pName, 'image': image, 'pColor': pColor, 'protagonist': protagonist}; characterDataA.push(v2); this[letter].see = v2; } function nkF(romaji, hira, kata) { hiragana[romaji] = hira; if (kata == undefined) { kata = hira; } katakana[romaji] = kata; } function nrF(existingWord, newReading) { japanese[newReading] = japanese[existingWord]; } function nwF(word, defs) { var v1 = new Object(); v1.word = word; v1.defs = defs; japanese[word] = v1; } function initJapanese() { japDisplay = 'romaji'; hiragana = new Object(); katakana = new Object(); japanese = new Object(); nkF('dot', '。'); nkF('nakaguro', '・'); nkF('threeDots', '・・・'); nkF('openQuote', '「'); nkF('endQuote', '」'); nkF('questionMark', '?'); nkF('longVowelMark', 'ー'); nkF('exclamationMark', '!'); nkF('comma', '、', '、'); nkF('a', 'あ', 'ア'); nkF('i', 'い', 'イ'); nkF('u', 'う', 'ウ'); nkF('e', 'え', 'エ'); nkF('o', 'お', 'オ'); nkF('ka', 'か', 'カ'); nkF('ki', 'き', 'キ'); nkF('ku', 'く', 'ク'); nkF('ke', 'け', 'ケ'); nkF('ko', 'こ', 'コ'); nkF('sa', 'さ', 'サ'); nkF('shi', 'し', 'シ'); nkF('su', 'す', 'ス'); nkF('se', 'せ', 'セ'); nkF('so', 'そ', 'ソ'); nkF('ta', 'た', 'タ'); nkF('chi', 'ち', 'チ'); nkF('tsu', 'つ', 'ツ'); nkF('te', 'て', 'テ'); nkF('to', 'と', 'ト'); nkF('na', 'な', 'ナ'); nkF('ni', 'に', 'ニ'); nkF('nu', 'ぬ', 'ヌ'); nkF('ne', 'ね', 'ネ'); nkF('no', 'の', 'ノ'); nkF('ha', 'は', 'ハ'); nkF('hi', 'ひ', 'ヒ'); nkF('fu', 'ふ', 'フ'); nkF('he', 'へ', 'ヘ'); nkF('ho', 'ほ', 'ホ'); nkF('ma', 'ま', 'マ'); nkF('mi', 'み', 'ミ'); nkF('mu', 'む', 'ム'); nkF('me', 'め', 'メ'); nkF('mo', 'も', 'モ'); nkF('ya', 'や', 'ヤ'); nkF('yu', 'ゆ', 'ユ'); nkF('yo', 'よ', 'ヨ'); nkF('ra', 'ら', 'ラ'); nkF('ri', 'り', 'リ'); nkF('ru', 'る', 'ル'); nkF('re', 'れ', 'レ'); nkF('ro', 'ろ', 'ロ'); nkF('ba', 'ば', 'バ'); nkF('bi', 'び', 'ビ'); nkF('bu', 'ぶ', 'ブ'); nkF('be', 'べ', 'ベ'); nkF('bo', 'ぼ', 'ボ'); nkF('pa', 'ぱ', 'パ'); nkF('pi', 'ぴ', 'ピ'); nkF('pu', 'ぷ', 'プ'); nkF('pe', 'ぺ', 'ペ'); nkF('po', 'ぽ', 'ポ'); nkF('da', 'だ', 'ダ'); nkF('di', 'ぢ', 'ヂ'); nkF('du', 'づ', 'ヅ'); nkF('de', 'で', 'デ'); nkF('do', 'ど', 'ド゚'); nkF('ga', 'が', 'ガ'); nkF('gi', 'ぎ', 'ギ'); nkF('gu', 'ぐ', 'グ'); nkF('ge', 'げ', 'ゲ'); nkF('go', 'ご', 'ゴ゚'); nkF('za', 'ざ', 'ザ'); nkF('ji', 'じ', 'ジ'); nkF('zu', 'ず', 'ズ'); nkF('ze', 'ぜ', 'ゼ'); nkF('zo', 'ぞ', 'ゾ'); nkF('kya', 'きゃ', 'キャ'); nkF('kyu', 'きゅ', 'キュ'); nkF('kyo', 'きょ', 'キョ'); nkF('sha', 'しゃ', 'シャ'); nkF('shu', 'しゅ', 'シュ'); nkF('she', 'しぇ', 'シェ'); nkF('sho', 'しょ', 'ショ'); nkF('ja', 'じゃ', 'ジャ'); nkF('ju', 'じゅ', 'ジュ'); nkF('je', 'じぇ', 'ジェ'); nkF('jo', 'じょ', 'ジョ'); nkF('cha', 'ちゃ', 'チャ'); nkF('chu', 'ちゅ', 'チュ'); nkF('che', 'ちぇ', 'チェ'); nkF('cho', 'ちょ', 'チョ'); nkF('nya', 'にゃ', 'ニャ'); nkF('nyu', 'にゅ', 'ニュ'); nkF('nyo', 'にょ', 'ニョ'); nkF('hya', 'ひゃ', 'ヒャ'); nkF('hyu', 'ひゅ', 'ヒュ'); nkF('hyo', 'ひょ', 'ヒョ'); nkF('mya', 'みゃ', 'ミャ'); nkF('myu', 'みゅ', 'ミュ'); nkF('myo', 'みょ', 'ミョ'); nkF('rya', 'りゃ', 'リャ'); nkF('ryu', 'りゅ', 'リュ'); nkF('ryo', 'りょ', 'リョ'); nkF('wa', 'わ', 'ワ'); nkF('we', 'うぇ', 'ウェ'); nkF('wo', 'を', 'ヲ'); nkF('wi', 'うぃ', 'ウィ'); nkF('n', 'ん', 'ン'); nkF('ltsu', 'っ', 'ッ'); nkF('hwa', 'は', 'ハ'); } function onlyOnceStartF() { globalSave = checkWhichSave('globalSave', 'general'); generalSave = checkWhichSave(gameFile, 'general'); if (!generalSave.defined) { generalSave = new Object(); generalSave.defined = true; generalSave.unlockedCg = new Object(); generalSave.endings = new Object(); generalSave.endingsA = new Array(); generalSave.readDialogue = new Object(); } if (!globalSave.defined) { globalSave = new Object(); globalSave.defined = true; globalSave.playedGamesA = new Array(); globalSave.musicVolume = 100; globalSave.sfxVolume = 100; globalSave.voiceVolume = 100; globalSave.textSpeed = 5; globalSave.stats = new Object(); globalSave.stats.playedGamesO = new Object(); globalSave.stats.playedGamesA = new Array(); } if (!globalSave.stats.playedGamesO[gameFile]) { globalSave.stats.playedGamesO[gameFile] = true; globalSave.stats.playedGamesA.push(gameFile); } save3F(gameFile, 'general', generalSave); save3F('globalSave', 'general', globalSave); startF(); } function startF(jump) { initVar2(); if (jump != undefined) { jumpF(jump); } else { parserF(parser); } } function checkWhichSave(gameFile, saveFile) { var v3 = SharedObject.getLocal(gameFile, '/'); var v1 = v3.data[saveFile]; if (serverSaveOK) { sd = server.loadFromServer(gameFile); var v2 = sd[saveFile]; if (v2.timeStamp == undefined && v1.timeStamp == undefined) { return v1; } if (v2.timeStamp >= v1.timeStamp or v1.timeStamp == undefined) { v1 = v2; } } return v1; } function loadF(saveFile) { initVar2(); stopMusic2F(); stopAllSounds(); save.parser; var save = checkWhichSave(gameFile, saveFile); if (save.parser == undefined or isNaN(save.parser)) { trace('Savefile has no defined parser.'); } else { trace('loading. parser: ' + save.parser); outOfMenuIntoGame = true; parser = save.parser; variables = save.variables.clone(); trace('LOADIN\'\'... variables? ' + save.parser + ' / ' + variables + ' / ' + save.variables + ' / ' + ' / ' + save.scene); var v6 = save.scene[5]; bg._x = save.scene[1]; addBg(save.scene[0], true, save.scene[4], bg._x); if (save.currentlyPlaying != 'none') { playMusic2F(save.currentlyPlaying); } var v4 = 0; while (v4 < v6.length) { addToCgF(v6[v4], '', '', true); ++v4; } characterData = new Object(); characterDataA = new Array(); var v3 = 0; while (v3 < save.characterDataA.length) { var v2 = save.characterDataA[v3]; newChar(v2.letter, v2.pName, v2.image, v2.pColor, v2.protagonist); ++v3; } currentBackground = save.scene[0]; bg._y = save.scene[2]; bg.y = bg._y; var v5 = 0; while (v5 < save.foregroundObjects.length) { var v1 = save.foregroundObjects[v5]; if (v1.mc && v1.isItem) { mcItem2F(v1.who, v1.x, v1.y, v1.depth); } else { foregroundObjectF(v1.who, v1.mood, v1.x, v1.y, v1.depth, v1.flipped, v1.isItem); } ++v5; } } parserF(parser); } function saveF(saveFile) { var v3 = new Object(); v3.variables = variables.clone(); trace('SAVEIN... variables? ' + variables + ' / ' + v3.variables + ' ' + v3.variables); v3.parser = parser; v3.currentlyPlaying = currentlyPlaying; v3.characterDataA = characterDataA; var v18 = new Date(); v3.timeStamp = v18.getTime(); var v13 = new Date(); var v16 = v13.getHours(); if ((String(seconds)).length == 1) { v16 = '0' + v16; } var v15 = v13.getMinutes(); if ((String(v15)).length == 1) { v15 = '0' + v15; } var seconds = v13.getSeconds(); if ((String(seconds)).length == 1) { seconds = '0' + seconds; } v3.saveDate = v13.getDate() + '/' + (v13.getMonth() + 1) + '/' + v13.getFullYear() + ', ' + v16 + ':' + v15 + ':' + seconds; v3.scene = [currentBackground, bg.x, bg.y, bg._width, bg.flipped, bg.addedCgA]; var v12 = new Array(); for (var v14 in foregroundObjectsA) { var v1 = foregroundObjectsA[v14]; var v2 = {'who': v1.who, 'mood': v1.mood, 'x': v1.x, 'y': v1.y, 'depth': v1.depth, 'mc': v1.mc, 'isItem': v1.isItem, 'flipped': v1.flipped}; v12.push(v2); } v3.foregroundObjects = v12; var v17 = v3.clone(); save3F(gameFile, saveFile, v17); } function save3F(gameFile, saveFile, object) { var v2 = new Date(); object.timeStamp = v2.getTime(); server.saveOnServer(gameFile, saveFile, object); var v1 = SharedObject.getLocal(gameFile, '/'); v1.data[saveFile] = object; v1.flush(); } function continueLastGameF() { loadF('autoSave'); } function centerXF(a) { a._x = screenWidth / 2 - a._width / 2; } function centerYF(a) { a._y = screenHeight / 2 - a._height / 2; } function openMainMenuF(menu) { menuF(menu, 'backToStartMenu'); } function barizeReleaseF(thing, variable, min, max, integer) { var v1 = thing.bar._width / thing._width; v1 = min + v1 * max; if (integer) { v1 = int(v1); } globalSave[variable] = v1; if (variable == 'musicVolume' && musicPlaying) { sounds[currentlyPlaying].setVolume(soundMC[currentlyPlaying].vol * globalSave.musicVolume * masterVolume); } } function barize(thing, variable, min, max, integer) { thing.onPress = function () { this.onEnterFrame = function () { var v2 = this._xmouse; var v3 = this._ymouse; if (v2 < 0 or v2 > this._width or v3 < 0 or v3 > this._height) { if (v2 > this._width) { v2 = this._width; } barizeReleaseF(this, variable, min, max, integer, v2); delete this.onEnterFrame; } this.bar._width = v2; barizeReleaseF(this, variable, min, max, integer, v2); }; }; thing.onRelease = function () { barizeReleaseF(this, variable, min, max, integer, a); delete this.onEnterFrame; }; } function menuF(a, onBackPress) { var menu = this.createEmptyMovieClip('menu', menuLayer); var scale = 0.22; with (menu) { beginFill(5131854); moveTo(0, 0); lineTo(screenWidth, 0); lineTo(screenWidth, screenHeight); lineTo(0, screenHeight); lineTo(0, 0); endFill(); } if (a == 'options') { var screen = menu.attachMovie('optionsScreen', 'screen', 2); screen._x = screenWidth / 2 - screen._width / 2; screen._y = screenHeight / 2 - screen._height / 2; var back = screen.back; back.main.htmlText = 'BACK'; screen.mVolume.bar._xscale = globalSave.musicVolume; screen.sVolume.bar_xscale = globalSave.soundVolume; if (generalSave.removeMuteButton) { screen.removeMuteButton.stop(); } else { screen.removeMuteButton.nextFrame(); } if (globalSave.skipOnlyUnreadDialogue) { screen.skipOnlyUnreadDialogue.stop(); } else { screen.skipOnlyUnreadDialogue.nextFrame(); } if (globalSave.continueSkippingAfterChoices) { screen.continueSkippingAfterChoices.stop(); } else { screen.continueSkippingAfterChoices.nextFrame(); } screen.removeMuteButton.butt.onRelease = function () { if (generalSave.removeMuteButton) { this._parent.gotoAndStop(2); generalSave.removeMuteButton = false; muteThing._visible = true; muteThing._alpha = 70; } else { this._parent.gotoAndStop(1); generalSave.removeMuteButton = true; muteThing._visible = false; } }; screen.continueSkippingAfterChoices.butt.onRelease = function () { if (globalSave.continueSkippingAfterChoices) { this._parent.gotoAndStop(2); globalSave.continueSkippingAfterChoices = false; } else { this._parent.gotoAndStop(1); globalSave.continueSkippingAfterChoices = true; } }; screen.skipOnlyUnreadDialogue.butt.onRelease = function () { if (globalSave.skipOnlyUnreadDialogue) { this._parent.gotoAndStop(2); globalSave.skipOnlyUnreadDialogue = false; } else { this._parent.gotoAndStop(1); globalSave.skipOnlyUnreadDialogue = true; } }; var minTSpeed = 1; var maxTSpeed = 40; var minVol = 0; var maxVol = 100; var maxWidth = screen.tSpeed._width; screen.tSpeed.bar._width = maxWidth * ((globalSave.textSpeed - minTSpeed) / (maxTSpeed - minTSpeed)); screen.mVolume.bar._width = maxWidth * ((globalSave.musicVolume - minVol) / (maxVol - minVol)); screen.sVolume.bar._width = maxWidth * ((globalSave.sfxVolume - minVol) / (maxVol - minVol)); barize(screen.tSpeed, 'textSpeed', minTSpeed, maxTSpeed, true); barize(screen.mVolume, 'musicVolume', 0, 100, true); barize(screen.sVolume, 'sfxVolume', 0, 100, true); if (onBackPress == 'backToStartMenu') { back.onPress = function () { save3F('globalSave', 'general', globalSave); save3F(gameFile, 'general', generalSave); removeMenuF(); jumpF('startMenu3'); }; } else { save3F('globalSave', 'general', globalSave); save3F(gameFile, 'general', generalSave); back.onPress = function () { menuF('menu'); }; } } else { if (a == 'gallery') { screen = menu.createEmptyMovieClip('screen', 10); var bitmapW = screenWidth * scale; var bitmapH = screenHeight * scale; var margin = 10; var width = bitmapW * 3 + margin * 2; var height = (bitmapH + 20) * 3 + margin * 2; screen._x = screenWidth / 2 - width / 2; screen._y = screenHeight / 2 - height / 2; var back = screen.attachMovie('fileButton', 'back', screen.getNextHighestDepth()); back.main.htmlText = 'BACK'; trace('ONBACKPRESS: ' + onBackPress); if (onBackPress == 'backToStartMenu') { back.onPress = function () { removeMenuF(); jumpF('startMenu3'); }; } else { back.onPress = function () { menuF('menu'); }; } back._x = width / 2 - back._width / 2; back._y = height + 20; var header = screen.attachMovie('fileButton', 'header', screen.getNextHighestDepth()); header.main.htmlText = 'GALLERY'; header.main.textColor = 13421772; header._y = -header._height - 20; header._x = width / 2 - header._width / 2; var i = 0; while (i < amountOfCgs) { var g = screen.createEmptyMovieClip('g', screen.getNextHighestDepth()); var b = g.createEmptyMovieClip('b', 1); g._x = (i % 3) * (bitmapW + margin); g._y = Math.floor(i / 3) * (margin + 20 + bitmapH); g.fileNo = i; var thumb = ['questionMark', 0, 0, false]; var unlocked = false; if (generalSave.unlockedCg[allCgs[i].base[allCgs[i].base.length - 1]]) { unlocked = true; var extraCgs = []; var k = 1; while (k < allCgs[i].base.length) { var cg = allCgs[i].base[k]; extraCgs.push(cg); ++k; } thumb = [allCgs[i].base[0], 0, 0, screenWidth, false, extraCgs]; } var screenshot = makeSmallScreenShot(scale, thumb, []); b.attachBitmap(screenshot, 10); g.onRollOver = function () {}; g.onRollOut = function () {}; if (unlocked) { g.onPress = function () { galleryF(this.fileNo, 0, undefined, onBackPress); }; } ++i; } } else { if (a == 'load') { screen = menu.createEmptyMovieClip('screen', 10); var bitmapW = screenWidth * scale; var bitmapH = screenHeight * scale; var margin = 10; var width = bitmapW * 3 + margin * 2; var height = (bitmapH + 20) * 3 + margin * 2; screen._x = screenWidth / 2 - width / 2; screen._y = screenHeight / 2 - height / 2; var back = screen.attachMovie('fileButton', 'back', screen.getNextHighestDepth()); back.main.htmlText = 'BACK'; if (onBackPress == 'backToStartMenu') { back.onPress = function () { removeMenuF(); jumpF('startMenu3'); }; } else { back.onPress = function () { menuF('menu'); }; } back._x = width / 2 - back._width / 2; back._y = height; var header = screen.attachMovie('fileButton', 'header', screen.getNextHighestDepth()); header.main.htmlText = 'LOAD GAME'; header.main.textColor = 13421772; header._y = -header._height - 20; header._x = width / 2 - header._width / 2; back._y += 20; var i = 0; while (i < 9) { var g = screen.createEmptyMovieClip('g', screen.getNextHighestDepth()); var b = g.createEmptyMovieClip('b', 1); var k = g.attachMovie('fileButtonSmaller', 'k', 2); g._x = (i % 3) * (bitmapW + margin); g._y = Math.floor(i / 3) * (margin + 20 + bitmapH); k._y = bitmapH; k._x = bitmapW / 2 - k._width / 2; g.fileNo = i + 1; var tf = 'file' + (g.fileNo - 2); var n = 'FILE ' + (g.fileNo - 2); if (i == 0) { tf = 'autoSave'; var n = 'AUTO'; } else { if (i == 1) { tf = 'quickSave'; var n = 'QUICK'; } } g.tf = tf; var save = checkWhichSave(gameFile, tf); var time = save.saveDate; if (time == undefined) { time = 'EMPTY'; } else { var screenshot = makeSmallScreenShot(scale, save.scene, save.foregroundObjects); b.attachBitmap(screenshot, 10); } g.onRollOver = function () { this.k.main.textColor = 13421772; }; g.onRollOut = function () { this.k.main.textColor = 3355443; }; k.main.htmlText = n + ' - ' + time; if (time != 'EMPTY') { g.onPress = function () { loadF(this.tf); }; } ++i; } } else { var screen = menu.attachMovie('saveLoadScreen', 'screen', 2); screen._x = screenWidth / 2 - screen._width / 2; screen._y = screenHeight / 2 - screen._height / 2; fA = ['file1', 'file2', 'file3', 'file4', 'file5', 'file6', 'file7', 'file8']; var i = 0; while (i < fA.length) { var b = screen[fA[i]]; b.fileNo = i + 1; b.main.htmlText = 'SHIT'; b._visible = false; b.main.textColor = 3355443; b.onRollOver = function () { this.main.textColor = 13421772; }; b.onRollOut = function () { this.main.textColor = 3355443; }; ++i; } if (a == 'menu') { gamePaused = true; screen.head.htmlText = 'MENU'; screen.file1._visible = true; screen.file2._visible = true; screen.file3._visible = true; screen.file4._visible = true; screen.file5._visible = true; screen.file1.main.htmlText = 'SAVE GAME'; screen.file2.main.htmlText = 'LOAD GAME'; screen.file3.main.htmlText = 'START OVER'; screen.file4.main.htmlText = 'OPTIONS'; screen.file5.main.htmlText = 'RESUME GAME'; screen.file5._y += 20; screen.file1.onPress = function () { menuF('save'); }; screen.file2.onPress = function () { menuF('load'); }; screen.file3.onPress = function () { stopMusic2F(); startF('startMenu2'); }; screen.file4.onPress = function () { menuF('options'); }; screen.file5.onPress = function () { removeMenuF(); }; } else { if (a == 'save') { saveF('autoSave', 'menuF autosave'); screen.head.htmlText = 'SAVE GAME'; screen.file8.main.htmlText = 'BACK'; screen.file8._visible = true; screen.file8._y += 20; screen.file8.onPress = function () { menuF('menu'); }; var i = 0; while (i < 7) { var k = screen[fA[i]]; k.main.htmlText = 'FILE ' + k.fileNo + ' - EMPTY'; k._visible = true; var tf = 'file' + k.fileNo; var n = 'FILE ' + k.fileNo; k.tf = tf; var save = checkWhichSave(gameFile, tf); var time = save.saveDate; if (time == undefined) { time = 'EMPTY'; } k.main.htmlText = n + ' - ' + time; k.onPress = function () { saveF(this.tf, 'menuOnPressOfEachFile'); this.main.htmlText = 'SAVED'; }; ++i; } } } } } } } function removeMenuF() { gamePaused = false; menu.removeMovieClip(); } function galleryF(a, b, cameHereWith, onBackPress) { var v8 = allCgs[a]; var v5 = v8.base; var seq = v8.sequence; var v7 = createEmptyMovieClip('gallery', menuLayer); var v9 = v7.createEmptyMovieClip('container', 1); var v6 = flash.display.BitmapData.loadBitmap(v5[0]); var v2 = 1; while (v2 < v5.length) { var v4 = flash.display.BitmapData.loadBitmap(v5[v2]); v6.draw(v4); ++v2; } var v3 = 0; while (v3 < seq[b].length) { v4 = flash.display.BitmapData.loadBitmap(seq[b][v3]); v6.draw(v4); ++v3; } v9.attachBitmap(v6, 1); var left = v7.attachMovie('arrowButton', 'left', 2); left._x = 10; left._y = screenHeight / 2 - left._height / 2; if (b > 0) { left.onPress = function () { galleryF(a, b - 1, x, onBackPress); }; } else { left.onPress = function () { menuF('gallery', onBackPress); }; } if (b < seq.length - 1) { var right = v7.attachMovie('arrowButton', 'right', 3); right._xscale = -right._xscale; right._x = screenWidth - 10; right._y = screenHeight / 2 - right._height / 2; right.onPress = function () { galleryF(a, b + 1, x, onBackPress); }; } if (cameHereWith == 'arrows') { right._alpha = 0; left._alpha = 0; } v7.notMovingT = 0; v7.onEnterFrame = function () { if (mouseMoving) { this.notMovingT = 0; right._alpha = 100; left._alpha = 100; } else { ++this.notMovingT; if (this.notMovingT > 20) { right._alpha -= 5; left._alpha -= 5; } } if (myKeys.RIGHT && myKeys.LEFT) { } else { if (myKeys.RIGHT or myKeys.SPACE) { if (b < seq.length - 1) { galleryF(a, b + 1, 'arrows', onBackPress); } } else { if (myKeys.LEFT) { if (b > 0) { galleryF(a, b - 1, 'arrows', onBackPress); } else { menuF('gallery', onBackPress); } } else { if (myKeys.ESCAPE) { menuF('gallery', onBackPress); } } } } }; } function makeSmallScreenShot(scale, scene, charA) { var v15 = flash.display.BitmapData.loadBitmap(scene[0]); var v14 = new flash.geom.Matrix(); v14.translate(scene[1], scene[2]); if (scene[4]) { v14.scale(-scale, scale); v14.translate(scene[3] * scale, 0); } else { v14.scale(scale, scale); } var v11 = new flash.display.BitmapData(screenWidth * scale, screenHeight * scale, false, 0); v11.draw(v15, v14); var v12 = scene[5]; var v5 = 0; while (v5 < v12.length) { var v9 = v12[v5]; var v2 = new flash.geom.Matrix(); var v10 = flash.display.BitmapData.loadBitmap(v9); if (scene[4]) { v2.scale(-scale, scale); v2.translate(scene[3] * scale, 0); } else { v2.scale(scale, scale); } v11.draw(v10, v2); ++v5; } var v6 = 0; while (v6 < charA.length) { var v3 = charA[v6]; var v4 = new flash.geom.Matrix(); var v7 = flash.display.BitmapData.loadBitmap(v3.who + '_' + v3.mood); v4.translate(v3.x, v3.y); v4.scale(scale, scale); v11.draw(v7, v4); ++v6; } return v11; } function keyHandler() { var v2 = 0; while (v2 < keys.length) { var v1 = keys[v2]; if (Key.isDown(Key[v1])) { if (!myKeys[v1 + 'Pressed']) { myKeys[v1] = true; myKeys[v1 + 'Pressed'] = true; } else { myKeys[v1] = false; } } else { myKeys[v1 + 'Pressed'] = false; myKeys[v1] = false; } ++v2; } var v3 = _xmouse + ' ' + _ymouse; if (v3 == lastMouse) { mouseMoving = false; } else { mouseMoving = true; } lastMouse = _xmouse + ' ' + _ymouse; mouseClick = false; } function parseNextF() { if (parsing['s' + (parser + 1)] != undefined) { ++parser; parserF(parser); } if (outOfMenuIntoGame && !gameEnded) { trace('autosavin\''); saveF('autoSave', 'parseNextF'); } } function parserF(parser) { var v3 = parser; var v2 = parsing['s' + parser]; if (v2 == undefined) { trace('ERROR STH GONE FUCKED UP IN PARSERF!! PARSER IS UNDEFINED'); initVar2(); startF(); } else { trace('parser: ' + v2); this[v2[0] + 'F'](v2[1], v2[2], v2[3], v2[4], v2[5]); } } function removeAtF(layer) { removeMovieClip(this.getInstanceAtDepth(layer)); } function attachDialogue() { var v1 = attachMovie('dialogue', 'dialogue', dialogueLayer); v1.menu.onRelease = function () { menuF('menu'); }; v1.rollback.onRelease = function () { rollbackF(); }; v1.quickSave.onRelease = function () { saveF('quickSave', 'quickSaveButton'); }; v1.quickLoad.onRelease = function () { loadF('quickSave'); }; v1.skip.onRelease = function () { if (skipping) { skipping = false; } else { skipping = true; } }; return v1; } function rollbackF() {} function thinkingF(serifu) { var v1 = attachDialogue(); v1._y = dialogueY; v1._x = screenWidth / 2 - v1._width / 2; v1.gotoAndStop(1); dialogueF(serifu); } function talkingF(who, serifu) { var v1 = attachDialogue(); v1._y = dialogueY; v1._x = screenWidth / 2 - v1._width / 2; v1.gotoAndStop(1); v1.gotoAndStop(2); dialogueF(serifu, who); } function romajize2F(a) { var v3 = ''; var v1 = 2; while (v1 < a.length) { v3 += '<a href="asfunction:clickLink,' + a[v1] + '"><i>' + romajizeF(a[v1], v3) + '</i></a> '; v1 += 2; } return v3; } function romajizeF(a, replaceWith) { var v11 = 0; var v12 = new Array(); var v9 = 10; var v8 = replaceWith.slice(replaceWith.length - v9, replaceWith.length - v9 + 1); var v7 = false; if (v8 == '' || v8 == '.' || v8 == '!' || v8 == '?' || v8 == '…') { v7 = true; } var v2 = a; var v1 = 0; while (v1 <= a.length) { var v3 = a.slice(v1, v1 + 1); if (v1 == 0) { if (v7) { v2 = (v2.slice(0, 1)).toUpperCase() + v2.slice(1); v7 = false; } } var v6 = a.slice(v1 - 1, v1); var v5 = a.slice(v1 + 1, v1 + 2); if (v3 == 'X') { v2 = v2.slice(0, v1) + ' ' + v2.slice(v1 + 1); } else { if (v3 == 'h' && v5 == 'w') { v2 = v2.slice(0, v1) + '' + v2.slice(v1 + 1); } else { if (v3 == '\'') { v2 = v2.slice(0, v1) + '"' + v2.slice(v1 + 1); } else { if (v3 == '_') { v2 = v2.slice(0, v1) + v6 + v2.slice(v1 + 1); } } } } ++v1; } return v2; } function hiraganizeF(a) { var v3 = 0; var v5 = new Array(); var v10 = ''; var v1 = 0; while (v1 <= a.length) { var v2 = a.slice(v1, v1 + 1); var v4 = a.slice(v1 + 1, v1 + 2); var v8 = a.slice(v1 + 2, v1 + 3); if (v2 == 'X') { ++v3; } else { if (v2 == '\'') { var v9 = v1 + 1; if (dialogue.openQuote) { myKana = 'endQuote'; dialogue.openQuote = false; } else { myKana = 'openQuote'; dialogue.openQuote = true; } v5.push(myKana); v3 = v9; } else { if (v2 == 'n' && !(v4 == 'a' || v4 == 'i' || v4 == 'u' || v4 == 'e' || v4 == 'o')) { var v9 = v1 + 1; myKana = a.slice(v3, v9); v5.push(myKana); v3 = v9; } else { if (v2 == 'a' || v2 == 'i' || v2 == 'u' || v2 == 'e' || v2 == 'o') { var v9 = v1 + 1; myKana = a.slice(v3, v9); v5.push(myKana); v3 = v9; } else { if (v2 == '_') { var v9 = v1 + 1; myKana = 'longVowelMark'; v5.push(myKana); v3 = v9; } else { if (v2 == ',') { var v9 = v1 + 1; myKana = 'comma'; v5.push(myKana); v3 = v9; } else { if (v2 == '.' && v4 == '.' && v8 == '.') { var v9 = v1 + 3; myKana = 'threeDots'; v5.push(myKana); v3 = v9; v1 += 2; } else { if (v2 == '…') { var v9 = v1 + 1; myKana = 'threeDots'; v5.push(myKana); v3 = v9; } else { if (v2 == '.') { var v9 = v1 + 1; myKana = 'dot'; v5.push(myKana); v3 = v9; } else { if (v2 == '!') { var v9 = v1 + 1; myKana = 'exclamationMark'; v5.push(myKana); v3 = v9; } else { if (v2 == '?') { var v9 = v1 + 1; myKana = 'questionMark'; v5.push(myKana); v3 = v9; } else { if (v1 < a.length && v2 == v4 && !(v4 == 'a' || v4 == 'i' || v4 == 'u' || v4 == 'e' || v4 == 'o')) { var v9 = v1 + 1; if (v2 == 'n') { myKana = 'ん'; } else { myKana = 'ltsu'; } v5.push(myKana); v3 = v9; } } } } } } } } } } } } ++v1; } var v7 = 0; while (v7 < v5.length) { v10 += hiragana[v5[v7]]; ++v7; } return v10; } function wordPopUpF(a) { var v3 = a; var v2 = 0; while (v2 < v3.length) { var v1 = v3.slice(v2, v2 + 1); if (v1 == ',' || v1 == '.' || v1 == '?' || v1 == '!' || v1 == '.' || v1 == ':' || v1 == ';') { v3 = v3.slice(0, v2) + v3.slice(v2 + 1); --v2; } ++v2; } trace(japanese[v3].word + ' ' + japanese[v3].defs[0] + japanese[v3].defs[1][0]); var v4 = attachMovie('wordPopUp', 'wordPopUp', wordPopUpLayer); v4._x = mouse._x; v4._y = mouse._y; v4.main.text = ''; wordPopUpLayer; } function initKanjiButtons(n) { dialogue.kanji.gotoAndStop(n); dialogue.kana.gotoAndStop(n); dialogue.romaji.gotoAndStop(n); if (japDisplay == 'romaji') { dialogue.romaji.gotoAndStop(n + 1); } else { if (japDisplay == 'kana') { dialogue.kana.gotoAndStop(n + 1); } else { if (japDisplay == 'kanji') { dialogue.kanji.gotoAndStop(n + 1); } } } } function dialogueF(serifu, who) { if (skipping && globalSave.skipOnlyUnreadDialogue) { if (!generalSave.readDialogue['s' + parser]) { skipping = false; } } generalSave.readDialogue['s' + parser] = true; save3F(gameFile, 'general', generalSave); var v25 = false; if (who == undefined) { v25 = true; } else { dialogue.who.text = who.see.pName; dialogue.who.textColor = who.see.pColor; } slicer = 0; currentLine = serifu; if (!v25) { currentLine = '' + currentLine + ''; } currentLineFinished = false; japDisplayed = false; dialogue.hider.onRelease = function () { if (dialogue.hidden) { dialogue.hidden = false; dialogue._y = dialogueY; dialogue.hider._y = 176; dialogue.hider._yscale = 100; } else { dialogue.hidden = true; dialogue._y = screenHeight - 7; dialogue.hider._y = -6; dialogue.hider._yscale = -100; } }; dialogue.kana._visible = false; dialogue.kanji._visible = false; dialogue.romaji._visible = false; var v5 = 0; while (v5 <= currentLine.length) { var v15 = currentLine.slice(v5, v5 + 1); var v21 = currentLine.slice(v5 + 1, v5 + 2); var v6 = ''; if (v15 == '{') { var v22 = ''; var v11 = ''; var v3 = new Array(); var v2 = v5 + 1; while (v2 <= currentLine.length) { v6 = currentLine.slice(v2, v2 + 1); if (v6 == '|' or v6 == '}') { if (v11 == '') { v3.push(currentLine.slice(v5 + 1, v2)); var v19 = currentLine.slice(v5 + 1, v2); v11 = v2; } else { v3.push(currentLine.slice(v11 + 1, v2)); v11 = v2; } } if (v6 == '}') { v2 = currentLine.length; } ++v2; } var v10 = ''; if (storedv19 == 'jp') { japDisplayed = true; dialogue.kanji.onPress = function () { japDisplay = 'kanji'; dialogueF(serifu, who); dialogue.finishNow = true; initKanjiButtons(2); this.gotoAndStop(3); }; dialogue.romaji.onPress = function () { slicer = currentLine.length; japDisplay = 'romaji'; dialogueF(serifu, who); dialogue.finishNow = true; initKanjiButtons(2); this.gotoAndStop(3); }; dialogue.kana.onPress = function () { slicer = currentLine.length; japDisplay = 'kana'; dialogueF(serifu, who); dialogue.finishNow = true; initKanjiButtons(2); this.gotoAndStop(3); }; initKanjiButtons(2); dialogue.kana._visible = false; dialogue.kanji._visible = false; dialogue.romaji._visible = false; if (japDisplay == 'kanji') { var v8 = 1; while (v8 < v3.length) { v10 += '<font face=\'Arial Unicode MS\'><a href="asfunction:clickLink,' + v3[v8 + 1] + '">' + v3[v8] + '</a></font>'; v8 += 2; } } else { if (japDisplay == 'romaji') { v10 = romajize2F(v3); } else { if (japDisplay == 'kana') { var v8 = 2; while (v8 < v3.length) { v10 += '<font face=\'Arial Unicode MS\'><a href="asfunction:clickLink,' + v3[v8] + '">' + hiraganizeF(v3[v8]) + '</a></font>'; v8 += 2; } } } } } else { if (Number(variables[storedv19]) == 1) { v10 = v3[1]; } else { if (v3.length == 3) { v10 = v3[2]; } else { v10 = v3[1] + 's'; } } } currentLine = currentLine.slice(0, v5) + v10 + currentLine.slice(v11 + 1); } else { if ((v15 == '$' or v15 == '@') && isNaN(Number(v21))) { var v4 = v5 + 1; while (v4 <= currentLine.length) { v6 = currentLine.slice(v4, v4 + 1); if (v6 == '$' or v6 == '@' or v4 == currentLine.length) { var v14 = v4; v4 = Infinity; } ++v4; } var v13 = variables[currentLine.slice(v5 + 1, v14)]; if (v15 == '@' && Number(v13) <= 20) { var v20 = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten', 'eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen', 'sixteen', 'seventeen', 'eighteen', 'nineteen', 'twenty']; v13 = v20[Number(v13)]; } if (v13 == undefined) { v13 = currentLine.slice(v5 + 1, v14); trace('ERROR!!! VARIABLE NOT DEFINED!!!'); } currentLine = currentLine.slice(0, v5) + v13 + currentLine.slice(v14 + 1); } } ++v5; } var v26 = new TextField.StyleSheet(); v26.setStyle('a:hover', {'color': '#FFCCCC', 'textDecoration': 'none'}); dialogue.main.styleSheet = v26; dialogue.clickLink = function (a) { if (!gamePaused) { wordPopUpF(a); } }; dialogue.t = 0; dialogue.t2 = 0; dialogue.firstWord = true; dialogue.onEnterFrame = function () { if (!gamePaused) { ++this.t2; if (skipping && myKeys.SPACE or mouseClick or myKeys.ENTER) { skipping = false; this.finishNow = true; } if (!currentLineFinished) { if (myKeys.SPACE or mouseClick or skipping or myKeys.ENTER or this.finishNow) { slicer = currentLine.length; this.finishNow = false; } else { var v9 = globalSave.textSpeed; if (this.t2 % Math.ceil(1 / v9) == 0) { var v7 = 0; while (v7 < v9) { ++slicer; var v8 = true; while (v8) { ch1 = currentLine.slice(slicer - 1, slicer); if (ch1 == '>') { ++slicer; } else { v8 = false; } } if (ch1 == '<') { var v3 = slicer; while (v3 <= currentLine.length) { var v4 = currentLine.slice(v3, v3 + 1); if (v4 == '>') { slicer = v3 + 1; v3 = currentLine.length; --v7; } ++v3; } } else { if ((ch1 == ' ' || ch1 == '-') && who != 'nvl') { var v5 = 0; var v2 = slicer; while (v2 <= currentLine.length) { var v4 = currentLine.slice(v2, v2 + 1); if (v4 == '<') { ++v5; } else { if (v4 == '>') { --v5; } } if (v5 == 0 && (v4 == ' ' || v4 == '-') or v2 == currentLine.length) { var v10 = currentLine.slice(0, slicer); this.main.htmlText = v10; var v6 = this.main.bottomScroll; v10 = currentLine.slice(0, v2 + 1); this.main.htmlText = v10; if (v6 < this.main.bottomScroll) { currentLine = currentLine.slice(0, slicer) + '\n' + currentLine.slice(slicer); } v2 = currentLine.length; } ++v2; } } } ++v7; } } } v10 = currentLine.slice(0, slicer); if (who == 'nvl') { v10 = nvlText + v10; } this.main.htmlText = v10; if (slicer >= currentLine.length) { if (who == 'nvl') { nvlText = v10 + '\n'; } currentLineFinished = true; } } else { if (currentLineFinished) { if (myKeys.SPACE or mouseClick or myKeys.ENTER or skipping) { if (skipping && this.t < 2) { ++this.t; } else { currentLineFinished = false; slicer = 0; if (who != 'nvl') { removeAtF(dialogueLayer); } delete this.onEnterFrame; parseNextF(); } } } } } }; } function queueF(music) { currentlyPlaying.onSoundComplete = function () { playMusicF(music); }; } function mcItemF(item, posX, posY) { var v1 = foregroundObjects.getNextHighestDepth(); mcItem2F(item, posX, posY, v1); parseNextF(); } function mcItem2F(item, posX, posY, depth) { m = foregroundObjects.attachMovie(item, item, depth); m.who = item; m.isItem = true; m.depth = depth; m.mc = true; if (!isNaN(Number(posY))) { m._y = posY; } else { if (posY == 'below') { m._y = screenHeight; } } if (!isNaN(Number(posX))) { m._x = posX; } else { if (posX == 'left') { m._x = 50; } else { if (posX == 'right') { m._x = screenWidth - characterWidth - 50; } else { if (posX == 'center') { m._x = int(screenWidth / 2 - characterWidth / 2); } } } } m.y = m._y; m.x = m._x; foregroundObjectsA.push(m); } function itemF(item, posX, posY) { var v1 = foregroundObjects.getNextHighestDepth(); foregroundObjectF(item, '', posX, posY, v1, false); parseNextF(); } function personF(who, mood, posX, posY, flipped) { var v2 = foregroundObjects.getNextHighestDepth(); if (posY == undefined) { posY = 0; } foregroundObjectF(who.see.image, mood, posX, posY, v2, flipped, true); parseNextF(); } function foregroundObjectF(who, mood, posX, posY, depth, flipped, trueForcharacterFalseForItem) { var v2 = ''; var v10 = foregroundObjects[who]._x; if (foregroundObjects[who] == undefined) { v2 = foregroundObjects.createEmptyMovieClip(who, depth); v2.who = who; v2.depth = depth; v2._alpha = 0; foregroundObjectsA.push(v2); if (!isNaN(Number(posX))) { v2.x = posX; } } v2.onEnterFrame = function () { if (this._alpha <= 100) { this._alpha += 10; } else { delete this.onEnterFrame; } }; v2 = foregroundObjects[who]; v2.flipped = flipped; v2.mood = mood; v2.isItem = false; if (!trueForcharacterFalseForItem) { v2.isItem = true; } trace('what is posy? ' + posY + ' / ' + isNaN(Number(posY))); if (!isNaN(Number(posY))) { v2._y = posY; v2.y = v2._y; } else { if (posY == 'below') { v2._y = screenHeight; v2.y = v2._y; } else { if (posY == 'bottom') { v2._y = screenHeight - v2._height; } } } setXTag = true; if (posX == undefined or posX == '') { if (v10 == undefined) { posX = 'center'; } else { posX = v10; setXTag = false; } } if (!isNaN(Number(posX))) { v2._x = posX; } else { if (posX == 'left') { v2._x = 50; } else { if (posX == 'right') { v2._x = screenWidth - characterWidth - 50; } else { if (posX == 'rightOutside') { v2._x = screenWidth; } else { if (posX == 'leftOutside') { v2._x = -characterWidth; } else { if (posX == 'center') { v2._x = int(screenWidth / 2 - characterWidth / 2); } } } } } } if (setXTag) { v2.x = v2._x; } if (mood == '' or mood == undefined) { bit = who; } else { bit = who + '_' + mood; } var v5 = flash.display.BitmapData.loadBitmap(bit); if (flipped) { var v7 = new flash.geom.Matrix(); v7.scale(-1, 1); v7.translate(v5.width, 0); var v9 = new flash.display.BitmapData(v5.width, v5.height, true, 0); v9.draw(v5, v7); v2.attachBitmap(v9, 1); } else { v2.attachBitmap(v5, 1); } } function playSoundF(sound) { var v1 = soundMC[sound]; if (v1 == undefined) { v1 = soundMC.createEmptyMovieClip(sound, soundMC.getNextHighestDepth()); } var v2 = new Sound(v1); v2.attachSound(sound); v2.setVolume(globalSave.sfxVolume * masterVolume); v2.start(); parseNextF(); } function addButtonF(button, url, xPos, yPos) { var v2 = buttons.getNextHighestDepth(); var v1 = buttons.attachMovie(button, 'button' + v2, v2); if (xPos == 'right') { v1._x = screenWidth - v1._width - 10; } if (yPos == 'allTheWayDown') { v1._y = screenHeight - v1._height; } v1.onRelease = function () { url2F(url); }; parseNextF(); } function screenIsALinkF(url) { mouseChecker.onRelease = function () { getURL(url, '_blank'); }; parseNextF(); } function pauseF(seconds) { if (skipping) { parseNextF(); } else { pause2F(int(seconds * fps)); } } function pause2F(frames) { var v2 = createEmptyMovieClip('pauseHandler', pauseHandlerLayer); v2.t = 0; if (frames == undefined) { frames = 0; } v2.goal = frames; v2.onEnterFrame = function () { if (!gamePaused) { if (this.goal == 0) { if (myKeys.SPACE or mouseClick or myKeys.ENTER) { removeMovieClip(this); delete this.onEnterFrame; parseNextF(); } } else { ++this.t; if (this.t == this.goal) { removeMovieClip(this); delete this.onEnterFrame; parseNextF(); } } } }; } function stopMusicF(method) { stopMusic2F(method); parseNextF(); } function stopMusic2F(method, time) { musicPlaying = false; if (method == 'fadeOut') { if (time == undefined) { time = 1; } musicBeingFadedOut = currentlyPlaying; time = int(time * fps); var v3 = soundMC.createEmptyMovieClip(musicBeingFadedOut + 'Fade', soundMC.getNextHighestDepth()); v3.t = 0; v3.onEnterFrame = function () { ++this.t; var v2 = int(easeInOutSine(this.t, globalSave.musicVolume, -globalSave.musicVolume, time)); sounds[musicBeingFadedOut].setVolume(soundMC[musicBeingFadedOut].vol * v2 * masterVolume); if (v2 <= 0) { sounds[musicBeingFadedOut].stop(); musicBeingFadedOut = 'none'; delete this.onEnterFrame; removeMovieClip(this); } }; } else { sounds[currentlyPlaying].stop(); } currentlyPlaying = 'none'; } function changeNameF(who, newName) { who.see.pName = newName; parseNextF(); } function languageScreenF() { attachMovie(languageScreen, 'bg', dialogueLayer); bg.ja.onPress = function () { currentLanguage = this._name; parseNextF(); }; bg.en.onPress = bg.ja.onPress; } function playMusicF(music) { playMusic2F(music); parseNextF(); } function playMusic2F(music, vol) { if (vol == undefined) { vol = 1; } sounds[currentlyPlaying].stop(); if (musicBeingFadedOut == music) { var v3 = soundMC[musicBeingFadedOut + 'Fade']; delete v3.onEnterFrame; removeMovieClip(v3); sounds[musicBeingFadedOut].stop(); musicBeingFadedOut = ''; } currentlyPlaying = music; musicPlaying = true; var v1 = soundMC[music]; if (v1 == undefined) { v1 = soundMC.createEmptyMovieClip(music, soundMC.getNextHighestDepth()); sounds[music] = new Sound(v1); var v4 = sounds[music]; v4.attachSound(music); } else { var v4 = sounds[music]; } v1.vol = vol; v4.setVolume(globalSave.musicVolume * v1.vol * masterVolume); v4.start(0, 9990); } function removeF(char, method, seconds) { if (seconds == undefined) { seconds = 0.3; } method = 'fade'; time = int(seconds * fps); foregroundObjects[char.see.image].remove = true; if (method == 'fade') { foregroundObjects[char.see.image].pseudoAlpha = 100; foregroundObjects[char.see.image].incrementAlpha = 100 / time; foregroundObjects[char.see.image].onEnterFrame = function () { this._x -= 1; this.pseudoAlpha -= this.incrementAlpha; this._alpha = this.pseudoAlpha; if (this._alpha <= 0) { this.removeMovieClip(); } }; } else { foregroundObjects[char.see.image].removeMovieClip(); } var v2 = 0; while (v2 <= foregroundObjectsA.length) { if (foregroundObjectsA[v2].remove) { foregroundObjectsA.splice(v2, 1); v2 = foregroundObjectsA.length; } ++v2; } parseNextF(); } function removeAllCharsF() { removeAllChars2F(); parseNextF(); } function removeAllChars2F() { trace('removeAllChars2F called'); foregroundObjects.removeMovieClip(); foregroundObjects = gw.createEmptyMovieClip('foregroundObjects', foregroundObjectLayer); foregroundObjectsA = new Array(); buttons.removeMovieClip(); this.createEmptyMovieClip('buttons', buttonLayer); } function changeBgF(scene, method, time, flipped, xpos) { scene2F(scene, method, time, false, flipped, xpos); parseNextF(); } function cgF(scene, method, time, flipped, xpos) { sceneF(scene, method, time, true, flipped, xpos); generalSave.unlockedCg[scene] = true; save3F(gameFile, 'general', generalSave); } function sceneF(scene, method, time, flipped, xpos) { scene2F(scene, method, time, true, flipped, xpos); } function scene2F(scene, method, time, newScene, flipped, xpos) { if (gw.fadeDealer) { delete gw.fadeDealer.onEnterFrame; removeMovieClip(gw.fadeDealer); } currentBackground = scene; if (isNaN(time)) { if (method == 'blackFade' || method == 'whiteFade') { time = 1.2; } else { time = 0.6; } } delete mouseChecker.onRelease; if (method == 'pixellate') { removeAllChars2F(); pixellateF(scene, flipped); } else { if (method == 'fade') { if (newScene) { removeAllChars2F(); } fadeF(scene, newScene, time, flipped, xpos); } else { if (method == 'blackFade') { colorFadeF(scene, 'black', newScene, time, flipped, xpos); } else { if (method == 'whiteFade') { colorFadeF(scene, 'white', newScene, time, flipped, xpos); } else { addBg(scene, newScene, flipped, xpos); if (newScene) { removeAllChars2F(); parseNextF(); } } } } } } function jumpF(to) { ifNests = 0; removeAllChars2F; parser = eval(to) - 1; parseNextF(); } function endChoiceF() { parseNextF(); } function endingF(endingName, type) { skipping = false; if (!generalSave.endings[endingName]) { generalSave.endingsA.push(endingName); generalSave.endings[endingName] = true; generalSave.lastEnding = endingName; } saveF(endingName); save3F(gameFile, 'general', generalSave); gameEnded = true; parseNextF(); } function choiceF(argument) { if (argument && argument.style == undefined) { var v2 = parser; var v7 = true; while (v7) { var v3; while (v3 == undefined) { if (parsing['s' + v2][0] == 'endChoice') { parser = v2 - 1; parseNextF(); v3 = 'shit'; v7 = false; } else { ++v2; } } } } else { if (!globalSave.continueSkippingAfterChoices) { skipping = false; } var v11 = ''; var v10 = 'middle'; var v9 = 'middle'; if (argument.style != undefined) { v11 = argument.style; } if (argument.xpos != undefined) { v10 = argument.xpos; } if (argument.ypos != undefined) { v9 = argument.ypos; } var v6 = new Array(); var v2 = parser + 1; var v7 = true; while (v7) { this['choice' + m] = undefined; var v3 = this['choice' + m]; while (v3 == undefined) { if (parsing['s' + v2][0] == 'choice') { if (parsing['s' + v2][2] == undefined or parsing['s' + v2][2] == '') { v3 = v2; v6.push(v3); } else { var v5 = parsing['s' + v2][2]; var v4 = false; v4 = evaluateConditionalF(v5); if (v4) { v3 = v2; v6.push(v3); } } } else { if (parsing['s' + v2][0] == 'endChoice') { v3 = 'shit'; v7 = false; } } ++v2; } } attachChoiceF(v6, v11, v10, v9); } } function urlF(url) { url2F(url); parseNextF(); } function url2F(url) { if (url == 'patreonURL') { url = patreonURL; } if (url != '') { getURL(url, '_blank'); } } function easeInOutSine(t, b, c, d) { return (-c / 2) * (Math.cos(Math.PI * t / d) - 1) + b; } function effectF(target, method, strength) { if (method == 'joltRight') { panF(target, 15, 0, 0.3); } else { if (method == 'joltLeft') { panF(target, -15, 0, 0.3); } } } function screenEffectF(method, intensity, time) { if (method == 'shake') { if (intensity == undefined) { intensity = 25; } if (time == undefined) { time = 1; } shakeF(gw, intensity, time); } else { if (method == 'quake') { if (intensity == undefined) { intensity = 25; } if (time == undefined) { time = 1; } shakeF(gw, intensity, time); shakeF(foregroundObjects, intensity / 2, time); } else { if (method == 'injured') { shakeF(gw, 20); } } } parseNextF(); } function shakeF(what, intensity, time) { var v2 = crap.createEmptyMovieClip('shaker', crap.getNextHighestDepth()); v2.t = 0; v2.tim = time * fps; trace(v2); v2.onEnterFrame = function () { ++this.t; this.shake = intensity * ((this.tim - this.t) / this.tim); if (this.shake <= 0) { removeMovieClip(this); delete this.onEnterFrame; } else { amp = this.shake; freq = 50; var t = this.t; var v3 = amp * Math.sin(freq * 2 * t * 0.0174532925199433); var v2 = amp * Math.cos(freq * 2 * t * 0.0174532925199433); what._x = v3; what._y = v2; } }; } function panF(target, xDistance, yDistance, seconds) { seconds = int(seconds * fps); var v3 = transitions[target.see.image]; if (v3 != undefined) { v3.targ._x = v3.targ.x; v3.targ._y = v3.targ.y; trace('already existing transition removed and fulfilled. ' + v3.targ._name + ' _ ' + v3.targ.x); delete v3.onEnterFrame; removeMovieClip(v3); } d = transitions.getNextHighestDepth(); var v2 = transitions.createEmptyMovieClip(target.see.image, d); if (target == 'bg') { v2.targ = bg; v2.targ; } else { v2.targ = foregroundObjects[target.see.image]; } v2.targ.x += xDistance; v2.targ.y += yDistance; v2.t = 0; v2.motoX = v2.targ._x; v2.motoY = v2.targ._y; v2.xDist = xDistance; v2.yDist = yDistance; v2.dur = seconds; parseNextF(); v2.onEnterFrame = function () { if (!gamePaused) { this.targ._x = easeInOutSine(this.t, this.motoX, this.xDist, this.dur); this.targ._y = easeInOutSine(this.t, this.motoY, this.yDist, this.dur); ++this.t; if (this.t >= this.dur) { this.targ._x = this.motoX + this.xDist; this.targ._y = this.motoY + this.yDist; if (this.remove) { } removeMovieClip(this); delete this.onEnterFrame; } } }; } function highlightChoiceF(order) { var v1 = 0; while (v1 < choiceBoxA.length) { if (order != v1) { choiceBoxA[v1].prevFrame(); } ++v1; } choiceBoxA[order].nextFrame(); currentlySelected = order; } function selectChoiceF(what) { removeMovieClip(choiceMC); parser = what; parseNextF(); } function otherwiseF() { ++parser; var v2 = ifNests; while (!false) { ++parser; var v1 = parsing['s' + parser][0]; if (v1 == undefined) { break; } if (v1 == 'whatIf') { ++v2; } else { if (v2 == ifNests) { if (v1 == 'endIf') { --ifNests; break; } } else { if (v1 == 'endIf') { --v2; } } } } parseNextF(); } function passF() { parseNextF(); } function elseIfF(conditional) { otherwiseF(); } function endIfF(conditional) { --ifNests; parseNextF(); } function evaluateConditionalF(conditional) { var v8 = false; if (conditional == '') { trace('BRO NOT A PROPER CONDITIONAL.'); v8 = true; return v8; } if (conditional == 'autoSaveExists') { var v9 = checkWhichSave(gameFile, 'autoSave'); if (v9 != undefined) { v8 = true; } return v8; } if (conditional == 'showPatreon') { if (!dontShowPatreon) { v8 = true; } return v8; } if (conditional == 'continueCheck') { v9 = checkWhichSave(gameFile, 'autoSave'); if (v9 != undefined) { v8 = true; } return v8; } if (conditional.substr(0, 1) == '!') { if (!variables[conditional.substr(1, conditional.length)]) { v8 = true; } return v8; } if (conditional.indexOf('=') == -1 && conditional.indexOf('>') == -1 && conditional.indexOf('<') == -1) { if (variables[conditional]) { v8 = true; } return v8; } var v2 = ''; var v7 = ''; var v3 = ''; var v5 = ['>=', '<=', '==', '<', '>', '!=', '=']; var v1 = 0; while (v1 < v5.length) { var v6 = conditional.indexOf(v5[v1]); if (v6 != -1) { v3 = conditional.substr(0, v6); v3 = variables[v3]; v7 = conditional.substr(v6 + v5[v1].length, conditional.length); v2 = v5[v1]; v1 = v5.length; if (v2 == '<' or v2 == '<=' or v2 == '>' or v2 == '>=') { if (isNaN(Number(v3))) { v3 = 0; } if (isNaN(Number(v7))) { v7 = 0; } } } ++v1; } if (v2 == '') { trace('error: conditional statement without operator'); } else { if (v2 == '<') { if (v3 < v7) { v8 = true; } } else { if (v2 == '>') { if (v3 > v7) { v8 = true; } } else { if (v2 == '>=') { if (v3 >= v7) { v8 = true; } } else { if (v2 == '<=') { if (v3 <= v7) { v8 = true; } } else { if (v2 == '=' or v2 == '==') { if (v3 == v7) { v8 = true; } } else { if (v2 == '!=') { if (v3 != v7) { v8 = true; } } } } } } } } trace('evaluates as: ' + v8 + ' (' + v3 + ', ' + v2 + ', ' + v7 + ')'); return v8; } function whatIfF(conditional) { var v4 = false; ++ifNests; v4 = evaluateConditionalF(conditional); if (v4) { parseNextF(); } else { var v2 = 0; var v3 = 0; while (!false) { ++parser; var v1 = parsing['s' + parser][0]; if (v2 == 0) { if (v1 == 'elseIf') { --ifNests; whatIfF(parsing['s' + parser][1]); break; } else { if (v1 == 'otherwise') { parseNextF(); break; } else { if (v1 == 'endIf') { --ifNests; parseNextF(); break; } } } } if (v1 == 'whatIf') { ++v2; } else { if (v1 == 'endIf') { --v2; } } ++v3; if (v3 > 500) { trace('ABORT! WHATIFF FAIL IT\'S OVER 500!'); break; } } } } function incrementVariableF(variable, amount) { if (variables[variable] == undefined) { variables[variable] = amount; } else { variables[variable] += amount; } parseNextF(); } function setVariableF(variable, amount) { if (amount == undefined) { amount = true; } variables[variable] = amount; parseNextF(); } function startGameAndJumpF(label) { outOfMenuIntoGame = true; jumpF(label); } function attachChoiceF(choiceA, style, xpos, ypos) { this.createEmptyMovieClip('choiceMC', dialogueLayer); choiceBoxA = new Array(); var v8 = 0; var v9 = 0; var i = 0; while (i < choiceA.length) { var v2 = choiceMC.attachMovie('choiceBox' + style, 'choiceBox' + i, i + 1); v2.stop(); var v3 = v2.body._height; if (v3 == undefined) { v3 = v2._height; } v2._y = v8 + i * (v3 + 10); v2._x = 0; choiceBoxA.push(v2); var v7 = parsing['s' + choiceA[i]][1]; v2.theText.htmlText = v7; var v4 = v2.theText.bottomScroll; v2.body.gotoAndStop(v4); var v5 = 4; var v6 = v2._height / v5; v9 = (v5 - v4) * v6; v8 += v2.body._height - v3; v2.i = i; v2.onRollOver = function () { highlightChoiceF(this.i); }; v2.onPress = function () { selectChoiceF(choiceA[this.i]); }; ++i; } if (ypos == 'middle') { choiceMC._y = int(screenHeight / 2 - (choiceMC._height - v9) / 2); } else { if (ypos == 'bottom') { choiceMC._y = screenHeight - (choiceMC._height + 10); } } if (xpos == 'middle') { choiceMC._x = (screenWidth - choiceMC._width) / 2; } else { if (xpos == 'left') { choiceMC._x = 10; } else { if (xpos == 'right') { choiceMC._x = screenWidth - (choiceMC._width + 10); } } } highlightChoiceF(0); choiceMC.onEnterFrame = function () { if (!gamePaused) { if (myKeys.ENTER or myKeys.SPACE) { selectChoiceF(choiceA[currentlySelected]); } if (myKeys.DOWN) { if (currentlySelected < choiceBoxA.length - 1) { ++currentlySelected; } highlightChoiceF(currentlySelected); } else { if (myKeys.UP) { if (currentlySelected > 0) { --currentlySelected; } highlightChoiceF(currentlySelected); } } } }; } function addToCgF(b, method, time, dontFireOffParseNext) { var v6 = bg.getNextHighestDepth(); var v2 = bg.createEmptyMovieClip('container' + v6, v6); v2._alpha = 0; if (time == undefined) { time = 0.6; } time = int(time * fps); var v3 = flash.display.BitmapData.loadBitmap(b); if (bg.flipped) { var v4 = new flash.geom.Matrix(); v4.scale(-1, 1); v4.translate(v3.width, 0); var v5 = new flash.display.BitmapData(v3.width, v3.height, true, 0); v5.draw(v3, v4); v2.attachBitmap(v5, 1); } else { v2.attachBitmap(v3, 1); } if (method == 'fade') { fadeDealer = gw.createEmptyMovieClip('fadeDealer', pixelBehindDealerLayer); fadeDealer.targ = v2; fadeDealer.t = 0; fadeDealer.t2 = 0; fadeDealer.pseudoAlpha = 0; fadeDealer.incrementAlpha = 100 / time; fadeDealer.onEnterFrame = function () { if (!gamePaused) { if (this.t == 0) { ++this.t2; this.targ._alpha = int(easeInOutSine(this.t2, 0, 100, time)); if (this.targ._alpha >= 100) { this.t = 1; } } else { if (this.t == 1) { this.t = 2; bg.addedCgA.push(b); removeMovieClip(this); delete this.onEnterFrame; if (!dontFireOffParseNext) { parseNextF(); } } } } }; } else { v2._alpha = 100; bg.addedCgA.push(b); if (!dontFireOffParseNext) { parseNextF(); } } } function addBg(b, newScene, flipped, xpos) { if (flipped) { } else { flipped = false; } var v7 = 2; if (newScene) { if (transitions.bg != undefined) { trace('whaat! transitions.bg is not undefined in addBg function'); } removeMovieClip(bg); bg = gw.createEmptyMovieClip('bg', bgLayer); } else { v7 = bg.getNextHighestDepth(); } bg.addedCgA = new Array(); bg.flipped = flipped; currentBackground = b; var v1 = bg.createEmptyMovieClip('container' + v7, v7); var v2 = flash.display.BitmapData.loadBitmap(b); if (v2 == undefined) { v1.attachMovie(b, 'bg', 1); if (flipped) { v1.bg._xscale = -v1.bg._xscale; v1.bg._x = v1.bg._width; } } else { if (flipped) { var v5 = new flash.geom.Matrix(); v5.scale(-1, 1); v5.translate(v2.width, 0); var v6 = new flash.display.BitmapData(v2.width, v2.height, true, 0); v6.draw(v2, v5); v1.attachBitmap(v6, 1); } else { v1.attachBitmap(v2, 1); } } bg._y = 0; bg.y = 0; if (xpos != undefined) { if (xpos == 'right') { xpos = screenWidth - bg._width; } else { if (xpos == 'center') { xpos = int((screenWidth - bg._width) / 2); } } bg._x = xpos; bg.x = bg._x; return v1; } bg._x = 0; bg.x = 0; return v1; } function calculateF(variable, expression, integer) { var v7 = ''; var v2 = ''; var v1 = ''; var v8 = ''; var v4 = ['+', '-', '/', 'x', '*']; var v3 = 0; while (v3 < v4.length) { var v5 = expression.indexOf(v4[v3]); if (v5 != -1) { v2 = expression.substr(0, v5); if (isNaN(Number(v2))) { v2 = variables[v2]; if (isNaN(Number(v2))) { v2 = 0; } } v2 = Number(v2); v7 = v4[v3]; v1 = expression.substr(v5 + v4[v3].length, expression.length); if (isNaN(Number(v1))) { v1 = variables[v1]; if (isNaN(Number(v1))) { v1 = 0; } } v1 = Number(v1); v3 = v4.length; } ++v3; } if (v7 == '') { trace('error: math expression without operator'); v8 = expression; } else { if (v7 == '+') { v8 = v2 + v1; } else { if (v7 == '-') { v8 = v2 - v1; } else { if (v7 == '/') { v8 = v2 / v1; } else { if (v7 == '*' or v7 == 'x') { v8 = v2 * v1; } } } } } if (integer) { v8 = int(v8); } variables[variable] = v8; parseNextF(); } function fadeF(newBg, newScene, time, flipped, xpos) { var v2 = addBg(newBg, false, flipped, xpos); time = int(time * fps); var v3 = pixelDealerLayer; if (!newScene) { v3 = pixelBehindDealerLayer; } fadeDealer = gw.createEmptyMovieClip('fadeDealer', v3); if (newScene) { if (transitions.bg != undefined) { removeMovieClip(transitions.bg); delete transitions.bg.onEnterFrame; } v2._x = -bg._x; bg._y = -bg._y; } v2._alpha = 0; fadeDealer.targ = v2; fadeDealer.t = 0; fadeDealer.t2 = 0; fadeDealer.onEnterFrame = function () { if (!gamePaused) { if (this.t == 0) { ++this.t2; this.targ._alpha = int(easeInOutSine(this.t2, 0, 100, time)); if (this.targ._alpha >= 100) { this.t = 1; } } else { if (this.t == 1) { if (newScene) { addBg(newBg, true, flipped, xpos); checkIfNextFewItemsAreAddToCg(); } this.t = 2; removeMovieClip(this); delete this.onEnterFrame; if (newScene) { parseNextF(); } } } } }; } function colorFadeF(newBg, color, newScene, time, flipped, xpos) { time = int(time * fps); var layer = pixelDealerLayer; if (!newScene) { layer = pixelBehindDealerLayer; } fadeDealer = gw.createEmptyMovieClip('fadeDealer', layer); fadeDealer._alpha = 0; fadeDealer.pseudoAlpha = 0; fadeDealer.t = 0; fadeDealer.incrementAlpha = (100 / time) * 2; var c = 0; if (color == 'black') { } else { if (color == 'white') { var c = 16777215; } } with (fadeDealer) { beginFill(c); moveTo(0, 0); lineTo(screenWidth, 0); lineTo(screenWidth, screenHeight); lineTo(0, screenHeight); lineTo(0, 0); endFill(); } fadeDealer.onEnterFrame = function () { if (!gamePaused) { if (this.t == 0) { this.pseudoAlpha += this.incrementAlpha; this._alpha = int(this.pseudoAlpha); if (this._alpha >= 80) { this.t = 1; } } else { if (this.t == 1) { if (newScene) { removeAllChars2F(); } addBg(newBg, newScene, flipped, xpos); checkIfNextFewItemsAreAddToCg(); this.t = 2; } else { if (this.t == 2) { this.pseudoAlpha -= this.incrementAlpha; this._alpha = int(this.pseudoAlpha); if (this._alpha <= 0) { removeMovieClip(this); delete this.onEnterFrame; if (newScene) { parseNextF(); } } } } } } }; } function checkIfNextFewItemsAreAddToCg() { var v3 = parser; var v2 = true; while (v2) { ++v3; var v1 = parsing['s' + v3]; if (v1[0] == 'addToCg' && v1[2] != 'fade') { addToCgF(v1[1], x, x, true); ++parser; } else { v2 = false; } } } function pixellateF(newBg, flipped) { this.createEmptyMovieClip('pixelDealer', pixelDealerLayer); pixelDealer.t = 10000; pixelDealer.f = 1; pixelDealer.scaler = 0; scaleA = [0.5, 0.3, 0.2, 0.1, 0.05, 0.02, 0.01, 0.002]; pixelDealer.onEnterFrame = function () { if (!gamePaused) { ++this.t; if (this.t >= 2) { this.t = 0; if (this.f == 1) { pixellyF(scaleA[this.scaler]); ++this.scaler; if (this.scaler == scaleA.length) { addBg(newBg, true, flipped); this.f = 2; this.scaler -= 2; } } else { if (this.f == 2) { pixellyF(scaleA[this.scaler]); --this.scaler; if (this.scaler < 0) { bg.container._yscale = 100; bg.container._xscale = 100; this.f = 3; removeMovieClip(pix); } } else { if (this.f >= 3) { ++this.f; if (this.f == 8) { removeMovieClip(this); delete this.onEnterFrame; parseNextF(); } } } } } } }; } function pixellyF(scale) { removeMovieClip(this.getInstanceAtDepth(pixellationLayer)); this.createEmptyMovieClip('pix', pixellationLayer); bg.container._yscale = 100 * scale; bg.container._xscale = bg.container._yscale; myBitmap = new flash.display.BitmapData(screenWidth * scale, screenHeight * scale, false, 16777215); myBitmap.draw(bg); pix.attachBitmap(myBitmap, 5); pix._width = screenWidth; pix._height = screenHeight; } Object.prototype.clone = function () { if (this instanceof Array) { var v2 = []; var v3 = 0; while (v3 < this.length) { v2[v3] = (typeof this[v3] == 'object') ? this[v3].clone() : this[v3]; ++v3; } return v2; } if (this instanceof Date) { v2 = new Date(this.getTime()); return v2; } if (this instanceof XML || this instanceof MovieClip) { v2 = null; trace('Object.clone won\'t work on MovieClip or XML'); return v2; } v2 = {}; for (v3 in this) { v2[v3] = (typeof this[v3] == 'object') ? this[v3].clone() : this[v3]; } return v2; }; ASSetPropFlags(Object.prototype, ['clone'], 1); loading._visible = false; checkShit(); initVar(); this.onEnterFrame = function () { if (!gamePaused) { keyHandler(); } }; }




http://swfchan.com/42/209976/info.shtml
Created: 8/10 -2018 13:16:11 Last modified: 8/10 -2018 13:16:11 Server time: 24/04 -2024 10:35:51