Exemple #1
0
    private void gerarBala()
    {
        armaRanged armaux = (armaRanged)armaAtual;
        GameObject aux    = Instantiate(armaux.bala, armaux.lugarDeTiro.position, trans.rotation);


        aux.GetComponent <Rigidbody2D>().velocity = (trans.up) * armaux.velbala;


        Bullet balaGerada = aux.GetComponent <Bullet>();

        balaGerada.nomeDoAtirador = username;
        balaGerada.damage         = armaux.damage;
        balaGerada.force          = armaux.Force;
        balaGerada.playerID       = playerID;

        NetworkServer.Spawn(aux);
        Destroy(aux, armaux.projectileTime);

        balaGerada.CmdSyncTransformVelocity(aux.transform.position, aux.transform.rotation, (trans.up) * armaux.velbala);
    }
Exemple #2
0
    private void CmdAtirar(Vector3 direction)
    {
        armaRanged armaux = (armaRanged)armaAtual;

        // trans.rotation = rotation;
        // float rand = Random.Range(-armaux.spread, armaux.spread);
        // trans.Rotate(0,0,rand);

        // // RpcPush(-trans.up* armaux.Force) ;

        trans.up = direction;
        RpcPlaySound();
        gerarBala();

        if (armaux.tipo == 1)
        {
            trans.Rotate(0, 0, 25);
            gerarBala();
            trans.Rotate(0, 0, -50);
            gerarBala();
            trans.Rotate(0, 0, 25);
        }
    }
Exemple #3
0
    private void Update()
    {
        if (!isLocalPlayer)
        {
            return;
        }

        if (playerState == PlayerState.Lobby)
        {
            return;
        }

        if (Time.timeScale == 0)
        {
            return;
        }


        //Atualizar posição da camera
        camTransform.position = transform.position + camOffset;

        if (canWalk && !Huged && !Hugging)
        {
            walk();
        }

                #if UNITY_ANDROID
        if (button.Pressed)
        {
                #else
        if (Input.GetButton("Jump"))
        {
                #endif

            if (canShoot && !Huged && !Hugging)
            {
                ammoAtual -= 1;

                updateAmmoText();

                canShoot = false;
                if (ammoAtual <= 0)
                {
                    StartCoroutine(esperaReLoad(0.2f));
                    CmdEquip(0);
                }
                else
                {
                    StartCoroutine(esperaReLoad(armaAtual.fireCooldown));
                }

                if (armaAtual.GetType() == typeof(armaRanged))
                {
                    armaRanged armaux = (armaRanged)armaAtual;
                    float      rand   = Random.Range(-armaux.spread, armaux.spread);
                    trans.Rotate(0, 0, rand);
                    rigi.AddForce(-trans.up * armaux.Force);

                    CmdAtirar(trans.up);

                    Debug.Log("armaRanged");

                    // RpcSetCanWalk(false);
                    if (armaAtual.knockbackTime != 0)
                    {
                        canWalk = false;
                        StartCoroutine(esperaKnock(armaAtual.knockbackTime));
                    }
                }
                else if (armaAtual.GetType() == typeof(armaMelee))
                {
                    // Remover abraço porque é bugado
                    // armaMelee armaux  = (armaMelee)armaAtual;
                    // Debug.Log("armaMelle");
                    // if(armaux.tipo == 0){
                    //  CmdHug();
                    // }
                }
                else
                {
                    Debug.Log("outraArma??");
                }

                // Colocar só na arma normal por enqunato
                // RpcSetCanWalk(false);
                // StartCoroutine(esperaKnock(armaAtual.knockbackTime));
            }
        }
        else if (Hugging && !Input.GetKeyDown("space"))
        {
            CmdsoltarHug();
            Player aux = acariciado.GetComponent <Player>();
            aux.canWalk = false;
            aux.StartCoroutine(aux.esperaKnock(armaAtual.knockbackTime));
            aux.canShoot = false;
            aux.StartCoroutine(aux.esperaReLoad(armaAtual.knockbackTime));
        }
    }