Repository navigation
Mob statuses in hit damage; Energy Orb hops - #512
Merged
Merged
Conversation
v83 (FUN_0094289f) flies Energy Orb's ball from 25 px in front of the shot's origin to the middle of its first mob, then on to the middle of each next one, 1.25 ms per pixel (Spark 2). Each mob is hit when the ball arrives, so the hits come one hop after another rather than all by horizontal distance. The client now does this for its own shots and other users', and draws no regular bullet for these skills.
The v83 client's MDamage (FUN_00791617) reads the mob's temporary stats on every hit. Disable turns the hit away. Magic Immunity lets only a roll of 0 in 100 through and otherwise shows 1. The EVA and MDR statuses add to the avoid and magic defense. Magic Guard Up leaves n% after the defense. Hard Skin stops every hit that is not critical, and only Evans crit spells. Weakness adds n%. The hit is also scaled by the weapon's percent for the spell's element (FUN_005d284f): the Elemental Wands and Staffs carry elemDefault and incRMAI/F/L/S/H, and every other weapon gives 100. HeavenClient now keeps Disable's byte as a status, names HardSkin and Weakness, reads the element boosts into EquipData, carries them on the Attack, and applies each step in Mob::next_magic_damage in the client's order.
CalcDamage::PDamage (FUN_0078df87) gates a blow on the same mob statuses MDamage does: Disable makes it miss, Physical Immune caps it at 1 unless the respect roll pierces it, the EVA and PDR statuses add to the mob's avoid and weapon defense, Power Guard Up scales it after the crit (except for Sacrifice), and Hard Skin stops every hit that is not critical. HeavenClient's weapon damage ignored all of them; it now applies them to weapon hits, while fixed damage still skips them as in v83. Unlike magic, PDamage never reads Weakness: its extra percent is Dragon Knight Berserk's damage.
neeerp
force-pushed
the
v83/mob-status-damage
branch
from
October 17, 2026 23:26
e0876a4 to
1a1d13a
Compare
neeerp
added this pull request to stack #515
October 17, 2026 23:30
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The v83 client reads a mob's statuses on every hit; HeavenClient ignored them. It now applies them to both magic and weapon damage. Energy Orb's ball also hops from mob to mob.
What changed
FUN_0094289f): the ball flies from 25 px in front of the shot's origin to the middle of its first mob, then on to each next one, 1.25 ms per pixel. Each mob is hit when the ball arrives, for the player's own shots and other users'.MDamage,FUN_00791617):FUN_005d284f): the Elemental Wands and Staffs carryelemDefaultandincRMAI/F/L/S/H.PDamage,FUN_0078df87):Not covered
Verification
magic_damageandshot_pathclient tests extended.Reviewed with sol-loop: 2 rounds with gpt-6.1-sol on high.
Stacked on #511