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){
|
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)) {
|
||||||
enemy.damage(weapon.type.damage);
|
enemy.damage(weapon.type.damage + weapon.EXTRA_DAMAGE);
|
||||||
|
|
||||||
//console.log("enemy took dmg");
|
//console.log("enemy took dmg");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,6 +25,10 @@ export default class Weapon extends Item {
|
||||||
/** The cooldown timer for this weapon's use */
|
/** The cooldown timer for this weapon's use */
|
||||||
cooldownTimer: Timer;
|
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){
|
constructor(sprite: Sprite, type: WeaponType, battleManager: BattleManager){
|
||||||
super(sprite);
|
super(sprite);
|
||||||
|
|
||||||
|
@ -42,6 +46,8 @@ export default class Weapon extends Item {
|
||||||
|
|
||||||
// Create the cooldown timer
|
// Create the cooldown timer
|
||||||
this.cooldownTimer = new Timer(type.cooldown);
|
this.cooldownTimer = new Timer(type.cooldown);
|
||||||
|
this.EXTRA_DAMAGE = 0;
|
||||||
|
this.EXTRA_RANGE=0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// @override
|
// @override
|
||||||
|
@ -58,7 +64,7 @@ export default class Weapon extends Item {
|
||||||
this.assets = this.type.createRequiredAssets(this.sprite.getScene());
|
this.assets = this.type.createRequiredAssets(this.sprite.getScene());
|
||||||
|
|
||||||
// Do a type specific weapon animation
|
// 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
|
// Apply damage
|
||||||
this.battleManager.handleInteraction(userType, this);
|
this.battleManager.handleInteraction(userType, this);
|
||||||
|
|
|
@ -15,7 +15,12 @@ export default class Slice extends WeaponType {
|
||||||
this.useVolume = options.useVolume;
|
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
|
// Rotate this with the game node
|
||||||
// TODO - need to rotate the anim properly
|
// TODO - need to rotate the anim properly
|
||||||
sliceSprite.rotation = attacker.rotation;
|
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
|
//scale = num of pixels between center of sprite and atk anim
|
||||||
sliceSprite.position = attacker.position.clone().add(direction.scaled(65));
|
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
|
// Play the slice animation w/o loop, but queue the normal animation
|
||||||
sliceSprite.animation.play("SLICE");
|
sliceSprite.animation.play("SLICE");
|
||||||
sliceSprite.animation.queue("NORMAL", true);
|
sliceSprite.animation.queue("NORMAL", true);
|
||||||
|
|
|
@ -15,6 +15,7 @@ import InventoryManager from "../GameSystems/InventoryManager";
|
||||||
import Input from "../../Wolfie2D/Input/Input";
|
import Input from "../../Wolfie2D/Input/Input";
|
||||||
import BattlerAI from "../AI/BattlerAI";
|
import BattlerAI from "../AI/BattlerAI";
|
||||||
import MathUtils from "../../Wolfie2D/Utils/MathUtils";
|
import MathUtils from "../../Wolfie2D/Utils/MathUtils";
|
||||||
|
import Weapon from "../GameSystems/items/Weapon";
|
||||||
|
|
||||||
|
|
||||||
export enum PlayerType {
|
export enum PlayerType {
|
||||||
|
@ -115,8 +116,11 @@ export default class PlayerController extends StateMachineAI implements BattlerA
|
||||||
this.CURRENT_HP += buff.value;
|
this.CURRENT_HP += buff.value;
|
||||||
break;
|
break;
|
||||||
case BuffType.ATK:
|
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;
|
this.CURRENT_BUFFS.atk += buff.value;
|
||||||
|
if (item) {
|
||||||
|
(<Weapon>item).EXTRA_DAMAGE += buff.value;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case BuffType.SPEED:
|
case BuffType.SPEED:
|
||||||
this.CURRENT_BUFFS.speed += buff.value;
|
this.CURRENT_BUFFS.speed += buff.value;
|
||||||
|
@ -127,7 +131,7 @@ export default class PlayerController extends StateMachineAI implements BattlerA
|
||||||
case BuffType.RANGE:
|
case BuffType.RANGE:
|
||||||
this.CURRENT_BUFFS.range += buff.value;
|
this.CURRENT_BUFFS.range += buff.value;
|
||||||
if (item) {
|
if (item) {
|
||||||
//item.sprite.
|
(<Weapon>item).EXTRA_RANGE += buff.value;
|
||||||
}
|
}
|
||||||
break;
|
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};
|
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.HEALTH, value:1, bonus:false} );
|
||||||
|
this.addBuff( {type:BuffType.RANGE, value:1, bonus:false} );
|
||||||
}
|
}
|
||||||
|
|
||||||
initializePlatformer(): void {
|
initializePlatformer(): void {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user