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); } }
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); }
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); } }
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; } }
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(); } }
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; }
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); } }
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); } } }