diff --git a/src/Wolfie2D/Timing/Timer.ts b/src/Wolfie2D/Timing/Timer.ts index ade0796..5b8bc26 100644 --- a/src/Wolfie2D/Timing/Timer.ts +++ b/src/Wolfie2D/Timing/Timer.ts @@ -1,3 +1,5 @@ +import { GameState } from "../../shattered_sword/sword_enums"; +import InputWrapper from "../../shattered_sword/Tools/InputWrapper"; import Updateable from "../DataTypes/Interfaces/Updateable"; import MathUtils from "../Utils/MathUtils"; import TimerManager from "./TimerManager"; @@ -70,7 +72,7 @@ export default class Timer implements Updateable { } update(deltaT: number){ - if(this.state === TimerState.ACTIVE){ + if(this.state === TimerState.ACTIVE && InputWrapper.getState() === GameState.GAMING){ this.timeLeft -= deltaT*1000; if(this.timeLeft <= 0){ diff --git a/src/shattered_sword/AI/EnemyStates/Attack.ts b/src/shattered_sword/AI/EnemyStates/Attack.ts index ee667fc..c734ef2 100644 --- a/src/shattered_sword/AI/EnemyStates/Attack.ts +++ b/src/shattered_sword/AI/EnemyStates/Attack.ts @@ -3,12 +3,21 @@ import EnemyState from "./EnemyState"; import Sprite from "../../../Wolfie2D/Nodes/Sprites/Sprite"; import AnimatedSprite from "../../../Wolfie2D/Nodes/Sprites/AnimatedSprite"; -export default class Alert extends EnemyState { +export default class Attack extends EnemyState { + protected charged: string; + protected attacked: string; + onEnter(options: Record): void { - (this.owner).animation.playIfNotAlready("WALK", true); + let event = this.owner.id+"charged"; + (this.owner).animation.play("DYING", false, event); + this.receiver.subscribe(event); } update(deltaT: number): void { + while (this.receiver.hasNextEvent()) { + this.receiver.getNextEvent(); + + } let position = this.parent.getPlayerPosition(); if (position) { this.parent.velocity.x = this.parent.maxSpeed * Math.sign(position.x - this.owner.position.x); diff --git a/src/shattered_sword/AI/EnemyStates/EnemyState.ts b/src/shattered_sword/AI/EnemyStates/EnemyState.ts index 7c310a4..b022cec 100644 --- a/src/shattered_sword/AI/EnemyStates/EnemyState.ts +++ b/src/shattered_sword/AI/EnemyStates/EnemyState.ts @@ -4,15 +4,18 @@ import Vec2 from "../../../Wolfie2D/DataTypes/Vec2"; import GameEvent from "../../../Wolfie2D/Events/GameEvent"; import GameNode from "../../../Wolfie2D/Nodes/GameNode"; import EnemyAI from "../EnemyAI"; +import Receiver from "../../../Wolfie2D/Events/Receiver"; export default abstract class EnemyState extends State { protected parent: EnemyAI; protected owner: GameNode; + protected receiver: Receiver; gravity: number = 1500; //TODO - can change later constructor(parent: EnemyAI, owner: GameNode) { super(parent); this.owner = owner; + this.receiver = new Receiver(); } handleInput(event: GameEvent): void { }