Exemplo n.º 1
0
    public void FireProjectile(FireStream fireStream)
    {
        GameObject newProjectileObj = Instantiate(fireStream.projectile.prefab) as GameObject;

        newProjectileObj.transform.position = transform.position + fireStream.offset;
        newProjectileObj.GetComponent <Projectile>().angle = fireStream.angleOffset;
        if (fireStream.spread > 0f)
        {
            newProjectileObj.GetComponent <Projectile>().angle = fireStream.angleOffset + 45 + Random.Range(-fireStream.spread, fireStream.spread);
        }
    }
Exemplo n.º 2
0
    public IEnumerator FireProjectile(FireStream fireStream, swarmTargetType targetType, int firings)
    {
        if (fireStream.isBeam)
        {
            //for beam weapons
            //first pre-fire beam. Display marker which grows for the fireRate length
            //after pre-fire, fireBeam
            GameObject preFirePrefab = Resources.Load("beam_pre_fire_frigate") as GameObject;
            GameObject newPreFireObj = Instantiate(preFirePrefab) as GameObject;
            newPreFireObj.GetComponent <SpriteRenderer> ().color = new Color(newPreFireObj.GetComponent <SpriteRenderer> ().color.r, newPreFireObj.GetComponent <SpriteRenderer> ().color.g, newPreFireObj.GetComponent <SpriteRenderer> ().color.b, 0.5f);
            newPreFireObj.transform.parent        = this.transform;
            newPreFireObj.transform.localPosition = preFirePrefab.transform.position + fireStream.offset;
            LeanTween.scaleX(newPreFireObj, 8f, fireStream.fireRate);
            yield return(new WaitForSeconds(fireStream.fireRate));

            Destroy(newPreFireObj);

            GameObject newProjectileObj = Instantiate(fireStream.projectile.prefab) as GameObject;
            newProjectileObj.transform.parent        = this.transform;
            newProjectileObj.transform.localPosition = newProjectileObj.transform.position + fireStream.offset;
            Vector3 size = newProjectileObj.GetComponent <Renderer>().bounds.size;
            yield return(new WaitForSeconds(fireStream.fireRate));

            Destroy(newProjectileObj);
        }
        else
        {
            //for projectiles - missles and bullets
            for (int i = 1; i <= firings; i++)
            {
                GameObject newProjectileObj = Instantiate(fireStream.projectile.prefab) as GameObject;
                newProjectileObj.transform.position = transform.position + fireStream.offset;
                newProjectileObj.GetComponent <Projectile> ().angle           = fireStream.angleOffset;
                newProjectileObj.GetComponent <Projectile> ().enemyProjectile = true;
                newProjectileObj.GetComponent <Projectile> ().targetType      = targetType;


                if (targetType == swarmTargetType.atPlayer)
                {
                    Vector3 playerTarget = computeFireTarget(fireStream.offset);
                    newProjectileObj.GetComponent <Projectile> ().dumbTarget = playerTarget;
                }

                if (fireStream.spread > 0f)
                {
                    newProjectileObj.GetComponent <Projectile> ().angle = fireStream.angleOffset + 45 + Random.Range(-fireStream.spread, fireStream.spread);
                }

                yield return(new WaitForSeconds(fireStream.fireRate));
            }
        }
    }
Exemplo n.º 3
0
    public static Weapon createBasicEnemyRail()
    {
        FireStream[] fireStreams = new FireStream[1];

        GameObject projectilePrefab = Resources.Load("rail") as GameObject;
        Projectile projectile       = projectilePrefab.GetComponent <Projectile>();

        projectile.prefab = projectilePrefab;

        fireStreams[0] = new FireStream(1f, projectile, new Vector3(0.16f, 0, 0), 0, 0, true);

        Weapon newWeapon = new Weapon(fireStreams);

        return(newWeapon);
    }
Exemplo n.º 4
0
    public static Weapon createBasicWeap4()
    {
        FireStream[] fireStreams = new FireStream[1];

        GameObject projectilePrefab = Resources.Load("projectile_2_(spread)") as GameObject;
        Projectile projectile       = projectilePrefab.GetComponent <Projectile>();

        projectile.prefab = projectilePrefab;

        fireStreams[0] = new FireStream(0.1f, projectile, new Vector3(0f, 0, 0), 0, 4f);

        Weapon newWeapon = new Weapon(fireStreams);

        return(newWeapon);
    }
Exemplo n.º 5
0
    public static Weapon createFrigateSpreadWeapon()
    {
        FireStream[] fireStreams = new FireStream[3];

        GameObject projectilePrefab = Resources.Load("projectile_frigate") as GameObject;
        Projectile projectile       = projectilePrefab.GetComponent <Projectile>();

        projectile.prefab = projectilePrefab;

        fireStreams[0] = new FireStream(0.1f, projectile, new Vector3(0f, 0, 0), 60);
        fireStreams[1] = new FireStream(0.1f, projectile, new Vector3(0f, 0, 0), 0);
        fireStreams[2] = new FireStream(0.1f, projectile, new Vector3(0f, 0, 0), 30);

        Weapon newWeapon = new Weapon(fireStreams);

        return(newWeapon);
    }
Exemplo n.º 6
0
    public static Weapon createHomingSwarm()
    {
        FireStream[] fireStreams = new FireStream[2];

        GameObject projectilePrefab = Resources.Load("missile_1") as GameObject;
        Projectile projectile       = projectilePrefab.GetComponent <Projectile>();

        projectile.prefab = projectilePrefab;

        fireStreams[0] = new FireStream(0.1f, projectile, new Vector3(-0.6f, 0, 0));
        fireStreams[1] = new FireStream(0.1f, projectile, new Vector3(0.6f, 0, 0));

        Weapon newWeapon = new Weapon(fireStreams, SpecialWeaponType.homingSwarm);

        newWeapon.projectilesPerFire = 5;

        return(newWeapon);
    }
Exemplo n.º 7
0
    public void Stream()
    {
        if (Time.time > (fireRate + lastShot) && stamina > streamCost)
        {
            stamina          -= streamCost;
            stamRechargeTimer = 0;

            animator.SetBool("isStreaming", true);
            animator.speed = 1.0f;
            FireStream f = Instantiate(firestream, new Vector4(transform.position.x, transform.position.y, transform.position.z), transform.rotation);
            f.transform.SetParent(transform);
            f.setPlayerNo(playerNum);
            AudioManager.instance.PlaySound("stream", f.transform.position);
            lastShot = Time.time;
        }
        else
        {
            //stamRechargeTimer = 0;
            return;
        }
    }
Exemplo n.º 8
0
    public static Weapon createBasicWeap3()
    {
        FireStream[] fireStreams = new FireStream[6];

        GameObject projectilePrefab = Resources.Load("projectile_1") as GameObject;
        Projectile projectile       = projectilePrefab.GetComponent <Projectile>();

        projectile.prefab = projectilePrefab;

        fireStreams[0] = new FireStream(0.2f, projectile, new Vector3(-0.45f, 0, 0), 60);
        fireStreams[1] = new FireStream(0.2f, projectile, new Vector3(-0.45f, 0, 0));
        fireStreams[2] = new FireStream(0.2f, projectile, new Vector3(-0.45f, 0, 0), 30);

        fireStreams[3] = new FireStream(0.2f, projectile, new Vector3(0.45f, 0, 0), 60);
        fireStreams[4] = new FireStream(0.2f, projectile, new Vector3(0.45f, 0, 0));
        fireStreams[5] = new FireStream(0.2f, projectile, new Vector3(0.45f, 0, 0), 30);

        Weapon newWeapon = new Weapon(fireStreams);

        return(newWeapon);
    }