Add Peter & Clara afternoon dialogue
[wgj58.git] / wgj58.js
index 9914ff4f45b116750d50c40c486b4c5cbe80f9a1..71b0484725d4b015551a0053e6a9b5cc1d8b3626 100644 (file)
--- a/wgj58.js
+++ b/wgj58.js
@@ -172,7 +172,7 @@ class GameNPC extends Phaser.Sprite {
                this.fullname = fullname;
                this.interaction_distance = interaction_distance;
                this.interactable = false;
-               this.talkcount = 0;
+               this.resetTalk();
                this.happy = false;
        }
 
@@ -218,6 +218,10 @@ class GameNPC extends Phaser.Sprite {
                return true;
        }
 
+       resetTalk() {
+               this.talkcount = 0;
+       }
+
        makeHappy() {
                this.happy = true;
                console.log(this.shortname, "is happy!");
@@ -281,8 +285,6 @@ class NPC_Clara extends GameNPC {
                                        { actor: logic.player, text: "Would you go out on a date with me?" },
                                        { actor: this, text: "..." },
                                        { actor: this, text: "No." } ] ));
-                               // FIXME: Clara should have another happy condition.
-                               this.makeHappy();
                                break;
                        default:
                                logic.gameinterface.talk(new Dialogue( [ { actor: this, text: "..." } ] ));
@@ -307,52 +309,78 @@ class NPC_Clara extends GameNPC {
 class NPC_Carlos extends GameNPC {
        actionTalk() {
                if (logic.clara.alive) {
-                       switch (this.talkcount) {
-                               case 0:
-                                       logic.gameinterface.talk(new Dialogue( [ { actor: logic.player, text: "Good morning, Carlos! What's up?" },
-                                               { actor: this, text: "Hey, John! Not too much, I'm just trying to sell some shit to this new client." },
-                                               { actor: logic.player, text: "And so? Is it hard to convince them?" },
-                                               { actor: this, text: "Of course, they don't want to buy. It's shit." },
-                                               { actor: this, text: "I mean, who would want to buy shit?" },
-                                               { actor: logic.player, text: "Yeah. Relatable... But why are you trying to sell shit? I mean, why not one of our cutting edge technologies?" },
-                                               { actor: this, text: "They couldn't afford it." },
-                                               { actor: logic.player, text: "Then why are you trying to sell them... anything at all? They'd better off with a cheaper company." },
-                                               { actor: this, text: "Company policies. Plus the management instructed me to sell to them, no matter what." },
-                                               { actor: logic.player, text: "That sucks... Well... good luck!" },
-                                               { actor: this, text: "Thanks..." } ] ));
-                                       logic.closeDoor("cutedoor");
-                                       logic.openDoor("carlosdoor");
-                                       break;
-                               case 1:
-                                       logic.gameinterface.talk(new Dialogue( [ { actor: this, text: "*Sigh.* I'll probably not work here for long, if I can't sell this shit to the customer." },
-                                               { actor: this, text: "These layoffs are terrifying. They let go of anyone for even the slightest mistake." },
-                                               { actor: logic.player, text: "But it's not a mistake when our client doesn't buy something they don't need." },
-                                               { actor: this, text: "Tell this to my boss..." } ] ));
-                                       break;
-                               case 2:
-                                       logic.gameinterface.talk(new Dialogue( [ { actor: this, text: "You know, generally, I think it sucks being a child. One thing I miss though, if you're a child, you're allowed to be silly." },
-                                               { actor: this, text: "..." },
-                                               { actor: this, text: "For example, when my Dad told me that semen is the seed of animals, I theoretized, if I'd bury some pig semen in the garden, a pig would grow out of it..." },
-                                               { actor: this, text: "I was totally fascinated by the thought, because I really wanted to have a pet pig, but Dad wouldn't let me have one." },
-                                               { actor: this, text: "So I thought I could grow my own pig in the garden from pig seeds!" },
-                                               { actor: logic.player, text: "Interesting. Where are you going with this?" },
-                                               { actor: this, text: "I don't know... sometimes I feel like I'd rather sell pig semen to our clients, heh!" },
-                                               { actor: this, text: "Uhm..." },
-                                               { actor: this, text: "Totally don't tell this to Saiki!" } ] ));
-                                       this.pigsemen = true;
-                                       break;
-                               case 3:
-                                       logic.gameinterface.talk(new Dialogue( [ { actor: this, text: "Weren't you heading to the IT department to the right?" },
-                                               { actor: this, text: "You know... the green department which looks way better than blue!" },
-                                               { actor: this, text: "..." },
-                                               { actor: this, text: "Damn, why do I have to work in blue? I just feel... so blue about it." } ] ));
-                                       break;
-                               case 4:
-                                       logic.gameinterface.talk(new Dialogue( [ { actor: this, text: "Weren't you heading to the conveniently green department to the right? I guess Saiki is waiting for you." },
-                                               { actor: this, text: "You're so lucky that you can work with her every day!" } ] ));
-                                       break;
-                               default:
-                                       logic.gameinterface.talk(new Dialogue( [ { actor: this, text: "Guess you'll stay here then. It's cool, you're great company anyway." } ] ));
+                       if (logic.saiki.talkcount == 0) {
+                               switch (this.talkcount) {
+                                       case 0:
+                                               logic.gameinterface.talk(new Dialogue( [ { actor: logic.player, text: "Good morning, Carlos! What's up?" },
+                                                       { actor: this, text: "Hey, John! Not too much, I'm just trying to sell some shit to this new client." },
+                                                       { actor: logic.player, text: "And so? Is it hard to convince them?" },
+                                                       { actor: this, text: "Of course, they don't want to buy. It's shit." },
+                                                       { actor: this, text: "I mean, who would want to buy shit?" },
+                                                       { actor: logic.player, text: "Yeah. Relatable... But why are you trying to sell shit? I mean, why not one of our cutting edge technologies?" },
+                                                       { actor: this, text: "They couldn't afford it." },
+                                                       { actor: logic.player, text: "Then why are you trying to sell them... anything at all? They'd better off with a cheaper company." },
+                                                       { actor: this, text: "Company policies. Plus the management instructed me to sell to them, no matter what." },
+                                                       { actor: logic.player, text: "That sucks... Well... good luck!" },
+                                                       { actor: this, text: "Thanks..." } ] ));
+                                               logic.closeDoor("cutedoor");
+                                               logic.openDoor("carlosdoor");
+                                               break;
+                                       case 1:
+                                               logic.gameinterface.talk(new Dialogue( [ { actor: this, text: "*Sigh.* I'll probably not work here for long, if I can't sell this shit to the customer." },
+                                                       { actor: this, text: "These layoffs are terrifying. They let go of anyone for even the slightest mistake." },
+                                                       { actor: logic.player, text: "But it's not a mistake when our client doesn't buy something they don't need." },
+                                                       { actor: this, text: "Tell this to my boss..." } ] ));
+                                               break;
+                                       case 2:
+                                               logic.gameinterface.talk(new Dialogue( [ { actor: this, text: "You know, generally, I think it sucks being a child. One thing I miss though, if you're a child, you're allowed to be silly." },
+                                                       { actor: this, text: "..." },
+                                                       { actor: this, text: "For example, when my Dad told me that semen is the seed of animals, I theoretized, if I'd bury some pig semen in the garden, a pig would grow out of it..." },
+                                                       { actor: this, text: "I was totally fascinated by the thought, because I really wanted to have a pet pig, but Dad wouldn't let me have one." },
+                                                       { actor: this, text: "So I thought I could grow my own pig in the garden from pig seeds!" },
+                                                       { actor: logic.player, text: "Interesting. Where are you going with this?" },
+                                                       { actor: this, text: "I don't know... sometimes I feel like I'd rather sell pig semen to our clients, heh!" },
+                                                       { actor: this, text: "Uhm..." },
+                                                       { actor: this, text: "Totally don't tell this to Saiki!" } ] ));
+                                               this.pigsemen = true;
+                                               break;
+                                       case 3:
+                                               logic.gameinterface.talk(new Dialogue( [ { actor: this, text: "Weren't you heading to the IT department to the right?" },
+                                                       { actor: this, text: "You know... the green department which looks way better than blue!" },
+                                                       { actor: this, text: "..." },
+                                                       { actor: this, text: "Damn, why do I have to work in blue? I just feel... so blue about it." } ] ));
+                                               break;
+                                       case 4:
+                                               logic.gameinterface.talk(new Dialogue( [ { actor: this, text: "Weren't you heading to the conveniently green department to the right? I guess Saiki is waiting for you." },
+                                                       { actor: this, text: "You're so lucky that you can work with her every day!" } ] ));
+                                               break;
+                                       default:
+                                               logic.gameinterface.talk(new Dialogue( [ { actor: this, text: "Guess you'll stay here then. It's cool, you're great company anyway." } ] ));
+                               }
+                       }
+                       else {
+                               switch (this.talkcount) {
+                                       case 0:
+                                               logic.gameinterface.talk(new Dialogue( [ { actor: this, text: "Phew... long shift, I gotta go!" },
+                                                       { actor: this, text: "Why are you still here? I mean, you engineers stay here 'til late at night. Why don't you just go home at 4 pm?" },
+                                                       { actor: this, text: "This is why I can never ask out Saiki... She always works for so long..." },
+                                                       { actor: logic.player, text: "We tend to have lots of work with impossible deadlines..." },
+                                                       { actor: this, text: "I bet you get lots of money for the overtimes!" },
+                                                       { actor: logic.player, text: "No, we don't get paid for overtimes." },
+                                                       { actor: this, text: "... Then why do you stay beyond the office hours?" },
+                                                       { actor: logic.player, text: "Otherwise we're fired. That's the deal. Either we work 2 extra hours or we get replaced." },
+                                                       { actor: this, text: "Wow... and I thought we have a shortage on engineers..." } ] ));
+                                               break;
+                                       case 1:
+                                               logic.gameinterface.talk(new Dialogue( [ { actor: logic.player, text: "And how's the business going? Did you manage to shell the shit?" },
+                                                       { actor: this, text: "In a heartbeat! Now they're buying so much shit that I'm afraid we don't have enough assholes to produce that quantity." },
+                                                       { actor: this, text: "Be prepared for another month of overtimes. This deal will be huge!" },
+                                                       { actor: logic.player, text: "Well done, man!" } ] ));
+                                               break;
+                                       default:
+                                               logic.gameinterface.talk(new Dialogue( [ { actor: this, text: "I really want to leave now." } ] ));
+                                               this.offscreenTeleportation(new Phaser.Point(0, 0), this.tpDone, this);
+                               }
                        }
                }
                else {
@@ -389,7 +417,7 @@ class NPC_Carlos extends GameNPC {
        }
 
        actionLeave() {
-               if (logic.clara.alive) {
+               if ((logic.clara.alive) && (logic.saiki.talkcount == 0)) {
                        logic.gameinterface.dropNotice(this.shortname + ": Bye, John! Pass on my greetings to Saiki!");
                }
        }
@@ -401,12 +429,25 @@ class NPC_Carlos extends GameNPC {
        }
 
        endTalk() {
-               return (logic.clara.alive) || (this.talkcount < 3);
+               return ((logic.clara.alive) && (logic.saiki.talkcount == 0)) || (this.talkcount < 3);
+       }
+
+       tpDone(value) {
+               console.log("Woot-woot! Teleport complete:", value);
+               value.visible = false;
        }
 }
 
 class NPC_Saiki extends GameNPC {
        actionTalk() {
+               /* If Saiki is happy, she's already teleported to Carlos. */
+               if (!this.happy)
+                       this.actionTalk_morning();
+               else
+                       this.actionTalk_afternoon();
+       }
+
+       actionTalk_morning() {
                if (logic.carlos.alive) {
                        switch (this.talkcount) {
                                case 0:
@@ -423,6 +464,7 @@ class NPC_Saiki extends GameNPC {
                                        logic.closeDoor("carlosdoor");
                                        logic.openDoor("saikidoor");
                                        logic.openDoor("peterdoor");
+                                       logic.carlos.resetTalk();
                                        break;
                                case 1:
                                        logic.gameinterface.talk(new Dialogue( [ { actor: this, text: "Now that I think about it, there's still one thing. You could look into why the access control system is acting so funny today." },
@@ -501,6 +543,39 @@ class NPC_Saiki extends GameNPC {
                super.actionTalk();
        }
 
+       actionTalk_afternoon() {
+               if (logic.peter.alive) {
+                       switch (this.talkcount) {
+                               case 0:
+                                       logic.gameinterface.talk(new Dialogue( [ { actor: this, text: "Oh, hi John!" },
+                                               { actor: logic.carlos, text: "Hey John! Thanks for telling my secret to Saiki..." },
+                                               { actor: logic.player, text: "Really sorry man, but it was so funny!" },
+                                               { actor: logic.carlos, text: "Are you kidding me? It's the best thing you could have ever done!" },
+                                               { actor: this, text: "Yeah, I couldn't resist to come over here to talk about it, haha!" },
+                                               { actor: logic.carlos, text: "And we talked about lots of other stuff too..." },
+                                               { actor: this, text: "WE ASKED EACH OTHER OUT ON A DATE!!!" },
+                                               { actor: logic.carlos, text: "Yeah, Saiki finds gender equality so important that she had to take the role of the initiator, just in the right moment when I asked her out." },
+                                               { actor: this, text: "Oh, shut up! xD" },
+                                               { actor: logic.player, text: "Awesome, I'm so happy for you guys!" },
+                                               { actor: logic.player, text: "... Don't mean to ruin the fun, but have you finished with your work?" },
+                                               { actor: logic.carlos, text: "Who cares? It waits. I can totally sell the shit tomorrow." },
+                                               { actor: this, text: "Yeah, I'll commit my patch tomorrow morning. We definitely deserve some fun!" },
+                                               { actor: logic.player, text: "You say it right! Bye then." } ] ));
+                                       break;
+                               default:
+                                       logic.gameinterface.talk(new Dialogue( [ { actor: logic.player, text: "Have a great evening, guys!" } ] ));
+                       }
+               }
+               else {
+                       logic.gameinterface.talk(new Dialogue( [ { actor: this, text: "Oh... hi Peter!..." },
+                               { actor: this, text: "I wanted to talk to Carlos..." },
+                               { actor: this, text: "Where is he? I mean, he often leaves early, but..." },
+                               { actor: this, text: "I can't explain why, but somehow I have a very bad feeling about this. " },
+                               { actor: logic.player, text: "..." } ] ));
+               }
+               super.actionTalk();
+       }
+
        actionLeave() {
                if (logic.carlos.alive) {
                        logic.gameinterface.dropNotice(this.shortname + ": It was nice talking to you!");
@@ -516,12 +591,13 @@ class NPC_Saiki extends GameNPC {
        }
 
        endTalk() {
-               return (logic.carlos.alive);
+               return (logic.carlos.alive) && (!this.happy);
        }
 
        tpDone(value) {
                console.log("Woot-woot! Teleport complete:", value);
                value.makeHappy();
+               value.resetTalk();
                logic.carlos.makeHappy();
                // FIXME: Need to find a prettier way than this.
                logic.carlos.update = function() { };           // Disable Carlos' interaction. (Saiki will talk for him.)
@@ -529,15 +605,230 @@ class NPC_Saiki extends GameNPC {
 }
 
 class NPC_Peter extends GameNPC {
+       actionTalk() {
+               /* If Peter is happy, she's already teleported to Clara. */
+               if (!this.happy)
+                       this.actionTalk_morning();
+               else
+                       this.actionTalk_afternoon();
+       }
+
+       actionTalk_morning() {
+               if (logic.saiki.alive) {
+                       switch (this.talkcount) {
+                               case 0:
+                                       logic.gameinterface.talk(new Dialogue( [ { actor: logic.player, text: "Hi Peter! What's up?" },
+                                               { actor: this, text: "Hi John! Bianca has locked herself in the large meeting room." },
+                                               { actor: logic.player, text: "Why would she do that?" },
+                                               { actor: this, text: "I have no idea." },
+                                               { actor: this, text: "Normally, I would give a fuck about what she's doing and her problems, but I want to hold a meeting in an hour." },
+                                               { actor: logic.player, text: "That was rude. I think you should care more about your colleagues." },
+                                               { actor: this, text: "Ahh... You're right. I didn't mean it. I'm just so frustrated about all the shit going on here." } ] ));
+                                       logic.closeDoor("saikidoor");
+                                       logic.openDoor("peterdoor");
+                                       logic.openDoor("biancadoor");
+                                       break;
+                               case 1:
+                                       logic.gameinterface.talk(new Dialogue( [ { actor: this, text: "See... Would you talk to Bianca? We don't understand each other pretty well. That's why I'd rather wouldn't make a shot." } ] ));
+                                       break;
+                               default:
+                                       if ((logic.clara.talkcount >= 5) && (this.talkcount == 2)) {
+                                               logic.gameinterface.talk(new Dialogue( [ { actor: logic.player, text: "Do you know Clara from the Reception?" },
+                                                       { actor: this, text: "Of course I do." },
+                                                       { actor: logic.player, text: "I think she's mad at me..." },
+                                                       { actor: this, text: "Why would she?" },
+                                                       { actor: logic.player, text: "I kind of... asked her out." },
+                                                       { actor: logic.player, text: "She said no." },
+                                                       { actor: this, text: "What the heck, dude?" },
+                                                       { actor: this, text: "..." },
+                                                       { actor: this, text: "You should know it's against the company etiquette..." },
+                                                       { actor: this, text: "Regardless, I don't think she's really mad. You're a cool guy." },
+                                                       { actor: logic.player, text: "I hope this will be sorted out... I totally accept her answer, but I wouldn't like her to have negative feelings towards me." } ] ));
+                                               this.offscreenTeleportation(new Phaser.Point(logic.clara.x - 160, logic.clara.y), this.tpDone, this);
+                                       }
+                                       else {
+                                               logic.gameinterface.talk(new Dialogue( [ { actor: this, text: "I'm kind of busy, man." } ] ));
+                                       }
+                       }
+               }
+               else {
+                       switch (this.talkcount) {
+                               case 0:
+                                       logic.gameinterface.talk(new Dialogue( [ { actor: logic.player, text: "What a wonderful day, Peter!" },
+                                               { actor: this, text: "Yikes! Saiki! You scared me!" },
+                                               { actor: logic.player, text: "I didn't even say \"boo\"." },
+                                               { actor: this, text: "Are you OK? You look horrible! You should really see a doctor." },
+                                               { actor: logic.player, text: "I'm fine, Peter. And you?" },
+                                               { actor: this, text: "No... Not at all." },
+                                               { actor: logic.player, text: "I'm sorry to hear that..." } ] ));
+                                       break;
+                               case 1:
+                                       logic.gameinterface.talk(new Dialogue( [ { actor: this, text: "Don't come closer to me!" },
+                                               { actor: logic.player, text: "Why?" },
+                                               { actor: this, text: "I don't mean to offend you, but... you really creep me out..." },
+                                               { actor: logic.player, text: "Why do you say that?" },
+                                               { actor: this, text: "I honestly can't tell what's wrong with you, but... you look like that ghost girl from The Ring!" } ] ));
+                                       break;
+                               case 2:
+                                       logic.gameinterface.talk(new Dialogue( [ { actor: logic.player, text: "Now that was pretty much racist..." },
+                                               { actor: logic.player, text: "Just because I have a Japanese name and long black hair, that makes me immediately look like the Japanese girl from Ring when I'm sick?" },
+                                               { actor: this, text: "Geez... that's not even a Japanese movie! And the actress is American..." },
+                                               { actor: logic.player, text: "The original movie is Japanese." },
+                                               { actor: this, text: "I don't care... Just... keep distance, please!" } ] ));
+                                       break;
+                               default:
+                                       if (Phaser.Math.random() < 0.5) {
+                                               logic.gameinterface.talk(new Dialogue( [ { actor: this, text: "STAY AWAY FROM ME!" } ] ));
+                                       }
+                                       else {
+                                               logic.gameinterface.talk(new Dialogue( [ { actor: this, text: "DON'T COME ANY CLOSER!" } ] ));
+                                       }
+                       }
+               }
+               super.actionTalk();
+       }
+
+       actionTalk_afternoon () {
+               if (logic.bianca.alive) {
+                       switch (this.talkcount) {
+                               case 0:
+                                       logic.gameinterface.talk(new Dialogue( [ { actor: this, text: "Hey John!" },
+                                               { actor: logic.player, text: "Hey, what's up?" },
+                                               { actor: this, text: "I just asked Clara out on a date!" },
+                                               { actor: logic.clara, text: "Shhhsh, don't brag about it! I'm a person, not a prize." },
+                                               { actor: this, text: "Sorry..." },
+                                               { actor: logic.clara, text: "It's OK... Uhm... Sorry, John... I always liked Peter... but when you asked me out, I felt intimidated and a little uncomfortable." } ] ));
+                                       break;
+                               case 1:
+                                       logic.gameinterface.talk(new Dialogue( [ { actor: logic.player, text: "I'm sorry, Clara, I didn't mean to be inappropriate... situations like this are always so complicated..." },
+                                               { actor: logic.clara, text: "Never mind, John. I didn't handle it properly either. Apology accepted." },
+                                               { actor: this, text: "Everyone's happy, I guess." },
+                                               { actor: logic.player, text: "Not really. Maybe I'm gonna be fired." },
+                                               { actor: this, text: "Haha, you're a joker!" } ] ));
+                                       break;
+                               case 2:
+                                       logic.gameinterface.talk(new Dialogue( [ { actor: this, text: "*Whispers.* Khm, no offense, but it would be nice if you excused yourself and leave. You know how it is..." } ] ));
+                                       break;
+                               case 3:
+                                       logic.gameinterface.talk(new Dialogue( [ { actor: logic.player, text: "Oh, time goes so fast... I have to go. Bye!" } ] ));
+                                       break;
+                               default:
+                                       logic.gameinterface.talk(new Dialogue( [ { actor: logic.player, text: "..." } ] ));
+                       }
+               }
+               else {
+                       switch (this.talkcount) {
+                               case 0:
+                                       logic.gameinterface.talk(new Dialogue( [ { actor: this, text: "..." },
+                                               { actor: logic.clara, text: "..." },
+                                               { actor: logic.player, text: "Hey there!... Uhm... Don't you have anything better to do?" },
+                                               { actor: this, text: "Yeah, I would totally have if you weren't been blocking the meeting room!" } ] ));
+                                       break;
+                               default:
+                                       logic.gameinterface.talk(new Dialogue( [ { actor: logic.player, text: "Get back to work! Don't make me say it again!" } ] ));
+                       }
+               }
+               super.actionTalk();
+       }
+
        actionTake() {
                logic.closeDoor("saikidoor");
                logic.openDoor("peterdoor");
                logic.openDoor("biancadoor");
+               logic.carlos.kill();
+               if (logic.saiki.talkcount > 0) logic.saiki.kill();
                return super.actionTake();
        }
+
+       endTalk() {
+               return (logic.saiki.alive) && (this.talkcount < 3) && (!this.happy);
+       }
+
+       tpDone(value) {
+               console.log("Woot-woot! Teleport complete:", value);
+               value.makeHappy();
+               value.resetTalk();
+               logic.clara.makeHappy();
+               // FIXME: Need to find a prettier way than this.
+               logic.clara.update = function() { };            // Disable Clara's interaction. (Peter will talk for him.)
+       }
 }
 
 class NPC_Bianca extends GameNPC {
+       actionTalk() {
+               if (logic.peter.alive) {
+                       switch (this.talkcount) {
+                               case 0:
+                                       logic.gameinterface.talk(new Dialogue( [ { actor: logic.player, text: "... Hi Bianca!" },
+                                               { actor: this, text: "... Hello John!" },
+                                               { actor: logic.player, text: "So I've been told, you've been spending most of the day in this meeting room..." },
+                                               { actor: this, text: "Yeah?" },
+                                               { actor: logic.player, text: "... Your colleagues want to hold a meeting in this room and you're blocking it." },
+                                               { actor: this, text: "Hmm... Kind of that's the point... There is no need for that meeting." },
+                                               { actor: logic.player, text: "May I know why?" },
+                                               { actor: this, text: "You must have heard about the layoffs. We weren't happy with that, but it was inevitable to meet the productivity requirements." },
+                                               { actor: this, text: "But today morning, I received a list with about 50% of the employees... Many of them are great friends of mine..." },
+                                               { actor: this, text: "We were like a big family here and we're torn apart like this... The worst is that I have to tell the news to all of them." },
+                                               { actor: logic.player, text: "That's rough. Does this company even need people?" },
+                                               { actor: this, text: "..." } ] ));
+                                       logic.openDoor("cutedoor");
+                                       logic.closeDoor("peterdoor");
+                                       break;
+                               case 1:
+                                       logic.gameinterface.talk(new Dialogue( [ { actor: logic.player, text: "Bianca... Am I on that list?" },
+                                               { actor: this, text: "Yes, John." },
+                                               { actor: this, text: "Well, I'll try to convince them to keep you and many other great folks from the list." },
+                                               { actor: this, text: "But... I can't promise anything. Also, it would help your case a lot if you made some notable work today, so I could mention it as your recent achievement." },
+                                               { actor: logic.player, text: "Thank you very much... I'll see what I can do." } ] ));
+                                       break;
+                               case 2:
+                                       logic.gameinterface.talk(new Dialogue( [ { actor: logic.player, text: "You seem to be somehow blaming yourself. It's not your fault. You're just doing your job." },
+                                               { actor: this, text: "I know. It's just part of my work..." },
+                                               { actor: this, text: "But if you have to sweep out such a great volume of people within such a short time... It does take its toll on the person." },
+                                               { actor: this, text: "... I feel like I'm growing distant from the company." },
+                                               { actor: this, text: "I mean... probably it's heresy to say that, but I feel I can less and less identify with the company's values." },
+                                               { actor: logic.player, text: "Yeah, you should definitely not talk about it to others... I mean, maybe only those you deeply trust." },
+                                               { actor: this, text: "I don't care anymore..." },
+                                               { actor: logic.player, text: "Fine." },
+                                               { actor: logic.player, text: "See... probably there is no need for such drama. Maybe it's for the best for everyone." },
+                                               { actor: logic.player, text: "... After all, there IS life beyond the company..." },
+                                               { actor: this, text: "You think so?..." },
+                                               { actor: this, text: "Hmm..." },
+                                               { actor: this, text: "I never thought about it for a long time..." },
+                                               { actor: logic.player, text: "There are plenty of other opportunities for us! Everything will be fine!" },
+                                               { actor: this, text: "..." },
+                                               { actor: this, text: "Thank you. This helped me to regain a bit of my composure..." },
+                                               { actor: logic.player, text: "You're welcome." } ] ));
+                                       this.makeHappy();
+                                       break;
+                               default:
+                                       logic.gameinterface.talk(new Dialogue( [ { actor: this, text: "Thank you. I'll go back to work soon. Just give some more minutes of alone time." } ] ));
+                       }
+               }
+               else {
+                       switch (this.talkcount) {
+                               case 0:
+                                       logic.gameinterface.talk(new Dialogue( [ { actor: logic.player, text: "..." },
+                                               { actor: this, text: "... So you came for me too." },
+                                               { actor: this, text: "..." },
+                                               { actor: this, text: "I know what you are..." },
+                                               { actor: this, text: "..." },
+                                               { actor: this, text: "Let's get over with." },
+                                               { actor: logic.player, text: "..." } ] ));
+                                       break;
+                               default:
+                                       logic.gameinterface.talk(new Dialogue( [ { actor: this, text: "What are you waiting for?" } ] ));
+                       }
+               }
+               super.actionTalk();
+       }
+
+       actionLeave() {
+               if (this.happy) {
+                       logic.gameinterface.dropNotice(this.shortname + ": Thank you. I'll go back to work soon.");
+               }
+       }
+
        actionTake() {
                // All doors open for you if you have all the cards.
                logic.openDoor("cutedoor");
@@ -556,8 +847,7 @@ class GameInterface extends Phaser.Group {
                this.back_notice.drawRect(0, 0, game.width, 30);
                this.back_notice.endFill();
                this.add(this.back_notice);
-               this.text_notice = new Phaser.Text(game, 0, this.back_notice.y, null, { align: 'left', fill: 'white', font: 'Ubuntu Mono', fontSize: 18, fontWeight: 'bold' });
-               this.text_notice.anchor.setTo(-0.5, -0.2);
+               this.text_notice = new Phaser.Text(game, 125, this.back_notice.y + 5, null, { align: 'left', fill: 'white', font: 'Ubuntu Mono', fontSize: 18, fontWeight: 'bold' });
                this.add(this.text_notice);
                this.clearNotice();