Ejemplo n.º 1
0
    void OnTriggerEnter2D(Collider2D col)
    {
        if (col.gameObject.tag == "Player")
        {
            PlayerData.addScore(250);
            switch (pUpType)
            {
            case PUTypes.SPEED_INC:
                ProjectileManager2D.actFireRate();
                GetComponent <SpriteRenderer>().enabled        = false;
                GetComponent <CircleCollider2D>().enabled      = false;
                GetComponent <BoxCollider2D>().enabled         = false;
                GetComponent <ParticleSystem>().enableEmission = false;
                speeding   = true;
                timeToStop = Time.time + (blinkTime * 2);
                //Add extra speed
                break;

            case PUTypes.ONE_UP:
                PlayerData.lives++;
                Destroy(gameObject);
                //Add extra life
                break;

            case PUTypes.TRIPLE_SHOOT:
                ProjectileManager2D.actTripleShoot();
                GetComponent <SpriteRenderer>().enabled        = false;
                GetComponent <CircleCollider2D>().enabled      = false;
                GetComponent <BoxCollider2D>().enabled         = false;
                GetComponent <ParticleSystem>().enableEmission = false;
                tripling   = true;
                timeToStop = Time.time + (blinkTime * 2);
                //Set as Shotgun in Gund
                break;

            case PUTypes.FOLLOW:
                Projectile2D.followOn();
                GetComponent <SpriteRenderer>().enabled        = false;
                GetComponent <CircleCollider2D>().enabled      = false;
                GetComponent <BoxCollider2D>().enabled         = false;
                GetComponent <ParticleSystem>().enableEmission = false;
                following  = true;
                timeToStop = Time.time + blinkTime;
                //Set to Follow
                break;

            default:
                break;
            }
        }
    }
Ejemplo n.º 2
0
    public void LaunchInDirection(Vector2 target)
    {
        GameObject shot = Instantiate(projectile, transform.position, projectile.transform.rotation);
        float      x    = shot.transform.position.x;
        float      y    = shot.transform.position.y;

        x = x - target.x;
        y = y - target.y;
        float angle = Mathf.Atan2(x, y) * Mathf.Rad2Deg;

        shot.transform.rotation = Quaternion.Euler(new Vector3(0, 0, -angle));

        //print(launcherCollider + " " + gameObject.name);
        if (launcherCollider)
        {
            Physics2D.IgnoreCollision(launcherCollider, shot.GetComponent <Collider2D>());
        }
        shot.GetComponent <Rigidbody2D>().velocity = -1 * shot.transform.up * projectileVelocity;
        // shot.transform.rotation = Quaternion.LookRotation(dir, Vector3.forward);
        if (sizeMultilpier != 1)
        {
            shot.transform.localScale *= sizeMultilpier;
        }
        if (lifetimeModifier != -1)
        {
            shot.GetComponent <Temporary>().lifespan = lifetimeModifier;
        }

        Projectile2D proj = shot.GetComponent <Projectile2D>();

        if (gameObject.CompareTag("Player"))
        {
            proj.isTargetingPlayer = false;
        }
        else
        {
            proj.isTargetingPlayer = true;
        }

        proj.projectileVelocity = projectileVelocity;
        proj.damage             = damage;
        if (damageModifier != -1)
        {
            shot.GetComponent <Projectile2D>().damage += damageModifier;
        }
        proj.damageType = damageType;

        projectile = wizardProjectile;
    }
 private void OnTriggerEnter2D(Collider2D collision)
 {
     if (collision.CompareTag("Projectile") || collision.CompareTag("BouncingProjectile"))
     {
         Projectile2D projectile2D = collision.GetComponent <Projectile2D>();
         if (projectile2D.isTargetingPlayer && parent.CompareTag("Player"))
         {
             projectile2D.GetAffectedBySquander();
         }
         else if (!projectile2D.isTargetingPlayer && parent.CompareTag("Enemy"))
         {
             projectile2D.GetAffectedBySquander();
         }
     }
 }
Ejemplo n.º 4
0
    // Update is called once per frame
    void Update()
    {
        if (following == true)
        {
            if (Time.time >= timeToFollow)
            {
                timeToFollow = Time.time + blinkSpeed;
            }

            if (Time.time >= timeToStop)
            {
                Projectile2D.followOff();
                following = false;
                Destroy(gameObject);
            }
        }

        if (tripling == true)
        {
            if (Time.time >= timeToFollow)
            {
                timeToFollow = Time.time + blinkSpeed;
            }

            if (Time.time >= timeToStop)
            {
                ProjectileManager2D.disTripleShoot();
                tripling = false;
                Destroy(gameObject);
            }
        }

        if (speeding == true)
        {
            if (Time.time >= timeToFollow)
            {
                timeToFollow = Time.time + blinkSpeed;
            }

            if (Time.time >= timeToStop)
            {
                ProjectileManager2D.disFireRate();
                speeding = false;
                Destroy(gameObject);
            }
        }
    }