* Use rapidyaml library to parse YAML databases instead of yaml-cpp.
* Drastically reduces the parse time for yaml databases.
* Removes yaml-cpp content from main servers, except for tool emitter.
Co-authored-by: Vincent Stumpf <vincents.995@gmail.com>
Co-authored-by: Atemo <capucrath@gmail.com>
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
* Fixes#6627.
* Elemental Converters will now be removed on weapon unequip/swap.
* Adds RemoveOnUnequip, RemoveOnUnequipWeapon, and RemoveOnUnequipArmor status flags and dehardcoded statuses to utilize these flags.
* Hovering Booster's cancellation of SC_HOVERING now takes place in the UnEquipScript, releasing the hard coded check.
Thanks to @Everade, @Daraen1, @Toshiro90, and @Lemongrass3110!
* Implemented official natural recovery formula and interval behavior (fixes#6754)
* Fixed HP recovery per tick being 1 too high (after reaching 200 HP)
* The interval will now work similar to official servers where it remembers the time of the last recovery and checks if the interval has passed since that time
* The natural recovery interval will now be continuous even when at full health (i.e. if you are full while the interval passes and afterwards you lose HP/SP, you will have to wait for the next interval)
* Fixed anything blocking recovery, such as walking, not resetting the natural recovery tick (e.g. you have to wait 6 seconds to recover HP after you stop walking, unless you have moving recovery)
* Applies to players, homunculus, mercenaries and elementals
* Note: This also works with custom intervals, but you should make sure they are multiples of 4*NATURAL_HEAL_INTERVAL, otherwise it will round to the closest possible interval (you can reduce the timer interval in map.hpp when needed)
* Fixes#6705.
* Comet should now give the target Magic Poison instead of Burning.
* Confirmed on kRO that Reading Spellbook persists through relog but not death.
* Converts the Reading Spellbook function to use by reference.
* Removed some left over content from the YAML database conversion.
Thanks to @Relliksuriv!
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
* Adds the INF2_ISTOGGLEABLE skill flag which is used to enable or disable a skill's status. When toggled off the skill doesn't consume HP/SP.
Thanks to @Lemongrass3110!
* Follow up to d739e8f and 302168d.
* Resolves the status_calc_bl_main call not properly assigning any sub status calculation effects based on any primary stat changes.
Thanks to @Singe-Horizontal!
Fixed stone curse not ending
Fixed SR_GENTLETOUCH_CURE not being able to cure poison, silence and blind
Cleaned up SR_GENTLETOUCH_CURE formula
Fixed casting SR_GENTLETOUCH_CURE on self during status change
Added missing NoMove state to PF_SPIDERWEB
Fixed GN_HELLS_PLANT being removed on mapchange
Fixes#6701
Thanks to @mazvi
Adds new items and updated some existing ones, based on kRO patches (main & zero) from 2022-02-16.
Thanks to @Lemongrass3110
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
Co-authored-by: Everade <Everade@users.noreply.github.com>
Adds new items and updated some existing ones, based on kRO patches from 2022-02-03/04.
Includes 3 new items from kRO Zero patch.
Thanks to @Atemo @Takerio
Co-authored-by: Everade <Everade@users.noreply.github.com>
Co-authored-by: Atemo <Atemo@users.noreply.github.com>
The old hardcoded lists were not in sync and this was a specific list of status changes that could not even be forcibly ended with sc_end. Therefore a new flag is needed. Additionally improved error reporting.
Fixes#6666
Thanks to @eppc0330
* script command to force open the quest UI for the attached player.
Thanks to @Lemongrass3110 !
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
* script command to get the random value of the random option ID, value and param of a random option group ID
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
Thanks to @aleos89 !