/** * Represents a tank game object * * Copyright (C) 2012 Mike Gerwitz * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . */ ltjs.gameobjs.Tank = Class( 'Tank' ) .extend( ltjs.gameobjs.GameObject, { 'override public move': function( action ) { var todir = action.direction, state = [ 'tleft', 'tup', 'tright', 'tdown' ][ todir ]; if ( state !== this.getTid() ) { action.changeState( state ); return; } // let parent handle the movement this.__super( action ); // if we are not yet facing in the requested direction, simply turn (do // not move) return this; } } );