void SpawnPlayer()
    {
        Vector2 spawnCoords = characterType == CharacterType.Parasite ? PARASITE_SPAWN_COORDINATES : HUNTER_SPAWN_COORDINATES;

        characterSpawner.SpawnPlayerCharacter(
            characterType,
            spawnCoords,
            Vector2.zero,
            true,
            true,
            null,
            false,
            localName
            ).gameObject.AddComponent <AudioListener>();
    }
    public void OnEvent(EventData photonEvent)
    {
        switch (photonEvent.Code)
        {
        case EventCodes.StartGame:
            if (characterSpawner != null)
            {
                characterSpawner.DestroyCharacter();
            }
            break;

        case EventCodes.AssignPlayerTypeAndSpawnPoint:
            // Deconstruct event
            int actorNumber = (int)EventCodes.GetEventContentAtPosition(photonEvent, 0);
            if (actorNumber == PhotonNetwork.LocalPlayer.ActorNumber)
            {
                CharacterType assignedCharacterType = (CharacterType)EventCodes.GetEventContentAtPosition(photonEvent, 1);
                Vector3       spawnPoint            = (Vector2)EventCodes.GetEventContentAtPosition(photonEvent, 2);
                characterSpawner = new CharacterSpawner();
                // Spawn Character of type `assignedCharacterType` across clients
                Character character = characterSpawner.SpawnPlayerCharacter(
                    assignedCharacterType,
                    spawnPoint,
                    Vector2.zero,
                    true,
                    true,
                    null,
                    false,
                    PhotonNetwork.LocalPlayer.NickName);
                character.gameObject.AddComponent <AudioListener>();
                UiManager.Instance.minimap.SetTarget(character.transform);
                UiManager.Instance.minimap.Activate();
            }
            break;

        case EventCodes.Mutation:
            if (characterSpawner != null)
            {
                // CharacterSpawner may be null if we're currently in a tutorial
                characterSpawner.OnMutation();
            }
            break;
        }
    }
Exemple #3
0
    void SpawnParasite()
    {
        Character newParasite = CharacterSpawner.SpawnPlayerCharacter(CharacterType.Parasite,
                                                                      transform.position,
                                                                      new Vector2(0, PARASITE_LAUNCH_VELOCITY),
                                                                      false, // Force Camera Snap
                                                                      false, // Should Camera Follow
                                                                      input,
                                                                      true,  // Preserve Parasite Health
                                                                      characterName
                                                                      );

        if (input.ShouldCameraFollowOwner())
        {
            // Only show parasite controls if this client is playing as this parasite
            UiManager.Instance.ActivateControls(CharacterType.Parasite);
            UiManager.Instance.minimap.SetTarget(newParasite.transform);
            newParasite.gameObject.AddComponent <AudioListener>();
        }
    }