public void SetUp(MazeController mazeController, SnakeConfig config, int numSegments) { base.SetUp(mazeController); this.Visible = false; this.Dead = false; this.trail = new SnakeTrail(); this.sinusoidalMotion = new SinusoidalMotion(this.trail); if (config.Player) { this.Side = Side.Player; } this.config = config; this.initialLength = numSegments; for (int i = 0; i < numSegments; ++i) { AddSegment(); } if (config.Player) { this.Controller = new PlayerSnakeController(this, mazeController); } else { this.Controller = new AISnakeController(this, mazeController); } }
private void CreateSnakes() { // Delete any existing snakes first. // Cache the length of the player's snake? int playerSnakeLength = SerpentConsts.GetStartingSnakeLength(Side.Player, this.levelNum); if (this.playerSnake != null && this.playerSnake.Dead == false) { playerSnakeLength = this.playerSnake.Length; } DestroySnakes(); this.playerSnakeConf = this.playerSnakeConfig.GetComponent <SnakeConfig>(); CreatePlayerSnake(playerSnakeLength); this.enemySnakeConf = this.theme.EnemySnakeConfig; List <Snake> enemySnakes = GetEnemySnakes(); int currNumEnemySnakes = enemySnakes.Count; int snakeLength = SerpentConsts.GetStartingSnakeLength(Side.Enemy, this.levelNum); for (int i = 0; i < (this.maxNumEnemySnakes - currNumEnemySnakes); ++i) { CreateEnemySnake(snakeLength); } }
private Snake CreateSnake(SnakeConfig config, int length) { Snake snake = SerpentUtils.Instantiate <Snake>(this.snakePrefab, this.mazeController.transform); snake.SetUp(this.mazeController, config, length); snake.SnakeSegmentsChanged += this.NumSnakeSegmentsChanged; snake.SnakeSegmentEaten += this.SnakeSegmentEaten; return(snake); }