Пример #1
0
    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;
    }
Пример #2
0
    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());
    }
Пример #3
0
    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());
    }
Пример #4
0
    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());
    }
Пример #5
0
    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());
    }
Пример #6
0
    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);
    }
Пример #7
0
    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());
    }