41b1199704
When monster (GM) rolls D30 natural 30 and applies bonus dice (eg +D20), the boosted attackRollFinal was only applied on GM's client. Defender (player) saw stale unboosted values — defense dialog never appeared. Add d30RequiresSocket flag (GM side): always send attackBoosted socket when GM-owned attacker has D30 data, because the D30 choice/dice result is only known on GM's client. Add d30PendingFromGM flag (player side): suppress hook-based defense dialog and comparison message creation when D30 data needs GM-side processing. Socket handler (handleAttackBoosted) shows dialog with correct values. Track d30ChangedAttack for same-client restart logic.