Adds forward walking on shift

The state of the shift modifier is now distributed across the
network. Walking speeds and animation states are being updated
according to it.

Fixes #130
This commit is contained in:
logsol 2016-10-09 19:56:06 +02:00
parent 062402db58
commit b798e6acac
5 changed files with 39 additions and 9 deletions

View file

@ -4,11 +4,7 @@ define([
function () {
function PlayerController (player) {
this.player = player;
this._shift;
this._isJumping;
this._walkingDirectionStatus = 0;
}
@ -31,7 +27,6 @@ function () {
PlayerController.prototype.jump = function () {
if(!this.isPlayerInputAllowed()) return;
this._isJumping = true;
this.player.jump();
}
@ -44,6 +39,16 @@ function () {
if(options) this.player.lookAt(options.x, options.y);
}
PlayerController.prototype.activateModifier = function() {
if (!this.isPlayerInputAllowed()) return;
this.player.activateModifier();
};
PlayerController.prototype.deactivateModifier = function() {
if (!this.isPlayerInputAllowed()) return;
this.player.deactivateModifier();
};
PlayerController.prototype.update = function () {
if(this._walkingDirectionStatus != 0) {
this.player.move(this._walkingDirectionStatus);

View file

@ -228,14 +228,14 @@ function (Parent, Exception, Box2D, Settings, CollisionDetector, Item, Nc, Asser
}
};
Doll.prototype.move = function (direction) {
Doll.prototype.move = function (direction, modifierActivated) {
this.moveDirection = direction;
var speed;
var isHoldingHeavyItem = this.holdingItem && this.holdingItem.options.weight > Settings.MAX_RUNNING_WEIGHT;
switch(true) {
case direction == this.lookDirection && this.isStanding() && !isHoldingHeavyItem:
case direction == this.lookDirection && this.isStanding() && !isHoldingHeavyItem && !modifierActivated:
speed = Settings.RUN_SPEED;
break;
@ -264,7 +264,7 @@ function (Parent, Exception, Box2D, Settings, CollisionDetector, Item, Nc, Asser
if(this.isStanding()) {
if(this.moveDirection == this.lookDirection) {
if(isHoldingHeavyItem) {
if(isHoldingHeavyItem || modifierActivated) {
this.setActionState("walk");
} else {
this.setActionState("run");

View file

@ -30,6 +30,7 @@ function (Doll, PlayerController, Settings, Nc, Exception, ColorConverter, Spect
this.inBetweenRounds = true;
this.spectatorDoll = new SpectatorDoll(this.physicsEngine, "spectatorDoll-" + this.id, this);
this.revealedGameController = revealedGameController;
this.modifierActivated = false;
}
Player.prototype.getNickname = function() {
@ -66,7 +67,7 @@ function (Doll, PlayerController, Settings, Nc, Exception, ColorConverter, Spect
Player.prototype.move = function (direction) {
if(!this.spawned) return false;
this.doll.move(direction);
this.doll.move(direction, this.modifierActivated);
}
Player.prototype.stop = function () {
@ -90,6 +91,16 @@ function (Doll, PlayerController, Settings, Nc, Exception, ColorConverter, Spect
this.doll.lookAt(x, y);
}
Player.prototype.activateModifier = function () {
if(!this.spawned) return false;
this.modifierActivated = true;
}
Player.prototype.deactivateModifier = function () {
if(!this.spawned) return false;
this.modifierActivated = false;
}
Player.prototype.grab = function(item) {
if(!this.spawned) return false;
this.doll.grab(item);