Resolves cardfix calculation going below zero (#6560)

* Fixes an issue where cardfix bonuses cause the final result to go below zero ultimately giving unwanted effects.
Thanks to @Tokeiburu and@alycecil!
This commit is contained in:
Aleos 2022-02-01 14:01:58 -05:00 committed by GitHub
parent 8ebba124eb
commit ad2660b037
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -675,7 +675,7 @@ int battle_calc_cardfix(int attack_type, struct block_list *src, struct block_li
s_defele = (tsd) ? (enum e_element)status_get_element(src) : ELE_NONE;
//Official servers apply the cardfix value on a base of 1000 and round down the reduction/increase
#define APPLY_CARDFIX(damage, fix) { (damage) = (damage) - (int64)(((damage) * (1000 - (fix))) / 1000); }
#define APPLY_CARDFIX(damage, fix) { (damage) = (damage) - (int64)(((damage) * (1000 - min(max(0, fix), 1000))) / 1000); }
switch( attack_type ) {
case BF_MAGIC: