Пример #1
0
    void OnTriggerEnter(Collider other)
    {
        if (other.gameObject.tag == "CheckPoint" && isTriggerd != true)
        {
            Debug.Log("Reached");
            isTriggerd = true;
            MoveEnemy();
        }

        BulletDamage beam = other.GetComponent <BulletDamage>();

        if (beam)
        {
            Debug.Log("Hit");
            Health -= beam.GetDamage();
            beam.Hit();
            Destroy(beam);
            if (Health <= 0)
            {
                DeathSound.Play();
                Destroy(gameObject);
                enemyCount--;
            }
        }
    }
Пример #2
0
 // Use this for initialization
 void Start()
 {
     monster       = GetComponent <Monster>();
     anim3         = gameObject.GetComponent <Animator>();
     playerControl = GetComponent <PlayerControl>();
     bulletDamage  = GetComponent <BulletDamage>();
 }
Пример #3
0
    void Shoot()
    {
        Instantiate(tempBullet, bulletSpawn.position, bulletSpawn.rotation);
        BulletDamage bulletDamage = tempBullet.GetComponent <BulletDamage>();

        bulletDamage.attackBoost = AttackBooster;

        sound.PlayOneShot(blast);
        //AudioSource.PlayClipAtPoint (blast, transform.position);
    }
Пример #4
0
    void OnTriggerEnter(Collider collider)
    {
        if ((bulletHitMask.value & 1 << collider.gameObject.layer) != 0)
        {
            BulletUtil.deactivateBullet(gameObject);

            switch (bulletType)
            {
            case ShooterTypeEnum.FRIENDLY:
                FriendlyBulletObjectPool.instance.returnPooledObject(gameObject);
                break;

            case ShooterTypeEnum.HOSTILE:
                EnemyBulletObjectPool.instance.returnPooledObject(gameObject);
                break;
            }

            GameObject impactEffectParticleSystem;
            switch (collider.gameObject.layer)
            {
            case 6:     //Player.
                LivesManager.instance.decrementLivesWithInvul();
                break;

            case 9:     // Boundary.
                break;

            case 10:     // Indestructible.
                impactEffectParticleSystem = (GameObject)Instantiate(impactEffect, transform.position, transform.rotation);
                Destroy(impactEffectParticleSystem, 1.0f);
                break;

            default:
                impactEffectParticleSystem = (GameObject)Instantiate(impactEffect, transform.position, transform.rotation);
                Destroy(impactEffectParticleSystem, 1.0f);

                BaseHealth   collidedHealthComponent = collider.gameObject.GetComponent <BaseHealth>();
                BulletDamage damageComponent         = gameObject.GetComponent <BulletDamage>();
                if (collidedHealthComponent != null && damageComponent != null)
                {
                    collidedHealthComponent.takeDamage(damageComponent.damage);
                }
                break;
            }
        }
    }
Пример #5
0
    private void OnTriggerEnter2D(Collider2D collision)
    {
        Enemy        enemy  = collision.GetComponent <Enemy>();
        BulletDamage bullet = collision.GetComponent <BulletDamage>();

        if (collision.tag == "PowerUp")
        {
            powerUp++;
            if (powerUp > 6)
            {
                powerUp = 0;
                life++;
            }
            Destroy(collision.gameObject);
        }

        if (!isInvincible)
        {
            if (collision.tag == "Stage")
            {
                Hurt(1);
            }
            else
            {
                if (collision.tag == "EnemyBullet")
                {
                    Hurt(bullet.damage);
                    Destroy(collision.gameObject);
                }
            }
            if (enemy != null)
            {
                Die();
                if (enemy.canColliderDesity)
                {
                    enemy.Hurt(enemy.hp);
                }
                else
                {
                    enemy.Hurt(3);
                }
            }
        }
    }
        public void Execute(Entity ent, int idx, ref Health health, [ReadOnly] ref Translation pos)
        {
            // run through all the collisions for this entity
            int totalDamage = 0;
            NativeMultiHashMapIterator <Entity> iter;
            CollisionInfo info;

            if (collisions.TryGetFirstValue(ent, out info, out iter))
            {
                do
                {
                    BulletDamage damageInfo = damageMap[info.otherEnt];
                    totalDamage += damageInfo.damage;
                    effectReqUtil.CreateParticleRequest(info.contactPos,
                                                        EffectRequestSystem.ParticleType.HitSpark);

                    // handle events to happen when bullet hits
                    if (damageInfo.pierceCount > 0)
                    {
                        // causes a pierce to count once per frame
                        --damageInfo.pierceCount;
                        commandBuffer.SetComponent(idx, info.otherEnt, damageInfo);
                    }
                    else
                    {
                        commandBuffer.DestroyEntity(idx, info.otherEnt);
                    }
                }while(collisions.TryGetNextValue(out info, ref iter));

                // take damage and die
                health.health -= totalDamage;
                if (health.health <= 0)
                {
                    commandBuffer.DestroyEntity(idx, ent);
                    effectReqUtil.CreateParticleRequest(pos.Value,
                                                        EffectRequestSystem.ParticleType.Explosion);
                }
            }
        }
Пример #7
0
    protected virtual void OnTriggerEnter2D(Collider2D collision)
    {
        if (!invincible)
        {
            for (int i = 0; i < hurtTags.Length; i++)
            {
                if (collision.tag == hurtTags[i])
                {
                    int          damage = maxHp;
                    BulletDamage bullet = collision.GetComponent <BulletDamage>();

                    if (bullet)
                    {
                        damage = bullet.damage;
                        bullet.OnHit();
                    }

                    Hurt(damage);
                }
            }
        }
    }
    protected override void InitWeapon()
    {
        ShotPosMarker[] markers = GetComponentsInChildren <ShotPosMarker>();

        if (markers.Length > 0)
        {
            shotPosTrans = new Transform[10];

            for (int i = 0; i < markers.Length; i++)
            {
                shotPosTrans[i] = markers[i].transform;
            }
        }

        weapons[0] = new NormalWeapon(shotPosTrans, true);
        weapons[1] = new DoubleCannon(shotPosTrans, true);
        weapons[2] = new Laser(shotPosTrans, true);

        missile = new Missile(shotPosTrans, true);
        laser   = new BulletDamage();

        currentWeaponIdx = 0;
        currentWeapon    = weapons[currentWeaponIdx];
    }
Пример #9
0
    void shoot()
    {
        for (int i = 0; i < targetArray.Length; i++)
        {
            GameObject bullet = shooterType == ShooterTypeEnum.FRIENDLY ? FriendlyBulletObjectPool.instance.getPooledObject()
                                                                        : EnemyBulletObjectPool.instance.getPooledObject();

            Vector3 launchOrigin = new Vector3(transform.position.x, bullet.transform.position.y, transform.position.z)
                                   + targetArray[i].normalized * GameConstants.gridSize / 2;

            if (bullet != null)
            {
                bullet.transform.position = launchOrigin;
                bullet.transform.rotation = transform.rotation;
            }
            else
            {
                bullet = (GameObject)Instantiate(bulletPrefab.gameObject, launchOrigin, transform.rotation);
            }
            BulletUtil.activateBullet(bullet);

            BulletMovement bulletMovementComponent = bullet.GetComponent <BulletMovement>();
            if (bulletMovementComponent != null)
            {
                bulletMovementComponent.setTarget(targetArray[i]);
                bulletMovementComponent.setVelocity(velocity);
                bulletMovementComponent.setType(shooterType);
            }

            BulletDamage bulletDamageComponent = bullet.GetComponent <BulletDamage>();
            if (bulletDamageComponent != null)
            {
                bulletDamageComponent.setDamage(damage);
            }
        }
    }
Пример #10
0
 void Start()
 {
     bulletDamage = GetComponent <BulletDamage>();
 }