Skip to content

Improve MoM+EB(+ES bypass) calculations #8590

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged

Conversation

Edvinas-Smita
Copy link
Contributor

Closes #6797

Description of the problem being solved:

Energy shield with EB and MoM was only protecting available mana. This meant that es would do nothing all when a build had 0 mana. Damage could also not have bypassed from energy shield to life when there was not enough mana to absorb it.

Steps taken to verify a working solution:

  • Test in-game: MoM+EB and 700 damage from heartbound loop drains 280es if available, regardless of mana. When <280 es was available the remainder was taken from mana, and then life if mana was still not enough.
  • Test in-game: MoM+EB+Corrupted Soul (50% bypass) drains 140es, 140mana, 420life.

Link to a build that showcases this PR:

eNqtW-1v2zYT_1z_FYSBAS2GJH7NksDp4MRJkyFpPDtpt-fLQEu0zZUSXYpK4g37358jqbe4pixZyofWMu93dzzyjncnevDrq8fQMxEB5f55s33YaiLiO9yl_uK8-fR4fXDS_PVjYzDGcvkwvwgpUyMfG-8G-jNi5JkwwDWRxGJB5JeYU_cv4LTCvlwS7t_jv7n4xN3z5mfukyaaYd-lMn5yGA6Cz9gj582pA-AmwoFDfPcy_T4iXGKBHUnEnZI6DCW_5y6MShHCqIepP-XONyI_CR6utFLPlLwYmtv78cPkMaMS9bMqwYzeDcYMr4mYSixRAP-cN4dgGLwgI-zBv8ANsxBYtQ5bneZRLuIiFIEsAZuuCHETyvahlXAsyNV8ThxJn8mloPJyiX0nI8OGK0t7HzJJV4wSkdGqb0Pc_MDcSvrIJWaj8fSNWXr51FzuVvorlcsLBlYszFshbhc-laQUZMxpwP3SM3gDsFo-ZAzcqxDthAREPGNJN5Sx8ubejPol7HOPfXzJgwK2V5RjIsBnZSnAlDgc3LysjJLIOzonxSlLzSMClNVmv3lcTYvSlWa8n0ITiG7FKKc8ZAUpZRpwOlaqEXktQHXrFxA4Is9c6kNnF6X25KubcSr5tHXYO-2d9vv9drdjjXjj5TqgDmb3-JV6oQex8hF_I6nAXi9nsyyW0oeIYMN2frFir6kge8AuOXP3gS0xD6y41rHdral_A9nA0HFCONvXqVVyPSgh67ZaOWeqc6aIb32nmF8--UIH1cxRnMNfISbgLurEnzFSFJIKibwuPWB3yVoQPxK4LjahO0Kc5Scw8QRLUizGZqaRa1hFW8iwinCrYYsBShhJAS1GsqcuClTSTFc-EYv1dEkJc7N6FQLEul3iVSGsNnaWQSGjv5VYat9koSUN8xULt9ixUVanZxxkY3T7ON9chrzY9iSQNALAJUXT47Hgf6sEnJWDDYXHQ1HgBFQzMMSFJhAfL6bamBA3dIqdZ0kdccGgaio6jQQFejJWCjqUEjvfRtxdFDaaFlIK8Va_abhaQSRRu6EoA3VuQm5NM9nKwXEB6gfYylmnzj1hiwtIqQsLSLKG4lI2IMXnoo79EpNJyQuLSBb0HoKFB0eBrpWhqE-jgXVxoJwqVBtpwoI12pi_gOZL1e0IylFDepQef1ZVBPH_WRfm_4a8kIAr34VMC1yhsIxNxDYxj9SDQBoEIywxcqOc-gsWFPuyo1sxAcHCWd7B0l9jxmYQCc6b2W_1k27fXFMmiRjBd0qoUmyTYzte9MGRbkOpT7feiguJyKv6b4yFXJ8355gFxBDqb4BPIKmvi2aIR4w10XTJX4bus5L0yDkLYhDCqxXx3Tc8HgUhCMfRxVFK6MmrB-ThALRem-0aqNlkuli3rp6Gz0GB82b_5KTbVXNXtRYW6-FbQp-CXhJkZZppUF6YPpnhpMS-GzxN7vSHd0spV8HZ0dHLy8vhCssln5NXOJ8OHe4drQAECh8E3yhjB4rt0RD-LhZD_acZHcWcBqaBFhi20ZNWW8k97kDWhqgknnqK3A7QWdBAObagME-zMY6UcfRKKeupD5-5JJpWfRk_DKZKvQB2gJCfiBdcrMEZr1UOstG5iMyvqKdEmp2VxcTdQJfMccjU97-HmFG1G1rZb-9M49LnwktKM2AFu0GdGYbj43qllmt4d2dGhkxGzJS4eGuYLRAphKib7k0zJ_XxEjNHz3lw669CsKjuano0cP6ahfO5alGCCCl01_Xq-vrq8vH2y1XkW1mIXsW__NCbqc6c-T-NgFOiz34UhLPAfDxvfqHkRSsyIhJTBv7ucMbwKiDJ5tZKRzNggMvhpqmgwIt7m9t5pQR2TlevRIAvLiBpdAQlVr2S8R1KGYEqoVSxyMZN9RLtjEyGcgmebBJei6V0s9bORfVPrdNRgzlYiGKYWSVHozssIdW2Ba-jc-qoMJ6_5GqTG6ocuyTVuXW9o_TKzkM3Z20MzKAdbJquNnQ0mmNV3ea1WtWM2uEj4mDr3M2gHZzUUNwHM9m4JFQ5nD5zX29ycJohZSoVsq7sFSMJiZ3hg1wSER1YNk73EKNiklzHEXQWSrsbZyhybKVbOxYLqTE71PQuLHNQYzmR6E09bzFolsbOylTA1kCWBzVpsdV-UZKdswRRfWkxvxnNMUJcYlvmHw3nOImOv8NnTl1TaFncZYMsL2BAWlGdja4eq7PZLCerc7yGdO6bdb2jUTv8SVKViWzhYhKgQkyUU1XjoHyrGodH6jsyFGRvBpPNTCTFTvJzkKQE2gqOR_MiR1QZ7c3B1G97w3V5uTdax_8RmROYQe4BkNDk-IcM_REYQ-b4RkFWWq3tgSSdXSle5ijcOtPSHI2DRy848mKAIdnBCM7ym5xssRinpEVyQzBTb6g5q8bwhxc5VZipNm-4wr4bs3vYlqOn61DQelwGwFOX_yPVTa5qQ5946y2M7HoNjuKqTjcGVJ0VtTOmEmoyojOGJvqHc-_P82bvpHXYMU9R6dmLyk3IvUcUVlDonRdLVIR_nDcPup3Tw276ZyTfQgkeRKWw-pxUwnZ-YUDMu92vBK-4rxGZ-lVxQc-mu6JZmTpWl_QT-Fquz9DT59vfn64anxgXlIcB-oIhb1434tYP-o28ENa4I3gRkjN0RxZg2EbUsTlDIy7WAEDvL7kQ4UoSF6nXwh9Sij_oDH8PMXo_os9Q76Nr4LrMjP-PiNUSGFxJInzM0J88lMsP6P1YENQ9bLcPWxni4TKEkwm9v_U8KOaBeujNqFrqDw1T5IL8hLjd0GsyId_PUKfVmGCXhgFMQQXQxh31qKKWXBFCCcaoAy57hlqNfyOLnbX_-xfOgQU5ax32_7vAEHRcRH0E_6MZ49xFfI7et1utg5NWq_UBBRhKWqjOUipV3SuiyEop505dnCPrppy7dXE265Iy7tXF2KxhY2w6WIEaFnppEIYlv-T-9xB2uYtmaw37gjFr3ECWDPvT0b2oe-5OlCZI62PeA2Y6NHkUnZ0U3Z0UvZ0U_Z0U8ZuuI-WhiauqTpPdo7POO5gyLnXPbjx7mtypvqTpJIEbP6uzMG7ntWJVbAAjBrVLQC44RGk0nK2DADww6ib2yzAgTG7iOyXwOndE3T1miaYveLUpurcPowrTj3h0auCxfULHNUzouIYJ7cVj24Qq785uDRbp1DWbMvvthkCSKyvZY4uzHVfWoFOaQ2WR3brs369hM7RrcI92DXr0Su6EukJMp6pH9mowYPkzo7YQ2606_05FFy6ngLtGpldYZQ-a3KIKh-2O3a_M4biuZW3XFWPKb83qduxVXst-PZuqzOSHXsiIrCESdmsIKN2KTtmriG_XY_-9T8rSm7ZXGrFPFlXRqv2qsbqmZenVFVxqy6v3LqFK4CbUX5Rawu2hqVPPGtR2UtRR8PX2m1NZ41c_42tKNvqVFal-xB2XDQZVg8ePAk3XZ0qkuWMnsEumusP8lagLm4FpQ-tusL5lxP05XUR9YfMQdYY1PvkGSSoZUVcX9G2ot_2i7G0jJwwk9-65G6S3k37u9FpIcsTonDQO2vqzp9p0P6tr7OrJdL5RoF-WNxr91k-qmefq9jmiAZKqhY7mgnsaiGZkzgUxDCNin_sHjrosGsMMZrZWt9lgqTZEgOSfkO5BU18SxuhC9b4bb6jQSnCprjEYodQPJMG6F8mSmwX68qNDlpy5REQ2IOrFQPT7zPi-1S-t1g7Am4uxMay7C5Vcw42vV8XITqfX3iUx8wvPGNbfgcnedU4wO6cG3-yhn5K1B0w35lPESc9O7yW_WVW_01Sd4am-zsVDX04Jm2fuy_ULzLG0YZLVG6tXZsmiF0WVXwi1xzZNenJ6XGAhSmmodtammG6RXVJUytTh-q0ZLFbww6VGq4ToBw-cMd05z3rnDmR8OMaA4_bpyakdE9AFZQ9z_a4dlNQXBooq-fbXGaV2fnIjJ5HVavfyrLiEY8RixMFREvzNm0v99LExONr8Yf__AZ1yd6U=

Before screenshot:

image
image

After screenshot:

image
image

@Edvinas-Smita
Copy link
Contributor Author

Also closes #8582 and #8633

# Conflicts:
#	src/Modules/CalcDefence.lua
Copy link
Member

@Wires77 Wires77 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome tests, as usual

@Wires77 Wires77 added the bug: calculation Numerical differences label Jun 11, 2025
@Wires77 Wires77 merged commit 1559937 into PathOfBuildingCommunity:dev Jun 11, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug: calculation Numerical differences
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Incorrect Max hit taken calculation with Mind over Matter, Eldritch Battery, and Corrupted Soul
2 participants