Esempio n. 1
0
    void AddPlayer(PlayerInput input)
    {
        GameObject newPlayerGO;

        // Spawn at selected position
        if (playerSpawnPositions.Count >= spawnPositionIndex)
        {
            newPlayerGO = Instantiate(flyPrefabs[players.Count], playerSpawnPositions[spawnPositionIndex], Quaternion.identity);
            spawnPositionIndex++;
        }
        else // Probably spawns at prefab default position, flies might end up on top of eachother
        {
            newPlayerGO = Instantiate(flyPrefabs[players.Count]);
        }

        scoreSystem.AddScoreVariable(players.Count);

        Player newPlayer = newPlayerGO.AddComponent <Player>();

        newPlayer.Initialize(input);
        newPlayer.controller.Initialize(players.Count);
        players.Add(newPlayer);

        scoreSystem.AddNewPlayerScore(players.Count - 1);

        // Subscribe to events here
        newPlayer.controller.OnFireProjectile += projectileSystem.SpawnProjectile;
        newPlayer.controller.OnFireProjectile += audioPlayer.PlayFlyShootSound;

        newPlayer.controller.OnIncreaseScore += scoreSystem.IncreaseScore;
        newPlayer.controller.OnDecreaseScore += scoreSystem.DecreaseScore;

        //newPlayer.controller.OnIncreaseScore += SendMessageToScoreSystem;
        //newPlayer.controller.OnDecreaseScore += SendMessageToScoreSystem;

        newPlayer.controller.OnHitBubble += SendMessageToScoreSystem;
    }