feat: implemented pause layer and cheat code
This commit is contained in:
		
							parent
							
								
									cc3b005ae7
								
							
						
					
					
						commit
						176157866d
					
				
							
								
								
									
										
											BIN
										
									
								
								dist/shattered_sword_assets/images/black.png
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								dist/shattered_sword_assets/images/black.png
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 38 KiB  | 
| 
						 | 
					@ -76,6 +76,8 @@ export default class PlayerController extends StateMachineAI implements BattlerA
 | 
				
			||||||
    MAX_SHIELD : number = 20;
 | 
					    MAX_SHIELD : number = 20;
 | 
				
			||||||
    invincible : boolean = false;
 | 
					    invincible : boolean = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    godMode: boolean = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    tilemap: OrthogonalTilemap;
 | 
					    tilemap: OrthogonalTilemap;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    //for doublejumps maybe = # of jumps in air allowed
 | 
					    //for doublejumps maybe = # of jumps in air allowed
 | 
				
			||||||
| 
						 | 
					@ -103,6 +105,9 @@ export default class PlayerController extends StateMachineAI implements BattlerA
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    // TODO - figure out attacker 
 | 
					    // TODO - figure out attacker 
 | 
				
			||||||
    damage(damage: number, attacker?: GameNode): void {
 | 
					    damage(damage: number, attacker?: GameNode): void {
 | 
				
			||||||
 | 
					        if (this.godMode) {
 | 
				
			||||||
 | 
					            return;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        if( !this.invincible){
 | 
					        if( !this.invincible){
 | 
				
			||||||
            //i frame here
 | 
					            //i frame here
 | 
				
			||||||
            PlayerController.invincibilityTimer.start();
 | 
					            PlayerController.invincibilityTimer.start();
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -34,6 +34,7 @@ import InputWrapper from "../Tools/InputWrapper";
 | 
				
			||||||
import Story from "../Tools/DataTypes/Story";
 | 
					import Story from "../Tools/DataTypes/Story";
 | 
				
			||||||
import Sprite from "../../Wolfie2D/Nodes/Sprites/Sprite";
 | 
					import Sprite from "../../Wolfie2D/Nodes/Sprites/Sprite";
 | 
				
			||||||
import Platformer from "../../demos/Platformer";
 | 
					import Platformer from "../../demos/Platformer";
 | 
				
			||||||
 | 
					import TextInput from "../../Wolfie2D/Nodes/UIElements/TextInput";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -101,6 +102,12 @@ export default class GameLevel extends Scene {
 | 
				
			||||||
    buffButton3 : Button;
 | 
					    buffButton3 : Button;
 | 
				
			||||||
    buffs: Array<Buff>;
 | 
					    buffs: Array<Buff>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //pause layer
 | 
				
			||||||
 | 
					    pauseLayer: Layer;
 | 
				
			||||||
 | 
					    pauseText: Label;
 | 
				
			||||||
 | 
					    pauseInput: TextInput;
 | 
				
			||||||
 | 
					    pauseSubmit: Label;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    randomSeed: number;
 | 
					    randomSeed: number;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    startpos: Vec2; 
 | 
					    startpos: Vec2; 
 | 
				
			||||||
| 
						 | 
					@ -127,6 +134,7 @@ export default class GameLevel extends Scene {
 | 
				
			||||||
        this.load.image("knife", "shattered_sword_assets/sprites/knife.png");
 | 
					        this.load.image("knife", "shattered_sword_assets/sprites/knife.png");
 | 
				
			||||||
        this.load.spritesheet("slice", "shattered_sword_assets/spritesheets/slice.json");
 | 
					        this.load.spritesheet("slice", "shattered_sword_assets/spritesheets/slice.json");
 | 
				
			||||||
        this.load.image("inventorySlot", "shattered_sword_assets/sprites/inventory.png");
 | 
					        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.load.spritesheet("test_dummy","shattered_sword_assets/spritesheets/test_dummy.json")
 | 
				
			||||||
        this.enemies = new Array();
 | 
					        this.enemies = new Array();
 | 
				
			||||||
| 
						 | 
					@ -270,6 +278,9 @@ export default class GameLevel extends Scene {
 | 
				
			||||||
                        break;
 | 
					                        break;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					            if (event.type === "cheat") {
 | 
				
			||||||
 | 
					                this.enableCheat();
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        if (this.gameStateStack.peek() === GameState.STORY) {
 | 
					        if (this.gameStateStack.peek() === GameState.STORY) {
 | 
				
			||||||
            if (InputWrapper.isNextJustPressed() && 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 (InputWrapper.isPauseJustPressed()) {
 | 
				
			||||||
            if (this.gameStateStack.peek() === GameState.GAMING) {
 | 
					            if (this.gameStateStack.peek() === GameState.GAMING) {
 | 
				
			||||||
                this.setGameState(GameState.PAUSE);
 | 
					                this.setGameState(GameState.PAUSE);
 | 
				
			||||||
 | 
					                this.pauseLayer.enable();
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else if (this.gameStateStack.peek() === GameState.PAUSE) {
 | 
					            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 = this.addUILayer("story");
 | 
				
			||||||
        this.storyLayer.disable();
 | 
					        this.storyLayer.disable();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        this.pauseLayer = this.addUILayer("pause");
 | 
				
			||||||
 | 
					        this.pauseLayer.disable();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        this.receiver.subscribe("loadStory");
 | 
					        this.receiver.subscribe("loadStory");
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					@ -391,6 +407,7 @@ export default class GameLevel extends Scene {
 | 
				
			||||||
        this.receiver.subscribe("buff1");
 | 
					        this.receiver.subscribe("buff1");
 | 
				
			||||||
        this.receiver.subscribe("buff2");
 | 
					        this.receiver.subscribe("buff2");
 | 
				
			||||||
        this.receiver.subscribe("buff3");
 | 
					        this.receiver.subscribe("buff3");
 | 
				
			||||||
 | 
					        this.receiver.subscribe("cheat");
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // TODO - 
 | 
					    // TODO - 
 | 
				
			||||||
| 
						 | 
					@ -514,7 +531,23 @@ export default class GameLevel extends Scene {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        this.buffLayer.disable();
 | 
					        this.buffLayer.disable();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    }
 | 
					        this.pauseText = <Label>this.add.uiElement(UIElementType.LABEL, "pause", {position: new Vec2(500, 250), text: "Game Paused"});
 | 
				
			||||||
 | 
					        this.pauseInput = <TextInput>this.add.uiElement(UIElementType.TEXT_INPUT, "pause", {position: new Vec2(500, 300), text: ""});
 | 
				
			||||||
 | 
					        this.pauseSubmit = <Label>this.add.uiElement(UIElementType.LABEL, "pause", {position: new Vec2(500, 350), text: "Submit"});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // let tmp = this.add.sprite("black", "pause");
 | 
				
			||||||
 | 
					        this.pauseLayer.setAlpha(0.5);
 | 
				
			||||||
 | 
					        this.pauseInput.size.set(500, 30);
 | 
				
			||||||
 | 
					        this.pauseText.textColor = Color.BLACK;
 | 
				
			||||||
 | 
					        this.pauseText.borderColor = Color.BLACK;
 | 
				
			||||||
 | 
					        this.pauseText.backgroundColor = Color.WHITE;
 | 
				
			||||||
 | 
					        this.pauseText.borderWidth = 3;
 | 
				
			||||||
 | 
					        this.pauseSubmit.textColor = Color.BLACK;
 | 
				
			||||||
 | 
					        this.pauseSubmit.borderColor = Color.BLACK;
 | 
				
			||||||
 | 
					        this.pauseSubmit.backgroundColor = Color.WHITE;
 | 
				
			||||||
 | 
					        this.pauseSubmit.onClickEventId = "cheat";
 | 
				
			||||||
 | 
					        this.pauseSubmit.borderWidth = 3;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    //TODO - determine whether we will have weapon datatype
 | 
					    //TODO - determine whether we will have weapon datatype
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
| 
						 | 
					@ -890,6 +923,38 @@ export default class GameLevel extends Scene {
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Cheat
 | 
				
			||||||
 | 
					    enableCheat() {
 | 
				
			||||||
 | 
					        if (this.pauseInput.text.toUpperCase() === "UUDDLRLRBABA") {
 | 
				
			||||||
 | 
					            (<PlayerController>this.player._ai).godMode = true;
 | 
				
			||||||
 | 
					            return;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else {
 | 
				
			||||||
 | 
					            let commands = this.pauseInput.text.split(' ');
 | 
				
			||||||
 | 
					            if (commands.length === 3) {
 | 
				
			||||||
 | 
					                if (commands[0].toUpperCase() !== "SET") {
 | 
				
			||||||
 | 
					                    switch (commands[1].toUpperCase()) {
 | 
				
			||||||
 | 
					                        case "ATK":
 | 
				
			||||||
 | 
					                            (<PlayerController>this.player._ai).CURRENT_ATK = parseInt(commands[2]);
 | 
				
			||||||
 | 
					                            break;
 | 
				
			||||||
 | 
					                        case "HP":
 | 
				
			||||||
 | 
					                            (<PlayerController>this.player._ai).CURRENT_HP = parseInt(commands[2]);
 | 
				
			||||||
 | 
					                            break;
 | 
				
			||||||
 | 
					                        case "EXP":
 | 
				
			||||||
 | 
					                            (<PlayerController>this.player._ai).CURRENT_EXP = parseInt(commands[2]);
 | 
				
			||||||
 | 
					                            break;
 | 
				
			||||||
 | 
					                        case "SLD":
 | 
				
			||||||
 | 
					                            (<PlayerController>this.player._ai).CURRENT_SHIELD = parseInt(commands[2]);
 | 
				
			||||||
 | 
					                            break;
 | 
				
			||||||
 | 
					                        default:
 | 
				
			||||||
 | 
					                            break;
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            (<PlayerController>this.player._ai).godMode = false;
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user