Exemplo n.º 1
0
    void OffScreenShot()
    {
        BulletType type = BulletType.Boomerang;
        Direction  dir  = playerMovement.lastDirection;

        BulletDepot.Volley volley = bullets.types[(int)playerStats.character].projectileTypes[(int)type].volleys[bufferIter];



        for (int i = 0; i < volley.volley.Length; i++)
        {
            BulletDepot.Bullet bullet = volley.volley[i];
            int        angle          = bullet.angle + (int)playerMovement.CurrentShotAngle();
            GameObject newBullet      = bullets.GetBullet();
            switch (dir)
            {
            case Direction.Right:
                newBullet.transform.position = new Vector3(42, -25 + (60 / volley.volley.Length) * i, 0);
                break;

            case Direction.Left:
                newBullet.transform.position = new Vector3(-42, -25 + (60 / volley.volley.Length) * i, 0);
                break;

            case Direction.Down:
                newBullet.transform.position = new Vector3(-42 + (60 / volley.volley.Length) * i, -25, 0);
                break;

            case Direction.Up:
                newBullet.transform.position = new Vector3(-42 + (60 / volley.volley.Length) * i, 25, 0);
                break;
            }

            newBullet.transform.rotation = Quaternion.Euler(0, 0, angle);
            BulletLogic bulletLogic = newBullet.GetComponent <BulletLogic>();           //((GameObject)Instantiate(bulletPrefab, gameObject.transform.position, Quaternion.Euler(0, 0, angle))).GetComponent<BulletLogic>();
            bulletLogic.Initialize(type, bullet.damage, bullet.speed, bullet.size, lifetime, playerStats.playerColor, playerStats.number, playerStats.character);
            bulletLogic.indirectHomingTime      = 10.5f;
            bulletLogic.indirectHomingLimit     = 1.0f;
            bulletLogic.indirectCorrectionSpeed = 1.5f;
            newBullet.GetComponentInChildren <SpriteRenderer>().sortingOrder = 9 - bufferIter;
        }
        soundEffects.clip = Resources.Load <AudioClip>("audio/soundEffects/boomerangSound");
        soundEffects.Play();
    }
Exemplo n.º 2
0
    public void InputEqualsNumber()
    {
        int         bulletNumber    = 0;
        List <char> meaningfulInput = new List <char>();

        for (int i = 0; i < mashBufferSize; i++)
        {
            if (mashBuffer[i] != '*')
            {
                bulletNumber++;
                meaningfulInput.Add(mashBuffer[i]);
            }
        }
        float             angleDifference = 90.0f / mashBufferSize;
        List <float>      bulletAngles    = new List <float>();
        List <BulletType> bulletTypes     = new List <BulletType>();

        //BulletType theBulletType;
        if (meaningfulInput.Count <= 0)
        {
            return;
        }

        /*
         * //commented is currently never runs. debug? ski
         *      char bulletTypeChar = meaningfulInput[meaningfulInput.Count - 1];
         *
         *      if(bulletTypeChar == 'A') {
         *              theBulletType = BulletType.Knife;
         *      } else if(bulletTypeChar == 'B') {
         *              theBulletType = BulletType.Boomerang;
         *      } else {
         *              theBulletType = BulletType.Shield;
         *      }
         */

        for (int i = 0; i < bulletAngles.Count; i++)
        {
            BulletDepot.Bullet bullet = bullets.types[(int)playerStats.character].projectileTypes[(int)bulletTypes[i]].volleys[0].volley[0];
            bullet.angle = (int)bulletAngles[i];
            CreateBullet(bullet, bulletTypes[i]);
        }
    }
Exemplo n.º 3
0
    public void CreateBullet(BulletDepot.Bullet bullet, BulletType type = BulletType.Knife)
    {
        int angle = bullet.angle + (int)playerMovement.CurrentShotAngle();
        //Debug.Log("CreateBullet(): angle =" + angle + " playerMovement.CurrentShotAngle = " + (int)playerMovement.CurrentShotAngle());  //ski

        GameObject newBullet = bullets.GetBullet();

        newBullet.transform.position = gameObject.transform.position;
        newBullet.transform.rotation = Quaternion.Euler(0, 0, angle);
        BulletLogic bulletLogic = newBullet.GetComponent <BulletLogic>();       //((GameObject)Instantiate(bulletPrefab, gameObject.transform.position, Quaternion.Euler(0, 0, angle))).GetComponent<BulletLogic>();

        if (poweredUpBullets)
        {
            bulletLogic.Initialize(type, bullet.damage * 2, bullet.speed, bullet.size, 5, playerStats.playerColor, playerStats.number, playerStats.character);
        }
        else
        {
            bulletLogic.Initialize(type, bullet.damage, bullet.speed, bullet.size, 5, playerStats.playerColor, playerStats.number, playerStats.character);
        }
        newBullet.GetComponentInChildren <SpriteRenderer>().sortingOrder = 9 - bufferIter;
        //Debug.Log("Sorting layer debug thing " + newBullet.GetComponentInChildren<SpriteRenderer>().sortingOrder);
        //Debug.Log("bullet " + newBullet.gameObject.name + " rotation = " + newBullet.transform.rotation);
    }