diff --git a/dist/shattered_sword_assets/images/black.png b/dist/shattered_sword_assets/images/black.png new file mode 100644 index 0000000..d363fff Binary files /dev/null and b/dist/shattered_sword_assets/images/black.png differ diff --git a/src/shattered_sword/Player/PlayerController.ts b/src/shattered_sword/Player/PlayerController.ts index 678eb56..63de062 100644 --- a/src/shattered_sword/Player/PlayerController.ts +++ b/src/shattered_sword/Player/PlayerController.ts @@ -76,6 +76,8 @@ export default class PlayerController extends StateMachineAI implements BattlerA MAX_SHIELD : number = 20; invincible : boolean = false; + godMode: boolean = false; + tilemap: OrthogonalTilemap; //for doublejumps maybe = # of jumps in air allowed @@ -103,6 +105,9 @@ export default class PlayerController extends StateMachineAI implements BattlerA // TODO - figure out attacker damage(damage: number, attacker?: GameNode): void { + if (this.godMode) { + return; + } if( !this.invincible){ //i frame here PlayerController.invincibilityTimer.start(); diff --git a/src/shattered_sword/Scenes/GameLevel.ts b/src/shattered_sword/Scenes/GameLevel.ts index a4159d9..87b40b7 100644 --- a/src/shattered_sword/Scenes/GameLevel.ts +++ b/src/shattered_sword/Scenes/GameLevel.ts @@ -34,6 +34,7 @@ import InputWrapper from "../Tools/InputWrapper"; import Story from "../Tools/DataTypes/Story"; import Sprite from "../../Wolfie2D/Nodes/Sprites/Sprite"; import Platformer from "../../demos/Platformer"; +import TextInput from "../../Wolfie2D/Nodes/UIElements/TextInput"; @@ -101,6 +102,12 @@ export default class GameLevel extends Scene { buffButton3 : Button; buffs: Array; + //pause layer + pauseLayer: Layer; + pauseText: Label; + pauseInput: TextInput; + pauseSubmit: Label; + randomSeed: number; startpos: Vec2; @@ -127,6 +134,7 @@ export default class GameLevel extends Scene { this.load.image("knife", "shattered_sword_assets/sprites/knife.png"); this.load.spritesheet("slice", "shattered_sword_assets/spritesheets/slice.json"); this.load.image("inventorySlot", "shattered_sword_assets/sprites/inventory.png"); + this.load.image("black", "shattered_sword_assets/images/black.png"); this.load.spritesheet("test_dummy","shattered_sword_assets/spritesheets/test_dummy.json") this.enemies = new Array(); @@ -270,6 +278,9 @@ export default class GameLevel extends Scene { break; } } + if (event.type === "cheat") { + this.enableCheat(); + } } if (this.gameStateStack.peek() === GameState.STORY) { if (InputWrapper.isNextJustPressed() && this.gameStateStack.peek() === GameState.STORY) { @@ -279,9 +290,11 @@ export default class GameLevel extends Scene { if (InputWrapper.isPauseJustPressed()) { if (this.gameStateStack.peek() === GameState.GAMING) { this.setGameState(GameState.PAUSE); + this.pauseLayer.enable(); } else if (this.gameStateStack.peek() === GameState.PAUSE) { - this.setGameState(); + this.setGameState(); + this.pauseLayer.disable(); } } @@ -364,6 +377,9 @@ export default class GameLevel extends Scene { this.storyLayer = this.addUILayer("story"); this.storyLayer.disable(); + this.pauseLayer = this.addUILayer("pause"); + this.pauseLayer.disable(); + this.receiver.subscribe("loadStory"); } @@ -391,6 +407,7 @@ export default class GameLevel extends Scene { this.receiver.subscribe("buff1"); this.receiver.subscribe("buff2"); this.receiver.subscribe("buff3"); + this.receiver.subscribe("cheat"); } // TODO - @@ -514,7 +531,23 @@ export default class GameLevel extends Scene { this.buffLayer.disable(); - } + this.pauseText =