Waltz Refiner - shastaxc/silver-libs GitHub Wiki

Using any Curing Waltz will be intercepted by SilverLibs and will automatically use smart logic to determine the appropriate tier of Waltz to use in order to save you TP while still accomplishing your goal! Mote and Selindrile libraries do this as well, but they lack a few capabilities which SilverLibs can do.

Implementation

Ensure you have the silibs precast hook in your job lua. See the Installation page for more details.

If Using Mote Libs

If the specified functions already exist, just put the silibs part inside of it in the appropriate spot. Please add the following:

function job_setup()
  silibs.enable_waltz_refiner()
end

If Using Selindrile Libs

If the specified functions already exist, just put the silibs part inside of it in the appropriate spot. Please add the following in your char_job_gear.lua file:

function user_job_setup()
  silibs.enable_waltz_refiner()
end

Configuration Options

Set stats for more accurate curing tier selection. Override defaults with your own stats that you have while wearing your Curing Waltz gear set. If not defined, it will use defaults which will very likely be inaccurate. bonus_chr, bonus_vit, waltz_potency, and waltz_self_potency are the bonuses from gear in your Curing Waltz set.

Example configuration:

silibs.enable_waltz_refiner({
  bonus_chr = 100,
  bonus_vit = 100,
  waltz_potency = 25,
  waltz_self_potency = 15,
  est_non_party_target_hp = 2000,
})

Details on How It Works

First, the available Curing Waltz tiers you have available is determined based on your DNC level (either main or sub job). The refiner will use some smart logic to estimate how much HP you can cure with the different tiers of Curing Waltz. Then it will detect how much HP your target is missing, and needs cured. It will select the best tier of Curing Waltz to heal your target to full without wasting too much TP. If the best match is on cooldown, it will go up in tiers to find an available ability. If none are available, it will check down the tiers instead.

Caveats

This function is 100% accurate when curing yourself. However, if you are curing another player, some assumptions must be made because the game does not provide all the necessary information about other players in this context. Mainly, the target's VIT affects the amount cured and that data is not available to you. Also, if the player is not in your party/alliance, we cannot know the target's max HP, so a value is assumed. A non-party/alliance player's max HP is determined by the 'est_non_party_target_hp' stat which you can customize, or leave at the default of 2000.