Example #1
0
    void Shoot()
    {
        //Debug.Log("FIRING!");

        GameObject iceBulletGO = (GameObject)Instantiate(iceBulletPrefab, iceBulletSpawn.transform.position, iceBulletSpawn.transform.rotation);
        IceBullet  iceBullet   = iceBulletGO.GetComponent <IceBullet>();

        if (iceBullet != null)
        {
            iceBullet.Seek(target);
        }
    }
Example #2
0
    protected override void Awake()
    {
        base.Awake();
        shootSFX = (AudioClip)(Resources.Load("Sounds/IceSFX", typeof(AudioClip)));

        //setStats(string _name, float _adamage, float _adelay, int _cost, int _sellvalue, int _upcost)
        setStats("Ice", 0.1f, 0.0333f, 40, 25, 60);

        ice = shootParticle.GetComponent <IceBullet> ();

        ice.Setup(attackDamage, 50f);
    }
Example #3
0
    public void Shoot()
    {
        IceBullet refIceBullet = null;

        refIceBullet = Instantiate(iceBulletGo, generatorBullets.transform.position, iceBulletGo.transform.rotation).GetComponent <IceBullet>();
        if (refIceBullet != null)
        {
            refIceBullet.shooter = this;
            refIceBullet.damage  = damage;
            refIceBullet.team    = team;
            refIceBullet.ShootRight(generatorBullets);
        }
    }
Example #4
0
        public void IceEffect(IceBullet bullet)
        {
            float maxDuration       = 1f * bullet.ElementLevel * (1 - Resistant);;
            float maxSlowDownRation = 1.3f * bullet.ElementLevel * (1 - Resistant);;

            if (IceEffectDuration + bullet.EffectDuration > maxDuration)
            {
                IceEffectDuration = Math.Max(IceEffectDuration, maxDuration);
            }
            else
            {
                IceEffectDuration = IceEffectDuration + bullet.EffectDuration;
            }
            if (IceEffectSlowDownRatio + bullet.SlowDownRatio > maxSlowDownRation)
            {
                IceEffectSlowDownRatio = Math.Max(IceEffectSlowDownRatio, maxSlowDownRation);
            }
            else
            {
                IceEffectSlowDownRatio = IceEffectSlowDownRatio + bullet.SlowDownRatio;
            }
        }
Example #5
0
    public void IncreaseDamage()
    {
        if (towerSelector.CurrentTower == null)
        {
            return;
        }

        if (towerSelector.CurrentTower.name == "FireTowerView(Clone)" || towerSelector.CurrentTower.name == "Fire Tower")
        {
            if (m_baseDamageUpgradeCost <= gameManager.cashAmount)
            {
                FireBullet fireBullet = towerSelector.CurrentTower.projectileParticle.GetComponent <FireBullet>();
                fireBullet.damage = fireBullet.damage + 1;
                gameManager.currentTowerDamage.text = "DAMAGE: " + fireBullet.damage.ToString();
                gameManager.cashAmount = gameManager.cashAmount - m_baseDamageUpgradeCost;
            }
            else
            {
                Debug.Log("Not enough to upgrade a Fire Tower!");
                return;
            }
        }

        if (towerSelector.CurrentTower.name == "IceTowerView(Clone)" || towerSelector.CurrentTower.name == "Ice Tower")
        {
            IceBullet iceBullet = towerSelector.CurrentTower.projectileParticle.GetComponent <IceBullet>();
            iceBullet.damage = iceBullet.damage + 1;
            gameManager.currentTowerDamage.text = "DAMAGE: " + iceBullet.damage.ToString();
        }

        if (towerSelector.CurrentTower.name == "LightningTowerView(Clone)" || towerSelector.CurrentTower.name == "Lightning Tower")
        {
            LightningBullet lightningBullet = towerSelector.CurrentTower.projectileParticle.GetComponent <LightningBullet>();
            lightningBullet.damage = lightningBullet.damage + 1;
            gameManager.currentTowerDamage.text = "DAMAGE: " + lightningBullet.damage.ToString();
        }
    }
Example #6
0
    void FlameBulletFire()
    {
        GameObject bullet = Instantiate(IceBullet, flame1.gameObject.transform.position, Quaternion.identity);

        float cosMoving = Mathf.Cos(this.transform.eulerAngles.y / 180 * Mathf.PI);
        float sinMoving = Mathf.Sin(this.transform.eulerAngles.y / 180 * Mathf.PI);

        //Moving
        bullet.GetComponent <Rigidbody>().velocity = new Vector3(sinMoving * GameMechanics.Mechanics.IceBulletSpeed, 0, cosMoving * GameMechanics.Mechanics.IceBulletSpeed);

        IceBullet bulletIn = bullet.GetComponent <IceBullet>();

        bulletIn.slowSpeed = slowSpeed;
        if (GameMechanics.Mechanics.freezeTime)
        {
            bulletIn.burningTime = GameMechanics.Mechanics.IceBurningTime + GameMechanics.Mechanics.BonusFreezeTime;
        }
        else
        {
            bulletIn.burningTime = GameMechanics.Mechanics.IceBurningTime;
        }
        bulletIn.lifeTime           = GameMechanics.Mechanics.IceBulletLifeTime;
        bulletIn.RadiusModification = GameMechanics.Mechanics.IceRadiusModification;
    }
Example #7
0
        public virtual bool Fire(out Bullet[] bullets)
        {
            if (TargetAimed != null && TargetAimed.HP > 0 && !InReloading)
            {
                if (Range + 32f < DistanceFrom(TargetAimed.PositionX, TargetAimed.PositionY))
                {
                    TargetExitRange(TargetAimed);
                    return(Fire(out bullets));
                }
                else
                {
                    InReloading = true;
                    bullets     = new Bullet[BulletNumber];
                    for (int i = 0; i < BulletNumber; i++)
                    {
                        BulletProperties bulletProperties = new BulletProperties
                        {
                            damage       = Damage,
                            elementType  = ElementType,
                            isPenetrable = false,
                            positionX    = PositionX,
                            positionY    = PositionY,
                            speed        = Speed,
                            rotation     = Convert.ToSingle(Math.Atan2(TargetAimed.PositionY - PositionY, TargetAimed.PositionX - PositionX) * 180.0 / Math.PI - BulletSpanRange * (BulletNumber - 1) / 2.0 + BulletSpanRange * i)
                        };
                        switch (ElementType)
                        {
                        case ElelmentType.Normal:
                            bullets[i] = new Bullet(bulletProperties, this);
                            break;

                        case ElelmentType.Ice:
                            bullets[i] = new IceBullet(bulletProperties, this, ElementLevel);
                            break;

                        case ElelmentType.Fire:
                            bullets[i] = new FireBullet(bulletProperties, this, ElementLevel);
                            break;

                        case ElelmentType.Thunder:
                            bulletProperties.isPenetrable = true;
                            bullets[i] = new ThunderBullet(bulletProperties, this, ElementLevel);
                            break;

                        case ElelmentType.Wind:
                            bullets[i] = new WindBullet(bulletProperties, this, ElementLevel, TargetAimed);
                            break;

                        case ElelmentType.Poison:
                            bulletProperties.isPenetrable = true;
                            bullets[i] = new PoisonBullet(bulletProperties, this, ElementLevel);
                            break;

                        case ElelmentType.Wood:
                            bullets[i] = new WoodBullet(bulletProperties, this);
                            break;
                        }
                    }
                    return(true);
                }
            }
            else
            {
                TargetAimed = null;
                bullets     = null;
                return(false);
            }
        }
Example #8
0
    void OnTriggerEnter2D(Collider2D collider)
    {
        Scene scene = SceneManager.GetActiveScene();

        if (scene.name == "FireSlimeBoss")
        {
            if (collider.GetComponent <FusedLaser>() != null)
            {
                FusedLaser fusedLaser = collider.GetComponent <FusedLaser>();
                UnderAttack(fusedLaser.attack);
            }
            else if (collider.GetComponent <MoltenLava_FireSlime1>() != null)
            {
                MoltenLava_FireSlime1 moltenLava = collider.GetComponent <MoltenLava_FireSlime1>();
                UnderAttack(moltenLava.attack);
            }
            else if (collider.GetComponent <MoltenLava_FireSlimeBoss>() != null)
            {
                MoltenLava_FireSlimeBoss moltenLava = collider.GetComponent <MoltenLava_FireSlimeBoss>();
                UnderAttack(moltenLava.attack);
            }
            else if (collider.GetComponent <FireBall>() != null)
            {
                FireBall fireBall = collider.GetComponent <FireBall>();
                UnderAttack(fireBall.attack);
            }
            else if (collider.GetComponent <Magma_FireSlimeBoss>() != null)
            {
                Magma_FireSlimeBoss magma = collider.GetComponent <Magma_FireSlimeBoss>();
                UnderAttack(magma.attack);
            }
        }
        else if (scene.name == "IceSlimeBoss")
        {
            if (collider.GetComponent <Ice>() != null)
            {
                Ice ice = collider.GetComponent <Ice>();
                UnderAttack(ice.GetAttack());
            }

            if (collider.GetComponent <IceBullet>() != null)
            {
                IceBullet iceBullet = collider.GetComponent <IceBullet>();
                UnderAttack(iceBullet.GetAttack());
            }

            if (collider.GetComponent <IceLaser>() != null)
            {
                IceLaser iceLaser = collider.GetComponent <IceLaser>();
                UnderAttack(iceLaser.GetAttack());
            }
            if (collider.GetComponent <IceBlock>() != null)
            {
                IceBlock iceBlock = collider.GetComponent <IceBlock>();
                UnderAttack(iceBlock.attack);
            }
            if (collider.GetComponent <IceBullet_IceSlimeBoss>() != null)
            {
                IceBullet_IceSlimeBoss iceBullet = collider.GetComponent <IceBullet_IceSlimeBoss>();
                UnderAttack(iceBullet.attack);
            }
            if (collider.GetComponent <Skill2IceBullet_IceSlimeBoss>() != null)
            {
                UnderAttack(1);
            }
            if (collider.GetComponent <Skill4IceBullet>() != null)
            {
                Skill4IceBullet iceBullet = collider.GetComponent <Skill4IceBullet>();
                UnderAttack(iceBullet.attack);
            }
        }
    }