import GameEvent from "../../../Wolfie2D/Events/GameEvent"; import Game from "../../../Wolfie2D/Loop/Game"; import Sprite from "../../../Wolfie2D/Nodes/Sprites/Sprite"; import MathUtils from "../../../Wolfie2D/Utils/MathUtils"; import { GameState } from "../../sword_enums"; import InputWrapper from "../../Tools/InputWrapper"; import PlayerState from "./PlayerState"; export default class OnGround extends PlayerState { onEnter(options: Record): void {} update(deltaT: number): void { //reset airjumps this.parent.airjumps = this.parent.MAX_airjumps; if(this.parent.velocity.y > 0){ this.parent.velocity.y = 0; } let direction = this.getInputDirection(); if(direction.x !== 0){ (this.owner).invertX = MathUtils.sign(direction.x) < 0; } // If we jump, move to the Jump state, give a burst of upwards velocity if(InputWrapper.isJumpJustPressed()){ this.finished("jump"); this.parent.velocity.y = -600; // basically jump height } else if(!this.owner.onGround && InputWrapper.getState() === GameState.GAMING){ this.finished("fall"); } super.update(deltaT); } onExit(): Record { return {}; } }