added regular and special buffs, modified weapon atk and cooldown

This commit is contained in:
OfficialCHenry 2022-04-25 21:09:21 -04:00
parent 59a41ed468
commit faa106c5ca
6 changed files with 126 additions and 159 deletions

View File

@ -7,8 +7,8 @@
"displayName": "Knife", "displayName": "Knife",
"animationSprite": "slice", "animationSprite": "slice",
"spriteKey": "knife", "spriteKey": "knife",
"damage": 10, "damage": 40,
"cooldown": 30, "cooldown": 300,
"useVolume": 0 "useVolume": 0
} }
] ]

View File

@ -19,11 +19,17 @@ export default class BattleManager {
if(this.enemies.length != 0){ if(this.enemies.length != 0){
for (let enemy of this.enemies) { for (let enemy of this.enemies) {
if (weapon.hits(enemy.owner)) { if (weapon.hits(enemy.owner)) {
let player = (<PlayerController>this.players[0]);
if(player.fullHpBonus){
enemy.damage(Math.round( weapon.type.damage * (<PlayerController>this.players[0]).CURRENT_ATK/10));
}
else{
enemy.damage(Math.round(weapon.type.damage * (<PlayerController>this.players[0]).CURRENT_ATK/100)); enemy.damage(Math.round(weapon.type.damage * (<PlayerController>this.players[0]).CURRENT_ATK/100));
}
//console.log("enemy took dmg"); //console.log("enemy took dmg");
//add checking for each onhit buff here //add checking for each onhit buff here
let player = (<PlayerController>this.players[0]);
//DOTS //DOTS
if(player.hasBleed){ if(player.hasBleed){
@ -36,9 +42,7 @@ export default class BattleManager {
(<EnemyAI>enemy).burnCounter =5 ; (<EnemyAI>enemy).burnCounter =5 ;
} }
if(player.hasDoubleStrike){
enemy.damage(Math.round(weapon.type.damage * (<PlayerController>this.players[0]).CURRENT_ATK/200));
}
if(player.hasLifesteal){ if(player.hasLifesteal){
player.addHealth(Math.round(weapon.type.damage * player.CURRENT_ATK/100 * player.lifestealratio)); player.addHealth(Math.round(weapon.type.damage * player.CURRENT_ATK/100 * player.lifestealratio));
} }

View File

@ -36,13 +36,14 @@ export enum PlayerStates {
} }
export enum BuffType { export enum BuffType {
ATK = "attack", FLAT_ATK = "attack",
PERCENT_ATK = "percent_attack",
DEF = "defence", DEF = "defence",
HEALTH = "health", FLAT_HEALTH = "health",
PERCENT_HEALTH = "percent_health",
SPEED = "speed", SPEED = "speed",
RANGE = "range", RANGE = "range",
ATKSPEED = "attackspeed", ATKSPEED = "attackspeed",
DOUBLESTRIKE = "doublestrike",
POISON = "poison", POISON = "poison",
BLEED = "bleed", BLEED = "bleed",
BURN = "burn", BURN = "burn",
@ -53,7 +54,7 @@ export enum BuffType {
LIFESTEALBUFF = "lifestealbuff", LIFESTEALBUFF = "lifestealbuff",
EXTRALIFE= "extralife", EXTRALIFE= "extralife",
ONESHOT = "oneshot", ONESHOT = "oneshot",
JUMP = "jump" FULLHPBONUSDMG = "fullhpbonusdmg"
} }
@ -124,15 +125,16 @@ export default class PlayerController extends StateMachineAI implements BattlerA
hasBurn : Boolean = false; hasBurn : Boolean = false;
hasShield : Boolean = false; hasShield : Boolean = false;
shieldDamage : number = 1; shieldDamage : number = 1;
hasDoubleStrike : Boolean = false;
hasLifesteal : Boolean = false; hasLifesteal : Boolean = false;
lifestealratio : number = 0; //percent of damage to steal lifestealratio : number = 0; //percent of damage to steal
hasOneShot: Boolean = false; hasOneShot: Boolean = false;
extraDotDmg : number =0; extraDotDmg : number =0;
lives: number = 1; lives: number = 1;
cooldownMultiplier : number = 1; cooldownMultiplier : number = 1;
fullHpBonus: Boolean = false;
//TODO - add new buffs here //TODO - add new buffs here
/*
CURRENT_BUFFS: { CURRENT_BUFFS: {
atk: number; //flat value to add to weapon atk: number; //flat value to add to weapon
hp: number; //flat value hp: number; //flat value
@ -140,6 +142,7 @@ export default class PlayerController extends StateMachineAI implements BattlerA
speed: number; //flat value speed: number; //flat value
range:number; //range will be a multiplier value: 1.5 = 150% range range:number; //range will be a multiplier value: 1.5 = 150% range
} }
*/
@ -155,7 +158,7 @@ export default class PlayerController extends StateMachineAI implements BattlerA
this.lookDirection = new Vec2(); this.lookDirection = new Vec2();
this.CURRENT_BUFFS = {hp:0, atk:0, def:0, speed:0, range:0}; //this.CURRENT_BUFFS = {hp:0, atk:0, def:0, speed:0, range:0};
//i frame timer //i frame timer
@ -302,8 +305,8 @@ export default class PlayerController extends StateMachineAI implements BattlerA
*/ */
addHealth(health : number){ addHealth(health : number){
this.CURRENT_HP += health; this.CURRENT_HP += health;
if(this.CURRENT_HP > this.MAX_HP + this.CURRENT_BUFFS.hp){ if(this.CURRENT_HP > this.MAX_HP ){
this.CURRENT_HP = this.MAX_HP + this.CURRENT_BUFFS.hp; this.CURRENT_HP = this.MAX_HP ;
} }
} }
@ -322,13 +325,44 @@ export default class PlayerController extends StateMachineAI implements BattlerA
this.emitter.fireEvent(Player_Events.GIVE_BUFF); this.emitter.fireEvent(Player_Events.GIVE_BUFF);
} }
} }
//TODO - balance buff value generation
/** /**
* returns an array of three randomly generated buffs * generates an array of regular buffs
* @param val optional value to give buff * @param val optional value to give buff
* @returns array of three Buffs * @returns array of three buffs
*/ */
generateBuffs( val? : number) : Buff[]{ generateRegularBuffs( val? : number) : Buff[]{
//random number from 5 to 15 if no value given
let num = Math.floor(Math.random() *10) +5;
num = Math.round(num);
if(typeof val !== 'undefined'){
num = val;
}
let buffs = new Array();
buffs.push({type:BuffType.FLAT_ATK, value:num, category: BuffCategory.EXTRA},
{type:BuffType.SPEED, value:num, category: BuffCategory.EXTRA},
{type:BuffType.FLAT_HEALTH, value:num, category: BuffCategory.SHIELD},
{type:BuffType.RANGE, value:num/10, category: BuffCategory.ATTACK},
{type:BuffType.ATKSPEED, value:num, category: BuffCategory.ATTACK},
);
//shuffle pool of buffs
buffs.sort(() => 0.5 - Math.random());
// Get sub-array of first 3 elements after shuffled
let selected = buffs.slice(0, 3); //3 buff categories
return selected;
}
/**
* generates an array of special buffs
* @param val optional value to give the buff
* @returns array of 3 Buffs
*/
generateSpecialBuffs( val? : number) : Buff[]{
//shuffle pool of buff categories //shuffle pool of buff categories
PlayerController.buffPool.sort(() => 0.5 - Math.random()); PlayerController.buffPool.sort(() => 0.5 - Math.random());
@ -342,61 +376,59 @@ export default class PlayerController extends StateMachineAI implements BattlerA
//TODO - implement better buff genertion - some buffs dont want multiple of //TODO - implement better buff genertion - some buffs dont want multiple of
let attackBuffs : Buff[] = [ let attackBuffs : Buff[] = [
{type:BuffType.RANGE, value:num/10, category: BuffCategory.ATTACK}, {type:BuffType.PERCENT_ATK, value:num/100, category: BuffCategory.ATTACK, string:"\n\nIncrease Attack \nby"+num+"%"}
{type:BuffType.ATKSPEED, value:num, category: BuffCategory.ATTACK},
]; ];
if(!this.hasDoubleStrike){
attackBuffs.push({type:BuffType.DOUBLESTRIKE, value:num, category: BuffCategory.ATTACK, string:"your attacks are \nfollowed by a \nweaker strike"});
}
let dotBuffs : Buff[] = [ let dotBuffs : Buff[] = [
]; ];
if(!this.hasBleed){ if(!this.hasBleed){
dotBuffs.push({type:BuffType.BLEED, value:1, category: BuffCategory.DOT, string: "Your hits \napply Bleed"}); dotBuffs.push({type:BuffType.BLEED, value:1, category: BuffCategory.DOT, string: "\n\nYour hits \napply Bleed"});
} }
if(!this.hasBurn){ if(!this.hasBurn){
dotBuffs.push({type:BuffType.BURN, value:1, category: BuffCategory.DOT, string: "Your hits \napply Burn"}); dotBuffs.push({type:BuffType.BURN, value:1, category: BuffCategory.DOT, string: "\n\nYour hits \napply Burn"});
} }
if(!this.hasPoison){ if(!this.hasPoison){
dotBuffs.push({type:BuffType.POISON, value:1, category: BuffCategory.DOT, string: "Your hits \napply poison"}); dotBuffs.push({type:BuffType.POISON, value:1, category: BuffCategory.DOT, string: "\n\nYour hits \napply poison"});
} }
//only add extra dot if at least one dot is acquired //only add extra dot if at least one dot is acquired
for(let i=dotBuffs.length; i< 3 ; i++){ for(let i=dotBuffs.length; i< 3 ; i++){
dotBuffs.push({type:BuffType.EXTRA_DOT, value:num, category: BuffCategory.DOT, string: "increase your \nDOT damage"}); dotBuffs.push({type:BuffType.EXTRA_DOT, value:num, category: BuffCategory.DOT, string: "\n\nIncrease your \nDOT damage"});
} }
let shieldBuffs : Buff[] = [ let shieldBuffs : Buff[] = [
{type:BuffType.HEALTH, value:num, category: BuffCategory.SHIELD}, {type:BuffType.PERCENT_HEALTH, value:num/100, category: BuffCategory.SHIELD, string: "\n\nIncrease max hp \nby "+num+"%"},
]; ];
//if player doesnt have shield buff, give them the option, otherwise give buff shield option //if player doesnt have shield buff, give them the option, otherwise give buff shield option
if(!this.hasShield){ if(!this.hasShield){
shieldBuffs.push({type:BuffType.SHIELD, value:1, category: BuffCategory.SHIELD, string: "Gain Shield \nWhen Damaged \n Shields return \nthe damage taken \nto attacker"}); shieldBuffs.push({type:BuffType.SHIELD, value:1, category: BuffCategory.SHIELD, string: "\n\nGain Shield \nWhen Damaged \n Shields return \nthe damage taken \nto attacker"});
} }
else{ else{
shieldBuffs.push({type:BuffType.SHIELD_DMG, value:num, category: BuffCategory.SHIELD, string: "increase damage \nreturned by shield"}); shieldBuffs.push({type:BuffType.SHIELD_DMG, value:num, category: BuffCategory.SHIELD, string: "\n\nIncrease damage \nreturned by shield"});
} }
let healthBuffs : Buff[] = [ let healthBuffs : Buff[] = [
{type:BuffType.DEF, value: num/10, category: BuffCategory.HEALTH, string: "decrease damage by"+num/10+"%"} {type:BuffType.DEF, value: num/100, category: BuffCategory.HEALTH, string: "\n\nDecrease damage \ntaken by "+num+"%"}
]; ];
if(!this.fullHpBonus){
healthBuffs.push({type:BuffType.FULLHPBONUSDMG, value:1, category:BuffCategory.HEALTH, string:"\n\nDeal 10x damage \n when at full HP"})
}
if(!this.hasLifesteal){ if(!this.hasLifesteal){
healthBuffs.push({type:BuffType.LIFESTEAL, value:1, category: BuffCategory.HEALTH, string:"Gain lifesteal"}); healthBuffs.push({type:BuffType.LIFESTEAL, value:1, category: BuffCategory.HEALTH, string:"\n\nGain lifesteal"});
} }
else{ else{
healthBuffs.push({type:BuffType.LIFESTEALBUFF, value:num/10, category: BuffCategory.HEALTH, string:"Increase Lifesteal \nstrength by "+ num+ "%"}); healthBuffs.push({type:BuffType.LIFESTEALBUFF, value:num/100, category: BuffCategory.HEALTH, string:"\n\nIncrease Lifesteal \nstrength by "+ num+ "%"});
} }
let extraBuffs : Buff[] = [ let extraBuffs : Buff[] = [
{type:BuffType.EXTRALIFE, value:1, category: BuffCategory.EXTRA, string: "Gain an \nExtra Life"}, {type:BuffType.EXTRALIFE, value:1, category: BuffCategory.EXTRA, string: "\n\nGain an \nExtra Life"},
{type:BuffType.SPEED, value:num, category: BuffCategory.EXTRA},
{type:BuffType.ATK, value:num, category: BuffCategory.EXTRA}
]; ];
if(!this.hasOneShot){ //only add oneshot buff if it isnt already included 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 "}); extraBuffs.push({type:BuffType.ONESHOT, value:1, category: BuffCategory.EXTRA, string: "\n\nYour hits hurt \n100x more but \nyour max health \nis set to 1 "});
}; };
@ -407,7 +439,7 @@ export default class PlayerController extends StateMachineAI implements BattlerA
case BuffCategory.ATTACK: case BuffCategory.ATTACK:
attackBuffs.sort(() => 0.5 - Math.random()); attackBuffs.sort(() => 0.5 - Math.random());
if(attackBuffs.length == 0){ if(attackBuffs.length == 0){
selected.push({type:BuffType.RANGE, value:num/10, category: BuffCategory.ATTACK}); selected.push({type:BuffType.PERCENT_HEALTH, value:num/100, category: BuffCategory.ATTACK, string: "\n\nIncrease attack \nby"+num+"%"});
} }
else{ else{
selected.push(attackBuffs.pop()); selected.push(attackBuffs.pop());
@ -416,7 +448,7 @@ export default class PlayerController extends StateMachineAI implements BattlerA
case BuffCategory.DOT: case BuffCategory.DOT:
dotBuffs.sort(() => 0.5 - Math.random()); dotBuffs.sort(() => 0.5 - Math.random());
if(dotBuffs.length == 0){ if(dotBuffs.length == 0){
selected.push({type:BuffType.EXTRA_DOT, value:num, category: BuffCategory.DOT, string: "increase your \nDOT damage"}); selected.push({type:BuffType.EXTRA_DOT, value:num, category: BuffCategory.DOT, string: "\n\nIncrease your \nDOT damage"});
} }
else{ else{
selected.push(dotBuffs.pop()); selected.push(dotBuffs.pop());
@ -425,7 +457,7 @@ export default class PlayerController extends StateMachineAI implements BattlerA
case BuffCategory.EXTRA: case BuffCategory.EXTRA:
extraBuffs.sort(() => 0.5 - Math.random()); extraBuffs.sort(() => 0.5 - Math.random());
if(extraBuffs.length ==0 ){ if(extraBuffs.length ==0 ){
selected.push({type:BuffType.EXTRALIFE, value:1, category: BuffCategory.EXTRA, string: "Gain an \nExtra Life"}); selected.push({type:BuffType.EXTRALIFE, value:1, category: BuffCategory.EXTRA, string: "\n\nGain an \nExtra Life"});
} }
else{ else{
selected.push(extraBuffs.pop()); selected.push(extraBuffs.pop());
@ -434,7 +466,7 @@ export default class PlayerController extends StateMachineAI implements BattlerA
case BuffCategory.HEALTH: case BuffCategory.HEALTH:
healthBuffs.sort(() => 0.5 - Math.random()); healthBuffs.sort(() => 0.5 - Math.random());
if(healthBuffs.length == 0){ if(healthBuffs.length == 0){
selected.push({type:BuffType.DEF, value: num/10, category: BuffCategory.HEALTH, string: "decrease damage\n taken by "+num*10+"%"}); selected.push({type:BuffType.DEF, value: num/100, category: BuffCategory.HEALTH, string: "\n\nDecrease damage\n taken by "+num+"%"});
} }
else{ else{
selected.push(healthBuffs.pop()); selected.push(healthBuffs.pop());
@ -443,7 +475,7 @@ export default class PlayerController extends StateMachineAI implements BattlerA
case BuffCategory.SHIELD: case BuffCategory.SHIELD:
shieldBuffs.sort(() => 0.5 - Math.random()); shieldBuffs.sort(() => 0.5 - Math.random());
if(shieldBuffs.length ==0 ){ if(shieldBuffs.length ==0 ){
selected.push({type:BuffType.HEALTH, value:num, category: BuffCategory.SHIELD}); selected.push({type:BuffType.FLAT_HEALTH, value:num, category: BuffCategory.SHIELD});
} }
else{ else{
selected.push(shieldBuffs.pop()); selected.push(shieldBuffs.pop());
@ -455,43 +487,61 @@ export default class PlayerController extends StateMachineAI implements BattlerA
return selected; return selected;
} }
/** /**
* Add given buff to the player * Add given buff to the player
* @param buff Given buff * @param buff Given buff
* @param init whether or not this is being used during the initialization of the player
*/ */
addBuff(buff: Buff): void { addBuff(buff: Buff, init? :Boolean ): void {
//add buff to array of applied buffs if not being used to init
if(init === undefined){
//increase weight of selected buff category //increase weight of selected buff category
PlayerController.buffPool.push(buff.category); PlayerController.buffPool.push(buff.category);
//add buff to array of applied buffs
PlayerController.appliedBuffs.push(buff); PlayerController.appliedBuffs.push(buff);
}
else if (!init){
//increase weight of selected buff category
PlayerController.buffPool.push(buff.category);
PlayerController.appliedBuffs.push(buff);
}
// TODO // TODO
let item = this.inventory.getItem(); let item = this.inventory.getItem();
switch(buff.type){ switch(buff.type){
case BuffType.HEALTH: case BuffType.FLAT_HEALTH:
this.CURRENT_BUFFS.hp += buff.value; //this.CURRENT_BUFFS.hp += buff.value;
this.CURRENT_HP += buff.value; this.CURRENT_HP += buff.value;
this.MAX_HP += buff.value;
break; break;
case BuffType.ATK: case BuffType.PERCENT_HEALTH:
//TODO - decide what to do with atk stat this.CURRENT_HP *= (1+buff.value);
this.CURRENT_BUFFS.atk += buff.value; this.MAX_HP *= (1+buff.value) ;
this.CURRENT_HP = Math.round(this.CURRENT_HP);
this.MAX_HP = Math.round(this.MAX_HP);
break;
case BuffType.FLAT_ATK:
this.CURRENT_ATK +=buff.value; this.CURRENT_ATK +=buff.value;
break; break;
case BuffType.PERCENT_ATK:
this.CURRENT_ATK *=buff.value;
this.CURRENT_ATK = Math.round(this.CURRENT_ATK);
break;
case BuffType.SPEED: case BuffType.SPEED:
this.CURRENT_BUFFS.speed += buff.value;
this.speed += buff.value; this.speed += buff.value;
break; break;
case BuffType.DEF: case BuffType.DEF:
this.damage_multiplier *= (1-buff.value); this.damage_multiplier *= (1-buff.value);
break; break;
case BuffType.RANGE: case BuffType.RANGE:
this.CURRENT_BUFFS.range += buff.value; //this.CURRENT_BUFFS.range += buff.value;
if (item) { if (item) {
(<Weapon>item).EXTRA_RANGE += buff.value; (<Weapon>item).EXTRA_RANGE += buff.value;
} }
break; break;
//TODO
case BuffType.BLEED: case BuffType.BLEED:
this.hasBleed = true; this.hasBleed = true;
break; break;
@ -515,11 +565,8 @@ export default class PlayerController extends StateMachineAI implements BattlerA
(<Weapon>item).cooldownTimer = new Timer((<Weapon>item).cooldown * this.cooldownMultiplier ) (<Weapon>item).cooldownTimer = new Timer((<Weapon>item).cooldown * this.cooldownMultiplier )
} }
break; break;
case BuffType.DOUBLESTRIKE:
//TODO -
break;
case BuffType.SHIELD_DMG: case BuffType.SHIELD_DMG:
this.shieldDamage += buff.value/10 ; this.shieldDamage += buff.value ;
break; break;
case BuffType.EXTRALIFE: case BuffType.EXTRALIFE:
this.lives ++; this.lives ++;
@ -536,6 +583,9 @@ export default class PlayerController extends StateMachineAI implements BattlerA
this.CURRENT_HP = 1; this.CURRENT_HP = 1;
this.CURRENT_ATK *= 100; this.CURRENT_ATK *= 100;
break; break;
case BuffType.FULLHPBONUSDMG:
this.fullHpBonus = true;
break;
} }
} }

View File

@ -15,7 +15,7 @@ export default abstract class InAir extends PlayerState {
(<Sprite>this.owner).invertX = MathUtils.sign(dir.x) < 0; (<Sprite>this.owner).invertX = MathUtils.sign(dir.x) < 0;
} }
this.parent.velocity.x += dir.x * (this.parent.speed+this.parent.CURRENT_BUFFS.speed)/3.5 - 0.3*this.parent.velocity.x; this.parent.velocity.x += dir.x * (this.parent.speed)/3.5 - 0.3*this.parent.velocity.x;
if(this.owner.onGround){ if(this.owner.onGround){

View File

@ -32,7 +32,7 @@ export default class Walk extends OnGround {
this.finished(PlayerStates.IDLE); this.finished(PlayerStates.IDLE);
} }
this.parent.velocity.x = dir.x * (this.parent.speed + this.parent.CURRENT_BUFFS.speed); this.parent.velocity.x = dir.x * (this.parent.speed );
super.update(deltaT); super.update(deltaT);
} }

View File

@ -159,6 +159,7 @@ export default class GameLevel extends Scene {
this.load.audio("hurt", "shattered_sword_assets/sounds/hurt.wav"); this.load.audio("hurt", "shattered_sword_assets/sounds/hurt.wav");
this.load.audio("die", "shattered_sword_assets/sounds/die.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.audio("level_up","shattered_sword_assets/sounds/level_up.wav");
//神社じんじゃまつり by Second Dimension Imagination Group
this.load.audio("level_music","shattered_sword_assets/sounds/bgm1.mp3") this.load.audio("level_music","shattered_sword_assets/sounds/bgm1.mp3")
@ -195,9 +196,6 @@ export default class GameLevel extends Scene {
//call super after extending story with scene
// Do the game level standard initializations // Do the game level standard initializations
this.initViewport(); this.initViewport();
this.initLayers(); this.initLayers();
@ -226,36 +224,10 @@ export default class GameLevel extends Scene {
this.battleManager.setEnemies(this.enemies.map(enemy => <BattlerAI>enemy._ai)); this.battleManager.setEnemies(this.enemies.map(enemy => <BattlerAI>enemy._ai));
// Initialize the timers
/*
this.respawnTimer = new Timer(1000, () => {
if(GameLevel.livesCount === 0){
this.sceneManager.changeToScene(MainMenu);
} else {
this.respawnPlayer();
this.player.enablePhysics();
this.player.unfreeze();
}
});
*/
let enemies = this.rmg.getEnemies(); let enemies = this.rmg.getEnemies();
//may have to move this to start scene in gameLevel //may have to move this to start scene in gameLevel
this.initializeEnemies(enemies); this.initializeEnemies(enemies);
/*
this.levelTransitionTimer = new Timer(500);
this.levelEndTimer = new Timer(3000, () => {
// After the level end timer ends, fade to black and then go to the next scene
this.levelTransitionScreen.tweens.play("fadeIn");
});
*/
// Start the black screen fade out
/*
this.levelTransitionScreen.tweens.play("fadeOut");
*/
this.gameStateStack = new Stack(); this.gameStateStack = new Stack();
this.setGameState(GameState.GAMING); this.setGameState(GameState.GAMING);
@ -325,23 +297,23 @@ export default class GameLevel extends Scene {
break; break;
case Player_Events.GIVE_BUFF: case Player_Events.GIVE_BUFF:
this.buffs = (<PlayerController>this.player._ai).generateBuffs(); this.buffs = (<PlayerController>this.player._ai).generateRegularBuffs();
if(this.buffs[0].string === undefined){ if(this.buffs[0].string === undefined){
this.buffLabel1.text = "Increase "+this.buffs[0].type + "\n by \n"+this.buffs[0].value; this.buffLabel1.text = "\n\nIncrease "+this.buffs[0].type + "\n by "+this.buffs[0].value;
} }
else{ else{
this.buffLabel1.text = this.buffs[0].string; this.buffLabel1.text = this.buffs[0].string;
} }
if(this.buffs[1].string === undefined){ if(this.buffs[1].string === undefined){
this.buffLabel2.text = "Increase "+this.buffs[1].type + "\n by \n"+this.buffs[1].value; this.buffLabel2.text = "\n\nIncrease "+this.buffs[1].type + "\n by "+this.buffs[1].value;
} }
else{ else{
this.buffLabel2.text = this.buffs[1].string; this.buffLabel2.text = this.buffs[1].string;
} }
if(this.buffs[2].string === undefined){ if(this.buffs[2].string === undefined){
this.buffLabel3.text = "Increase "+this.buffs[2].type + "\n by \n"+this.buffs[2].value; this.buffLabel3.text = "\n\nIncrease "+this.buffs[2].type + "\n by "+this.buffs[2].value;
} }
else{ else{
this.buffLabel3.text = this.buffs[2].string; this.buffLabel3.text = this.buffs[2].string;
@ -431,7 +403,7 @@ export default class GameLevel extends Scene {
//update health UI //update health UI
let playerAI = (<PlayerController>this.player.ai); let playerAI = (<PlayerController>this.player.ai);
this.healthLabel.text = "Health: "+ Math.round(playerAI.CURRENT_HP) +'/' + Math.round(playerAI.MAX_HP +playerAI.CURRENT_BUFFS.hp); this.healthLabel.text = "Health: "+ Math.round(playerAI.CURRENT_HP) +'/' + Math.round(playerAI.MAX_HP );
this.healthBar.size.set(playerAI.MAX_HP*1.5, 10); this.healthBar.size.set(playerAI.MAX_HP*1.5, 10);
this.healthBar.position.set(playerAI.MAX_HP*0.75+20, 20); this.healthBar.position.set(playerAI.MAX_HP*0.75+20, 20);
this.healthBar.fillWidth = playerAI.CURRENT_HP*1.5; this.healthBar.fillWidth = playerAI.CURRENT_HP*1.5;
@ -607,65 +579,6 @@ export default class GameLevel extends Scene {
this.seedLabel.font = "PixelSimple"; this.seedLabel.font = "PixelSimple";
// End of level label (start off screen)
/*
this.levelEndLabel = <Label>this.add.uiElement(UIElementType.LABEL, "UI", {position: new Vec2(-300, 200), text: "Level Complete"});
this.levelEndLabel.size.set(1200, 60);
this.levelEndLabel.borderRadius = 0;
this.levelEndLabel.backgroundColor = new Color(34, 32, 52);
this.levelEndLabel.textColor = Color.WHITE;
this.levelEndLabel.fontSize = 48;
this.levelEndLabel.font = "PixelSimple";
// Add a tween to move the label on screen
this.levelEndLabel.tweens.add("slideIn", {
startDelay: 0,
duration: 1000,
effects: [
{
property: TweenableProperties.posX,
start: -300,
end: 300,
ease: EaseFunctionType.OUT_SINE
}
]
});
*/
/*
this.levelTransitionScreen = <Rect>this.add.graphic(GraphicType.RECT, "UI", {position: new Vec2(300, 200), size: new Vec2(600, 400)});
this.levelTransitionScreen.color = new Color(34, 32, 52);
this.levelTransitionScreen.alpha = 1;
this.levelTransitionScreen.tweens.add("fadeIn", {
startDelay: 0,
duration: 1000,
effects: [
{
property: TweenableProperties.alpha,
start: 0,
end: 1,
ease: EaseFunctionType.IN_OUT_QUAD
}
],
onEnd: Player_Events.LEVEL_END
});
this.levelTransitionScreen.tweens.add("fadeOut", {
startDelay: 0,
duration: 1000,
effects: [
{
property: TweenableProperties.alpha,
start: 1,
end: 0,
ease: EaseFunctionType.IN_OUT_QUAD
}
],
onEnd: Player_Events.LEVEL_START
});
*/
this.add.sprite("black", "pause"); this.add.sprite("black", "pause");
this.add.sprite("black", "story"); this.add.sprite("black", "story");
@ -707,7 +620,7 @@ export default class GameLevel extends Scene {
this.buffLabel3 = <Label>this.add.uiElement(UIElementType.LABEL, "buffLayer", {position: new Vec2(this.buffButton3.position.x, this.buffButton3.position.y - 40), text:"buffLabel3"}); this.buffLabel3 = <Label>this.add.uiElement(UIElementType.LABEL, "buffLayer", {position: new Vec2(this.buffButton3.position.x, this.buffButton3.position.y - 40), text:"buffLabel3"});
this.buffLabel3.fontSize = 20; this.buffLabel3.fontSize = 20;
this.buffs = (<PlayerController>this.player._ai).generateBuffs(); this.buffs = (<PlayerController>this.player._ai).generateRegularBuffs();
this.buffLayer.disable(); this.buffLayer.disable();
@ -981,7 +894,7 @@ export default class GameLevel extends Scene {
protected respawnPlayer(): void { protected respawnPlayer(): void {
InputWrapper.enableInput(); InputWrapper.enableInput();
this.player.position.copy(this.startpos); this.player.position.copy(this.startpos);
(<PlayerController>this.player._ai).CURRENT_HP = (<PlayerController>this.player._ai).MAX_HP + (<PlayerController>this.player._ai).CURRENT_BUFFS.hp; (<PlayerController>this.player._ai).CURRENT_HP = (<PlayerController>this.player._ai).MAX_HP ;
//(<PlayerController>this.player._ai).lives --; //(<PlayerController>this.player._ai).lives --;
} }