private static FinalBossBeam FinalBossBeamOnInit(On.Celeste.FinalBossBeam.orig_Init orig, FinalBossBeam self, FinalBoss boss, Player target) { self.TrySetEntityId2(boss.HasEntityId2() ? boss.GetEntityId2().ToString() : "null", target.GetEntityId2()); self.SetPlayerPosition(target); return(orig(self, boss, target)); }
void Start() { finalBossController = (FinalBoss)finalBoss.GetComponent("FinalBossController"); gateOpener = (GateOpener)(gameObject.GetComponent("GateOpener")); gatlingWeapon = GameObject.Find("GatlingWeapon"); doubleCannonballWeapon = GameObject.Find("DoubleCannonballWeapon"); }
private static void FinalBossOnTriggerFallingBlocks(On.Celeste.FinalBoss.orig_TriggerFallingBlocks orig, FinalBoss self, float badelineX) { ReverseComponent reverseComponent = self.Get <ReverseComponent>(); if (reverseComponent != null) { var fallingBlocks = reverseComponent.FinalBossReversed.fallingBlocks; while (fallingBlocks.Count > 0 && fallingBlocks[0].Scene == null) { fallingBlocks.RemoveAt(0); } var num = 0; while (fallingBlocks.Count > 0 && fallingBlocks[0].X > badelineX) { if (!(fallingBlocks[0] is FallingBlock fallingBlock)) { continue; } fallingBlock.StartShaking(); fallingBlock.Triggered = true; fallingBlock.FallDelay = 0.4f * num; ++num; fallingBlocks.RemoveAt(0); } } else { orig(self, badelineX); } }
void Update() { if (Input.GetMouseButtonDown(0)) { muzzleFlash.Play(); mAudioSrc.Play(); Vector3 point = new Vector3(_camera.pixelWidth / 2, _camera.pixelHeight / 2, 0); Ray ray = _camera.ScreenPointToRay(point); RaycastHit hit; if (Physics.Raycast(ray, out hit)) { if (Physics.Raycast(ray, out hit)) { GameObject hitObjec = hit.transform.gameObject; FinalBoss targe = hitObjec.GetComponent <FinalBoss>(); Instantiate(impactEffect, hit.point, Quaternion.LookRotation(hit.normal)); if (targe != null) { targe.ReactToHit(damage); } } } if (Physics.Raycast(ray, out hit)) { GameObject hitObject = hit.transform.gameObject; ReactiveTarget target = hitObject.GetComponent <ReactiveTarget>(); Instantiate(impactEffect, hit.point, Quaternion.LookRotation(hit.normal)); if (target != null) { target.ReactToHit(damage); } } } }
private static void ModHitbox(On.Monocle.Entity.orig_DebugRender orig, Entity self, Camera camera) { if (!CelesteTasModule.Settings.ShowHitboxes) { orig(self, camera); return; } orig(self, camera); if (self is FinalBossBeam finalBossBeam) { DynData <FinalBossBeam> dynData = finalBossBeam.GetDynDataInstance(); if (dynData.Get <float>("chargeTimer") <= 0f && dynData.Get <float>("activeTimer") > 0f) { FinalBoss boss = dynData.Get <FinalBoss>("boss"); float angle = dynData.Get <float>("angle"); Vector2 vector = boss.BeamOrigin + Calc.AngleToVector(angle, 12f); Vector2 vector2 = boss.BeamOrigin + Calc.AngleToVector(angle, 2000f); Vector2 value = (vector2 - vector).Perpendicular().SafeNormalize(2f); Player player = boss.Scene.CollideFirst <Player>(vector + value, vector2 + value); Draw.Line(vector + value, vector2 + value, Color.Aqua); Draw.Line(vector - value, vector2 - value, Color.Aqua); Draw.Line(vector, vector2, Color.Aqua); } } }
public FinalBossReversed(EntityData data, Vector2 offset) { finalBoss = new FinalBoss(data, offset) { new ReverseComponent(this) }; finalBoss.Remove(finalBoss.Get <CameraLocker>()); }
public FinalBossMoveMissile(FinalBoss b, float move, GameObject fast, Transform p) { this.boss = b; moveSpeed = move; this.fastMissilePrefab = fast; playerTransform = p; dir = new Vector3(-1.0f, 0f, 0f); }
//TODO: start combat here. public override void OnEvent(FinalBoss evnt) { BoltConsole.Write("Final Boss battle (not yet implemented so everyone dies)"); BoltConsole.Write("Final Boss battle (not yet implemented so everyone dies)"); PanelHolder.instance.displayNotify("Final Boss Battle", "(not yet implemented so everyone dies)", "OK"); playerSpellcaster = playerEntity.GetComponent <Player>().spellcaster; playerSpellcaster.TakeDamage((int)(playerSpellcaster.fCurrentHealth)); SpellCaster.savePlayerData(playerSpellcaster); }
void Start() { player = GameObject.FindGameObjectWithTag("Player"); cannonStartingRotation = cannon.transform.rotation; armStartingRotation = arm.transform.rotation; health = maxHealth; finalBoss = this; SelectAttack(); }
public List <Enemy> getEnemies(int floor) { List <Enemy> enemies = new List <Enemy>(); if (floor == 0) { enemies.Add(TutorialEnemy.Create()); } else if (floor == 15) { enemies.Add(MiniBoss.Create(16)); enemies.Add(MiniBoss.Create(25)); enemies.Add(MiniBoss.Create(36)); } else if (floor == 30) { enemies.Add(MiniBoss.Create(26)); enemies.Add(MiniBoss.Create(27)); enemies.Add(MiniBoss.Create(28)); } else if (floor == 45) { enemies.Add(MiniBoss.Create(11)); enemies.Add(MiniBoss.Create(13)); } else if (floor == 46) { enemies.Add(MiniBoss.Create(17)); enemies.Add(MiniBoss.Create(19)); } else if (floor == 47) { enemies.Add(MiniBoss.Create(64)); enemies.Add(MiniBoss.Create(81)); } else if (floor == 48) { enemies.Add(MiniBoss.Create(89)); enemies.Add(MiniBoss.Create(97)); } else if (floor == 49) { enemies.Add(MiniBoss.Create(3)); enemies.Add(MiniBoss.Create(6)); enemies.Add(MiniBoss.Create(9)); } else if (floor == 50) { enemies.Add(FinalBoss.Create()); } else { addNormalEnemies(floor, ref enemies); } return(enemies); }
private void Start() { player = GameObject.FindWithTag("Player").transform; boss = GameObject.FindWithTag("FinalBoss").transform; archer = GameObject.FindWithTag("Archer").transform; soldier = GameObject.FindWithTag("Soldier").transform; finalBossScript = FindObjectOfType <FinalBoss>(); archerScript = FindObjectOfType <Archer>(); soldierScript = FindObjectOfType <Soldier>(); }
public override Enemy Create(BulletManager bulletManager, EnemyConfig enemy, GameData gameData, Vector2 origin) { this.bulletManager = bulletManager; FinalBoss newEnemy = new FinalBoss(bulletManager, gameData); //Load - sets position of enemy as well Load(newEnemy, enemy, origin); return(newEnemy); }
private void OnCollisionEnter(Collision other) { if (other.gameObject.CompareTag("Player")) { audioSrc.PlayOneShot(iceCollide); playST = other.gameObject.GetComponent <PlayerStats>(); playST.doDamage(5); Destroy(gameObject); } else if (other.gameObject.CompareTag("GhostBoss")) { if (Hit) { audioSrc.PlayOneShot(iceCollide); boss = other.gameObject.GetComponent <GhostBoss>(); if (CrystalProjectile) { boss.HitShieldCounter(1); } else { boss.HitShieldCounter(2); } Destroy(gameObject); } } else if (other.gameObject.CompareTag("FinalBoss")) { if (Hit) { audioSrc.PlayOneShot(iceCollide); finalBoss = other.gameObject.GetComponent <FinalBoss>(); finalBoss.DoHitPoints(5); Destroy(gameObject); } } else if (other.gameObject.CompareTag("Eye")) { if (Hit) { audioSrc.PlayOneShot(iceCollide); Eye = other.gameObject.GetComponent <EyeEnemy>(); if (Eye != null) { Eye.FreezeEnemy(true); } Destroy(gameObject); } } else { Destroy(gameObject, 5); } }
public void Attacking(int num) { finBoss = ScriptObject.GetComponent <FinalBoss>(); if (num == 1) { finBoss.Attacked(true); } else { finBoss.Attacked(false); } }
public static FinalBossBeam Clone(this FinalBossBeam finalBossBeam) { FinalBoss boss = finalBossBeam.GetField("boss")?.TryFindOrCloneObject() as FinalBoss; if (boss == null) { return(null); } return(Engine.Pooler.Create <FinalBossBeam>().Init(boss, new Player(finalBossBeam.GetPlayerPosition(), PlayerSpriteMode.Madeline))); }
public void StartCharging(int num) { if (num == 1) { finBoss = ScriptObject.GetComponent <FinalBoss>(); finBoss.Charging(true); } else { finBoss.Charging(false); } }
/// <summary> /// Sent when another object enters a trigger collider attached to this /// object (2D physics only). /// </summary> /// <param name="other">The other Collider2D involved in this collision.</param> void OnTriggerEnter2D(Collider2D other) { if (other.name == "HitBox" | other.tag == "Player" & this.name == "crank-down") { Debug.Log(other.name); FinalBoss finalBossSrc = finalBoss.GetComponent <FinalBoss>(); finalBossSrc.enableCrackUp(); finalBossSrc.disableCrackDown(); finalBossSrc.isInCrack = true; } }
public void Flash(int num) { if (num == 1) { finBoss = ScriptObject.GetComponent <FinalBoss>(); finBoss.AttackFlash(1); } else { finBoss = ScriptObject.GetComponent <FinalBoss>(); finBoss.AttackFlash(0); } }
public override void Update(GameTime gameTime) { //_bg = waveHelper.ChangeBg(gameTime); //This is a local state timer, nothing to do with gameTime!!! //min unit: 100 Millisecond(See property _min in State.cs) //invoke GetWave for each second #region StateTimer _mtemp += gameTime.ElapsedGameTime.TotalMilliseconds; if ((int)_mtimer / _min != (int)_mtemp / _min) { _mtimer = _mtemp; if ((int)_mtimer % 1000 == 0 && (int)_mtimer != 0) { _stimer++; _mtimer = 0; _mtemp = 0; } _background.SetTexture(waveHelper.ChangeBg(gameTime, (int)_stimer, (int)_mtimer)); waveHelper.GetWave(_sprites, gameTime, (int)_stimer, (int)_mtimer); if (!waveHelper.CheckBossTime(gameTime)) { _game.ChangeState(new GameOver(_game, _content, 1)); } if (FinalBoss.GetInstance().IsDead) { _game.ChangeState(new GameOver(_game, _content, 2)); } // Console.Out.Write(((int)_stimer).ToString()); // Console.Out.Write(" "); // Console.Out.WriteLine(((int)_mtimer).ToString()); } #endregion foreach (var sprite in _sprites.ToArray()) { sprite.Update(gameTime, _sprites); } PostUpdate(gameTime); }
public void StartWalking(int num) { if (num > 0) { shake = false; finBoss = ScriptObject.GetComponent <FinalBoss>(); finBoss.SwitchState(FinalBoss.EnemyState.isWalking); } else { shake = false; finBoss = ScriptObject.GetComponent <FinalBoss>(); finBoss.SwitchState(FinalBoss.EnemyState.notWalking); } }
static void PlayerProjectilesCollisions() { foreach (Projectile projectile in ProjectilesManager.playerProjectiles) { if (RoomsManager.CurrentRoom == RoomsManager.Rooms.finalBoss) { if (FinalBoss.BossHitByRectangle(projectile.Rectangle)) { projectile.active = false; } } else if (RoomsManager.CurrentRoom == RoomsManager.Rooms.midBoss) { if (!MidBoss.Dead && MidBoss.BossHitByRect(projectile.Rectangle)) { projectile.active = false; } } else if (RoomsManager.CurrentRoom == RoomsManager.Rooms.churchAltarRoom) { foreach (Torch t in TorchManager.torches) { if (t.TorchHitByRect(projectile.Rectangle)) { projectile.active = false; } } } foreach (Enemy1 enemy in EnemyManager.enemyRoomManagers[(int)RoomsManager.CurrentRoom].enemiesType1) { if (!enemy.Dead && enemy.Enemy1HitByRect(projectile.Rectangle)) { projectile.active = false; } } foreach (Enemy2 enemy in EnemyManager.enemyRoomManagers[(int)RoomsManager.CurrentRoom].enemiesType2) { if (!enemy.Dead && enemy.Enemy2HitByRect(projectile.Rectangle)) { projectile.active = false; } } } }
static void PlayerCollisions(float elapsedTime) { #region COLLISION PLAYER-HARMFUL TILES if (MapsManager.maps[(int)RoomsManager.CurrentRoom].HarmfulTileIntersectsRectangle(Player.CollisionRectangle)) { Player.takeDamage(); return; } #endregion #region COLLISIONS PLAYER-FIREBALLS if (FireBallsManager.FireballIntersectsRectangle(Player.CollisionRectangle)) { Player.takeDamage(); return; } #endregion #region COLLISION PLAYER-LAVA GEYSER if (LavaGeyserManager.LavaGeyserIntersectsRectangle(Player.CollisionRectangle)) { Player.takeDamage(); return; } #endregion #region COLLISION PLAYER-FINAL BOSS WINGS if (RoomsManager.CurrentRoom == RoomsManager.Rooms.finalBoss) { if (FinalBoss.WingHitByReactangle(Player.CollisionRectangle, Player.JumpSpeed.Y, elapsedTime)) { Player.Rebound(2); } } #endregion #region COLLISION PLAYER-MIDBOSS //If the player is in the midboss room, and comes into contact with the midboss whilst it is moving //Player will take damage if (RoomsManager.CurrentRoom == RoomsManager.Rooms.midBoss) { if (MidBoss.bossState == MidBoss.BossState.move && Player.CollisionRectangle.Intersects(MidBoss.BossCollisionRect)) { Player.takeDamage(); } } #endregion }
public override void Attack() { if (m_weaponDelay <= 0) { setDelayWeapon(Character.AXE_DELAY); Vector2 pos = transform.position; if (m_facing == FACING_LEFT) { pos.x -= 2; } else { pos.x += 2; } var colliders = Physics2D.OverlapCircleAll(pos, 1); var collider = ShortestDistance(colliders); if (collider != null) { if (collider.tag == "tree") { collider.GetComponent <Tree>().AttackTree(); } else if (collider.tag == "stone") { collider.GetComponent <Rock>().AttackRock(); } else if (collider.tag == "redEnemy") { collider.GetComponent <RedEnemy>().AttackByCharacter(); } else if (collider.tag == "resourceEater") { ResourcesEater t = collider.GetComponent <ResourcesEater>(); t.AttackByCharacter(); } else if (collider.tag == "finalBoss") { FinalBoss t = collider.GetComponent <FinalBoss>(); t.AttackByCharacter(); } } } }
IEnumerator CometDamage() { GameObject projectile; projectile = Instantiate(DamagingProjectile, transform.position + new Vector3(1, 0, 0), transform.rotation); if (gameObject.tag == "FinalBoss") { FinalBoss fb = transform.parent.GetComponent <FinalBoss>(); yield return(new WaitForSeconds(0.75f)); fb.DealDamage(25); } else { Enemy enemyScript = transform.parent.GetComponent <Enemy>(); yield return(new WaitForSeconds(0.75f)); enemyScript.takeDamage(25); } }
//spawn boss after animation finished IEnumerator SpawnBoss() { yield return(new WaitForSeconds(0.5f)); //GameObject _boss = Instantiate(boss, gameObject.transform.position, Quaternion.identity); boss.transform.localScale = new Vector3(0.1f, 0.1f, 1.0f); boss.transform.position = gameObject.transform.position; finalBoss = boss.GetComponent <FinalBoss>(); finalBoss.isActive = true; GameObject[] items = GameObject.FindGameObjectsWithTag("Item"); foreach (var item in items) { Destroy(item); } Destroy(gameObject); }
private void TrySwitchSprite(FinalBoss finalBoss) { if (patternIndex == 0) { PlayerSprite normalSprite = new PlayerSprite(PlayerSpriteMode.Badeline) { Scale = { X = -1f } }; normalSprite.Play("laugh"); PlayerHair normalHair = new PlayerHair(normalSprite) { Color = BadelineOldsite.HairColor, Border = Color.Black, Facing = Facings.Left }; finalBoss.NormalSprite = normalSprite; NormalHairFieldInfo.SetValue(finalBoss, normalHair); finalBoss.Add(normalHair); finalBoss.Add(normalSprite); if (finalBoss.Sprite != null) { normalSprite.Position = finalBoss.Sprite.Position; finalBoss.Remove(finalBoss.Sprite); if (finalBoss.Get <SpriteRemovedComponent>() == null) { finalBoss.Add(new SpriteRemovedComponent()); } // 许多方法需要 Sprite 所以暂时设置为 null,等到 OnPlayer 之时才设置为 null // finalBoss.Sprite = null; } } else if (finalBoss.NormalSprite != null) { CreateBossSpriteMethodInfo?.Invoke(finalBoss, null); } }
public static FinalBossShot Clone(this FinalBossShot finalBossShot) { FinalBoss boss = finalBossShot.GetField("boss")?.TryFindOrCloneObject() as FinalBoss; if (boss == null) { return(null); } if (finalBossShot.GetField("target") == null) { return(Engine.Pooler.Create <FinalBossShot>() .Init(boss, (Vector2)finalBossShot.GetField("targetPt"))); } if (Engine.Scene.GetPlayer() is Player player) { return(Engine.Pooler.Create <FinalBossShot>() .Init(boss, player, (float)finalBossShot.GetField("angleOffset"))); } return(null); }
public void _KillFinalBoss(FinalBoss _FinalBoss) { // Spawn reward Instantiate(_FinalBoss.reward, _FinalBoss.transform.position, Quaternion.identity); // Let's play some sound audioManager.PlaySound(_FinalBoss.deathSoundName); //Add experience and money _curExp += 40; Money += _FinalBoss.moneyDrop; // Add particles GameObject _clone = Instantiate(_FinalBoss.deathParticles, _FinalBoss.transform.position, Quaternion.identity) as GameObject; Destroy(_clone, 5f); // Go camerashake cameraShake.Shake(_FinalBoss.shakeAmt, _FinalBoss.shakeLength); Destroy(_FinalBoss.gameObject); }
private void Awake() { boss = transform.parent.GetComponent <FinalBoss>(); }
// Start is called before the first frame update void Start() { firstBoss = firstBoss.GetComponent <FirstBoss>(); finalBoss = finalBoss.GetComponent <FinalBoss>(); }
// Update is called once per frame void Update() { if (SceneManager.GetActiveScene().name == "Main2" || SceneManager.GetActiveScene().name == "Main4") { if (bossDead) { GameObject[] gameObjects = GameObject.FindGameObjectsWithTag("EnemyBullets"); for (var i = 0; i < gameObjects.Length; i++) { Destroy(gameObjects[i]); } Player1 player1 = (Player1)FindObjectOfType(typeof(Player1)); player1.savePlayer(); canSwitch = true; } FinalBoss finalBoss = (FinalBoss)FindObjectOfType(typeof(FinalBoss)); if (SceneManager.GetActiveScene().name == "Main4" && spawnedEnemies == 0 && finalBoss.Live > finalBoss.MaxLive / 2) { float spawnPlace; // = ((int)(Random.value * 10) % 2) == 0 ? -103 : 35; if (((int)(Random.value * 10) % 2) == 0) { spawnPlace = -103; if (spawnLeft > spawnRight + 1) { spawnPlace = 35; spawnRight++; } else { spawnLeft++; } } else { spawnPlace = 35; if (spawnRight > spawnLeft + 1) { spawnPlace = -103; spawnLeft++; } else { spawnRight++; } } Instantiate(enemies[(int)Mathf.Floor(Random.value * enemies.Length)], new Vector3(spawnPlace, transform.position.y - Random.value * 10 * Mathf.Pow(-1, (int)Random.value)), Quaternion.Euler(0, 0, -90)); spawnedEnemies++; } } else if (SceneManager.GetActiveScene().name == "Main1" || SceneManager.GetActiveScene().name == "Main3") { for (int i = levels - 1; i >= 0; i--) { if (Time.time > levelStartTime[i] && spawnedEnemies <= 0) { currentLevel = i; break; } } if (spawnedEnemies < levelSpawn[currentLevel] && levelStartTime[levels - 1] + levelMinTime > Time.time) { // maximum each side spawn 2 enemies consecutively float spawnPlace; // = ((int)(Random.value * 10) % 2) == 0 ? -103 : 35; if (((int)(Random.value * 10) % 2) == 0) { spawnPlace = -103; if (spawnLeft > spawnRight + 1) { spawnPlace = 35; spawnRight++; } else { spawnLeft++; } } else { spawnPlace = 35; if (spawnRight > spawnLeft + 1) { spawnPlace = -103; spawnLeft++; } else { spawnRight++; } } Instantiate(enemies[(int)Mathf.Floor(Random.value * enemies.Length)], new Vector3(spawnPlace, transform.position.y - Random.value * 10 * Mathf.Pow(-1, (int)Random.value)), Quaternion.Euler(0, 0, -90)); spawnedEnemies++; } else if (Time.time > levelStartTime[currentLevel] && Time.time > levelStartTime[Mathf.Clamp(currentLevel + 1, 0, levels - 1)] && spawnedEnemies > 0) { levelSpawn[currentLevel] = 0; levelStartTime[Mathf.Clamp(currentLevel + 1, 0, levels - 1)] = Time.time + 1; for (int i = currentLevel + 2; i < levels; i++) { levelStartTime[i] = levelStartTime[i - 1] + levelMinTime; } } else if (spawnedEnemies == 0 && levelSpawn[levels - 1] == 0) { GameObject[] gameObjects = GameObject.FindGameObjectsWithTag("EnemyBullets"); for (var i = 0; i < gameObjects.Length; i++) { Destroy(gameObjects[i]); } Player1 player1 = (Player1)FindObjectOfType(typeof(Player1)); player1.savePlayer(); canSwitch = true; //switch scene } } }
public static void KillFinalBoss(FinalBoss FinalBoss) { gm._KillFinalBoss(FinalBoss); }
// Update is called once per frame void Update() { checkPower(); if (!isPausedCheck.GetIsPaused()) { cooldown = cooldown - Time.deltaTime; if (cooldown <= 0) { if (Input.GetMouseButtonDown(0)) { //Melee Attack StartCoroutine("animCode"); GameObject.FindGameObjectWithTag("MusicHandler").GetComponent <AudioController>().PlaySoundEffect(7); //Case 7 is Melee Attack. cooldown = duplicateCD; if (Physics.Raycast(transform.parent.position, transform.forward, out hit, SWORD_ATTACK_DISTANCE)) { Debug.Log("RNG rolled!"); if (hit.collider.gameObject.CompareTag("ProjectileEnemy") || hit.collider.gameObject.CompareTag("SwordEnemy") || hit.collider.gameObject.CompareTag("FinalBoss")) { GameObject obj = hit.collider.gameObject; Enemy enemyScript = hit.collider.gameObject.GetComponent <Enemy>(); PowerBehaviour powers = GameObject.FindWithTag("PowerHandler").GetComponent <PowerBehaviour>(); var rand = new System.Random(); Player player = GameObject.FindWithTag("MainCamera").GetComponent <Player>(); int RNGRoll = rand.Next(0, 9999); if (RNGRoll > RAIN_POWER_CHANCE && RNGRoll < RAIN_POWER_CHANCE * 2 && player.GetRainAvailable()) { if (powers.powerHandler[11].GetPowerActive() == true) { RNGRoll = 1; } } if (RNGRoll < RAIN_POWER_CHANCE) { if (powers.powerHandler[12].GetPowerActive() == true) { isPausedCheck.ShowPowerActivatedMessage(1); powers.DisableAllFires(); player.SetRainAvailable(false); } } RNGRoll = rand.Next(0, 9999); //Roll another number between 0 and 999. if (RNGRoll > JUSTICE_POWER_CHANCE && RNGRoll < JUSTICE_POWER_CHANCE * 2 && player.GetJusticeAvailable()) { if (powers.powerHandler[11].GetPowerActive() == true) { RNGRoll = 1; } } if (RNGRoll < JUSTICE_POWER_CHANCE && player.GetJusticeAvailable()) { //Justice rains from above. 2.5% chance of occuring when damage is dealt. if (powers.powerHandler[13].GetPowerActive() == true) { GameObject[] projectileEnemies = GameObject.FindGameObjectsWithTag("ProjectileEnemy"); GameObject[] swordEnemies = GameObject.FindGameObjectsWithTag("SwordEnemy"); foreach (GameObject obj1 in projectileEnemies) { JusticeSpawn projectiles = obj1.GetComponentInChildren <JusticeSpawn>(); if (projectiles != null) { isPausedCheck.ShowPowerActivatedMessage(2); projectiles.FirePowerEffect(); player.SetJusticeAvailable(false); } } foreach (GameObject obj1 in swordEnemies) { JusticeSpawn projectiles = obj1.GetComponentInChildren <JusticeSpawn>(); if (projectiles != null) { projectiles.FirePowerEffect(); player.SetJusticeAvailable(false); } } } } double damageCalc; double bonusDamagePower; if (power.powerHandler[8].GetPowerAvailable() == true) { bonusDamagePower = 1.5f; } else { bonusDamagePower = 1f; } damageCalc = damageDealt * bonusDamagePower; //Additional calculation here if in Expert difficulty, to reduce damage. if (hit.collider.gameObject.CompareTag("FinalBoss")) { FinalBoss fbScript = hit.collider.gameObject.GetComponent <FinalBoss>(); fbScript.DealDamage((float)damageCalc); } if (enemyScript != null) { enemyScript.takeDamage(damageCalc); } } } } } } else { } }