+class NPC_Peter extends GameNPC {
+ actionTalk() {
+ 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();
+ }
+
+ actionTake() {
+ logic.closeDoor("saikidoor");
+ logic.openDoor("peterdoor");
+ logic.openDoor("biancadoor");
+ return super.actionTake();
+ }
+
+ endTalk() {
+ return (logic.saiki.alive) && (this.talkcount < 3);
+ }
+
+ tpDone(value) {
+ console.log("Woot-woot! Teleport complete:", value);
+ value.makeHappy();
+ 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");
+ logic.openDoor("carlosdoor");
+ logic.openDoor("saikidoor");
+ return super.actionTake();
+ }
+}
+