Add BeastmasterGauge - #1947
Conversation
885b80f to
b3c22ee
Compare
|
The part you're not sure about should relate to the status you get as a player, when it's set to 7 you have the "Wavering Heart" status which prevents further advancement to the combo until it's cleared. Most likely to prevent triple weaving shenanigans breaking the gauge or something. |
Beastmaster (ClassJobId 43) had no gauge struct. Mapped at runtime on patch
7.56 by watching JobGaugeManager while playing the job, with every offset
confirmed against the in-game display, ability tooltips or the combat log.
Fields, CS 0x08 through 0x0F:
TPGauge player TP; granted by weaponskill combo bonuses
(Axeblade Bite +13, Shieldsplitter +15), not regen
FamiliarTPGauge familiar TP; one pool shared across Battlehorn
slots, arriving in +12 steps from auto-attacks
FamiliarTPAtLastUse familiar TP at the last familiar action, which
scales its potency; actions spend the whole pool
ActiveBattlehorn summoned Battlehorn slot, not the creature
InstinctualComboState active affinity, or 7 while the Wavering Heart
status locks out further combo advancement
CurrentAffinity BeastmasterAffinity
ChainCount chained instinctual skills
KinshipState packed (kin type << 4) | Battlehorn slot, latched
when Borrow grants a Kinship
Adds BeastmasterAffinity, whose six values match the contiguous status rows
4595 Volant Heart through 4600 Moonstalker. An intentional combo is the next
affinity clockwise, and which of the two extra affinities it yields is the
parity of the affinity it started from, so no lookup table is needed. The
upgrade requires the target to survive the combo.
Adds BeastmasterKinType, whose eight values match the Kinship status rows
4602 Beast through 4609 Ash. All eight were observed directly in the gauge
and cross-checked against the Kinship each familiar actually granted.
b3c22ee to
add5d89
Compare
|
That's it exactly, thank you!!!! "Otherwise engaged. Unable to perform combos with your familiar." It also explains something that had been nagging me. I'd measured that hold at 2.22–2.23s and got the same number on every combo across three different pairings, which felt far too clean for a resolution delay. It isn't one, it's a fixed status duration. Chasing it turned up a related bit of behaviour worth recording: if the second skill kills the target, you still get Wavering Heart and the Pointing me at the status side was worth doing twice over, because going back to the sheet turned up two more things. First, the six affinities are contiguous and in the same order as the gauge values (4595 Volant Heart → 4600 Moonstalker), which independently confirms Second, and bigger: I'd written All eight kin types, each matching the familiar I had out and the Kinship status I actually got, numbered the same as the Kinship block at 4602–4609. So the branch now carries While I was at it I also had to correct both TP fields, since neither gauge regenerates: player TP comes from the weaponskill combo bonuses (Axeblade Bite +13, Shieldsplitter +15), which averages neatly to the "~14 a tick" I had wrongly written down. Branch and body are both updated. |
|
Two updates and a thank-you.
The same attribution mapped the four standalone axes, one per compass affinity:
These are fixed per action — the affinity is shown on the actions in game, and only the The familiar's side resolves through the Thanks @Haselnussbomber for
On
One correction I guessed |
Mastered Instinct and Natural Instinct share one byte at 0x10, two bits each. Both are trait-gated, so the byte reads 0 below level 28 and only the upper pair moves until level 40 - which is why an earlier revision of this PR reported everything from 0x10 on as unused.
5173c19 to
041a14b
Compare
Size was 0x10, which only allows offsets up to 0x0F, so the new field at 0x10 tripped CExporter. Rounded up to the next 8-byte boundary to match the other gauges in this file.
|
Rewrote the description in my own words - the original was written by AI was slop, I was being lazy with it. The data was all gathered from a plugin I wrote, that I used while testing and playing. If you any of you want the plugin to see it, hit me up and I'll share it. |
Adds
BeastmasterGauge(ClassJobId 43).Mapped at runtime on 7.56 with a dalamud plugin I wrote that dumps every frame and
tracks per-byte min/max/distinct, then confirmed each field against the HUD or the combat log.
0x08TPGauge0x09FamiliarTPGauge0x0AFamiliarTPAtLastUse0x0BActiveBattlehorn0x0CInstinctualComboState7while Wavering Heart (Status 4643) locks out further combo advancement.0x0DCurrentAffinityBeastmasterAffinity, 0-6. Clears ~7s after it is applied.0x0EChainCount0x0FKinshipState0x10InstinctStateBeastmasterAffinityhas six values the four compass affinities plus the two combo results:The compass runs clockwise Volant -> Rampant -> Durant -> Eldritch -> Volant, and a clockwise pair inside the 7s window is what makes a combo.
Sunstrider and Moonstalker are the results are the affinity you started from. Odd = Sunstrider, Even = Moon.
The Status sheet backs this up. The six statuses the job applies are in this order (4595-4600).
The upgrade only lands if the target survives the combo.
0x10holds two resources in one byte. Mastered Instinct (bits 2-3, trait Wild Heart III atlevel 28) is gained when a you complete a combo...ie; You use tricks and then an axe skill. Rally is the spender.
Natural Instinct (bits 0-1, Wild Heart IV at level 40) is gained when a pet completes a combo....ie; you use an axe skill, then tricks. It's spent using Rallying Cheer.
Each caps at 3, each spender clears only its own bits.
Thanks to @Taurenkey for identifying the
0x0C7as Wavering Heart, and to @Haselnussbomberfor
XBMManagerandActionManager.BeastmasterPets, which is where the familiar's identitylives - the gauge only exposes the slot.