Ejemplo n.º 1
0
    void SetPlayers(Color[] colors)
    {
        for (int i = 0; i < colors.Length; i++)
        {
            if (colors [i].a == 0f)
            {
                // no color for this player = no player
                uiCanvas.FindChild("PlayerPanel" + (i + 1)).gameObject.SetActive(false);
                continue;
            }
            else
            {
                int        j = i + 1;
                GameObject p = Instantiate(playerPrefab) as GameObject;
                p.transform.name   = "Player" + j;
                p.transform.parent = level.transform;
                PlayerController pc = p.GetComponent <PlayerController> ();
                pc.SetID(j);
                pc.color = colors [i];
                p.transform.localPosition = spawnPoint [i];
                p.transform.localScale    = Vector3.one * playerScale;
                switch (i)
                {
                case 0: p.transform.Rotate(0, 0, 45f);
                    break;

                case 1: p.transform.Rotate(0f, 0f, -135f);
                    break;

                case 2: p.transform.Rotate(0f, 0f, -45f);
                    break;

                case 3: p.transform.Rotate(0f, 0f, 135f);
                    break;
                }
                p.GetComponent <Respawn>().respawner = respawner;
                respawner.AddPlayer(p.transform, i);
                DropBomb db = p.GetComponent <DropBomb>();
                db.level = level.transform;
                StartCoroutine(UnlockPlayerBombing(db, timeBeforeStarting));
                GameObject    uiPanel  = uiCanvas.Find("PlayerPanel" + j).gameObject;
                MatchPlayerUI playerui = uiPanel.GetComponent <MatchPlayerUI>();
                playerui.player = pc;
                playerui.mode   = defaultType;
                uiPanel.GetComponent <Image>().color = pc.color;
                control.AddPlayer(pc);
            }
        }
    }
Ejemplo n.º 2
0
 public void GetSpawnpoint_RPC(int team)
 {
     if (!PhotonNetwork.IsMasterClient)
     {
         matchController = FindObjectOfType <MatchController>();
         matchController.AddPlayer(this);
     }
     teamId = team;
     if (PV.IsMine)
     {
         hudManager.setBackground();
     }
     spawnPoint = matchController.GetSpawnPoint(this);
     GetComponent <Transform>().position = spawnPoint.transform.position;
 }
Ejemplo n.º 3
0
    private void Start()
    {
        rigidBody.drag = playerDeceleration;

        life                = maxLife;
        score               = 0;
        canShoot            = true;
        canShield           = true;
        damageable          = true;
        stunSlider.maxValue = stunTime;

        lifeText.text = "Vida: " + life;
        scoreText.GetComponent <TMPro.TextMeshProUGUI>().text = score + " pts";
        hudManager = GetComponent <HUDmanager>();
        GetBalaIndex();
        if (PhotonNetwork.IsConnected && PV.IsMine)
        {
            canvas.SetActive(true);
            mainCamera.enabled      = true;
            playerInput.enabled     = true;
            mobileCharacter.enabled = true;
            audioListener.enabled   = true;
            sAlas.Play();
        }
        if (PhotonNetwork.IsConnected && PhotonNetwork.IsMasterClient)
        {
            matchController = FindObjectOfType <MatchController>();
            matchController.AddPlayer(this);
            teamId = FindObjectOfType <RoomManager>().FindTeamIdByPlayer(PV.Owner);
            if (teamId == -1)
            {
                teamId = 0;
                Debug.Log("No se ha encontrado el teamId, se le ha añadido al equipo 0");
            }
            PV.RPC("GetSpawnpoint_RPC", RpcTarget.All, teamId);
        }
        else if (!PhotonNetwork.IsConnected)
        {
            canvas.SetActive(true);
            mainCamera.enabled      = true;
            playerInput.enabled     = true;
            mobileCharacter.enabled = true;
            RoomManagerOffline RMO = FindObjectOfType <RoomManagerOffline>();
            if (RMO.gamemodeIndex == 3)
            {
                teamId = 0;
            }
            else
            {
                teamId = RMO.jugadoresInfo[GetComponentInChildren <PlayerInput>().playerIndex + 1][1];
            }
            if (playerInput.playerIndex == 0)
            {
                audioListener.enabled = true;
            }
            matchController = FindObjectOfType <MatchController>();
            matchController.AddPlayer(this);
            spawnPoint = matchController.GetSpawnPoint(this);
            GetComponent <Transform>().position = spawnPoint.transform.position;
            hudManager.setBackground();
        }

        movementSM = new StateMachine();

        groundedState = new GroundedState(this, movementSM);
        shootingState = new ShootingState(this, movementSM);
        shieldState   = new ShieldState(this, movementSM);
        deadState     = new DeadState(this, movementSM);
        stunState     = new StunState(this, movementSM);
        feederState   = new FeederState(this, movementSM);

        movementSM.Initialize(groundedState);
    }
Ejemplo n.º 4
0
 public void AddPlayer(ActionObject action, IPEndPoint groupEP)
 {
     MatchController.AddPlayer(action.Player);
     PlayersIps.Add(action.Player, groupEP);
     UpdateGameState();
 }