Change door open conditions
[wgj58.git] / wgj58.js
index b528662d13d32c7187e3314c16458dcaa76b7a56..9914ff4f45b116750d50c40c486b4c5cbe80f9a1 100644 (file)
--- a/wgj58.js
+++ b/wgj58.js
@@ -422,8 +422,7 @@ class NPC_Saiki extends GameNPC {
                                                { actor: logic.player, text: "Haha! I always get it, Saiki!" } ] ));
                                        logic.closeDoor("carlosdoor");
                                        logic.openDoor("saikidoor");
-                                       // FIXME: Abrupt game over.
-                                       if (!logic.carlos.pigsemen) game.time.events.add(Phaser.Timer.SECOND * 15, game.state.start, game.state, 'GameOver', false);
+                                       logic.openDoor("peterdoor");
                                        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." },
@@ -511,9 +510,8 @@ class NPC_Saiki extends GameNPC {
        actionTake() {
                logic.closeDoor("carlosdoor");
                logic.openDoor("saikidoor");
+               logic.openDoor("peterdoor");
                logic.carlos.kill();
-               // FIXME: Abrupt game over.
-               game.time.events.add(Phaser.Timer.SECOND * 15, game.state.start, game.state, 'GameOver', false);
                return super.actionTake();
        }
 
@@ -521,12 +519,6 @@ class NPC_Saiki extends GameNPC {
                return (logic.carlos.alive);
        }
 
-       makeHappy() {
-               // FIXME: Abrupt game over.
-               game.time.events.add(Phaser.Timer.SECOND * 15, game.state.start, game.state, 'GameOver', false);
-               super.makeHappy();
-       }
-
        tpDone(value) {
                console.log("Woot-woot! Teleport complete:", value);
                value.makeHappy();
@@ -536,6 +528,25 @@ class NPC_Saiki extends GameNPC {
        }
 }
 
+class NPC_Peter extends GameNPC {
+       actionTake() {
+               logic.closeDoor("saikidoor");
+               logic.openDoor("peterdoor");
+               logic.openDoor("biancadoor");
+               return super.actionTake();
+       }
+}
+
+class NPC_Bianca extends GameNPC {
+       actionTake() {
+               // All doors open for you if you have all the cards.
+               logic.openDoor("cutedoor");
+               logic.openDoor("carlosdoor");
+               logic.openDoor("saikidoor");
+               return super.actionTake();
+       }
+}
+
 
 class GameInterface extends Phaser.Group {
        constructor(game, parent) {
@@ -754,6 +765,14 @@ class GameLogic {
                                newChar = new NPC_Saiki(object.x, object.y, 'saiki', "Saiki", "Saiki Ytpme", 150);
                                this.saiki = newChar;
                                break;
+                       case 'peter':
+                               newChar = new NPC_Peter(object.x, object.y, 'peter', "Peter", "Peter Tluaf", 225);
+                               this.peter = newChar;
+                               break;
+                       case 'bianca':
+                               newChar = new NPC_Bianca(object.x, object.y, 'bianca', "Bianca", "Bianca Gnihton", 150);
+                               this.bianca = newChar;
+                               break;
                        default:
                                console.error("Unknown character:", object);
                }
@@ -848,6 +867,8 @@ class GamePlay extends Phaser.State {
                game.load.image('clara', 'clara.png');
                game.load.image('carlos', 'carlos.png');
                game.load.image('saiki', 'saiki.png');
+               game.load.image('peter', 'peter.png');
+               game.load.image('bianca', 'bianca.png');
                game.load.image('tileset', 'tileset.png');
                game.load.image('objects', 'objects.png');
                game.load.tilemap('gamemap', 'tilemap.json', null, Phaser.Tilemap.TILED_JSON);