Need help implementing a damage reduction

So I am working on a enemy unit that once it reaches a certain amount of health they will take 5% less damage from the player. I am completely lost I thought I had it coded correctly but alas I did not. For all the units in my game I have a data model script which holds well…the data and then I have a State Machine Script that calls on variables from the data model. Really does make coding a lot easier and organized.
Here is the script I am having an issue with

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class RoyalBearGuardMiuh : MonoBehaviour
{
    [SerializeField]
    private int royalBearGuardMiuhHealth = 40;

    [SerializeField]
    private int Armor = 25;

    [SerializeField]
    private int contactDamage = 7;

    [SerializeField]
    private int nexaStone = 20;

    [SerializeField]
    public float moveSpeed = 5.0f;

    private float changeGray = 5;

    private float colorChange = 0;

    RoyalBearGuardMiuhStatemachine daBears;
    public int damageReduction;

    //float damageReduced = damageReduction / 100.0f;

    // Start is called before the first frame update
    void Start()
    {
        GetComponent<Renderer>().material.color = Color.gray;
    }

    // Update is called once per frame
    void Update()
    {

    }

    public void TakeDamage(int amount)
    {
        royalBearGuardMiuhHealth -= amount;

        if(daBears.direMode == true && daBears.isThickHide == true)
        {
           royalBearGuardMiuhHealth -= amount * (damageReduction);
        }
    }

    public void TakeArmorDamage(int amount)
    {
        Armor -= amount;
    }

    public int GetMiuhHealth()
    {
        return royalBearGuardMiuhHealth;
    }

    public int GetMiuhArmor()
    {
        return Armor;
    }

    public float ColorTimer()
    {
        return colorChange;
    }

    public void ColorTimeIncrease()
    {
        colorChange += Time.deltaTime;
    }

    public void ResetColorTimer()
    {
        colorChange = 0;
    }

    public float ChangeGray()
    {
        return changeGray;
    }

    public float GetMoveSpeed()
    {
        return moveSpeed;
    }
}

So once I can get this solved I should be able to apply the solution across the board. What did I do wrong? If someone could explain the solution to me and point me in the right direction I would be very grateful. I struggle with coding but I do want to get better at it <3!

Kindly,

Harpoaian

public void TakeDamage(int amount)
{
if(daBears.direMode == true && daBears.isThickHide == true)
{
royalBearGuardMiuhHealth -= amount * (damageReduction);
} else {
royalBearGuardMiuhHealth -= amount;
}
}