added dotDamage

This commit is contained in:
OfficialCHenry 2022-05-09 16:29:58 -04:00
parent fa8ba106d8
commit c2617f531c
5 changed files with 36 additions and 24 deletions

File diff suppressed because one or more lines are too long

View File

@ -17,7 +17,7 @@ export default class BullAI extends EnemyAI {
}
collideWithPlayer(player: PlayerController): void {
if (this.isAttacking && !player.invincible) {
if (this.isAttacking ) {
player.bleedCounter += 3;
}
player.damage(10);

View File

@ -10,7 +10,7 @@ export default class SnakeAI extends EnemyAI {
}
collideWithPlayer(player: PlayerController): void {
if (this.isAttacking && !player.invincible ) {
if (this.isAttacking ) {
player.poisonCounter = 5;
}
player.damage(10);

View File

@ -22,7 +22,7 @@ export default class TigerAI extends EnemyAI {
}
collideWithPlayer(player: PlayerController): void {
if (this.isAttacking && !player.invincible) {
if (this.isAttacking ) {
player.bleedCounter += 3;
}
player.damage(10);

View File

@ -180,8 +180,6 @@ export default class PlayerController extends StateMachineAI implements BattlerA
PlayerController.appliedBuffs.forEach(buff => this.addBuff(buff,true));
}
//to test the buffs
//this.addBuff( {type:BuffType.HEALTH, value:1} );
//this.addBuff({type:BuffType.BURN, value:1, category:BuffCategory.DOT});
@ -256,19 +254,22 @@ export default class PlayerController extends StateMachineAI implements BattlerA
//check dot effects
if(this.burnTimer.isStopped() && this.burnCounter >0){
console.log("player is burnt");
this.burnCounter --;
this.burnTimer.start();
this.damage(5);
this.dotDamage(5);
}
if(this.poisonTimer.isStopped() && this.poisonCounter >0){
console.log("player is poisoned");
this.poisonCounter --;
this.poisonTimer.start();
this.damage( Math.round(this.CURRENT_HP/33) );
this.dotDamage( Math.round(this.CURRENT_HP/33) );
}
if(this.bleedTimer.isStopped() && this.bleedCounter >0){
console.log("player is bleeding");
this.bleedCounter --;
this.bleedTimer.start();
this.damage( 2 + Math.round(this.MAX_HP/50) );
this.dotDamage( 2 + Math.round(this.MAX_HP/50) );
}
}
@ -296,7 +297,7 @@ export default class PlayerController extends StateMachineAI implements BattlerA
//console.log("hurt anim");
(<AnimatedSprite>this.owner).animation.play("HURT" );
damage *= this.damage_multiplier;
damage = parseFloat(damage.toPrecision(2));
damage = Math.round(damage);
this.CURRENT_HP -= damage;
this.emitter.fireEvent(GameEventType.PLAY_SOUND, {key: "hurt", loop: false, holdReference: false});
@ -320,6 +321,31 @@ export default class PlayerController extends StateMachineAI implements BattlerA
}
}
dotDamage(damage: number): void {
if (PlayerController.godMode) {
//console.log("godmode");
return;
}
(<AnimatedSprite>this.owner).animation.play("HURT" );
damage *= this.damage_multiplier;
damage = Math.round(damage);
this.CURRENT_HP -= damage;
this.emitter.fireEvent(GameEventType.PLAY_SOUND, {key: "hurt", loop: false, holdReference: false});
if(this.CURRENT_HP <= 0){
this.lives --;
(<AnimatedSprite>this.owner).animation.play("DYING");
(<AnimatedSprite>this.owner).animation.queue("DEAD", true, Player_Events.PLAYER_KILLED);
this.emitter.fireEvent(Player_Events.PLAYER_KILLED);
}
}
/**
* gives the player a certain amount of shield
* @param shield amount of shield to add to player