Tile Engine: The Game Data

the game stuff

A lot of the properties here are left over from the Phantom Tank game. So they may account for different levels, and other things not present in this version.

I trust the many properties here are self-explanatory.

The GameData class

package tiletank {
	
	import flash.utils.getDefinitionByName;
	
	import tiletank.map.*;
	import tiletank.tank.*;
	import tiletank.bullet.*;
	
	public class GameData {
		
		private static var _instance:GameData;
		
		
		private var _maze:Maze;
		private var _maze1:Maze1;
		
		//game variables
		private var _gameMode:String;
		private var _totalEnemies:int = 20;
		private var _enemiesCreated:int = 0;
		private var _enemiesDestroyed:int = 0;
		private var _levelNumber:int = 0;
		private var _mazeIndex:int = 0;
		private var _lives:int = 5;
		private var _score:int = 0;

		
		function GameData (instantiator:Instantiator) {}
		
		public static function get instance():GameData {
            if(GameData._instance == null) {
           		GameData._instance= new GameData (new Instantiator());
			 }
            return GameData._instance;
        }
		
		public function reset ():void {
			_levelNumber = 0;
			_mazeIndex = 0;
			_enemiesCreated = 0;
			_enemiesDestroyed = 0;
			_totalEnemies = 20;
			_lives = 5;
			this.score = 0;
		}
		
		public function get maze ():Maze {
			return _maze;
		}
	
		public function get gameMode ():String {
			return _gameMode;
		}
		public function set gameMode (value:String):void {
			_gameMode = value;
		}
		public function get totalEnemies ():int {
			return _totalEnemies;
		}
		public function set totalEnemies (value:int):void {
			_totalEnemies = value;
			var scores:GameInfo = StageElements.instance.getElementByClass(GameConstants.SCORES) as GameInfo;
			scores.totalEnemies = _totalEnemies;
		}
		public function get enemiesCreated ():int {
			return _enemiesCreated;
		}
		public function set enemiesCreated (value:int):void {
			_enemiesCreated = value;
			
		}
		public function get enemiesDestroyed ():int {
			return _enemiesDestroyed;
		}
		public function set enemiesDestroyed (value:int):void {
			_enemiesDestroyed = value;
			var scores:GameInfo = StageElements.instance.getElementByClass(GameConstants.SCORES) as GameInfo;
			scores.totalEnemies = _totalEnemies - _enemiesDestroyed;
			
		}
		public function get lives ():int {
			return _lives;
		}
		public function set lives (value:int):void {
			_lives = value;
		}
		public function get level ():int {
			return _levelNumber;
		}
		public function get mazeIndex ():int {
			return _mazeIndex;
		}
		public function set score (value:int):void {
			_score = value;
			var scores:GameInfo = StageElements.instance.getElementByClass(GameConstants.SCORES) as GameInfo;
			scores.score = _score;
		}
		public function get score ():int {
			return _score;
		}
		
		public function addMaze ():Maze {
			var c:Class = getDefinitionByName(GameConstants.MAZE1) as Class;
			_maze = new c();
			return _maze;
		}
	}
}

internal class Instantiator {}