added range and dmg buff
This commit is contained in:
parent
4c390f8cd5
commit
66c698dd43
|
@ -17,8 +17,7 @@ export default class BattleManager {
|
|||
if(this.enemies.length != 0){
|
||||
for (let enemy of this.enemies) {
|
||||
if (weapon.hits(enemy.owner)) {
|
||||
enemy.damage(weapon.type.damage);
|
||||
|
||||
enemy.damage(weapon.type.damage + weapon.EXTRA_DAMAGE);
|
||||
//console.log("enemy took dmg");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,6 +25,10 @@ export default class Weapon extends Item {
|
|||
/** The cooldown timer for this weapon's use */
|
||||
cooldownTimer: Timer;
|
||||
|
||||
EXTRA_DAMAGE : number; //flat extra damage value
|
||||
|
||||
EXTRA_RANGE: number ; //percentage value -> .1 = 10% extra range
|
||||
|
||||
constructor(sprite: Sprite, type: WeaponType, battleManager: BattleManager){
|
||||
super(sprite);
|
||||
|
||||
|
@ -42,6 +46,8 @@ export default class Weapon extends Item {
|
|||
|
||||
// Create the cooldown timer
|
||||
this.cooldownTimer = new Timer(type.cooldown);
|
||||
this.EXTRA_DAMAGE = 0;
|
||||
this.EXTRA_RANGE=0;
|
||||
}
|
||||
|
||||
// @override
|
||||
|
@ -58,7 +64,7 @@ export default class Weapon extends Item {
|
|||
this.assets = this.type.createRequiredAssets(this.sprite.getScene());
|
||||
|
||||
// Do a type specific weapon animation
|
||||
this.type.doAnimation(user, direction, ...this.assets);
|
||||
this.type.doAnimation(user, direction, this.EXTRA_RANGE, ...this.assets);
|
||||
|
||||
// Apply damage
|
||||
this.battleManager.handleInteraction(userType, this);
|
||||
|
|
|
@ -15,7 +15,12 @@ export default class Slice extends WeaponType {
|
|||
this.useVolume = options.useVolume;
|
||||
}
|
||||
|
||||
doAnimation(attacker: GameNode, direction: Vec2, sliceSprite: AnimatedSprite): void {
|
||||
doAnimation(attacker: GameNode, direction: Vec2, extraRange:number,sliceSprite: AnimatedSprite): void {
|
||||
//TODO-
|
||||
//4 to scale up the default sprite - may be different later depending on atk anim
|
||||
sliceSprite.scaleX = 4*(1+extraRange); //might have to add extra range to y as well
|
||||
sliceSprite.scaleY = 4;
|
||||
|
||||
// Rotate this with the game node
|
||||
// TODO - need to rotate the anim properly
|
||||
sliceSprite.rotation = attacker.rotation;
|
||||
|
@ -24,8 +29,7 @@ export default class Slice extends WeaponType {
|
|||
//scale = num of pixels between center of sprite and atk anim
|
||||
sliceSprite.position = attacker.position.clone().add(direction.scaled(65));
|
||||
|
||||
sliceSprite.scaleX = 4;
|
||||
sliceSprite.scaleY = 4;
|
||||
|
||||
// Play the slice animation w/o loop, but queue the normal animation
|
||||
sliceSprite.animation.play("SLICE");
|
||||
sliceSprite.animation.queue("NORMAL", true);
|
||||
|
|
|
@ -15,6 +15,7 @@ import InventoryManager from "../GameSystems/InventoryManager";
|
|||
import Input from "../../Wolfie2D/Input/Input";
|
||||
import BattlerAI from "../AI/BattlerAI";
|
||||
import MathUtils from "../../Wolfie2D/Utils/MathUtils";
|
||||
import Weapon from "../GameSystems/items/Weapon";
|
||||
|
||||
|
||||
export enum PlayerType {
|
||||
|
@ -115,8 +116,11 @@ export default class PlayerController extends StateMachineAI implements BattlerA
|
|||
this.CURRENT_HP += buff.value;
|
||||
break;
|
||||
case BuffType.ATK:
|
||||
//TODO - may have to modify the weapon dmg value here instead
|
||||
//TODO - decide what to do with atk stat
|
||||
this.CURRENT_BUFFS.atk += buff.value;
|
||||
if (item) {
|
||||
(<Weapon>item).EXTRA_DAMAGE += buff.value;
|
||||
}
|
||||
break;
|
||||
case BuffType.SPEED:
|
||||
this.CURRENT_BUFFS.speed += buff.value;
|
||||
|
@ -127,7 +131,7 @@ export default class PlayerController extends StateMachineAI implements BattlerA
|
|||
case BuffType.RANGE:
|
||||
this.CURRENT_BUFFS.range += buff.value;
|
||||
if (item) {
|
||||
//item.sprite.
|
||||
(<Weapon>item).EXTRA_RANGE += buff.value;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -149,7 +153,9 @@ export default class PlayerController extends StateMachineAI implements BattlerA
|
|||
|
||||
this.CURRENT_BUFFS = {hp:0, atk:0, def:0, speed:0, range:0};
|
||||
|
||||
//to test the buffs
|
||||
this.addBuff( {type:BuffType.HEALTH, value:1, bonus:false} );
|
||||
this.addBuff( {type:BuffType.RANGE, value:1, bonus:false} );
|
||||
}
|
||||
|
||||
initializePlatformer(): void {
|
||||
|
|
Loading…
Reference in New Issue
Block a user