Esempio n. 1
0
    public void ShootBomb(Vector2 dir, Vector2 spawn_pos)
    {
        if (Arcane.singleton.SafeTake(ap_cost))
        {
            GameObject obj = PoolManager.Spawn(bomb, spawn_pos, Quaternion.identity);
            SpawnMuzzleFlash(redFlash, spawn_pos, QuickMaths.VectorToAngle(dir.x, dir.y));
            obj.GetComponent <BombController>().damage = Random.Range(MinDmg(), MaxDmg() + 1);
            //obj.GetComponent<MissileController>().damage = Random.Range(MinDmg(), MaxDmg() + 1);
            ActionCamera.singleton.StartShake(.05f, .065f);

            switch (rune1)
            {
            case Rune.Tremendous:
                obj.AddComponent <Tremendous>();
                break;

            case Rune.Bounce:
                obj.AddComponent <Bounce>();
                break;

            case Rune.Gas:
                obj.AddComponent <Gas>();
                break;
            }

            switch (rune2)
            {
            case Rune.Tremendous:
                obj.AddComponent <Tremendous>();
                break;

            case Rune.Bounce:
                obj.AddComponent <Bounce>();
                break;

            case Rune.Gas:
                obj.AddComponent <Gas>();
                break;
            }

            if (rune1 == Rune.Tremendous || rune2 == Rune.Tremendous)
            {
                obj.transform.localScale = new Vector3(1.5f, 1.5f, 1.5f);
                for (int i = 0; i < obj.transform.childCount; i++)
                {
                    obj.transform.GetChild(i).localScale = new Vector3(1.5f, 1.5f, 1.5f);
                }
            }
            else
            {
                obj.transform.localScale = new Vector3(1.5f, 1.5f, 1.5f);
                for (int i = 0; i < obj.transform.childCount; i++)
                {
                    obj.transform.GetChild(i).localScale = new Vector3(1f, 1f, 1f);
                }
            }

            obj.GetComponent <Rigidbody2D>().AddForce(dir * speed);
        }
    }
Esempio n. 2
0
    /// <summary>
    /// Converts joystick vector to rotation and updates the rotation of rotation_joint
    /// </summary>
    ///

    void RotatePlayerAim()
    {
        Vector2 mouseDir = (Camera.main.ScreenToWorldPoint(Input.mousePosition) - rotation_joint.transform.position).normalized;

        float angle = QuickMaths.VectorToAngle(mouseDir.x, mouseDir.y);

        rotation_joint.transform.localEulerAngles = new Vector3(rotation_joint.transform.localEulerAngles.x,
                                                                rotation_joint.transform.localEulerAngles.y,
                                                                angle - 90);
    }
Esempio n. 3
0
    Vector2 ShootDir()
    {
        Vector2 mouseDir = Camera.main.ScreenToWorldPoint(Input.mousePosition);
        Vector2 shootDir = (mouseDir - (Vector2)spawn_point.position).normalized;

        float angle = QuickMaths.VectorToAngle(shootDir.x, shootDir.y);

        angle    = angle + Random.Range(-5f, 5f);
        shootDir = QuickMaths.AngleToVector(angle).normalized;

        return(shootDir);
    }
Esempio n. 4
0
    public void ShootMissile(Vector2 dir, Vector2 spawn_pos)
    {
        if (Arcane.singleton.SafeTake(ApCost()))
        {
            GameObject obj = PoolManager.Spawn(missile, spawn_pos, Quaternion.identity);
            obj.GetComponent <MissileController>().damage = Random.Range(min_dmg, max_dmg + 1);
            ActionCamera.singleton.StartShake(.05f, .04f);

            if (rune1 == Rune.BitterCold || rune2 == Rune.BitterCold)
            {
                SpawnMuzzleFlash(missleBlueFlash, spawn_pos, QuickMaths.VectorToAngle(dir.x, dir.y));
            }
            else
            {
                SpawnMuzzleFlash(missleRedFlash, spawn_pos, QuickMaths.VectorToAngle(dir.x, dir.y));
            }

            switch (rune1)
            {
            case Rune.BitterCold:
                obj.AddComponent <BitterCold>();
                break;

            case Rune.Nirvana:
                obj.AddComponent <Nirvana>();
                break;

            case Rune.Split:
                obj.AddComponent <Split>();
                break;
            }

            switch (rune2)
            {
            case Rune.BitterCold:
                obj.AddComponent <BitterCold>();
                break;

            case Rune.Nirvana:
                obj.AddComponent <Nirvana>();
                break;

            case Rune.Split:
                obj.AddComponent <Split>();
                break;
            }

            obj.GetComponent <Rigidbody2D>().AddForce(dir * speed);
        }
    }