Beispiel #1
0
    private void AdjustWallShooterPos(BaseShooter shooter)
    {
        var temp = shooter.transform.position;

        temp.y = GetRandomVerticlePointOnTopHalfScreen();
        shooter.transform.position = temp;
    }
 public void DetachFromShooter()
 {
     if (parentShooter != null)
     {
         parentShooter.RemoveBullet(this);
         parentShooter = null;
     }
 }
    // Constantly rotates the bullet at the given speed.
    public void Initalize(BaseShooter shooter, Vector2 velocity, float accelerationSpeed, int damage, BulletType bulletType = BulletType.Undefined, float rotationSpeed = 0f, float rotationAcceleration = 0f, float rotationalOffset = 0f, bool gravityAffected = false)
    {
        Velocity          = velocity;
        AccelerationSpeed = accelerationSpeed;
        Type = bulletType;
        RotateBulletToDirection   = false;
        RotationSpeed             = rotationSpeed;
        RotationAccelerationSpeed = rotationAcceleration;
        Damage           = damage;
        parentShooter    = shooter;
        RotationalOffset = rotationalOffset;
        GravityAffected  = gravityAffected;

        bulletLifeSpan = 0;
        Grazed         = false;

        OnInitalize();
    }
Beispiel #4
0
    private void OnCollisionEnter(Collision collision)
    {
        if (collision.gameObject.tag != "Enemy" && collision.gameObject.tag != "Enemy2" && collision.gameObject.tag != "Line" && collision.gameObject.tag != "Player" && collision.gameObject.tag != "NormalShuriken" && collision.gameObject.tag != "ExplosionStar" && collision.gameObject.tag != "DamnationShuriken")
        {
            rotationSpeed  = 0;
            rb.isKinematic = true;

            var emptyObject = new GameObject();
            emptyObject.AddComponent <DestroyGameObj>();
            emptyObject.transform.parent = collision.transform;
            transform.parent             = emptyObject.transform;

            coll.enabled = false;
        }

        if (collision.gameObject.tag == "Enemy")
        {
            BaseEnemy e = collision.gameObject.GetComponentInParent <BaseEnemy>();
            e.TakeDamage(damage);

            rotationSpeed    = 0;
            rb.isKinematic   = true;
            transform.parent = collision.transform.GetChild(0);

            coll.enabled = false;

            damage = 0;
        }

        if (collision.gameObject.tag == "Enemy2")
        {
            BaseShooter s = collision.gameObject.GetComponentInParent <BaseShooter>();
            s.TakeDamage(damage);

            rotationSpeed    = 0;
            rb.isKinematic   = true;
            transform.parent = collision.transform.GetChild(0);

            coll.enabled = false;

            damage = 0;
        }
    }
    void Explosion()
    {
        Collider[] enemies = Physics.OverlapSphere(transform.position, radius);

        foreach (Collider e in enemies)
        {
            BaseEnemy enemy = e.GetComponentInParent <BaseEnemy>();

            if (enemy != null)
            {
                enemy.TakeDamage(damage);
            }

            BaseShooter enemy2 = e.GetComponentInParent <BaseShooter>();

            if (enemy2 != null)
            {
                enemy2.TakeDamage(damage);
            }
        }
    }
Beispiel #6
0
 private void UpdateNeedleShooterSprite(BaseShooter needleShooter)
 {
     needleShooter.gameObject.GetComponent <SpriteRenderer>().enabled = needleShooter.IsActive;
 }