private int flameShieldAndLaser(ref int hazardType, int damage) { if (!canTakeDamage(hazardType)) { return(damage); } if (invulnTime > 0.0) { return(0); } // if you have grubberfly set damage to 0 always if (blackmothSymbolsExist) { if (blackmothGrubberCheck()) { return(0); } } if (fsCharge <= 0.0 && damage > 0) { lastFSState = -1; log("Shielding one damage"); fsCharge = fsRecharge; invulnTime = IFRAMES; flameShieldAudio.Stop(); flameShieldAudio.volume = 0.5f * GameManager.instance.gameSettings.masterVolume * GameManager.instance.gameSettings.soundVolume * 0.01f; flameShieldAudio.clip = shieldDischargeSoundEffect; flameShieldAudio.Play(); playFSSound = true; damage--; } // ReSharper disable once InvertIf because patterns man if (laserTime <= 0.0 && (zeroDmgLaser || damage > 0)) { log("Doing laser attack"); laserTime = laserCooldown; invulnTime = IFRAMES; justDidLaserAttack = true; redwingSpawner.addLasers(); StartCoroutine(freezeKnight(0.3f)); StartCoroutine(firinMaLaser()); } invulnTime = IFRAMES; return(damage); }
private int flameShieldAndLaser(ref int hazardType, int damage) { if (!canTakeDamage(hazardType)) { return(damage); } if (invulnerable) { return(0); } // if you have grubberfly set damage to 0 always. Fixes blackmoth bug if (redwing_hooks.blackmothSymbolsExist) { if (redwing_hooks.blackmothGrubberCheck()) { return(0); } } if (flameShield.fsCharge <= 0.0) { log("Shielding one damage"); flameShield.discharge(); damage--; } if (damage > 0 && flamePower >= 0.5f) { flamePower -= 0.5f; redwingSpawner.addLasers(); StartCoroutine(freezeKnight(0.3f)); StartCoroutine(firinMaLaser()); } else { flamePower += 0.3f; log("Sorry you were hit. Here's some fire and fury to inspire you to do better next time!"); } StartCoroutine(invulnerableFrames()); return(damage); }