Ejemplo n.º 1
0
    private void FixedUpdate()
    {
        //print(movement);
        Upgradable speedUpgrade = FindUpgradable("Speed");

        if (isFreezing)
        {
            rb.velocity = movement * freezingMovementSpeed * speedUpgrade.GetScaler();
        }
        else if (isMining)
        {
            rb.velocity = movement * miningMovementSpeed * speedUpgrade.GetScaler();
        }
        else
        {
            rb.velocity = movement * movementSpeed * speedUpgrade.GetScaler();
        }
    }
Ejemplo n.º 2
0
    private void Update()
    {
        // get WASD movement
        movement = new Vector2(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical"));

        // rotate to look at mouse
        Ray     ray   = Camera.main.ScreenPointToRay(Input.mousePosition);
        Vector2 dir   = ((Vector2)ray.origin - (Vector2)transform.position).normalized;
        float   angle = -Mathf.Atan2(-dir.y, dir.x) * Mathf.Rad2Deg;

        transform.rotation = Quaternion.Euler(0, 0, angle);

        // freeze gun
        Upgradable costUpgrade       = FindUpgradable("Cost");
        float      upgradedGunCost   = freezeGunCost * costUpgrade.GetScaler();
        float      upgradeCircleCost = freezeCircleCost * costUpgrade.GetScaler();

        //print(upgradedGunCost);
        if (Input.GetMouseButtonDown(0) && freezePower > upgradedGunCost)
        {
            freezeCone.GetComponent <ParticleSystem>().Play();
            isFreezing = true;
            audioController.Play("Freeze gun");
        } // start freezing
        if (Input.GetMouseButton(0) && isFreezing)
        {
            freezePower -= freezeGunCost;
        } // when using freeze gun
        if (Input.GetMouseButtonUp(0) || freezePower <= 0)
        {
            freezeCone.GetComponent <ParticleSystem>().Stop();
            isFreezing = false;
            audioController.Stop("Freeze gun");
        } // end freezing

        // freeze cone
        if (Input.GetMouseButtonUp(1) && freezePower > upgradeCircleCost)
        {
            //print((Vector2)ray.origin);
            audioController.Play("Freeze circle");
            freezePower -= freezeCircleCost;
            GameObject freezeCircle = Instantiate(freezeCirclePrefab, (Vector2)ray.origin, Quaternion.identity);
            Destroy(freezeCircle, freezeCircleTime);
        } // spawn freeze circle

        // health UI
        healthBar.fillAmount      = health / maxHealth;
        canvas.transform.rotation = Quaternion.identity;
        //print(health);

        // freeze power bar
        freezePowerBar.fillAmount = freezePower / maxFreezePower;

        // update power up texts
        foreach (Upgradable upgradable in upgradables)
        {
            upgradable.text.text = "LV: " + upgradable.GetLV().ToString();
        }

        // death
        if (health <= 0)
        {
            SceneManager.LoadSceneAsync("Gameover");
            audioController.Stop();
            audioController.Play("Player death");
        }

        // mining sound
        if (isMining && !audioController.IsPlaying("Mine"))
        {
            audioController.Play("Mine");
        }
        if (!isMining && audioController.IsPlaying("Mine"))
        {
            audioController.Stop("Mine");
        }
    }