Пример #1
0
        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);
        }
Пример #2
0
        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);
        }