X-Git-Url: http://git.megabrutal.com/?p=wgj58.git;a=blobdiff_plain;f=wgj58.js;h=9914ff4f45b116750d50c40c486b4c5cbe80f9a1;hp=b528662d13d32c7187e3314c16458dcaa76b7a56;hb=10a20f44a2657f7cc44bd6ff4a25a91a0b318241;hpb=678dd28d2f27fce07c8138e18201d9f220f717a8 diff --git a/wgj58.js b/wgj58.js index b528662..9914ff4 100644 --- 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);