public void Hit(Bullet bullet) { // Stun Stun(bullet.transform.up); float damage = EnemyFactory.getInstance().calculateDamage(this); this.Life -= damage; GameObject text = Instantiate(DamageText, transform.position, Quaternion.identity) as GameObject; text.transform.SetParent(GameObject.Find("OverlayCanvas").transform); text.GetComponent <Text>().text = damage.ToString(); float scaleX = 4 * (Life / MaxLife) + 0.1f; if (scaleX < 0) { scaleX = 0; } transform.FindChild("HealthBar").gameObject.SetActive(true); transform.FindChild("HealthBar").localScale = new Vector3(scaleX, 1, 1); //Debug.Log("Damage " + damage + ", remaining life " + this.Life); if (this.Life <= 0) { PowerUpFactory.getInstance().InstantiatePowerUp(this.PowerUpData, transform.position, Quaternion.identity); Destroy(this.gameObject); } else { } Destroy(bullet.gameObject); }
public EnemyData getBoss(int roomID, float lifeModifier) { EnemyData bossData = new EnemyData(); bossData.type = getRandomBossIndex(); WeaponData currentPlayerWeapon = Globals.GetPlayerController().WeaponData; bossData.Life = lifeModifier * (((currentPlayerWeapon.Tier * Random.Range(5f, 20f))) + ((roomID * 5) * Random.Range(1f, 1.5f)));//Mathf.RoundToInt((27 + (currentPlayerWeapon.Tier * 5)) * 5 / (dmg_calc(roomID, currentPlayerWeapon, bossData))); bossData.PowerUpData = PowerUpFactory.getInstance().GetRandomPowerUp(); bossData.Scale = Random.Range(Constants.ENEMY_MIN_SCALE, Constants.ENEMY_MAX_SCALE); addRandomColorOverlay(bossData); return(bossData); }