Skip to content

Add support for the Infernal Legion skill#2377

Draft
turlockmike wants to merge 3 commits into
PathOfBuildingCommunity:devfrom
turlockmike:infernal-legion
Draft

Add support for the Infernal Legion skill#2377
turlockmike wants to merge 3 commits into
PathOfBuildingCommunity:devfrom
turlockmike:infernal-legion

Conversation

@turlockmike

@turlockmike turlockmike commented Jul 14, 2026

Copy link
Copy Markdown

Depends on #2376 (pseudo-hit support for ailment sources) and includes its commit — only the last two commits are new here. Second slice of splitting up #2320.

Description of the problem being solved:

The Infernal Legion supports and Catha's Brilliance make minions Ignite enemies for a percentage of the minion's maximum life (support_minions_ignite_for_%_max_life). None of this was modelled, so IL minion builds showed no ignite at all. (Infernal Legion III was removed from the game in the current patch but is still present in the exported data; its statMap is updated for consistency and will drop out with the next GGPK export.)

PoE1's PoB models Infernal Legion as a hidden minion skill with a FireDot payload (same shape as Righteous Fire), which was correct there because the PoE1 support dealt fire damage per second. PoE2 changed the mechanic to a real Ignite, which a plain DoT can't express — ailment magnitude, crit, ignite stacking. This PR keeps the PoE1 hidden-skill architecture (including the Multiplier:InfernalLegionBaseDamage wiring that already exists) and changes the payload:

  • Pseudo-hit Ignite — X% of the minion's max life feeds in as notional base fire damage, runs the normal damage pipeline, and is discarded as a hit (pseudoHitAilment, from Add pseudo-hit support for ailment sources #2376), so conversion/gain-as-extra and damage scaling behave like a real hit while hit DPS stays 0.
  • Fixed cadencetimeOverride pins ~0.8 ignites/sec (matched to in-game timing); with the 4s ignite duration this drives the rolling-ignite stack potential.
  • Crit — the gem grants no crit chance, so the ignite crits only via enemy Critical Weakness; the minion's increased crit chance and crit damage each apply at half effectiveness, and the base crit damage bonus is 50% rather than the minion's 100%. Tuned against in-game ignite timing/damage tests.
  • Full DPS — the IL extra skill is evaluated even when a different minion skill is selected, and its result is recorded as its own actor in the pass so the best-ignite comparison sees it on live and cached (item/tree comparison) merges alike.

Deliberately excluded per the #2320 review, coming as separate PRs: Frost Bomb exposure, Aggravated Ignite, the Scouring Flame / Stormfire minion statMaps, and the "Minions have increased Magnitude of Damaging Ailments" parser line.

Steps taken to verify a working solution:

  • spec/System/TestInfernalLegion_spec.lua (7 tests): pseudo-hit deals no hit damage but ignites; 1.5x crit multiplier; half-effective increased crit damage; end-to-end ailment magnitude scaling; crit/ignite unchanged when Full DPS runs offence a second time; the IL ignite survives a cached Full DPS replay; no poison can ride the pseudo-hit.
  • Validated the crit/rolling-ignite model against in-game-derived spreadsheet numbers (mean absolute error ~0.75%).
  • Verified headless that live and cached Full DPS agree, and that the reference build's Full DPS is unchanged by the cache fix.
  • Regenerated ModCache — no diff.

Link to a build that showcases this PR:

Import code for the reference minion army build (its full numbers also use the follow-up PRs above):

Build export code
eNrtfWtz20ay6OfwV6BUtbfuKTE2ZoDBw9fZU3paSixLEWU7u19SA2AgIgYBBgAlKyn_99s9A5AACZCg6GRXibJ1fChMd89MT0-_5vX6fz9PYu1OZHmUJt_tkRf6niYSPw2i5Pa7vfc3p986e__7z8HrK16ML8PDWRRjCf3n4JvX8g_tLhL3F2kgvts7v7i6vL7Z0wqe3YriQ0VS_5nsaf6YZ9wvRPZW3In4YFakCifkcS72tAmPklHqfxLFmyydTb_bMwAl5nn-jk8A6mNU-OM9LUbc7_Zca0_juS-S4GgB8jYCCGjVN69HU-EXmdCi4Lu9C1HwgBf85UWa5FB7_vIq5rczcZhBJ0T28uY-iqPbcXGZBSJrFO29lMTg24PIRgUvtBz--W7vAFjFb8VZVOxpdzyeQdVEZ_YLw6CWTdkGtMNZlhfHfAI_5-iUEPOFZTHD7MSGLolgjqBDZfX_urCuMnEShsCM6E4cZVFxNOaJX6tXf9FZ4SPAL2ZxEU3jCFg3R-mCP1uhTnS9C_gmLXh8fDWawxqMvjBNk1KTWJZlr8dLF-PUWQOI1_gwBhY_ohbEPb9NokI8EvkqjfI02aF_ddTOLh7N4hjkuhfstchFdseLqNmsbtrpxIuSR3HvKE3jIL1P5nhW5wTKBL8MlTxf8yCa5TC3M5EvanzRKW4XPOFHab6QBBNmHDPn_1uHdyUy0DRFA13fgDASfgrKqY5iuS90d_G_HjW20-ms-m0Uiv6QW_WqRNi2NY_rx8moL9zWhB_XoGvQ1f0gR-ks7glZLJSkY3bPw18bgJ3kjsXnhSIl1hp6dUiXdAGeJzXj1j15gV4DktndDbxLUZ1s5sxNFnmzQvQARO13cnZVa6hrOi9cixHqWJ1duxo_5JHP4wv-OZrMJmCIbvgnUdM_zKHdQg2eQgJatAuZghPQqUxOo0w8CvEIVOTjEMc8zTsxLUI7PYdjnn1KRJ73tRWg-3tjoGqoDRp11jg9_iuEPk_8BQJdR_d9kpXtWah6xtZhXIMmQNfMi0VflEUlpUJZ8NR-ATJo6lT-a6yv91YkZeUP_Zj2Vgh__AYc5WveZ4KgKVl0ySJkLZ8RusFncx3dNj6vqaGJssy1Na4fIrZzytZf6Gvt9pbcGk2jrObSM5Osh2zhALWMvjjLLADFZRHDsh3DNgynk8xJIrLbh9E4EnHQw-DVoCv-HfFpH16AQNSx64JBe9a3lXjXUbccuOt6KLUWats23fG8brKITth6jimEOrPWEQ_ESgjUKc8CgpPtUK6y9BeM_OIt8aAncfwIlMfWdyzCGPFSHG4wrQtvh3T78yXSciXdocMknS38KNO21o6jAu81jJU3oSL6axHM_Iab0ykw87j8ME79T0sd0TdiSZZvhXpQFNz_dJwGt6IviqxkK4xm-0az6RQUHs6JvgTQRwKPIqr50DbbDHwJM7qu2eg6V6o3_QXwMn2y2UXsXcsSxnJVzF3r3fXvzAJ6uQpz43BegMqcgL2SaaiLdGF7yAuyJnquY30cg2p4n0M_R5-iOK7nskyDrclg5QIkpzXgJ-RFZ9NPZ3EzZWQTxwIrS3TbWBN-S7RmRsVgrqMT-wWhLvS1wizpy76UuIciLzSVCdLWEdBy0C4-FMAvRL_iGWB30y3Tma-0Nzy75Ukx44n2ked1adQtQ3_h2g41TdfuqGAJ-5V2CNbK15Re6OR_eg-yMsZ8bg_Pvg4NYceCA53szkTy20Nv-g3wXhWcJMEsQ9XTu45ljLZqDmdhmGse_PsWphPMrZiDd_egnZ8PNXQ0htrHNA61K2Ss5s-yXCi40ywFETlMJ95QO4nl3OCx9lFwGTkNtRsxmaYZfIK6owQa6wMoLxTy-2Scxg_aBaqLsh030QQcgzw_5gXXgjLE_gBtgXEmaA-XP1L5MRc888eKav2vUx7HHrRZfpW5-NMoLkR2DGXIkYprr1_KxD_-usmE0Hil8n0kP0_B11P058Eio3-eAM2Ex_iNVIl8oP9QL5AJf8AAwRe1hQS2pyVpIHLQi4w4-pC61NSHDDxnNmS6TeG3axkW_AsO_BA8NoMMKXEdc2g6jNEhcYilDwmhpjMEtWNbQwigHTo0bZu5QwOmjzFkNiPG0DQdm0KpTQBeN4AywBlDS6eGPrSISdyhyUB1IRLgYJ5zSCk48EOTQJMcF34xnejmkDlAcGgYljEktu04Q_hlQ2UWNHhImKO70CDDxkYbFh0axLXtITNdC1EJYfCFGg7UqVNraLjMsocmtQm0E9vmuMweGhRqIAwUABAxXeib7riADpoOGwixKKKb0H9iQa8saruApDPoELVckw1Nl2HPLdeA3zrVkbMEeGRRCxpDTIMCB0FzDoGqxQzqYMMdBh1ybWNou8BUIEGg9cBHAIUxgAEhBBlvOcAry3IsoGM50GydQuMBRDXHHTLggT10LILd0w3oHvwGEB0GC3AYtMPAXlNoKzLZAXwLSFOsAf41dWQ7M2E8gADEocAxAgJBXF0HrhrExELThnbaOBCUQictxkwQBwc6D90DPgCwC8Th_wygh_ICXTBtgKUMOY_uP4yUbUAhtXTovOEgIqh0Ar1i0HOgaiFrdOJC23QTWgWMo1glSqkFY4dyAGyiFnFB9hwbe4UNBDwHfus2DA90GL6AYILAUsIsZLbBHFwkwyWsB2WWc5ymfjW55LTGnCbPHg6a8y6JYjkpv3n9_vqt_PHNuCim-auXL-_v719MeTFOQ_EZzPML0Dcvp4AG0_lbaTq-xfn38gD-O7w9Ob59Jy78X365_tX51611dZPGI3HzQRy5v5549z_8fPTr5WnxcZZ---ZOHE0z_TZ9f2DfWbp3Z9kn4fFPVxcnH375-eTo_pdT59JkPznvzvUPzi_j2eXkN-Pw7dlxYia_TUl288uBkb6xJz_wXz4f3ZkfzejnHx9-u-JeyqfffsuKj-dvLtnD23__Qm5-8m3-_uxwFrAk-XH82bi6-fDu5x9Ht_eH4uffDr49fv8vcvb5l0P-_VteXBtnzlvvlzdj8_TuHQjSx9sicZOfz3n0r9AzfvmcHpjkwLj7-MO7f38fvhl9dnh4447IJPrAPuvpt6cX5-G5efZ9EUy_T378-G__w8kB-5BO7rz3o-Dj2dH3lntsTn6K4-jNbz8V46si-jHRL97_dvzDr4f0HXNu9c-TDwe5--EhI1Ny8omMmXd5en1w-bMJ3P3uOzlAL6sReq3WQnM1XOVfUvXhiOJ829PAz5jgX1VAvgonpWwBSNwuQKmXaoBWJ0XUpTVAuwtQasgaYJnkgy7We_YaXdEsAoVeUgFvROV_qwKwytm7UuNL7VRqJKnB5dRWekep63L-SUWodCJaADSDnysiUiUrY6D0rZphSocoTatUm9IQSslKDaGUldKmUjtC95KipKsUqzJHpUmRek-plVIRS-Um9Zy0EVIlz_nSYAWwCSyotLVoYvHHUZqE0W1pbNUfI1HMLe78i1ZERSxkjMxnMYQGUVABffP6PJnOYJDkgvmvM3BYD_xCMw88ngRpIgLtKsO1yDdpAO3ItTTUvp_lRYSRG4yD3BBg6P-AbvuZ4DnAY6JNq1IqWpilE-0U9M6nvOpWe4Vn4Gnk2mWo3YzBVxY8uOH345T_Hz5N8_-Xgx-EIU1V4z77h1ak2jxO0lQUIwPKllpQCUbo85wkYvKAC9MYoFdO1p7mpWksOHgTRTYTWzcz53GUdrUTm4lODCiBW9GreSpcCLZq1cmDwJE5ixLxCbxFXDABl_FCBJEPn7pG6k2cIpjKbYD7qXJVGgy8ppJvWplWXFc3_QAcEQ9YfQEsuYlgFCAqC-CrzHq0V42e9EQr_WkNM3siGHyzT8qCUZwWW47Du1s-4ePZunEYgeVKbotxjzFIimgSBbzfOIg2qRphDAWylcwmnshwJWxttYgOkwbc__ihR5Xgf-PyxMnZFfLuMpF5nx54SzMBAvC4Vxcn840c7yA28B4QPRL17nUOl3Th4xnobfpjBEM0Enci0a6gZp7liyEi7GuJ5ryPh0IkZ1uxdS5fxgeRgOI6yh6mRa5-H2d8hnFWh0QvgreDKMZfIJmZyCFAC_ow9Jpn4jJ7n0TQhH7MbQ7laIw2tM9Q-qC-08lFGtSYv090XQdfUi4Lwv9PeIUJwbAvsBMiW2n5cQReJ0yp4mAySTHzFrQ0eZWAnC5V_rWCd_RqpaQNRQrqyozaUAW2qNpWVeG4FtuAhRm-7bGwritcSa1Q1nQmj26j-DKUmRHo063o16cWvr-Bf3ggtmR9I0lYIekbkJpZ7Z6sWTT5I8_87OE9TJTFbOzR3kBM0uQ0zSYrY7-mvXIqbCss9SxwhcP0Pl07mmU4Fs11uEU7NzG2vqtuXvEGnCr7ssCgm6qZr1zNW0bsNdUs7FKaZbMprsKALlyR1k21zh20vnNjzpJlOTM2VoX7QGv6hPYSywh8Fpg8UlqO0llSjEQcthntNU1dZ_XXjcvITzN_vK2glstKaRxf86TOIbuXtI6KWZJsOQsXWmNlVByrT6UyyYk5zpPP4J3NQFXO5A7f3tI7l6Ot1I8v45_DNM9PoegwSz_VpdDqXek2emGuTLaS-HIv72Io9R72pqtZr1_OAz8ZLaq_qtTsh0jca7-l6eRfUA_VX1g6cwzdZBjsq7wvuMmYR0KYn-SaK4S6uuvojNmYUhqn95gbr4yQj6Gu9DUkxttyO7bKCp9DrJ9rs1yozXUwS6ZpIkPUco-3Cl0RrAxc19CXfUNQGb5SquLXa5lnf6W9f3f-4_uTwTWfFiBg2iG4ZZ9ENrgEV0wb-WIKvv9Abbl4pVFdH0hCsrWvNIcOfpxBFId0qD4o0xGvtNHgepaIV9o197yo0M6DNB5IlGvxK2CZg_MJyLcfIawx-B0aC4q8-PJ7Blhfmg6tqnoZ5hCYIoJX2kWUgK7NtTG_E9pSpFTuhl2E1LgHQgvTDIomE_SI5cpQPniTAeFc_fVKdU0jLsTj0EQxqKqIEu0BPC-tWkZTdV4meSzdW-0eF-UQRAOPVAOf-216rwEbIl8DIx4MqiarmYhhX-muQvRZoJ2QuFGuvU_imf_pQYtCVeGCBlSZax4451ogiQRapY4GBxA1ipZGBgIca9usM0Y1YOC0sXnfkAFf5dBiSqKTtOw_tRs8L7U6dklTxnk9ukFa0UseActm-WDflCkLOSzANYhfy2Gvxg-nO7jlUq1rGf6LS6FMZWvmGqQTwtoIYW-EcDZCuBshFk5BN0i1LeMlzsKleW20zmtgZSJ3n2sfozxIJ4MRn07HoAUHRxyCroe8qM_gxuTWa3NWr09ZfdCcd2yTDJRTUDP-gSNYly6cKD_AKM4pSoEleovANut0NgsOa7RLZfqx_tEsDKPPYoPgkI2jQTdCbBY-cyME6x5y0jriEHUXaVblc97wiReLwRtQhto1aJmBCpW18-NXGteJr3uWT2xhWIbJrNAObeL6nu2HjBi-KwTTBfUN0w9DhwUB9ajhBb4TcCtwQt4tLlZDxZMBacxz1WAcCmXnQnAgg8E-JXXdg7s0B_vEkgkopZ2I1YeKK1OcaOhr2U3QbIb8fiQZUftudqdEn5SAfA0N1yZkS2rl-uD6RFp3ZdVHacwz7QBcVlHURct33MB1Pd8NbNMJQKpMZhLBTWbYPKCWQQnzQytgthv6lATM4-BLOT6zBLdD5ohu0TIaqoguPAMwNKkPJj5HWxmnYC7fCgjyMxAiUhOi30M8OweuTvBl39hgWfaJbtZlspFCA9GhNbr7VP6FROYrL_ng9wDMnZ9hQvRL01b2zdQNfgf0EPGJvVn8_24Su9kmt8m02SLTx7P8kzbisTqrBWYS2F4mJq9TTwwagwJiaLK6vOs25YzQwLAJdQLXcXXqGMJ1A_jl0MBi1AktH6YDLmI5xNQ9EYSM0sD0hGuRsCnvpMOtnjvWoyLlpV-tPrwBqSjAwp5nIEP4qTZjbFafMdaKv90wpT3ksd0V36f6ivruByq9zC5QQrvV8xIOk95F6QIUeEBD8x5wCR5UQrMLtGGOGmXoUsvVFRkuwKzW7VWrxMzGxHeXF6vA2thrml3TCdi9ZS9cq50ZRLcFBg6Iyqle6qW5SrD1zo785ZzedSC0e67bOzpJru1S16U6D3TLA0sF8bxODU4p1X07YII7lBh2oAudmcLmhuVbZmAbIeEO4Ux3t3CS9B7uDWkRR8LqThLrQcVg7U5S6QytOEnrxPnZScLdIS0WBVQpBukBzOJTeQw-H1xOwVFKCjT-d-AdLNkUapLBkZrZrzRM3QwgWoZQ5ZX2u2zLK_2FRdmXt-DmxOfVENfz5-VRGPvnVURiGl_mOCg21irMOtL2QIVN9bZY9pfamghbgfhyBtbjY8an-YH3kOfAWNXvA1wom8wUeNnmy3B-LOs8QckqViu02ZdF_s5qTCzbXZ-JOuJBdMuTasKfTKMpWI6HBeD3dYOpNyfmkp05FnmRpQ-58vVmt3LRsiSE8Swu5-NmHZwxvrTLGte-F_fgZSqowe8Fv81fCcneXLL3i2t3a3IFHgN_vuzbdNXKrlIrLVS736rgfRy5YTafx1_AgVWTHwsa9krRr9ZphyGMwXAFvW7V9omx0C_oQSzTzNuJ1slVJm7fMFt11d9AqbTolLM0y9JMO-RZFkFog14qiMtp6s9WtIlB7IaHCrGVG_hcUGJy07JNM_S57_uOMAzXDAJHUAjAIFIjtqdTHWIwH0p4YBmE09B0lu3Y2ulWuaNvYu5H6EGv80iNP8el3EdHt8242Vb3XLGbCUpELdNRXTaU6n19y8aMoRtC0fl8sJxHunz_ZXHZZrexNRuhPxvaZ0P7bGifDe3XTHG2J9IPxVhM0mKM2RYwX8cRn4C12bhuwoye6yamsXkNo7ksYmxaFqHWPzQeqB0ogFBtPqpozg_VNrH2iRp5nGaL7Xh1IfrrL6XQrpTgRwEsymBIH-IoER2uFnXqrhYRNmOerjuWF3iOFeAyCzdDx2LMCsA-CMd1aWhTI3AM6hmGHXrC9XRLdzzPoKbdVLjWeoULal2OBoxosOJn6V_Lz9pn_VN2La7YvsPW5NGJaa1iGLQlq0ZbNdTjHCmb_Z0dKdK2rjNKQQHgppi5sqsnwtzQJGbomoR5VBeE-6FPuEcNalki1F1Cw9B3iePoFsiyFVIrgMDCtEJXGCL0rcctLjez0w0RbejGZkq31I11wWhqPGuDwptLCaPtmk_5dP9Vmq81hrRbhvkizbwogCANVEbXVh_CrPrgW55lWoHtccfnji5EYDsWhI-ub3tBGJg-9QPX1V1OTM9zOTiX8J8dMuZ6wuOmQbaKHq-yaILO3Hb7htZugTHbdhR0KLA22HJ7z2jMpwJcPxSNDfuGmNWyv2ZtG6XmMkw04LgQIw-T11KuVdy5aTtMQ9CZ3jl96pNj_fYht4131QRpujSseaIJj-TgCYZqXQb7UW7zz_9i64yPjGfb_I7DOE3RIZzl487pCV7ChgjWXAoyFWoZBbJVeOpYX9SZCiUN8K8aa7uFNnUXQS7aa2c1iIQAWsmGCoJXytkXtQSugNQtJyjBb4TaDKk2PZqriKZpysX-B4VZCVYpV3OhI_3WVNfrHNt5AjrHqXSOabdtnZQBoNoxuL7Bbts-QYWOiYQv--6qn7YImYcTORxLCsHu1j-KsIQe3opJM7DdpOXq2F86lJH5rIy2U0bGo50FtkkbsXXayG6Db-giNIlLm9lb8moOs9tV2NdUPxvV2va66W_hD7ENumm4yFHF1UgPufSCvvTwm-gGv6mhBnv7Po7drRIXmqunturUkpbeS0t26DlGttBzI4hviiiMRPCs8tT1DKsq74on8gBdNMMT1dFdezzMcDMIczxLuHoA_-OurxuhbnJGPVengeHwkIYBC1zTsS0RQHQU-AZEUJ4F_3m0meUxe8bD1OwZD1sbc4V007bt-iw5SidTXqPvbAi3a_Aqju9u9yLWdp5MrP01pL5VHtu3K-FdEhNkxaEAZRW2iqNlhz41A-6xwAoD4oSeCITjuZ5l6FSYAWW2b1PL1H3im9xwMN_oBAExfZ8RXJFtJh3r4vg2muDVCqDkcJWmIZwt-bbRbDJB1Vc-HVGqwPJApOi3R7WVN07LXMVsvB8_AHc6E1fMtRnHS1Q48wNqOKYHE9UyHOobRLiEBo5hmdykTMj56-o6gb-IbwtuBcRa2Zv5lScq3XjWobE_U5k3udbD80KTJ-C6E13N_YXt086kf6Fp1yo4bovgnEymD9DlRDuMozxvkxthur5nuQbMEN1l3KYmc0PLE4w6pvBhSjl4vxg3SGBxXXdgsgmPmYKHpqUz5nnL66Y95YbtkPBcWtahm7KcnWJj9BAb5y8uNlRv1cUX4pbHKQTEEffbxMYxAsE4Bz1LQ8osnxuuxSghJBCWIA6xbdP2QlOAOjaJDyLmMEN3XYd6IoRvYl2evFMRt56DOEqTOx4LvMKsvlt6AYB3wOBDC9qFyKIg4smWWnrz6LXxlbUfQMW7PlF8eJ6jKONmXAg15b02dfaaXkCo44XECDyLGA4h3DEdx8B7QYmgge6QADwxHlDX85jlEc4p2ERhmabBTa-5uOYYi8iL1TjNljYm4AUMEPIIGSNo8kJRjntrocWZVjZOni8eXKW43xzBvYdqP3d5287lZ3n6lOrl9XJyD8MsFx1savNMj2G2BbVTChgfAk08CopbwSLcKy7nOIhoxAdqM79an1xasnTJAI-Uqti9xl7bcXXDCE0SUkoCJ7CAqwF3GKcG5VSEHrdclzoutTzOBTBdUNdxdN20CahERrc8yHAhgjsRLC4fSvBBrLLsNP28HPJajY1jdlfEukZ7bYGwdpFTbf4qezf3fMpor4mDfcjLW0CBfIQbV6Jc7Vy55ZHax-KB-IRRkZf3QUWZpqrSJmmA4Vq2QvYIbFeWYq04gxdg-2TFI5vPatVC7Y2Y5AO6dK9UmlexPUqp4P64hidH9eTXWTSdortRO0PF6pvPqd7JyH08nt26t9zp3lu-T1nHVpn6GYq2rOff8PTDOhCjWx23etXjaAImwdfeZDyfwnwEZbZ8MMIXpk-ZC1bO9wJBfYuHFt4MDf60bxEWBMIGrUsMrgd4oFS3Laa7pm86wgwd1zCXbxKoJbaayneftm9M2ieuPHlz4PszkEd5wB_buA8mdnU_gW30O5HTTK3QLVIri51UxG2X2r9-_LrkaV8cvDk_Gpx8noIwIZPE_MiN3FNV3lpXXoE3moEhA6NWX3bWeWj7lDNd-A5lnsmETyDGNS0BLpNBuKEzm0M8C36WaXgkgEgvtBzhmjaYqVDv3Lqod4tb09Z7YKon0DZ1_cvAaK6FgtxJO4yHi1XSBMddKnVe3tK37DYkpaPQZxxbg5l2r_Qgno7nlz6epfdxafxRt_PpoDzOBxx1jYY35VLq6Q7zqEMg8qVcN3QfWGoSF-avpdu-HZiMCJ8JThk1mAu-lrC8EKZwQMJwqzw2GkIc7Gse808iH3cadnPTfR_X4i6C6QmWI5T3-C7DN0KT7uN0S0naikaLBe2AbO5OQQ9Dky-jCCUXGqqUgdvcaFQerJwrK12vHya0209gzbPS6vZ-vCckSGdeDCJ5cx_B96_tuP83H98lpM01xoytdiZ4VqiDfKuH0q0QIgMCrqyrWxZojlAEYMFAYxi-bhm26eLV3bouhMND7uvUc02IJyzdNUIjDNYd5TPYtofS-xzm7l47bTdxm1Yh2o-oV7vqlkWuuRxr1IT0-ZB5Lyk1v9ZRhZoIQ-RrO6EwDYf5PoeQl_uuGVqey3zcfiVC3wErGHJKbcZAlQswhWbAbFOg1QyCJ7yXf-1W-3W7-tu28nfvwd9yd_3z7nnC2s6pPUyTtIAA4oxneL_fABTz3QMuXxSDxVXFUlfWpDskctugreu64xMvoJYegF9HXD0MwQ1xdJsYjs8tx_Vs04T_Z_pu4BrgAFrgtThGd8aVLd0a0szOo3e3uHZ2cMZzjdZuVIZY2Vi9hLnMeM59wEqPtkYYay4qa03xqlQwad7MILi8NkzW2xDUplcq5qnYg8wfw9xSb6yk0gutXSeiP8ZJetb9fXQ_bfNQ8EkafNfoTRZ1hNR6AALtOUT3XcfyvIATy4aw2kBfxQCVj09XUEvAtGCWbYfUNwSUwZxwOIdPfreD0jukNls27yu34Vh8Bk8burMkzFanMJuk5X77mne8egrSsNYE6e2bH77aJq-_y1UF5mN3nLqN7A-uYHheqFPqm15gGEzntu6B02zrlutzTjyLhbpOqO76LglZYAtMFQeeJxzHNP6GmzPdtgsXXbP3hYtqj-bG5WJm9tryra7273NQ5nmz0VfabETbV77e8rsIiMyzN0o08kHtlTmpO-VrII0F6oCAlXBMbnKb8tB3heHZPHADxzZ9fBxJJwFYDsZ8LwRjQt1QWLbrUqI7wg6E0XmXK6kfYYR531itvsHFC9kWzecJeHmaJzSZNIN4UuPTqZJemAilh-Sn6pxx_DDA-4oyPISI_swE742urmcFEemZwlizskidtvTj4czzYpTL93Gh9IhM1KgulLnHj1EgGnFWwDjzGOgqnfvAURoKPfAsk-B7NKYlDB9v9QJL7FLh0ZDbIdhg2yW4-O9DWYO1Fm1PPFpL-wDQL8T0WHVhreJloJ3P-dfcHFA-A_IHLtVSt_1kbAo-PTb1fRxnIL8FvmujwWwPeLwSwTbXF4GHjAcktHRDWEIH90anuuELahNw_h1MLtq-zahrBujU-ODum7rwdMMOCbWDnhtn55ajPAG_uOjpN9Hj3GRzYKz_3LnJ5avaGrq3fBJUbQHSpiLTCCuVx1CbTWWqZ04OBgvM2DLBS7zGHSiVa4eIskRWfEY_QC4JjqZZlMibioNUw3mP8vmwINkMkpoxePNWqmYdS8cWloJ3arUE76ucom6_aEYZN7Te_rhKNLyHAeBBlVz-2gnVJ3F7sGH2Xbi5GfN7lIHG0s2BN8N3JxvZVtswQ2qHzDX1wAL_z9UZxvCeb9ucCNvxg4BwB9RBYNAgsPVQBIJCGBPaps1tx-61dkNoj8Wb0yz9TSSDJTeuitsturVO3elIprE2XzKa8uxT7ZLmdacqyBeZIKsdNViAvMMrC1buCanBVxt-L-avDSyDkzbwcmvwOlC1RRGMAW5QVDO8ujMB2gX-J3Z04zUK6zbMNY4NlPvw50P4pXlnAmvz82dJDn3Bl6AWe-oXp0i-_F9T_9bS_2fDnQdtrfBLNrU0R22sY5vvfGgcL9hEsLnjonUXtySnDlIMfblcNsxxVFY517kObm7egvpYLen853f74Ut_a95aUB1YfguwfFsyTqv3oc4ERD1F7Z3G8l3JK-_99dvqUeoGhlKhtHrNoXoOoiLg9sMnXfhsE75acai12NyEoZiDVc5fzOzAka7YeQAfS1SVyy_fsmx52nJjpbTWUNqPNUYXa4yNPT1QI1Mh6Fv1snwstOXt0O4K34rbHhWuDoU2usf35x_ZUPUGacuTpOs5Qx5bYfk6astjqT0JqPdaV19v7W6vivM6ZxllfUaGbD8ytN_ILPAwG4wi2xtB9axz_lNnEwFcjqnNKtarhTUhpaSfimks5NV5afSrsoaxuU9pWtR0GnU3IwQPWvWsXoW2cbqq3QU15rWxQtkZ9Z4QviLEAzAy-FTQR4EZ7vLhXny1R4MIH1-1n8Xx8dVoTwPfBJ8Dwr81-eFeYqCzBnW9WLxzVEO-ScGjOjm7mmMrnwU3yqA7cJWmcZMOmMX500etjVPtl7-OeOyr53TrbyLKh61_Vg8p1Z6lKok23m2Mcv9nD1wnsM21h1VPTk9Pjm7OP5yUKCMh76eSNleGaiMRw6c9zU_jmE_B_Zib5Xzm5Qr6uz18nEmCH4uCR3HeQu1s8TbaelqSzgJ6lZJ8k0--M7me0Mlkik8VylfSirYmHadFr8aolmBO6AaCsTZOqWew1pNSbht6bLju0kIFncdNRBCmrSvgnvN4I2tLqI6hvnmYCsWqPkwpABrcWB_3vHcx-GzxROAG3pRbSFtoHMY9eKuAVpGvUnwDehN2CdXCVfmk8UauKqgW-RI-f9iErYBWkeUNkfhI7iYCc8AUH41toXQSi2pFYBOtdytH5tuG9QJ0idJtGwnKBFcFu0ppsQ2qx-ypIFt4FYUbR0nCtPQF34zdgHoxf1d2adZHPWZsCdUyLI2HNzeosjrsKqnqRb31RBRU6zCU1nfDECiolp5Ub3Ru6EQJ1jJRpII9uEujoI-2WAbfmaB6hXr3dqXB7VdoDUS4sfrdQqt8kn4DifrD9ZvQldNax35fRJgS2o0IzrfdKOC0242CjELbsK-X_ZBV3Ot256PMT_ao-LZVVfXDP0kCsIftst2Pwmkmkt8eHo0uH3nuUP0gn_J5y166fw68Gy3cIVZljLchtdoz2ap1umNrWspQrumomv83XD7j2ke1KdDdCYEZP2v3F7egNI9izgSPi7EMY3YieKHWjaBl2_azZZYKP51NeRJU1C67vfRtuAcxLBA9nEVxcIxbpvKdWilfuq_Ref2yCudeX_GseNACkReReicS7GwMceJonN4fBHcoozfA8Xzx8ux0KpJ5qyW1dym4Rdg8pFz98Rqc_TQrIBbNi7eC384wmJ-V68YHcYD2HstQH3C_ENkZz8ff7XHLsgzuOrowGTNDV_ieTkJXZ8L1DU_YhOoOyIOrkK9BJCaoLU7oniY-Y4WyQ43mlUt-KklSBpXlm7kAj2chDx8gxp4zDh_SnU2nqgyDEuj8wdu3e8AlmfqFr-WihczRIPxbcQvRA5Ka82kBXD7tm6TZhMel8C3VfYqOFejGdOJFiQgw4lfDXba2_tyj-qhNwOM-WHRJDqjs1FKB_FYmBPYwix_PAnGelJmGeXNFgqshQe3JYKgJ2lcWqLuySMUjH7duKMqqc8TZ025VJuQCQvCAF1zlDl4CjZfVxVpqJxT0Hf-WsPLDVcwfMH_QbIP2a43JvlqNLVmJGUA-EXjDSEVjT7vjWcSTYkF2jlWfZBApAj_Pk0B8hiGJ4r1GB-lcCGpwJWsR-OX2jFnLl7mYvR8XmQjyg9ntLHuoMaiEUMWqdDduKUrVYm5VX4139arK2p8UI6f3eGF0cntzn7bwsSpVTJQwj-RjRUk7P2_yryooq5R1_JfzL68x8EpkGKahL9Fk4VWWxmlyC9qp9INKnJ1ZOSc8X5Nf5mlX1X8kb18rrfVHqFxV-44al-rrB7RUueoypvIupsaEqH3fpFLoygCS-gCWVF5ptR2LH3k-Lasrb1icc6Y2sG2tq4EvOFwb5NWxK8e4hl0izhlzgVsQQbBfQk_BEznM5Nmrlzf3kbxq8DILRNYo6pKYRRW7Uf_Tp_WpEHi1hgrLWnVjA2LnSV1S0xS55QndqOsJKcoaQy9mOOarbFTfd3RpStp1l0Z-eoIG-ad0Os6vHpaUjyydF-3GLSRTOTSqohrf5nU8FdbVJ-15Eoos4TGEF6BxWmdtE2TnaVuR0xS95XnbrO2JejgjwEQ9fBpDt1c52ijeTTIrUlpZVd3yNRvx9JyYPyFuXHgxp1maF4cQHdeGa_5te--laamQjqaI103Uosqno2xHRRZND-55Swh5lYJPX5x8Bj0521XjKlpaRazpqzfqeYpaV94FfuKPW7TtvGhHvYBkNFVFXSdU1J-gmcet4kFUiFYjNRqjfznLxc72SVLSkNSyaZrX8UStEiaOudpG74sOU6924MpLIHfmZKO-VTtfq-ppB9tfx071jLYPYwh7x2JS17_zbzvaqRrt2kjVvj4dZXFQ_BZlUX6UTiazRK7cL8v6MsRu-lZRq2KEWrU1Ri7X-F-lg90-2fX5Hb8fBf-El27U2LpStqMwLu4TXlRWY2ZLU_7b2biYxHhPQ5rJoy5RUmdis2A3kaxoaVUtNe4tN-DpTOzrqMDu50XkH82yvCW6WobYjYs1alpZYY2Py3U9QbdKtjt4k-F9YKvMrJfuxkhFSasqqjGxXscfzcC_Srg6-iRiKI5HRZpNLuRen-XE-zLErgq5IqhJilqt0nXp9452bkrBd4_5ag7-mkf43JOsCWguatqcYO9E_dOd86M0KV9Obg1u_E87xoNIYjma8T89xeAZwwpfbvFa5dSibDd21euo8Wzx-Sky7nmB5qvncVBh4HP3LXO2Ktpx3i5qqM_d6utTFMODzOeJkB5oqxBe82kkD3Z_jU0UkphWUlsWwXpNzymI3tFLZdMPs1nR7XfI0q_mc9Tr6uFudIB_ZVejrGVbN6Nq3PNy8rOd_FtsZDgTYbHKRPy6m9QpujVe4YenKHF4EgMvh23LZvDKly0BHmsHbzEFv2z_5o5sSfzZ8q21fB_TOLziGEjNh6n6tKOhQzJajfQaG7fUiMebt812C6tSv_8Dib50EmU8vxa_ziKw6C0zowmwY5pPEqvy94tK67OlWd9TDZ3lifEOZYNnkL6CspGXXS8rG_z4pyibP2I1Sd3xl99ExbiFbY3iHdeRmrcJlhXWF5HqdT3BdPOzF9o3La-2-BdZ9Kl9sb4BsbMTWlLTFLllJ7RR13OovHWofC343ZLU12NlVfzVguVGbT2i5S74r-5PNOPgebXPKug5EP57JIz_6oHec_Lgz5cppVwvQKdCz2Kej1tn6grUzrO1ustfUluerCvVPTsNWzsNRzE-kNrpNKjir-Y0NGrr4TR0wf_BTsO82udlq-LpHgEu1YO8KvihU1mp4h0dMqWl5lWt6ihV8iQ1v4AK5Y1Z7Sp_Xry7rgdS5X35K5p-XsvTXJx4C-P_ZnGUuMa_qmQ3AUQqmqqgxrWK9hPMTBzDgI8neI3nKssWZbsxrV5HjWuLz8_7BN1-16Ek_FpMEi5vRqxdirL4vKP_UL65VlXRuCKlXvcTku8oz6Mp7zhodAoeLRreJvt2UK1nPAOnLvLnTFyJe5dqfJpq9hxf-MCZ0BH-zsu_RgysOKXJg4L-w2o4rMrL4icVGDe2jMbyfY_25LAq2z0trOis5IPV5_9MUJens8wX3-2dfJ7G8qrnx2jmy0T7AYmVN2tokpi643NnlS27Wg6r_L0Y2MVxGbwwbd6D3oMjyS2Gp8H2Ng73YiRK1ytqvmq80TjU6o80rmFyHqdF_d2G59vBdrodrAVw3aQof6ob4Ms_8n8OXr-8AlfpMpT3-4HxoP8c_H-zRSbV

Before screenshot:

Before — existing PoB

After screenshot:

After — this PR

Some skills inflict an ailment as though dealing damage without actually
hitting (e.g. Infernal Legion's burn "ignites as though dealing X"). Add
a generic skillData flag, pseudoHitAilment, for such skills:

- The skill inflicts only the ailment it represents: the restriction
  lives in canDoAilment, so on-hit ailment sources (a Poison support,
  etc.) can't ride along on the notional damage. This works the same
  for every ailment.
- The hit itself deals no damage: hit outputs are zeroed after the
  ailment has been derived from the stored hit damage, so only the
  ailment/DoT counts toward DPS (and Full DPS aggregation).

No skill sets the flag yet; Infernal Legion support builds on this.
Model the PoE2 Infernal Legion burn as a hidden minion skill granted by
the Infernal Legion supports and Catha's Brilliance, which share the
support_minions_ignite_for_%_max_life stat.

PoE1's PoB models Infernal Legion as a FireDot aura (same shape as
Righteous Fire) because the PoE1 support dealt fire damage per second.
PoE2 changed the mechanic to an Ignite, which a plain DoT can't express
(ailment magnitude, crit via Critical Weakness, ignite stacking). Keep
the PoE1 hidden-skill architecture but change the payload:

- The burn is a pseudo-hit Ignite: X% of the minion's maximum life is
  fed in as notional base fire damage, run through the normal damage
  pipeline, then discarded as a hit (pseudoHitAilment).
- Fixed ignite cadence (~0.8/sec via timeOverride, matched to in-game
  timing); with the 4s ignite duration this drives the rolling-ignite
  stack potential.
- Crit: no innate crit chance, so it crits only from enemy Critical
  Weakness; the minion's increased crit chance and crit damage each
  apply at half effectiveness; 50% base crit damage bonus instead of
  the minion's 100%.
- Full DPS evaluates the IL extra skill even when another minion skill
  is selected, feeding the strongest-ignite comparison.
The IL extra-skill ignite was written straight into the Full DPS
roll-up, so it was not part of the captured pass snapshot: a cached
replay (item/tree comparison with unchanged inputs) silently dropped
the ignite and understated Full DPS. Record the IL result as its own
actor in the pass instead - mergeStats feeds it into the best-ignite
comparison on live and cached merges alike, and the source column now
names the skill (the old path set an unused global, leaving the
Best Ignite DPS source blank).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant