protected override void apply(ProcessHandle processHandle)
        {
            FixedMemoryAddress    currentHeartsAddress = new(new IndirectMemoryAddress(processHandle, MODULE_NAME, CURRENT_HEARTS_OFFSETS).address); //used twice, so don't reevaluate address
            IndirectMemoryAddress maxHeartsAddress     = new(processHandle, MODULE_NAME, MAX_HEARTS_OFFSETS);

            int currentHearts = MemoryEditor.readFromProcessMemory <int>(processHandle, currentHeartsAddress);
            int maxHearts     = MemoryEditor.readFromProcessMemory <int>(processHandle, maxHeartsAddress);

            if (currentHearts < maxHearts)
            {
                Trace.WriteLine($"Setting health to {maxHearts:N0}...");
                MemoryEditor.writeToProcessMemory(processHandle, currentHeartsAddress, maxHearts);
            }
        }