added gaining shield on hit
This commit is contained in:
parent
a0271d7a97
commit
e6f1cbcf39
|
@ -212,11 +212,11 @@
|
|||
"frames": [
|
||||
{
|
||||
"index": 0,
|
||||
"duration": 50
|
||||
"duration": 500
|
||||
},
|
||||
{
|
||||
"index": 39,
|
||||
"duration": 50
|
||||
"duration": 500
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
|
@ -1,27 +0,0 @@
|
|||
{
|
||||
"name": "Hiro",
|
||||
"spriteSheetImage": "Hiro.png",
|
||||
"spriteWidth": 32,
|
||||
"spriteHeight": 32,
|
||||
"columns": 1,
|
||||
"rows": 1,
|
||||
"durationType": "time",
|
||||
"animations": [
|
||||
{
|
||||
"name": "IDLE",
|
||||
"frames": [ {"index": 0, "duration": 540} ]
|
||||
},
|
||||
{
|
||||
"name": "JUMP",
|
||||
"frames":[ {"index": 0, "duration": 32}]
|
||||
},
|
||||
{
|
||||
"name": "WALK",
|
||||
"frames": [ {"index": 0, "duration": 540} ]
|
||||
},
|
||||
{
|
||||
"name": "FALL",
|
||||
"frames": [ {"index": 0, "duration": 540} ]
|
||||
}
|
||||
]
|
||||
}
|
BIN
dist/shattered_sword_assets/spritesheets/Hiro1.png
vendored
BIN
dist/shattered_sword_assets/spritesheets/Hiro1.png
vendored
Binary file not shown.
Before Width: | Height: | Size: 819 B |
|
@ -23,7 +23,12 @@ export default class Patrol extends EnemyState {
|
|||
|
||||
onEnter(options: Record<string, any>): void {
|
||||
//this.currentPath = this.getNextPath();
|
||||
(<AnimatedSprite>this.owner).animation.play("IDLE", true);
|
||||
//if(!(<AnimatedSprite>this.owner).animation.isPlaying("DYING")){
|
||||
//(<AnimatedSprite>this.owner).animation.queue("IDLE", true);
|
||||
//}
|
||||
//else{
|
||||
(<AnimatedSprite>this.owner).animation.playIfNotAlready("IDLE", true);
|
||||
//}
|
||||
}
|
||||
|
||||
handleInput(event: GameEvent): void { }
|
||||
|
|
|
@ -20,6 +20,10 @@ export default class BattleManager {
|
|||
if (weapon.hits(enemy.owner)) {
|
||||
enemy.damage(weapon.type.damage + weapon.EXTRA_DAMAGE);
|
||||
//console.log("enemy took dmg");
|
||||
|
||||
//TODO - test shield,
|
||||
//add checking for each onhit buff here
|
||||
(<PlayerController>this.players[0]).addShield(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -28,6 +32,7 @@ export default class BattleManager {
|
|||
for (let player of this.players) {
|
||||
if (weapon.hits(player.owner)) {
|
||||
(<PlayerController>player).damage(weapon.type.damage, user);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -72,10 +72,8 @@ export default class PlayerController extends StateMachineAI implements BattlerA
|
|||
CURRENT_DEF: number = 100;
|
||||
CURRENT_EXP : number = 0;
|
||||
MAX_EXP : number = 100;
|
||||
//shield buff
|
||||
CURRENT_SHIELD : number =0;
|
||||
MAX_SHIELD : number = 20;
|
||||
|
||||
invincible : boolean = false;
|
||||
|
||||
tilemap: OrthogonalTilemap;
|
||||
|
@ -85,7 +83,6 @@ export default class PlayerController extends StateMachineAI implements BattlerA
|
|||
airjumps:number = 0;
|
||||
|
||||
private lookDirection: Vec2;
|
||||
|
||||
/** A list of items in the game world */
|
||||
private items: Array<Item>;
|
||||
|
||||
|
@ -110,20 +107,21 @@ export default class PlayerController extends StateMachineAI implements BattlerA
|
|||
//shield absorbs the damage and sends dmg back to attacker
|
||||
if(this.CURRENT_SHIELD > 0){
|
||||
let newshield = Math.max(0, this.CURRENT_SHIELD - damage ); //calculate the new shield value
|
||||
(<EnemyAI>attacker._ai).damage(this.CURRENT_SHIELD - newshield); //damage the attacker the dmg taken to shield
|
||||
if( attacker !== undefined){
|
||||
(<EnemyAI>attacker._ai).damage(this.CURRENT_SHIELD - newshield); //damage the attacker the dmg taken to shield
|
||||
}
|
||||
this.CURRENT_SHIELD = newshield; //update shield value
|
||||
}
|
||||
else{
|
||||
//i frame here
|
||||
PlayerController.invincibilityTimer.start();
|
||||
this.invincible = true;
|
||||
|
||||
(<AnimatedSprite>this.owner).animation.playIfNotAlready("HURT", false);
|
||||
//console.log("hurt anim");
|
||||
(<AnimatedSprite>this.owner).animation.play("HURT" );
|
||||
this.CURRENT_HP -= damage;
|
||||
if(this.CURRENT_HP <= 0){
|
||||
this.emitter.fireEvent(Player_Events.PLAYER_KILLED);
|
||||
(<AnimatedSprite>this.owner).animation.playIfNotAlready("DYING", false);
|
||||
(<AnimatedSprite>this.owner).animation.queue("DEAD", false);
|
||||
(<AnimatedSprite>this.owner).animation.play("DYING");
|
||||
(<AnimatedSprite>this.owner).animation.queue("DEAD", true, Player_Events.PLAYER_KILLED);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -236,7 +234,7 @@ export default class PlayerController extends StateMachineAI implements BattlerA
|
|||
//this.addBuff( {type:BuffType.HEALTH, value:1} );
|
||||
|
||||
//i frame timer
|
||||
PlayerController.invincibilityTimer = new Timer(400);
|
||||
PlayerController.invincibilityTimer = new Timer(2000);
|
||||
}
|
||||
|
||||
initializePlatformer(): void {
|
||||
|
@ -285,7 +283,7 @@ export default class PlayerController extends StateMachineAI implements BattlerA
|
|||
//testing the attacks here, may be moved to another place later
|
||||
if(InputWrapper.isAttackJustPressed()){
|
||||
let item = this.inventory.getItem();
|
||||
(<AnimatedSprite>this.owner).animation.playIfNotAlready("ATTACK", true);
|
||||
(<AnimatedSprite>this.owner).animation.play("ATTACK", true);
|
||||
//TODO - get proper look direction
|
||||
this.lookDirection.x = (<Sprite>this.owner).invertX ? -1 : 1;
|
||||
// If there is an item in the current slot, use it
|
||||
|
|
|
@ -13,7 +13,7 @@ export default class Walk extends OnGround {
|
|||
|
||||
|
||||
update(deltaT: number): void {
|
||||
//console.log("walking anim");
|
||||
console.log("walking anim");
|
||||
this.owner.animation.playIfNotAlready("WALK", true);
|
||||
|
||||
let dir = this.getInputDirection();
|
||||
|
|
|
@ -718,7 +718,6 @@ export default class GameLevel extends Scene {
|
|||
}
|
||||
if(typeof enemy != undefined && typeof player != undefined){
|
||||
//damage the player
|
||||
console.log("player collision damage");
|
||||
(<PlayerController>this.player._ai).damage(10); //10 collision dmg for now
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user