-
Notifications
You must be signed in to change notification settings - Fork 1
735 #219
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
Conversation
…nal and Necron EX - Added Korean translations for various zone names in zone_info.ts. - Updated trigger settings in pilgrims_traverse_the_final_verse.ts to improve alert timings and added Japanese translations. - Implemented Korean translations for Necron EX encounter abilities in necron-ex.ts. - Enhanced coverage tracking by including DeepDungeonExtras in coverage.ts and encounter_tools.ts. - Created new Meso Terminal encounter triggers and timeline in meso-terminal.ts and meso-terminal.txt.
…ungeon - Implemented triggers for mobs and bosses in Pilgrim's Traverse Stones from levels 1 to 70, including mechanics for various encounters. - Added translations for specific responses in Meso Terminal dungeon. - Introduced new content type for Deep Dungeon Extras in coverage utility. - Created initial trigger sets for Pilgrim's Traverse Stones 01-10, 11-20, 21-30, 31-40. - Enhanced existing triggers with additional output strings and conditions for better player guidance.
…s in Meso Terminal, Underkeep, Occult Crescent South Horn, R5S, R8N, R8S, Necron EX, Queen Eternal, Seiryu UN, and Pilgrim's Traverse Stones 91-100
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR (titled "735") adds support for Deep Dungeon Extra Content, implements new dungeon and raid content, adds German translations, and updates version numbers to 99.170.0.
Key changes:
- Adds new
ContentType.DeepDungeonExtrascategory for special Deep Dungeon encounters - Implements comprehensive triggers for The Meso Terminal dungeon
- Adds extensive Pilgrim's Traverse Deep Dungeon content (Stones 1-100 + The Final Verse boss)
- Adds German and other language translations across multiple files
- Updates Korean game process offsets for FFXIV 7.3
Reviewed Changes
Copilot reviewed 36 out of 37 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| util/logtools/encounter_tools.ts | Adds DeepDungeonExtras to keepTypes list for encounter detection |
| util/coverage/coverage.ts | Defines DeepDungeonExtras content type with localized labels |
| ui/raidboss/data/07-dt/dungeon/meso-terminal.ts | New comprehensive trigger file for The Meso Terminal dungeon |
| ui/raidboss/data/07-dt/deepdungeon/pilgrims_traverse_*.ts | New trigger files for all Pilgrim's Traverse floors (1-100) |
| ui/raidboss/data/07-dt/deepdungeon/pilgrims_traverse_the_final_verse.ts | Extensive updates for The Final Verse boss fight |
| ui/raidboss/data/07-dt/trial/seiryu-un.ts | Adds German translations and removes missingTranslations flag |
| ui/raidboss/data/07-dt/trial/queen-eternal.ts | Adds French translations and removes missingTranslations flag |
| ui/raidboss/data/07-dt/trial/necron-ex.ts | Adds Korean timeline translations and removes missingTranslations flag |
| ui/raidboss/data/07-dt/raid/r8s.ts | Adds German/French translations and removes missingTranslations flags |
| resources/zone_info.ts | Adds missing Korean and Chinese zone name translations |
| resources/netlog_defs.ts | Updates StartsUsingExtra with playerIds field 10 and analysis options |
| plugin/CactbotEventSource/FFXIVProcessKo.cs | Updates Korean client memory offsets for FFXIV 7.3 |
| package.json | Version bump to 99.170.0 |
Comments suppressed due to low confidence (18)
plugin/CactbotEventSource/FFXIVProcessKo.cs:657
- This foreach loop implicitly filters its target sequence - consider filtering the sequence explicitly using '.Where(...)'.
foreach (var flag in new List<Stance> { Stance.Ruby, Stance.Topaz, Stance.Emerald }) {
if (stance.HasFlag(flag))
arcanums.Add(flag.ToString());
}
plugin/CactbotEventSource/FFXIVProcessKo.cs:668
- This foreach loop implicitly filters its target sequence - consider filtering the sequence explicitly using '.Where(...)'.
foreach (var flag in new List<Stance> { Stance.SolarBahamut, Stance.Phoenix }) {
if (stance.HasFlag(flag))
return flag.ToString();
}
plugin/CactbotEventSource/FFXIVProcessKo.cs:143
- This foreach loop immediately maps its iteration variable to another variable - consider mapping the sequence explicitly using '.Select(...)'.
foreach (IntPtr ptr in p) {
IntPtr addr = IntPtr.Add(ptr, kCharmapStructOffsetPlayer);
IntPtr value = ReadIntPtr(addr);
if (player_ptr_value == IntPtr.Zero || player_ptr_value == value) {
player_ptr_value = value;
player_ptr_addr_ = addr;
} else {
logger_.Log(LogLevel.Error, Strings.CharmapSignatureConflictingMatchErrorMessage);
}
}
plugin/CactbotEventSource/FFXIVProcessKo.cs:204
- String concatenation in loop: use 'StringBuilder'.
entity.debug_job += " ";
plugin/CactbotEventSource/FFXIVProcessKo.cs:205
- String concatenation in loop: use 'StringBuilder'.
entity.debug_job += string.Format("{0:x2}", job_bytes[i]);
plugin/CactbotEventSource/FFXIVProcessKo.cs:95
- Field 'kCharmapSignatureOffset' can be 'readonly'.
private static int kCharmapSignatureOffset = 0;
plugin/CactbotEventSource/FFXIVProcessKo.cs:104
- Field 'kCharmapStructOffsetPlayer' can be 'readonly'.
private static int kCharmapStructOffsetPlayer = 0;
plugin/CactbotEventSource/FFXIVProcessKo.cs:114
- Field 'kInCombatRipOffset' can be 'readonly'.
private static int kInCombatRipOffset = 1;
plugin/CactbotEventSource/FFXIVProcessKo.cs:118
- Field 'kJobDataSignature' can be 'readonly'.
private static String kJobDataSignature = "488B3D????????33ED";
plugin/CactbotEventSource/FFXIVProcessKo.cs:119
- Field 'kJobDataSignatureOffset' can be 'readonly'.
private static int kJobDataSignatureOffset = -6;
plugin/CactbotEventSource/FFXIVProcessKo.cs:121
- Field 'kJobDataSignatureRIP' can be 'readonly'.
private static bool kJobDataSignatureRIP = true;
plugin/CactbotEventSource/FFXIVProcessKo.cs:94
- Field 'kCharmapSignature' can be 'readonly'.
private static String kCharmapSignature = "488b5720b8000000e0483Bd00f84????????488d0d";
plugin/CactbotEventSource/FFXIVProcessKo.cs:97
- Field 'kCharmapSignatureRIP' can be 'readonly'.
private static bool kCharmapSignatureRIP = true;
plugin/CactbotEventSource/FFXIVProcessKo.cs:487
- Both branches of this 'if' statement return - consider using '?' to express intent better.
if (stance == 1)
return blood_or_life_ms;
else
return 0;
plugin/CactbotEventSource/FFXIVProcessKo.cs:495
- Both branches of this 'if' statement return - consider using '?' to express intent better.
if (stance == 2)
return blood_or_life_ms;
else
return 0;
plugin/CactbotEventSource/FFXIVProcessKo.cs:746
- Both branches of this 'if' statement return - consider using '?' to express intent better.
if ((Nadi & 0x2) == 0x2)
return true;
else
return false;
plugin/CactbotEventSource/FFXIVProcessKo.cs:755
- Both branches of this 'if' statement return - consider using '?' to express intent better.
if ((Nadi & 0x1) == 0x1)
return true;
else
return false;
plugin/CactbotEventSource/FFXIVProcessKo.cs:866
- Both branches of this 'if' statement return - consider using '?' to express intent better.
if (_nextdraw == 0)
{
return "Astral";
} else
{
return "Umbral";
}
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| // This reader is "cmp byte ptr [ffxiv_dx11.exe+????????],00 { (0),0 }" | ||
| private static String kInCombatSignature = "803D??????????74??488B03488BCBFF50"; | ||
| // Updated in 7.3, signature was no longer unique, include the preceeding "jz LAB_?????????" | ||
| private static String kInCombatSignature = "74??803D??????????74??488B03488BCBFF50"; |
Copilot
AI
Nov 14, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Field 'kInCombatSignature' can be 'readonly'.
| private static String kInCombatSignature = "74??803D??????????74??488B03488BCBFF50"; | |
| private static readonly String kInCombatSignature = "74??803D??????????74??488B03488BCBFF50"; |
| private static String kInCombatSignature = "803D??????????74??488B03488BCBFF50"; | ||
| // Updated in 7.3, signature was no longer unique, include the preceeding "jz LAB_?????????" | ||
| private static String kInCombatSignature = "74??803D??????????74??488B03488BCBFF50"; | ||
| private static int kInCombatSignatureOffset = -15; |
Copilot
AI
Nov 14, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Field 'kInCombatSignatureOffset' can be 'readonly'.
| private static int kInCombatSignatureOffset = -15; | |
| private static readonly int kInCombatSignatureOffset = -15; |
| // Updated in 7.3, signature was no longer unique, include the preceeding "jz LAB_?????????" | ||
| private static String kInCombatSignature = "74??803D??????????74??488B03488BCBFF50"; | ||
| private static int kInCombatSignatureOffset = -15; | ||
| private static bool kInCombatSignatureRIP = true; |
Copilot
AI
Nov 14, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Field 'kInCombatSignatureRIP' can be 'readonly'.
| private static bool kInCombatSignatureRIP = true; | |
| private static readonly bool kInCombatSignatureRIP = true; |
No description provided.