From 75e70a00ba38477b24e18d93919f682553f383f1 Mon Sep 17 00:00:00 2001 From: OfficialCHenry Date: Sat, 23 Apr 2022 17:23:53 -0400 Subject: [PATCH] added lives label, player level label, level up sound --- .../sounds/level_up.wav | Bin 0 -> 107302 bytes .../Player/PlayerController.ts | 30 +++++++++++++----- src/shattered_sword/Scenes/GameLevel.ts | 28 ++++++++++++++-- 3 files changed, 47 insertions(+), 11 deletions(-) create mode 100644 dist/shattered_sword_assets/sounds/level_up.wav diff --git a/dist/shattered_sword_assets/sounds/level_up.wav b/dist/shattered_sword_assets/sounds/level_up.wav new file mode 100644 index 0000000000000000000000000000000000000000..74f1f74ed47e9d7a0dc15c991ecf3dc9ecf4d4a0 GIT binary patch literal 107302 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 XP%Ka^P%Ka^P%Ka^P%Q8-FYx~W@Yw#8 literal 0 HcmV?d00001 diff --git a/src/shattered_sword/Player/PlayerController.ts b/src/shattered_sword/Player/PlayerController.ts index 36d029e..46a1b6a 100644 --- a/src/shattered_sword/Player/PlayerController.ts +++ b/src/shattered_sword/Player/PlayerController.ts @@ -98,6 +98,7 @@ export default class PlayerController extends StateMachineAI implements BattlerA CURRENT_SHIELD : number =0; MAX_SHIELD : number = 20; invincible : boolean = false; + level : number = 1; godMode: boolean = false; @@ -281,6 +282,7 @@ export default class PlayerController extends StateMachineAI implements BattlerA } if(this.CURRENT_HP <= 0){ + this.lives --; (this.owner).animation.play("DYING"); (this.owner).animation.queue("DEAD", true, Player_Events.PLAYER_KILLED); this.emitter.fireEvent(Player_Events.PLAYER_KILLED); @@ -315,6 +317,9 @@ export default class PlayerController extends StateMachineAI implements BattlerA //if > than max exp level up (give buff) if(this.CURRENT_EXP >= this.MAX_EXP){ this.CURRENT_EXP -= this.MAX_EXP; + this.MAX_EXP += 50; //increase max exp needed for level up + this.level++ ; + this.emitter.fireEvent(GameEventType.PLAY_SOUND, {key: "level_up", loop: false, holdReference: false}); this.emitter.fireEvent(Player_Events.GIVE_BUFF); } } @@ -331,7 +336,7 @@ export default class PlayerController extends StateMachineAI implements BattlerA // Get sub-array of first 3 elements after shuffled let shuffled = PlayerController.buffPool.slice(0, 3); //3 buff categories - let num = Number(Math.random().toPrecision(1)) * 10; //random number from 1 to 10 if no value given + let num = parseFloat(Math.random().toPrecision(1)) * 10; //random number from 1 to 10 if no value given if(typeof val !== 'undefined'){ num = val; } @@ -346,12 +351,21 @@ export default class PlayerController extends StateMachineAI implements BattlerA } let dotBuffs : Buff[] = [ - {type:BuffType.BLEED, value:1, category: BuffCategory.DOT, string: "Your hits \napply Bleed"}, - {type:BuffType.BURN, value:1, category: BuffCategory.DOT, string: "Your hits \napply Burn"}, - {type:BuffType.POISON, value:1, category: BuffCategory.DOT, string: "Your hits \napply poison"}, - {type:BuffType.EXTRA_DOT, value:num, category: BuffCategory.DOT, string: "increase your \nDOT damage"}, - ]; + if(!this.hasBleed){ + dotBuffs.push({type:BuffType.BLEED, value:1, category: BuffCategory.DOT, string: "Your hits \napply Bleed"}); + } + if(!this.hasBurn){ + dotBuffs.push({type:BuffType.BURN, value:1, category: BuffCategory.DOT, string: "Your hits \napply Burn"}); + } + if(!this.hasPoison){ + dotBuffs.push({type:BuffType.POISON, value:1, category: BuffCategory.DOT, string: "Your hits \napply poison"}); + } + + if(dotBuffs.length < 3){ //only add extra dot if at least one dot is acquired + dotBuffs.push({type:BuffType.EXTRA_DOT, value:num, category: BuffCategory.DOT, string: "increase your \nDOT damage"}); + } + let shieldBuffs : Buff[] = [ {type:BuffType.HEALTH, value:1, category: BuffCategory.SHIELD}, @@ -366,7 +380,7 @@ export default class PlayerController extends StateMachineAI implements BattlerA let healthBuffs : Buff[] = [ - {type:BuffType.DEF, value:num, category: BuffCategory.HEALTH} + {type:BuffType.DEF, value: num, category: BuffCategory.HEALTH} ]; if(!this.hasLifesteal){ healthBuffs.push({type:BuffType.LIFESTEAL, value:1, category: BuffCategory.HEALTH, string:"Gain lifesteal"}); @@ -381,7 +395,7 @@ export default class PlayerController extends StateMachineAI implements BattlerA {type:BuffType.SPEED, value:num, category: BuffCategory.EXTRA}, {type:BuffType.ATK, value:num, category: BuffCategory.EXTRA} ]; - if(!this.hasOneShot){ + if(!this.hasOneShot){ //only add oneshot buff if it isnt already included extraBuffs.push({type:BuffType.ONESHOT, value:1, category: BuffCategory.EXTRA, string: "Your hits hurt \n100x more but \nyour max health \nis set to 1 "}); }; diff --git a/src/shattered_sword/Scenes/GameLevel.ts b/src/shattered_sword/Scenes/GameLevel.ts index 16d7666..307973b 100644 --- a/src/shattered_sword/Scenes/GameLevel.ts +++ b/src/shattered_sword/Scenes/GameLevel.ts @@ -76,6 +76,9 @@ export default class GameLevel extends Scene { protected expLabel : Label; protected expBar: Rect; + //level label + protected playerLevelLabel : Label; + //shield label protected shieldLabel : Label; protected shieldBar: Rect; @@ -144,7 +147,7 @@ export default class GameLevel extends Scene { this.load.audio("jump", "shattered_sword_assets/sounds/jump2.wav"); this.load.audio("hurt", "shattered_sword_assets/sounds/hurt.wav"); this.load.audio("die", "shattered_sword_assets/sounds/die.wav"); - + this.load.audio("level_up","shattered_sword_assets/sounds/level_up.wav"); this.load.image("knife", "shattered_sword_assets/sprites/knife.png"); @@ -206,6 +209,7 @@ export default class GameLevel extends Scene { // Initialize the timers + /* this.respawnTimer = new Timer(1000, () => { if(GameLevel.livesCount === 0){ this.sceneManager.changeToScene(MainMenu); @@ -215,6 +219,7 @@ export default class GameLevel extends Scene { this.player.unfreeze(); } }); + */ let enemies = this.rmg.getEnemies(); //may have to move this to start scene in gameLevel @@ -392,6 +397,11 @@ export default class GameLevel extends Scene { this.expBar.fillWidth = (playerAI.CURRENT_EXP/playerAI.MAX_EXP)*150; // this.expLabel.sizeToText(); + //update level ui + this.playerLevelLabel.text = "lv." + playerAI.level; + //update lives ui + this.livesCountLabel.text = "Lives: " + playerAI.lives; + //move background @@ -529,7 +539,12 @@ export default class GameLevel extends Scene { this.shieldBar.borderWidth = 3; this.shieldBar.color = Color.ORANGE; - this.expLabel =