Skip to content

raidboss: Necron ex tweaks#1024

Merged
valarnin merged 6 commits intoOverlayPlugin:mainfrom
valarnin:necron-ex-tweaks
Mar 14, 2026
Merged

raidboss: Necron ex tweaks#1024
valarnin merged 6 commits intoOverlayPlugin:mainfrom
valarnin:necron-ex-tweaks

Conversation

@valarnin
Copy link
Collaborator

@valarnin valarnin commented Mar 9, 2026

Fix some syncs in timeline, add solo phase stuff, fix tower miscount during mass macabre.

The timeline re-sync at the start due to using FFLogs pull timing instead of actual in-combat pull timing causes the timeline modifications to look way bigger than they actually are.

@github-actions github-actions bot added raidboss /ui/raidboss module needs-review Awaiting review labels Mar 9, 2026
431.0 "Choking Grasp" Ability { id: "AE28", source: "Icy Hands" }
436.1 "Choking Grasp" Ability { id: "AE28", source: "Icy Hands" }
441.2 "Choking Grasp" Ability { id: "AE28", source: "Icy Hands" }
446.3 "Choking Grasp" Ability { id: "AE28", source: "Icy Hands" }
Copy link
Collaborator

@xiashtra xiashtra Mar 9, 2026

Choose a reason for hiding this comment

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

These solo phases should probably have a forcejump at the end so they don't run into the next block in case the P2 sync is missed. It would also let the P2 timeline start to show before the sync.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Syncing this is impossible because P2 starts as soon as the first player is done with their solo phase. The discrepancy is already so great that it's possible for P2 to be 30 seconds in and past the first mechanic (Specter of Death/The End's Embrace spread mechanic) has already fully resolved.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

A slight adjustment to the above, P2 starts when the player with the highest aggro either escapes their solo add phase, or dies. Turns out our WAR is just an ape that's been insta-nuking his add and when we did alt roles yesterday it became apparent what the logic actually was.

630.9 "Choking Grasp" Ability { id: "AE2E", source: "Icy Hands" }
637.0 "Choking Grasp" Ability { id: "AE2E", source: "Icy Hands" }
643.1 "Choking Grasp" Ability { id: "AE2E", source: "Icy Hands" }
649.2 "Choking Grasp" Ability { id: "AE2E", source: "Icy Hands" }
Copy link
Collaborator

Choose a reason for hiding this comment

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

Same comment as above.

824.7 "Choking Grasp" Ability { id: "AE2B", source: "Icy Hands" }
831.8 "Choking Grasp" Ability { id: "AE2B", source: "Icy Hands" }
838.9 "Choking Grasp" Ability { id: "AE2B", source: "Icy Hands" }
846.0 "Choking Grasp" Ability { id: "AE2B", source: "Icy Hands" }
Copy link
Collaborator

Choose a reason for hiding this comment

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

Same comment as above.

@github-actions github-actions bot removed the needs-review Awaiting review label Mar 9, 2026
@Bing-su
Copy link
Collaborator

Bing-su commented Mar 9, 2026

  timelineReplace: [
    {
      'locale': 'en',
      'replaceText': {
        'Twofold Blight/Fourfold Blight': 'Twofold/Fourfold Blight',
        'The Second Season/The Fourth Season': 'The Second/Fourth Season',
      },
    },
    {
      'locale': 'de',
      'replaceSync': {
        'Azure Aether': 'azur(?:e|er|es|en) Äther',
        'Beckoning Hands': 'lockend(?:e|er|es|en) Hand',
        'Icy Hands': 'eiskalt(?:e|er|es|en) Hand',
        'Necron': 'Ewig(?:e|er|es|en) Dunkel',
      },
      'replaceText': {
        'Aetherblight': 'Ätherische Verderbnis',
        'Blue Shockwave': 'Blaue Schockwelle',
        'Chilling Fingers': 'Klauen des Todes',
        'Choking Grasp': 'Würgegriff',
        'Circle of Lives': 'Lebenszirkel',
        'Cold Grip': 'Dunkelhieb',
        'Crop Rotation': 'Fruchtfolge der Dunkelheit',
        'Darkness of Eternity': 'Ewige Dunkelheit',
        'Existential Dread': 'Existenzielle Angst',
        'Fear of Death': 'Todesfurcht',
        'Fourfold Blight': 'Vierfaches Verderben',
        'Grand Cross': 'Supernova',
        'Inevitability': 'Unumgänglichkeit',
        'Mass Macabre': 'Massenfurcht',
        'Memento Mori': 'Memento Mori',
        'Muted Struggle': 'Stiller Kampf',
        'Necrotic Pulse': 'Nekrotischer Impuls',
        'Neutron Ring': 'Neutronenring',
        'Relentless Reaping': 'Andauernde Labung',
        'Shock(?!wave)': 'Entladung',
        '(?<!Blue )Shockwave': 'Schockwelle',
        'Smite of Gloom': 'Schlag der Schwermut',
        'Soul Reaping': 'Seelenlabung',
        'Specter of Death': 'Gesandte des Todes',
        'Spreading Fear': 'Angst verbreiten',
        'The End\'s Embrace': 'Letzte Umarmung',
        'The Fourth Season': 'Vierte Saison',
        'The Second Season': 'Zweite Saison',
        'Twofold Blight': 'Doppeltes Verderben',
      },
    },
    {
      'locale': 'fr',
      'replaceSync': {
        'Azure Aether': 'sphère d\'énergie bleue',
        'Beckoning Hands': 'grand attrape-mort',
        'Icy Hands': 'attrape-mort',
        'Necron': 'Darkness',
      },
      'replaceText': {
        '\\(cast\\)': '(Incante)',
        '\\(damage\\)': '(Dommages)',
        '\\(intercards\\)': '(Intercardinaux)',
        '\\(line\\)': '(Ligne)',
        '\\(lines\\)': '(Lignes)',
        '\\(puddle\\)': '(Puddle)',
        '\\(puddles\\)': '(Puddles)',
        '\\(spread\\)': '(Dispersion)',
        '\\(tower\\)': '(Tour)',
        'Aetherblight': 'Voie bleue',
        'Blue Shockwave': 'Onde bleue',
        'Chilling Fingers': 'Enroulement',
        'Choking Grasp': 'Pression écrasante',
        'Circle of Lives': 'Sphères d\'énergie bleues',
        'Cold Grip': 'Fouet létal',
        'Crop Rotation': 'Rotation des âmes',
        'Darkness of Eternity': 'Obscurité éternelle',
        'Existential Dread': 'Jaillissement obscur',
        'Fear of Death': 'Thanatophobie',
        'Fourfold Blight': 'Voie bleue quadruplée',
        'Grand Cross': 'Croix suprême',
        'Inevitability': 'Déluge de mort',
        'Mass Macabre': 'Panique collective',
        'Memento Mori': 'Memento mori',
        'Muted Struggle': 'Frappe écrasante',
        'Necrotic Pulse': 'Déchirement',
        'Neutron Ring': 'Anneau de neutrons',
        'Relentless Reaping': 'Âmes bleues enchaînées',
        'Shock(?!wave)': 'Décharge électrostatique',
        '(?<!Blue )Shockwave': 'Onde de choc',
        'Smite of Gloom': 'Coup des ténèbres',
        'Soul Reaping': 'Âme bleue',
        'Specter of Death': 'Agrippe-morts',
        'Spreading Fear': 'Désagrégement',
        'The End\'s Embrace': 'Aile guide',
        'The Fourth Season': 'Motifs bleus quadruplés',
        'The Second Season': 'Motifs bleus doublés',
        'Twofold Blight': 'Voie bleue doublée',
      },
    },
    {
      'locale': 'ja',
      'replaceSync': {
        'Azure Aether': '青の魂塊',
        'Beckoning Hands': '死に誘う手',
        'Icy Hands': '死を招く手',
        'Necron': '永遠の闇',
      },
      'replaceText': {
        'Aetherblight': '青の波動',
        'Blue Shockwave': '青の衝撃',
        'Chilling Fingers': 'まとわりつく',
        'Choking Grasp': '圧し潰す',
        'Circle of Lives': '青の輪波',
        'Cold Grip': '暗き死の腕',
        'Crop Rotation': '魂の輪転',
        'Darkness of Eternity': 'エターナルダークネス',
        'Existential Dread': '暗気流',
        'Fear of Death': '死の恐怖',
        'Fourfold Blight': '青の四重波',
        'Grand Cross': 'グランドクロス',
        'Inevitability': '死の氾濫',
        'Mass Macabre': '集団恐慌',
        'Memento Mori': 'メメント・モリ',
        'Muted Struggle': '叩き潰す',
        'Necrotic Pulse': '引き裂く',
        'Neutron Ring': 'ニュートンリング',
        'Relentless Reaping': '連なる青き魂',
        'Shock(?!wave)': '放電',
        '(?<!Blue )Shockwave': '衝撃波',
        'Smite of Gloom': '闇の一撃',
        'Soul Reaping': '青き魂',
        'Specter of Death': '闇の巨腕',
        'Spreading Fear': '撒き散らす',
        'The End\'s Embrace': '導きの翼',
        'The Fourth Season': '青の式波・四重',
        'The Second Season': '青の式波・二重',
        'Twofold Blight': '青の二重波',
      },
    },
    {
      'locale': 'cn',
      'replaceSync': {
        'Azure Aether': '青之魂块',
        'Beckoning Hands': '邀死之手',
        'Icy Hands': '招死之手',
        'Necron': '永远之暗',
      },
      'replaceText': {
        '\\(cast\\)': '(咏唱)',
        '\\(damage\\)': '(伤害)',
        '\\(intercards\\)': '(斜角)',
        '\\(line\\)': '(直线)',
        '\\(lines\\)': '(直线)',
        '\\(puddle\\)': '(圈)',
        '\\(puddles\\)': '(圈)',
        '\\(spread\\)': '(分散)',
        '\\(tower\\)': '(塔)',
        'Aetherblight': '青之波动',
        'Blue Shockwave': '青之冲击',
        'Chilling Fingers': '死缠',
        'Choking Grasp': '压溃',
        'Circle of Lives': '青之环波',
        'Cold Grip': '暗之死腕',
        'Crop Rotation': '灵魂轮转',
        'Darkness of Eternity': '永远之暗',
        'Existential Dread': '暗气流',
        'Fear of Death': '死之恐惧',
        'Fourfold Blight': '青之四重波',
        'Grand Cross': '大十字',
        'Inevitability': '死之泛滥',
        'Mass Macabre': '群体恐慌',
        'Memento Mori': '死亡警告',
        'Muted Struggle': '击溃',
        'Necrotic Pulse': '撕破',
        'Neutron Ring': '中子环',
        'Relentless Reaping': '青之连魂',
        'Shock(?!wave)': '放电',
        '(?<!Blue )Shockwave': '青之冲击',
        'Smite of Gloom': '黑暗一击',
        'Soul Reaping': '青魂',
        'Specter of Death': '黑暗巨腕',
        'Spreading Fear': '散布',
        'The End\'s Embrace': '引导之翼',
        'The Fourth Season': '四重青之波潮',
        'The Second Season': '二重青之波潮',
        'Twofold Blight': '青之二重波',
      },
    },
    {
      'locale': 'tc',
      'missingTranslations': true,
      'replaceSync': {
        // 'Azure Aether': '', // FIXME '青之魂块'
        // 'Beckoning Hands': '', // FIXME '邀死之手'
        // 'Icy Hands': '', // FIXME '招死之手'
        // 'Necron': '', // FIXME '永远之暗'
      },
      'replaceText': {
        // '\\(cast\\)': '', // FIXME '(咏唱)'
        // '\\(damage\\)': '', // FIXME '(伤害)'
        // '\\(intercards\\)': '', // FIXME '(斜角)'
        // '\\(line\\)': '', // FIXME '(直线)'
        // '\\(lines\\)': '', // FIXME '(直线)'
        // '\\(puddle\\)': '', // FIXME '(圈)'
        // '\\(puddles\\)': '', // FIXME '(圈)'
        // '\\(spread\\)': '', // FIXME '(分散)'
        // '\\(tower\\)': '', // FIXME '(塔)'
        // 'Aetherblight': '', // FIXME '青之波动'
        // 'Blue Shockwave': '', // FIXME '青之冲击'
        // 'Choking Grasp': '', // FIXME '压溃'
        // 'Circle of Lives': '', // FIXME '青之环波'
        // 'Cold Grip': '', // FIXME '暗之死腕'
        // 'Crop Rotation': '', // FIXME '灵魂轮转'
        // 'Darkness of Eternity': '', // FIXME '永远之暗'
        'Existential Dread': '萬死的憎惡',
        // 'Fear of Death': '', // FIXME '死之恐惧'
        // 'Fourfold Blight': '', // FIXME '青之四重波'
        'Grand Cross': '大十字',
        // 'Inevitability': '', // FIXME '死之泛滥'
        // 'Mass Macabre': '', // FIXME '群体恐慌'
        // 'Memento Mori': '', // FIXME '死亡警告'
        // 'Muted Struggle': '', // FIXME '击溃'
        // 'Neutron Ring': '', // FIXME '中子环'
        // 'Relentless Reaping': '', // FIXME '青之连魂'
        'Shock(?!wave)': '放電',
        // '(?<!Blue )Shockwave': '', // FIXME '青之冲击'
        'Smite of Gloom': '黑暗一擊',
        // 'Soul Reaping': '', // FIXME '青魂'
        // 'Specter of Death': '', // FIXME '黑暗巨腕'
        // 'The End\'s Embrace': '', // FIXME '引导之翼'
        // 'The Fourth Season': '', // FIXME '四重青之波潮'
        // 'The Second Season': '', // FIXME '二重青之波潮'
        // 'Twofold Blight': '', // FIXME '青之二重波'
      },
    },
    {
      'locale': 'ko',
      'replaceSync': {
        'Azure Aether': '푸른 영혼 덩어리',
        'Beckoning Hands': '죽음으로 이끄는 손',
        'Icy Hands': '죽음을 부르는 손',
        'Necron': '영원한 어둠',
      },
      'replaceText': {
        '\\(cast\\)': '(시전)',
        '\\(damage\\)': '(피해)',
        '\\(intercards\\)': '(대각)',
        '\\(lines?\\)': '(직선)',
        '\\(puddles?\\)': '(장판)',
        '\\(spread\\)': '(산개)',
        '\\(tower\\)': '(탑)',
        'Aetherblight': '푸른 파동',
        'Blue Shockwave': '푸른 충격',
        'Chilling Fingers': '들러붙기',
        'Choking Grasp': '짓누르기',
        'Circle of Lives': '푸른 고리 파동',
        'Cold Grip': '검은 죽음의 팔',
        'Crop Rotation': '영혼 순환',
        'Darkness of Eternity': '영원한 어둠',
        'Existential Dread': '어두운 기류',
        'Fear of Death': '죽음에 대한 공포',
        'Fourfold Blight': '푸른 사중 파동',
        'Grand Cross': '그랜드크로스',
        'Inevitability': '죽음의 범람',
        'Mass Macabre': '집단 공황',
        'Memento Mori': '메멘토 모리',
        'Muted Struggle': '찍어누르기',
        'Necrotic Pulse': '찢어버리기',
        'Neutron Ring': '중성자 고리',
        'Relentless Reaping': '연속 푸른 영혼',
        'Shock(?!wave)': '방전',
        '(?<!Blue )Shockwave': '충격파',
        'Smite of Gloom': '어둠의 일격',
        'Soul Reaping': '푸른 영혼',
        'Specter of Death': '거대한 어둠의 팔',
        'Spreading Fear': '퍼뜨리기',
        'The End\'s Embrace': '인도의 날개',
        'The Fourth Season': '푸른 파동식: 사중',
        'The Second Season': '푸른 파동식: 이중',
        'Twofold Blight': '푸른 이중 파동',
      },
    },
  ],

Rather than creating a separate PR, it seems better to add it here;
Action.all.xlsx

@valarnin
Copy link
Collaborator Author

valarnin commented Mar 9, 2026

Rather than creating a separate PR, it seems better to add it here;

This is still missing a translation for 270.5 "Add Spawn" AddedCombatant:

  1) timeline test
       ui/raidboss/data/07-dt/trial/necron-ex.txt
         should not be missing timeline translations:

      AssertionError: ui/raidboss/data/07-dt/trial/necron-ex.ts:locale de:no translation for replaceText 'Add Spawn': expected false to be true
      + expected - actual

      -false
      +true

@Bing-su
Copy link
Collaborator

Bing-su commented Mar 10, 2026

Rather than creating a separate PR, it seems better to add it here;

This is still missing a translation for 270.5 "Add Spawn" AddedCombatant:

  1) timeline test
       ui/raidboss/data/07-dt/trial/necron-ex.txt
         should not be missing timeline translations:

      AssertionError: ui/raidboss/data/07-dt/trial/necron-ex.ts:locale de:no translation for replaceText 'Add Spawn': expected false to be true
      + expected - actual

      -false
      +true

I apologise for commenting without running the tests. The changes seem to be a lot bigger than I thought, so it would be better to handle this in a separate PR.

@valarnin
Copy link
Collaborator Author

I apologise for commenting without running the tests. The changes seem to be a lot bigger than I thought, so it would be better to handle this in a separate PR.

Your comment covers all the other changes except this one timeline addition. I'm fine with taking your comment, adding the missingTranslations property back, and getting translations for the last bit as a follow up PR, if that sounds good to you?

@Bing-su
Copy link
Collaborator

Bing-su commented Mar 10, 2026

Yes. That would be great

---------

Co-authored-by: Dowon <ks2515@naver.com>
@valarnin valarnin merged commit e13a2c8 into OverlayPlugin:main Mar 14, 2026
10 checks passed
github-actions bot pushed a commit that referenced this pull request Mar 14, 2026
---------

Co-authored-by: Dowon <ks2515@naver.com> e13a2c8
github-actions bot pushed a commit that referenced this pull request Mar 14, 2026
---------

Co-authored-by: Dowon <ks2515@naver.com> e13a2c8
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

raidboss /ui/raidboss module

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants