public void FixSpawnBug(Snake snake) { SpawnPointFinder spawnPointFinder = new SpawnPointFinder(); if (snake.playerID == 1) { spawnPointFinder.spawnPoint = GroundSpawner.instance.spawnedGroundPieces[447]; snake.nextMoveDirection = snake.currentMoveDirection = transform.up; } else { spawnPointFinder.spawnPoint = GroundSpawner.instance.spawnedGroundPieces[422]; snake.nextMoveDirection = snake.currentMoveDirection = -transform.up; } snake.tailGroundPieces.Clear(); snake.lastReachedGroundPiece = spawnPointFinder.spawnPoint; snake.groundPieceToReach = null; snake.SetFirstOwnedGroundPieces(spawnPointFinder.spawnPoint); snake.isCollectingNewGroundPieces = false; snake.transform.position = snake.originalPos; snake.snakeMeshContainer.transform.localScale = Vector3.one; snake.transform.localScale = Vector3.one; }
public IEnumerator SpawnNewSnake(bool isPlayer = false) { /* * if (!isPlayer) { * spawnedEnemiesCount++; * yield return StartCoroutine (GetValidSpawnPoint ()); * } else { * spawnPoint = GetRandomSpawnPoint (); * } */ if (!isPlayer) { spawnedEnemiesCount++; } SpawnPointFinder spawnPointFinder = new SpawnPointFinder(); yield return(StartCoroutine(spawnPointFinder.GetValidSpawnPoint())); GameObject go = (GameObject)Resources.Load("Snake"); go = GameObject.Instantiate(go); Snake newSnake = go.GetComponent <Snake> (); if (isPlayer) { newSnake.isBot = false; playerSnake = newSnake; } else { newSnake.isBot = true; } SetSnakeMesh(newSnake); newSnake.Initialize(); newSnake.lastReachedGroundPiece = spawnPointFinder.spawnPoint; newSnake.SetFirstOwnedGroundPieces(spawnPointFinder.spawnPoint); Vector3 newPos = spawnPointFinder.spawnPoint.transform.position; newPos.z = newSnake.transform.position.z; newSnake.transform.position = newPos; newSnake.originalPos = transform.position; newSnake.gameObject.name = newSnake.name; spawnedSnakes.Add(newSnake); StartCoroutine(newSnake.StartMove()); }
public void RespawnSnake(Snake snake) { SpawnPointFinder spawnPointFinder = new SpawnPointFinder(); if (snake.playerID == 1) { spawnPointFinder.spawnPoint = GroundSpawner.instance.spawnedGroundPieces[447]; snake.nextMoveDirection = snake.currentMoveDirection = transform.up; } else { spawnPointFinder.spawnPoint = GroundSpawner.instance.spawnedGroundPieces[422]; snake.nextMoveDirection = snake.currentMoveDirection = -transform.up; } snake.tailGroundPieces.Clear(); snake.lastReachedGroundPiece = spawnPointFinder.spawnPoint; snake.groundPieceToReach = null; //snake.lastReachedGroundPiece = null; snake.SetFirstOwnedGroundPieces(spawnPointFinder.spawnPoint); snake.isCollectingNewGroundPieces = false; snake.haveToDie = false; snake.isDead = false; Vector3 newPos = spawnPointFinder.spawnPoint.transform.position; newPos.z = snake.transform.position.z; snake.transform.position = newPos; print(snake.transform.name + " spawned at " + newPos); snake.originalPos = transform.position; snake.currentHP = snake.maxHP; snake.isHeadOn = false; snake.snakeMeshContainer.transform.localScale = Vector3.one; //snake.SetSpeed (); //snake.DisableFreezeHit (); snake.DeactivateShield(); //snake.DeactivateSpeed (); if (snake.isLocal) { snake._networkSnake.shouldTransmit = true; snake._networkSnake.currentHP = snake._networkSnake.MaxHP; } // else snake.transform.localScale = Vector3.one; InstantReplayManager.instance.StartRecording(snake.playerID - 1); StartCoroutine(snake.StartMove()); }
public void CreateSnakeFromInfo(int playerNo, string _playerName, int _lives, int _maxhp, float _baseSpeed, int _meshtype, int _tiletype, int _colortype, bool isLocal, PlayerInfo NS) { // if (enemySnake) // return; SpawnPointFinder spawnPointFinder = new SpawnPointFinder(); GameObject go = (GameObject)Resources.Load("Snake"); go = GameObject.Instantiate(go); Snake newSnake = go.GetComponent <Snake>(); go.transform.position = new Vector3(transform.position.x, transform.position.y, -0.75f); newSnake.isBot = false; newSnake.Lives = _lives; newSnake.normalSpeed = _baseSpeed; InGameGUI.instance.userSnake = newSnake; //InGameGUI.instance.PlayerPanel [0].SelectedSnake = newSnake; //InGameGUI.instance.EquipPowerup(); if (playerNo == 1) { spawnPointFinder.spawnPoint = GroundSpawner.instance.spawnedGroundPieces[447]; newSnake.playerID = 1;//area/2 - 3 newSnake.nextMoveDirection = newSnake.currentMoveDirection = transform.up; } else { newSnake.playerID = 2; spawnPointFinder.spawnPoint = GroundSpawner.instance.spawnedGroundPieces[422]; // area/2 - gridlength +2 newSnake.nextMoveDirection = newSnake.currentMoveDirection = -transform.up; } SetSnakeMesh(newSnake, _meshtype, _tiletype, _colortype); newSnake.speed = 0; enemySnake = newSnake; //playerSnake.speed = 1.5f; newSnake._networkSnake = NS; NS.Player = newSnake; newSnake.Initialize(); enemyNetworkSnake = newSnake._networkSnake; newSnake.lastReachedGroundPiece = spawnPointFinder.spawnPoint; newSnake.SetFirstOwnedGroundPieces(spawnPointFinder.spawnPoint); Vector3 newPos = spawnPointFinder.spawnPoint.transform.position; newPos.z = newSnake.transform.position.z; newSnake.transform.position = newPos; newSnake.originalPos = transform.position; newSnake.name = _playerName; newSnake.gameObject.name = newSnake.name; spawnedSnakes.Add(newSnake); InGameGUI.instance.opponentSnake = newSnake; InGameGUI.instance.PlayerPanel[1].SelectedSnake = newSnake; InGameGUI.instance.PlayerPanel[1].Init(); StartCoroutine(newSnake.StartMove()); }
public void CreateNetworkSnake(int playerNo) { SpawnPointFinder spawnPointFinder = new SpawnPointFinder(); GameObject go = (GameObject)Resources.Load("Snake"); go = GameObject.Instantiate(go); Snake newSnake = go.GetComponent <Snake>(); go.transform.position = new Vector3(transform.position.x, transform.position.y, -0.75f); newSnake.isBot = false; playerSnake = newSnake; InGameGUI.instance.userSnake = newSnake; //InGameGUI.instance.PlayerPanel [0].SelectedSnake = newSnake; // InGameGUI.instance.EquipPowerup(); newSnake.isLocal = true; newSnake.Lives = LifeValue; newSnake.maxHP = HealthValue; newSnake.normalSpeed = SpeedValue; StartTime = 0; if (playerNo == 1) { PhotonNetwork.Instantiate("Server", Vector3.zero, Quaternion.identity, new byte()); // PowerUpManager.instance.dontSpawn = false; //PowerUpManager.instance.SpawnNetworkRunePowerup(); spawnPointFinder.spawnPoint = GroundSpawner.instance.spawnedGroundPieces[447]; newSnake.playerID = 1; newSnake.nextMoveDirection = newSnake.currentMoveDirection = transform.up; SetSnakeMeshMultiplayer(newSnake, 1);//area/2 - 3 } else { newSnake.playerID = 2; spawnPointFinder.spawnPoint = GroundSpawner.instance.spawnedGroundPieces[422]; // area/2 - gridlength +2 StartTime = float.Parse(PhotonNetwork.time.ToString()) + 3.5f; SetSnakeMeshMultiplayer(newSnake, 2); newSnake.nextMoveDirection = newSnake.currentMoveDirection = -transform.up; StartCoroutine(StartMultiplayerGame(StartTime)); //startTimer.text = StartTime.ToString (); } newSnake.speed = 0; GameObject NS = PhotonNetwork.Instantiate("NetworkSnake", Vector3.zero, Quaternion.identity, new byte()); newSnake.Initialize(); NS.GetComponent <PlayerInfo>().AssignValues(playerNo, newSnake.name, newSnake.Lives, HealthValue, SpeedValue, selectedMeshIndex, selectedTileIndex, selectedColourIndex, newSnake, StartTime); newSnake._networkSnake = NS.GetComponent <PlayerInfo>(); playerNetworkSnake = newSnake._networkSnake; newSnake.lastReachedGroundPiece = spawnPointFinder.spawnPoint; newSnake.SetFirstOwnedGroundPieces(spawnPointFinder.spawnPoint); Vector3 newPos = spawnPointFinder.spawnPoint.transform.position; newPos.z = newSnake.transform.position.z; newSnake.transform.position = newPos; newSnake.originalPos = transform.position; newSnake.gameObject.name = newSnake.name; spawnedSnakes.Add(newSnake); InGameGUI.instance.userSnake = newSnake; InGameGUI.instance.PlayerPanel[0].SelectedSnake = newSnake; InGameGUI.instance.PlayerPanel[0].Init(); StartCoroutine(newSnake.StartMove()); }
public void RespawnNetworkSnake(Snake snake) { SpawnPointFinder spawnPointFinder = new SpawnPointFinder(); GameObject go = (GameObject)Resources.Load("Snake"); go = GameObject.Instantiate(go); Snake newSnake = go.GetComponent <Snake>(); go.transform.position = new Vector3(transform.position.x, transform.position.y, -0.75f); newSnake.isBot = false; playerSnake = newSnake; InGameGUI.instance.userSnake = newSnake; newSnake.loadedPowers = snake.loadedPowers; InGameGUI.instance.EquipPowerup(); newSnake.isLocal = true; newSnake.Lives = snake.Lives; newSnake.maxHP = HealthValue; newSnake.normalSpeed = snake.normalSpeed; newSnake.speed = snake.normalSpeed; newSnake.isDead = false; if (snake.playerID == 1) { spawnPointFinder.spawnPoint = GroundSpawner.instance.spawnedGroundPieces[447]; newSnake.playerID = 1; newSnake.nextMoveDirection = newSnake.currentMoveDirection = transform.up; } else { newSnake.playerID = 2; spawnPointFinder.spawnPoint = GroundSpawner.instance.spawnedGroundPieces[422]; //SetSnakeMeshMultiplayer (newSnake, 2); newSnake.nextMoveDirection = newSnake.currentMoveDirection = -transform.up; } GameObject meshToUse; meshToUse = snakeMeshAssignedToPlayer; newSnake.snakeMeshContainer.SetSnakeMesh(meshToUse); newSnake.spriteColor = snake.spriteColor; newSnake.collectedPieceSprite = snake.collectedPieceSprite; newSnake.Initialize(); newSnake._networkSnake = snake._networkSnake; newSnake.lastReachedGroundPiece = spawnPointFinder.spawnPoint; newSnake.SetFirstOwnedGroundPieces(spawnPointFinder.spawnPoint); Vector3 newPos = spawnPointFinder.spawnPoint.transform.position; newPos.z = newSnake.transform.position.z; newSnake.transform.position = newPos; newSnake.originalPos = transform.position; newSnake.gameObject.name = newSnake.name; spawnedSnakes.Add(newSnake); InGameGUI.instance.userSnake = newSnake; InGameGUI.instance.PlayerPanel[0].SelectedSnake = newSnake; InGameGUI.instance.PlayerPanel[0].Init(); StartCoroutine(newSnake.StartMove()); snake._networkSnake.shouldTransmit = true; snake._networkSnake.isDead = false; snake._networkSnake.currentHP = snake._networkSnake.MaxHP; snake._networkSnake.Player = newSnake; //newSnake.ownedGroundPieces.Clear (); foreach (GroundPiece GP in snake.ownedGroundPieces) { GP.snakeOwener = newSnake; newSnake.ownedGroundPieces.Add(GP); } GetNotifiedNetworkDeath(snake); Destroy(snake.gameObject); }
public IEnumerator SpawnNewSnake(bool isPlayer, int playerLives) { /* * if (!isPlayer) { * spawnedEnemiesCount++; * yield return StartCoroutine (GetValidSpawnPoint ()); * } else { * spawnPoint = GetRandomSpawnPoint (); * } */ if (!isPlayer) { spawnedEnemiesCount++; } InGameGUI.instance.gameStarted = true; SpawnPointFinder spawnPointFinder = new SpawnPointFinder(); // yield return StartCoroutine (spawnPointFinder.GetValidSpawnPoint ()); yield return(new WaitForEndOfFrame()); GameObject go = (GameObject)Resources.Load("Snake"); go = GameObject.Instantiate(go); Snake newSnake = go.GetComponent <Snake>(); if (isPlayer) { newSnake.isBot = false; playerSnake = newSnake; InGameGUI.instance.userSnake = newSnake; InGameGUI.instance.PlayerPanel[0].SelectedSnake = newSnake; //InGameGUI.instance.EquipPowerup(); if (PlayerPrefs.GetInt("TutorialComplete") != 1) { newSnake.Lives = playerLives; } else { newSnake.Lives = LifeValue; } newSnake.playerID = 1; spawnPointFinder.spawnPoint = GroundSpawner.instance.spawnedGroundPieces[447]; //area/2 - 3 playerSnake = newSnake; } else { newSnake.isBot = true; InGameGUI.instance.opponentSnake = newSnake; InGameGUI.instance.PlayerPanel[1].SelectedSnake = newSnake; if (PlayerPrefs.GetInt("TutorialComplete") != 1) { newSnake.Lives = 3; } else { newSnake.Lives = LifeValue; } newSnake.playerID = 2; enemySnake = newSnake; spawnPointFinder.spawnPoint = GroundSpawner.instance.spawnedGroundPieces[422]; // area/2 - gridlength +2 } SetSnakeMesh(newSnake); newSnake.normalSpeed = SpeedValue; newSnake.maxHP = HealthValue; newSnake.SetSpeed(); newSnake.Initialize(); newSnake.lastReachedGroundPiece = spawnPointFinder.spawnPoint; newSnake.SetFirstOwnedGroundPieces(spawnPointFinder.spawnPoint); Vector3 newPos = spawnPointFinder.spawnPoint.transform.position; newPos.z = newSnake.transform.position.z; newSnake.transform.position = newPos; newSnake.originalPos = transform.position; newSnake.gameObject.name = newSnake.name; spawnedSnakes.Add(newSnake); if (isPlayer) { InGameGUI.instance.PlayerPanel[0].Init(); } else { InGameGUI.instance.PlayerPanel[1].Init(); } StartCoroutine(newSnake.StartMove()); }