added extrajump and dash
This commit is contained in:
parent
f58333aaaa
commit
1c1744002f
|
@ -22,7 +22,7 @@ import WeaponTypeRegistry from "./shattered_sword/Registry/WeaponTypeRegistry";
|
||||||
{name: "down", keys: ["s"]},
|
{name: "down", keys: ["s"]},
|
||||||
{name: "jump", keys: ["x","space"]},
|
{name: "jump", keys: ["x","space"]},
|
||||||
{name: "attack", keys: ["j","z","enter"]},
|
{name: "attack", keys: ["j","z","enter"]},
|
||||||
{name: "dash", keys: ["k","z"]},
|
{name: "dash", keys: ["k","x"]}, //
|
||||||
{name: "skill", keys: ["l","v"]},
|
{name: "skill", keys: ["l","v"]},
|
||||||
{name: "inventory", keys: ["i","b"]},
|
{name: "inventory", keys: ["i","b"]},
|
||||||
{name: "pause", keys: ["escape"]},
|
{name: "pause", keys: ["escape"]},
|
||||||
|
|
|
@ -40,7 +40,7 @@ export default class Patrol extends EnemyState {
|
||||||
//turn around
|
//turn around
|
||||||
//console.log(this.parent.tilemap.getTileAtRowCol(colrow));
|
//console.log(this.parent.tilemap.getTileAtRowCol(colrow));
|
||||||
this.parent.direction *= -1;
|
this.parent.direction *= -1;
|
||||||
console.log((<Sprite>this.owner).invertX);
|
//console.log((<Sprite>this.owner).invertX);
|
||||||
//(<Sprite>this.owner).invertX != (<Sprite>this.owner).invertX ;
|
//(<Sprite>this.owner).invertX != (<Sprite>this.owner).invertX ;
|
||||||
//console.log("turn around cus wall in front");
|
//console.log("turn around cus wall in front");
|
||||||
}
|
}
|
||||||
|
@ -48,7 +48,7 @@ export default class Patrol extends EnemyState {
|
||||||
else if(!this.parent.tilemap.isTileCollidable(colrow.x+this.parent.direction,colrow.y+1)){
|
else if(!this.parent.tilemap.isTileCollidable(colrow.x+this.parent.direction,colrow.y+1)){
|
||||||
//turn around
|
//turn around
|
||||||
this.parent.direction *=-1;
|
this.parent.direction *=-1;
|
||||||
console.log((<Sprite>this.owner).invertX);
|
//console.log((<Sprite>this.owner).invertX);
|
||||||
//console.log("turn around cus no floor in front");
|
//console.log("turn around cus no floor in front");
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
|
|
|
@ -70,6 +70,10 @@ export default class PlayerController extends StateMachineAI implements BattlerA
|
||||||
CURRENT_DEF: number = 100;
|
CURRENT_DEF: number = 100;
|
||||||
tilemap: OrthogonalTilemap;
|
tilemap: OrthogonalTilemap;
|
||||||
|
|
||||||
|
//for doublejumps maybe = # of jumps in air allowed
|
||||||
|
MAX_airjumps: number = 1;
|
||||||
|
airjumps:number = 0;
|
||||||
|
|
||||||
// TODO -
|
// TODO -
|
||||||
damage(damage: number): void {
|
damage(damage: number): void {
|
||||||
(<AnimatedSprite>this.owner).animation.play("HURT", false);
|
(<AnimatedSprite>this.owner).animation.play("HURT", false);
|
||||||
|
@ -222,10 +226,10 @@ export default class PlayerController extends StateMachineAI implements BattlerA
|
||||||
} else if(this.currentState instanceof Fall){
|
} else if(this.currentState instanceof Fall){
|
||||||
Debug.log("playerstate", "Player State: Fall");
|
Debug.log("playerstate", "Player State: Fall");
|
||||||
}
|
}
|
||||||
Debug.log("playerspeed", "x: " + this.velocity.x + ", y:" + this.velocity.y);
|
Debug.log("player speed", "player speed: x: " + this.velocity.x + ", y:" + this.velocity.y);
|
||||||
Debug.log("player Coords:", this.owner.position );
|
Debug.log("player Coords:", "Player Coords:" +this.owner.position );
|
||||||
|
|
||||||
//testing the attacks here, may be moved to another place latera
|
//testing the attacks here, may be moved to another place later
|
||||||
if(Input.isJustPressed("attack")){
|
if(Input.isJustPressed("attack")){
|
||||||
let item = this.inventory.getItem();
|
let item = this.inventory.getItem();
|
||||||
(<AnimatedSprite>this.owner).animation.playIfNotAlready("ATTACK", true);
|
(<AnimatedSprite>this.owner).animation.playIfNotAlready("ATTACK", true);
|
||||||
|
@ -238,6 +242,7 @@ export default class PlayerController extends StateMachineAI implements BattlerA
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import GameEvent from "../../../Wolfie2D/Events/GameEvent";
|
import GameEvent from "../../../Wolfie2D/Events/GameEvent";
|
||||||
import AnimatedSprite from "../../../Wolfie2D/Nodes/Sprites/AnimatedSprite";
|
import AnimatedSprite from "../../../Wolfie2D/Nodes/Sprites/AnimatedSprite";
|
||||||
import InAir from "./InAir";
|
import InAir from "./InAir";
|
||||||
|
import Input from "../../../Wolfie2D/Input/Input";
|
||||||
|
|
||||||
export default class Fall extends InAir {
|
export default class Fall extends InAir {
|
||||||
owner: AnimatedSprite;
|
owner: AnimatedSprite;
|
||||||
|
@ -9,6 +10,18 @@ export default class Fall extends InAir {
|
||||||
this.owner.animation.play("FALL", true);
|
this.owner.animation.play("FALL", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
update(deltaT: number): void {
|
||||||
|
super.update(deltaT);
|
||||||
|
|
||||||
|
//TODO - testing doublejump, may have to move to InAir instead
|
||||||
|
// If we jump, move to the Jump state, give a burst of upwards velocity
|
||||||
|
if( this.parent.airjumps>0 && Input.isJustPressed("jump")){
|
||||||
|
this.parent.airjumps --;
|
||||||
|
this.finished("jump");
|
||||||
|
this.parent.velocity.y = -600; // basically jump height
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
onExit(): Record<string, any> {
|
onExit(): Record<string, any> {
|
||||||
this.owner.animation.stop();
|
this.owner.animation.stop();
|
||||||
return {};
|
return {};
|
||||||
|
|
|
@ -15,7 +15,7 @@ export default abstract class InAir extends PlayerState {
|
||||||
(<Sprite>this.owner).invertX = MathUtils.sign(dir.x) < 0;
|
(<Sprite>this.owner).invertX = MathUtils.sign(dir.x) < 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.parent.velocity.x += dir.x * this.parent.speed/3.5 - 0.3*this.parent.velocity.x;
|
this.parent.velocity.x += dir.x * (this.parent.speed+this.parent.CURRENT_BUFFS.speed)/3.5 - 0.3*this.parent.velocity.x;
|
||||||
|
|
||||||
this.owner.move(this.parent.velocity.scaled(deltaT));
|
this.owner.move(this.parent.velocity.scaled(deltaT));
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,7 @@ import { EaseFunctionType } from "../../../Wolfie2D/Utils/EaseFunctions";
|
||||||
import { Player_Events } from "../../sword_enums";
|
import { Player_Events } from "../../sword_enums";
|
||||||
import { PlayerStates } from "../PlayerController";
|
import { PlayerStates } from "../PlayerController";
|
||||||
import InAir from "./InAir";
|
import InAir from "./InAir";
|
||||||
|
import Input from "../../../Wolfie2D/Input/Input";
|
||||||
|
|
||||||
export default class Jump extends InAir {
|
export default class Jump extends InAir {
|
||||||
owner: AnimatedSprite;
|
owner: AnimatedSprite;
|
||||||
|
@ -24,6 +25,15 @@ export default class Jump extends InAir {
|
||||||
this.parent.velocity.y = 0;
|
this.parent.velocity.y = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//TODO - testing doublejump, may have to move to InAir instead
|
||||||
|
// If we jump, move to the Jump state, give a burst of upwards velocity
|
||||||
|
if( this.parent.airjumps>0 && Input.isJustPressed("jump")){
|
||||||
|
this.parent.airjumps --;
|
||||||
|
this.finished("jump");
|
||||||
|
this.parent.velocity.y = -600; // basically jump height
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
// If we're falling, go to the fall state
|
// If we're falling, go to the fall state
|
||||||
if(this.parent.velocity.y >= 0){
|
if(this.parent.velocity.y >= 0){
|
||||||
this.finished(PlayerStates.FALL);
|
this.finished(PlayerStates.FALL);
|
||||||
|
|
|
@ -8,9 +8,14 @@ export default class OnGround extends PlayerState {
|
||||||
onEnter(options: Record<string, any>): void {}
|
onEnter(options: Record<string, any>): void {}
|
||||||
|
|
||||||
update(deltaT: number): void {
|
update(deltaT: number): void {
|
||||||
|
//reset airjumps
|
||||||
|
this.parent.airjumps = this.parent.MAX_airjumps;
|
||||||
|
|
||||||
if(this.parent.velocity.y > 0){
|
if(this.parent.velocity.y > 0){
|
||||||
this.parent.velocity.y = 0;
|
this.parent.velocity.y = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
super.update(deltaT);
|
super.update(deltaT);
|
||||||
|
|
||||||
let direction = this.getInputDirection();
|
let direction = this.getInputDirection();
|
||||||
|
@ -19,12 +24,14 @@ export default class OnGround extends PlayerState {
|
||||||
(<Sprite>this.owner).invertX = MathUtils.sign(direction.x) < 0;
|
(<Sprite>this.owner).invertX = MathUtils.sign(direction.x) < 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// If we jump, move to the Jump state, give a burst of upwards velocity
|
// If we jump, move to the Jump state, give a burst of upwards velocity
|
||||||
if(Input.isJustPressed("jump")){
|
if(Input.isJustPressed("jump")){
|
||||||
this.finished("jump");
|
this.finished("jump");
|
||||||
this.parent.velocity.y = -600; // basically jump height
|
this.parent.velocity.y = -600; // basically jump height
|
||||||
|
|
||||||
} else if(!this.owner.onGround){
|
}
|
||||||
|
else if(!this.owner.onGround){
|
||||||
this.finished("fall");
|
this.finished("fall");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -22,8 +22,16 @@ export default class Walk extends OnGround {
|
||||||
if(dir.isZero()){
|
if(dir.isZero()){
|
||||||
this.finished(PlayerStates.IDLE);
|
this.finished(PlayerStates.IDLE);
|
||||||
}
|
}
|
||||||
this.parent.velocity.x = dir.x * this.parent.speed
|
|
||||||
|
|
||||||
|
this.parent.velocity.x = dir.x * (this.parent.speed + this.parent.CURRENT_BUFFS.speed);
|
||||||
|
|
||||||
|
//TODO - decide how to implement dash - could be a flash - maybe allow in air as well
|
||||||
|
if(Input.isJustPressed("dash")){
|
||||||
|
//play dash anim maybe
|
||||||
|
//TODO - might give buffed speed stat to dash speed
|
||||||
|
this.parent.velocity.x = dir.x * 1000; //give sidewards velocity
|
||||||
|
//TODO - give player i frame
|
||||||
|
}
|
||||||
this.owner.move(this.parent.velocity.scaled(deltaT));
|
this.owner.move(this.parent.velocity.scaled(deltaT));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -170,9 +170,6 @@ export default class GameLevel extends Scene {
|
||||||
|
|
||||||
|
|
||||||
updateScene(deltaT: number){
|
updateScene(deltaT: number){
|
||||||
let clickpos = Input.getMousePosition();
|
|
||||||
if(Input.isMouseJustPressed())
|
|
||||||
console.log("mouse pos: " +clickpos);
|
|
||||||
// Handle events and update the UI if needed
|
// Handle events and update the UI if needed
|
||||||
while(this.receiver.hasNextEvent()){
|
while(this.receiver.hasNextEvent()){
|
||||||
let event = this.receiver.getNextEvent();
|
let event = this.receiver.getNextEvent();
|
||||||
|
@ -184,8 +181,6 @@ export default class GameLevel extends Scene {
|
||||||
//remove enemy from enemies
|
//remove enemy from enemies
|
||||||
this.enemies = this.enemies.filter(item => item !== event.data.get("ai"));
|
this.enemies = this.enemies.filter(item => item !== event.data.get("ai"));
|
||||||
this.battleManager.removeEnemy(event.data.get("ai"));
|
this.battleManager.removeEnemy(event.data.get("ai"));
|
||||||
|
|
||||||
console.log("enemy destroyed");
|
|
||||||
node.destroy();
|
node.destroy();
|
||||||
//TODO - this is for testing, add some chance here later
|
//TODO - this is for testing, add some chance here later
|
||||||
this.emitter.fireEvent(Player_Events.GIVE_BUFF);
|
this.emitter.fireEvent(Player_Events.GIVE_BUFF);
|
||||||
|
@ -197,7 +192,7 @@ export default class GameLevel extends Scene {
|
||||||
this.buffButton2.text = "Increase "+this.buffs[1].type + " by "+this.buffs[1].value;
|
this.buffButton2.text = "Increase "+this.buffs[1].type + " by "+this.buffs[1].value;
|
||||||
this.buffButton3.text = "Increase "+this.buffs[2].type + " by "+this.buffs[2].value;
|
this.buffButton3.text = "Increase "+this.buffs[2].type + " by "+this.buffs[2].value;
|
||||||
|
|
||||||
|
//pause game here
|
||||||
this.buffLayer.enable();
|
this.buffLayer.enable();
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
@ -527,7 +522,7 @@ export default class GameLevel extends Scene {
|
||||||
case "snake": //snake enemies drop from sky("trees")? or could just be very abundant
|
case "snake": //snake enemies drop from sky("trees")? or could just be very abundant
|
||||||
this.addEnemy("snake", enemy.position.scale(32), {
|
this.addEnemy("snake", enemy.position.scale(32), {
|
||||||
player: this.player,
|
player: this.player,
|
||||||
health: 100,
|
health: 50,
|
||||||
tilemap: "Main",
|
tilemap: "Main",
|
||||||
//actions:actions,
|
//actions:actions,
|
||||||
goal: Statuses.REACHED_GOAL,
|
goal: Statuses.REACHED_GOAL,
|
||||||
|
@ -536,7 +531,7 @@ export default class GameLevel extends Scene {
|
||||||
case "tiger": //tiger can be miniboss for now?
|
case "tiger": //tiger can be miniboss for now?
|
||||||
this.addEnemy("tiger", enemy.position.scale(32), {
|
this.addEnemy("tiger", enemy.position.scale(32), {
|
||||||
player: this.player,
|
player: this.player,
|
||||||
health: 100,
|
health: 200,
|
||||||
tilemap: "Main",
|
tilemap: "Main",
|
||||||
//actions:actions,
|
//actions:actions,
|
||||||
goal: Statuses.REACHED_GOAL,
|
goal: Statuses.REACHED_GOAL,
|
||||||
|
|
Loading…
Reference in New Issue
Block a user