From 7ee8c5c7af7d052606bf00c7be1a1052ebfff7aa Mon Sep 17 00:00:00 2001 From: x Date: Thu, 30 Nov 2023 15:50:34 +0800 Subject: [PATCH] update BLM DRG MCH AST --- XIVSlothCombo/Combos/CustomComboPreset.cs | 1280 +++++---- XIVSlothCombo/Combos/JobHelpers/BLM.cs | 451 +++ XIVSlothCombo/Combos/JobHelpers/DRG.cs | 453 +++ XIVSlothCombo/Combos/JobHelpers/MCH.cs | 553 ++++ XIVSlothCombo/Combos/JobHelpers/NIN.cs | 2 +- XIVSlothCombo/Combos/PvE/BLM.cs | 2445 +++++------------ XIVSlothCombo/Combos/PvE/DRG.cs | 809 ++++-- XIVSlothCombo/Combos/PvE/MCH.cs | 1389 +++++++--- XIVSlothCombo/CustomCombo/Functions/Config.cs | 25 +- XIVSlothCombo/Data/ActionWatching.cs | 13 +- XIVSlothCombo/Translatezh/Translatezh_CN.cs | 8 +- XIVSlothCombo/Window/ConfigWindow.cs | 4 +- XIVSlothCombo/Window/Functions/UserConfig.cs | 180 +- XIVSlothCombo/XIVSlothCombo.csproj | 2 +- release/XIVSlothCombo/XIVSlothCombo.json | 2 +- release/XIVSlothCombo/latest.zip | Bin 382470 -> 389960 bytes release/pluginmaster.json | 6 +- 17 files changed, 4605 insertions(+), 3017 deletions(-) create mode 100644 XIVSlothCombo/Combos/JobHelpers/BLM.cs create mode 100644 XIVSlothCombo/Combos/JobHelpers/DRG.cs create mode 100644 XIVSlothCombo/Combos/JobHelpers/MCH.cs diff --git a/XIVSlothCombo/Combos/CustomComboPreset.cs b/XIVSlothCombo/Combos/CustomComboPreset.cs index 075c5fa34..4ffbeda9c 100644 --- a/XIVSlothCombo/Combos/CustomComboPreset.cs +++ b/XIVSlothCombo/Combos/CustomComboPreset.cs @@ -91,6 +91,7 @@ public enum CustomComboPreset ALL_IslandSanctuary_Sprint = 100093, #region Global Tank Features + [CustomComboInfo("全局防护职业功能", "防护职业的通用功能和选项\\n取消勾选这个选项不会禁用里面的功能。", ADV.JobID)] ALL_Tank_Menu = 100099, @@ -103,9 +104,11 @@ public enum CustomComboPreset [ParentCombo(ALL_Tank_Menu)] [CustomComboInfo("防护:血仇防顶", "当目标已被赋予雪仇效果时,将雪仇替换为飞石", ADV.JobID)] ALL_Tank_Reprisal = 100001, + #endregion #region Global Healer Features + [CustomComboInfo("全局治疗职业功能", "治疗职业的通用功能和选项\\n取消勾选这个选项不会禁用里面的功能。", ADV.JobID)] ALL_Healer_Menu = 100098, @@ -114,9 +117,11 @@ public enum CustomComboPreset [ParentCombo(ALL_Healer_Menu)] [CustomComboInfo("治疗:复活功能", "将复活替换为即刻咏唱", ADV.JobID)] ALL_Healer_Raise = 100010, + #endregion #region Global Magical Ranged Features + [CustomComboInfo("全局远程魔法进攻职业功能", "远程魔法进攻职业的通用功能和选项\\n取消勾选这个选项不会禁用里面的功能。", ADV.JobID)] ALL_Caster_Menu = 100097, @@ -130,9 +135,11 @@ public enum CustomComboPreset [ParentCombo(ALL_Caster_Menu)] [CustomComboInfo("远程魔法进攻:复活功能", "将复活替换为即刻咏唱(赤复活替换为连续咏唱)", ADV.JobID)] ALL_Caster_Raise = 100021, + #endregion #region Global Melee Features + [CustomComboInfo("全局近战进攻职业功能", "近战进攻职业功能的通用功能和选项\\n取消勾选这个选项不会禁用里面的功能。", ADV.JobID)] ALL_Melee_Menu = 100096, @@ -149,6 +156,7 @@ public enum CustomComboPreset #endregion #region Global Ranged Physical Features + [CustomComboInfo("全局物理远程职业功能", "物理远程职业功能的通用功能和选项\\n取消勾选这个选项不会禁用里面的功能。", ADV.JobID)] ALL_Ranged_Menu = 100095, @@ -162,7 +170,6 @@ public enum CustomComboPreset [CustomComboInfo("物理远程进攻:打断选项", "当目标可被打断时,使用伤头代替伤足", ADV.JobID)] ALL_Ranged_Interrupt = 100041, - #endregion //Non-gameplay Features @@ -178,6 +185,7 @@ public enum CustomComboPreset #region ASTROLOGIAN #region DPS + [ReplaceSkill(AST.Malefic, AST.Malefic2, AST.Malefic3, AST.Malefic4, AST.FallMalefic, AST.Combust, AST.Combust2, AST.Combust3, AST.Gravity, AST.Gravity2)] [CustomComboInfo("续dot", "用以下选项替换煞星或烧灼", AST.JobID, 0, "", "")] AST_ST_DPS = 1004, @@ -226,9 +234,11 @@ public enum CustomComboPreset [ParentCombo(AST_ST_DPS)] [CustomComboInfo("王冠之领主选项", "循环加入王冠之领主", AST.JobID, 10, "", "")] AST_DPS_LazyLord = 1014, + #endregion #region Healing + [ReplaceSkill(AST.Benefic2)] [CustomComboInfo("简易治疗(单目标)", "", AST.JobID, 2)] AST_ST_SimpleHeals = 1023, @@ -272,9 +282,11 @@ public enum CustomComboPreset [ReplaceSkill(AST.Benefic2)] [CustomComboInfo("福星降级", "如果福星还没学会或用不了,将福星替换为吉星", AST.JobID, 4, "", "")] AST_Benefic = 1002, + #endregion #region Utility + [ReplaceSkill(All.Swiftcast)] [ConflictingCombos(ALL_Healer_Raise)] [CustomComboInfo("替代性的复活功能", "自动把即刻咏唱改为生辰", AST.JobID, 5, "", "")] @@ -293,6 +305,7 @@ public enum CustomComboPreset #endregion #region Cards + [ReplaceSkill(AST.Play)] [CustomComboInfo("用出卡替换抽卡", "当没有抽取到奥秘卡时,自动将出卡替换为抽卡。", AST.JobID, 6, "", "")] AST_Cards_DrawOnPlay = 1000, @@ -300,7 +313,7 @@ public enum CustomComboPreset [ParentCombo(AST_Cards_DrawOnPlay)] [CustomComboInfo("重抽功能", "当你抽到星标重复的卡且重抽技能可用时,将抽卡替换为重抽", AST.JobID)] AST_Cards_Redraw = 1032, - + [ReplaceSkill(AST.Draw)] [CustomComboInfo("Redraw on Draw", "如果你有重抽BUFF,抽卡变成重抽", AST.JobID)] AST_Cards_RedrawStandalone = 1040, @@ -317,6 +330,7 @@ public enum CustomComboPreset [ParentCombo(AST_Cards_QuickTargetCards)] [CustomComboInfo("将坦克和奶妈加入自动发牌目标选择", "如果没有 DPS 可选时选择坦克和奶妈", AST.JobID)] AST_Cards_QuickTargetCards_TargetExtra = 1031, + #endregion // Last value = 1039 @@ -324,124 +338,104 @@ public enum CustomComboPreset #endregion #region BLACK MAGE - [ReplaceSkill(BLM.Transpose)] - [CustomComboInfo("灵极魂/星灵移位功能", "当灵极魂可用时将星灵移位替换为灵极魂。", BLM.JobID, 0, "", "")] - BLM_Mana = 2001, - - [ReplaceSkill(BLM.LeyLines)] - [CustomComboInfo("魔纹步功能", "使用黑魔纹后将其替换为魔纹步。", BLM.JobID, 0, "", "")] - BLM_LeyLines = 2002, - - [ReplaceSkill(BLM.Blizzard, BLM.Freeze)] - [CustomComboInfo("冰1/2/3", "当自身没有灵极冰状态时替换冰结为冰封,根据自身等级自动替换玄冰为冰冻。", BLM.JobID, 0, "", "")] - BLM_Blizzard = 2003, [ReplaceSkill(BLM.Scathe)] - [ConflictingCombos(BLM_SimpleMode, BLM_Simple_Transpose, BLM_Paradox)] - [CustomComboInfo("异言功能", "当异言可用时替换崩溃为异言。", BLM.JobID, 0, "", "")] - BLM_ScatheXeno = 2004, + [ConflictingCombos(BLM_Scathe_Xeno, BLM_ST_AdvancedMode, BLM_ST_AdvancedMode)] + [CustomComboInfo("标准循环", "将崩溃整合为一键单体标准循环。", BLM.JobID, -3, "", "")] + BLM_ST_SimpleMode = 2012, + + #region Advanced ST [ReplaceSkill(BLM.Fire)] - [CustomComboInfo("火炎/爆炎功能", "当自身没有星极火状态或使用火起手时,用爆炎替换火炎。", BLM.JobID, 0, "", "")] - BLM_Fire_1to3 = 2005, + [ConflictingCombos(BLM_Scathe_Xeno, BLM_ST_SimpleMode)] + [CustomComboInfo("Advanced Mode - Single Target", "Replaces Fire with a full one-button single target rotation.\nThese features are ideal if you want to customize the rotation.", BLM.JobID, -9, "", "")] + BLM_ST_AdvancedMode = 2021, - [ParentCombo(BLM_SimpleMode)] - [CustomComboInfo("雷云功能", "当自身存在雷云状态且目标身上没有dot存在或dot即将结束时,自动插入闪雷/暴雷.", BLM.JobID, 0, "", "")] - BLM_Thunder = 2006, + [ParentCombo(BLM_ST_AdvancedMode)] + [CustomComboInfo("Thunder I/III Option", "Adds Thunder I/Thunder III when the debuff isn't present or is expiring.", BLM.JobID)] + BLM_ST_Adv_Thunder = 2029, - [ReplaceSkill(BLM.Flare)] - [CustomComboInfo("简易 AoE 功能", "将核爆整合为一键AoE循环。", BLM.JobID, -1, "", "")] - BLM_AoE_SimpleMode = 2008, + [ParentCombo(BLM_ST_Adv_Thunder)] + [CustomComboInfo("Thundercloud Spender Option", "Spends Thundercloud as soon as possible rather than waiting until Thunder is expiring.", BLM.JobID)] + BLM_ST_Adv_Thunder_ThunderCloud = 2030, - [ParentCombo(BLM_Thunder)] - [CustomComboInfo("闪雷/暴雷功能", "当目标身上没有dot存在或dot即将结束时,自动插入闪雷/暴雷.", BLM.JobID, 0, "", "")] - BLM_ThunderUptime = 2011, + [ParentCombo(BLM_ST_AdvancedMode)] + [CustomComboInfo("Umbral Soul Option", "Uses Transpose/Umbral Soul when no target is selected.", BLM.JobID, 10, "", "")] + BLM_Adv_UmbralSoul = 2035, - [ReplaceSkill(BLM.Scathe)] - [ConflictingCombos(BLM_ScatheXeno, BLM_Simple_Transpose, BLM_Paradox)] - [CustomComboInfo("标准循环", "将崩溃整合为一键单体标准循环。", BLM.JobID, -3, "", "")] - BLM_SimpleMode = 2012, + [ParentCombo(BLM_ST_AdvancedMode)] + [CustomComboInfo("Movement Options", "Choose options to be used during movement.", BLM.JobID)] + BLM_Adv_Movement = 2036, - [ParentCombo(BLM_SimpleMode)] - [CustomComboInfo("冷却选项", "Adds Manafont, Sharpcast, Amplifier onto the Simple BLM feature.", BLM.JobID, 0, "", "")] - BLM_Simple_Buffs = 2013, + [ParentCombo(BLM_ST_AdvancedMode)] + [CustomComboInfo("Triplecast/Swiftcast Option", "Adds Triplecast/Swiftcast to the rotation.", BLM.JobID, -8, "", "")] + BLM_Adv_Casts = 2039, - [ParentCombo(BLM_SimpleMode)] - [CustomComboInfo("黑魔纹选项", "加入黑魔纹至一键循环.", BLM.JobID, 0, "", "")] - BLM_Simple_Buffs_LeyLines = 2014, + [ParentCombo(BLM_Adv_Casts)] + [CustomComboInfo("Pool Triplecast Option", "Keep one Triplecast charge for movement.", BLM.JobID)] + BLM_Adv_Triplecast_Pooling = 2040, - [ParentCombo(BLM_SimpleMode)] - [CustomComboInfo("瞬发选项", "加入三连咏唱至一键循环.", BLM.JobID, 0, "", "")] - BLM_Simple_Casts = 2015, + [ParentCombo(BLM_ST_AdvancedMode)] + [CustomComboInfo("Cooldown Options", "Select which cooldowns to add to the rotation.", BLM.JobID, -8, "", "")] + BLM_Adv_Cooldowns = 2042, - [ParentCombo(BLM_Simple_Casts)] - [CustomComboInfo("保留瞬发选项", "保留即刻咏唱和一层三连咏唱,用于在移动时瞬发技能。", BLM.JobID, 0, "", "")] - BLM_Simple_Casts_Pooling = 2016, + [ParentCombo(BLM_ST_AdvancedMode)] + [CustomComboInfo("Opener Option", "Adds the Lv.90 opener." + "\nWill default to the Standard opener when nothing is selected.", BLM.JobID, -10, "", "")] + BLM_Adv_Opener = 2043, - [ParentCombo(BLM_SimpleMode)] - [CustomComboInfo("保留异言选项", "一键循环保留一个异言便于走位", BLM.JobID, 0, "", "")] - BLM_Simple_XenoPooling = 2017, + [ParentCombo(BLM_ST_AdvancedMode)] + [CustomComboInfo("Rotation Option", "Choose which rotation to use." + "\nWill default to the Standard rotation when nothing is selected.", BLM.JobID, -9, "", "")] + BLM_Adv_Rotation = 2045, - [ParentCombo(BLM_SimpleMode)] - [CustomComboInfo("火起手", "使用火起手。", BLM.JobID, 0, "", "")] - BLM_Simple_Opener = 2018, + #endregion - [ParentCombo(BLM_Simple_Opener)] - [CustomComboInfo("火起手+单三连咏唱", "在火起手中只使用一层三连咏唱.", BLM.JobID, 0, "", "")] - BLM_Simple_OpenerAlternate = 2019, - [ParentCombo(BLM_AoE_SimpleMode)] - [CustomComboInfo("秽浊/魔泉 核爆 功能", "当自身处于星极火状态且秽浊可用时插入秽浊,在秽浊后插入魔泉以便再使用一次核爆。", BLM.JobID, 0, "", "")] - BLM_AoE_Simple_Foul = 2020, + [ParentCombo(BLM_ST_SimpleMode)] + [CustomComboInfo("雷云功能", "当自身存在雷云状态且目标身上没有dot存在或dot即将结束时,自动插入闪雷/暴雷.", BLM.JobID, 0, "", "")] + BLM_Thunder = 2006, - [ReplaceSkill(BLM.Scathe)] - [ConflictingCombos(BLM_ScatheXeno, BLM_SimpleMode, BLM_Paradox)] - [CustomComboInfo("星灵循环", "将崩溃整合为一键星灵循环(需要90级)。", BLM.JobID, -2, "", "")] - BLM_Simple_Transpose = 2021, + [ReplaceSkill(BLM.Flare)] + [CustomComboInfo("简易 AoE 功能", "将核爆整合为一键AoE循环。", BLM.JobID, -1, "", "")] + BLM_AoE_SimpleMode = 2008, - [ParentCombo(BLM_Simple_Transpose)] - [CustomComboInfo("保留三连咏唱选项", "保留一层三连咏唱用于移动时瞬发技能.", BLM.JobID, 0, "", "")] - BLM_Simple_Transpose_Pooling = 2022, + #region Advanced AoE - [ReplaceSkill(BLM.Scathe)] - [ConflictingCombos(BLM_ScatheXeno, BLM_SimpleMode, BLM_Simple_Transpose)] - [CustomComboInfo("悖论循环", "将崩溃整合为悖论循环(需要90级)。\\n它的读条数很少,但比标准循环的伤害低 9-13%%。", BLM.JobID, -2, "", "")] - BLM_Paradox = 2023, + [ReplaceSkill(BLM.Blizzard2, BLM.HighBlizzard2)] + [ConflictingCombos(BLM_AoE_SimpleMode)] + [CustomComboInfo("Advanced Mode - AoE", "Replaces Blizzard II with a full one-button AoE rotation.\nThese features are ideal if you want to customize the rotation.", BLM.JobID, -8, "", "")] + BLM_AoE_AdvancedMode = 2054, - [ParentCombo(BLM_Simple_Transpose)] - [CustomComboInfo("黑魔纹选项", "在星灵循环中插入黑魔纹。", BLM.JobID, 0, "", "")] - BLM_Simple_Transpose_LeyLines = 2024, + [ParentCombo(BLM_AoE_AdvancedMode)] + [CustomComboInfo("Thunder Uptime Option", "Adds Thunder II/Thunder IV during Umbral Ice.", BLM.JobID, 1, "", "")] + BLM_AoE_Adv_ThunderUptime = 2055, - [ParentCombo(BLM_Paradox)] - [CustomComboInfo("黑魔纹选项", "在悖论循环中插入黑魔纹。", BLM.JobID, 0, "", "")] - BLM_Paradox_LeyLines = 2025, + [ParentCombo(BLM_AoE_Adv_ThunderUptime)] + [CustomComboInfo("Uptime in Astral Fire", "Maintains uptime during Astral Fire.", BLM.JobID, 1, "", "")] + BLM_AoE_Adv_ThunderUptime_AstralFire = 2056, - [ParentCombo(BLM_SimpleMode)] - [CustomComboInfo("瞬发走位选项", "移动时自动插入即刻咏唱/三连咏唱瞬发技能。", BLM.JobID, 0, "", "")] - BLM_Simple_CastMovement = 2026, + [ParentCombo(BLM_AoE_AdvancedMode)] + [CustomComboInfo("Foul Option", "Adds Foul when available during Astral Fire.", BLM.JobID, 2, "", "")] + BLM_AoE_Adv_Foul = 2044, - [ParentCombo(BLM_Simple_CastMovement)] - [CustomComboInfo("异言走位选项", "移动时自动插入异言。", BLM.JobID, 0, "", "")] - BLM_Simple_CastMovement_Xeno = 2027, + [ParentCombo(BLM_AoE_AdvancedMode)] + [CustomComboInfo("Umbral Soul Option", "Use Transpose/Umbral Soul when no target is selected.", BLM.JobID, 99, "", "")] + BLM_AoE_Adv_UmbralSoul = 2049, - [ParentCombo(BLM_Simple_CastMovement)] - [CustomComboInfo("崩溃走位选项", "移动时自动插入崩溃。", BLM.JobID, 0, "", "")] - BLM_Simple_CastMovement_Scathe = 2028, + [ParentCombo(BLM_AoE_AdvancedMode)] + [CustomComboInfo("Cooldown Options", "Select which cooldowns to add to the rotation.", BLM.JobID, 1, "", "")] + BLM_AoE_Adv_Cooldowns = 2052, - [ParentCombo(BLM_Simple_Transpose)] - [CustomComboInfo("雷云功能", "当自身存在雷云状态且目标身上没有dot存在或dot即将结束时,自动插入闪雷/暴雷.", BLM.JobID, 0, "", "")] - BLM_TransposeThunder = 2029, + [ParentCombo(BLM_AoE_SimpleMode)] + [CustomComboInfo("秽浊/魔泉 核爆 功能", "当自身处于星极火状态且秽浊可用时插入秽浊,在秽浊后插入魔泉以便再使用一次核爆。", BLM.JobID, 0, "", "")] + BLM_AoE_Simple_Foul = 2020, - [ParentCombo(BLM_TransposeThunder)] - [CustomComboInfo("闪雷/暴雷功能", "当目标身上没有dot存在或dot即将结束时,自动插入闪雷/暴雷.", BLM.JobID, 0, "", "")] - BLM_TransposeThunderUptime = 2030, + #endregion - [ReplaceSkill(BLM.AetherialManipulation)] - [CustomComboInfo("以太步特性", "当自身不在魔纹步范围内且站立不动时,把以太步替换为魔纹步", BLM.JobID, 0, "", "")] - BLM_AetherialManipulation = 2031, + + #region Variant [Variant] - [VariantParent(BLM_SimpleMode, BLM_AoE_SimpleMode)] + [VariantParent(BLM_ST_SimpleMode, BLM_AoE_SimpleMode)] [CustomComboInfo("铁壁 选项", "冷却结束时使用多变铁壁", BLM.JobID)] BLM_Variant_Rampart = 2032, @@ -450,14 +444,42 @@ public enum CustomComboPreset BLM_Variant_Raise = 2033, [Variant] - [VariantParent(BLM_SimpleMode, BLM_AoE_SimpleMode)] + [VariantParent(BLM_ST_SimpleMode, BLM_AoE_SimpleMode)] [CustomComboInfo("治疗 选项", "在下水道使用治疗当HP低于某个值", BLM.JobID)] BLM_Variant_Cure = 2034, + #endregion + + #region Miscellaneous + + [ReplaceSkill(BLM.Transpose)] + [CustomComboInfo("灵极魂/星灵移位功能", "当灵极魂可用时将星灵移位替换为灵极魂。", BLM.JobID, 0, "", "")] + BLM_UmbralSoul = 2001, + + [ReplaceSkill(BLM.LeyLines)] + [CustomComboInfo("魔纹步功能", "使用黑魔纹后将其替换为魔纹步。", BLM.JobID, 0, "", "")] + BLM_Between_The_LeyLines = 2002, + + [ReplaceSkill(BLM.Blizzard, BLM.Freeze)] + [CustomComboInfo("冰1/2/3", "当自身没有灵极冰状态时替换冰结为冰封,根据自身等级自动替换玄冰为冰冻。", BLM.JobID, 0, "", "")] + BLM_Blizzard_1to3 = 2003, + + [ReplaceSkill(BLM.Scathe)] - [ConflictingCombos(BLM_SimpleMode, BLM_Simple_Transpose, BLM_Paradox)] - [CustomComboInfo("自定义循环", "将崩溃整合为单体自定义循环。", BLM.JobID, -3, "", "")] - BLM_Zimo = 2500, + [ConflictingCombos(BLM_ST_SimpleMode, BLM_ST_AdvancedMode)] + [CustomComboInfo("异言功能", "当异言可用时替换崩溃为异言。", BLM.JobID, 0, "", "")] + BLM_Scathe_Xeno = 2004, + + [ReplaceSkill(BLM.Fire)] + [CustomComboInfo("火炎/爆炎功能", "当自身没有星极火状态或使用火起手时,用爆炎替换火炎。", BLM.JobID, 0, "", "")] + BLM_Fire_1to3 = 2005, + + + [ReplaceSkill(BLM.AetherialManipulation)] + [CustomComboInfo("Aetherial Manipulation Feature", "Replaces Aetherial Manipulation with Between the Lines when you are out of active Ley Lines and standing still.", BLM.JobID)] + BLM_Aetherial_Manipulation = 2046, + + #endregion // Last value = 2034 #endregion @@ -706,145 +728,148 @@ public enum CustomComboPreset #endregion - #region DANCER + #region DANCER + + #region Simple Dancer (Double Targets) - #region Simple Dancer (Double Targets) + [ReplaceSkill(DNC.瀑泻Cascade)] + [ConflictingCombos(DNC_ST_MultiButton, DNC_AoE_MultiButton, DNC_CombinedDances, DNC_DanceComboReplacer, DNC_FlourishingFeatures_Menu, DNC_Starfall_Devilment, DNC_ST_SimpleMode)] + [CustomComboInfo("舞者单体无脑模式[推荐]", "Single button, double targets. Includes songs, flourishes and overprotections.\nConflicts with all other non-simple toggles, except 'Dance Step Combo'.", DNC.JobID, 0, "", "")] + DNC_DT_SimpleMode = 4065, - [ReplaceSkill(DNC.瀑泻Cascade)] - [ConflictingCombos(DNC_ST_MultiButton, DNC_AoE_MultiButton, DNC_CombinedDances, DNC_DanceComboReplacer, DNC_FlourishingFeatures_Menu, DNC_Starfall_Devilment, DNC_ST_SimpleMode)] - [CustomComboInfo("舞者单体无脑模式[推荐]", "Single button, double targets. Includes songs, flourishes and overprotections.\nConflicts with all other non-simple toggles, except 'Dance Step Combo'.", DNC.JobID, 0, "", "")] - DNC_DT_SimpleMode = 4065, + [ParentCombo(DNC_DT_SimpleMode)] + [CustomComboInfo("无脑模式_标准舞步", "Includes Standard Step (and all steps) in the rotation.", DNC.JobID, 0, "", "")] + DNC_DT_Simple_SS = 4066, - [ParentCombo(DNC_DT_SimpleMode)] - [CustomComboInfo("无脑模式_标准舞步", "Includes Standard Step (and all steps) in the rotation.", DNC.JobID, 0, "", "")] - DNC_DT_Simple_SS = 4066, + [ParentCombo(DNC_DT_SimpleMode)] + [CustomComboInfo("无脑模式_技巧舞步", "Includes Technical Step, all dance steps and Technical Finish in the rotation.", DNC.JobID, 1, "", "")] + DNC_DT_Simple_TS = 4067, - [ParentCombo(DNC_DT_SimpleMode)] - [CustomComboInfo("无脑模式_技巧舞步", "Includes Technical Step, all dance steps and Technical Finish in the rotation.", DNC.JobID, 1, "", "")] - DNC_DT_Simple_TS = 4067, + [ParentCombo(DNC_DT_SimpleMode)] + [CustomComboInfo("无脑模式_简易百花争艳", "Includes Flourish in the rotation.", DNC.JobID, 2, "", "")] + DNC_DT_Simple_Flourish = 4068, - [ParentCombo(DNC_DT_SimpleMode)] - [CustomComboInfo("无脑模式_简易百花争艳", "Includes Flourish in the rotation.", DNC.JobID, 2, "", "")] - DNC_DT_Simple_Flourish = 4068, - - [ParentCombo(DNC_DT_SimpleMode)] - [CustomComboInfo("无脑模式_剑舞", "剑舞加入循环", DNC.JobID, 2, "", "")] - DNC_DT_Simple_SaberDance = 4069, + [ParentCombo(DNC_DT_SimpleMode)] + [CustomComboInfo("无脑模式_剑舞", "剑舞加入循环", DNC.JobID, 2, "", "")] + DNC_DT_Simple_SaberDance = 4069, - #endregion + #endregion #region Single Target Multibutton + [ReplaceSkill(DNC.瀑泻Cascade)] [ConflictingCombos(DNC_ST_SimpleMode, DNC_AoE_SimpleMode)] [CustomComboInfo("Single Target Multibutton Feature", "Single target combo with Fan Dances and Esprit use.", DNC.JobID, 3, "", "")] DNC_ST_MultiButton = 4000, - [ParentCombo(DNC_ST_MultiButton)] - [CustomComboInfo("ST Esprit Overcap Option", "Adds Saber Dance above the set Esprit threshold.", DNC.JobID, 0, "", "")] - DNC_ST_EspritOvercap = 4001, + [ParentCombo(DNC_ST_MultiButton)] + [CustomComboInfo("ST Esprit Overcap Option", "Adds Saber Dance above the set Esprit threshold.", DNC.JobID, 0, "", "")] + DNC_ST_EspritOvercap = 4001, + + [ParentCombo(DNC_ST_MultiButton)] + [CustomComboInfo("Fan Dance Overcap Protection Option", "Adds Fan Dance 1 when Fourfold Feathers are full.", DNC.JobID, 0, "", "")] + DNC_ST_FanDanceOvercap = 4003, - [ParentCombo(DNC_ST_MultiButton)] - [CustomComboInfo("Fan Dance Overcap Protection Option", "Adds Fan Dance 1 when Fourfold Feathers are full.", DNC.JobID, 0, "", "")] - DNC_ST_FanDanceOvercap = 4003, + [ParentCombo(DNC_ST_MultiButton)] + [CustomComboInfo("Fan Dance Option", "Adds Fan Dance 3/4 when available.", DNC.JobID, 0, "", "")] + DNC_ST_FanDance34 = 4004, - [ParentCombo(DNC_ST_MultiButton)] - [CustomComboInfo("Fan Dance Option", "Adds Fan Dance 3/4 when available.", DNC.JobID, 0, "", "")] - DNC_ST_FanDance34 = 4004, - #endregion + #endregion #region AoE Multibutton + [ReplaceSkill(DNC.风车Windmill)] [ConflictingCombos(DNC_ST_SimpleMode, DNC_AoE_SimpleMode)] [CustomComboInfo("AoE Multibutton Feature", "AoE combo with Fan Dances and Esprit use.", DNC.JobID, 4, "", "")] DNC_AoE_MultiButton = 4010, - [ParentCombo(DNC_AoE_MultiButton)] - [CustomComboInfo("AoE Esprit Overcap Option", "Adds Saber Dance above the set Esprit threshold.", DNC.JobID, 0, "", "")] - DNC_AoE_EspritOvercap = 4011, + [ParentCombo(DNC_AoE_MultiButton)] + [CustomComboInfo("AoE Esprit Overcap Option", "Adds Saber Dance above the set Esprit threshold.", DNC.JobID, 0, "", "")] + DNC_AoE_EspritOvercap = 4011, - [ParentCombo(DNC_AoE_MultiButton)] - [CustomComboInfo("AoE Fan Dance Overcap Protection Option", "Adds Fan Dance 2 when Fourfold Feathers are full.", DNC.JobID, 0, "", "")] - DNC_AoE_FanDanceOvercap = 4013, + [ParentCombo(DNC_AoE_MultiButton)] + [CustomComboInfo("AoE Fan Dance Overcap Protection Option", "Adds Fan Dance 2 when Fourfold Feathers are full.", DNC.JobID, 0, "", "")] + DNC_AoE_FanDanceOvercap = 4013, - [ParentCombo(DNC_AoE_MultiButton)] - [CustomComboInfo("AoE Fan Dance Option", "Adds Fan Dance 3/4 when available.", DNC.JobID, 0, "", "")] - DNC_AoE_FanDance34 = 4014, - #endregion + [ParentCombo(DNC_AoE_MultiButton)] + [CustomComboInfo("AoE Fan Dance Option", "Adds Fan Dance 3/4 when available.", DNC.JobID, 0, "", "")] + DNC_AoE_FanDance34 = 4014, + + #endregion #region Dance Features + [ConflictingCombos(DNC_ST_SimpleMode, DNC_AoE_SimpleMode)] [CustomComboInfo("Dance Features", "Features and options involving Standard Step and Technical Step.\nCollapsing this category does NOT disable the features inside.", DNC.JobID, 20, "", "")] DNC_Dance_Menu = 4020, - #region Combined Dance Feature - [ReplaceSkill(DNC.标准舞步StandardStep)] - [ParentCombo(DNC_Dance_Menu)] - [ConflictingCombos(DNC_DanceStepCombo, DNC_DanceComboReplacer, DNC_ST_SimpleMode, DNC_AoE_SimpleMode)] - [CustomComboInfo("Combined Dance Feature", "Standard And Technical Dance on one button (SS)." + - "\nStandard > Technical." + - "\nThis combos out into Tillana and Starfall Dance.", DNC.JobID, 0, "", "")] - DNC_CombinedDances = 4022, - - [ParentCombo(DNC_CombinedDances)] - [CustomComboInfo("Devilment Plus Option", "Adds Devilment right after Technical finish.", DNC.JobID, 0, "", "")] - DNC_CombinedDances_Devilment = 4023, - - [ParentCombo(DNC_CombinedDances)] - [CustomComboInfo("Flourish Plus Option", "Adds Flourish to the Combined Dance Feature.", DNC.JobID, 0, "", "")] - DNC_CombinedDances_Flourish = 4024, - #endregion - - [ParentCombo(DNC_Dance_Menu)] - [ConflictingCombos(DNC_DanceStepCombo, DNC_CombinedDances, DNC_ST_SimpleMode, DNC_AoE_SimpleMode)] - [CustomComboInfo("Custom Dance Step Feature", - "Change custom actions into dance steps while dancing." + - "\nThis helps ensure you can still dance with combos on, without using auto dance." + - "\nYou can change the respective actions by inputting action IDs below for each dance step." + - "\nThe defaults are Cascade, Flourish, Fan Dance and Fan Dance II. If set to 0, they will reset to these actions." + - "\nYou can get Action IDs with Garland Tools by searching for the action and clicking the cog.", DNC.JobID, 0, "", "")] - DNC_DanceComboReplacer = 4025, - #endregion + #region Combined Dance Feature + + [ReplaceSkill(DNC.标准舞步StandardStep)] + [ParentCombo(DNC_Dance_Menu)] + [ConflictingCombos(DNC_DanceStepCombo, DNC_DanceComboReplacer, DNC_ST_SimpleMode, DNC_AoE_SimpleMode)] + [CustomComboInfo("Combined Dance Feature", "Standard And Technical Dance on one button (SS)." + "\nStandard > Technical." + "\nThis combos out into Tillana and Starfall Dance.", DNC.JobID, 0, "", "")] + DNC_CombinedDances = 4022, + + [ParentCombo(DNC_CombinedDances)] + [CustomComboInfo("Devilment Plus Option", "Adds Devilment right after Technical finish.", DNC.JobID, 0, "", "")] + DNC_CombinedDances_Devilment = 4023, + + [ParentCombo(DNC_CombinedDances)] + [CustomComboInfo("Flourish Plus Option", "Adds Flourish to the Combined Dance Feature.", DNC.JobID, 0, "", "")] + DNC_CombinedDances_Flourish = 4024, + + #endregion + + [ParentCombo(DNC_Dance_Menu)] + [ConflictingCombos(DNC_DanceStepCombo, DNC_CombinedDances, DNC_ST_SimpleMode, DNC_AoE_SimpleMode)] + [CustomComboInfo("Custom Dance Step Feature", "Change custom actions into dance steps while dancing." + "\nThis helps ensure you can still dance with combos on, without using auto dance." + "\nYou can change the respective actions by inputting action IDs below for each dance step." + "\nThe defaults are Cascade, Flourish, Fan Dance and Fan Dance II. If set to 0, they will reset to these actions." + "\nYou can get Action IDs with Garland Tools by searching for the action and clicking the cog.", DNC.JobID, 0, "", "")] + DNC_DanceComboReplacer = 4025, + + #endregion #region Flourishing Features + [ConflictingCombos(DNC_ST_SimpleMode, DNC_AoE_SimpleMode)] - [CustomComboInfo("Flourishing Features", "Features and options involving Fourfold Feathers and Flourish." + - "\nCollapsing this category does NOT disable the features inside.", DNC.JobID, 14, "", "")] + [CustomComboInfo("Flourishing Features", "Features and options involving Fourfold Feathers and Flourish." + "\nCollapsing this category does NOT disable the features inside.", DNC.JobID, 14, "", "")] DNC_FlourishingFeatures_Menu = 4030, - [ReplaceSkill(DNC.百花争艳Flourish)] - [ParentCombo(DNC_FlourishingFeatures_Menu)] - [ConflictingCombos(DNC_ST_SimpleMode, DNC_AoE_SimpleMode)] - [CustomComboInfo("Flourishing Fan Dance Feature", "Replace Flourish with Fan Dance 3 & 4 during weave-windows, when Flourish is on cooldown.", DNC.JobID, 0, "", "")] - DNC_FlourishingFanDances = 4032, - #endregion + [ReplaceSkill(DNC.百花争艳Flourish)] + [ParentCombo(DNC_FlourishingFeatures_Menu)] + [ConflictingCombos(DNC_ST_SimpleMode, DNC_AoE_SimpleMode)] + [CustomComboInfo("Flourishing Fan Dance Feature", "Replace Flourish with Fan Dance 3 & 4 during weave-windows, when Flourish is on cooldown.", DNC.JobID, 0, "", "")] + DNC_FlourishingFanDances = 4032, + + #endregion #region Fan Dance Combo Features + [ParentCombo(DNC_FlourishingFeatures_Menu)] [ConflictingCombos(DNC_ST_SimpleMode, DNC_AoE_SimpleMode)] - [CustomComboInfo("Fan Dance Combo Feature", "Options for Fan Dance combos." + - "\nFan Dance 3 takes priority over Fan Dance 4.", DNC.JobID, 5, "", "")] + [CustomComboInfo("Fan Dance Combo Feature", "Options for Fan Dance combos." + "\nFan Dance 3 takes priority over Fan Dance 4.", DNC.JobID, 5, "", "")] DNC_FanDanceCombos = 4033, - [ReplaceSkill(DNC.扇舞序FanDance1)] - [ParentCombo(DNC_FanDanceCombos)] - [CustomComboInfo("Fan Dance 1 -> 3 Option", "Changes Fan Dance 1 to Fan Dance 3 when available.", DNC.JobID, 0, "", "")] - DNC_FanDance_1to3_Combo = 4034, + [ReplaceSkill(DNC.扇舞序FanDance1)] + [ParentCombo(DNC_FanDanceCombos)] + [CustomComboInfo("Fan Dance 1 -> 3 Option", "Changes Fan Dance 1 to Fan Dance 3 when available.", DNC.JobID, 0, "", "")] + DNC_FanDance_1to3_Combo = 4034, + + [ReplaceSkill(DNC.扇舞序FanDance1)] + [ParentCombo(DNC_FanDanceCombos)] + [CustomComboInfo("Fan Dance 1 -> 4 Option", "Changes Fan Dance 1 to Fan Dance 4 when available.", DNC.JobID, 0, "", "")] + DNC_FanDance_1to4_Combo = 4035, - [ReplaceSkill(DNC.扇舞序FanDance1)] - [ParentCombo(DNC_FanDanceCombos)] - [CustomComboInfo("Fan Dance 1 -> 4 Option", "Changes Fan Dance 1 to Fan Dance 4 when available.", DNC.JobID, 0, "", "")] - DNC_FanDance_1to4_Combo = 4035, + [ReplaceSkill(DNC.扇舞破FanDance2)] + [ParentCombo(DNC_FanDanceCombos)] + [CustomComboInfo("Fan Dance 2 -> 3 Option", "Changes Fan Dance 2 to Fan Dance 3 when available.", DNC.JobID, 0, "", "")] + DNC_FanDance_2to3_Combo = 4036, - [ReplaceSkill(DNC.扇舞破FanDance2)] - [ParentCombo(DNC_FanDanceCombos)] - [CustomComboInfo("Fan Dance 2 -> 3 Option", "Changes Fan Dance 2 to Fan Dance 3 when available.", DNC.JobID, 0, "", "")] - DNC_FanDance_2to3_Combo = 4036, + [ReplaceSkill(DNC.扇舞破FanDance2)] + [ParentCombo(DNC_FanDanceCombos)] + [CustomComboInfo("Fan Dance 2 -> 4 Option", "Changes Fan Dance 2 to Fan Dance 4 when available.", DNC.JobID, 0, "", "")] + DNC_FanDance_2to4_Combo = 4037, - [ReplaceSkill(DNC.扇舞破FanDance2)] - [ParentCombo(DNC_FanDanceCombos)] - [CustomComboInfo("Fan Dance 2 -> 4 Option", "Changes Fan Dance 2 to Fan Dance 4 when available.", DNC.JobID, 0, "", "")] - DNC_FanDance_2to4_Combo = 4037, - #endregion + #endregion // Devilment --> Starfall [ReplaceSkill(DNC.进攻之探戈Devilment)] @@ -854,136 +879,128 @@ public enum CustomComboPreset [ReplaceSkill(DNC.标准舞步StandardStep, DNC.技巧舞步TechnicalStep)] [ConflictingCombos(DNC_CombinedDances, DNC_DanceComboReplacer)] - [CustomComboInfo("Dance Step Combo Feature", "Change Standard Step and Technical Step into each dance step while dancing." + - "\nWorks with Simple Dancer and Simple Dancer AoE.", DNC.JobID, 1, "", "")] + [CustomComboInfo("Dance Step Combo Feature", "Change Standard Step and Technical Step into each dance step while dancing." + "\nWorks with Simple Dancer and Simple Dancer AoE.", DNC.JobID, 1, "", "")] DNC_DanceStepCombo = 4039, - #region Simple Dancer (Single Target) - [ReplaceSkill(DNC.瀑泻Cascade)] - [ConflictingCombos(DNC_ST_MultiButton, DNC_AoE_MultiButton, DNC_CombinedDances, DNC_DanceComboReplacer, DNC_FlourishingFeatures_Menu, DNC_Starfall_Devilment, DNC_DT_SimpleMode)] - [CustomComboInfo("Simple Dancer (Single Target) Feature", "Single button, single target. Includes songs, flourishes and overprotections." + - "\nConflicts with all other non-simple toggles, except 'Dance Step Combo'.", DNC.JobID, 3, "", "")] - DNC_ST_SimpleMode = 4050, - - [ParentCombo(DNC_ST_SimpleMode)] - [CustomComboInfo("Simple Interrupt Option", "Includes an interrupt in the rotation (if applicable to your current target).", DNC.JobID, 5, "", "")] - DNC_ST_Simple_Interrupt = 4051, - - [ParentCombo(DNC_ST_SimpleMode)] - [ConflictingCombos(DNC_ST_Simple_StandardFill)] - [CustomComboInfo("Simple Standard Dance Option", "Includes Standard Step (and all steps) in the rotation.", DNC.JobID, 1, "", "")] - DNC_ST_Simple_SS = 4052, - - [ParentCombo(DNC_ST_SimpleMode)] - [ConflictingCombos(DNC_ST_Simple_SS)] - [CustomComboInfo("Simple Standard Fill Option", "Adds ONLY Standard dance steps and Standard Finish to the rotation." + - "\nStandard Step itself must be initiated manually when using this option.", DNC.JobID, 1, "", "")] - DNC_ST_Simple_StandardFill = 4061, - - [ParentCombo(DNC_ST_SimpleMode)] - [ConflictingCombos(DNC_ST_Simple_TechFill)] - [CustomComboInfo("Simple Technical Dance Option", "Includes Technical Step, all dance steps and Technical Finish in the rotation.", DNC.JobID, 2, "", "")] - DNC_ST_Simple_TS = 4053, - - [ParentCombo(DNC_ST_SimpleMode)] - [ConflictingCombos(DNC_ST_Simple_TS)] - [CustomComboInfo("Simple Tech Fill Option", "Adds ONLY Technical dance steps and Technical Finish to the rotation." + - "\nTechnical Step itself must be initiated manually when using this option.", DNC.JobID, 2, "", "")] - DNC_ST_Simple_TechFill = 4054, - - [ParentCombo(DNC_ST_SimpleMode)] - [CustomComboInfo("Simple Tech Devilment Option", "Includes Devilment in the rotation." + - "\nWill activate only during Technical Finish if you are Lv70 or above.", DNC.JobID, 2, "", "")] - DNC_ST_Simple_Devilment = 4055, - - [ParentCombo(DNC_ST_SimpleMode)] - [CustomComboInfo("Simple Flourish Option", "Includes Flourish in the rotation.", DNC.JobID, 3, "", "")] - DNC_ST_Simple_Flourish = 4056, - - [ParentCombo(DNC_ST_SimpleMode)] - [CustomComboInfo("Simple Feathers Option", "Includes Feather usage in the rotation.", DNC.JobID, 4, "", "")] - DNC_ST_Simple_Feathers = 4057, - - [ParentCombo(DNC_ST_Simple_Feathers)] - [CustomComboInfo("Simple Feather Pooling Option", "Expends a feather in the next available weave window when capped." + - "\nWeaves feathers where possible during Technical Finish." + - "\nWeaves feathers outside of burst when target is below set HP percentage.", DNC.JobID, 4, "", "")] - DNC_ST_Simple_FeatherPooling = 4058, - - [ParentCombo(DNC_ST_SimpleMode)] - [CustomComboInfo("Simple Panic Heals Option", "Includes Curing Waltz and Second Wind in the rotation when available and your HP is below the set percentages.", DNC.JobID, 5, "", "")] - DNC_ST_Simple_PanicHeals = 4059, - - [ParentCombo(DNC_ST_SimpleMode)] - [CustomComboInfo("Simple Improvisation Option", "Includes Improvisation in the rotation when available.", DNC.JobID, 5, "", "")] - DNC_ST_Simple_Improvisation = 4060, - - [ParentCombo(DNC_ST_SimpleMode)] - [CustomComboInfo("Simple Peloton Opener Option", "Uses Peloton when you are out of combat, do not already have the Peloton buff and are performing Standard Step with greater than 5s remaining of your dance." + - "\nWill not override Dance Step Combo Feature.", DNC.JobID, 5, "", "")] - DNC_ST_Simple_Peloton = 4062, - #endregion - - + #region Simple Dancer (Single Target) + + [ReplaceSkill(DNC.瀑泻Cascade)] + [ConflictingCombos(DNC_ST_MultiButton, DNC_AoE_MultiButton, DNC_CombinedDances, DNC_DanceComboReplacer, DNC_FlourishingFeatures_Menu, DNC_Starfall_Devilment, DNC_DT_SimpleMode)] + [CustomComboInfo("Simple Dancer (Single Target) Feature", "Single button, single target. Includes songs, flourishes and overprotections." + "\nConflicts with all other non-simple toggles, except 'Dance Step Combo'.", DNC.JobID, 3, "", "")] + DNC_ST_SimpleMode = 4050, + + [ParentCombo(DNC_ST_SimpleMode)] + [CustomComboInfo("Simple Interrupt Option", "Includes an interrupt in the rotation (if applicable to your current target).", DNC.JobID, 5, "", "")] + DNC_ST_Simple_Interrupt = 4051, + + [ParentCombo(DNC_ST_SimpleMode)] + [ConflictingCombos(DNC_ST_Simple_StandardFill)] + [CustomComboInfo("Simple Standard Dance Option", "Includes Standard Step (and all steps) in the rotation.", DNC.JobID, 1, "", "")] + DNC_ST_Simple_SS = 4052, + + [ParentCombo(DNC_ST_SimpleMode)] + [ConflictingCombos(DNC_ST_Simple_SS)] + [CustomComboInfo("Simple Standard Fill Option", "Adds ONLY Standard dance steps and Standard Finish to the rotation." + "\nStandard Step itself must be initiated manually when using this option.", DNC.JobID, 1, "", "")] + DNC_ST_Simple_StandardFill = 4061, + + [ParentCombo(DNC_ST_SimpleMode)] + [ConflictingCombos(DNC_ST_Simple_TechFill)] + [CustomComboInfo("Simple Technical Dance Option", "Includes Technical Step, all dance steps and Technical Finish in the rotation.", DNC.JobID, 2, "", "")] + DNC_ST_Simple_TS = 4053, + + [ParentCombo(DNC_ST_SimpleMode)] + [ConflictingCombos(DNC_ST_Simple_TS)] + [CustomComboInfo("Simple Tech Fill Option", "Adds ONLY Technical dance steps and Technical Finish to the rotation." + "\nTechnical Step itself must be initiated manually when using this option.", DNC.JobID, 2, "", "")] + DNC_ST_Simple_TechFill = 4054, + + [ParentCombo(DNC_ST_SimpleMode)] + [CustomComboInfo("Simple Tech Devilment Option", "Includes Devilment in the rotation." + "\nWill activate only during Technical Finish if you are Lv70 or above.", DNC.JobID, 2, "", "")] + DNC_ST_Simple_Devilment = 4055, + + [ParentCombo(DNC_ST_SimpleMode)] + [CustomComboInfo("Simple Flourish Option", "Includes Flourish in the rotation.", DNC.JobID, 3, "", "")] + DNC_ST_Simple_Flourish = 4056, + + [ParentCombo(DNC_ST_SimpleMode)] + [CustomComboInfo("Simple Feathers Option", "Includes Feather usage in the rotation.", DNC.JobID, 4, "", "")] + DNC_ST_Simple_Feathers = 4057, + + [ParentCombo(DNC_ST_Simple_Feathers)] + [CustomComboInfo("Simple Feather Pooling Option", "Expends a feather in the next available weave window when capped." + "\nWeaves feathers where possible during Technical Finish." + "\nWeaves feathers outside of burst when target is below set HP percentage.", DNC.JobID, 4, "", "")] + DNC_ST_Simple_FeatherPooling = 4058, + + [ParentCombo(DNC_ST_SimpleMode)] + [CustomComboInfo("Simple Panic Heals Option", "Includes Curing Waltz and Second Wind in the rotation when available and your HP is below the set percentages.", DNC.JobID, 5, "", "")] + DNC_ST_Simple_PanicHeals = 4059, + + [ParentCombo(DNC_ST_SimpleMode)] + [CustomComboInfo("Simple Improvisation Option", "Includes Improvisation in the rotation when available.", DNC.JobID, 5, "", "")] + DNC_ST_Simple_Improvisation = 4060, + + [ParentCombo(DNC_ST_SimpleMode)] + [CustomComboInfo("Simple Peloton Opener Option", "Uses Peloton when you are out of combat, do not already have the Peloton buff and are performing Standard Step with greater than 5s remaining of your dance." + "\nWill not override Dance Step Combo Feature.", DNC.JobID, 5, "", "")] + DNC_ST_Simple_Peloton = 4062, + + #endregion + + #region Simple Dancer (AoE) + [ReplaceSkill(DNC.风车Windmill)] [ConflictingCombos(DNC_ST_MultiButton, DNC_AoE_MultiButton, DNC_CombinedDances, DNC_DanceComboReplacer, DNC_FlourishingFeatures_Menu, DNC_Starfall_Devilment)] - [CustomComboInfo("Simple Dancer (AoE) Feature", "Single button, AoE. Includes songs, flourishes and overprotections." + - "\nConflicts with all other non-simple toggles, except 'Dance Step Combo'.", DNC.JobID, 4, "", "")] + [CustomComboInfo("Simple Dancer (AoE) Feature", "Single button, AoE. Includes songs, flourishes and overprotections." + "\nConflicts with all other non-simple toggles, except 'Dance Step Combo'.", DNC.JobID, 4, "", "")] DNC_AoE_SimpleMode = 4070, - [ParentCombo(DNC_AoE_SimpleMode)] - [CustomComboInfo("Simple AoE Interrupt Option", "Includes an interrupt in the AoE rotation (if your current target can be interrupted).", DNC.JobID, 0, "", "")] - DNC_AoE_Simple_Interrupt = 4071, - - [ParentCombo(DNC_AoE_SimpleMode)] - [ConflictingCombos(DNC_AoE_Simple_StandardFill)] - [CustomComboInfo("Simple AoE Standard Dance Option", "Includes Standard Step (and all steps) in the AoE rotation.", DNC.JobID, 1, "", "")] - DNC_AoE_Simple_SS = 4072, - - [ParentCombo(DNC_AoE_SimpleMode)] - [ConflictingCombos(DNC_AoE_Simple_SS)] - [CustomComboInfo("Simple AoE Standard Fill Option", "Adds ONLY Standard dance steps and Standard Finish to the AoE rotation." + - "\nStandard Step itself must be initiated manually when using this option.", DNC.JobID, 2, "", "")] - DNC_AoE_Simple_StandardFill = 4081, - - [ParentCombo(DNC_AoE_SimpleMode)] - [ConflictingCombos(DNC_AoE_Simple_TechFill)] - [CustomComboInfo("Simple AoE Technical Dance Option", "Includes Technical Step, all dance steps and Technical Finish in the AoE rotation.", DNC.JobID, 3, "", "")] - DNC_AoE_Simple_TS = 4073, - - [ParentCombo(DNC_AoE_SimpleMode)] - [ConflictingCombos(DNC_AoE_Simple_TS)] - [CustomComboInfo("Simple AoE Tech Fill Option", "Adds ONLY Technical dance steps and Technical Finish to the AoE rotation." + - "\nTechnical Step itself must be initiated manually when using this option.", DNC.JobID, 4, "", "")] - DNC_AoE_Simple_TechFill = 4074, - - [ParentCombo(DNC_AoE_SimpleMode)] - [CustomComboInfo("Simple AoE Tech Devilment Option", "Includes Devilment in the AoE rotation." + - "\nWill activate only during Technical Finish if you Lv70 or above.", DNC.JobID, 5, "", "")] - DNC_AoE_Simple_Devilment = 4075, - - [ParentCombo(DNC_AoE_SimpleMode)] - [CustomComboInfo("Simple AoE Flourish Option", "Includes Flourish in the AoE rotation.", DNC.JobID, 6, "", "")] - DNC_AoE_Simple_Flourish = 4076, - - [ParentCombo(DNC_AoE_SimpleMode)] - [CustomComboInfo("Simple AoE Feathers Option", "Includes feather usage in the AoE rotation.", DNC.JobID, 7, "", "")] - DNC_AoE_Simple_Feathers = 4077, - - [ParentCombo(DNC_AoE_Simple_Feathers)] - [CustomComboInfo("Simple AoE Feather Pooling Option", "Expends a feather in the next available weave window when capped.", DNC.JobID, 8, "", "")] - DNC_AoE_Simple_FeatherPooling = 4078, - - [ParentCombo(DNC_AoE_SimpleMode)] - [CustomComboInfo("Simple AoE Panic Heals Option", "Includes Curing Waltz and Second Wind in the AoE rotation when available and your HP is below the set percentages.", DNC.JobID, 9, "", "")] - DNC_AoE_Simple_PanicHeals = 4079, - - [ParentCombo(DNC_AoE_SimpleMode)] - [CustomComboInfo("Simple AoE Improvisation Option", "Includes Improvisation in the AoE rotation when available.", DNC.JobID, 10, "", "")] - DNC_AoE_Simple_Improvisation = 4080, - #endregion + [ParentCombo(DNC_AoE_SimpleMode)] + [CustomComboInfo("Simple AoE Interrupt Option", "Includes an interrupt in the AoE rotation (if your current target can be interrupted).", DNC.JobID, 0, "", "")] + DNC_AoE_Simple_Interrupt = 4071, + + [ParentCombo(DNC_AoE_SimpleMode)] + [ConflictingCombos(DNC_AoE_Simple_StandardFill)] + [CustomComboInfo("Simple AoE Standard Dance Option", "Includes Standard Step (and all steps) in the AoE rotation.", DNC.JobID, 1, "", "")] + DNC_AoE_Simple_SS = 4072, + + [ParentCombo(DNC_AoE_SimpleMode)] + [ConflictingCombos(DNC_AoE_Simple_SS)] + [CustomComboInfo("Simple AoE Standard Fill Option", "Adds ONLY Standard dance steps and Standard Finish to the AoE rotation." + "\nStandard Step itself must be initiated manually when using this option.", DNC.JobID, 2, "", "")] + DNC_AoE_Simple_StandardFill = 4081, + + [ParentCombo(DNC_AoE_SimpleMode)] + [ConflictingCombos(DNC_AoE_Simple_TechFill)] + [CustomComboInfo("Simple AoE Technical Dance Option", "Includes Technical Step, all dance steps and Technical Finish in the AoE rotation.", DNC.JobID, 3, "", "")] + DNC_AoE_Simple_TS = 4073, + + [ParentCombo(DNC_AoE_SimpleMode)] + [ConflictingCombos(DNC_AoE_Simple_TS)] + [CustomComboInfo("Simple AoE Tech Fill Option", "Adds ONLY Technical dance steps and Technical Finish to the AoE rotation." + "\nTechnical Step itself must be initiated manually when using this option.", DNC.JobID, 4, "", "")] + DNC_AoE_Simple_TechFill = 4074, + + [ParentCombo(DNC_AoE_SimpleMode)] + [CustomComboInfo("Simple AoE Tech Devilment Option", "Includes Devilment in the AoE rotation." + "\nWill activate only during Technical Finish if you Lv70 or above.", DNC.JobID, 5, "", "")] + DNC_AoE_Simple_Devilment = 4075, + + [ParentCombo(DNC_AoE_SimpleMode)] + [CustomComboInfo("Simple AoE Flourish Option", "Includes Flourish in the AoE rotation.", DNC.JobID, 6, "", "")] + DNC_AoE_Simple_Flourish = 4076, + + [ParentCombo(DNC_AoE_SimpleMode)] + [CustomComboInfo("Simple AoE Feathers Option", "Includes feather usage in the AoE rotation.", DNC.JobID, 7, "", "")] + DNC_AoE_Simple_Feathers = 4077, + + [ParentCombo(DNC_AoE_Simple_Feathers)] + [CustomComboInfo("Simple AoE Feather Pooling Option", "Expends a feather in the next available weave window when capped.", DNC.JobID, 8, "", "")] + DNC_AoE_Simple_FeatherPooling = 4078, + + [ParentCombo(DNC_AoE_SimpleMode)] + [CustomComboInfo("Simple AoE Panic Heals Option", "Includes Curing Waltz and Second Wind in the AoE rotation when available and your HP is below the set percentages.", DNC.JobID, 9, "", "")] + DNC_AoE_Simple_PanicHeals = 4079, + + [ParentCombo(DNC_AoE_SimpleMode)] + [CustomComboInfo("Simple AoE Improvisation Option", "Includes Improvisation in the AoE rotation when available.", DNC.JobID, 10, "", "")] + DNC_AoE_Simple_Improvisation = 4080, + + #endregion #endregion #region DARK KNIGHT @@ -1127,186 +1144,249 @@ public enum CustomComboPreset #endregion - #region DRAGOON + #region DRAGOON - [ReplaceSkill(DRG.Jump, DRG.HighJump)] - [CustomComboInfo("跳跃 替换 幻象冲", "幻象冲准备就绪时,用幻象冲 替换 (高)跳跃。", DRG.JobID, 0)] - DRG_Jump = 6000, + [ReplaceSkill(DRG.TrueThrust)] + [ConflictingCombos(DRG_ST_AdvancedMode)] + [CustomComboInfo("Simple Mode - Single Target", "Replaces True Thrust with a full one-button single target rotation.\nThis is the ideal option for newcomers to the job.", DRG.JobID)] + DRG_ST_SimpleMode = 6001, + + #region Advanced ST Dragoon - #region Advanced Dragoon [ReplaceSkill(DRG.TrueThrust)] - [CustomComboInfo("高级龙骑", "将 精准刺 设为单体连招的起始。", DRG.JobID, 1, "", "")] - DRG_STCombo = 6100, + [ConflictingCombos(DRG_ST_SimpleMode)] + [CustomComboInfo("Advanced Mode - Single Target", "Replaces True Thrust with a full one-button single target rotation.\nThese features are ideal if you want to customize the rotation.", DRG.JobID, 1, "", "")] + DRG_ST_AdvancedMode = 6100, - [ParentCombo(DRG_STCombo)] - [CustomComboInfo("88级起手", "将开场技能添加到战斗循环中。当战斗连祷和猛枪技能冷却后,并且在战斗外使用真北或在战斗开始时使用回避跳跃技能时激活。可选项:使用操作或鼠标以获得最佳目标选定", DRG.JobID, 0, "", "")] + [ParentCombo(DRG_ST_AdvancedMode)] + [CustomComboInfo("Level 88+ Opener", "Adds the Balance opener to the rotation.\nOPTIONAL: USE REACTION OR MOACTION FOR OPTIMAL TARGETING.", DRG.JobID, 1, "", "")] DRG_ST_Opener = 6101, - [ParentCombo(DRG_STCombo)] - [CustomComboInfo("主连击CD整合", "cd技能循环整合", DRG.JobID, 0, "", "")] - DRG_ST_CDs = 6199, + #region Buffs ST - [ParentCombo(DRG_STCombo)] - [CustomComboInfo("主连击Buff整合", "buff技能循环整合", DRG.JobID, 0, "", "")] - DRG_ST_Buffs = 6198, + [ParentCombo(DRG_ST_AdvancedMode)] + [CustomComboInfo("Buffs Option", "Adds various buffs to the rotation.", DRG.JobID, 2, "", "")] + DRG_ST_Buffs = 6102, - [ParentCombo(DRG_ST_CDs)] - [CustomComboInfo("天龙点睛选项", "将天龙点睛加入循环", DRG.JobID, 13, "", "")] - DRG_ST_Wyrmwind = 6102, + [ParentCombo(DRG_ST_Buffs)] + [CustomComboInfo("Battle Litany Option", "Adds Battle Litany to the rotation.", DRG.JobID)] + DRG_ST_Litany = 6103, - [ParentCombo(DRG_ST_CDs)] - [CustomComboInfo("武神枪和死者之岸选项", "将武神枪和死者之岸加入循环", DRG.JobID, 18, "", "")] - DRG_ST_GeirskogulNastrond = 6103, + [ParentCombo(DRG_ST_Buffs)] + [CustomComboInfo("Lance Charge Option", "Adds Lance Charge to the rotation.", DRG.JobID)] + DRG_ST_Lance = 6104, + + [ParentCombo(DRG_ST_Buffs)] + [CustomComboInfo("Dragon Sight Option", "Adds Dragon Sight to the rotation.\nOPTIONAL: USE REACTION OR MOACTION FOR OPTIMAL TARGETING.", DRG.JobID)] + DRG_ST_DragonSight = 6105, + + #endregion + + #region Cooldowns ST + + [ParentCombo(DRG_ST_AdvancedMode)] + [CustomComboInfo("Cooldowns Option", "Adds various cooldowns to the rotation.", DRG.JobID, 3, "", "")] + DRG_ST_CDs = 6106, [ParentCombo(DRG_ST_CDs)] - [CustomComboInfo("跳跃选项", "Adds Spineshatter Dive, Dragonfire Dive, and Stardiver to the rotation.\\n Select options below for when to use dives.", DRG.JobID, 14, "", "")] - DRG_ST_Dives = 6104, + [CustomComboInfo("Life Surge Option", "Adds Life Surge, while under Dragon Sight and Lance Charge buffs, to the rotation.", DRG.JobID, -8, "", "")] + DRG_ST_LifeSurge = 6107, + [ParentCombo(DRG_ST_CDs)] + [CustomComboInfo("Dragonfire Dive Option", "Adds Dragonfire Dive to the rotation.", DRG.JobID, -7, "", "")] + DRG_ST_Dives_Dragonfire = 6108, [ParentCombo(DRG_ST_CDs)] - [CustomComboInfo("高跳选项", "将高跳/跳跃加入循环", DRG.JobID, 19, "", "")] - DRG_ST_HighJump = 6105, + [CustomComboInfo("Spineshatter Dive Option", "Adds Spineshatter Dive to the rotation.", DRG.JobID, -7, "", "")] + DRG_ST_Dives_Spineshatter = 6109, [ParentCombo(DRG_ST_CDs)] - [CustomComboInfo("幻象冲选项", "将幻象冲加入循环", DRG.JobID, 20, "", "")] - DRG_ST_Mirage = 6106, + [CustomComboInfo("Stardiver Option", "Adds Stardiver to the rotation.", DRG.JobID, -7, "", "")] + DRG_ST_Stardiver = 6110, - [ParentCombo(DRG_ST_Buffs)] - [CustomComboInfo("猛枪选项", "猛枪加入循环", DRG.JobID, 21, "", "")] - DRG_ST_Lance = 6107, + [ParentCombo(DRG_ST_CDs)] + [CustomComboInfo("High Jump Option", "Adds High Jump/Jump to the rotation.", DRG.JobID, -6, "", "")] + DRG_ST_HighJump = 6111, - [ParentCombo(DRG_ST_Buffs)] - [CustomComboInfo("巨龙视线选项", "巨龙视线设置。注意:需要自行选择最优目标", DRG.JobID, 22, "", "")] - DRG_ST_DragonSight = 6108, + [ParentCombo(DRG_ST_HighJump)] + [CustomComboInfo("Mirage Dive Option", "Adds Mirage Dive to the rotation.", DRG.JobID)] + DRG_ST_Mirage = 6112, - [ParentCombo(DRG_ST_Buffs)] - [CustomComboInfo("战斗连祷选项", "将战斗连祷加入循环", DRG.JobID, 23, "", "")] - DRG_ST_Litany = 6109, + [ParentCombo(DRG_ST_CDs)] + [CustomComboInfo("Geirskogul and Nastrond Option", "Adds Geirskogul and Nastrond to the rotation.", DRG.JobID, -5, "", "")] + DRG_ST_GeirskogulNastrond = 6113, [ParentCombo(DRG_ST_CDs)] - [CustomComboInfo("龙剑选项", "Includes Life Surge, while under proper buffs, onto proper GCDs, to the rotation.", DRG.JobID, 24, "", "")] - DRG_ST_LifeSurge = 6110, + [CustomComboInfo("Wyrmwind Thrust Option", "Adds Wyrmwind Thrust to the rotation.", DRG.JobID, -4, "", "")] + DRG_ST_Wyrmwind = 6114, - [ParentCombo(DRG_STCombo)] - [CustomComboInfo("超出近战范围选项", "超出近战范围时,将主要AOE连击替换为贯穿尖", DRG.JobID, 25, "", "")] - DRG_ST_RangedUptime = 6111, + #endregion + + [ParentCombo(DRG_ST_AdvancedMode)] + [CustomComboInfo("Optimized Rotation Option", "Uses optimzed use of Geirskogul and (High) Jump/Mirage Dive", DRG.JobID, 4, "", "")] + DRG_ST_Optimized_Rotation = 6115, + + [ParentCombo(DRG_ST_AdvancedMode)] + [CustomComboInfo("Ranged Uptime Option", "Adds Piercing Talon to the rotation when you are out of melee range.", DRG.JobID, 5, "", "")] + DRG_ST_RangedUptime = 6116, - [ParentCombo(DRG_ST_Dives)] - [CustomComboInfo("冲冲冲设置", "Uses Spineshatter Dive, Dragonfire Dive, and Stardiver when in the target's target ring (1 yalm) and closer.", DRG.JobID, 14, "", "")] - DRG_ST_Dives_Melee = 6112, + [ParentCombo(DRG_ST_AdvancedMode)] + [CustomComboInfo("Combo Heals Option", "Adds Bloodbath and Second Wind to the rotation.", DRG.JobID, 6, "", "")] + DRG_ST_ComboHeals = 6117, - [ParentCombo(DRG_STCombo)] - [CustomComboInfo("回复设置", "Adds Bloodbath and Second Wind to the combo, using them when below the HP Percentage threshold.", DRG.JobID, 0, "", "")] - DRG_ST_ComboHeals = 6113, + [ParentCombo(DRG_ST_AdvancedMode)] + [CustomComboInfo("Dynamic True North Option", "Adds True North before Chaos Thrust/Chaotic Spring, Fang And Claw and Wheeling Thrust when you are not in the correct position for the enhanced potency bonus.", DRG.JobID, 7, "", "")] + DRG_TrueNorthDynamic = 6118, #endregion - #region 高级龙骑 AoE [ReplaceSkill(DRG.DoomSpike)] - [CustomComboInfo("高级龙骑AOE", "死天枪连击", DRG.JobID, 26, "", "")] - DRG_AoECombo = 6200, + [ConflictingCombos(DRG_AOE_AdvancedMode)] + [CustomComboInfo("Simple Mode - AoE", "Replaces Doom Spike with a full one-button AoE rotation.\nThis is the ideal option for newcomers to the job.", DRG.JobID, 3, "", "")] + DRG_AOE_SimpleMode = 6200, - [ParentCombo(DRG_AoECombo)] - [CustomComboInfo("天龙点睛设置", "将天龙点睛插入AOE循环", DRG.JobID, 27, "", "")] - DRG_AoE_WyrmwindFeature = 6201, + #region Advanced AoE Dragoon - [ParentCombo(DRG_AoECombo)] - [CustomComboInfo("武神枪与死者之岸设置", "将武神枪与死者之岸插入AOE循环", DRG.JobID, 28, "", "")] - DRG_AoE_GeirskogulNastrond = 6202, - - [ParentCombo(DRG_AoECombo)] - [CustomComboInfo("跳跃类能力技设置", "Includes Spineshatter Dive, Dragonfire Dive and Stardiver to the AoE rotation.", DRG.JobID, 29, "", "")] - DRG_AoE_Dives = 6203, + [ReplaceSkill(DRG.DoomSpike)] + [ConflictingCombos(DRG_AOE_SimpleMode)] + [CustomComboInfo("Advanced Mode - AoE", "Replaces Doom Spike with a full one-button AoE rotation.\nThese features are ideal if you want to customize the rotation.", DRG.JobID, 4, "", "")] + DRG_AOE_AdvancedMode = 6201, - [ParentCombo(DRG_AoECombo)] - [CustomComboInfo("高跳设置", "在连击中插入高跳。", DRG.JobID, 33, "", "")] - DRG_AoE_HighJump = 6204, + #region Buffs AoE - [ParentCombo(DRG_AoECombo)] - [CustomComboInfo("幻象冲设置", "在AOE连击中插入幻象冲", DRG.JobID, 34, "", "")] - DRG_AoE_Mirage = 6205, + [ParentCombo(DRG_AOE_AdvancedMode)] + [CustomComboInfo("Buffs AoE Option", "Adds Lance Charge and Battle Litany to the rotation.", DRG.JobID, -2, "", "")] + DRG_AoE_Buffs = 6202, - #region Buffs AoE Feature - [ParentCombo(DRG_AoECombo)] - [CustomComboInfo("buff设置", "在连击中插入猛枪和战斗连祷。", DRG.JobID, 35, "", "")] - DRG_AoE_Buffs = 6206, + [ParentCombo(DRG_AoE_Buffs)] + [CustomComboInfo("Battle Litany AoE Option", "Adds Battle Litany to the rotation.", DRG.JobID, 36, "", "")] + DRG_AoE_Litany = 6203, + [ParentCombo(DRG_AoE_Buffs)] + [CustomComboInfo("Lance Charge AoE Option", "Adds Lance Charge to the rotation.", DRG.JobID, 36, "", "")] + DRG_AoE_Lance = 6204, [ParentCombo(DRG_AoE_Buffs)] - [CustomComboInfo("巨龙视线设置Aoe", "在连击中插入巨龙视线。需要自行选择最优目标。", DRG.JobID, 36, "", "")] - DRG_AoE_DragonSight = 6207, + [CustomComboInfo("Dragon Sight AoE Option", "Adds Dragon Sight to the rotation.\nOPTIONAL: USE REACTION OR MOACTION FOR OPTIMAL TARGETING.", DRG.JobID)] + DRG_AoE_DragonSight = 6205, + #endregion - [ParentCombo(DRG_AoECombo)] - [CustomComboInfo("龙剑设置 AoE Feature", "Includes Life Surge, while under proper buffs, onto proper GCDs, to the AoE rotation.", DRG.JobID, 37, "", "")] - DRG_AoE_LifeSurge = 6208, + #region CDs AoE + + [ParentCombo(DRG_AOE_AdvancedMode)] + [CustomComboInfo("Cooldowns Option", "Adds various cooldowns to the rotation.", DRG.JobID, -1, "", "")] + DRG_AoE_CDs = 6206, + + [ParentCombo(DRG_AoE_CDs)] + [CustomComboInfo("Life Surge Option", "Adds Life Surge, while under proper buffs, onto proper GCDs, to the rotation.", DRG.JobID)] + DRG_AoE_LifeSurge = 6207, - [ParentCombo(DRG_AoECombo)] - [CustomComboInfo("超出近战范围选项", "超出近战范围时,将主要AOE连击替换为贯穿尖", DRG.JobID, 40, "", "")] - DRG_AoE_RangedUptime = 6209, + [ParentCombo(DRG_AoE_CDs)] + [CustomComboInfo("Spineshatter Dive Option", "Adds Spineshatter Dive to the rotation.", DRG.JobID)] + DRG_AoE_Spineshatter_Dive = 6208, - [ParentCombo(DRG_AoE_Dives)] - [CustomComboInfo("冲冲冲设置", "Uses Spineshatter Dive, Dragonfire Dive, and Stardiver when in the target's target ring (1 yalm) and closer.", DRG.JobID, 29, "", "")] - DRG_AoE_Dives_Melee = 6210, + [ParentCombo(DRG_AoE_CDs)] + [CustomComboInfo("Dragonfire Dive Option", "Adds Dragonfire Dive to the rotation.", DRG.JobID)] + DRG_AoE_Dragonfire_Dive = 6209, - [ParentCombo(DRG_AoECombo)] - [CustomComboInfo("回复设置", "Adds Bloodbath and Second Wind to the combo, using them when below the HP Percentage threshold.", DRG.JobID, 0, "", "")] - DRG_AoE_ComboHeals = 6211, + [ParentCombo(DRG_AoE_CDs)] + [CustomComboInfo("Stardiver Option", "Adds Stardiver to the rotation when under at least 1 buff", DRG.JobID, -7, "", "")] + DRG_AoE_Stardiver = 6210, + + [ParentCombo(DRG_AoE_CDs)] + [CustomComboInfo("High Jump Option", "Adds High Jump to the rotation.", DRG.JobID)] + DRG_AoE_HighJump = 6211, + + [ParentCombo(DRG_AoE_HighJump)] + [CustomComboInfo("Mirage Dive Option", "Adds Mirage Dive to the rotation.", DRG.JobID)] + DRG_AoE_Mirage = 6212, + + [ParentCombo(DRG_AoE_CDs)] + [CustomComboInfo("Geirskogul and Nastrond Option", "Adds Geirskogul and Nastrond to the rotation.", DRG.JobID)] + DRG_AoE_GeirskogulNastrond = 6213, + + [ParentCombo(DRG_AoE_CDs)] + [CustomComboInfo("Wyrmwind Option", "Adds Wyrmwind Thrust to the rotation.", DRG.JobID)] + DRG_AoE_Wyrmwind = 6214, #endregion + [ParentCombo(DRG_AOE_AdvancedMode)] + [CustomComboInfo("Optimized Rotation Option", "Uses optimzed use of Geirskogul and (High) Jump/Mirage Dive", DRG.JobID)] + DRG_AoE_Optimized_Rotation = 6215, + + [ParentCombo(DRG_AOE_AdvancedMode)] + [CustomComboInfo("Ranged Uptime Option", "Adds Piercing Talon to the rotation when you are out of melee range.", DRG.JobID, 98, "", "")] + DRG_AoE_RangedUptime = 6216, + + [ParentCombo(DRG_AOE_AdvancedMode)] + [CustomComboInfo("Combo Heals Option", "Adds Bloodbath and Second Wind to the rotation.", DRG.JobID, 99, "", "")] + DRG_AoE_ComboHeals = 6217, + + #endregion + + [ReplaceSkill(DRG.Jump, DRG.HighJump)] + [CustomComboInfo("Jump to Mirage Dive", "Replace (High) Jump with Mirage Dive when Dive Ready.", DRG.JobID, 5)] + DRG_Jump = 6300, + [ReplaceSkill(DRG.Stardiver)] - [CustomComboInfo("坠星冲设置", "Turns Stardiver into Nastrond during Life of the Dragon, and Geirskogul outside of Life of the Dragon.", DRG.JobID, 26, "", "")] - DRG_StardiverFeature = 6300, + [CustomComboInfo("Stardiver Feature", "Turns Stardiver into Nastrond during Life of the Dragon, and Geirskogul outside of Life of the Dragon.", DRG.JobID, 6, "", "")] + DRG_StardiverFeature = 6301, [ReplaceSkill(DRG.LanceCharge)] - [CustomComboInfo("猛枪整合到战斗连祷", "猛枪冷却完毕后整合至战斗连祷", DRG.JobID, 26, "", "")] - DRG_BurstCDFeature = 6400, + [CustomComboInfo("Lance Charge to Battle Litany Feature", "Turns Lance Charge into Battle Litany when the former is on cooldown.", DRG.JobID, 7, "", "")] + DRG_BurstCDFeature = 6302, [ParentCombo(DRG_BurstCDFeature)] - [CustomComboInfo("巨龙视线选项", "Adds Dragon Sight to Lance Charge, will take precedence over Battle Litany.", DRG.JobID, 26, "", "")] - DRG_BurstCDFeature_DragonSight = 6401, + [CustomComboInfo("Dragon Sight Option", "Adds Dragon Sight to Lance Charge, will take precedence over Battle Litany.", DRG.JobID, 8, "", "")] + DRG_BurstCDFeature_DragonSight = 6303, [Variant] - [VariantParent(DRG_STCombo, DRG_AoECombo)] - [CustomComboInfo("治疗 选项", "在下水道使用治疗当HP低于某个值", DRG.JobID)] - DRG_Variant_Cure = 6500, + [VariantParent(DRG_ST_AdvancedMode, DRG_AOE_AdvancedMode)] + [CustomComboInfo("Cure Option", "Use Variant Cure when HP is below set threshold.", DRG.JobID)] + DRG_Variant_Cure = 6304, [Variant] - [VariantParent(DRG_STCombo, DRG_AoECombo)] - [CustomComboInfo("铁壁 选项", "冷却结束时使用多变铁壁", DRG.JobID)] - DRG_Variant_Rampart = 6600, + [VariantParent(DRG_ST_AdvancedMode, DRG_AOE_AdvancedMode)] + [CustomComboInfo("Rampart Option", "Use Variant Rampart on cooldown.", DRG.JobID)] + DRG_Variant_Rampart = 6305, + - // Last value = 6600 + // Last value = 6117 - 6215 - 6305 #endregion #region GUNBREAKER + [ParentCombo(GNB_ST_MainCombo)] [CustomComboInfo("起手设置", "设置多少GCD起手", GNB.JobID, 0)] GNB_START_GCD = 6999, - + [ParentCombo(GNB_START_GCD)] [CustomComboInfo("直接爆发", "起手快速卸掉资源", GNB.JobID, 0, "", "")] GNB_START_GCD_直接爆发 = 7036, - + [ParentCombo(GNB_ST_MainCombo)] [CustomComboInfo("先打什么", "尽可能按照下面的循环打", GNB.JobID, 0)] GNB_ST_SkSSupport = 7000, #region ST + [ReplaceSkill(GNB.利刃斩KeenEdge)] [CustomComboInfo("绝枪战士一键连击", "替换利刃斩和爆发击防止子弹溢出", GNB.JobID, 0, "", "")] GNB_ST_MainCombo = 7001, #region Gnashing Fang + [ParentCombo(GNB_ST_MainCombo)] [CustomComboInfo("烈牙与续剑整合到主连击", "将烈牙与续剑整合到主连击。烈牙必须被手动激活,之后会被替换到主连击。", GNB.JobID, 0, "", "")] GNB_ST_Gnashing = 7002, - + #endregion #region Cooldowns + [ParentCombo(GNB_ST_MainCombo)] [CustomComboInfo("绝枪战士能力技整合 设置", "选择是否在无情状态下将各种能力技整合至主连击中", GNB.JobID, 0, "", "")] GNB_ST_MainCombo_CooldownsGroup = 7004, @@ -1339,9 +1419,11 @@ public enum CustomComboPreset [ParentCombo(GNB_ST_MainCombo_CooldownsGroup)] [CustomComboInfo("爆发击整合到主连击", "在主连击中插入爆发击和超高速(若可用).", GNB.JobID, 0, "", "")] GNB_ST_BurstStrike = 7011, + #endregion #region Rough Divide + [ParentCombo(GNB_ST_MainCombo)] [CustomComboInfo("粗分斩设置", "当可用时在主连击中插入粗分斩.", GNB.JobID, 0, "", "")] GNB_ST_RoughDivide = 7012, @@ -1349,14 +1431,17 @@ public enum CustomComboPreset [ParentCombo(GNB_ST_RoughDivide)] [CustomComboInfo("近战时插入粗分斩 设置", "Uses Rough Divide when under No Mercy, burst cooldowns when available, not moving, and in the target ring (1 yalm).\\nWill use as many stacks as selected in the above slider.", GNB.JobID, 0, "", "")] GNB_ST_MeleeRoughDivide = 7013, + #endregion [ParentCombo(GNB_ST_MainCombo)] [CustomComboInfo("闪雷弹激活", "当自身与所选目标在近战距离外时,插入闪雷弹.", GNB.JobID, 0, "", "")] GNB_ST_RangedUptime = 7014, + #endregion #region Gnashing Fang + [ReplaceSkill(GNB.烈牙GnashingFang)] [CustomComboInfo("烈牙连击", "将续剑添加到烈牙.", GNB.JobID, 0, "", "")] GNB_GF_Continuation = 7200, @@ -1372,9 +1457,11 @@ public enum CustomComboPreset [ParentCombo(GNB_GF_Continuation)] [CustomComboInfo("烈牙CD选项", "添加 血壤Bloodfest/音速破SSonic Break/弓形冲波Bow Shock/Blasting Zone on Gnashing Fang, order dependent on No Mercy buff.\\nBurst Strike and Hypervelocity added if there's charges while No Mercy buff is up.", GNB.JobID, 0, "", "")] GNB_GF_Cooldowns = 7203, + #endregion #region AoE + [ReplaceSkill(GNB.恶魔切DemonSlice)] [CustomComboInfo("绝枪战士AOE功能", "将恶魔杀替换为恶魔杀连击。", GNB.JobID, 0, "", "")] GNB_AoE_MainCombo = 7300, @@ -1407,9 +1494,11 @@ public enum CustomComboPreset [ParentCombo(GNB_AoE_MainCombo)] [CustomComboInfo("晶壤溢出特性", "当晶壤将要溢出时使用命运之环替换掉AOE连击。", GNB.JobID, 0, "", "")] GNB_AOE_Overcap = 7307, + #endregion #region Burst Strike + [ReplaceSkill(GNB.爆发击BurstStrike)] [CustomComboInfo("爆发击 Feature", "爆发击 相关功能", GNB.JobID, 0, "", "")] GNB_BS = 7400, @@ -1426,9 +1515,11 @@ public enum CustomComboPreset [ParentCombo(GNB_BS)] [CustomComboInfo("爆发击整合 设置", "无情状态下且有三颗晶壤时,用倍攻代替爆发击", GNB.JobID, 0, "", "")] GNB_BS_DoubleDown = 7403, + #endregion #region No Mercy + [ConflictingCombos(GNB_ST_NoMercy, GNB_AoE_NoMercy)] [ReplaceSkill(GNB.无情NoMercy)] [CustomComboInfo("无情", "无情冷却替换无情", GNB.JobID, 0, "", "")] @@ -1441,6 +1532,7 @@ public enum CustomComboPreset [ParentCombo(GNB_NoMercy_Cooldowns)] [CustomComboInfo("音速破/弓形冲波", "无情状态下,用音速破/弓形冲波代替无情", GNB.JobID, 0, "", "")] GNB_NoMercy_Cooldowns_SonicBreakBowShock = 7502, + #endregion [CustomComboInfo("极光保护机制", "自身身上有极光,将极光变为原初的勇猛", GNB.JobID, 0, "", "")] @@ -1465,180 +1557,189 @@ public enum CustomComboPreset #endregion - #region MACHINIST - - [ReplaceSkill(MCH.CleanShot, MCH.HeatedCleanShot, MCH.SplitShot, MCH.HeatedSplitShot)] - [ConflictingCombos(MCH_ST_SimpleMode)] - [CustomComboInfo("(热)狙击弹连击一键整合", "替换热弹为连击循环中的任一技能", MCH.JobID, 0, "", "")] - MCH_ST_MainCombo = 8000, - - [ReplaceSkill(MCH.RookAutoturret, MCH.AutomatonQueen)] - [CustomComboInfo("超档炮塔/人偶替换设置", "在技能可用时,将车式浮空炮塔和后式自走人偶转换为超档车式炮塔和超档自走人偶", MCH.JobID, 0, "", "")] - MCH_Overdrive = 8002, + #region Simple ST - [ReplaceSkill(MCH.GaussRound, MCH.Ricochet)] - [CustomComboInfo("虹吸弹 / 弹射设置", "将虹吸弹和弹射替换为一个或其他需要更多充电电能的技能.", MCH.JobID, 0, "", "")] - MCH_GaussRoundRicochet = 8003, + [ReplaceSkill(MCH.SplitShot)] + [ConflictingCombos(MCH_ST_AdvancedMode)] + [CustomComboInfo("Simple Mode - Single Target", "Replaces Split Shot with a one-button full single target rotation.\nThis is ideal for newcomers to the job.", MCH.JobID)] + MCH_ST_SimpleMode = 8000, - [ReplaceSkill(MCH.Drill, MCH.AirAnchor, MCH.HotShot)] - [CustomComboInfo("钻头/空气锚(热弹)选项", "钻头、空气锚 (热弹)、回转飞锯根据cd时间互相替换.", MCH.JobID, 0, "", "")] - MCH_HotShotDrillChainSaw = 8004, + #endregion - [ParentCombo(MCH_ST_MainCombo)] - [ConflictingCombos(MCH_ST_MainComboAlternate)] - [CustomComboInfo("钻头/空气锚/回转飞锯整合 设置", "Air Anchor followed by Drill is added onto main combo if you use Reassemble.\\nIf Air Anchor is on cooldown and you use Reassemble, Chain Saw will be added to main combo instead.", MCH.JobID, 0, "", "")] - MCH_ST_MainCombo_Cooldowns = 8005, + #region Advanced ST - [ReplaceSkill(MCH.HeatBlast)] + [ReplaceSkill(MCH.SplitShot)] [ConflictingCombos(MCH_ST_SimpleMode)] - [CustomComboInfo("热冲击一键整合", "整合超荷至热冲击.", MCH.JobID, 0, "", "")] - MCH_HeatblastGaussRicochet = 8006, - - [ReplaceSkill(MCH.AutoCrossbow)] - [CustomComboInfo("自动弩一键整合", "将自动弩切换为超荷,并插入虹吸弹/弹射。", MCH.JobID, 0, "", "")] - MCH_AutoCrossbowGaussRicochet = 8018, - - [ParentCombo(MCH_ST_MainCombo)] - [ConflictingCombos(MCH_ST_MainCombo_Cooldowns)] - [CustomComboInfo("交替插入钻头/空气锚/热弹被添加到连击循环中", "将钻头/空气锚/热弹插入主连击循环中(注意:只有当你在整备Buff中\\n或整备正在冷却中该选项才会生效。(若整备可用但却没有使用时则不会插入这些技能)", MCH.JobID, 0, "", "")] - MCH_ST_MainComboAlternate = 8007, + [CustomComboInfo("Advanced Mode - Single Target", "Replaces Split Shot with a one-button full single target rotation.\nThese features are ideal if you want to customize the rotation.", MCH.JobID)] + MCH_ST_AdvancedMode = 8100, - [ParentCombo(MCH_ST_MainCombo)] - [CustomComboInfo("一键热冲击 添加到主循环选项", "当选项被启用时,在主循环中添加一键热冲击。", MCH.JobID, 0, "", "")] - MCH_ST_MainCombo_HeatBlast = 8008, + [ParentCombo(MCH_ST_AdvancedMode)] + [CustomComboInfo("Level 90 Opener Option", "Uses the Balance opener depending on which rotation is selected above.", MCH.JobID)] + MCH_ST_Adv_Opener = 8101, - [ParentCombo(MCH_ST_MainCombo)] - [CustomComboInfo("电量溢出后自动替换炮台/人偶", "Overcharge protection for your Battery, If you are at 100 battery charge Rook Autoturret/Automaton Queen will be added to your (Heated) Shot Combo.", MCH.JobID, 0, "", "")] - MCH_ST_MainCombo_OverCharge = 8009, + [ParentCombo(MCH_ST_AdvancedMode)] + [CustomComboInfo("Hot Shot / Air Anchor option", "Adds Hot Shot/Air Anchor to the rotation.", MCH.JobID)] + MCH_ST_Adv_AirAnchor = 8102, - [ParentCombo(MCH_AoE_SimpleMode)] - [CustomComboInfo("电量溢出后自动替换炮台/人偶", "为散射/霰弹枪增加了过电量保护。.", MCH.JobID, 0, "", "")] - MCH_AoE_OverCharge = 8010, + [ParentCombo(MCH_ST_AdvancedMode)] + [CustomComboInfo("Reassemble Option", "Adds Reassemble to the rotation.", MCH.JobID)] + MCH_ST_Adv_Reassembled = 8103, - [ParentCombo(MCH_AoE_SimpleMode)] - [CustomComboInfo("虹吸弹/弹射整合 设置", "在超荷过程中为AOE连击循环增加虹吸弹/弹射", MCH.JobID, 0, "", "")] - MCH_AoE_GaussRicochet = 8011, + [ParentCombo(MCH_ST_AdvancedMode)] + [CustomComboInfo("Gauss Round / Ricochet Option", "Adds Gauss Round and Ricochet to the rotation.\nWill prevent overcapping.", MCH.JobID)] + MCH_ST_Adv_GaussRicochet = 8104, - [ParentCombo(MCH_AoE_GaussRicochet)] - [CustomComboInfo("不限制虹吸弹/弹射的插入时机", "在超荷窗口之外的AOE连击循环中也会插入可用的虹吸弹/弹射.", MCH.JobID, 0, "", "")] - MCH_AoE_Gauss = 8012, + [ParentCombo(MCH_ST_AdvancedMode)] + [CustomComboInfo("Hypercharge Option", "Adds Hypercharge to the rotation.", MCH.JobID)] + MCH_ST_Adv_Hypercharge = 8105, - [ConflictingCombos(MCH_ST_MainCombo_RicochetGauss)] - [ParentCombo(MCH_ST_MainCombo)] - [CustomComboInfo("弹射 & 虹吸弹 设置", "将弹射和虹吸弹添加到主连击循环中.这将使用所有电能.", MCH.JobID, 0, "", "")] - MCH_ST_MainCombo_RicochetGaussCharges = 8017, + [ParentCombo(MCH_ST_AdvancedMode)] + [CustomComboInfo("Heat Blast Option", "Adds Heat Blast to the rotation", MCH.JobID)] + MCH_ST_Adv_HeatBlast = 8106, - [ConflictingCombos(MCH_ST_MainCombo_RicochetGaussCharges)] - [ParentCombo(MCH_ST_MainCombo)] - [CustomComboInfo("Ricochet & Gauss Round Overcap Protection Option", "将弹射和虹吸弹添加到主连击循环中.将各留下一个电能.", MCH.JobID, 0, "", "")] - MCH_ST_MainCombo_RicochetGauss = 8013, + [ParentCombo(MCH_ST_AdvancedMode)] + [CustomComboInfo("Rook Autoturret/Automaton Queen Option", "Adds Rook Autoturret/Automaton Queen to the rotation.", MCH.JobID)] + MCH_Adv_TurretQueen = 8107, - [ParentCombo(MCH_ST_MainCombo)] - [CustomComboInfo("枪管加热避免延后浪费 设置", "如果热量在5-20之间,则将枪管加热添加到主连击循环中。", MCH.JobID, 0, "", "")] - MCH_ST_BarrelStabilizer_DriftProtection = 8014, + [ParentCombo(MCH_ST_AdvancedMode)] + [CustomComboInfo("Wildfire Option", "Adds Wildfire to the rotation.", MCH.JobID)] + MCH_ST_Adv_WildFire = 8108, - [ParentCombo(MCH_HeatblastGaussRicochet)] - [CustomComboInfo("野火 设置", "Adds Wildfire to the 热冲击一键整合 if Wildfire is off cooldown and you have enough Heat Gauge for Hypercharge then Hypercharge will be replaced with Wildfire.\\nAlso weaves Ricochet/Gauss Round on Heat Blast when necessary.", MCH.JobID, 0, "", "")] - MCH_ST_Wildfire = 8015, + [ParentCombo(MCH_ST_AdvancedMode)] + [CustomComboInfo("Drill option", "Adds Drill to the rotation.", MCH.JobID)] + MCH_ST_Adv_Drill = 8109, - [ParentCombo(MCH_AoE_SimpleMode)] - [CustomComboInfo("毒菌冲击整合 设置", "在散射的功能中添加毒菌冲击", MCH.JobID, 0, "", "")] - MCH_AoE_Simple_Bioblaster = 8016, + [ParentCombo(MCH_ST_AdvancedMode)] + [CustomComboInfo("Barrel Stabilizer Option", "Adds Barrel Stabilizer to the rotation.", MCH.JobID)] + MCH_ST_Adv_Stabilizer = 8110, - [CustomComboInfo("枪管加热 设置", "当低于50热度且冷却完毕时,在一键热冲击循环和一键自动弩循环中插入枪管加热", MCH.JobID, 0, "", "")] - MCH_ST_AutoBarrel = 8019, + [ParentCombo(MCH_ST_Adv_Stabilizer)] + [CustomComboInfo("Wildfire Only Option", "Only use Barrel Stabilizer to prepare for Wildfire.", MCH.JobID)] + MCH_ST_Adv_Stabilizer_Wildfire_Only = 8111, - [ReplaceSkill(MCH.SplitShot, MCH.HeatedSplitShot)] - [ConflictingCombos(MCH_ST_MainCombo, MCH_HeatblastGaussRicochet)] - [CustomComboInfo("一键简单机工循环", "Single button, single target machinist, including buffs and overcap protections.\nConflicts with other single target toggles!\nMade to work optimally with a 2.5 GCD.\nThe use of latency mitigation tools is recommended due to XIV's network handling.", MCH.JobID, 0, "", "")] - MCH_ST_SimpleMode = 8020, + [ParentCombo(MCH_ST_AdvancedMode)] + [CustomComboInfo("Chain Saw option", "Adds Chain Saw to the rotation.", MCH.JobID)] + MCH_ST_Adv_ChainSaw = 8112, - [ParentCombo(MCH_ST_SimpleMode)] - [CustomComboInfo("单体连击打断技能设置", "Uses interrupt during the rotation, if applicable.", MCH.JobID, 0, "", "")] - MCH_ST_Simple_Interrupt = 8021, + [ParentCombo(MCH_ST_AdvancedMode)] + [CustomComboInfo("Head Graze Option", "Uses Head Graze to interrupt during the rotation, where applicable.", MCH.JobID)] + MCH_ST_Adv_Interrupt = 8113, - [ParentCombo(MCH_ST_SimpleMode)] - [CustomComboInfo("简单的机工召唤", "Adds Automaton Queen or Rook Autoturret uses to the feature, based on your current level.\\nAttempts to use Automaton Queen at optimal intervals between :55 to :05 windows.", MCH.JobID, 0, "", "")] - MCH_ST_Simple_Gadget = 8022, + [ParentCombo(MCH_ST_AdvancedMode)] + [CustomComboInfo("Second Wind Option", "Use Second Wind when below the set HP percentage.", MCH.JobID)] + MCH_ST_Adv_SecondWind = 8114, - [ParentCombo(MCH_ST_SimpleMode)] - [CustomComboInfo("简单的组装", "整备将与下面的技能一起使用.\\n在获得钻头之前,它将使用与狙击弹共用.", MCH.JobID, 0, "", "")] - MCH_ST_Simple_Assembling = 8023, + #endregion - [ParentCombo(MCH_ST_SimpleMode)] - [CustomComboInfo("简单的虹吸弹和弹射", "将虹吸弹和弹射加入到循环中.", MCH.JobID, 0, "", "")] - MCH_ST_Simple_GaussRicochet = 8024, + #region Simple AoE - [ParentCombo(MCH_ST_SimpleMode)] - [CustomComboInfo("简单的野火和超荷", "Adds Hypercharge and Wildfire uses to the feature.\\nIt respects the 8 second rule of Drill, Air Anchor and Chain Saw.", MCH.JobID, 0, "", "")] - MCH_ST_Simple_WildCharge = 8025, + [ReplaceSkill(MCH.SpreadShot)] + [ConflictingCombos(MCH_AoE_AdvancedMode)] + [CustomComboInfo("Simple Mode - AoE", "Replaces Spread Shot with a one-button full single target rotation.\nThis is ideal for newcomers to the job.", MCH.JobID)] + MCH_AoE_SimpleMode = 8200, - [ParentCombo(MCH_ST_SimpleMode)] - [CustomComboInfo("枪管加热", "添加 枪管加热 到循环。\\n当热量表<50,且野火已过冷却时间或即将过冷却时间。", MCH.JobID, 0, "", "")] - MCH_ST_Simple_Stabilizer = 8026, + #endregion - [ParentCombo(MCH_AoE_SimpleMode)] - [CustomComboInfo("超荷", "Adds Hypercharge to the AoE.", MCH.JobID, 0, "", "")] - MCH_AoE_Simple_Hypercharge = 8027, + #region Advanced AoE [ReplaceSkill(MCH.SpreadShot)] - [CustomComboInfo("机工简易AoE一键连击", "当机工士等级达到82级以上时,散射技能会升级为霰弹枪。当超荷时,散射和霰弹枪技能会转化为自动弩技能。毒菌冲击技能在CD结束后优先使用", MCH.JobID, 0, "", "")] - MCH_AoE_SimpleMode = 8028, + [ConflictingCombos(MCH_AoE_SimpleMode)] + [CustomComboInfo("Advanced Mode - AoE", "Replaces Spread Shot with a one-button full single target rotation.\nThese features are ideal if you want to customize the rotation.", MCH.JobID)] + MCH_AoE_AdvancedMode = 8300, - [ParentCombo(MCH_ST_Simple_Assembling)] - [CustomComboInfo("钻头", "当可以的时候整备与钻头一起使用.", MCH.JobID, 0, "", "")] - MCH_ST_Simple_Assembling_Drill = 8029, + [ParentCombo(MCH_AoE_AdvancedMode)] + [CustomComboInfo("Reassemble Option", "Adds Reassemble to the rotation.", MCH.JobID)] + MCH_AoE_Adv_Reassemble = 8301, - [ParentCombo(MCH_ST_Simple_Assembling)] - [CustomComboInfo("空气锚", "当可以的时候整备与空气锚一起使用.", MCH.JobID, 0, "", "")] - MCH_ST_Simple_Assembling_AirAnchor = 8030, + [ParentCombo(MCH_AoE_AdvancedMode)] + [CustomComboInfo("Gauss Round / Ricochet Option", "Adds Gauss Round/Ricochet to the rotation.", MCH.JobID)] + MCH_AoE_Adv_GaussRicochet = 8302, - [ParentCombo(MCH_ST_Simple_Assembling)] - [CustomComboInfo("回转飞锯", "当可以的时候整备与回转飞锯一起使用.", MCH.JobID, 0, "", "")] - MCH_ST_Simple_Assembling_ChainSaw = 8031, + [ParentCombo(MCH_AoE_AdvancedMode)] + [CustomComboInfo("Hypercharge Option", "Adds Hypercharge to the rotation.", MCH.JobID)] + MCH_AoE_Adv_Hypercharge = 8303, - [ParentCombo(MCH_ST_Simple_Assembling_Drill)] - [CustomComboInfo("只使用钻头", "仅在 整备 达到最大积蓄次数时才使用 钻头", MCH.JobID, 0, "", "")] - MCH_ST_Simple_Assembling_Drill_MaxCharges = 8032, + [ParentCombo(MCH_AoE_AdvancedMode)] + [CustomComboInfo("Rook Autoturret/Automaton Queen Option", "Adds Rook Autoturret/Automaton Queen to the rotation.", MCH.JobID)] + MCH_AoE_Adv_Queen = 8304, - [ParentCombo(MCH_ST_Simple_Assembling_AirAnchor)] - [CustomComboInfo("只使用空气锚", "仅在 整备 达到最大积蓄次数时才使用 空气锚", MCH.JobID, 0, "", "")] - MCH_ST_Simple_Assembling_AirAnchor_MaxCharges = 8033, + [ParentCombo(MCH_AoE_AdvancedMode)] + [CustomComboInfo("Flamethrower Option", "Adds Flamethrower to the rotation.", MCH.JobID)] + MCH_AoE_Adv_FlameThrower = 8305, - [ParentCombo(MCH_ST_Simple_Assembling_ChainSaw)] - [CustomComboInfo("只使用回转飞锯", "仅在 整备 达到最大积蓄次数时才使用 回转飞锯", MCH.JobID, 0, "", "")] - MCH_ST_Simple_Assembling_ChainSaw_MaxCharges = 8034, + [ParentCombo(MCH_AoE_AdvancedMode)] + [CustomComboInfo("Bioblaster Option", "Adds Bioblaster to the rotation.", MCH.JobID)] + MCH_AoE_Adv_Bioblaster = 8306, - [ParentCombo(MCH_ST_Simple_Stabilizer)] - [CustomComboInfo("在特定时机插入", "仅为野火使用枪管加热.", MCH.JobID, 0, "", "")] - MCH_ST_Simple_Stabilizer_Wildfire_Only = 8035, + [ParentCombo(MCH_AoE_AdvancedMode)] + [CustomComboInfo("Chain Saw Option", "Adds Chain Saw to the the rotation.", MCH.JobID)] + MCH_AoE_Adv_Chainsaw = 8307, - [ParentCombo(MCH_ST_SimpleMode)] - [CustomComboInfo("高延迟模式", "高ping友好模式 \\n它限制了在 超荷 持续时间内使用 虹吸弹/弹射 以防止漂移。\\n使用此功能时预计会有少量 DPS 损失。", MCH.JobID, 0, "", "")] - MCH_ST_Simple_High_Latency_Mode = 8036, + [ParentCombo(MCH_AoE_AdvancedMode)] + [CustomComboInfo("Second Wind Option", "Use Second Wind when below the set HP percentage.", MCH.JobID)] + MCH_AoE_Adv_SecondWind = 8308, - [ParentCombo(MCH_ST_SimpleMode)] - [CustomComboInfo("内丹选项", "当低于此生命值百分比时,使用 内丹", MCH.JobID, 0, "", "")] - MCH_ST_SecondWind = 8037, + #endregion - [ParentCombo(MCH_AoE_SimpleMode)] - [CustomComboInfo("内丹选项", "当低于此生命值百分比时,使用 内丹", MCH.JobID, 0, "", "")] - MCH_AoE_SecondWind = 8038, + #region Variant [Variant] - [VariantParent(MCH_ST_SimpleMode, MCH_AoE_SimpleMode)] - [CustomComboInfo("铁壁 选项", "冷却结束时使用多变铁壁", MCH.JobID)] + [VariantParent(MCH_ST_AdvancedMode, MCH_AoE_AdvancedMode)] + [CustomComboInfo("Rampart Option", "Use Variant Rampart on cooldown.", MCH.JobID)] MCH_Variant_Rampart = 8039, [Variant] - [VariantParent(MCH_ST_SimpleMode, MCH_AoE_SimpleMode)] - [CustomComboInfo("治疗 选项", "在下水道使用治疗当HP低于某个值", MCH.JobID)] + [VariantParent(MCH_ST_AdvancedMode, MCH_AoE_AdvancedMode)] + [CustomComboInfo("Cure Option", "Use Variant Cure when HP is below set threshold.", MCH.JobID)] MCH_Variant_Cure = 8040, - // Last value = 8040 + #endregion + + [ReplaceSkill(MCH.RookAutoturret, MCH.AutomatonQueen)] + [CustomComboInfo("Overdrive Feature", "Replace Rook Autoturret and Automaton Queen with Overdrive while active.", MCH.JobID)] + MCH_Overdrive = 8002, + + [ReplaceSkill(MCH.GaussRound, MCH.Ricochet)] + [CustomComboInfo("Gauss Round/Ricochet Feature", "Replace Gauss Round and Ricochet with one or the other depending on which has more charges.", MCH.JobID)] + MCH_GaussRoundRicochet = 8003, + + [ReplaceSkill(MCH.Drill, MCH.AirAnchor, MCH.HotShot)] + [CustomComboInfo("Drill/Air Anchor (Hot Shot) Feature", "Replace Drill and Air Anchor (Hot Shot) with one or the other (or Chain Saw) depending on which is on cooldown.", MCH.JobID)] + MCH_HotShotDrillChainSaw = 8004, + + [ReplaceSkill(MCH.HeatBlast)] + [CustomComboInfo("Single Button Heat Blast Feature", "Switches Heat Blast to Hypercharge.", MCH.JobID)] + MCH_HeatblastGaussRicochet = 8006, + + [ParentCombo(MCH_HeatblastGaussRicochet)] + [CustomComboInfo("Barrel Feature", "Adds Barrel Stabilizer to Single Button Heat Blast Feature when below 50 Heat Gauge and it is off cooldown", MCH.JobID)] + MCH_HeatblastGaussRicochet_AutoBarrel = 8052, + + [ParentCombo(MCH_HeatblastGaussRicochet)] + [CustomComboInfo("Wildfire Option", "Adds Wildfire to the Single Button Heat Blast Feature if Wildfire is off cooldown and you have enough Heat Gauge for Hypercharge then Hypercharge will be replaced with Wildfire.\nAlso weaves Ricochet/Gauss Round on Heat Blast when necessary.", MCH.JobID)] + MCH_ST_Wildfire = 8015, + + [ReplaceSkill(MCH.AutoCrossbow)] + [CustomComboInfo("Single Button Auto Crossbow Feature", "Switches Auto Crossbow to Hypercharge and weaves Gauss Round/Ricochet.", MCH.JobID)] + MCH_AutoCrossbowGaussRicochet = 8018, + + [ParentCombo(MCH_AutoCrossbowGaussRicochet)] + [CustomComboInfo("Barrel Feature", "Adds Barrel Stabilizer to Single Button Auto Crossbow Feature when below 50 Heat Gauge and it is off cooldown", MCH.JobID)] + MCH_AutoCrossbowGaussRicochet_AutoBarrel = 8019, + + [ReplaceSkill(MCH.Dismantle)] + [CustomComboInfo("Physical Ranged DPS: Double Dismantle Protection", "Prevents the use of Dismantle when target already has the effect by replacing it with Fire.", MCH.JobID)] + All_PRanged_Dismantle = 8042, + + [ReplaceSkill(MCH.Dismantle)] + [CustomComboInfo("Dismantle - Tactician", "Swap dismantle with tactician when dismantle is on cooldown.", MCH.JobID)] + MCH_DismantleTactician = 8058, + + // Last value = 8058 #endregion + #region MONK [ReplaceSkill(MNK.ArmOfTheDestroyer)] @@ -2194,9 +2295,9 @@ public enum CustomComboPreset [ReplaceSkill(PLD.深奥之灵SpiritsWithin, PLD.偿赎剑Expiacion)] [CustomComboInfo("深奥之灵/偿赎剑/厄运流转替换选项", "当厄运流转冷却用(深奥之灵/偿赎剑)代替(好像有bug).", PLD.JobID)] PLD_SpiritsWithin = 11025, - - - + + + [Variant] [VariantParent(PLD_ST_SimpleMode, PLD_ST_AdvancedMode, PLD_AoE_SimpleMode, PLD_AoE_AdvancedMode)] @@ -2223,6 +2324,7 @@ public enum CustomComboPreset ReaperPositionalConfig = 12000, #region Single Target (Slice) Combo Section + [ReplaceSkill(RPR.Slice)] [CustomComboInfo("切割连击", "将切割替换为切割连击。如果启用了所有子选项将变为一键循环(Advanced 镰刀)", RPR.JobID, 0, "", "")] RPR_ST_SliceCombo = 12001, @@ -2299,9 +2401,11 @@ public enum CustomComboPreset [ParentCombo(RPR_ST_SliceCombo)] [CustomComboInfo("90级起手选项", "将90级起手加入主连击,在下面选用哪个起手.", RPR.JobID, -1, "", "")] RPR_ST_SliceCombo_Opener = 12018, + #endregion #region AoE (Scythe) Combo Section + [ReplaceSkill(RPR.SpinningScythe)] [CustomComboInfo("旋转钐割连击", "旋转钐割加入循环。\\n如果启用所有子选项则变为一键循环(简单AOE)", RPR.JobID, 0, "", "")] RPR_AoE_ScytheCombo = 12020, @@ -2345,9 +2449,11 @@ public enum CustomComboPreset [ParentCombo(RPR_AoE_ScytheCombo)] [CustomComboInfo("暴食与束缚挥割设置", "当目标有死亡烙印Debuff并且灵魂小于50时将暴食与束缚挥割加入AOE连击。", RPR.JobID, 0, "", "")] RPR_AoE_ScytheCombo_GluttonyGrimSwathe = 12029, + #endregion #region Blood Stalk/Grim Swathe Combo Section + [ReplaceSkill(RPR.BloodStalk, RPR.GrimSwathe)] [CustomComboInfo("暴食替换隐匿挥割/束缚挥割功能", "当暴食可用时将其替换到隐匿挥割/束缚挥割上。", RPR.JobID, 0, "", "")] RPR_GluttonyBloodSwathe = 12041, @@ -2359,9 +2465,11 @@ public enum CustomComboPreset [ParentCombo(RPR_GluttonyBloodSwathe)] [CustomComboInfo("夜游魂衣连击设置", "Adds Enshroud combo (Void/Cross Reaping, Communio, and Lemure's Slice) on Blood Stalk and Grim Swathe.", RPR.JobID, 0, "", "")] RPR_GluttonyBloodSwathe_Enshroud = 12042, + #endregion #region Miscellaneous + [ReplaceSkill(RPR.ArcaneCircle)] [CustomComboInfo("神秘环大丰收特性。", "当你拥有死亡祭品层数时,使用大丰收替换神秘环。", RPR.JobID, 0, "", "")] RPR_ArcaneCirclePlentifulHarvest = 12051, @@ -2431,6 +2539,7 @@ public enum CustomComboPreset [VariantParent(RPR_ST_SliceCombo, RPR_AoE_ScytheCombo)] [CustomComboInfo("铁壁 选项", "冷却结束时使用多变铁壁", RPR.JobID)] RPR_Variant_Rampart = 12068, + #endregion // Last value = 12068 @@ -2447,6 +2556,7 @@ New features should be added to the appropriate sections. The three digets after RDM.JobID can be used to reorder items in the list */ #region Single Target DPS + [ReplaceSkill(RDM.Jolt, RDM.Jolt2)] [CustomComboInfo("赤魔简单模式 - 单目标", "启用以下所有选项.", RDM.JobID, 1)] RDM_ST_DPS = 13000, @@ -2506,9 +2616,11 @@ The three digets after RDM.JobID can be used to reorder items in the list [ParentCombo(RDM_ST_DPS)] [CustomComboInfo("在循环使用 醒梦", "当MP小于指定值时,使用【醒梦】", RDM.JobID, 610)] RDM_ST_Lucid = 13610, + #endregion #region AoE DPS + [ReplaceSkill(RDM.Scatter, RDM.Impact)] [CustomComboInfo("赤魔简单模式 - AOE", "启用以下所有选项", RDM.JobID, 310)] RDM_AoE_DPS = 13310, @@ -2553,16 +2665,20 @@ The three digets after RDM.JobID can be used to reorder items in the list [ParentCombo(RDM_AoE_DPS)] [CustomComboInfo("在循环使用 醒梦", "当MP小于指定值时,使用【醒梦】", RDM.JobID, 610)] RDM_AoE_Lucid = 13425, + #endregion #region QoL + [ReplaceSkill(All.Swiftcast)] [ConflictingCombos(ALL_Caster_Raise)] [CustomComboInfo("赤复活 设置", "当存在连续咏唱状态或使用即刻咏唱后,将即刻咏唱替换为赤复活.", RDM.JobID, 620)] RDM_Raise = 13620, + #endregion #region Sections 8 to 9 - Miscellaneous + [ReplaceSkill(RDM.Displacement)] [CustomComboInfo("移转与短兵相接替换 设置", "当距离过远时替换移转为短兵相接.", RDM.JobID, 810)] RDM_CorpsDisplacement = 13810, @@ -2593,6 +2709,7 @@ The three digets after RDM.JobID can be used to reorder items in the list [Variant] [CustomComboInfo("Cure on Vercure Option", "Replaces Vercure with Variant Cure.", RDM.JobID)] RDM_Variant_Cure2 = 13833, + #endregion #endregion @@ -2606,6 +2723,7 @@ New features should be added to the appropriate sections. */ #region Single Target DPS Feature + [ReplaceSkill(SGE.Dosis, SGE.Dosis2, SGE.Dosis3)] [CustomComboInfo("整合单体输出技能", "注药I/II/III 各种选项", SGE.JobID, 100, "", "")] SGE_ST_DPS = 14100, @@ -2634,9 +2752,11 @@ New features should be added to the appropriate sections. [ParentCombo(SGE_ST_DPS)] [CustomComboInfo("根素选项", "当蛇胆少于指定值时插入 根素。", SGE.JobID, 121, "", "")] SGE_ST_DPS_Rhizo = 14160, + #endregion #region AoE DPS Feature + [ReplaceSkill(SGE.Phlegma, SGE.Phlegma2, SGE.Phlegma3)] [CustomComboInfo("AoE DPS连击", "", SGE.JobID, 200, "", "")] SGE_AoE_DPS = 14200, @@ -2664,9 +2784,11 @@ New features should be added to the appropriate sections. [ParentCombo(SGE_AoE_DPS)] [CustomComboInfo("根素选项", "当蛇胆少于指定值时插入 根素。", SGE.JobID, 121, "", "")] SGE_AoE_DPS_Rhizo = 14260, + #endregion #region Diagnosis Simple Single Target Heal + [ReplaceSkill(SGE.Diagnosis)] [CustomComboInfo("单目标治疗功能", "支持软目标。\\n以下选项按优先顺序排列。", SGE.JobID, 300, "", "")] SGE_ST_Heal = 14300, @@ -2719,9 +2841,11 @@ New features should be added to the appropriate sections. [ParentCombo(SGE_ST_Heal)] [CustomComboInfo("灵橡清汁选项", "插入灵橡清汁.", SGE.JobID, 302, "", "")] SGE_ST_Heal_Druochole = 14400, + #endregion #region Sage Simple AoE Heal + [ReplaceSkill(SGE.Prognosis)] [CustomComboInfo("群体治疗技能一键整合至预后", "按照个人喜好制定群体治疗技能一键整合方式.", SGE.JobID, 500, "", "")] SGE_AoE_Heal = 14500, @@ -2762,9 +2886,11 @@ New features should be added to the appropriate sections. [ParentCombo(SGE_AoE_Heal)] [CustomComboInfo("根素选项", "当没有蛇胆时插入根素.", SGE.JobID, 501, "", "")] SGE_AoE_Heal_Rhizomata = 14580, + #endregion #region Misc Healing + [ReplaceSkill(SGE.Taurochole, SGE.Druochole, SGE.Ixochole, SGE.Kerachole)] [CustomComboInfo("根素 设置", "蛇胆不满时插入根素", SGE.JobID, 600, "", "")] SGE_Rhizo = 14600, @@ -2776,9 +2902,11 @@ New features should be added to the appropriate sections. [ReplaceSkill(SGE.Pneuma)] [CustomComboInfo("将活化整合至魂灵风息 设置", "魂灵风息变为活化,使用后变回魂灵风息.", SGE.JobID, 701, "", "")] //Temporary to keep the order SGE_ZoePneuma = 141000, + #endregion #region Utility + [ReplaceSkill(All.Swiftcast)] [ConflictingCombos(ALL_Healer_Raise)] [CustomComboInfo("即刻复活 设置", "整合即可咏唱至复苏", SGE.JobID, 800, "", "")] @@ -2801,6 +2929,7 @@ New features should be added to the appropriate sections. [VariantParent(SGE_ST_DPS, SGE_AoE_DPS)] [CustomComboInfo("铁壁 选项", "冷却结束时使用多变铁壁", SGE.JobID)] SGE_DPS_Variant_Rampart = 14930, + #endregion // Last value = 14930 @@ -2810,6 +2939,7 @@ New features should be added to the appropriate sections. #region SAMURAI #region Overcap Features + [ReplaceSkill(SAM.Kasha, SAM.Gekko, SAM.Yukikaze)] [CustomComboInfo("武士单体技能替代选项", "当剑气达到或超过所选数量时,将必杀剑·震天添加到单体连击中。", SAM.JobID, 0, "", "")] SAM_ST_Overcap = 15001, @@ -2817,9 +2947,11 @@ New features should be added to the appropriate sections. [ReplaceSkill(SAM.Mangetsu, SAM.Oka)] [CustomComboInfo("武士AOE技能替代选项", "当剑气达到或超过所选数量时,将必杀剑·九天添加到主要AOE连击中。", SAM.JobID, 0, "", "")] SAM_AoE_Overcap = 15002, + #endregion #region Main Combo (Gekko) Features + [ReplaceSkill(SAM.Gekko)] [CustomComboInfo("月光连", "替换 月光 技能为它的连击链。\\n如果下面的全部子选项都有相应选择会形成一个一键连击循环 (高级武士)", SAM.JobID, 0, "", "")] SAM_ST_GekkoCombo = 15003, @@ -2847,6 +2979,7 @@ New features should be added to the appropriate sections. SAM_ST_GekkoCombo_FillerCombos = 15008, #region CDs on Main Combo + [ParentCombo(SAM_ST_GekkoCombo)] [CustomComboInfo("主连击CD整合", "将CD技能加入循环", SAM.JobID, 0, "", "")] SAM_ST_GekkoCombo_CDs = 15099, @@ -2860,6 +2993,7 @@ New features should be added to the appropriate sections. SAM_ST_GekkoCombo_CDs_Iaijutsu = 15010, #region Ogi Namikiri on Main Combo + [ParentCombo(SAM_ST_GekkoCombo_CDs)] [CustomComboInfo("将奥义斩浪加入循环", "在未移动和技能冷却完毕的情况下,将奥义斩浪和回返斩浪加入循环。", SAM.JobID, 0, "", "")] SAM_ST_GekkoCombo_CDs_OgiNamikiri = 15011, @@ -2867,6 +3001,7 @@ New features should be added to the appropriate sections. [ParentCombo(SAM_ST_GekkoCombo_CDs_OgiNamikiri)] [CustomComboInfo("奥义斩浪爆发选项", "Saves Ogi Namikiri for even minute burst windows.\\nIf you don't activate the opener or die, Ogi Namikiri will instead be used on CD.", SAM.JobID, 0, "", "")] SAM_ST_GekkoCombo_CDs_OgiNamikiri_Burst = 15012, + #endregion [ParentCombo(SAM_ST_GekkoCombo_CDs)] @@ -2874,9 +3009,11 @@ New features should be added to the appropriate sections. SAM_ST_GekkoCombo_CDs_MeikyoShisui = 15013, #region Meikyo Shisui on Main Combo + [ParentCombo(SAM_ST_GekkoCombo_CDs_MeikyoShisui)] [CustomComboInfo("明镜止水爆发选项", "Saves Meikyo Shisui for burst windows.\\nIf you don't activate the opener or die, Meikyo Shisui will instead be used on CD.", SAM.JobID, 0, "", "")] SAM_ST_GekkoCombo_CDs_MeikyoShisui_Burst = 15014, + #endregion [ParentCombo(SAM_ST_GekkoCombo_CDs)] @@ -2895,11 +3032,13 @@ New features should be added to the appropriate sections. [ParentCombo(SAM_ST_Overcap)] [CustomComboInfo("震天 选项", "当目标血量小于此百分比时,只要有25点剑气就将震天加入循环.", SAM.JobID, 0, "", "")] SAM_ST_Execute = 15046, + #endregion #endregion #region Yukikaze/Kasha Combos + [ReplaceSkill(SAM.Yukikaze)] [CustomComboInfo("雪风连", "替换雪风为相应连击。", SAM.JobID, 0, "", "")] SAM_ST_YukikazeCombo = 15018, @@ -2907,9 +3046,11 @@ New features should be added to the appropriate sections. [ReplaceSkill(SAM.Kasha)] [CustomComboInfo("花车连", "替换花车为相应连击。", SAM.JobID, 0, "", "")] SAM_ST_KashaCombo = 15019, + #endregion #region AoE Combos + [ReplaceSkill(SAM.Mangetsu)] [CustomComboInfo("满月连", "用满月连击的组合代替满月。\\n如果所有子选项都被选中,将变成一个完整的一键AOE循环(高级武士)。", SAM.JobID, 0, "", "")] SAM_AoE_MangetsuCombo = 15020, @@ -2956,15 +3097,19 @@ New features should be added to the appropriate sections. [ConflictingCombos(SAM_AoE_MangetsuCombo_Oka)] [CustomComboInfo("樱花双目标功能", "Adds the Yukikaze combo, Mangetsu combo, Senei, Shinten, and Shoha to Oka combo.\\nUsed for two targets only and when Lv86 and above.", SAM.JobID, 0, "", "")] SAM_AoE_OkaCombo_TwoTarget = 150261, + #endregion #region Cooldown Features + [ReplaceSkill(SAM.MeikyoShisui)] [CustomComboInfo("明镜止水", "Replace Meikyo Shisui with Jinpu, Shifu, and Yukikaze depending on what is needed.", SAM.JobID, 0, "", "")] SAM_JinpuShifu = 15027, + #endregion #region Iaijutsu Features + [ReplaceSkill(SAM.Iaijutsu)] [CustomComboInfo("居合术功能", "居合术整合", SAM.JobID, 0, "", "")] SAM_Iaijutsu = 15028, @@ -2980,9 +3125,11 @@ New features should be added to the appropriate sections. [ParentCombo(SAM_Iaijutsu)] [CustomComboInfo("使用奥义斩浪代替居合术", "处于奥义斩浪预备的时候,使用回奥义斩浪和返斩浪代替居合术。", SAM.JobID, 0, "", "")] SAM_Iaijutsu_OgiNamikiri = 15031, + #endregion #region Shinten Features + [ReplaceSkill(SAM.Shinten)] [CustomComboInfo("照破 替换 必杀剑·震天", "当剑压积累到3档时,替换必杀剑·震天为照破。", SAM.JobID, 0, "", "")] SAM_Shinten_Shoha = 15032, @@ -2991,9 +3138,11 @@ New features should be added to the appropriate sections. [ParentCombo(SAM_Shinten_Shoha)] [CustomComboInfo("必杀剑·闪影 替换 必杀剑·震天", "当必杀剑·闪影冷却结束后,替换必杀剑·震天为必杀剑·闪影。", SAM.JobID, 0, "", "")] SAM_Shinten_Shoha_Senei = 15033, + #endregion #region Kyuten Features + [ReplaceSkill(SAM.Kyuten)] [CustomComboInfo("无名照破 替换 必杀剑·九天", "当剑压积累到3档时,替换必杀剑·九天为无名照破。", SAM.JobID, 0, "", "")] SAM_Kyuten_Shoha2 = 15034, @@ -3002,9 +3151,11 @@ New features should be added to the appropriate sections. [ParentCombo(SAM_Kyuten_Shoha2)] [CustomComboInfo("必杀剑·红莲 替换 必杀剑·九天", "当必杀剑·红莲冷却结束后,替换必杀剑·九天为必杀剑·红莲。", SAM.JobID, 0, "", "")] SAM_Kyuten_Shoha2_Guren = 15035, + #endregion #region Other + [ConflictingCombos(SAM_ST_GekkoCombo_Opener, SAM_ST_GekkoCombo_FillerCombos)] [ReplaceSkill(SAM.Gyoten)] [CustomComboInfo("必杀剑·晓天 特性", "根据与目标的距离自动将必杀剑·晓天变为必杀剑·夜天/晓天。", SAM.JobID, 0, "", "")] @@ -3035,6 +3186,7 @@ New features should be added to the appropriate sections. [VariantParent(SAM_ST_GekkoCombo, SAM_AoE_MangetsuCombo)] [CustomComboInfo("铁壁 选项", "冷却结束时使用多变铁壁", SAM.JobID)] SAM_Variant_Rampart = 15048, + #endregion // Last value = 15048 @@ -3050,6 +3202,7 @@ New features should be added to the appropriate sections. */ #region DPS + [ReplaceSkill(SCH.Ruin, SCH.Broil, SCH.Broil2, SCH.Broil3, SCH.Broil4, SCH.Bio, SCH.Bio2, SCH.Biolysis)] [CustomComboInfo("整合单体输出技能", "Replaces Ruin I / Broils with options below", SCH.JobID, 1)] SCH_DPS = 16100, @@ -3102,6 +3255,7 @@ New features should be added to the appropriate sections. #endregion #region Healing + [ReplaceSkill(SCH.FeyBlessing)] [CustomComboInfo("异想的祥光 替换 慰藉", "炽天使同行状态下,将 异想的祥光 变为 慰藉.", SCH.JobID, 9)] SCH_Consolation = 16210, @@ -3168,10 +3322,10 @@ New features should be added to the appropriate sections. [CustomComboInfo("生命活性法 选项", "当目标生命值低于指定值时插入 生命活性法:", SCH.JobID, 5)] SCH_ST_Heal_Lustrate = 16264, - #endregion #region Utilities + [ReplaceSkill(SCH.EnergyDrain, SCH.Lustrate, SCH.SacredSoil, SCH.Indomitability, SCH.Excogitation)] [CustomComboInfo("以太超流", "Change Aetherflow-using skills to Aetherflow, Recitation, or Dissipation as selected.", SCH.JobID, 9)] SCH_Aetherflow = 16300, @@ -3197,9 +3351,9 @@ New features should be added to the appropriate sections. [CustomComboInfo("展开战术", "队友没有 鼓舞 状态时,将 展开战术 替换为 鼓舞激励之策。", SCH.JobID, 12)] SCH_DeploymentTactics = 16600, - [ParentCombo(SCH_DeploymentTactics)] - [CustomComboInfo("秘策", "当 秘策 冷却完毕且队友没有鼓舞状态时将 鼓舞激励之策 替换为 秘策。", SCH.JobID)] - SCH_DeploymentTactics_Recitation = 16610, + [ParentCombo(SCH_DeploymentTactics)] + [CustomComboInfo("秘策", "当 秘策 冷却完毕且队友没有鼓舞状态时将 鼓舞激励之策 替换为 秘策。", SCH.JobID)] + SCH_DeploymentTactics_Recitation = 16610, [Variant] [VariantParent(SCH_DPS_Bio, SCH_AoE)] @@ -3485,8 +3639,7 @@ New features should be added to the appropriate sections. WHM_ST_MainCombo = 19099, [ParentCombo(WHM_ST_MainCombo)] - [CustomComboInfo("开场技能整合至闪灼 设置", "将所有的能力技延迟到第三发闪灼释放之后,仅当闪灼可用时生效" + - "\\nOnly works with Glare III.", WHM.JobID, 11, "", "")] + [CustomComboInfo("开场技能整合至闪灼 设置", "将所有的能力技延迟到第三发闪灼释放之后,仅当闪灼可用时生效" + "\\nOnly works with Glare III.", WHM.JobID, 11, "", "")] WHM_ST_MainCombo_NoSwiftOpener = 19023, [ParentCombo(WHM_ST_MainCombo)] @@ -3589,8 +3742,7 @@ New features should be added to the appropriate sections. WHM_Afflatus_oGCDHeals_Benison = 19022, [ParentCombo(WHM_Afflatus_oGCDHeals)] - [CustomComboInfo("神名与神祝祷排序使用 设置", "Displays oGCD Heals/Shields over Afflatus" + - "\\n(only applies to GCD options for Tetragrammaton and Divine Benison).", WHM.JobID, 57, "", "")] + [CustomComboInfo("神名与神祝祷排序使用 设置", "Displays oGCD Heals/Shields over Afflatus" + "\\n(only applies to GCD options for Tetragrammaton and Divine Benison).", WHM.JobID, 57, "", "")] WHM_Afflatus_oGCDHeals_Prio = 19024, #endregion @@ -3714,11 +3866,11 @@ New features should be added to the appropriate sections. #endregion - #endregion #region PvP Combos #region PvP GLOBAL FEATURES + [SecretCustomCombo] [CustomComboInfo("Emergency Heals Feature", "Uses Recuperate when your HP is under the set threshold and you have sufficient MP.", ADV.JobID, 1)] PvP_EmergencyHeals = 1100000, @@ -3741,6 +3893,7 @@ New features should be added to the appropriate sections. #endregion #region ASTROLOGIAN + [SecretCustomCombo] [CustomComboInfo("爆发模式", "Turns Fall Malefic into an all-in-one damage button.", AST.JobID)] ASTPvP_Burst = 111000, @@ -3758,9 +3911,11 @@ New features should be added to the appropriate sections. ASTPvP_Heal = 111003, // Last value = 111003 + #endregion #region BLACK MAGE + [SecretCustomCombo] [CustomComboInfo("爆发模式", "把火炎和冰结改为伤害combo按键", BLM.JobID)] BLMPvP_BurstMode = 112000, @@ -3780,6 +3935,7 @@ New features should be added to the appropriate sections. #endregion #region BARD + [SecretCustomCombo] [CustomComboInfo("爆发模式", "把强劲射击改为伤害combo按键", BRDPvP.JobID)] BRDPvP_BurstMode = 113000, @@ -3789,6 +3945,7 @@ New features should be added to the appropriate sections. #endregion #region DANCER + [SecretCustomCombo] [CustomComboInfo("爆发模式", "把喷泉连改成伤害combo按键", DNC.JobID)] DNCPvP_BurstMode = 114000, @@ -3808,6 +3965,7 @@ New features should be added to the appropriate sections. #endregion #region DARK KNIGHT + [SecretCustomCombo] [CustomComboInfo("爆发模式", "Turns 噬魂斩连击 into an all-in-one damage button.", DRK.JobID)] DRKPvP_Burst = 115000, @@ -3827,6 +3985,7 @@ New features should be added to the appropriate sections. #endregion #region DRAGOON + [SecretCustomCombo] [CustomComboInfo("爆发模式", "Using Elusive Jump turns Wheeling Thrust Combo into all-in-one burst damage button.", DRG.JobID)] DRGPvP_Burst = 116000, @@ -3910,6 +4069,7 @@ New features should be added to the appropriate sections. #endregion #region MACHINIST + [SecretCustomCombo] [CustomComboInfo("爆发模式", "把蓄力冲击改为伤害combo按键", MCHPvP.JobID)] MCHPvP_BurstMode = 118000, @@ -3929,6 +4089,7 @@ New features should be added to the appropriate sections. #endregion #region MONK + [SecretCustomCombo] [CustomComboInfo("爆发模式", "Turns Phantom Rush Combo into an all-in-one damage button.", MNK.JobID)] MNKPvP_Burst = 119000, @@ -3948,6 +4109,7 @@ New features should be added to the appropriate sections. #endregion #region NINJA + [SecretCustomCombo] [CustomComboInfo("爆发模式", "把旋风刃连击改为伤害combo按键", NINPvP.JobID)] NINPvP_ST_BurstMode = 120000, @@ -3971,6 +4133,7 @@ New features should be added to the appropriate sections. #endregion #region PALADIN + [SecretCustomCombo] [CustomComboInfo("爆发模式", "Turns 王权剑 Combo into an all-in-one damage button.", PLD.JobID)] PLDPvP_Burst = 121000, @@ -3988,6 +4151,7 @@ New features should be added to the appropriate sections. #endregion #region REAPER + [SecretCustomCombo] [CustomComboInfo("爆发模式", "把切割改为伤害combo按键 \\n添加灵魂切割到主连击", RPR.JobID)] RPRPvP_Burst = 122000, @@ -4013,6 +4177,7 @@ New features should be added to the appropriate sections. RPRPvP_Burst_Enshrouded = 122004, #region RPR Enshrouded Option + [SecretCustomCombo] [ParentCombo(RPRPvP_Burst_Enshrouded)] [CustomComboInfo("夜游魂斩首令选项", "在夜游魂衣爆发期间,如果有机会,将死亡授权书添加到主要组合中。", RPR.JobID)] @@ -4022,6 +4187,7 @@ New features should be added to the appropriate sections. [ParentCombo(RPRPvP_Burst_Enshrouded)] [CustomComboInfo("团契设置", "当你有一个夜游魂衣剩余时,将团契加入主组合。", RPR.JobID)] RPRPvP_Burst_Enshrouded_Communio = 122006, + #endregion [SecretCustomCombo] @@ -4039,6 +4205,7 @@ New features should be added to the appropriate sections. #endregion #region RED MAGE + [SecretCustomCombo] [CustomComboInfo("爆发模式", "赤飞石/赤火炎改为伤害combo按键", RDMPvP.JobID)] RDMPvP_BurstMode = 123000, @@ -4054,6 +4221,7 @@ New features should be added to the appropriate sections. #endregion #region SAGE + [SecretCustomCombo] [CustomComboInfo("爆发模式", "把注药 III 改成伤害combo按键", SGE.JobID)] SGEPvP_BurstMode = 124000, @@ -4069,6 +4237,7 @@ New features should be added to the appropriate sections. #region SAMURAI #region Burst Mode + [SecretCustomCombo] [CustomComboInfo("爆发模式", "Adds Meikyo Shisui, Midare: Setsugekka, Ogi Namikiri, Kaeshi: Namikiri and Soten to Meikyo Shisui.\\nWill only cast Midare: Setsugekka and Ogi Namikiri when you're not moving.\\nWill not use if target is guarding.", SAM.JobID)] SAMPvP_BurstMode = 125000, @@ -4087,9 +4256,11 @@ New features should be added to the appropriate sections. [ParentCombo(SAMPvP_BurstMode)] [CustomComboInfo("Burst Mode on 花车连 Option", "Adds 爆发模式 to 花车连 instead.", SAM.JobID, 1)] SAMPvP_BurstMode_MainCombo = 125003, + #endregion #region Kasha Features + [SecretCustomCombo] [CustomComboInfo("Kasha Combo Features", "花车连的功能集合", SAM.JobID)] SAMPvP_KashaFeatures = 125004, @@ -4103,6 +4274,7 @@ New features should be added to the appropriate sections. [ParentCombo(SAMPvP_KashaFeatures)] [CustomComboInfo("AoE Melee Protection Option", "在超出近战范围时,将AOE连击变成不可用状态", SAM.JobID)] SAMPvP_KashaFeatures_AoEMeleeProtection = 125006, + #endregion // Last value = 125006 @@ -4110,6 +4282,7 @@ New features should be added to the appropriate sections. #endregion #region SCHOLAR + [SecretCustomCombo] [CustomComboInfo("爆发模式", "Turns Broil IV into all-in-one damage button.", SCH.JobID)] SCHPvP_Burst = 126000, @@ -4131,6 +4304,7 @@ New features should be added to the appropriate sections. #endregion #region SUMMONER + [SecretCustomCombo] [CustomComboInfo("爆发模式", "将毁灭三号变成一个多合一的伤害按钮。只有在近战范围内才会使用深红旋风。", SMNPvP.JobID)] SMNPvP_BurstMode = 127000, @@ -4145,6 +4319,7 @@ New features should be added to the appropriate sections. #endregion #region WARRIOR + [SecretCustomCombo] [CustomComboInfo("爆发模式", "把重劈改为伤害combo按键", WARPvP.JobID)] WARPvP_BurstMode = 128000, @@ -4164,6 +4339,7 @@ New features should be added to the appropriate sections. #endregion #region WHITE MAGE + [SecretCustomCombo] [CustomComboInfo("爆发模式", "Turns Glare into an all-in-one damage button.", WHM.JobID)] WHMPvP_Burst = 129000, diff --git a/XIVSlothCombo/Combos/JobHelpers/BLM.cs b/XIVSlothCombo/Combos/JobHelpers/BLM.cs new file mode 100644 index 000000000..e9816a520 --- /dev/null +++ b/XIVSlothCombo/Combos/JobHelpers/BLM.cs @@ -0,0 +1,451 @@ +using Dalamud.Game.ClientState.JobGauge.Types; +using System; +using System.Linq; +using System.Security.Cryptography; +using XIVSlothCombo.Combos.JobHelpers.Enums; +using XIVSlothCombo.Combos.PvE; +using XIVSlothCombo.CustomComboNS.Functions; +using XIVSlothCombo.Data; + +namespace XIVSlothCombo.Combos.JobHelpers +{ + internal class BLMOpenerLogic : PvE.BLM + { + private static bool HasCooldowns() + { + if (CustomComboFunctions.GetRemainingCharges(Triplecast) < 2) + return false; + if (!CustomComboFunctions.ActionReady(Manafont)) + return false; + if (!CustomComboFunctions.ActionReady(All.Swiftcast)) + return false; + if (!CustomComboFunctions.ActionReady(Amplifier)) + return false; + if (!CustomComboFunctions.ActionReady(All.LucidDreaming) && + Config.BLM_Advanced_OpenerSelection == 1) + return false; + if (!CustomComboFunctions.ActionReady(LeyLines)) + return false; + + return true; + } + + public static bool HasPrePullCooldowns() + { + if (CustomComboFunctions.GetRemainingCharges(Sharpcast) < 2) + return false; + + if (CustomComboFunctions.LocalPlayer.CurrentMp < 10000) + return false; + + return true; + } + + private static uint OpenerLevel => 90; + + public uint PrePullStep = 0; + + public uint OpenerStep = 1; + + public static bool LevelChecked => CustomComboFunctions.LocalPlayer.Level >= OpenerLevel; + + private static bool CanOpener => HasCooldowns() && HasPrePullCooldowns() && LevelChecked; + + private OpenerState currentState = OpenerState.PrePull; + + public OpenerState CurrentState + { + get + { + return currentState; + } + set + { + if (value != currentState) + { + if (value == OpenerState.PrePull) + { + // Svc.Log.Debug($"Entered PrePull Opener"); + } + if (value == OpenerState.InOpener) OpenerStep = 1; + if (value == OpenerState.OpenerFinished || value == OpenerState.FailedOpener) + { + if (value == OpenerState.FailedOpener) + { + } + // Svc.Log.Information($"Opener Failed at step {OpenerStep}"); + + ResetOpener(); + } + if (value == OpenerState.OpenerFinished) + { + } + // Svc.Log.Information("Opener Finished"); + + currentState = value; + } + } + } + + private bool DoPrePullSteps(ref uint actionID) + { + if (!LevelChecked) return false; + + if (CanOpener && PrePullStep == 0) + { + PrePullStep = 1; + } + + if (!HasCooldowns()) + { + PrePullStep = 0; + } + + if (CurrentState == OpenerState.PrePull && PrePullStep > 0) + { + if (CustomComboFunctions.HasEffect(Buffs.Sharpcast) && PrePullStep == 1) PrePullStep++; + else if (PrePullStep == 1) actionID = Sharpcast; + + if (CustomComboFunctions.LocalPlayer.CastActionId == Fire3 && PrePullStep == 2) CurrentState = OpenerState.InOpener; + else if (PrePullStep == 2) actionID = Fire3; + + if (PrePullStep == 2 && !CustomComboFunctions.HasEffect(BLM.Buffs.Sharpcast)) + CurrentState = OpenerState.FailedOpener; + + if (PrePullStep > 1 && CustomComboFunctions.GetResourceCost(actionID) > CustomComboFunctions.LocalPlayer.CurrentMp && ActionWatching.TimeSinceLastAction.TotalSeconds >= 2) + CurrentState = OpenerState.FailedOpener; + + if (ActionWatching.CombatActions.Count > 2 && CustomComboFunctions.InCombat()) + CurrentState = OpenerState.FailedOpener; + + return true; + } + + PrePullStep = 0; + return false; + } + + private bool DoOpener(ref uint actionID) + { + if (!LevelChecked) return false; + + if (currentState == OpenerState.InOpener) + { + if (Config.BLM_Advanced_OpenerSelection == 0) + { + if (CustomComboFunctions.LocalPlayer.CastActionId == Thunder3 && OpenerStep == 1) OpenerStep++; + else if (OpenerStep == 1) actionID = Thunder3; + + if (CustomComboFunctions.WasLastAction(Triplecast) && OpenerStep == 2) OpenerStep++; + else if (OpenerStep == 2) actionID = Triplecast; + + if (CustomComboFunctions.WasLastAction(Fire4) && CustomComboFunctions.GetBuffStacks(Buffs.Triplecast) == 2 && OpenerStep == 3) OpenerStep++; + else if (OpenerStep == 3) actionID = Fire4; + + if (CustomComboFunctions.WasLastAction(Fire4) && CustomComboFunctions.GetBuffStacks(Buffs.Triplecast) == 1 && OpenerStep == 4) OpenerStep++; + else if (OpenerStep == 4) actionID = Fire4; + + if (CustomComboFunctions.WasLastAction(Amplifier) && OpenerStep == 5) OpenerStep++; + else if (OpenerStep == 5) actionID = Amplifier; + + if (CustomComboFunctions.WasLastAction(LeyLines) && OpenerStep == 6) OpenerStep++; + else if (OpenerStep == 6) actionID = LeyLines; + + if (CustomComboFunctions.WasLastAction(Fire4) && CustomComboFunctions.GetBuffStacks(Buffs.Triplecast) == 0 && OpenerStep == 7) OpenerStep++; + else if (OpenerStep == 7) actionID = Fire4; + + if (CustomComboFunctions.WasLastAction(All.Swiftcast) && OpenerStep == 8) OpenerStep++; + else if (OpenerStep == 8) actionID = All.Swiftcast; + + if (CustomComboFunctions.WasLastAction(Fire4) && OpenerStep == 9) OpenerStep++; + else if (OpenerStep == 9) actionID = Fire4; + + if (CustomComboFunctions.WasLastAction(Triplecast) && OpenerStep == 10) OpenerStep++; + else if (OpenerStep == 10) actionID = Triplecast; + + if (CustomComboFunctions.WasLastAction(Despair) && OpenerStep == 11) OpenerStep++; + else if (OpenerStep == 11) actionID = Despair; + + if (CustomComboFunctions.WasLastAction(Manafont) && OpenerStep == 12) OpenerStep++; + else if (OpenerStep == 12) actionID = Manafont; + + if (CustomComboFunctions.WasLastAction(Fire4) && OpenerStep == 13) OpenerStep++; + else if (OpenerStep == 13) actionID = Fire4; + + if (CustomComboFunctions.WasLastAction(Sharpcast) && OpenerStep == 14) OpenerStep++; + else if (OpenerStep == 14) actionID = Sharpcast; + + if (CustomComboFunctions.WasLastAction(Despair) && OpenerStep == 15) OpenerStep++; + else if (OpenerStep == 15) actionID = Despair; + + if (CustomComboFunctions.WasLastAction(Blizzard3) && OpenerStep == 16) OpenerStep++; + else if (OpenerStep == 16) actionID = Blizzard3; + + if (CustomComboFunctions.WasLastAction(Xenoglossy) && OpenerStep == 17) OpenerStep++; + else if (OpenerStep == 17) actionID = Xenoglossy; + + if (CustomComboFunctions.WasLastAction(Paradox) && OpenerStep == 18) OpenerStep++; + else if (OpenerStep == 18) actionID = Paradox; + + if (CustomComboFunctions.LocalPlayer.CastActionId == Blizzard4 && OpenerStep == 19) OpenerStep++; + else if (OpenerStep == 19) actionID = Blizzard4; + + if (CustomComboFunctions.WasLastAction(Thunder3) && OpenerStep == 20) CurrentState = OpenerState.OpenerFinished; + else if (OpenerStep == 20) actionID = Thunder3; + + if (((actionID == Triplecast && CustomComboFunctions.GetRemainingCharges(Triplecast) < 2) || + (actionID == Amplifier && CustomComboFunctions.IsOnCooldown(Amplifier)) || + (actionID == LeyLines && CustomComboFunctions.IsOnCooldown(LeyLines)) || + (actionID == All.LucidDreaming && CustomComboFunctions.IsOnCooldown(All.LucidDreaming)) || + (actionID == Manafont && CustomComboFunctions.IsOnCooldown(Manafont)) || + (actionID == Sharpcast && CustomComboFunctions.GetRemainingCharges(Sharpcast) < 1) || + (actionID == All.Swiftcast && CustomComboFunctions.IsOnCooldown(All.Swiftcast)) || + (actionID == Xenoglossy && CustomComboFunctions.GetJobGauge().PolyglotStacks < 1)) && ActionWatching.TimeSinceLastAction.TotalSeconds >= 3) + { + CurrentState = OpenerState.FailedOpener; + return false; + } + } + + else + { + + if (CustomComboFunctions.LocalPlayer.CastActionId == Thunder3 && OpenerStep == 1) OpenerStep++; + else if (OpenerStep == 1) actionID = Thunder3; + + if (CustomComboFunctions.LocalPlayer.CastActionId == Fire4 && OpenerStep == 2) OpenerStep++; + else if (OpenerStep == 2) actionID = Fire4; + + if (CustomComboFunctions.WasLastAction(Triplecast) && OpenerStep == 3) OpenerStep++; + else if (OpenerStep == 3) actionID = Triplecast; + + if (CustomComboFunctions.WasLastAction(Fire4) && CustomComboFunctions.GetBuffStacks(Buffs.Triplecast) == 2 && OpenerStep == 4) OpenerStep++; + else if (OpenerStep == 4) actionID = Fire4; + + if (CustomComboFunctions.WasLastAction(Fire4) && CustomComboFunctions.GetBuffStacks(Buffs.Triplecast) == 1 && OpenerStep == 5) OpenerStep++; + else if (OpenerStep == 5) actionID = Fire4; + + if (CustomComboFunctions.WasLastAction(Amplifier) && OpenerStep == 6) OpenerStep++; + else if (OpenerStep == 6) actionID = Amplifier; + + if (CustomComboFunctions.WasLastAction(LeyLines) && OpenerStep == 7) OpenerStep++; + else if (OpenerStep == 7) actionID = LeyLines; + + if (CustomComboFunctions.WasLastAction(Fire4) && CustomComboFunctions.GetBuffStacks(Buffs.Triplecast) == 0 && OpenerStep == 8) OpenerStep++; + else if (OpenerStep == 8) actionID = Fire4; + + if (CustomComboFunctions.WasLastAction(Triplecast) && OpenerStep == 9) OpenerStep++; + else if (OpenerStep == 9) actionID = Triplecast; + + if (CustomComboFunctions.WasLastAction(All.LucidDreaming) && OpenerStep == 10) OpenerStep++; + else if (OpenerStep == 10) actionID = All.LucidDreaming; + + if (CustomComboFunctions.WasLastAction(Despair) && OpenerStep == 11) OpenerStep++; + else if (OpenerStep == 11) actionID = Despair; + + if (CustomComboFunctions.WasLastAction(Manafont) && OpenerStep == 12) OpenerStep++; + else if (OpenerStep == 12) actionID = Manafont; + + if (CustomComboFunctions.WasLastAction(Fire4) && OpenerStep == 13) OpenerStep++; + else if (OpenerStep == 13) actionID = Fire4; + + if (CustomComboFunctions.WasLastAction(Sharpcast) && OpenerStep == 14) OpenerStep++; + else if (OpenerStep == 14) actionID = Sharpcast; + + if (CustomComboFunctions.WasLastAction(Despair) && OpenerStep == 15) OpenerStep++; + else if (OpenerStep == 15) actionID = Despair; + + if (CustomComboFunctions.WasLastAction(Transpose) && OpenerStep == 16) OpenerStep++; + else if (OpenerStep == 16) actionID = Transpose; + + if (CustomComboFunctions.WasLastAction(Paradox) && OpenerStep == 17) OpenerStep++; + else if (OpenerStep == 17) actionID = Paradox; + + if (CustomComboFunctions.WasLastAction(All.Swiftcast) && OpenerStep == 18) OpenerStep++; + else if (OpenerStep == 18) actionID = All.Swiftcast; + + if (CustomComboFunctions.WasLastAction(Xenoglossy) && OpenerStep == 19) OpenerStep++; + else if (OpenerStep == 19) actionID = Xenoglossy; + + if ((CustomComboFunctions.LocalPlayer.CastActionId == Thunder3 || CustomComboFunctions.WasLastAction(Thunder3)) && OpenerStep == 20) OpenerStep++; + else if (OpenerStep == 20) actionID = Thunder3; + + if (CustomComboFunctions.LocalPlayer.CurrentMp == CustomComboFunctions.LocalPlayer.MaxMp && OpenerStep == 21) OpenerStep++; + else if (OpenerStep == 21) actionID = Blizzard3; + + if (CustomComboFunctions.WasLastAction(Transpose) && OpenerStep == 22) OpenerStep++; + else if (OpenerStep == 22) actionID = Transpose; + + if ((CustomComboFunctions.LocalPlayer.CastActionId == Fire3 || CustomComboFunctions.WasLastAction(Fire3)) && OpenerStep == 23) OpenerStep++; + else if (OpenerStep == 23) actionID = Fire3; + + if ((CustomComboFunctions.LocalPlayer.CastActionId == Fire4 || CustomComboFunctions.WasLastAction(Fire4)) && OpenerStep == 24 && ActionWatching.CombatActions.Count == 24) OpenerStep++; + else if (OpenerStep == 24) actionID = Fire4; + + if ((CustomComboFunctions.LocalPlayer.CastActionId == Fire4 || CustomComboFunctions.WasLastAction(Fire4)) && OpenerStep == 25 && ActionWatching.CombatActions.Count == 25) OpenerStep++; + else if (OpenerStep == 25) actionID = Fire4; + + if ((CustomComboFunctions.LocalPlayer.CastActionId == Fire4 || CustomComboFunctions.WasLastAction(Fire4)) && OpenerStep == 26 && ActionWatching.CombatActions.Count == 26) OpenerStep++; + else if (OpenerStep == 26) actionID = Fire4; + + if (CustomComboFunctions.WasLastAction(Despair) && OpenerStep == 27) CurrentState = OpenerState.OpenerFinished; + else if (OpenerStep == 27) actionID = Despair; + } + + if (ActionWatching.TimeSinceLastAction.TotalSeconds >= 5) + CurrentState = OpenerState.FailedOpener; + + if (CustomComboFunctions.GetResourceCost(actionID) > CustomComboFunctions.LocalPlayer.CurrentMp && ActionWatching.TimeSinceLastAction.TotalSeconds >= 2) + CurrentState = OpenerState.FailedOpener; + + if (((actionID == Triplecast && CustomComboFunctions.GetRemainingCharges(Triplecast) < 2) || + (actionID == Amplifier && CustomComboFunctions.IsOnCooldown(Amplifier)) || + (actionID == LeyLines && CustomComboFunctions.IsOnCooldown(LeyLines)) || + (actionID == All.LucidDreaming && CustomComboFunctions.IsOnCooldown(All.LucidDreaming)) || + (actionID == Manafont && CustomComboFunctions.IsOnCooldown(Manafont)) || + (actionID == Sharpcast && CustomComboFunctions.GetRemainingCharges(Sharpcast) < 1) || + (actionID == All.Swiftcast && CustomComboFunctions.IsOnCooldown(All.Swiftcast)) || + (actionID == Xenoglossy && CustomComboFunctions.GetJobGauge().PolyglotStacks < 1)) && ActionWatching.TimeSinceLastAction.TotalSeconds >= 3) + { + CurrentState = OpenerState.FailedOpener; + return false; + } + + return true; + } + + return false; + } + + private bool DoOpenerSimple(ref uint actionID) + { + if (!LevelChecked) return false; + + if (currentState == OpenerState.InOpener) + { + if (CustomComboFunctions.LocalPlayer.CastActionId == Thunder3 && OpenerStep == 1) OpenerStep++; + else if (OpenerStep == 1) actionID = Thunder3; + + if (CustomComboFunctions.WasLastAction(Triplecast) && OpenerStep == 2) OpenerStep++; + else if (OpenerStep == 2) actionID = Triplecast; + + if (CustomComboFunctions.WasLastAction(Fire4) && CustomComboFunctions.GetBuffStacks(Buffs.Triplecast) == 2 && OpenerStep == 3) OpenerStep++; + else if (OpenerStep == 3) actionID = Fire4; + + if (CustomComboFunctions.WasLastAction(Fire4) && CustomComboFunctions.GetBuffStacks(Buffs.Triplecast) == 1 && OpenerStep == 4) OpenerStep++; + else if (OpenerStep == 4) actionID = Fire4; + + if (CustomComboFunctions.WasLastAction(Amplifier) && OpenerStep == 5) OpenerStep++; + else if (OpenerStep == 5) actionID = Amplifier; + + if (CustomComboFunctions.WasLastAction(LeyLines) && OpenerStep == 6) OpenerStep++; + else if (OpenerStep == 6) actionID = LeyLines; + + if (CustomComboFunctions.WasLastAction(Fire4) && CustomComboFunctions.GetBuffStacks(Buffs.Triplecast) == 0 && OpenerStep == 7) OpenerStep++; + else if (OpenerStep == 7) actionID = Fire4; + + if (CustomComboFunctions.WasLastAction(All.Swiftcast) && OpenerStep == 8) OpenerStep++; + else if (OpenerStep == 8) actionID = All.Swiftcast; + + if (CustomComboFunctions.WasLastAction(Fire4) && OpenerStep == 9) OpenerStep++; + else if (OpenerStep == 9) actionID = Fire4; + + if (CustomComboFunctions.WasLastAction(Triplecast) && OpenerStep == 10) OpenerStep++; + else if (OpenerStep == 10) actionID = Triplecast; + + if (CustomComboFunctions.WasLastAction(Despair) && OpenerStep == 11) OpenerStep++; + else if (OpenerStep == 11) actionID = Despair; + + if (CustomComboFunctions.WasLastAction(Manafont) && OpenerStep == 12) OpenerStep++; + else if (OpenerStep == 12) actionID = Manafont; + + if (CustomComboFunctions.WasLastAction(Fire4) && OpenerStep == 13) OpenerStep++; + else if (OpenerStep == 13) actionID = Fire4; + + if (CustomComboFunctions.WasLastAction(Sharpcast) && OpenerStep == 14) OpenerStep++; + else if (OpenerStep == 14) actionID = Sharpcast; + + if (CustomComboFunctions.WasLastAction(Despair) && OpenerStep == 15) OpenerStep++; + else if (OpenerStep == 15) actionID = Despair; + + if (CustomComboFunctions.WasLastAction(Blizzard3) && OpenerStep == 16) OpenerStep++; + else if (OpenerStep == 16) actionID = Blizzard3; + + if (CustomComboFunctions.WasLastAction(Xenoglossy) && OpenerStep == 17) OpenerStep++; + else if (OpenerStep == 17) actionID = Xenoglossy; + + if (CustomComboFunctions.WasLastAction(Paradox) && OpenerStep == 18) OpenerStep++; + else if (OpenerStep == 18) actionID = Paradox; + + if (CustomComboFunctions.LocalPlayer.CastActionId == Blizzard4 && OpenerStep == 19) OpenerStep++; + else if (OpenerStep == 19) actionID = Blizzard4; + + if (CustomComboFunctions.WasLastAction(Thunder3) && OpenerStep == 20) CurrentState = OpenerState.OpenerFinished; + else if (OpenerStep == 20) actionID = Thunder3; + + if (ActionWatching.TimeSinceLastAction.TotalSeconds >= 5) + CurrentState = OpenerState.FailedOpener; + + if (CustomComboFunctions.GetResourceCost(actionID) > CustomComboFunctions.LocalPlayer.CurrentMp && ActionWatching.TimeSinceLastAction.TotalSeconds >= 2) + CurrentState = OpenerState.FailedOpener; + + if (((actionID == Triplecast && CustomComboFunctions.GetRemainingCharges(Triplecast) < 2) || + (actionID == Amplifier && CustomComboFunctions.IsOnCooldown(Amplifier)) || + (actionID == LeyLines && CustomComboFunctions.IsOnCooldown(LeyLines)) || + (actionID == All.LucidDreaming && CustomComboFunctions.IsOnCooldown(All.LucidDreaming)) || + (actionID == Manafont && CustomComboFunctions.IsOnCooldown(Manafont)) || + (actionID == Sharpcast && CustomComboFunctions.GetRemainingCharges(Sharpcast) < 1) || + (actionID == All.Swiftcast && CustomComboFunctions.IsOnCooldown(All.Swiftcast)) || + (actionID == Xenoglossy && CustomComboFunctions.GetJobGauge().PolyglotStacks < 1)) && ActionWatching.TimeSinceLastAction.TotalSeconds >= 3) + { + CurrentState = OpenerState.FailedOpener; + return false; + } + + return true; + } + + return false; + } + + private void ResetOpener() + { + PrePullStep = 0; + OpenerStep = 0; + } + + public bool DoFullOpener(ref uint actionID, bool simpleMode) + { + if (!LevelChecked) return false; + + if (CurrentState == OpenerState.PrePull) + if (DoPrePullSteps(ref actionID)) return true; + + if (CurrentState == OpenerState.InOpener) + { + if (simpleMode) + { + if (DoOpenerSimple(ref actionID)) return true; + } + else + { + if (DoOpener(ref actionID)) return true; + } + } + + if (!CustomComboFunctions.InCombat()) + { + ResetOpener(); + CurrentState = OpenerState.PrePull; + } + + + return false; + } + } + + internal static class BLMHelpers + { + public static bool HasPolyglotStacks(this BLMGauge gauge) => gauge.PolyglotStacks > 0; + } +} \ No newline at end of file diff --git a/XIVSlothCombo/Combos/JobHelpers/DRG.cs b/XIVSlothCombo/Combos/JobHelpers/DRG.cs new file mode 100644 index 000000000..9db7be3ca --- /dev/null +++ b/XIVSlothCombo/Combos/JobHelpers/DRG.cs @@ -0,0 +1,453 @@ +using System.Collections.Generic; +using System.Linq; +using XIVSlothCombo.Combos.JobHelpers.Enums; +using XIVSlothCombo.CustomComboNS.Functions; +using XIVSlothCombo.Data; + +namespace XIVSlothCombo.Combos.JobHelpers +{ + internal class DRGOpenerLogic : PvE.DRG + { + private static bool HasCooldowns() + { + if (CustomComboFunctions.GetRemainingCharges(SpineshatterDive) < 2) + return false; + if (CustomComboFunctions.GetRemainingCharges(LifeSurge) < 2) + return false; + if (!CustomComboFunctions.ActionReady(BattleLitany)) + return false; + if (!CustomComboFunctions.ActionReady(DragonSight)) + return false; + if (!CustomComboFunctions.ActionReady(DragonfireDive)) + return false; + + return true; + } + + private static uint OpenerLevel => 88; + + public uint OpenerStep + { + get => openerStep; + set + { + // Svc.Log.Debug($"DRG Opener Step: {value}"); + openerStep = value; + } + } + public static bool LevelChecked => CustomComboFunctions.LocalPlayer.Level >= OpenerLevel; + + private static bool CanOpener => HasCooldowns() && LevelChecked; + + private OpenerState currentState = OpenerState.PrePull; + private uint openerStep = 0; + + public OpenerState CurrentState + { + get + { + return currentState; + } + set + { + if (value != currentState) + { + if (value == OpenerState.OpenerFinished || value == OpenerState.FailedOpener) + { + if (value == OpenerState.FailedOpener) + { + // Svc.Log.Information($"Opener Failed at step {OpenerStep}"); + } + + ResetOpener(); + } + if (value == OpenerState.OpenerFinished) + { + // Svc.Log.Information("Opener Finished"); + } + + currentState = value; + } + } + } + + + private bool DoOpener(ref uint actionID) + { + if (!LevelChecked) return false; + + if (CanOpener && OpenerStep == 0) + { + OpenerStep = 1; + } + + if (currentState == OpenerState.InOpener && OpenerStep > 0) + { + if (Config.DRG_Opener_Choice == 0) + { + if (CustomComboFunctions.WasLastAction(TrueThrust) && OpenerStep == 1) OpenerStep++; + else if (OpenerStep == 1) actionID = TrueThrust; + + if (CustomComboFunctions.WasLastAction(Disembowel) && OpenerStep == 2) OpenerStep++; + else if (OpenerStep == 2) actionID = Disembowel; + + if (CustomComboFunctions.WasLastAction(LanceCharge) && OpenerStep == 3) OpenerStep++; + else if (OpenerStep == 3) actionID = LanceCharge; + + if (CustomComboFunctions.WasLastAction(DragonSight) && OpenerStep == 4) OpenerStep++; + else if (OpenerStep == 4) actionID = DragonSight; + + if (CustomComboFunctions.WasLastAction(ChaoticSpring) && OpenerStep == 5) OpenerStep++; + else if (OpenerStep == 5) actionID = ChaoticSpring; + + if (CustomComboFunctions.WasLastAction(BattleLitany) && OpenerStep == 6) OpenerStep++; + else if (OpenerStep == 6) actionID = BattleLitany; + + if (CustomComboFunctions.WasLastAction(WheelingThrust) && OpenerStep == 7) OpenerStep++; + else if (OpenerStep == 7) actionID = WheelingThrust; + + if (CustomComboFunctions.WasLastAction(Geirskogul) && OpenerStep == 8) OpenerStep++; + else if (OpenerStep == 8) actionID = Geirskogul; + + if (CustomComboFunctions.WasLastAction(LifeSurge) && OpenerStep == 9) OpenerStep++; + else if (OpenerStep == 9) actionID = LifeSurge; + + if (CustomComboFunctions.WasLastAction(FangAndClaw) && OpenerStep == 10) OpenerStep++; + else if (OpenerStep == 10) actionID = FangAndClaw; + + if (CustomComboFunctions.WasLastAction(HighJump) && OpenerStep == 11) OpenerStep++; + else if (OpenerStep == 11) actionID = HighJump; + + if (CustomComboFunctions.WasLastAction(MirageDive) && OpenerStep == 12) OpenerStep++; + else if (OpenerStep == 12) actionID = MirageDive; + + if (CustomComboFunctions.WasLastAction(RaidenThrust) && OpenerStep == 13) OpenerStep++; + else if (OpenerStep == 13) actionID = RaidenThrust; + + if (CustomComboFunctions.WasLastAction(DragonfireDive) && OpenerStep == 14) OpenerStep++; + else if (OpenerStep == 14) actionID = DragonfireDive; + + if (CustomComboFunctions.WasLastAction(VorpalThrust) && OpenerStep == 15) OpenerStep++; + else if (OpenerStep == 15) actionID = VorpalThrust; + + if (CustomComboFunctions.WasLastAction(SpineshatterDive) && OpenerStep == 16) OpenerStep++; + else if (OpenerStep == 16) actionID = SpineshatterDive; + + if (CustomComboFunctions.WasLastAction(LifeSurge) && OpenerStep == 17) OpenerStep++; + else if (OpenerStep == 17) actionID = LifeSurge; + + if (CustomComboFunctions.WasLastAction(HeavensThrust) && OpenerStep == 18) OpenerStep++; + else if (OpenerStep == 18) actionID = HeavensThrust; + + if (CustomComboFunctions.WasLastAction(SpineshatterDive) && OpenerStep == 19) OpenerStep++; + else if (OpenerStep == 19) actionID = SpineshatterDive; + + if (CustomComboFunctions.WasLastAction(FangAndClaw) && OpenerStep == 20) OpenerStep++; + else if (OpenerStep == 20) actionID = FangAndClaw; + + if (CustomComboFunctions.WasLastAction(WheelingThrust) && OpenerStep == 21) OpenerStep++; + else if (OpenerStep == 21) actionID = WheelingThrust; + + if (CustomComboFunctions.WasLastAction(RaidenThrust) && OpenerStep == 22) OpenerStep++; + else if (OpenerStep == 22) actionID = RaidenThrust; + + if (CustomComboFunctions.WasLastAction(WyrmwindThrust) && OpenerStep == 23) OpenerStep++; + else if (OpenerStep == 23) actionID = WyrmwindThrust; + + if (CustomComboFunctions.WasLastAction(Disembowel) && OpenerStep == 24) OpenerStep++; + else if (OpenerStep == 24) actionID = Disembowel; + + if (CustomComboFunctions.WasLastAction(ChaoticSpring) && OpenerStep == 25) OpenerStep++; + else if (OpenerStep == 25) actionID = ChaoticSpring; + + if (CustomComboFunctions.WasLastAction(WheelingThrust) && OpenerStep == 26) CurrentState = OpenerState.OpenerFinished; + else if (OpenerStep == 26) actionID = WheelingThrust; + } + else + { + if (CustomComboFunctions.WasLastAction(TrueThrust) && OpenerStep == 1) OpenerStep++; + else if (OpenerStep == 1) actionID = TrueThrust; + + if (CustomComboFunctions.WasLastAction(Disembowel) && OpenerStep == 2) OpenerStep++; + else if (OpenerStep == 2) actionID = Disembowel; + + if (CustomComboFunctions.WasLastAction(LanceCharge) && OpenerStep == 3) OpenerStep++; + else if (OpenerStep == 3) actionID = LanceCharge; + + if (CustomComboFunctions.WasLastAction(DragonSight) && OpenerStep == 4) OpenerStep++; + else if (OpenerStep == 4) actionID = DragonSight; + + if (CustomComboFunctions.WasLastAction(ChaoticSpring) && OpenerStep == 5) OpenerStep++; + else if (OpenerStep == 5) actionID = ChaoticSpring; + + if (CustomComboFunctions.WasLastAction(BattleLitany) && OpenerStep == 6) OpenerStep++; + else if (OpenerStep == 6) actionID = BattleLitany; + + if (CustomComboFunctions.WasLastAction(Geirskogul) && OpenerStep == 7) OpenerStep++; + else if (OpenerStep == 7) actionID = Geirskogul; + + if (CustomComboFunctions.WasLastAction(WheelingThrust) && OpenerStep == 8) OpenerStep++; + else if (OpenerStep == 8) actionID = WheelingThrust; + + if (CustomComboFunctions.WasLastAction(SpineshatterDive) && OpenerStep == 9) OpenerStep++; + else if (OpenerStep == 9) actionID = SpineshatterDive; + + if (CustomComboFunctions.WasLastAction(LifeSurge) && OpenerStep == 10) OpenerStep++; + else if (OpenerStep == 10) actionID = LifeSurge; + + if (CustomComboFunctions.WasLastAction(FangAndClaw) && OpenerStep == 11) OpenerStep++; + else if (OpenerStep == 11) actionID = FangAndClaw; + + if (CustomComboFunctions.WasLastAction(HighJump) && OpenerStep == 12) OpenerStep++; + else if (OpenerStep == 12) actionID = HighJump; + + if (CustomComboFunctions.WasLastAction(MirageDive) && OpenerStep == 13) OpenerStep++; + else if (OpenerStep == 13) actionID = MirageDive; + + if (CustomComboFunctions.WasLastAction(RaidenThrust) && OpenerStep == 14) OpenerStep++; + else if (OpenerStep == 14) actionID = RaidenThrust; + + if (CustomComboFunctions.WasLastAction(DragonfireDive) && OpenerStep == 15) OpenerStep++; + else if (OpenerStep == 15) actionID = DragonfireDive; + + if (CustomComboFunctions.WasLastAction(VorpalThrust) && OpenerStep == 16) OpenerStep++; + else if (OpenerStep == 16) actionID = VorpalThrust; + + if (CustomComboFunctions.WasLastAction(SpineshatterDive) && OpenerStep == 17) OpenerStep++; + else if (OpenerStep == 17) actionID = SpineshatterDive; + + if (CustomComboFunctions.WasLastAction(LifeSurge) && OpenerStep == 18) OpenerStep++; + else if (OpenerStep == 18) actionID = LifeSurge; + + if (CustomComboFunctions.WasLastAction(HeavensThrust) && OpenerStep == 19) OpenerStep++; + else if (OpenerStep == 19) actionID = HeavensThrust; + + if (CustomComboFunctions.WasLastAction(FangAndClaw) && OpenerStep == 20) OpenerStep++; + else if (OpenerStep == 20) actionID = FangAndClaw; + + if (CustomComboFunctions.WasLastAction(WheelingThrust) && OpenerStep == 21) OpenerStep++; + else if (OpenerStep == 21) actionID = WheelingThrust; + + if (CustomComboFunctions.WasLastAction(RaidenThrust) && OpenerStep == 22) OpenerStep++; + else if (OpenerStep == 22) actionID = RaidenThrust; + + if (CustomComboFunctions.WasLastAction(WyrmwindThrust) && OpenerStep == 23) OpenerStep++; + else if (OpenerStep == 23) actionID = WyrmwindThrust; + + if (CustomComboFunctions.WasLastAction(Disembowel) && OpenerStep == 24) OpenerStep++; + else if (OpenerStep == 24) actionID = Disembowel; + + if (CustomComboFunctions.WasLastAction(ChaoticSpring) && OpenerStep == 25) OpenerStep++; + else if (OpenerStep == 25) actionID = ChaoticSpring; + + if (CustomComboFunctions.WasLastAction(WheelingThrust) && OpenerStep == 26) CurrentState = OpenerState.OpenerFinished; + else if (OpenerStep == 26) actionID = WheelingThrust; + + } + + if (CustomComboFunctions.InCombat() && ActionWatching.TimeSinceLastAction.TotalSeconds >= 3) + CurrentState = OpenerState.FailedOpener; + + if (((actionID == SpineshatterDive && CustomComboFunctions.GetRemainingCharges(SpineshatterDive) == 0) || + (actionID == BattleLitany && CustomComboFunctions.IsOnCooldown(BattleLitany)) || + (actionID == DragonSight && CustomComboFunctions.IsOnCooldown(DragonSight)) || + (actionID == DragonfireDive && CustomComboFunctions.IsOnCooldown(DragonfireDive)) || + (actionID == LifeSurge && CustomComboFunctions.GetRemainingCharges(LifeSurge) == 0)) && ActionWatching.TimeSinceLastAction.TotalSeconds >= 0.5) + + { + CurrentState = OpenerState.FailedOpener; + return false; + } + return true; + } + + return false; + } + + private bool DoOpenerSimple(ref uint actionID) + { + if (!LevelChecked) return false; + + if (CanOpener && OpenerStep == 0) + { + OpenerStep = 1; + } + + if (currentState == OpenerState.InOpener && OpenerStep > 0) + { + if (CustomComboFunctions.WasLastAction(TrueThrust) && OpenerStep == 1) OpenerStep++; + else if (OpenerStep == 1) actionID = TrueThrust; + + if (CustomComboFunctions.WasLastAction(Disembowel) && OpenerStep == 2) OpenerStep++; + else if (OpenerStep == 2) actionID = Disembowel; + + if (CustomComboFunctions.WasLastAction(LanceCharge) && OpenerStep == 3) OpenerStep++; + else if (OpenerStep == 3) actionID = LanceCharge; + + if (CustomComboFunctions.WasLastAction(DragonSight) && OpenerStep == 4) OpenerStep++; + else if (OpenerStep == 4) actionID = DragonSight; + + if (CustomComboFunctions.WasLastAction(ChaoticSpring) && OpenerStep == 5) OpenerStep++; + else if (OpenerStep == 5) actionID = ChaoticSpring; + + if (CustomComboFunctions.WasLastAction(BattleLitany) && OpenerStep == 6) OpenerStep++; + else if (OpenerStep == 6) actionID = BattleLitany; + + if (CustomComboFunctions.WasLastAction(WheelingThrust) && OpenerStep == 7) OpenerStep++; + else if (OpenerStep == 7) actionID = WheelingThrust; + + if (CustomComboFunctions.WasLastAction(Geirskogul) && OpenerStep == 8) OpenerStep++; + else if (OpenerStep == 8) actionID = Geirskogul; + + if (CustomComboFunctions.WasLastAction(LifeSurge) && OpenerStep == 9) OpenerStep++; + else if (OpenerStep == 9) actionID = LifeSurge; + + if (CustomComboFunctions.WasLastAction(FangAndClaw) && OpenerStep == 10) OpenerStep++; + else if (OpenerStep == 10) actionID = FangAndClaw; + + if (CustomComboFunctions.WasLastAction(HighJump) && OpenerStep == 11) OpenerStep++; + else if (OpenerStep == 11) actionID = HighJump; + + if (CustomComboFunctions.WasLastAction(MirageDive) && OpenerStep == 12) OpenerStep++; + else if (OpenerStep == 12) actionID = MirageDive; + + if (CustomComboFunctions.WasLastAction(RaidenThrust) && OpenerStep == 13) OpenerStep++; + else if (OpenerStep == 13) actionID = RaidenThrust; + + if (CustomComboFunctions.WasLastAction(DragonfireDive) && OpenerStep == 14) OpenerStep++; + else if (OpenerStep == 14) actionID = DragonfireDive; + + if (CustomComboFunctions.WasLastAction(VorpalThrust) && OpenerStep == 15) OpenerStep++; + else if (OpenerStep == 15) actionID = VorpalThrust; + + if (CustomComboFunctions.WasLastAction(SpineshatterDive) && OpenerStep == 16) OpenerStep++; + else if (OpenerStep == 16) actionID = SpineshatterDive; + + if (CustomComboFunctions.WasLastAction(LifeSurge) && OpenerStep == 17) OpenerStep++; + else if (OpenerStep == 17) actionID = LifeSurge; + + if (CustomComboFunctions.WasLastAction(HeavensThrust) && OpenerStep == 18) OpenerStep++; + else if (OpenerStep == 18) actionID = HeavensThrust; + + if (CustomComboFunctions.WasLastAction(SpineshatterDive) && OpenerStep == 19) OpenerStep++; + else if (OpenerStep == 19) actionID = SpineshatterDive; + + if (CustomComboFunctions.WasLastAction(FangAndClaw) && OpenerStep == 20) OpenerStep++; + else if (OpenerStep == 20) actionID = FangAndClaw; + + if (CustomComboFunctions.WasLastAction(WheelingThrust) && OpenerStep == 21) OpenerStep++; + else if (OpenerStep == 21) actionID = WheelingThrust; + + if (CustomComboFunctions.WasLastAction(RaidenThrust) && OpenerStep == 22) OpenerStep++; + else if (OpenerStep == 22) actionID = RaidenThrust; + + if (CustomComboFunctions.WasLastAction(WyrmwindThrust) && OpenerStep == 23) OpenerStep++; + else if (OpenerStep == 23) actionID = WyrmwindThrust; + + if (CustomComboFunctions.WasLastAction(Disembowel) && OpenerStep == 24) OpenerStep++; + else if (OpenerStep == 24) actionID = Disembowel; + + if (CustomComboFunctions.WasLastAction(ChaoticSpring) && OpenerStep == 25) OpenerStep++; + else if (OpenerStep == 25) actionID = ChaoticSpring; + + if (CustomComboFunctions.WasLastAction(WheelingThrust) && OpenerStep == 26) CurrentState = OpenerState.OpenerFinished; + else if (OpenerStep == 26) actionID = WheelingThrust; + + if (CustomComboFunctions.InCombat() && ActionWatching.TimeSinceLastAction.TotalSeconds >= 3) + CurrentState = OpenerState.FailedOpener; + + if (((actionID == SpineshatterDive && CustomComboFunctions.GetRemainingCharges(SpineshatterDive) == 0) || + (actionID == BattleLitany && CustomComboFunctions.IsOnCooldown(BattleLitany)) || + (actionID == DragonSight && CustomComboFunctions.IsOnCooldown(DragonSight)) || + (actionID == DragonfireDive && CustomComboFunctions.IsOnCooldown(DragonfireDive)) || + (actionID == LifeSurge && CustomComboFunctions.GetRemainingCharges(LifeSurge) == 0)) && ActionWatching.TimeSinceLastAction.TotalSeconds >= 0.5) + + { + CurrentState = OpenerState.FailedOpener; + return false; + } + + return true; + } + + return false; + } + + + private void ResetOpener() + { + if (OpenerStep > 0) + OpenerStep = 0; + } + + public bool DoFullOpener(ref uint actionID, bool simpleMode) + { + if (!LevelChecked) return false; + + if (CurrentState == OpenerState.InOpener) + { + if (simpleMode) + { + if (DoOpenerSimple(ref actionID)) return true; + } + else + { + if (DoOpener(ref actionID)) return true; + } + } + + if (!CustomComboFunctions.InCombat()) + { + ResetOpener(); + CurrentState = OpenerState.InOpener; + } + + return false; + } + } + + internal class AnimationLock + { + internal static readonly List FastLocks = new() + { + PvE.DRG.BattleLitany, + PvE.DRG.LanceCharge, + PvE.DRG.DragonSight, + PvE.DRG.LifeSurge, + PvE.DRG.Geirskogul, + PvE.DRG.Nastrond, + PvE.DRG.MirageDive, + PvE.DRG.WyrmwindThrust + }; + + internal static readonly List MidLocks = new() + { + PvE.DRG.Jump, + PvE.DRG.HighJump, + PvE.DRG.DragonfireDive, + PvE.DRG.SpineshatterDive + }; + + internal static uint SlowLock => PvE.DRG.Stardiver; + + internal static bool CanDRGWeave(uint oGCD) + { + //GCD Ready - No Weave + if (CustomComboFunctions.IsOffCooldown(PvE.DRG.TrueThrust)) + return false; + + var gcdTimer = CustomComboFunctions.GetCooldownRemainingTime(PvE.DRG.TrueThrust); + + if (FastLocks.Any(x => x == oGCD) && gcdTimer >= 0.6f) + return true; + + if (MidLocks.Any(x => x == oGCD) && gcdTimer >= 0.8f) + return true; + + if (SlowLock == oGCD && gcdTimer >= 1.5f) + return true; + + return false; + } + } +} \ No newline at end of file diff --git a/XIVSlothCombo/Combos/JobHelpers/MCH.cs b/XIVSlothCombo/Combos/JobHelpers/MCH.cs new file mode 100644 index 000000000..b15f0a453 --- /dev/null +++ b/XIVSlothCombo/Combos/JobHelpers/MCH.cs @@ -0,0 +1,553 @@ +using XIVSlothCombo.Combos.JobHelpers.Enums; +using XIVSlothCombo.Combos.PvE; +using XIVSlothCombo.CustomComboNS.Functions; +using XIVSlothCombo.Data; + +namespace XIVSlothCombo.Combos.JobHelpers +{ + internal class MCHOpenerLogic : PvE.MCH + { + private static bool HasCooldowns() + { + if (CustomComboFunctions.GetRemainingCharges(Ricochet) < 3) + return false; + if (CustomComboFunctions.GetRemainingCharges(GaussRound) < 3) + return false; + if (!CustomComboFunctions.ActionReady(ChainSaw)) + return false; + if (!CustomComboFunctions.ActionReady(Wildfire)) + return false; + if (!CustomComboFunctions.ActionReady(BarrelStabilizer)) + return false; + + return true; + } + + public static bool HasPrePullCooldowns() + { + if (CustomComboFunctions.GetRemainingCharges(Reassemble) == 0 && Config.MCH_ST_RotationSelection == 2) return false; + + return true; + } + + private static uint OpenerLevel => 90; + + public uint PrePullStep = 0; + + public uint OpenerStep = 1; + + public static bool LevelChecked => CustomComboFunctions.LocalPlayer.Level >= OpenerLevel; + + private static bool CanOpener => HasCooldowns() && HasPrePullCooldowns() && LevelChecked; + + private OpenerState currentState = OpenerState.PrePull; + + public OpenerState CurrentState + { + get + { + return currentState; + } + + set + { + if (value != currentState) + { + if (value == OpenerState.PrePull) + { + // Svc.Log.Debug($"Entered PrePull Opener"); + } + if (value == OpenerState.InOpener) OpenerStep = 1; + if (value == OpenerState.OpenerFinished || value == OpenerState.FailedOpener) + { + if (value == OpenerState.FailedOpener) + { + // Svc.Log.Information("Opener Failed"); + } + + ResetOpener(); + } + if (value == OpenerState.OpenerFinished) + { + // Svc.Log.Information("Opener Finished"); + } + + + currentState = value; + } + } + } + + private bool DoPrePullSteps(ref uint actionID) + { + if (!LevelChecked) return false; + + if (CanOpener && PrePullStep == 0) + { + PrePullStep = 1; + } + + if (!HasCooldowns()) + { + PrePullStep = 0; + } + + if (CurrentState == OpenerState.PrePull && PrePullStep > 0) + { + if (Config.MCH_ST_RotationSelection == 0 || Config.MCH_ST_RotationSelection == 1) + { + if (CustomComboFunctions.WasLastAction(HeatedSplitShot) && PrePullStep == 1) CurrentState = OpenerState.InOpener; + else if (PrePullStep == 1) actionID = HeatedSplitShot; + + if (ActionWatching.CombatActions.Count > 2 && CustomComboFunctions.InCombat()) + CurrentState = OpenerState.FailedOpener; + } + + if (Config.MCH_ST_RotationSelection == 2) + { + if (CustomComboFunctions.HasEffect(Buffs.Reassembled) && PrePullStep == 1) CurrentState = OpenerState.InOpener; + else if (PrePullStep == 1) actionID = Reassemble; + + if (PrePullStep == 2 && !CustomComboFunctions.HasEffect(MCH.Buffs.Reassembled)) + CurrentState = OpenerState.FailedOpener; + + if (ActionWatching.CombatActions.Count > 2 && CustomComboFunctions.InCombat()) + CurrentState = OpenerState.FailedOpener; + + } + return true; + } + + PrePullStep = 0; + return false; + } + + private bool DoOpener(ref uint actionID) + { + if (!LevelChecked) return false; + + if (currentState == OpenerState.InOpener) + { + if (Config.MCH_ST_RotationSelection == 0) + { + if (CustomComboFunctions.WasLastAction(GaussRound) && OpenerStep == 1) OpenerStep++; + else if (OpenerStep == 1) actionID = GaussRound; + + if (CustomComboFunctions.WasLastAction(Ricochet) && OpenerStep == 2) OpenerStep++; + else if (OpenerStep == 2) actionID = Ricochet; + + if (CustomComboFunctions.WasLastAction(Drill) && OpenerStep == 3) OpenerStep++; + else if (OpenerStep == 3) actionID = Drill; + + if (CustomComboFunctions.WasLastAction(BarrelStabilizer) && OpenerStep == 4) OpenerStep++; + else if (OpenerStep == 4) actionID = BarrelStabilizer; + + if (CustomComboFunctions.WasLastAction(HeatedSlugshot) && OpenerStep == 5) OpenerStep++; + else if (OpenerStep == 5) actionID = HeatedSlugshot; + + if (CustomComboFunctions.WasLastAction(Ricochet) && OpenerStep == 6) OpenerStep++; + else if (OpenerStep == 6) actionID = Ricochet; + + if (CustomComboFunctions.WasLastAction(HeatedCleanShot) && OpenerStep == 7) OpenerStep++; + else if (OpenerStep == 7) actionID = HeatedCleanShot; + + if (CustomComboFunctions.WasLastAction(Reassemble) && OpenerStep == 8) OpenerStep++; + else if (OpenerStep == 8) actionID = Reassemble; + + if (CustomComboFunctions.WasLastAction(GaussRound) && OpenerStep == 9) OpenerStep++; + else if (OpenerStep == 9) actionID = GaussRound; + + if (CustomComboFunctions.WasLastAction(AirAnchor) && OpenerStep == 10) OpenerStep++; + else if (OpenerStep == 10) actionID = AirAnchor; + + if (CustomComboFunctions.WasLastAction(Reassemble) && OpenerStep == 11) OpenerStep++; + else if (OpenerStep == 11) actionID = Reassemble; + + if (CustomComboFunctions.WasLastAction(Wildfire) && OpenerStep == 12) OpenerStep++; + else if (OpenerStep == 12) actionID = Wildfire; + + if (CustomComboFunctions.WasLastAction(ChainSaw) && OpenerStep == 13) OpenerStep++; + else if (OpenerStep == 13) actionID = ChainSaw; + + if (CustomComboFunctions.WasLastAction(AutomatonQueen) && OpenerStep == 14) OpenerStep++; + else if (OpenerStep == 14) actionID = AutomatonQueen; + + if (CustomComboFunctions.WasLastAction(Hypercharge) && OpenerStep == 15) OpenerStep++; + else if (OpenerStep == 15) actionID = Hypercharge; + + if (CustomComboFunctions.WasLastAction(HeatBlast) && CustomComboFunctions.GetBuffStacks(Buffs.Overheated) == 4 && OpenerStep == 16) OpenerStep++; + else if (OpenerStep == 16) actionID = HeatBlast; + + if (CustomComboFunctions.WasLastAction(Ricochet) && OpenerStep == 17) OpenerStep++; + else if (OpenerStep == 17) actionID = Ricochet; + + if (CustomComboFunctions.WasLastAction(HeatBlast) && CustomComboFunctions.GetBuffStacks(Buffs.Overheated) == 3 && OpenerStep == 18) OpenerStep++; + else if (OpenerStep == 18) actionID = HeatBlast; + + if (CustomComboFunctions.WasLastAction(GaussRound) && OpenerStep == 19) OpenerStep++; + else if (OpenerStep == 19) actionID = GaussRound; + + if (CustomComboFunctions.WasLastAction(HeatBlast) && CustomComboFunctions.GetBuffStacks(Buffs.Overheated) == 2 && OpenerStep == 20) OpenerStep++; + else if (OpenerStep == 20) actionID = HeatBlast; + + if (CustomComboFunctions.WasLastAction(Ricochet) && OpenerStep == 21) OpenerStep++; + else if (OpenerStep == 21) actionID = Ricochet; + + if (CustomComboFunctions.WasLastAction(HeatBlast) && CustomComboFunctions.GetBuffStacks(Buffs.Overheated) == 1 && OpenerStep == 22) OpenerStep++; + else if (OpenerStep == 22) actionID = HeatBlast; + + if (CustomComboFunctions.WasLastAction(GaussRound) && OpenerStep == 23) OpenerStep++; + else if (OpenerStep == 23) actionID = GaussRound; + + if (CustomComboFunctions.WasLastAction(HeatBlast) && CustomComboFunctions.GetBuffStacks(Buffs.Overheated) == 0 && OpenerStep == 24) OpenerStep++; + else if (OpenerStep == 24) actionID = HeatBlast; + + if (CustomComboFunctions.WasLastAction(Ricochet) && OpenerStep == 25) OpenerStep++; + else if (OpenerStep == 25) actionID = Ricochet; + + if (CustomComboFunctions.WasLastAction(Drill) && OpenerStep == 26) CurrentState = OpenerState.OpenerFinished; + else if (OpenerStep == 26) actionID = Drill; + + if (ActionWatching.TimeSinceLastAction.TotalSeconds >= 5) + CurrentState = OpenerState.FailedOpener; + + if (((actionID == Ricochet && CustomComboFunctions.GetRemainingCharges(Ricochet) < 3) || + (actionID == ChainSaw && CustomComboFunctions.IsOnCooldown(ChainSaw)) || + (actionID == Wildfire && CustomComboFunctions.IsOnCooldown(Wildfire)) || + (actionID == BarrelStabilizer && CustomComboFunctions.IsOnCooldown(BarrelStabilizer)) || + (actionID == GaussRound && CustomComboFunctions.GetRemainingCharges(GaussRound) < 3)) && ActionWatching.TimeSinceLastAction.TotalSeconds >= 3) + { + CurrentState = OpenerState.FailedOpener; + return false; + } + } + + else if (Config.MCH_ST_RotationSelection == 1) + { + if (CustomComboFunctions.WasLastAction(GaussRound) && OpenerStep == 1) OpenerStep++; + else if (OpenerStep == 1) actionID = GaussRound; + + if (CustomComboFunctions.WasLastAction(Ricochet) && OpenerStep == 2) OpenerStep++; + else if (OpenerStep == 2) actionID = Ricochet; + + if (CustomComboFunctions.WasLastAction(HeatedSlugshot) && OpenerStep == 3) OpenerStep++; + else if (OpenerStep == 3) actionID = HeatedSlugshot; + + if (CustomComboFunctions.WasLastAction(BarrelStabilizer) && OpenerStep == 4) OpenerStep++; + else if (OpenerStep == 4) actionID = BarrelStabilizer; + + if (CustomComboFunctions.WasLastAction(HeatedCleanShot) && OpenerStep == 5) OpenerStep++; + else if (OpenerStep == 5) actionID = HeatedCleanShot; + + if (CustomComboFunctions.WasLastAction(AirAnchor) && OpenerStep == 6) OpenerStep++; + else if (OpenerStep == 6) actionID = AirAnchor; + + if (CustomComboFunctions.WasLastAction(Reassemble) && OpenerStep == 7) OpenerStep++; + else if (OpenerStep == 7) actionID = Reassemble; + + if (CustomComboFunctions.WasLastAction(GaussRound) && OpenerStep == 8) OpenerStep++; + else if (OpenerStep == 8) actionID = GaussRound; + + if (CustomComboFunctions.WasLastAction(Drill) && OpenerStep == 9) OpenerStep++; + else if (OpenerStep == 9) actionID = Drill; + + if (CustomComboFunctions.WasLastAction(Reassemble) && OpenerStep == 10) OpenerStep++; + else if (OpenerStep == 10) actionID = Reassemble; + + if (CustomComboFunctions.WasLastAction(Wildfire) && OpenerStep == 11) OpenerStep++; + else if (OpenerStep == 11) actionID = Wildfire; + + if (CustomComboFunctions.WasLastAction(ChainSaw) && OpenerStep == 12) OpenerStep++; + else if (OpenerStep == 12) actionID = ChainSaw; + + if (CustomComboFunctions.WasLastAction(AutomatonQueen) && OpenerStep == 13) OpenerStep++; + else if (OpenerStep == 13) actionID = AutomatonQueen; + + if (CustomComboFunctions.WasLastAction(Hypercharge) && OpenerStep == 14) OpenerStep++; + else if (OpenerStep == 14) actionID = Hypercharge; + + if (CustomComboFunctions.WasLastAction(HeatBlast) && CustomComboFunctions.GetBuffStacks(Buffs.Overheated) == 4 && OpenerStep == 15) OpenerStep++; + else if (OpenerStep == 15) actionID = HeatBlast; + + if (CustomComboFunctions.WasLastAction(Ricochet) && OpenerStep == 16) OpenerStep++; + else if (OpenerStep == 16) actionID = Ricochet; + + if (CustomComboFunctions.WasLastAction(HeatBlast) && CustomComboFunctions.GetBuffStacks(Buffs.Overheated) == 3 && OpenerStep == 17) OpenerStep++; + else if (OpenerStep == 17) actionID = HeatBlast; + + if (CustomComboFunctions.WasLastAction(GaussRound) && OpenerStep == 18) OpenerStep++; + else if (OpenerStep == 18) actionID = GaussRound; + + if (CustomComboFunctions.WasLastAction(HeatBlast) && CustomComboFunctions.GetBuffStacks(Buffs.Overheated) == 2 && OpenerStep == 19) OpenerStep++; + else if (OpenerStep == 19) actionID = HeatBlast; + + if (CustomComboFunctions.WasLastAction(Ricochet) && OpenerStep == 20) OpenerStep++; + else if (OpenerStep == 20) actionID = Ricochet; + + if (CustomComboFunctions.WasLastAction(HeatBlast) && CustomComboFunctions.GetBuffStacks(Buffs.Overheated) == 1 && OpenerStep == 21) OpenerStep++; + else if (OpenerStep == 21) actionID = HeatBlast; + + if (CustomComboFunctions.WasLastAction(GaussRound) && OpenerStep == 22) OpenerStep++; + else if (OpenerStep == 22) actionID = GaussRound; + + if (CustomComboFunctions.WasLastAction(HeatBlast) && CustomComboFunctions.GetBuffStacks(Buffs.Overheated) == 0 && OpenerStep == 23) OpenerStep++; + else if (OpenerStep == 23) actionID = HeatBlast; + + if (CustomComboFunctions.WasLastAction(Ricochet) && OpenerStep == 24) OpenerStep++; + else if (OpenerStep == 24) actionID = Ricochet; + + if (CustomComboFunctions.WasLastAction(HeatedSplitShot) && OpenerStep == 25) CurrentState = OpenerState.OpenerFinished; + else if (OpenerStep == 25) actionID = HeatedSplitShot; + + if (ActionWatching.TimeSinceLastAction.TotalSeconds >= 5) + CurrentState = OpenerState.FailedOpener; + + if (((actionID == Ricochet && CustomComboFunctions.GetRemainingCharges(Ricochet) < 3) || + (actionID == ChainSaw && CustomComboFunctions.IsOnCooldown(ChainSaw)) || + (actionID == Wildfire && CustomComboFunctions.IsOnCooldown(Wildfire)) || + (actionID == BarrelStabilizer && CustomComboFunctions.IsOnCooldown(BarrelStabilizer)) || + (actionID == GaussRound && CustomComboFunctions.GetRemainingCharges(GaussRound) < 3)) && ActionWatching.TimeSinceLastAction.TotalSeconds >= 3) + { + CurrentState = OpenerState.FailedOpener; + return false; + } + } + + else + { + if (CustomComboFunctions.WasLastAction(AirAnchor) && OpenerStep == 1) OpenerStep++; + else if (OpenerStep == 1) actionID = AirAnchor; + + if (CustomComboFunctions.WasLastAction(Ricochet) && OpenerStep == 2) OpenerStep++; + else if (OpenerStep == 2) actionID = Ricochet; + + if (CustomComboFunctions.WasLastAction(GaussRound) && OpenerStep == 3) OpenerStep++; + else if (OpenerStep == 3) actionID = GaussRound; + + if (CustomComboFunctions.WasLastAction(Drill) && OpenerStep == 4) OpenerStep++; + else if (OpenerStep == 4) actionID = Drill; + + if (CustomComboFunctions.WasLastAction(BarrelStabilizer) && OpenerStep == 5) OpenerStep++; + else if (OpenerStep == 5) actionID = BarrelStabilizer; + + if (CustomComboFunctions.WasLastAction(Reassemble) && OpenerStep == 6) OpenerStep++; + else if (OpenerStep == 6) actionID = Reassemble; + + if (CustomComboFunctions.WasLastAction(ChainSaw) && OpenerStep == 7) OpenerStep++; + else if (OpenerStep == 7) actionID = ChainSaw; + + if (CustomComboFunctions.WasLastAction(Ricochet) && OpenerStep == 8) OpenerStep++; + else if (OpenerStep == 8) actionID = Ricochet; + + if (CustomComboFunctions.WasLastAction(GaussRound) && OpenerStep == 9) OpenerStep++; + else if (OpenerStep == 9) actionID = GaussRound; + + if (CustomComboFunctions.WasLastAction(HeatedSplitShot) && OpenerStep == 10) OpenerStep++; + else if (OpenerStep == 10) actionID = HeatedSplitShot; + + if (CustomComboFunctions.WasLastAction(Ricochet) && OpenerStep == 11) OpenerStep++; + else if (OpenerStep == 11) actionID = Ricochet; + + if (CustomComboFunctions.WasLastAction(HeatedSlugshot) && OpenerStep == 12) OpenerStep++; + else if (OpenerStep == 12) actionID = HeatedSlugshot; + + if (CustomComboFunctions.WasLastAction(GaussRound) && OpenerStep == 13) OpenerStep++; + else if (OpenerStep == 13) actionID = GaussRound; + + if (CustomComboFunctions.WasLastAction(Wildfire) && OpenerStep == 14) OpenerStep++; + else if (OpenerStep == 14) actionID = Wildfire; + + if (CustomComboFunctions.WasLastAction(HeatedCleanShot) && OpenerStep == 15) OpenerStep++; + else if (OpenerStep == 15) actionID = HeatedCleanShot; + + if (CustomComboFunctions.WasLastAction(AutomatonQueen) && OpenerStep == 16) OpenerStep++; + else if (OpenerStep == 16) actionID = AutomatonQueen; + + if (CustomComboFunctions.WasLastAction(Hypercharge) && OpenerStep == 17) OpenerStep++; + else if (OpenerStep == 17) actionID = Hypercharge; + + if (CustomComboFunctions.WasLastAction(HeatBlast) && CustomComboFunctions.GetBuffStacks(Buffs.Overheated) == 4 && OpenerStep == 18) OpenerStep++; + else if (OpenerStep == 18) actionID = HeatBlast; + + if (CustomComboFunctions.WasLastAction(Ricochet) && OpenerStep == 19) OpenerStep++; + else if (OpenerStep == 19) actionID = Ricochet; + + if (CustomComboFunctions.WasLastAction(HeatBlast) && CustomComboFunctions.GetBuffStacks(Buffs.Overheated) == 3 && OpenerStep == 20) OpenerStep++; + else if (OpenerStep == 20) actionID = HeatBlast; + + if (CustomComboFunctions.WasLastAction(GaussRound) && OpenerStep == 21) OpenerStep++; + else if (OpenerStep == 21) actionID = GaussRound; + + if (CustomComboFunctions.WasLastAction(HeatBlast) && CustomComboFunctions.GetBuffStacks(Buffs.Overheated) == 2 && OpenerStep == 22) OpenerStep++; + else if (OpenerStep == 22) actionID = HeatBlast; + + if (CustomComboFunctions.WasLastAction(GaussRound) && OpenerStep == 23) OpenerStep++; + else if (OpenerStep == 23) actionID = GaussRound; + + if (CustomComboFunctions.WasLastAction(HeatBlast) && CustomComboFunctions.GetBuffStacks(Buffs.Overheated) == 1 && OpenerStep == 24) OpenerStep++; + else if (OpenerStep == 24) actionID = HeatBlast; + + if (CustomComboFunctions.WasLastAction(Ricochet) && OpenerStep == 25) OpenerStep++; + else if (OpenerStep == 25) actionID = Ricochet; + + if (CustomComboFunctions.WasLastAction(HeatBlast) && CustomComboFunctions.GetBuffStacks(Buffs.Overheated) == 0 && OpenerStep == 26) CurrentState = OpenerState.OpenerFinished; + else if (OpenerStep == 26) actionID = HeatBlast; + } + + if (ActionWatching.TimeSinceLastAction.TotalSeconds >= 5) + CurrentState = OpenerState.FailedOpener; + + if (((actionID == Ricochet && CustomComboFunctions.GetRemainingCharges(Ricochet) < 3) || + (actionID == ChainSaw && CustomComboFunctions.IsOnCooldown(ChainSaw)) || + (actionID == Wildfire && CustomComboFunctions.IsOnCooldown(Wildfire)) || + (actionID == BarrelStabilizer && CustomComboFunctions.IsOnCooldown(BarrelStabilizer)) || + (actionID == GaussRound && CustomComboFunctions.GetRemainingCharges(GaussRound) < 3)) && ActionWatching.TimeSinceLastAction.TotalSeconds >= 3) + { + CurrentState = OpenerState.FailedOpener; + return false; + } + + return true; + } + + return false; + } + + private bool DoOpenerSimple(ref uint actionID) + { + if (!LevelChecked) return false; + + if (currentState == OpenerState.InOpener) + { + if (CustomComboFunctions.WasLastAction(GaussRound) && OpenerStep == 1) OpenerStep++; + else if (OpenerStep == 1) actionID = GaussRound; + + if (CustomComboFunctions.WasLastAction(Ricochet) && OpenerStep == 2) OpenerStep++; + else if (OpenerStep == 2) actionID = Ricochet; + + if (CustomComboFunctions.WasLastAction(Drill) && OpenerStep == 3) OpenerStep++; + else if (OpenerStep == 3) actionID = Drill; + + if (CustomComboFunctions.WasLastAction(BarrelStabilizer) && OpenerStep == 4) OpenerStep++; + else if (OpenerStep == 4) actionID = BarrelStabilizer; + + if (CustomComboFunctions.WasLastAction(HeatedSlugshot) && OpenerStep == 5) OpenerStep++; + else if (OpenerStep == 5) actionID = HeatedSlugshot; + + if (CustomComboFunctions.WasLastAction(Ricochet) && OpenerStep == 6) OpenerStep++; + else if (OpenerStep == 6) actionID = Ricochet; + + if (CustomComboFunctions.WasLastAction(HeatedCleanShot) && OpenerStep == 7) OpenerStep++; + else if (OpenerStep == 7) actionID = HeatedCleanShot; + + if (CustomComboFunctions.WasLastAction(Reassemble) && OpenerStep == 8) OpenerStep++; + else if (OpenerStep == 8) actionID = Reassemble; + + if (CustomComboFunctions.WasLastAction(GaussRound) && OpenerStep == 9) OpenerStep++; + else if (OpenerStep == 9) actionID = GaussRound; + + if (CustomComboFunctions.WasLastAction(AirAnchor) && OpenerStep == 10) OpenerStep++; + else if (OpenerStep == 10) actionID = AirAnchor; + + if (CustomComboFunctions.WasLastAction(Reassemble) && OpenerStep == 11) OpenerStep++; + else if (OpenerStep == 11) actionID = Reassemble; + + if (CustomComboFunctions.WasLastAction(Wildfire) && OpenerStep == 12) OpenerStep++; + else if (OpenerStep == 12) actionID = Wildfire; + + if (CustomComboFunctions.WasLastAction(ChainSaw) && OpenerStep == 13) OpenerStep++; + else if (OpenerStep == 13) actionID = ChainSaw; + + if (CustomComboFunctions.WasLastAction(AutomatonQueen) && OpenerStep == 14) OpenerStep++; + else if (OpenerStep == 14) actionID = AutomatonQueen; + + if (CustomComboFunctions.WasLastAction(Hypercharge) && OpenerStep == 15) OpenerStep++; + else if (OpenerStep == 15) actionID = Hypercharge; + + if (CustomComboFunctions.WasLastAction(HeatBlast) && CustomComboFunctions.GetBuffStacks(Buffs.Overheated) == 4 && OpenerStep == 16) OpenerStep++; + else if (OpenerStep == 16) actionID = HeatBlast; + + if (CustomComboFunctions.WasLastAction(Ricochet) && OpenerStep == 17) OpenerStep++; + else if (OpenerStep == 17) actionID = Ricochet; + + if (CustomComboFunctions.WasLastAction(HeatBlast) && CustomComboFunctions.GetBuffStacks(Buffs.Overheated) == 3 && OpenerStep == 18) OpenerStep++; + else if (OpenerStep == 18) actionID = HeatBlast; + + if (CustomComboFunctions.WasLastAction(GaussRound) && OpenerStep == 19) OpenerStep++; + else if (OpenerStep == 19) actionID = GaussRound; + + if (CustomComboFunctions.WasLastAction(HeatBlast) && CustomComboFunctions.GetBuffStacks(Buffs.Overheated) == 2 && OpenerStep == 20) OpenerStep++; + else if (OpenerStep == 20) actionID = HeatBlast; + + if (CustomComboFunctions.WasLastAction(Ricochet) && OpenerStep == 21) OpenerStep++; + else if (OpenerStep == 21) actionID = Ricochet; + + if (CustomComboFunctions.WasLastAction(HeatBlast) && CustomComboFunctions.GetBuffStacks(Buffs.Overheated) == 1 && OpenerStep == 22) OpenerStep++; + else if (OpenerStep == 22) actionID = HeatBlast; + + if (CustomComboFunctions.WasLastAction(GaussRound) && OpenerStep == 23) OpenerStep++; + else if (OpenerStep == 23) actionID = GaussRound; + + if (CustomComboFunctions.WasLastAction(HeatBlast) && CustomComboFunctions.GetBuffStacks(Buffs.Overheated) == 0 && OpenerStep == 24) OpenerStep++; + else if (OpenerStep == 24) actionID = HeatBlast; + + if (CustomComboFunctions.WasLastAction(Ricochet) && OpenerStep == 25) OpenerStep++; + else if (OpenerStep == 25) actionID = Ricochet; + + if (CustomComboFunctions.WasLastAction(Drill) && OpenerStep == 26) CurrentState = OpenerState.OpenerFinished; + else if (OpenerStep == 26) actionID = Drill; + + if (ActionWatching.TimeSinceLastAction.TotalSeconds >= 5) + CurrentState = OpenerState.FailedOpener; + + if (((actionID == Ricochet && CustomComboFunctions.GetRemainingCharges(Ricochet) < 3) || + (actionID == ChainSaw && CustomComboFunctions.IsOnCooldown(ChainSaw)) || + (actionID == Wildfire && CustomComboFunctions.IsOnCooldown(Wildfire)) || + (actionID == BarrelStabilizer && CustomComboFunctions.IsOnCooldown(BarrelStabilizer)) || + (actionID == GaussRound && CustomComboFunctions.GetRemainingCharges(GaussRound) < 3)) && ActionWatching.TimeSinceLastAction.TotalSeconds >= 3) + { + CurrentState = OpenerState.FailedOpener; + return false; + } + + return true; + } + return false; + } + + private void ResetOpener() + { + PrePullStep = 0; + OpenerStep = 0; + } + + public bool DoFullOpener(ref uint actionID, bool simpleMode) + { + if (!LevelChecked) return false; + + if (CurrentState == OpenerState.PrePull) + if (DoPrePullSteps(ref actionID)) return true; + + if (CurrentState == OpenerState.InOpener) + { + if (simpleMode) + { + if (DoOpenerSimple(ref actionID)) return true; + } + else + { + if (DoOpener(ref actionID)) return true; + } + } + + if (!CustomComboFunctions.InCombat()) + { + ResetOpener(); + CurrentState = OpenerState.PrePull; + } + + + return false; + } + } +} \ No newline at end of file diff --git a/XIVSlothCombo/Combos/JobHelpers/NIN.cs b/XIVSlothCombo/Combos/JobHelpers/NIN.cs index ae0166f91..e281575a6 100644 --- a/XIVSlothCombo/Combos/JobHelpers/NIN.cs +++ b/XIVSlothCombo/Combos/JobHelpers/NIN.cs @@ -8,7 +8,7 @@ namespace XIVSlothCombo.Combos.JobHelpers { - internal class NIN + internal class NIN { internal class MudraCasting : PvE.NIN { diff --git a/XIVSlothCombo/Combos/PvE/BLM.cs b/XIVSlothCombo/Combos/PvE/BLM.cs index c9bd5e4f0..531cb6727 100644 --- a/XIVSlothCombo/Combos/PvE/BLM.cs +++ b/XIVSlothCombo/Combos/PvE/BLM.cs @@ -1,93 +1,101 @@ -using System; -using System.Collections.Generic; using Dalamud.Game.ClientState.JobGauge.Types; using Dalamud.Game.ClientState.Statuses; +using System.Collections.Generic; +using XIVSlothCombo.Combos.JobHelpers; using XIVSlothCombo.Combos.PvE.Content; -using XIVSlothCombo.Core; using XIVSlothCombo.CustomComboNS; using XIVSlothCombo.CustomComboNS.Functions; -using static FFXIVClientStructs.FFXIV.Client.UI.Misc.RaptureMacroModule.Macro; +using XIVSlothCombo.Extensions; namespace XIVSlothCombo.Combos.PvE { - internal static class BLM + internal class BLM { public const byte ClassID = 7; public const byte JobID = 25; - internal const uint + public const uint Fire = 141, Blizzard = 142, Thunder = 144, - Blizzard2 = 25793, - Transpose = 149, Fire2 = 147, + Transpose = 149, Fire3 = 152, Thunder3 = 153, - Thunder2 = 7447, - Thunder4 = 7420, Blizzard3 = 154, + AetherialManipulation = 155, Scathe = 156, + Manafont = 158, Freeze = 159, Flare = 162, - AetherialManipulation = 155, LeyLines = 3573, + Sharpcast = 3574, Blizzard4 = 3576, Fire4 = 3577, BetweenTheLines = 7419, + Thunder4 = 7420, + Triplecast = 7421, + Foul = 7422, + Thunder2 = 7447, Despair = 16505, UmbralSoul = 16506, - Paradox = 25797, - Amplifier = 25796, + Xenoglossy = 16507, + Blizzard2 = 25793, HighFire2 = 25794, HighBlizzard2 = 25795, - Xenoglossy = 16507, - Foul = 7422, - Sharpcast = 3574, - Manafont = 158, - Triplecast = 7421; + Amplifier = 25796, + Paradox = 25797; - internal static class Buffs + public static class Buffs { - internal const ushort + public const ushort Thundercloud = 164, + Firestarter = 165, LeyLines = 737, CircleOfPower = 738, - Firestarter = 165, Sharpcast = 867, - Triplecast = 1211; + Triplecast = 1211, + EnhancedFlare = 2960; } - internal static class Debuffs + public static class Debuffs { - internal const ushort + public const ushort Thunder = 161, Thunder2 = 162, Thunder3 = 163, Thunder4 = 1210; } - internal static class Traits + public static class Traits { - internal const uint + public const uint + EnhancedFreeze = 295, + EnhancedPolyGlot = 297, AspectMasteryIII = 459, + EnhancedFoul = 461, EnhancedManafont = 463, - EnhancedFreeze = 295; + Enochian = 460; } - internal static class MP + + public static class MP { - internal const int MaxMP = 10000; - internal const int Despair = 800; //"ALL MP" spell. Only caring about the absolute minimum. - internal static int Thunder => CustomComboFunctions.GetResourceCost(CustomComboFunctions.OriginalHook(BLM.Thunder)); - internal static int ThunderAoE => CustomComboFunctions.GetResourceCost(CustomComboFunctions.OriginalHook(BLM.Thunder2)); - internal static int Fire => CustomComboFunctions.GetResourceCost(CustomComboFunctions.OriginalHook(BLM.Fire)); - internal static int FireAoE => CustomComboFunctions.GetResourceCost(CustomComboFunctions.OriginalHook(BLM.Fire2)); - internal static int Fire3 => CustomComboFunctions.GetResourceCost(CustomComboFunctions.OriginalHook(BLM.Fire3)); - //internal static int Blizzard3 => CustomComboFunctions.GetResourceCost(CustomComboFunctions.OriginalHook(BLM.Blizzard3)); + public const int MaxMP = 10000; + + public const int AllMPSpells = 800; //"ALL MP" spell. Only caring about the absolute minimum. + public static int ThunderST => CustomComboFunctions.GetResourceCost(CustomComboFunctions.OriginalHook(Thunder)); + public static int ThunderAoE => CustomComboFunctions.GetResourceCost(CustomComboFunctions.OriginalHook(Thunder2)); + public static int FireI => CustomComboFunctions.GetResourceCost(CustomComboFunctions.OriginalHook(Fire)); + public static int FireAoE => CustomComboFunctions.GetResourceCost(CustomComboFunctions.OriginalHook(Fire2)); + public static int FireIII => CustomComboFunctions.GetResourceCost(CustomComboFunctions.OriginalHook(Fire3)); + public static int BlizzardAoE => CustomComboFunctions.GetResourceCost(CustomComboFunctions.OriginalHook(Blizzard2)); + public static int BlizzardI => CustomComboFunctions.GetResourceCost(CustomComboFunctions.OriginalHook(Blizzard)); + + public static int Freeze => CustomComboFunctions.GetResourceCost(CustomComboFunctions.OriginalHook(BLM.Freeze)); } // Debuff Pairs of Actions and Debuff - internal static readonly Dictionary + public static readonly Dictionary ThunderList = new() { { Thunder, Debuffs.Thunder }, @@ -95,1080 +103,677 @@ internal static readonly Dictionary { Thunder3, Debuffs.Thunder3 }, { Thunder4, Debuffs.Thunder4 } }; - private static BLMGauge Gauge => CustomComboFunctions.GetJobGauge(); - private static bool HasPolyglotStacks(this BLMGauge gauge) => gauge.PolyglotStacks > 0; - internal static class Config + public static class Config { - internal const string BLM_PolyglotsStored = "BlmPolyglotsStored "; - internal const string BLM_AstralFireRefresh = "BlmAstralFireRefresh "; - internal const string BLM_MovementTime = "BlmMovementTime"; - internal const string BLM_VariantCure = "BlmVariantCure"; + public static UserBool + BLM_Adv_Xeno_Burst = new("BLM_Adv_Xeno_Burst"); + + public static UserBoolArray + BLM_Adv_Cooldowns_Choice = new("BLM_Adv_Cooldowns_Choice"), + BLM_AoE_Adv_Cooldowns_Choice = new("BLM_AoE_Adv_Cooldowns_Choice"), + BLM_Adv_Movement_Choice = new("BLM_Adv_Movement_Choice"); + + public static UserInt + BLM_VariantCure = new("BLM_VariantCure"), + BLM_Adv_Cooldowns = new("BLM_Adv_Cooldowns"), + BLM_Adv_Thunder = new("BLM_Adv_Thunder"), + BLM_Adv_Rotation_Options = new("BLM_Adv_Rotation_Options"), + BLM_Advanced_OpenerSelection = new("BLM_Advanced_OpenerSelection"), + BLM_ST_Adv_ThunderHP = new("BLM_ST_Adv_ThunderHP"), + BLM_AoE_Adv_ThunderHP = new("BLM_AoE_Adv_ThunderHP"), + BLM_AoE_Adv_ThunderUptime = new("BLM_AoE_Adv_ThunderUptime"), + BLM_Adv_ThunderCloud = new("BLM_Adv_ThunderCloud"), + BLM_Adv_InitialCast = new("BLM_Adv_InitialCast"); + + public static UserFloat + BLM_AstralFire_Refresh = new("BLM_AstralFire_Refresh"); } - - internal class BLM_Blizzard : CustomCombo + internal class BLM_ST_SimpleMode : CustomCombo { - protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.BLM_Blizzard; + protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.BLM_ST_SimpleMode; + internal static BLMOpenerLogic BLMOpener = new(); protected override uint Invoke(uint actionID, uint lastComboMove, float comboTime, byte level) { - if (actionID is Blizzard && LevelChecked(Freeze) && !Gauge.InUmbralIce) - return Blizzard3; - if (actionID is Freeze && !LevelChecked(Freeze)) - return Blizzard2; - return actionID; - } - } + uint currentMP = LocalPlayer.CurrentMp; + float astralFireRefresh = 8000; + Status? dotDebuff = FindTargetEffect(ThunderList[OriginalHook(Thunder)]); // Match DoT with its debuff ID, and check for the debuff + BLMGauge? gauge = GetJobGauge(); - internal class BLM_Fire_1to3 : CustomCombo - { - protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.BLM_Fire_1to3; + if (actionID is Fire) + { + // Opener for BLM + if (BLMOpener.DoFullOpener(ref actionID, true)) + return actionID; - protected override uint Invoke(uint actionID, uint lastComboMove, float comboTime, byte level) - { - if (actionID is Fire && ((LevelChecked(Fire3) && !Gauge.InAstralFire) || HasEffect(Buffs.Firestarter))) - return Fire3; + // Use under Fire or Ice + if (gauge.ElementTimeRemaining > 0) + { + // Umbral Soul/Transpose when there's no target + if (CurrentTarget is null) + { + if (gauge.InAstralFire && LevelChecked(Transpose)) + return Transpose; - return actionID; - } - } + if (gauge.InUmbralIce && LevelChecked(UmbralSoul)) + return UmbralSoul; + } - internal class BLM_LeyLines : CustomCombo - { - protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.BLM_LeyLines; + if (IsEnabled(CustomComboPreset.BLM_Variant_Cure) && + IsEnabled(Variant.VariantCure) && PlayerHealthPercentageHp() <= Config.BLM_VariantCure) + return Variant.VariantCure; - protected override uint Invoke(uint actionID, uint lastComboMove, float comboTime, byte level) => - actionID is LeyLines && HasEffect(Buffs.LeyLines) && LevelChecked(BetweenTheLines) ? BetweenTheLines : actionID; - } + if (IsEnabled(CustomComboPreset.BLM_Variant_Rampart) && + IsEnabled(Variant.VariantRampart) && + IsOffCooldown(Variant.VariantRampart) && + CanSpellWeave(actionID)) + return Variant.VariantRampart; - internal class BLM_AetherialManipulation : CustomCombo - { - protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.BLM_AetherialManipulation; + // Handle movement + if (IsMoving && InCombat()) + { + if (!HasEffect(Buffs.Sharpcast) && ActionReady(Sharpcast)) + return Sharpcast; - protected override uint Invoke(uint actionID, uint lastComboMove, float comboTime, byte level) => - actionID is AetherialManipulation && - ActionReady(BetweenTheLines) && - HasEffect(Buffs.LeyLines) && - !HasEffect(Buffs.CircleOfPower) && - !IsMoving - ? BetweenTheLines : actionID; - } + if (HasEffect(Buffs.Thundercloud) && HasEffect(Buffs.Sharpcast) && + (dotDebuff is null || dotDebuff?.RemainingTime <= 10)) + return OriginalHook(Thunder); - internal class BLM_Mana : CustomCombo - { - protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.BLM_Mana; + if (HasEffect(Buffs.Firestarter) && gauge.InAstralFire && LevelChecked(Fire3)) + return Fire3; - protected override uint Invoke(uint actionID, uint lastComboMove, float comboTime, byte level) => - actionID is Transpose && Gauge.InUmbralIce && LevelChecked(UmbralSoul) ? UmbralSoul : actionID; - } + if (LevelChecked(Paradox) && gauge.IsParadoxActive && gauge.InUmbralIce) + return Paradox; - internal class BLM_AoE_SimpleMode : CustomCombo - { - protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.BLM_AoE_SimpleMode; + if (LevelChecked(Xenoglossy) && gauge.PolyglotStacks > 1) + return Xenoglossy; - internal static DateTime previousTime; - internal static double movementTime = 0.0f; + if (ActionReady(All.Swiftcast) && !HasEffect(Buffs.Triplecast)) + return All.Swiftcast; - protected override uint Invoke(uint actionID, uint lastComboMove, float comboTime, byte level) - { - if (actionID is Flare) - { - // Handle movement - if (IsEnabled(CustomComboPreset.BLM_Simple_CastMovement) && InCombat()) - { - var movementTimeThreshold = PluginConfiguration.GetCustomFloatValue(Config.BLM_MovementTime); - double deltaTime = (DateTime.Now - previousTime).TotalSeconds; - previousTime = DateTime.Now; - if (IsMoving) - { - movementTime = movementTime + deltaTime > movementTimeThreshold + 0.02 ? movementTimeThreshold + 0.02 : movementTime + deltaTime; + if (ActionReady(Triplecast) && GetBuffStacks(Buffs.Triplecast) is 0 && !HasEffect(All.Buffs.Swiftcast)) + return Triplecast; + + if ((GetBuffStacks(Buffs.Triplecast) is 0) && LevelChecked(Scathe)) + return Scathe; } - else + + // Thunder I/III uptime + if (!ThunderList.ContainsKey(lastComboMove) && + (currentMP >= MP.ThunderST || (HasEffect(Buffs.Sharpcast) && HasEffect(Buffs.Thundercloud)))) { - movementTime = movementTime - deltaTime < 0 ? 0 : movementTime - (deltaTime * 2); + if (LevelChecked(Thunder3) && + GetDebuffRemainingTime(Debuffs.Thunder3) <= 4) + return Thunder3; + + if (LevelChecked(Thunder) && !LevelChecked(Thunder3) && + GetDebuffRemainingTime(Debuffs.Thunder) <= 4) + return Thunder; } - if (movementTime > movementTimeThreshold && !HasEffect(Buffs.Triplecast) && !HasEffect(All.Buffs.Swiftcast)) + // Use Triplecast only with Astral Fire/Umbral Hearts, and we have enough MP to cast Fire IV twice + if (GetRemainingCharges(Triplecast) is 2 && + LevelChecked(Triplecast) && !HasEffect(Buffs.Triplecast) && !HasEffect(All.Buffs.Swiftcast) && + (gauge.InAstralFire || gauge.UmbralHearts is 3) && + currentMP >= MP.FireI * 2) + return Triplecast; + + // Weave Buffs + if (CanSpellWeave(actionID)) { - if (InCombat() && LocalPlayer.CurrentCastTime == 0.0f) - { - if (HasEffect(Buffs.Thundercloud)) - { - if (!ThunderList.ContainsKey(lastComboMove)) - { - uint dot = OriginalHook(Thunder2); //Grab the appropriate DoT Action - return dot; - } - } - if (IsOffCooldown(All.Swiftcast)) - { - return All.Swiftcast; - } - if (ActionReady(Triplecast)) - { - return Triplecast; - } - } + if (ActionReady(Amplifier) && gauge.PolyglotStacks < 2) + return Amplifier; + + if (ActionReady(LeyLines)) + return LeyLines; } } + // Handle initial cast + if (gauge.ElementTimeRemaining <= 0) + { + if (LevelChecked(Fire3)) + return (currentMP >= MP.FireIII) + ? Fire3 + : Blizzard3; - var currentMP = LocalPlayer.CurrentMp; - var polyToStore = PluginConfiguration.GetCustomIntValue(Config.BLM_PolyglotsStored); - - if (IsEnabled(CustomComboPreset.BLM_Variant_Cure) && IsEnabled(Variant.VariantCure) && PlayerHealthPercentageHp() <= GetOptionValue(Config.BLM_VariantCure)) - return Variant.VariantCure; + return (currentMP >= MP.FireI) + ? Fire + : Blizzard; + } - if (IsEnabled(CustomComboPreset.BLM_Variant_Rampart) && - IsEnabled(Variant.VariantRampart) && - IsOffCooldown(Variant.VariantRampart) && - CanSpellWeave(actionID)) - return Variant.VariantRampart; + // Before Blizzard III; Fire until 0 MP, then Blizzard until max MP. + if (!LevelChecked(Blizzard3)) + { + if (gauge.InAstralFire) + return (currentMP < MP.FireI) + ? Transpose + : Fire; + + if (gauge.InUmbralIce) + return (currentMP >= MP.MaxMP - MP.BlizzardI) + ? Transpose + : Blizzard; + } - // Polyglot usage - if (IsEnabled(CustomComboPreset.BLM_AoE_Simple_Foul) && LevelChecked(Manafont) && LevelChecked(Foul)) + // Before Fire IV; Fire until 0 MP (w/ Firestarter), then Blizzard III and Blizzard/Blizzard IV until max MP. 5000 for not being bot behaviour + if (!LevelChecked(Fire4)) { - if (Gauge.InAstralFire && currentMP <= MP.FireAoE && IsOffCooldown(Manafont) && CanSpellWeave(actionID) && lastComboMove == Foul) + if (gauge.InAstralFire) { - return Manafont; - } + if (HasEffect(Buffs.Firestarter) && GetBuffRemainingTime(Buffs.Firestarter) <= 27) + return Fire3; - if ((Gauge.InAstralFire && currentMP <= MP.FireAoE && IsOffCooldown(Manafont) && Gauge.HasPolyglotStacks()) || (IsOnCooldown(Manafont) && (GetCooldownRemainingTime(Manafont) >= 30 && Gauge.PolyglotStacks > polyToStore))) - { - return Foul; + return (currentMP < MP.FireI) + ? Blizzard3 + : Fire; } - } - // Thunder uptime - if (currentMP >= MP.ThunderAoE && lastComboMove != Manafont) - { - uint thunderST = OriginalHook(Thunder); //Grab whichever Thunder player can use - uint thunderAOE = OriginalHook(Thunder2); //Grab whichever Thunder AoE player can use - if (ThunderList.TryGetValue(thunderAOE, out ushort dotDebuffID)) + if (gauge.InUmbralIce) { - var thunderAOEDebuff = TargetHasEffect(dotDebuffID); - var thunderAOETimer = FindTargetEffect(dotDebuffID); + if (LevelChecked(Blizzard4) && gauge.UmbralHearts < 3) + return Blizzard4; - if (LevelChecked(thunderAOE)) - { - if (lastComboMove != thunderST && lastComboMove != thunderAOE && (!thunderAOEDebuff || thunderAOETimer.RemainingTime <= 4) && - ((Gauge.InUmbralIce && Gauge.UmbralHearts == 3) || - (Gauge.InAstralFire && !HasEffect(Buffs.Triplecast) && !HasEffect(All.Buffs.Swiftcast)))) - { - return thunderAOE; - } - } + return (currentMP == MP.MaxMP || gauge.UmbralHearts is 3) + ? Fire3 + : Blizzard; } } - // Fire 2 / Flare - if (Gauge.InAstralFire) + // Normal Fire phase + if (gauge.InAstralFire) { - //Grab Fire 2 / High Fire 2 action ID - uint fireAoEID = OriginalHook(Fire2); - if (currentMP >= 7000) - { - if (Gauge.UmbralHearts == 1) - { - return Flare; - } - return fireAoEID; - } - else if (currentMP >= MP.Despair) - { - if (LevelChecked(Flare)) - { - return Flare; - } - else if (currentMP >= MP.FireAoE) - { - return fireAoEID; - } - } - else if (!TraitLevelChecked(Traits.AspectMasteryIII)) + // Xenoglossy overcap protection + if ((gauge.PolyglotStacks is 2 && (gauge.EnochianTimer <= 3000) && TraitLevelChecked(Traits.EnhancedPolyGlot)) || + (gauge.PolyglotStacks is 1 && (gauge.EnochianTimer <= 6000) && !TraitLevelChecked(Traits.EnhancedPolyGlot))) + return LevelChecked(Xenoglossy) + ? Xenoglossy + : Foul; + + // Fire III proc (< 3 Astral Fire stacks) + if (gauge.AstralFireStacks < 3 || (gauge.ElementTimeRemaining <= 3000 && HasEffect(Buffs.Firestarter))) + return Fire3; + + // Use Paradox instead of hardcasting Fire if we can + if (gauge.ElementTimeRemaining <= astralFireRefresh && !HasEffect(Buffs.Firestarter) && currentMP >= MP.FireI) + return OriginalHook(Fire); + + if (ActionReady(Manafont) && WasLastAction(Despair)) + return Manafont; + + // Cast Fire IV after Manafont + if (IsOnCooldown(Manafont) && WasLastAction(Manafont) && Fire4.LevelChecked()) + return Fire4; + + // Blizzard III/Despair when below Fire IV + Despair MP + if (currentMP < MP.FireI || gauge.ElementTimeRemaining <= 5000) { - return Transpose; + if (currentMP >= MP.FireI) + return OriginalHook(Fire); + + if (currentMP < MP.FireI && currentMP >= MP.AllMPSpells && LevelChecked(Despair)) + return Despair; + + return Blizzard3; } + + return Fire4; } - // Umbral Hearts - if (Gauge.InUmbralIce) + // Normal Ice phase + if (gauge.InUmbralIce) { - if (TraitLevelChecked(Traits.EnhancedFreeze) && Gauge.UmbralHearts <= 2) - { - return Freeze; - } - else if (LevelChecked(Freeze) && currentMP < (MP.MaxMP - MP.ThunderAoE)) - { - return Freeze; - } - if (!TraitLevelChecked(Traits.AspectMasteryIII)) - { - return (currentMP >= (MP.MaxMP - MP.ThunderAoE)) ? Transpose : Blizzard2; - } - if (LevelChecked(Fire2)) return OriginalHook(Fire2); - } + // Xenoglossy overcap protection + if (gauge.EnochianTimer <= 20000 && + ((gauge.PolyglotStacks is 2 && TraitLevelChecked(Traits.EnhancedPolyGlot)) || + (gauge.PolyglotStacks is 1 && !TraitLevelChecked(Traits.EnhancedPolyGlot)))) + return LevelChecked(Xenoglossy) + ? Xenoglossy + : Foul; + + // Sharpcast + if (ActionReady(Sharpcast) && !HasEffect(Buffs.Sharpcast) && + !WasLastAction(Thunder3) && CanSpellWeave(actionID)) + return Sharpcast; + + // Use Paradox when available + if (LevelChecked(Paradox) && gauge.IsParadoxActive) + return Paradox; + + // Use Polyglot stacks on cooldown + if (gauge.HasPolyglotStacks()) + return LevelChecked(Xenoglossy) + ? Xenoglossy + : Foul; - if (LevelChecked(Blizzard2)) return OriginalHook(Blizzard2); + // Fire III when at max Umbral Hearts + return (gauge.UmbralHearts is 3 && currentMP >= MP.MaxMP - MP.ThunderST) + ? Fire3 + : Blizzard4; + } } return actionID; } } - internal class BLM_SimpleMode : CustomCombo + internal class BLM_ST_AdvancedMode : CustomCombo { - protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.BLM_SimpleMode; - - internal static bool inOpener = false; - internal static bool openerFinished = false; - internal static double movementTime = 0.0f; - internal static DateTime previousTime; - - internal delegate bool DotRecast(int value); + protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.BLM_ST_AdvancedMode; + internal static BLMOpenerLogic BLMOpener = new(); protected override uint Invoke(uint actionID, uint lastComboMove, float comboTime, byte level) { - if (actionID is Scathe) + uint currentMP = LocalPlayer.CurrentMp; + float astralFireRefresh = Config.BLM_AstralFire_Refresh * 1000; + int rotationSelection = Config.BLM_Adv_Rotation_Options; + Status? dotDebuff = FindTargetEffect(ThunderList[OriginalHook(Thunder)]); // Match DoT with its debuff ID, and check for the debuff + BLMGauge? gauge = GetJobGauge(); + int thunderRefreshTime = Config.BLM_Adv_Thunder; + int ThunderHP = Config.BLM_ST_Adv_ThunderHP; + + if (actionID is Fire) { - var canWeave = CanSpellWeave(actionID); - var currentMP = LocalPlayer.CurrentMp; - var astralFireRefresh = PluginConfiguration.GetCustomFloatValue(Config.BLM_AstralFireRefresh) * 1000; - - //var thunder = TargetHasEffect(Debuffs.Thunder); - var thunder3 = TargetHasEffect(Debuffs.Thunder3); - //var thunderDuration = FindTargetEffect(Debuffs.Thunder); - var thunder3Duration = FindTargetEffect(Debuffs.Thunder3); - - //DotRecast thunderRecast = delegate (int duration) - //{ - // return !thunder || (thunder && thunderDuration.RemainingTime < duration); - //}; - DotRecast thunder3Recast = delegate (int duration) + // Opener for BLM + if (IsEnabled(CustomComboPreset.BLM_Adv_Opener)) { - return !thunder3 || (thunder3 && thunder3Duration.RemainingTime < duration); - }; - + if (BLMOpener.DoFullOpener(ref actionID, false)) + return actionID; + } - if (IsEnabled(CustomComboPreset.BLM_Variant_Cure) && IsEnabled(Variant.VariantCure) && PlayerHealthPercentageHp() <= GetOptionValue(Config.BLM_VariantCure)) - return Variant.VariantCure; + //Thundercloud Spender + if (IsEnabled(CustomComboPreset.BLM_ST_Adv_Thunder_ThunderCloud) && + HasEffect(Buffs.Thundercloud) && + ((CanSpellWeave(actionID) && Config.BLM_Adv_ThunderCloud == 0) || Config.BLM_Adv_ThunderCloud == 1)) + return OriginalHook(Thunder); - if (IsEnabled(CustomComboPreset.BLM_Variant_Rampart) && - IsEnabled(Variant.VariantRampart) && - IsOffCooldown(Variant.VariantRampart) && - CanSpellWeave(actionID)) - return Variant.VariantRampart; - // Opener for BLM - // Credit to damolitionn for providing code to be used as a base for this opener - if (IsEnabled(CustomComboPreset.BLM_Simple_Opener) && LevelChecked(Foul)) + // Use under Fire or Ice + if (gauge.ElementTimeRemaining > 0) { - // Only enable sharpcast if it's available - if (!inOpener && !HasEffect(Buffs.Sharpcast) && HasCharges(Sharpcast) && lastComboMove != Thunder3) + // Umbral Soul/Transpose when there's no target + if (IsEnabled(CustomComboPreset.BLM_Adv_UmbralSoul) && CurrentTarget is null) { - return Sharpcast; - } + if (gauge.InAstralFire && LevelChecked(Transpose)) + return Transpose; - if (!InCombat() && (inOpener || openerFinished)) - { - inOpener = false; - openerFinished = false; + if (gauge.InUmbralIce && LevelChecked(UmbralSoul)) + return UmbralSoul; } - if (InCombat() && !inOpener) - { - inOpener = true; - } + if (IsEnabled(CustomComboPreset.BLM_Variant_Cure) && + IsEnabled(Variant.VariantCure) && PlayerHealthPercentageHp() <= Config.BLM_VariantCure) + return Variant.VariantCure; - if (InCombat() && inOpener && !openerFinished) + if (IsEnabled(CustomComboPreset.BLM_Variant_Rampart) && + IsEnabled(Variant.VariantRampart) && + IsOffCooldown(Variant.VariantRampart) && + CanSpellWeave(actionID)) + return Variant.VariantRampart; + + // Handle movement + if (IsEnabled(CustomComboPreset.BLM_Adv_Movement) && IsMoving && InCombat()) { - // Exit out of opener if Enochian is lost - if (!Gauge.IsEnochianActive) - { - openerFinished = true; - return Blizzard3; - } + if (Config.BLM_Adv_Movement_Choice[0] && + !HasEffect(Buffs.Sharpcast) && ActionReady(Sharpcast)) + return Sharpcast; - if (Gauge.InAstralFire) - { - // First Triplecast - if (lastComboMove != Triplecast && !HasEffect(Buffs.Triplecast) && HasCharges(Triplecast)) - { - var triplecastMP = 7600; - if (IsEnabled(CustomComboPreset.BLM_Simple_OpenerAlternate)) - { - triplecastMP = 6000; - } - if (currentMP <= triplecastMP && GetRemainingCharges(Triplecast) > 1) - { - return Triplecast; - } - } - - // Weave other oGCDs - if (canWeave) - { - // Weave Amplifier and Ley Lines - if (currentMP <= 4400) - { - if (ActionReady(Amplifier)) - { - return Amplifier; - } - if (ActionReady(LeyLines)) - { - return LeyLines; - } - } - - // Swiftcast - if (IsOffCooldown(All.Swiftcast) && IsOnCooldown(LeyLines)) - { - return All.Swiftcast; - } - - // Manafont - if (IsOffCooldown(Manafont) && (lastComboMove == Despair || lastComboMove == Fire)) - { - if (LevelChecked(Despair)) - { - if (currentMP < MP.Despair) - { - return Manafont; - } - } - else if (currentMP < MP.Fire) - { - return Manafont; - } - } - - // Second Triplecast / Sharpcast - if (!IsEnabled(CustomComboPreset.BLM_Simple_OpenerAlternate)) - { - if (!HasEffect(Buffs.Triplecast) && !HasEffect(All.Buffs.Swiftcast) && IsOnCooldown(All.Swiftcast) && - lastComboMove != All.Swiftcast && HasCharges(Triplecast) && currentMP < MP.Fire) - { - return Triplecast; - } - - if (!HasEffect(Buffs.Sharpcast) && HasCharges(Sharpcast) && IsOnCooldown(Manafont) && - lastComboMove == Fire4) - { - return Sharpcast; - } - } - } - - // Cast Despair - if (LevelChecked(Despair) && (currentMP < MP.Fire || Gauge.ElementTimeRemaining <= 4000) && currentMP >= MP.Despair) - { - return Despair; - } - - // Cast Fire - if (!LevelChecked(Despair) && Gauge.ElementTimeRemaining <= 6000 && currentMP >= MP.Fire) - { - return Fire; - } - - // Cast Fire 4 after Manafont - if (IsOnCooldown(Manafont)) - { - if ((!TraitLevelChecked(Traits.EnhancedManafont) && GetCooldownRemainingTime(Manafont) >= 179) || - (TraitLevelChecked(Traits.EnhancedManafont) && GetCooldownRemainingTime(Manafont) >= 119)) - { - return Fire4; - } - } - - // Fire4 / Umbral Ice - return currentMP >= MP.Fire ? Fire4 : Blizzard3; - } + if (Config.BLM_Adv_Movement_Choice[1] && + HasEffect(Buffs.Thundercloud) && HasEffect(Buffs.Sharpcast) && + (dotDebuff is null || dotDebuff?.RemainingTime <= 10)) + return OriginalHook(Thunder); - if (Gauge.InUmbralIce) - { - // Dump Polyglot Stacks - if (Gauge.HasPolyglotStacks() && Gauge.ElementTimeRemaining >= 6000) - { - return LevelChecked(Xenoglossy) ? Xenoglossy : Foul; - } - if (Gauge.IsParadoxActive && LevelChecked(Paradox)) - { - return Paradox; - } - if (Gauge.UmbralHearts < 3 && lastComboMove != Blizzard4) - { - return Blizzard4; - } - - // Refresh Thunder3 - if (HasEffect(Buffs.Thundercloud) && lastComboMove != Thunder3) - { - return Thunder3; - } - - openerFinished = true; - } - } - } + if (Config.BLM_Adv_Movement_Choice[2] && + HasEffect(Buffs.Firestarter) && gauge.InAstralFire && LevelChecked(Fire3)) + return Fire3; - // Handle movement - if (IsEnabled(CustomComboPreset.BLM_Simple_CastMovement) && InCombat()) - { - var movementTimeThreshold = PluginConfiguration.GetCustomFloatValue(Config.BLM_MovementTime); - double deltaTime = (DateTime.Now - previousTime).TotalSeconds; - previousTime = DateTime.Now; - if (IsMoving) - { - movementTime = movementTime + deltaTime > movementTimeThreshold + 0.02 ? movementTimeThreshold + 0.02 : movementTime + deltaTime; - } - else - { - movementTime = movementTime - deltaTime < 0 ? 0 : movementTime - (deltaTime * 2); - } + if (Config.BLM_Adv_Movement_Choice[3] && + LevelChecked(Paradox) && gauge.IsParadoxActive && gauge.InUmbralIce) + return Paradox; - if (movementTime > movementTimeThreshold && !HasEffect(Buffs.Triplecast) && !HasEffect(All.Buffs.Swiftcast)) - { - if (InCombat() && LocalPlayer.CurrentCastTime == 0.0f) - { - if (LevelChecked(Paradox) && Gauge.IsParadoxActive && Gauge.InUmbralIce) - { - return Paradox; - } - if (IsEnabled(CustomComboPreset.BLM_Simple_CastMovement_Xeno) && LevelChecked(Xenoglossy) && Gauge.HasPolyglotStacks()) - { - return Xenoglossy; - } - if (HasEffect(Buffs.Thundercloud)) - { - if (!ThunderList.ContainsKey(lastComboMove) && //Is not 1 2 3 or 4 - !TargetHasEffect(Debuffs.Thunder2) && !TargetHasEffect(Debuffs.Thunder4)) - { - uint dot = OriginalHook(Thunder); //Grab the appropriate DoT Action - Status? dotDebuff = FindTargetEffect(ThunderList[dot]); //Match it with it's Debuff ID, and check for the Debuff - - if (dotDebuff is null || dotDebuff?.RemainingTime <= 4) - return dot; //Use appropriate DoT Action - } - } - if (IsOffCooldown(All.Swiftcast)) - { - return All.Swiftcast; - } - if (ActionReady(Triplecast)) - { - return Triplecast; - } - if (HasEffect(Buffs.Firestarter) && Gauge.InAstralFire) - { - return Fire3; - } - if (IsEnabled(CustomComboPreset.BLM_Simple_CastMovement_Scathe)) - { - return Scathe; - } - } + if (Config.BLM_Adv_Movement_Choice[4] && + LevelChecked(Xenoglossy) && gauge.PolyglotStacks > 1) + return Xenoglossy; + + if ((rotationSelection is 0 || level < 90) && + Config.BLM_Adv_Movement_Choice[5] && + ActionReady(All.Swiftcast) && !HasEffect(Buffs.Triplecast)) + return All.Swiftcast; + + if (Config.BLM_Adv_Movement_Choice[6] && + ActionReady(Triplecast) && GetBuffStacks(Buffs.Triplecast) is 0 && !HasEffect(All.Buffs.Swiftcast)) + return Triplecast; + + if (Config.BLM_Adv_Movement_Choice[7] && (GetBuffStacks(Buffs.Triplecast) is 0) && LevelChecked(Scathe)) + return Scathe; } - } - // Handle thunder uptime and buffs - if (Gauge.ElementTimeRemaining > 0) - { - // Thunder uptime - if (IsEnabled(CustomComboPreset.BLM_Thunder) && Gauge.ElementTimeRemaining >= astralFireRefresh) + // Start of Transpose rotation - tried to merge with ice part, but it won't behave.. ( think its too low in the order to make this part work correctly if i merge in umbral ince) + if (rotationSelection is 1 && + gauge.InUmbralIce && gauge.HasPolyglotStacks() && ActionReady(All.Swiftcast) && level >= 90) { - if (!ThunderList.ContainsKey(lastComboMove) && - !TargetHasEffect(Debuffs.Thunder2) && !TargetHasEffect(Debuffs.Thunder4)) - { - if (HasEffect(Buffs.Thundercloud) || (IsEnabled(CustomComboPreset.BLM_ThunderUptime) && currentMP >= MP.Thunder)) - { - uint dot = OriginalHook(Thunder); //Grab the appropriate DoT Action - Status? dotDebuff = FindTargetEffect(ThunderList[dot]); //Match it with it's Debuff ID, and check for the Debuff - - if (dotDebuff is null || dotDebuff?.RemainingTime <= 3) - return dot; //Use appropriate DoT Action - } - } + if (gauge.UmbralIceStacks < 3 && + ActionReady(All.LucidDreaming) && ActionReady(All.Swiftcast)) + return All.LucidDreaming; + + if (HasEffect(All.Buffs.LucidDreaming) && ActionReady(All.Swiftcast)) + return All.Swiftcast; } - // Buffs - if (canWeave) - { - if (IsEnabled(CustomComboPreset.BLM_Simple_Casts)) - { - // Use Triplecast only with Astral Fire/Umbral Hearts, and we have enough MP to cast Fire IV twice - if (ActionReady(Triplecast) && !HasEffect(Buffs.Triplecast) && - (Gauge.InAstralFire || Gauge.UmbralHearts == 3) && currentMP >= MP.Fire * 2) - { - if (!IsEnabled(CustomComboPreset.BLM_Simple_Casts_Pooling) || GetRemainingCharges(Triplecast) > 1) - { - return Triplecast; - } - } - - // Use Swiftcast in Astral Fire - if (!IsEnabled(CustomComboPreset.BLM_Simple_Casts_Pooling) && ActionReady(All.Swiftcast) && - Gauge.InAstralFire && currentMP >= MP.Fire * (HasEffect(Buffs.Triplecast) ? 3 : 1)) - { - if (LevelChecked(Despair) && currentMP >= MP.Despair) - { - return All.Swiftcast; - } - else if (currentMP >= MP.Fire) - { - return All.Swiftcast; - } - } - } + // Sharpcast + if (Config.BLM_Adv_Cooldowns_Choice[1] && + ActionReady(Sharpcast) && !HasEffect(Buffs.Sharpcast) && + !WasLastAction(Thunder3) && CanSpellWeave(actionID)) + return Sharpcast; - if (IsEnabled(CustomComboPreset.BLM_Simple_Buffs)) - { - if (ActionReady(Amplifier) && Gauge.PolyglotStacks < 2) - { - return Amplifier; - } - } + // Use Triplecast only with Astral Fire/Umbral Hearts, and we have enough MP to cast Fire IV twice + if (IsEnabled(CustomComboPreset.BLM_Adv_Casts) && + ((IsNotEnabled(CustomComboPreset.BLM_Adv_Triplecast_Pooling) && GetRemainingCharges(Triplecast) > 0) || GetRemainingCharges(Triplecast) is 2) && + LevelChecked(Triplecast) && !HasEffect(Buffs.Triplecast) && !HasEffect(All.Buffs.Swiftcast) && + (gauge.InAstralFire || gauge.UmbralHearts is 3) && + currentMP >= MP.FireI * 2) + return Triplecast; - if (IsEnabled(CustomComboPreset.BLM_Simple_Buffs_LeyLines)) - { - if (ActionReady(LeyLines)) - { - return LeyLines; - } - } + // Weave Buffs + if (IsEnabled(CustomComboPreset.BLM_Adv_Cooldowns) && CanSpellWeave(actionID)) + { + if (Config.BLM_Adv_Cooldowns_Choice[3] && ActionReady(LeyLines)) + return LeyLines; - if (IsEnabled(CustomComboPreset.BLM_Simple_Buffs)) - { - if (IsOffCooldown(Manafont) && Gauge.InAstralFire) - { - if (LevelChecked(Despair)) - { - if (currentMP < MP.Despair) - { - return Manafont; - } - } - else if (currentMP < MP.Fire) - { - return Manafont; - } - } - if (ActionReady(Sharpcast) && lastComboMove != Thunder3 && !HasEffect(Buffs.Sharpcast)) - { - // Try to only sharpcast Thunder 3 - if (thunder3Recast(7) || GetRemainingCharges(Sharpcast) == 2 || - (thunder3Recast(15) && (Gauge.InUmbralIce || (Gauge.InAstralFire && !Gauge.IsParadoxActive)))) - { - return Sharpcast; - } - } - } + if (Config.BLM_Adv_Cooldowns_Choice[2] && + ActionReady(Amplifier) && gauge.PolyglotStacks < 2) + return Amplifier; } - } - // 20220906 Cleanup Note, could use OriginalHook + // Thunder I/III uptime + if (IsEnabled(CustomComboPreset.BLM_ST_Adv_Thunder) && + !ThunderList.ContainsKey(lastComboMove) && + (currentMP >= MP.ThunderST || (HasEffect(Buffs.Sharpcast) && HasEffect(Buffs.Thundercloud)))) + { + if (LevelChecked(Thunder) && + (dotDebuff is null || dotDebuff.RemainingTime <= thunderRefreshTime) && GetTargetHPPercent() > ThunderHP) + return OriginalHook(Thunder); + } + } // Handle initial cast - if ((LevelChecked(Blizzard4) && !Gauge.IsEnochianActive) || Gauge.ElementTimeRemaining <= 0) + if (gauge.ElementTimeRemaining <= 0) { - if (LevelChecked(Fire3)) - { - return (currentMP >= MP.Fire3) ? Fire3 : Blizzard3; - } - return (currentMP >= MP.Fire) ? Fire : Blizzard; + if ((LevelChecked(Blizzard3) && Config.BLM_Adv_InitialCast == 1) || (LevelChecked(Fire3) && Config.BLM_Adv_InitialCast == 0 && currentMP < MP.FireIII)) + return Blizzard3; + + if (LevelChecked(Fire3) && Config.BLM_Adv_InitialCast == 0) + return Fire3; + + return (currentMP >= MP.FireI) + ? Fire + : Blizzard; } - // Before Blizzard 3; Fire until 0 MP, then Blizzard until max MP. + // Before Blizzard III; Fire until 0 MP, then Blizzard until max MP. if (!LevelChecked(Blizzard3)) { - if (Gauge.InAstralFire) - { - return (currentMP < MP.Fire) ? Transpose : Fire; - } - if (Gauge.InUmbralIce) - { - return (currentMP >= MP.MaxMP - MP.Thunder) ? Transpose : Blizzard; - } + if (gauge.InAstralFire) + return (currentMP < MP.FireI) + ? Transpose + : Fire; + + if (gauge.InUmbralIce) + return (currentMP >= MP.MaxMP - MP.BlizzardI) + ? Transpose + : Blizzard; } - // Before Fire4; Fire until 0 MP (w/ Firestarter), then Blizzard 3 and Blizzard/Blizzard4 until max MP. + // Before Fire IV; Fire until 0 MP (w/ Firestarter), then Blizzard III and Blizzard/Blizzard IV until max MP. if (!LevelChecked(Fire4)) { - if (Gauge.InAstralFire) + if (gauge.InAstralFire) { - if (HasEffect(Buffs.Firestarter)) - { + if (HasEffect(Buffs.Firestarter) && GetBuffRemainingTime(Buffs.Firestarter) <= 27) return Fire3; - } - return (currentMP < MP.Fire) ? Blizzard3 : Fire; + + return (currentMP < MP.FireI) + ? Blizzard3 + : Fire; } - if (Gauge.InUmbralIce) + + if (gauge.InUmbralIce) { - if (LevelChecked(Blizzard4) && Gauge.UmbralHearts < 3) - { + if (LevelChecked(Blizzard4) && gauge.UmbralHearts < 3) return Blizzard4; - } - return (currentMP >= MP.MaxMP || Gauge.UmbralHearts == 3) ? Fire3 : Blizzard; + + return (currentMP == MP.MaxMP || gauge.UmbralHearts is 3) + ? Fire3 + : Blizzard; } } - // Use polyglot stacks if we don't need it for a future weave - if (Gauge.HasPolyglotStacks() && Gauge.ElementTimeRemaining >= astralFireRefresh && (Gauge.InUmbralIce || (Gauge.InAstralFire && Gauge.UmbralHearts == 0))) + // Normal Fire phase + if (gauge.InAstralFire) { - if (LevelChecked(Xenoglossy)) + // Xenoglossy overcap protection + if (level >= 70 && ((gauge.PolyglotStacks is 2 && (gauge.EnochianTimer <= 3000) && TraitLevelChecked(Traits.EnhancedPolyGlot)) || + (gauge.PolyglotStacks is 1 && (gauge.EnochianTimer <= 6000) && !TraitLevelChecked(Traits.EnhancedPolyGlot)))) + return LevelChecked(Xenoglossy) + ? Xenoglossy + : Foul; + + + // Fire III proc or Swiftcast Fire III during Transpose lines(< 3 Astral Fire stacks) + if (gauge.AstralFireStacks < 3 || HasEffect(Buffs.Firestarter)) + return Fire3; + + // Spend Sharpcast on Thunder before using Fire + if (gauge.ElementTimeRemaining <= (astralFireRefresh + 3000) && !HasEffect(Buffs.Thundercloud) && HasEffect(Buffs.Sharpcast) && currentMP >= MP.FireI && IsEnabled(CustomComboPreset.BLM_ST_Adv_Thunder)) + return OriginalHook(Thunder); + + // Use Paradox instead of hardcasting Fire if we can + if (gauge.ElementTimeRemaining <= astralFireRefresh && !HasEffect(Buffs.Firestarter) && currentMP >= MP.FireI) + return OriginalHook(Fire); + + if (Config.BLM_Adv_Cooldowns_Choice[0] && + ActionReady(Manafont) && WasLastAction(Despair)) + return Manafont; + + // Cast Fire IV after Manafont + if (IsOnCooldown(Manafont) && WasLastAction(Manafont)) + return Fire4; + + // Transpose rotation Fire phase + if (rotationSelection is 1 && level >= 90 && + !WasLastAction(Manafont) && IsOnCooldown(Manafont) && ActionReady(All.Swiftcast) && + currentMP < MP.FireI && gauge.PolyglotStacks is 2) { - // Check leylines and triplecast cooldown - if (Gauge.PolyglotStacks == 2 && GetCooldown(LeyLines).CooldownRemaining >= 20 && GetCooldown(Triplecast).ChargeCooldownRemaining >= 20 && !thunder3Recast(15)) - { - if (!IsEnabled(CustomComboPreset.BLM_Simple_Casts_Pooling)) - { - return Xenoglossy; - } - if (IsEnabled(CustomComboPreset.BLM_Simple_Casts_Pooling) && !HasCharges(Triplecast)) - { - return Xenoglossy; - } - } + if (WasLastAction(Despair)) + return Transpose; + + if (HasEffect(Buffs.Thundercloud) && HasEffect(Buffs.Sharpcast)) + return Thunder3; } - else if (LevelChecked(Foul)) + + // Blizzard III/Despair when below Fire IV + Despair MP + if (currentMP < MP.FireI || gauge.ElementTimeRemaining <= 5000) { - return Foul; + if (currentMP >= MP.FireI) + return OriginalHook(Fire); + + if (currentMP < MP.FireI && currentMP >= MP.AllMPSpells && LevelChecked(Despair)) + return Despair; + + return Blizzard3; } + + return Fire4; } - if (Gauge.InAstralFire) + // Normal Ice phase + if (gauge.InUmbralIce) { - // Refresh AF - if (Gauge.ElementTimeRemaining <= 3000 && HasEffect(Buffs.Firestarter)) - { - return Fire3; - } - if (Gauge.ElementTimeRemaining <= astralFireRefresh && !HasEffect(Buffs.Firestarter) && currentMP >= MP.Fire) - { - if (LevelChecked(Paradox)) - { - return Gauge.IsParadoxActive ? Paradox : Despair; - } - return Fire; - } - - // Use Xenoglossy if Amplifier/Triplecast/Leylines/Manafont is available to weave - if (lastComboMove != Xenoglossy && Gauge.HasPolyglotStacks() && LevelChecked(Xenoglossy) && Gauge.ElementTimeRemaining >= astralFireRefresh) - { - var pooledPolyglotStacks = IsEnabled(CustomComboPreset.BLM_Simple_XenoPooling) ? 1 : 0; - if (IsEnabled(CustomComboPreset.BLM_Simple_Buffs) && ActionReady(Amplifier)) - { - return Xenoglossy; - } - if (Gauge.PolyglotStacks > pooledPolyglotStacks) - { - if (IsEnabled(CustomComboPreset.BLM_Simple_Buffs_LeyLines)) - { - if (ActionReady(LeyLines)) - { - return Xenoglossy; - } - } - if (IsEnabled(CustomComboPreset.BLM_Simple_Buffs)) - { - if (ActionReady(Triplecast) && !HasEffect(Buffs.Triplecast) && - (!IsEnabled(CustomComboPreset.BLM_Simple_Casts_Pooling) || GetRemainingCharges(Triplecast) > 1)) - { - return Xenoglossy; - } - if (ActionReady(Manafont) && currentMP < MP.Despair) - { - return Xenoglossy; - } - if (ActionReady(Sharpcast) && !HasEffect(Buffs.Sharpcast) && - thunder3Recast(15) && lastComboMove != Thunder3 && Gauge.InAstralFire && !Gauge.IsParadoxActive) - { - return Xenoglossy; - } - } - } + // Polyglot overcap protection + if (level >= 70 && gauge.EnochianTimer <= 20000 && + ((gauge.PolyglotStacks is 2 && TraitLevelChecked(Traits.EnhancedPolyGlot)) || + (gauge.PolyglotStacks is 1 && !TraitLevelChecked(Traits.EnhancedPolyGlot)))) + return LevelChecked(Xenoglossy) + ? Xenoglossy + : Foul; + + // Transpose rotation Ice phase + if (rotationSelection is 1 && level >= 90 && HasEffect(All.Buffs.LucidDreaming)) + { + // Transpose lines will use 2 xenoglossy stacks and then transpose + if (gauge.HasPolyglotStacks() && LevelChecked(Xenoglossy)) + return Xenoglossy; + + if (!gauge.HasPolyglotStacks() && WasLastAction(Xenoglossy)) + return Transpose; } - // Cast Fire 4 after Manafont - if (IsOnCooldown(Manafont)) - { - if ((!TraitLevelChecked(Traits.EnhancedManafont) && GetCooldownRemainingTime(Manafont) >= 179) || - (TraitLevelChecked(Traits.EnhancedManafont) && GetCooldownRemainingTime(Manafont) >= 119)) - { - return Fire4; - } - } + // Use Polyglot stacks on cooldown when we're not using Transpose rotation + if (rotationSelection is 0 && level >= 70 && gauge.HasPolyglotStacks()) + return LevelChecked(Xenoglossy) + ? Xenoglossy + : Foul; - // Blizzard3/Despair when below Fire 4 + Despair MP - if (currentMP < (MP.Fire + MP.Despair)) - { - return (LevelChecked(Despair) && currentMP >= MP.Despair) ? Despair : Blizzard3; - } + // Use Polyglot stacks in burst when we're not using Transpose rotation + if (Config.BLM_Adv_Xeno_Burst && + (rotationSelection is 0 && level >= 70) && gauge.PolyglotStacks is 2) + return LevelChecked(Xenoglossy) + ? Xenoglossy + : Foul; - return Fire4; - } - - if (Gauge.InUmbralIce) - { // Use Paradox when available - if (LevelChecked(Paradox) && Gauge.IsParadoxActive) - { + if (LevelChecked(Paradox) && gauge.IsParadoxActive && gauge.UmbralHearts is 3 && currentMP == MP.MaxMP) return Paradox; - } - // Fire3 when at max umbral hearts - return (Gauge.UmbralHearts == 3 && currentMP >= MP.MaxMP - MP.Thunder) ? Fire3 : Blizzard4; + // Fire III when at max Umbral Hearts + return (gauge.UmbralHearts is 3 && currentMP == MP.MaxMP) + ? Fire3 + : Blizzard4; + } - } + } return actionID; } } - internal class BLM_Simple_Transpose : CustomCombo + internal class BLM_AoE_SimpleMode : CustomCombo { - protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.BLM_Simple_Transpose; - - internal static bool inOpener = false; - internal static bool openerFinished = false; - - internal delegate bool DotRecast(int value); + protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.BLM_AoE_SimpleMode; protected override uint Invoke(uint actionID, uint lastComboMove, float comboTime, byte level) { - if (actionID is Scathe) - { - var canWeave = CanSpellWeave(actionID); - var canDelayedWeave = CanWeave(actionID, 0.0) && GetCooldown(actionID).CooldownRemaining < 0.7; - var currentMP = LocalPlayer.CurrentMp; - var astralFireRefresh = PluginConfiguration.GetCustomFloatValue(Config.BLM_AstralFireRefresh) * 1000; - var thunder3 = TargetHasEffect(Debuffs.Thunder3); - var thunder3Duration = FindTargetEffect(Debuffs.Thunder3); - - DotRecast thunder3Recast = delegate (int duration) - { - return !thunder3 || (thunder3 && thunder3Duration.RemainingTime < duration); - }; + uint currentMP = LocalPlayer.CurrentMp; + BLMGauge? gauge = GetJobGauge(); - // Only enable sharpcast if it's available - if (!inOpener && !HasEffect(Buffs.Sharpcast) && HasCharges(Sharpcast) && lastComboMove != Thunder3) - { - return Sharpcast; - } - - if (!InCombat() && (inOpener || openerFinished)) - { - inOpener = false; - openerFinished = false; - } - - if (InCombat() && !inOpener) - { - inOpener = true; - } + if (actionID is Blizzard2 or HighBlizzard2) + { + // 2xHF2 Transpose with Freeze [A7] + if (gauge.ElementTimeRemaining <= 0) + return OriginalHook(Blizzard2); - if (InCombat() && inOpener && !openerFinished) + if (gauge.ElementTimeRemaining > 0) { - // Exit out of opener if Enochian is lost - if (!Gauge.IsEnochianActive) + if (CurrentTarget is null) { - openerFinished = true; - return Blizzard3; - } - - if (Gauge.InAstralFire) - { - // First Triplecast - if (lastComboMove != Triplecast && !HasEffect(Buffs.Triplecast) && HasCharges(Triplecast)) - { - if (currentMP <= 6000) - { - return Triplecast; - } - } - - // Weave other oGCDs - if (canWeave) - { - // Manafont - if (IsOffCooldown(Manafont) && lastComboMove == Despair) - { - if (currentMP < MP.Despair) - { - return Manafont; - } - } - - // Weave Amplifier and Ley Lines - if (currentMP <= 2800) - { - if (IsOffCooldown(Amplifier)) - { - return Amplifier; - } - if (IsOffCooldown(LeyLines)) - { - return LeyLines; - } - } - - if (IsOnCooldown(LeyLines)) - { - // Swiftcast - if (IsOffCooldown(All.Swiftcast)) - { - return All.Swiftcast; - } - - // Sharpcast - if (!HasEffect(Buffs.Sharpcast) && HasCharges(Sharpcast) && IsOnCooldown(LeyLines)) - { - return Sharpcast; - } - } - - // Second Triplecast - if (!HasEffect(Buffs.Triplecast) && !HasEffect(All.Buffs.Swiftcast) && IsOnCooldown(All.Swiftcast) && - lastComboMove != All.Swiftcast && HasCharges(Triplecast) && currentMP < 6000) - { - return Triplecast; - } - - // Lucid Dreaming - if (!HasCharges(Triplecast) && IsOffCooldown(All.LucidDreaming)) - { - return All.LucidDreaming; - } - } - - // Cast Despair - if (currentMP < MP.Fire && currentMP >= MP.Despair) - { - return Despair; - } + if (gauge.InAstralFire && LevelChecked(Transpose)) + return Transpose; - // Cast Fire 4 after Manafont - if (IsOnCooldown(Manafont) && GetCooldownRemainingTime(Manafont) >= 119) - { - return Fire4; - } - - return currentMP >= MP.Fire ? Fire4 : Transpose; + if (gauge.InUmbralIce && LevelChecked(UmbralSoul)) + return UmbralSoul; } - if (Gauge.InUmbralIce) - { - if (Gauge.IsParadoxActive) - { - return Paradox; - } - if (Gauge.HasPolyglotStacks() && lastComboMove != Xenoglossy) - { - return Xenoglossy; - } - if (HasEffect(Buffs.Thundercloud) && lastComboMove != Thunder3) - { - return Thunder3; - } - openerFinished = true; - } - } + if (IsEnabled(CustomComboPreset.BLM_Variant_Cure) && + IsEnabled(Variant.VariantCure) && + PlayerHealthPercentageHp() <= Config.BLM_VariantCure) + return Variant.VariantCure; - if (Gauge.ElementTimeRemaining == 0 || !Gauge.IsEnochianActive) - { - if (currentMP >= MP.Fire3) - { - return Fire3; - } - return Blizzard3; + if (IsEnabled(CustomComboPreset.BLM_Variant_Rampart) && + IsEnabled(Variant.VariantRampart) && + IsOffCooldown(Variant.VariantRampart) && + CanSpellWeave(actionID)) + return Variant.VariantRampart; } - if (Gauge.ElementTimeRemaining > 0) + // Astral Fire + if (gauge.InAstralFire) { - // Thunder - if (IsEnabled(CustomComboPreset.BLM_Thunder) && Gauge.ElementTimeRemaining >= astralFireRefresh) - { - if (!ThunderList.ContainsKey(lastComboMove) && - !TargetHasEffect(Debuffs.Thunder2) && !TargetHasEffect(Debuffs.Thunder4) && thunder3Recast(4)) - { - if (HasEffect(Buffs.Thundercloud) || (IsEnabled(CustomComboPreset.BLM_ThunderUptime) && currentMP >= MP.Thunder)) - { - return Thunder3; - } - } - } - - // Buffs - if (canWeave) + // Manafont to Flare + if (LevelChecked(Flare)) { - // Use Triplecast only with Astral Fire/Umbral Hearts, and we have enough MP to cast Fire IV twice - if (!HasEffect(Buffs.Triplecast) && HasCharges(Triplecast) && - (Gauge.InAstralFire || Gauge.UmbralHearts >= 1) && currentMP >= MP.Fire * 2) - { - if (!IsEnabled(CustomComboPreset.BLM_Simple_Transpose_Pooling) || GetRemainingCharges(Triplecast) > 1) - { - return Triplecast; - } - } - - if (IsOffCooldown(Amplifier) && Gauge.PolyglotStacks < 2) - { - return Amplifier; - } - - if (IsEnabled(CustomComboPreset.BLM_Simple_Transpose_LeyLines) && IsOffCooldown(LeyLines)) - { - return LeyLines; - } - - if (IsOffCooldown(Manafont) && Gauge.InAstralFire && currentMP < MP.Despair) - { + if (ActionReady(Manafont) && currentMP is 0) return Manafont; - } - if (HasCharges(Sharpcast) && !HasEffect(Buffs.Sharpcast)) - { - return Sharpcast; - } + if (WasLastAction(Manafont)) + return Flare; } - } - if (Gauge.InUmbralIce) - { - // Standard - if (Gauge.UmbralIceStacks == 3) - { - if (Gauge.PolyglotStacks == 2) - { - return Xenoglossy; - } - if (Gauge.IsParadoxActive) - { - return Paradox; - } - if (Gauge.UmbralHearts < 3) - { - return Blizzard4; - } - return Fire3; - } + // Polyglot usage + if (LevelChecked(Foul) && gauge.HasPolyglotStacks() && WasLastAction(OriginalHook(Flare))) + return Foul; - // Transpose Instant F3 - if (canWeave) + // Blizzard to Umbral Ice + if ((currentMP is 0 && WasLastAction(Flare)) || + (currentMP < MP.FireAoE && !LevelChecked(Flare))) + return OriginalHook(Blizzard2); + + if (currentMP >= MP.AllMPSpells) { - if (!HasEffect(Buffs.Firestarter) && !HasEffect(All.Buffs.Swiftcast) && !HasEffect(Buffs.Triplecast)) - { - if (IsOffCooldown(All.Swiftcast)) - { - return All.Swiftcast; - } - } - if (IsOffCooldown(All.LucidDreaming)) + // Thunder II/IV uptime + if (!ThunderList.ContainsKey(lastComboMove) && currentMP >= MP.ThunderAoE) { - return All.LucidDreaming; + if (LevelChecked(Thunder4) && + GetDebuffRemainingTime(Debuffs.Thunder4) <= 4) + return Thunder4; + + if (LevelChecked(Thunder2) && !LevelChecked(Thunder4) && + GetDebuffRemainingTime(Debuffs.Thunder2) <= 4) + return Thunder2; } - } - // Paradox for Transpose Lines - if (Gauge.IsParadoxActive) - { - return Paradox; - } + if (LevelChecked(Flare) && HasEffect(Buffs.EnhancedFlare) && + (gauge.UmbralHearts is 1 || currentMP < MP.FireAoE) && + ActionReady(Triplecast) && !HasEffect(Buffs.Triplecast)) + return Triplecast; - // Filler GCDs - if (currentMP <= MP.MaxMP - MP.Fire) - { - if (lastComboMove != Xenoglossy && Gauge.HasPolyglotStacks()) - { - return Xenoglossy; - } - if (lastComboMove != Thunder3 && thunder3Recast(7)) - { - return Thunder3; - } - if (Gauge.HasPolyglotStacks()) - { - return Xenoglossy; - } - } + if (LevelChecked(Flare) && HasEffect(Buffs.EnhancedFlare) && + (gauge.UmbralHearts is 1 || currentMP < MP.FireAoE)) + return Flare; - if (IsOffCooldown(Transpose) && (canDelayedWeave || currentMP >= MP.MaxMP - MP.Fire)) - { - return Transpose; - } - if (HasEffect(All.Buffs.Swiftcast)) - { - return Fire3; - } - if (Gauge.HasPolyglotStacks()) - { - return Xenoglossy; + if (currentMP > MP.FireAoE) + return OriginalHook(Fire2); } - return Blizzard4; } - if (Gauge.InAstralFire) + // Umbral Ice + if (gauge.InUmbralIce) { - // F3 - if (Gauge.AstralFireStacks < 3) - { - return Fire3; - } + if (gauge.UmbralHearts < 3 && LevelChecked(Freeze) && TraitLevelChecked(Traits.EnhancedFreeze) && currentMP >= MP.Freeze) + return Freeze; - // Xenoglossy for Manafont weave - if (Gauge.HasPolyglotStacks() && IsOffCooldown(Manafont) && currentMP < MP.Despair) + // Thunder II/IV uptime + if (!ThunderList.ContainsKey(lastComboMove) && currentMP >= MP.ThunderAoE) { - return Xenoglossy; - } + if (LevelChecked(Thunder4) && + GetDebuffRemainingTime(Debuffs.Thunder4) <= 4) + return Thunder4; - // Early Despair - if (currentMP < (MP.Fire + MP.Despair) && currentMP >= MP.Despair) - { - return Despair; + if (LevelChecked(Thunder2) && !LevelChecked(Thunder4) && + GetDebuffRemainingTime(Debuffs.Thunder2) <= 4) + return Thunder2; } - // Cast Fire 4 after Manafont - if (IsOnCooldown(Manafont) && GetCooldownRemainingTime(Manafont) >= 119) - { - return Fire4; - } + if (currentMP < 9400 && !TraitLevelChecked(Traits.EnhancedFreeze) && currentMP >= MP.Freeze) + return Freeze; - // Transpose if F3 is available, or Thundercloud + Xenoglossy is available - if (currentMP < MP.Fire && lastComboMove != Manafont && IsOnCooldown(Manafont) && GetCooldownRemainingTime(Manafont) <= 118) - { - if ((HasEffect(Buffs.LeyLines) && GetBuffRemainingTime(Buffs.LeyLines) >= 15) || HasEffect(Buffs.Firestarter) || - lastComboMove == Xenoglossy || lastComboMove == Thunder3 || (IsOffCooldown(All.Swiftcast) && (Gauge.PolyglotStacks == 2))) - { - if (lastComboMove != Despair && lastComboMove != Fire4) - { - return Transpose; - } - if (lastComboMove == Despair) - { - if (Gauge.HasPolyglotStacks()) - { - return Xenoglossy; - } - if (HasEffect(Buffs.Thundercloud)) - { - return Thunder3; - } - } - } - } + if (currentMP >= 9400 && !TraitLevelChecked(Traits.AspectMasteryIII)) + return Transpose; - // Regular Despair / Paradox - if (Gauge.ElementTimeRemaining <= astralFireRefresh) - { - return !Gauge.IsParadoxActive ? Despair : Paradox; - } - if (currentMP >= MP.Fire) - { - return Fire4; - } - return Blizzard3; + if ((gauge.UmbralHearts is 3 || currentMP == MP.MaxMP) && + TraitLevelChecked(Traits.AspectMasteryIII)) + return OriginalHook(Fire2); } } @@ -1176,846 +781,244 @@ protected override uint Invoke(uint actionID, uint lastComboMove, float comboTim } } - internal class BLM_Variant_Raise : CustomCombo - { - protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.BLM_Variant_Raise; - - protected override uint Invoke(uint actionID, uint lastComboActionID, float comboTime, byte level) - { - if (actionID is All.Swiftcast) - { - if (HasEffect(All.Buffs.Swiftcast) && IsEnabled(Variant.VariantRaise)) - return Variant.VariantRaise; - } - - return actionID; - } - } - - internal class BLM_Paradox : CustomCombo + internal class BLM_AoE_AdvancedMode : CustomCombo { - protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.BLM_Paradox; - - internal static bool inOpener = false; - internal static bool openerFinished = false; - - internal delegate bool DotRecast(int value); + protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.BLM_AoE_AdvancedMode; protected override uint Invoke(uint actionID, uint lastComboMove, float comboTime, byte level) { - if (actionID is Scathe) + uint currentMP = LocalPlayer.CurrentMp; + int thunderRefreshTime = Config.BLM_AoE_Adv_ThunderUptime; + BLMGauge? gauge = GetJobGauge(); + int ThunderHP = Config.BLM_AoE_Adv_ThunderHP; + + if (actionID is Blizzard2 or HighBlizzard2) { - var canWeave = CanSpellWeave(actionID); - var currentMP = LocalPlayer.CurrentMp; - var thunder3 = TargetHasEffect(Debuffs.Thunder3); - var thunder3Duration = FindTargetEffect(Debuffs.Thunder3); + // 2xHF2 Transpose with Freeze [A7] + if (gauge.ElementTimeRemaining <= 0) + return OriginalHook(Blizzard2); - DotRecast thunder3Recast = delegate (int duration) + if (gauge.ElementTimeRemaining > 0) { - return !thunder3 || (thunder3 && thunder3Duration.RemainingTime < duration); - }; + if (IsEnabled(CustomComboPreset.BLM_AoE_Adv_UmbralSoul) && CurrentTarget is null) + { + if (gauge.InAstralFire && LevelChecked(Transpose)) + return Transpose; - // Only enable sharpcast if it's available - if (!inOpener && !HasEffect(Buffs.Sharpcast) && HasCharges(Sharpcast) && lastComboMove != Thunder3) - { - return Sharpcast; - } + if (gauge.InUmbralIce && LevelChecked(UmbralSoul)) + return UmbralSoul; + } - if (!InCombat() && (inOpener || openerFinished)) - { - inOpener = false; - openerFinished = false; - } + if (IsEnabled(CustomComboPreset.BLM_Variant_Cure) && + IsEnabled(Variant.VariantCure) && + PlayerHealthPercentageHp() <= Config.BLM_VariantCure) + return Variant.VariantCure; - if (InCombat() && !inOpener) - { - inOpener = true; - } + if (IsEnabled(CustomComboPreset.BLM_Variant_Rampart) && + IsEnabled(Variant.VariantRampart) && + IsOffCooldown(Variant.VariantRampart) && + CanSpellWeave(actionID)) + return Variant.VariantRampart; - if (InCombat() && inOpener && !openerFinished) - { - if (InCombat() && inOpener && !openerFinished) + // Weave Buffs + if (IsEnabled(CustomComboPreset.BLM_AoE_Adv_Cooldowns) && CanSpellWeave(actionID)) { - // Exit out of opener if Enochian is lost - if (!Gauge.IsEnochianActive) - { - openerFinished = true; - return Blizzard3; - } + if (Config.BLM_AoE_Adv_Cooldowns_Choice[3] && ActionReady(LeyLines)) + return LeyLines; - if (Gauge.InAstralFire) - { - // First Triplecast - if (lastComboMove != Triplecast && !HasEffect(Buffs.Triplecast) && HasCharges(Triplecast)) - { - var triplecastMP = 7600; - if (currentMP <= triplecastMP) - { - return Triplecast; - } - } - - // Weave other oGCDs - if (canWeave) - { - // Weave Amplifier and Ley Lines - if (currentMP <= 4400) - { - if (IsOffCooldown(Amplifier)) - { - return Amplifier; - } - if (IsOffCooldown(LeyLines)) - { - return LeyLines; - } - } - - // Swiftcast - if (IsOffCooldown(All.Swiftcast) && IsOnCooldown(LeyLines)) - { - return All.Swiftcast; - } - - // Manafont - if (IsOffCooldown(Manafont) && lastComboMove == Despair) - { - if (currentMP < MP.Despair) - { - return Manafont; - } - } - - // Second Triplecast / Sharpcast - if (!IsEnabled(CustomComboPreset.BLM_Simple_OpenerAlternate)) - { - if (!HasEffect(Buffs.Triplecast) && !HasEffect(All.Buffs.Swiftcast) && IsOnCooldown(All.Swiftcast) && - lastComboMove != All.Swiftcast && HasCharges(Triplecast) && currentMP < MP.Fire) - { - return Triplecast; - } - - if (!HasEffect(Buffs.Sharpcast) && HasCharges(Sharpcast) && IsOnCooldown(Manafont) && - lastComboMove == Fire4) - { - return Sharpcast; - } - } - } - - // Cast Despair - if ((currentMP < MP.Fire || Gauge.ElementTimeRemaining <= 4000) && currentMP >= MP.Despair) - { - return Despair; - } - - // Cast Fire 4 after Manafont - if (IsOnCooldown(Manafont) && GetCooldownRemainingTime(Manafont) >= 119) - { - return Fire4; - } - - // Fire4 / Umbral Ice - return currentMP >= MP.Fire ? Fire4 : Blizzard3; - } + if (Config.BLM_AoE_Adv_Cooldowns_Choice[2] && + ActionReady(Amplifier) && gauge.PolyglotStacks < 2) + return Amplifier; - if (Gauge.InUmbralIce) - { - // Dump Polyglot Stacks - if (Gauge.HasPolyglotStacks() && Gauge.ElementTimeRemaining >= 6000) - { - return Xenoglossy; - } - if (Gauge.IsParadoxActive && LevelChecked(Paradox)) - { - return Paradox; - } - if (Gauge.UmbralHearts < 3 && lastComboMove != Blizzard4) - { - return Blizzard4; - } - - // Refresh Thunder3 - if (HasEffect(Buffs.Thundercloud) && lastComboMove != Thunder3) - { - return Thunder3; - } - - openerFinished = true; - } + // Sharpcast + if (Config.BLM_AoE_Adv_Cooldowns_Choice[1] && + ActionReady(Sharpcast) && !HasEffect(Buffs.Sharpcast) && + !WasLastAction(Thunder3) && CanSpellWeave(actionID)) + return Sharpcast; } } - if (Gauge.ElementTimeRemaining == 0 || !Gauge.IsEnochianActive) + // Astral Fire + if (gauge.InAstralFire) { - if (currentMP >= MP.Fire3) - { - return Fire3; - } - return Blizzard3; - } + // Polyglot overcap protection + if ((LevelChecked(Foul) && + gauge.PolyglotStacks is 2 && (gauge.EnochianTimer <= 3000) && TraitLevelChecked(Traits.EnhancedPolyGlot)) || + (gauge.PolyglotStacks is 1 && (gauge.EnochianTimer <= 6000) && !TraitLevelChecked(Traits.EnhancedPolyGlot))) + return Foul; - if (Gauge.ElementTimeRemaining > 0) - { - // Thunder - if (lastComboMove != Thunder3 && currentMP >= MP.Thunder && - thunder3Recast(4) && !TargetHasEffect(Debuffs.Thunder2) && !TargetHasEffect(Debuffs.Thunder4)) + // Manafont to Flare + if (LevelChecked(Flare)) { - return Thunder3; + if (Config.BLM_AoE_Adv_Cooldowns_Choice[0] && ActionReady(Manafont) && + currentMP is 0) + return Manafont; + + if (WasLastAction(Manafont)) + return Flare; } - // Buffs - if (canWeave) + // Polyglot usage + if (IsEnabled(CustomComboPreset.BLM_AoE_Adv_Foul) && LevelChecked(Foul) && + gauge.HasPolyglotStacks() && WasLastAction(OriginalHook(Flare))) + return Foul; + + // Blizzard to Umbral Ice + if ((currentMP is 0 && WasLastAction(Flare)) || + (currentMP < MP.FireAoE && !LevelChecked(Flare))) + return OriginalHook(Blizzard2); + + if (currentMP >= MP.AllMPSpells) { - if (!HasEffect(Buffs.Triplecast) && HasCharges(Triplecast)) + // Thunder II/IV uptime + if (IsEnabled(CustomComboPreset.BLM_AoE_Adv_ThunderUptime_AstralFire) && + !ThunderList.ContainsKey(lastComboMove) && currentMP >= MP.ThunderAoE) { - return Triplecast; - } + if (LevelChecked(Thunder4) && + (GetDebuffRemainingTime(Debuffs.Thunder4) <= thunderRefreshTime)) + return Thunder4; - if (IsOffCooldown(Amplifier) && Gauge.PolyglotStacks < 2) - { - return Amplifier; + if (LevelChecked(Thunder2) && !LevelChecked(Thunder4) && + (GetDebuffRemainingTime(Debuffs.Thunder2) <= thunderRefreshTime)) + return Thunder2; } - if (IsEnabled(CustomComboPreset.BLM_Paradox_LeyLines) && IsOffCooldown(LeyLines)) - { - return LeyLines; - } + if (LevelChecked(Flare) && HasEffect(Buffs.EnhancedFlare) && TraitLevelChecked(Traits.Enochian) && + (gauge.UmbralHearts is 1 || currentMP < MP.FireAoE) && Config.BLM_AoE_Adv_Cooldowns_Choice[4] && IsEnabled(CustomComboPreset.BLM_AoE_Adv_Cooldowns) && + ActionReady(Triplecast) && !HasEffect(Buffs.Triplecast)) + return Triplecast; - if (IsOffCooldown(Manafont) && Gauge.InAstralFire && currentMP < MP.Despair) - { - return Manafont; - } + if (LevelChecked(Flare) && HasEffect(Buffs.EnhancedFlare) && TraitLevelChecked(Traits.Enochian) && + (gauge.UmbralHearts is 1 || currentMP < MP.FireAoE)) + return Flare; - if (IsOffCooldown(All.Swiftcast)) - { - return All.Swiftcast; - } + if (currentMP > MP.FireAoE) + return OriginalHook(Fire2); - if (HasCharges(Sharpcast) && !HasEffect(Buffs.Sharpcast)) - { - return Sharpcast; - } + if (LevelChecked(Flare)) + return Flare; } } - // Play standard while inside of leylines - if (HasEffect(Buffs.LeyLines)) + // Umbral Ice + if (gauge.InUmbralIce) { - if (Gauge.InAstralFire) - { - if (Gauge.ElementTimeRemaining <= 3000 && HasEffect(Buffs.Firestarter)) - { - return Fire3; - } - if (Gauge.ElementTimeRemaining <= 6000 && !HasEffect(Buffs.Firestarter) && currentMP >= MP.Fire) - { - return Gauge.IsParadoxActive ? Paradox : Despair; - } - return (currentMP >= MP.Fire + MP.Despair) ? Fire4 : (currentMP >= MP.Despair ? Despair : Blizzard3); - } + // Polyglot overcap protection + if (LevelChecked(Foul) && gauge.EnochianTimer <= 20000 && + ((gauge.PolyglotStacks is 2 && TraitLevelChecked(Traits.EnhancedPolyGlot)) || + (gauge.PolyglotStacks is 1 && !TraitLevelChecked(Traits.EnhancedPolyGlot)))) + return Foul; - if (Gauge.InUmbralIce) - { - if (Gauge.PolyglotStacks == 2) - { - return Xenoglossy; - } - return Gauge.IsParadoxActive ? Paradox : (Gauge.UmbralHearts == 3 ? Fire3 : Blizzard4); - } - } + if (gauge.UmbralHearts < 3 && LevelChecked(Freeze) && TraitLevelChecked(Traits.EnhancedFreeze) && currentMP >= MP.Freeze) + return Freeze; - if (Gauge.InUmbralIce) - { - if (Gauge.IsParadoxActive) + // Thunder II/IV uptime + if (IsEnabled(CustomComboPreset.BLM_AoE_Adv_ThunderUptime) && + !ThunderList.ContainsKey(lastComboMove) && currentMP >= MP.ThunderAoE) { - return Paradox; - } - if (currentMP >= MP.Despair && (HasEffect(Buffs.Firestarter) || HasEffect(Buffs.Triplecast) || HasEffect(All.Buffs.Swiftcast))) - { - return Fire3; - } - if (Gauge.UmbralIceStacks < 3) - { - return UmbralSoul; - } - if (IsOffCooldown(Transpose)) - { - return Transpose; - } - } + if (LevelChecked(Thunder4) && + (GetDebuffRemainingTime(Debuffs.Thunder4) <= thunderRefreshTime) && GetTargetHPPercent() > ThunderHP) + return Thunder4; - if (Gauge.InAstralFire) - { - if (Gauge.AstralFireStacks < 3 && HasEffect(Buffs.Firestarter) && !HasEffect(Buffs.Triplecast) && !HasEffect(All.Buffs.Swiftcast)) - { - return Fire3; + if (LevelChecked(Thunder2) && !LevelChecked(Thunder4) && + (GetDebuffRemainingTime(Debuffs.Thunder2) <= thunderRefreshTime) && GetTargetHPPercent() > ThunderHP) + return Thunder2; } - // Cast Despair after Manafont - if (IsOnCooldown(Manafont) && GetCooldownRemainingTime(Manafont) >= 119) - { - return Despair; - } + if (currentMP < 9400 && !TraitLevelChecked(Traits.EnhancedFreeze) && LevelChecked(Freeze) && currentMP >= MP.Freeze) + return Freeze; - if (HasEffect(Buffs.Triplecast) || HasEffect(All.Buffs.Swiftcast) || HasEffect(Buffs.Sharpcast)) - { - if (!HasEffect(Buffs.Firestarter) && currentMP >= MP.Fire) - { - if (Gauge.IsParadoxActive) - { - return Paradox; - } - if (!HasEffect(Buffs.Triplecast) && !HasEffect(All.Buffs.Swiftcast)) - { - return Fire; - } - } - if (currentMP >= MP.Despair) - { - return Despair; - } - } - if (IsOffCooldown(Transpose) && openerFinished) - { + if (currentMP >= 9400 && !TraitLevelChecked(Traits.AspectMasteryIII)) return Transpose; - } - } - if (Gauge.ElementTimeRemaining > 0) - { - if (Gauge.HasPolyglotStacks()) - { - return Xenoglossy; - } - if (HasEffect(Buffs.Thundercloud) && lastComboMove != Thunder3) - { - return Thunder3; - } - return currentMP <= MP.Despair ? (Gauge.InAstralFire ? Transpose : UmbralSoul) : Scathe; + if ((gauge.UmbralHearts is 3 || currentMP == MP.MaxMP) && + TraitLevelChecked(Traits.AspectMasteryIII)) + return OriginalHook(Fire2); } } return actionID; } } - internal class BLM_ScatheXeno : CustomCombo + + internal class BLM_Variant_Raise : CustomCombo { - protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.BLM_ScatheXeno; + protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.BLM_Variant_Raise; - protected override uint Invoke(uint actionID, uint lastComboMove, float comboTime, byte level) - { - if (actionID is Scathe) - { - if (LevelChecked(Xenoglossy) && Gauge.PolyglotStacks > 0) - return Xenoglossy; - } - return actionID; - } + protected override uint Invoke(uint actionID, uint lastComboActionID, float comboTime, byte level) => + (actionID is All.Swiftcast && HasEffect(All.Buffs.Swiftcast) && IsEnabled(Variant.VariantRaise)) + ? Variant.VariantRaise + : actionID; } - internal class BLM_Zimo : CustomCombo + internal class BLM_Scathe_Xeno : CustomCombo { - protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.BLM_Zimo; + protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.BLM_Scathe_Xeno; - internal static bool fireChance = true; - internal static bool thunderChance = true; - internal static int fire4Count = 0; - internal static uint lastGCD = 0; - internal static uint lastOGCD = 0; - internal static bool chant = false; - internal static string pecialCombo = ""; + protected override uint Invoke(uint actionID, uint lastComboMove, float comboTime, byte level) => + (actionID is Scathe && LevelChecked(Xenoglossy) && GetJobGauge().HasPolyglotStacks()) + ? Xenoglossy + : actionID; + } + + internal class BLM_Blizzard_1to3 : CustomCombo + { + protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.BLM_Blizzard_1to3; protected override uint Invoke(uint actionID, uint lastComboMove, float comboTime, byte level) { - if (actionID is Scathe) - { - //var currentMP = LocalPlayer.CurrentMp; - //Dalamud.Logging.PluginLog.Warning($"{LevelChecked(Triplecast) && Gauge.InAstralFire && GetRemainingCharges(Triplecast) > 1 && - // FindEffect(Buffs.Triplecast) == null && lastOGCD != Triplecast && - // (currentMP >= 4000 && LevelChecked(Despair) && Gauge.ElementTimeRemaining > 6000 || - // currentMP >= 2400 && Gauge.UmbralHearts == 3 && Gauge.ElementTimeRemaining > 10000)}"); - //return actionID; - - // 先准备一些变量 - var canWeave = CanSpellWeave(actionID); - var currentMP = LocalPlayer.CurrentMp; - - // 需要吟唱的技能时点 - // 开始吟唱时点 - if (comboTime == 0 && !chant) - { - chant = true; - if (lastGCD == Fire4) - { - fire4Count++; - } - //if (lastGCD == Fire || lastGCD == Fire3 || lastGCD == Paradox || lastGCD == Despair) - //{ - // fire4Count = 0; - // var firestarterBuff = FindEffect(Buffs.Firestarter); - // if (firestarterBuff != null && firestarterBuff.RemainingTime > 15000) - // { - // fireChance = true; - // } - //} - if (lastGCD == Thunder || lastGCD == Thunder3 || lastGCD == Foul) - { - fireChance = false; - } - if (lastGCD == Thunder || lastGCD == Thunder3) - { - thunderChance = false; - } - } - if (comboTime != 0 && chant) - { - chant = false; - thunderChance = true; - } - // 技能释放时点 - - // 不需要吟唱的技能时点 - if (lastComboMove == Thunder || lastComboMove == Thunder3 || lastComboMove == Xenoglossy || - lastComboMove == Foul) - { - fireChance = false; - } - if (lastComboMove == Fire || lastComboMove == Fire3 || lastComboMove == Paradox || lastComboMove == Despair) - { - fire4Count = 0; - var firestarterBuff = FindEffect(Buffs.Firestarter); - if (firestarterBuff != null && firestarterBuff.RemainingTime > 15000) - { - fireChance = true; - } - } - - // 判断并使用特殊连招 - if (pecialCombo == "") - { - // 起手 - if (LevelChecked(Paradox) && GetRemainingCharges(Triplecast) > 0 && !Gauge.InUmbralIce && !Gauge.InAstralFire && - currentMP == 10000 && GetRemainingCharges(All.Swiftcast) > 0) - { - pecialCombo = "AtFirst"; - } - // 魔泉收尾 - if (LevelChecked(Xenoglossy) && GetRemainingCharges(Manafont) > 0 && GetRemainingCharges(Triplecast) > 0 && FindEffect(Buffs.Triplecast) == null && - Gauge.InAstralFire && currentMP < MP.Fire && currentMP >= MP.Despair && Gauge.PolyglotStacks > 0 && Gauge.ElementTimeRemaining >= 3000) - { - pecialCombo = "ManafontWindUp"; - } - } - var result = actionID; - switch (pecialCombo) - { - case "": - break; - case "AtFirst": - // 起手 - result = AtFirst(actionID, lastComboMove, comboTime, level, canWeave, currentMP); - if (result != actionID) - { - return result; - } - break; - case "ManafontWindUp": - // 魔泉收尾 - result = ManafontWindUp(actionID, lastComboMove, comboTime, level, canWeave, currentMP); - if (result != actionID) - { - return result; - } - break; - } - - #region 按状态判断 - // 能力技阶段 - if (canWeave) - { - // 黑魔纹 - if (LevelChecked(LeyLines) && GetRemainingCharges(LeyLines) > 0) - { - lastOGCD = LeyLines; - return LeyLines; - } - // 详述 - if (LevelChecked(Amplifier) && GetRemainingCharges(Amplifier) > 0 && Gauge.PolyglotStacks < 2 && - !(Gauge.PolyglotStacks == 1 && Gauge.EnochianTimer < 10000 && Gauge.EnochianTimer != 0)) - { - lastOGCD = Amplifier; - return Amplifier; - } - // 三连咏唱 - if (LevelChecked(Triplecast) && Gauge.InAstralFire && GetRemainingCharges(Triplecast) > 1 && - !HasEffect(Buffs.Triplecast) && lastOGCD != Triplecast && - currentMP >= MP.Fire * 2 + MP.Despair) - //(currentMP >= 4000 && LevelChecked(Despair) && Gauge.ElementTimeRemaining > 600cu0 || - //currentMP >= 2400 && Gauge.UmbralHearts == 3 && Gauge.ElementTimeRemaining > 10000)) - { - lastOGCD = Triplecast; - return Triplecast; - } - // 激情咏唱 - var thunder = OriginalHook(Thunder); - var buff = FindTargetEffect(ThunderList[thunder]); - if (LevelChecked(Sharpcast) && GetRemainingCharges(Sharpcast) > 0 && !HasEffect(Buffs.Sharpcast) && (buff is null || buff.RemainingTime <= 8)) - { - lastOGCD = Sharpcast; - return Sharpcast; - } - // 激情咏唱2 - if (LevelChecked(Sharpcast) && GetRemainingCharges(Sharpcast) > 0 && !HasEffect(Buffs.Sharpcast) && GetRemainingCharges(Sharpcast) > 1) - { - lastOGCD = Sharpcast; - return Sharpcast; - } - } - // 恢复阶段 - if (!Gauge.InUmbralIce && !Gauge.InAstralFire) - { - // 激情咏唱 - if (LevelChecked(Sharpcast) && GetRemainingCharges(Sharpcast) > 0 && !HasEffect(Buffs.Sharpcast)) - { - lastOGCD = Sharpcast; - return Sharpcast; - } - // 火3 - if (LevelChecked(Fire3) && currentMP >= 6400) - { - lastGCD = Fire3; - return Fire3; - } - // 火1 - if (LevelChecked(Fire) && currentMP >= 4000) - { - lastGCD = Fire; - return Fire; - } - // 冰3 - if (LevelChecked(Blizzard3) && currentMP < 6400) - { - lastGCD = Blizzard3; - return Blizzard3; - } - // 冰1 - if (LevelChecked(Blizzard) && currentMP < 4000) - { - lastGCD = Blizzard; - return Blizzard; - } - } - // 冰阶段 - if (Gauge.InUmbralIce) - { - // 释放快要过期的资源 - // 电 - var thunder = OriginalHook(Thunder); - var thundercloudBuff = FindEffect(Buffs.Thundercloud); - if (LevelChecked(thunder) && thundercloudBuff != null && thundercloudBuff.RemainingTime <= 4 && thunderChance && lastComboMove != thunder) - { - lastGCD = thunder; - return thunder; - } - // 异言 - if (LevelChecked(Xenoglossy) && (Gauge.PolyglotStacks == 2 || Gauge.EnochianTimer < 5000 && Gauge.PolyglotStacks == 1)) - { - lastGCD = Xenoglossy; - return Xenoglossy; - } - // 秽浊 - if (LevelChecked(Foul) && (Gauge.PolyglotStacks == 2 || Gauge.EnochianTimer < 5000 && Gauge.PolyglotStacks == 1)) - { - lastGCD = Foul; - return Foul; - } - - // 补buff - // 电2 - var buff = FindTargetEffect(ThunderList[thunder]); - if (LevelChecked(thunder) && (buff is null || buff.RemainingTime <= 4) && currentMP >= MP.Thunder && thunderChance && lastComboMove != thunder) - { - lastGCD = thunder; - return thunder; - } - - // 常规技能 - // 冰澈 - if (LevelChecked(Blizzard4) && Gauge.UmbralHearts < 3) - { - lastGCD = Blizzard4; - return Blizzard4; - } - // 悖论 - if (LevelChecked(Paradox) && Gauge.IsParadoxActive) - { - lastGCD = Paradox; - return Paradox; - } - // 爆炎 - if (LevelChecked(Fire3) && currentMP > 9500) - { - lastGCD = Fire3; - return Fire3; - } - // 冰澈2 - if (LevelChecked(Blizzard4)) - { - lastGCD = Blizzard4; - return Blizzard4; - } - - // 低等级常规技能 - // 冰结 - if (LevelChecked(Blizzard) && currentMP <= 9500) - { - lastGCD = Blizzard; - return Blizzard; - } - // 星灵移位 - if (LevelChecked(Transpose) && currentMP > 9500) - { - lastGCD = Transpose; - return Transpose; - } + if (actionID is Blizzard && LevelChecked(Freeze) && !GetJobGauge().InUmbralIce) + return Blizzard3; - // 理论上不会到这 - return actionID; - } - // 火阶段 - if (Gauge.InAstralFire) - { + if (actionID is Freeze && !LevelChecked(Freeze)) + return Blizzard2; - // 释放快要过期的资源 - // 爆炎2 - var firestarterBuff = FindEffect(Buffs.Firestarter); - if (LevelChecked(Fire3) && firestarterBuff != null && firestarterBuff.RemainingTime <= 4) - { - lastGCD = Fire3; - return Fire3; - } - // 电 - var thunder = OriginalHook(Thunder); - var thundercloudBuff = FindEffect(Buffs.Thundercloud); - if (LevelChecked(thunder) && thundercloudBuff != null && thundercloudBuff.RemainingTime <= 4 && thunderChance && fireChance && lastComboMove != thunder) - { - lastGCD = thunder; - return thunder; - } - // 异言 - if (LevelChecked(Xenoglossy) && Gauge.PolyglotStacks == 2 && fireChance) - { - lastGCD = Xenoglossy; - return Xenoglossy; - } - // 秽浊 - if (LevelChecked(Foul) && Gauge.PolyglotStacks == 2 && fireChance) - { - lastGCD = Xenoglossy; - return Foul; - } + return actionID; + } + } - // 补buff - // 电2 - var thunderBuff = FindTargetEffect(ThunderList[thunder]); - if (LevelChecked(thunder) && (thunderBuff is null || thunderBuff.RemainingTime <= 4) && currentMP >= MP.Thunder && thunderChance && fireChance && lastComboMove != thunder) - { - lastGCD = thunder; - return thunder; - } + internal class BLM_Fire_1to3 : CustomCombo + { + protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.BLM_Fire_1to3; - // 保持天语不断 - // 爆炎 - if (LevelChecked(Fire3) && HasEffect(Buffs.Firestarter) && (Gauge.ElementTimeRemaining < 4000 || fire4Count >= 3)) - { - lastGCD = Fire3; - return Fire3; - } - // 悖论 - if (LevelChecked(Paradox) && Gauge.IsParadoxActive && (Gauge.ElementTimeRemaining < 4000 || fire4Count >= 3)) - { - lastGCD = Paradox; - return Paradox; - } - // 火炎 - if (LevelChecked(Fire) && currentMP >= MP.Fire && (Gauge.ElementTimeRemaining < 4000 || fire4Count >= 3)) - { - lastGCD = Fire; - return Fire; - } + protected override uint Invoke(uint actionID, uint lastComboMove, float comboTime, byte level) => + (actionID is Fire && ((LevelChecked(Fire3) && !GetJobGauge().InAstralFire) || HasEffect(Buffs.Firestarter))) + ? Fire3 + : actionID; + } - // 常规技能 - // 炽炎 - if (LevelChecked(Fire4) && currentMP >= MP.Fire) - { - lastGCD = Fire4; - return Fire4; - } - // 绝望 - if (LevelChecked(Despair) && currentMP >= MP.Despair) - { - lastGCD = Despair; - return Despair; - } - // 冰封 - if (LevelChecked(Blizzard3) && currentMP < Fire) - { - lastGCD = Blizzard3; - return Blizzard3; - } + internal class BLM_Between_The_LeyLines : CustomCombo + { + protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.BLM_Between_The_LeyLines; - // 低等级常规技能 - // 火炎2 - if (LevelChecked(Fire) && currentMP >= MP.Fire) - { - lastGCD = Fire; - return Fire; - } + protected override uint Invoke(uint actionID, uint lastComboMove, float comboTime, byte level) => + actionID is LeyLines && HasEffect(Buffs.LeyLines) && LevelChecked(BetweenTheLines) + ? BetweenTheLines + : actionID; + } - // 理论上不会到这 - return actionID; - } - #endregion - } - return actionID; - } + internal class BLM_Aetherial_Manipulation : CustomCombo + { + protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.BLM_Aetherial_Manipulation; - internal static bool ManafontWindUp_Xenoglossy = false; + protected override uint Invoke(uint actionID, uint lastComboMove, float comboTime, byte level) => + actionID is AetherialManipulation && + ActionReady(BetweenTheLines) && + HasEffect(Buffs.LeyLines) && + !HasEffect(Buffs.CircleOfPower) && + !IsMoving + ? BetweenTheLines + : actionID; + } - protected uint ManafontWindUp(uint actionID, uint lastComboMove, float comboTime, byte level, bool canWeave, float currentMP) - { - if (lastComboMove == Xenoglossy) - { - ManafontWindUp_Xenoglossy = true; - } - // 异言 - if (Gauge.PolyglotStacks > 0 && FindEffect(Buffs.Triplecast) == null && !ManafontWindUp_Xenoglossy) - { - lastGCD = Xenoglossy; - return Xenoglossy; - } - // 三连咏唱 - if (canWeave && GetRemainingCharges(Triplecast) > 0 && FindEffect(Buffs.Triplecast) == null) - { - lastOGCD = Triplecast; - return Triplecast; - } - // 炽炎 - if (currentMP >= MP.Fire && FindEffect(Buffs.Triplecast) != null) - { - lastGCD = Fire4; - return Fire4; - } - // 绝望 - if (currentMP >= MP.Despair && FindEffect(Buffs.Triplecast) != null) - { - if (GetRemainingCharges(Manafont) == 0) - { - ManafontWindUp_Xenoglossy = false; - pecialCombo = ""; - } - lastGCD = Despair; - return Despair; - } - // 炽炎2 - if (GetRemainingCharges(Manafont) == 0 && FindEffect(Buffs.Triplecast) != null) - { - lastGCD = Fire4; - return Fire4; - } - // 魔泉 - if (currentMP == 0 && GetRemainingCharges(Manafont) > 0) - { - lastOGCD = Manafont; - return Manafont; - } - // 出现了意外 - ManafontWindUp_Xenoglossy = false; - pecialCombo = ""; - return actionID; - } + internal class BLM_UmbralSoul : CustomCombo + { + protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.BLM_UmbralSoul; - protected uint AtFirst(uint actionID, uint lastComboMove, float comboTime, byte level, bool canWeave, float currentMP) - { - // 激情咏唱 - if (GetRemainingCharges(Sharpcast) > 0 && !HasEffect(Buffs.Sharpcast) && !Gauge.InUmbralIce && !Gauge.InAstralFire) - { - lastOGCD = Sharpcast; - return Sharpcast; - } - // 爆炎 - if (!Gauge.InUmbralIce && !Gauge.InAstralFire && currentMP > MP.Fire3) - { - lastGCD = Fire3; - return Fire3; - } - // 暴雷 - if (lastComboMove == Fire3 && currentMP > MP.Thunder) - { - lastGCD = Thunder3; - return Thunder3; - } - // 三连咏唱 - if (lastComboMove == Fire4 && GetRemainingCharges(Triplecast) > 0 && (currentMP == 7600 || currentMP == 6000) && FindEffect(Buffs.Triplecast) == null) - { - lastOGCD = Triplecast; - return Triplecast; - } - if (canWeave) - { - // 详述 - if (GetRemainingCharges(Amplifier) > 0 && Gauge.PolyglotStacks < 2 && - !(Gauge.PolyglotStacks == 1 && Gauge.EnochianTimer < 10000 && Gauge.EnochianTimer != 0)) - { - lastOGCD = Amplifier; - return Amplifier; - } - // 黑魔纹 - if (GetRemainingCharges(LeyLines) > 0) - { - lastOGCD = LeyLines; - return LeyLines; - } - // 即刻咏唱 - if (FindEffect(Buffs.Triplecast) == null && GetRemainingCharges(All.Swiftcast) > 0) - { - lastOGCD = All.Swiftcast; - return All.Swiftcast; - } - } - // 炽炎 - if (currentMP >= MP.Fire) - { - lastGCD = Fire4; - return Fire4; - } - // 绝望 - if (currentMP >= MP.Despair) - { - if (GetRemainingCharges(Manafont) == 0) - { - pecialCombo = ""; - } - lastGCD = Despair; - return Despair; - } - // 炽炎2 - if (GetRemainingCharges(Manafont) == 0) - { - lastGCD = Fire4; - return Fire4; - } - // 魔泉 - if (GetRemainingCharges(Manafont) > 0) - { - lastOGCD = Manafont; - return Manafont; - } - // 出现了意外 - pecialCombo = ""; - return actionID; - } + protected override uint Invoke(uint actionID, uint lastComboMove, float comboTime, byte level) => + actionID is Transpose && GetJobGauge().InUmbralIce && LevelChecked(UmbralSoul) + ? UmbralSoul + : actionID; } } } \ No newline at end of file diff --git a/XIVSlothCombo/Combos/PvE/DRG.cs b/XIVSlothCombo/Combos/PvE/DRG.cs index 9046730ea..d136ea9e0 100644 --- a/XIVSlothCombo/Combos/PvE/DRG.cs +++ b/XIVSlothCombo/Combos/PvE/DRG.cs @@ -1,18 +1,19 @@ using Dalamud.Game.ClientState.JobGauge.Types; using Dalamud.Game.ClientState.Statuses; +using XIVSlothCombo.Combos.JobHelpers; using XIVSlothCombo.Combos.PvE.Content; using XIVSlothCombo.CustomComboNS; -using XIVSlothCombo.Core; +using XIVSlothCombo.CustomComboNS.Functions; +using XIVSlothCombo.Extensions; namespace XIVSlothCombo.Combos.PvE { - internal static class DRG + internal class DRG { public const byte ClassID = 4; public const byte JobID = 22; public const uint - TrueNorth = 7546, PiercingTalon = 90, ElusiveJump = 94, LanceCharge = 85, @@ -47,7 +48,6 @@ public const uint public static class Buffs { public const ushort - TrueNorth = 1250, LanceCharge = 1864, RightEye = 1910, BattleLitany = 786, @@ -67,251 +67,364 @@ public const ushort ChaoticSpring = 2719; } - public static class Config + public static class Traits { - public const string - DRG_ST_DiveOptions = "DRG_ST_DiveOptions", - DRG_AOE_DiveOptions = "DRG_AOE_DiveOptions", - DRG_OpenerOptions = "DRG_OpenerOptions", - DRG_STSecondWindThreshold = "DRG_STSecondWindThreshold", - DRG_STBloodbathThreshold = "DRG_STBloodbathThreshold", - DRG_AoESecondWindThreshold = "DRG_AoESecondWindThreshold", - DRG_AoEBloodbathThreshold = "DRG_AoEBloodbathThreshold", - DRG_VariantCure = "DRG_VariantCure"; + public const uint + EnhancedSpineshatterDive = 436, + EnhancedLifeSurge = 438; } - internal class DRG_JumpFeature : CustomCombo + public static class Config { - protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.DRG_Jump; - - protected override uint Invoke(uint actionID, uint lastComboMove, float comboTime, byte level) => - actionID is DRG.Jump or DRG.HighJump && HasEffect(DRG.Buffs.DiveReady) ? DRG.MirageDive : actionID; + public static UserInt + DRG_Opener_Choice = new("DRG_OpenerChoice"), + DRG_Variant_Cure = new("DRG_VariantCure"), + DRG_ST_LitanyHP = new("DRG_ST_LitanyHP"), + DRG_ST_SightHP = new("DRG_ST_SightHP"), + DRG_ST_LanceChargeHP = new("DRG_ST_LanceChargeHP"), + DRG_ST_SecondWind_Threshold = new("DRG_STSecondWindThreshold"), + DRG_ST_Bloodbath_Threshold = new("DRG_STBloodbathThreshold"), + DRG_AoE_LitanyHP = new("DRG_AoE_LitanyHP"), + DRG_AoE_SightHP = new("DRG_AoE_SightHP"), + DRG_AoE_LanceChargeHP = new("DRG_AoE_LanceChargeHP"), + DRG_AoE_SecondWind_Threshold = new("DRG_AoESecondWindThreshold"), + DRG_AoEBloodbath_Threshold = new("DRG_AoEBloodbathThreshold"); + public static UserBool + DRG_ST_TrueNorth_Moving = new("DRG_ST_TrueNorth_Moving"), + DRG_ST_TrueNorth_FirstOnly = new("DRG_ST_TrueNorth_FirstOnly"); + public static UserBoolArray + DRG_ST_DivesOption_Dragonfire = new("DRG_ST_DivesOption_Dragonfire"), + DRG_ST_DivesOption_Spineshatter = new("DRG_ST_DivesOption_Spineshatter"), + DRG_AoE_DivesOption_Dragonfire = new("DRG_AoE_DivesOption_Dragonfire"), + DRG_AoE_DivesOption_Spineshatter = new("DRG_AoE_DivesOption_Spineshatter"); } - internal class DRG_STCombo : CustomCombo + internal class DRG_ST_SimpleMode : CustomCombo { - protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.DRG_STCombo; - internal static bool inOpener = false; + protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.DRG_ST_SimpleMode; + internal static DRGOpenerLogic DRGOpener = new(); protected override uint Invoke(uint actionID, uint lastComboMove, float comboTime, byte level) { - var gauge = GetJobGauge(); - bool openerReady = IsOffCooldown(LanceCharge) && IsOffCooldown(BattleLitany); - var diveOptions = PluginConfiguration.GetCustomIntValue(Config.DRG_ST_DiveOptions); - var openerOptions = PluginConfiguration.GetCustomIntValue(Config.DRG_OpenerOptions); - + DRGGauge? gauge = GetJobGauge(); Status? ChaosDoTDebuff; + bool trueNorthReady = TargetNeedsPositionals() && HasCharges(All.TrueNorth) && !HasEffect(All.Buffs.TrueNorth); + if (LevelChecked(ChaoticSpring)) ChaosDoTDebuff = FindTargetEffect(Debuffs.ChaoticSpring); else ChaosDoTDebuff = FindTargetEffect(Debuffs.ChaosThrust); if (actionID is TrueThrust) { - // Lvl88+ Opener - if (!InCombat() && IsEnabled(CustomComboPreset.DRG_ST_Opener) && level >= 88) - { - inOpener = false; + if (IsEnabled(CustomComboPreset.DRG_Variant_Cure) && + IsEnabled(Variant.VariantCure) && + PlayerHealthPercentageHp() <= Config.DRG_Variant_Cure) + return Variant.VariantCure; - if (HasEffect(Buffs.TrueNorth) && openerReady) - inOpener = true; - if (inOpener) - return OriginalHook(TrueThrust); - } + if (IsEnabled(CustomComboPreset.DRG_Variant_Rampart) && + IsEnabled(Variant.VariantRampart) && + IsOffCooldown(Variant.VariantRampart) && + AnimationLock.CanDRGWeave(Variant.VariantRampart)) + return Variant.VariantRampart; + + // Opener for DRG + if (DRGOpener.DoFullOpener(ref actionID, true)) + return actionID; // Piercing Talon Uptime Option - if (IsEnabled(CustomComboPreset.DRG_ST_RangedUptime) && LevelChecked(PiercingTalon) && !InMeleeRange() && HasBattleTarget()) + if (LevelChecked(PiercingTalon) && !InMeleeRange() && HasBattleTarget()) return PiercingTalon; - if (InCombat()) + if (HasEffect(Buffs.PowerSurge)) { - if (CombatEngageDuration().TotalSeconds < 3 && IsOnCooldown(ElusiveJump) && openerReady) - inOpener = true; + //Battle Litany Feature + if (ActionReady(BattleLitany) && AnimationLock.CanDRGWeave(BattleLitany)) + return BattleLitany; - if (IsEnabled(CustomComboPreset.DRG_Variant_Cure) && IsEnabled(Variant.VariantCure) && PlayerHealthPercentageHp() <= GetOptionValue(Config.DRG_VariantCure)) - return Variant.VariantCure; + //Lance Charge Feature + if (ActionReady(LanceCharge) && AnimationLock.CanDRGWeave(LanceCharge)) + return LanceCharge; - if (inOpener) - { - if (IsOnCooldown(BattleLitany) && !HasEffect(Buffs.LanceCharge)) - inOpener = false; + //Dragon Sight Feature + if (ActionReady(DragonSight) && AnimationLock.CanDRGWeave(DragonSight)) + return DragonSight; - //oGCDs - if (CanWeave(actionID)) + //Life Surge Feature + if (!HasEffect(Buffs.LifeSurge) && HasCharges(LifeSurge) && AnimationLock.CanDRGWeave(LifeSurge) && + ((HasEffect(Buffs.RightEye) && HasEffect(Buffs.LanceCharge) && lastComboMove is VorpalThrust) || + (HasEffect(Buffs.LanceCharge) && lastComboMove is VorpalThrust) || + (HasEffect(Buffs.RightEye) && HasEffect(Buffs.LanceCharge) && (HasEffect(Buffs.EnhancedWheelingThrust) || HasEffect(Buffs.SharperFangAndClaw))) || + (IsOnCooldown(DragonSight) && IsOnCooldown(LanceCharge) && lastComboMove is VorpalThrust))) + return LifeSurge; + + //Wyrmwind Thrust Feature + if (gauge.FirstmindsFocusCount is 2 && AnimationLock.CanDRGWeave(WyrmwindThrust)) + return WyrmwindThrust; + + //Dives Feature + if (!IsMoving && LevelChecked(LanceCharge)) + { + if ((!TraitLevelChecked(Traits.EnhancedSpineshatterDive) && HasEffect(Buffs.LanceCharge)) || //Dives for synched + (HasEffect(Buffs.LanceCharge) && HasEffect(Buffs.RightEye))) //Dives under LanceCharge and Dragon Sight -- optimized with the balance { - if (WasLastWeaponskill(Disembowel) && openerOptions is 0 or 1 or 2) - { - if (ActionReady(LanceCharge)) - return LanceCharge; - if (ActionReady(DragonSight)) - return DragonSight; - } + if (ActionReady(DragonfireDive) && AnimationLock.CanDRGWeave(DragonfireDive)) + return DragonfireDive; - if (WasLastWeaponskill(ChaoticSpring)) - { - if (openerOptions is 0 or 1 or 2 && ActionReady(BattleLitany)) - return BattleLitany; - if (openerOptions is 2 && GetRemainingCharges(SpineshatterDive) > 1) - return OriginalHook(SpineshatterDive); - } + if (ActionReady(SpineshatterDive) && AnimationLock.CanDRGWeave(SpineshatterDive)) + return SpineshatterDive; + } + } - if (WasLastWeaponskill(WheelingThrust) && openerOptions is 0 or 1 or 2) - { - if (ActionReady(Geirskogul)) - return Geirskogul; - if (GetRemainingCharges(LifeSurge) > 0 && !HasEffect(Buffs.LifeSurge)) - return LifeSurge; - } + //(High) Jump Feature + if (ActionReady(OriginalHook(Jump)) && !IsMoving && AnimationLock.CanDRGWeave(OriginalHook(Jump))) + return OriginalHook(Jump); - if (WasLastWeaponskill(FangAndClaw)) - { - if (openerOptions is 0 or 1) - { - if (GetRemainingCharges(SpineshatterDive) < 2 && !WasLastAction(SpineshatterDive)) - return SpineshatterDive; - if (ActionReady(OriginalHook(Jump)) && !HasEffect(Buffs.DiveReady)) - return OriginalHook(Jump); - } + //Geirskogul and Nastrond Feature + if (IsOnCooldown(OriginalHook(Jump)) && ActionReady(OriginalHook(Geirskogul)) && AnimationLock.CanDRGWeave(OriginalHook(Geirskogul))) + return OriginalHook(Geirskogul); - if (openerOptions is 2) - { - if (ActionReady(OriginalHook(Jump))) - return OriginalHook(Jump); - if (HasEffect(Buffs.DiveReady)) - return MirageDive; - } - } + //Mirage Feature + if (IsOnCooldown(OriginalHook(Geirskogul)) && HasEffect(Buffs.DiveReady) && AnimationLock.CanDRGWeave(MirageDive)) + return MirageDive; - if (WasLastWeaponskill(RaidenThrust)) - { - if (openerOptions is 0 or 1 or 2 && ActionReady(DragonfireDive)) - return DragonfireDive; - } + //StarDives Feature + if (gauge.IsLOTDActive && ActionReady(Stardiver) && AnimationLock.CanDRGWeave(Stardiver) && !IsMoving && (HasEffect(Buffs.LanceCharge) || HasEffect(Buffs.RightEye) || HasEffect(Buffs.BattleLitany))) + return Stardiver; + } - if (WasLastWeaponskill(VorpalThrust)) - { - if (openerOptions is 0 or 1) - { - if (GetRemainingCharges(LifeSurge) > 0 && !HasEffect(Buffs.LifeSurge)) - return LifeSurge; - if (HasEffect(Buffs.DiveReady)) - return MirageDive; - } + //1-2-3 Combo + if (HasEffect(Buffs.SharperFangAndClaw)) + { + // If we are not on the flank, but need to use Fangs, pop true north if not already up + if (trueNorthReady && AnimationLock.CanDRGWeave(All.TrueNorth) && + !OnTargetsFlank() && !HasEffect(Buffs.RightEye)) + return All.TrueNorth; - if (openerOptions is 2) - { - if (ActionReady(SpineshatterDive)) - return SpineshatterDive; - if (GetRemainingCharges(LifeSurge) > 0 && !HasEffect(Buffs.LifeSurge)) - return LifeSurge; - } - } + return OriginalHook(FangAndClaw); + } - if (WasLastWeaponskill(HeavensThrust) && GetRemainingCharges(SpineshatterDive) > 0 && !WasLastAction(SpineshatterDive) && openerOptions is 0 or 1) - return SpineshatterDive; - } - } + if (HasEffect(Buffs.EnhancedWheelingThrust)) + { + // If we are not on the rear, but need to use Wheeling, pop true north if not already up + if (trueNorthReady && AnimationLock.CanDRGWeave(All.TrueNorth) && + !OnTargetsRear() && !HasEffect(Buffs.RightEye)) + return All.TrueNorth; + + return OriginalHook(WheelingThrust); + } - if (!inOpener) + if (comboTime > 0) + { + if ((LevelChecked(OriginalHook(ChaosThrust)) && (ChaosDoTDebuff is null || ChaosDoTDebuff.RemainingTime < 6)) || + GetBuffRemainingTime(Buffs.PowerSurge) < 10) { - if (CanWeave(actionID)) - { - if (IsEnabled(CustomComboPreset.DRG_Variant_Rampart) && - IsEnabled(Variant.VariantRampart) && - IsOffCooldown(Variant.VariantRampart) && - CanWeave(actionID)) - return Variant.VariantRampart; + if (lastComboMove is TrueThrust or RaidenThrust && LevelChecked(Disembowel)) + return Disembowel; - if (HasEffect(Buffs.PowerSurge)) - { - //Wyrmwind Thrust Feature - if (IsEnabled(CustomComboPreset.DRG_ST_CDs) && IsEnabled(CustomComboPreset.DRG_ST_Wyrmwind) && gauge.FirstmindsFocusCount is 2) - return WyrmwindThrust; + if (lastComboMove is Disembowel && LevelChecked(OriginalHook(ChaosThrust))) + return OriginalHook(ChaosThrust); + } - if (IsEnabled(CustomComboPreset.DRG_ST_Buffs)) - { - //Lance Charge Feature - if (IsEnabled(CustomComboPreset.DRG_ST_Lance) && LevelChecked(LanceCharge) && IsOffCooldown(LanceCharge)) - return LanceCharge; + if (lastComboMove is TrueThrust or RaidenThrust && LevelChecked(VorpalThrust)) + return VorpalThrust; - //Dragon Sight Feature - if (IsEnabled(CustomComboPreset.DRG_ST_DragonSight) && LevelChecked(DragonSight) && IsOffCooldown(DragonSight)) - return DragonSight; + if (lastComboMove is VorpalThrust && LevelChecked(FullThrust)) + return OriginalHook(FullThrust); + } - //Battle Litany Feature - if (IsEnabled(CustomComboPreset.DRG_ST_Litany) && LevelChecked(BattleLitany) && IsOffCooldown(BattleLitany) && CanWeave(actionID, 1.3)) - return BattleLitany; - } + return OriginalHook(TrueThrust); + } + + return actionID; + } + } + + internal class DRG_ST_AdvancedMode : CustomCombo + { + protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.DRG_ST_AdvancedMode; + internal static DRGOpenerLogic DRGOpener = new(); + + protected override uint Invoke(uint actionID, uint lastComboMove, float comboTime, byte level) + { + DRGGauge? gauge = GetJobGauge(); + Status? ChaosDoTDebuff; + bool dragonfireAny = Config.DRG_ST_DivesOption_Dragonfire.All(x => x == false); + bool spineshatterAny = Config.DRG_ST_DivesOption_Spineshatter.All(x => x == false); + bool trueNorthReady = TargetNeedsPositionals() && HasCharges(All.TrueNorth) && !HasEffect(All.Buffs.TrueNorth); + bool tnMoving = (Config.DRG_ST_TrueNorth_Moving && !IsMoving) || (!Config.DRG_ST_TrueNorth_Moving); + bool tnFirstOnly = (Config.DRG_ST_TrueNorth_FirstOnly && !WasLastWeaponskill(OriginalHook(WheelingThrust)) && !WasLastWeaponskill(OriginalHook(FangAndClaw)) && !WasLastWeaponskill(OriginalHook(ChaosThrust))) || (!Config.DRG_ST_TrueNorth_FirstOnly); + bool allowedToTN = tnMoving && tnFirstOnly; + + if (LevelChecked(ChaoticSpring)) + ChaosDoTDebuff = FindTargetEffect(Debuffs.ChaoticSpring); + else ChaosDoTDebuff = FindTargetEffect(Debuffs.ChaosThrust); + + if (actionID is TrueThrust) + { + if (IsEnabled(CustomComboPreset.DRG_Variant_Cure) && + IsEnabled(Variant.VariantCure) && + PlayerHealthPercentageHp() <= Config.DRG_Variant_Cure) + return Variant.VariantCure; + + if (IsEnabled(CustomComboPreset.DRG_Variant_Rampart) && + IsEnabled(Variant.VariantRampart) && + IsOffCooldown(Variant.VariantRampart) && + AnimationLock.CanDRGWeave(Variant.VariantRampart)) + return Variant.VariantRampart; + + // Opener for BLM + if (IsEnabled(CustomComboPreset.DRG_ST_Opener)) + { + if (DRGOpener.DoFullOpener(ref actionID, false)) + return actionID; + } + + // Piercing Talon Uptime Option + if (IsEnabled(CustomComboPreset.DRG_ST_RangedUptime) && + LevelChecked(PiercingTalon) && !InMeleeRange() && HasBattleTarget()) + return PiercingTalon; + + if (HasEffect(Buffs.PowerSurge)) + { + if (IsEnabled(CustomComboPreset.DRG_ST_Buffs)) + { + //Battle Litany Feature + if (IsEnabled(CustomComboPreset.DRG_ST_Litany) && + ActionReady(BattleLitany) && AnimationLock.CanDRGWeave(BattleLitany) && + GetTargetHPPercent() >= Config.DRG_ST_LitanyHP) + return BattleLitany; + + //Lance Charge Feature + if (IsEnabled(CustomComboPreset.DRG_ST_Lance) && + ActionReady(LanceCharge) && AnimationLock.CanDRGWeave(LanceCharge) && + GetTargetHPPercent() >= Config.DRG_ST_LanceChargeHP) + return LanceCharge; + + //Dragon Sight Feature + if (IsEnabled(CustomComboPreset.DRG_ST_DragonSight) && + ActionReady(DragonSight) && AnimationLock.CanDRGWeave(DragonSight) && + GetTargetHPPercent() >= Config.DRG_ST_SightHP) + return DragonSight; + } + + if (IsEnabled(CustomComboPreset.DRG_ST_CDs)) + { + //Life Surge Feature + if (IsEnabled(CustomComboPreset.DRG_ST_LifeSurge) && ActionReady(LifeSurge) && AnimationLock.CanDRGWeave(LifeSurge) && !HasEffect(Buffs.LifeSurge) && + ((HasEffect(Buffs.RightEye) && HasEffect(Buffs.LanceCharge) && lastComboMove is VorpalThrust) || + (HasEffect(Buffs.LanceCharge) && lastComboMove is VorpalThrust) || + (HasEffect(Buffs.RightEye) && HasEffect(Buffs.LanceCharge) && (HasEffect(Buffs.EnhancedWheelingThrust) || HasEffect(Buffs.SharperFangAndClaw))) || + (IsOnCooldown(DragonSight) && IsOnCooldown(LanceCharge) && lastComboMove is VorpalThrust))) + return LifeSurge; + + //Wyrmwind Thrust Feature + if (IsEnabled(CustomComboPreset.DRG_ST_Wyrmwind) && + gauge.FirstmindsFocusCount is 2 && AnimationLock.CanDRGWeave(WyrmwindThrust)) + return WyrmwindThrust; + + //Dives Feature + if (IsEnabled(CustomComboPreset.DRG_ST_Dives_Dragonfire) && !IsMoving && LevelChecked(LanceCharge)) + { + if (dragonfireAny || //Dives on cooldown + (((Config.DRG_ST_DivesOption_Dragonfire[0] && HasEffect(Buffs.LanceCharge)) || (!Config.DRG_ST_DivesOption_Dragonfire[0]) || (!LanceCharge.LevelChecked())) && + ((Config.DRG_ST_DivesOption_Dragonfire[1] && HasEffect(Buffs.RightEye)) || (!Config.DRG_ST_DivesOption_Dragonfire[1]) || (!DragonSight.LevelChecked())) && + ((Config.DRG_ST_DivesOption_Dragonfire[2] && HasEffect(Buffs.BattleLitany)) || (!Config.DRG_ST_DivesOption_Dragonfire[2]) || (!BattleLitany.LevelChecked())))) + { + if (ActionReady(DragonfireDive) && AnimationLock.CanDRGWeave(DragonfireDive)) + return DragonfireDive; - if (IsEnabled(CustomComboPreset.DRG_ST_CDs)) - { - //Geirskogul and Nastrond Feature - if (IsEnabled(CustomComboPreset.DRG_ST_GeirskogulNastrond) && LevelChecked(Geirskogul) && ((gauge.IsLOTDActive && IsOffCooldown(Nastrond)) || IsOffCooldown(Geirskogul))) - return OriginalHook(Geirskogul); - - //(High) Jump Feature - if (IsEnabled(CustomComboPreset.DRG_ST_HighJump) && ActionReady(OriginalHook(Jump))) - return OriginalHook(Jump); - - //Mirage Feature - if (IsEnabled(CustomComboPreset.DRG_ST_Mirage) && HasEffect(Buffs.DiveReady)) - return MirageDive; - - //Life Surge Feature - if (IsEnabled(CustomComboPreset.DRG_ST_LifeSurge) && !HasEffect(Buffs.LifeSurge) && GetRemainingCharges(LifeSurge) > 0 && - (((HasEffect(Buffs.RightEye) || HasEffect(Buffs.LanceCharge)) && lastComboMove is VorpalThrust) || - (HasEffect(Buffs.BattleLitany) && ((HasEffect(Buffs.EnhancedWheelingThrust) && WasLastWeaponskill(FangAndClaw)) || HasEffect(Buffs.SharperFangAndClaw) && WasLastWeaponskill(WheelingThrust))))) - return LifeSurge; - - //Dives Feature - if (IsEnabled(CustomComboPreset.DRG_ST_Dives) && (IsNotEnabled(CustomComboPreset.DRG_ST_Dives_Melee) || (IsEnabled(CustomComboPreset.DRG_ST_Dives_Melee) && GetTargetDistance() <= 1))) - { - if (diveOptions is 0 or 1 or 2 or 3 && gauge.IsLOTDActive && ActionReady(Stardiver) && IsOnCooldown(DragonfireDive)) - return Stardiver; - - if (diveOptions is 0 or 1 || //Dives on cooldown - (diveOptions is 2 && ((gauge.IsLOTDActive && LevelChecked(Nastrond)) || !LevelChecked(Nastrond)) && HasEffectAny(Buffs.BattleLitany)) || //Dives under Litany and Life of the Dragon - (diveOptions is 3 && HasEffect(Buffs.LanceCharge))) //Dives under Lance Charge Feature - { - if (LevelChecked(DragonfireDive) && IsOffCooldown(DragonfireDive)) - return DragonfireDive; - if (LevelChecked(SpineshatterDive) && GetRemainingCharges(SpineshatterDive) > 0) - return SpineshatterDive; - } - } - } } + } - // healing - please move if not appropriate this high priority - if (IsEnabled(CustomComboPreset.DRG_ST_ComboHeals)) + if (IsEnabled(CustomComboPreset.DRG_ST_Dives_Spineshatter) && !IsMoving && LevelChecked(LanceCharge)) + { + if (spineshatterAny || //Dives on cooldown + (((Config.DRG_ST_DivesOption_Spineshatter[0] && HasEffect(Buffs.LanceCharge)) || (!Config.DRG_ST_DivesOption_Spineshatter[0]) || (!LanceCharge.LevelChecked())) && + ((Config.DRG_ST_DivesOption_Spineshatter[1] && HasEffect(Buffs.RightEye)) || (!Config.DRG_ST_DivesOption_Spineshatter[1]) || (!DragonSight.LevelChecked())) && + ((Config.DRG_ST_DivesOption_Spineshatter[2] && HasEffect(Buffs.BattleLitany)) || (!Config.DRG_ST_DivesOption_Spineshatter[2]) || (!BattleLitany.LevelChecked())))) { - if (PlayerHealthPercentageHp() <= PluginConfiguration.GetCustomIntValue(Config.DRG_STSecondWindThreshold) && LevelChecked(All.SecondWind) && IsOffCooldown(All.SecondWind)) - return All.SecondWind; - if (PlayerHealthPercentageHp() <= PluginConfiguration.GetCustomIntValue(Config.DRG_STBloodbathThreshold) && LevelChecked(All.Bloodbath) && IsOffCooldown(All.Bloodbath)) - return All.Bloodbath; + if (ActionReady(SpineshatterDive) && AnimationLock.CanDRGWeave(SpineshatterDive)) + return SpineshatterDive; } } + + + //(High) Jump Feature + if (IsEnabled(CustomComboPreset.DRG_ST_HighJump) && + ActionReady(OriginalHook(Jump)) && !IsMoving && AnimationLock.CanDRGWeave(OriginalHook(Jump))) + return OriginalHook(Jump); + + //Geirskogul and Nastrond Feature + if (IsEnabled(CustomComboPreset.DRG_ST_GeirskogulNastrond) && AnimationLock.CanDRGWeave(OriginalHook(Geirskogul)) && (ActionReady(OriginalHook(Geirskogul)) || + (IsEnabled(CustomComboPreset.DRG_ST_Optimized_Rotation) && IsOnCooldown(OriginalHook(Jump)) && ActionReady(OriginalHook(Geirskogul))))) + return OriginalHook(Geirskogul); + + //Mirage Feature + if (IsEnabled(CustomComboPreset.DRG_ST_Mirage) && AnimationLock.CanDRGWeave(MirageDive) && (HasEffect(Buffs.DiveReady) || + (IsEnabled(CustomComboPreset.DRG_ST_Optimized_Rotation) && IsOnCooldown(OriginalHook(Geirskogul)) && HasEffect(Buffs.DiveReady)))) + return MirageDive; + + //StarDives Feature + if (IsEnabled(CustomComboPreset.DRG_ST_Stardiver) && AnimationLock.CanDRGWeave(Stardiver) && + gauge.IsLOTDActive && ActionReady(Stardiver) && !IsMoving && (HasEffect(Buffs.LanceCharge) || HasEffect(Buffs.RightEye) || HasEffect(Buffs.BattleLitany) || gauge.LOTDTimer <= 4000)) + return Stardiver; } + } + + // healing + if (IsEnabled(CustomComboPreset.DRG_ST_ComboHeals)) + { + if (PlayerHealthPercentageHp() <= Config.DRG_ST_SecondWind_Threshold && ActionReady(All.SecondWind)) + return All.SecondWind; + + if (PlayerHealthPercentageHp() <= Config.DRG_ST_Bloodbath_Threshold && ActionReady(All.Bloodbath)) + return All.Bloodbath; + } + + //1-2-3 Combo + if (HasEffect(Buffs.SharperFangAndClaw)) + { + // If we are not on the flank, but need to use Fangs, pop true north if not already up + if (IsEnabled(CustomComboPreset.DRG_TrueNorthDynamic) && + trueNorthReady && allowedToTN && CanDelayedWeave(actionID) && + !OnTargetsFlank() && !HasEffect(Buffs.RightEye)) + return All.TrueNorth; - //1-2-3 Combo - if (HasEffect(Buffs.SharperFangAndClaw)) - return FangAndClaw; - if (HasEffect(Buffs.EnhancedWheelingThrust)) - return WheelingThrust; - if (comboTime > 0) + return OriginalHook(FangAndClaw); + } + + if (HasEffect(Buffs.EnhancedWheelingThrust)) + { + // If we are not on the rear, but need to use Wheeling, pop true north if not already up + if (IsEnabled(CustomComboPreset.DRG_TrueNorthDynamic) && + trueNorthReady && allowedToTN && CanDelayedWeave(actionID) && + !OnTargetsRear() && !HasEffect(Buffs.RightEye)) + return All.TrueNorth; + + return OriginalHook(WheelingThrust); + } + + if (comboTime > 0) + { + if ((LevelChecked(OriginalHook(ChaosThrust)) && (ChaosDoTDebuff is null || ChaosDoTDebuff.RemainingTime < 6)) || + GetBuffRemainingTime(Buffs.PowerSurge) < 10) { - if (ChaosDoTDebuff is null || ChaosDoTDebuff.RemainingTime < 6 || GetBuffRemainingTime(Buffs.PowerSurge) < 10) - { - if (lastComboMove is TrueThrust or RaidenThrust && LevelChecked(Disembowel)) - return Disembowel; - if (lastComboMove is Disembowel && LevelChecked(ChaosThrust)) - return OriginalHook(ChaosThrust); - } + if (lastComboMove is TrueThrust or RaidenThrust && LevelChecked(Disembowel)) + return Disembowel; + + if (IsEnabled(CustomComboPreset.DRG_TrueNorthDynamic) && + trueNorthReady && allowedToTN && CanDelayedWeave(actionID) && + !OnTargetsRear() && !HasEffect(Buffs.RightEye)) + return All.TrueNorth; - if (lastComboMove is TrueThrust or RaidenThrust && LevelChecked(VorpalThrust)) - return VorpalThrust; - if (lastComboMove is VorpalThrust && LevelChecked(FullThrust)) - return OriginalHook(FullThrust); + if (lastComboMove is Disembowel && LevelChecked(OriginalHook(ChaosThrust))) + return OriginalHook(ChaosThrust); } + if (lastComboMove is TrueThrust or RaidenThrust && LevelChecked(VorpalThrust)) + return VorpalThrust; + + if (lastComboMove is VorpalThrust && LevelChecked(FullThrust)) + return OriginalHook(FullThrust); } return OriginalHook(TrueThrust); @@ -321,131 +434,291 @@ protected override uint Invoke(uint actionID, uint lastComboMove, float comboTim } } - internal class DRG_AoECombo : CustomCombo + internal class DRG_AOE_SimpleMode : CustomCombo { - protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.DRG_AoECombo; + protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.DRG_AOE_SimpleMode; protected override uint Invoke(uint actionID, uint lastComboMove, float comboTime, byte level) { + DRGGauge? gauge = GetJobGauge(); + if (actionID is DoomSpike) { - var gauge = GetJobGauge(); - var DiveOptions = PluginConfiguration.GetCustomIntValue(Config.DRG_AOE_DiveOptions); - - if (IsEnabled(CustomComboPreset.DRG_Variant_Cure) && IsEnabled(Variant.VariantCure) && PlayerHealthPercentageHp() <= GetOptionValue(Config.DRG_VariantCure)) + if (IsEnabled(CustomComboPreset.DRG_Variant_Cure) && + IsEnabled(Variant.VariantCure) && + PlayerHealthPercentageHp() <= Config.DRG_Variant_Cure) return Variant.VariantCure; // Piercing Talon Uptime Option - if (IsEnabled(CustomComboPreset.DRG_AoE_RangedUptime) && LevelChecked(PiercingTalon) && GetTargetDistance() > 10 && HasBattleTarget()) + if (LevelChecked(PiercingTalon) && !InMeleeRange() && HasBattleTarget()) return PiercingTalon; - if (CanWeave(actionID)) + if (IsEnabled(CustomComboPreset.DRG_Variant_Rampart) && + IsEnabled(Variant.VariantRampart) && + IsOffCooldown(Variant.VariantRampart) && + AnimationLock.CanDRGWeave(Variant.VariantRampart)) + return Variant.VariantRampart; + + if (HasEffect(Buffs.PowerSurge)) { - if (IsEnabled(CustomComboPreset.DRG_Variant_Rampart) && - IsEnabled(Variant.VariantRampart) && - IsOffCooldown(Variant.VariantRampart) && - CanWeave(actionID)) - return Variant.VariantRampart; + //Battle Litany Feature + if (ActionReady(BattleLitany) && AnimationLock.CanDRGWeave(BattleLitany)) + return BattleLitany; + + //Lance Charge Feature + if (ActionReady(LanceCharge) && AnimationLock.CanDRGWeave(LanceCharge)) + return LanceCharge; + + //Dragon Sight Feature + if (ActionReady(DragonSight) && AnimationLock.CanDRGWeave(DragonSight)) + return DragonSight; + + //Life Surge Feature + if (!HasEffect(Buffs.LifeSurge) && HasCharges(LifeSurge) && + lastComboMove is SonicThrust && LevelChecked(CoerthanTorment) && AnimationLock.CanDRGWeave(LifeSurge)) + return LifeSurge; + - if (HasEffect(Buffs.PowerSurge)) + //Wyrmwind Thrust Feature + if (gauge.FirstmindsFocusCount is 2 && AnimationLock.CanDRGWeave(WyrmwindThrust)) + return WyrmwindThrust; + + //Dives Feature + if (!IsMoving && LevelChecked(LanceCharge)) { - //Buffs AoE Feature - if (IsEnabled(CustomComboPreset.DRG_AoE_Buffs)) + if ((!TraitLevelChecked(Traits.EnhancedSpineshatterDive) && HasEffect(Buffs.LanceCharge)) || //Dives for synched + (HasEffect(Buffs.LanceCharge) && HasEffect(Buffs.RightEye))) //Dives under LanceCharge and Dragon Sight -- optimized with the balance { - if (LevelChecked(LanceCharge) && IsOffCooldown(LanceCharge)) - return LanceCharge; - if (LevelChecked(BattleLitany) && IsOffCooldown(BattleLitany)) - return BattleLitany; - - //Dragon Sight AoE Feature - if (IsEnabled(CustomComboPreset.DRG_AoE_DragonSight) && LevelChecked(DragonSight) && IsOffCooldown(DragonSight)) - return DragonSight; + if (ActionReady(DragonfireDive) && AnimationLock.CanDRGWeave(DragonfireDive)) + return DragonfireDive; + + if (ActionReady(SpineshatterDive) && AnimationLock.CanDRGWeave(SpineshatterDive)) + return SpineshatterDive; } + } - //Geirskogul and Nastrond AoE Feature - if (IsEnabled(CustomComboPreset.DRG_AoE_GeirskogulNastrond) && LevelChecked(Geirskogul) && ((gauge.IsLOTDActive && IsOffCooldown(Nastrond)) || IsOffCooldown(Geirskogul))) - return OriginalHook(Geirskogul); + //(High) Jump Feature + if (ActionReady(OriginalHook(Jump)) && !IsMoving && AnimationLock.CanDRGWeave(OriginalHook(Jump))) + return OriginalHook(Jump); - //(High) Jump AoE Feature - if (IsEnabled(CustomComboPreset.DRG_AoE_HighJump) && ActionReady(OriginalHook(Jump)) && CanWeave(actionID, 1)) - return OriginalHook(Jump); + //Geirskogul and Nastrond Feature + if (IsOnCooldown(OriginalHook(Jump)) && ActionReady(OriginalHook(Geirskogul)) && AnimationLock.CanDRGWeave(OriginalHook(Geirskogul))) + return OriginalHook(Geirskogul); - //Mirage Dive Feature - if (IsEnabled(CustomComboPreset.DRG_AoE_Mirage) && HasEffect(Buffs.DiveReady)) - return MirageDive; + //Mirage Feature + if (IsOnCooldown(OriginalHook(Geirskogul)) && HasEffect(Buffs.DiveReady) && AnimationLock.CanDRGWeave(MirageDive)) + return MirageDive; + + //StarDives Feature + if (gauge.IsLOTDActive && ActionReady(Stardiver) && AnimationLock.CanDRGWeave(Stardiver) && !IsMoving && + (HasEffect(Buffs.LanceCharge) || HasEffect(Buffs.RightEye) || HasEffect(Buffs.BattleLitany))) + return Stardiver; + } + + if (comboTime > 0) + { + if (!SonicThrust.LevelChecked()) + { + if (lastComboMove == TrueThrust) + return Disembowel; + + if (lastComboMove == Disembowel && OriginalHook(ChaosThrust).LevelChecked()) + return OriginalHook(ChaosThrust); + } + else + { + if (lastComboMove is DoomSpike or DraconianFury) + return SonicThrust; + + if (lastComboMove == SonicThrust && CoerthanTorment.LevelChecked()) + return CoerthanTorment; + } + } + + return HasEffect(Buffs.PowerSurge) || SonicThrust.LevelChecked() ? OriginalHook(DoomSpike) : OriginalHook(TrueThrust); + } + + return actionID; + } + } + + internal class DRG_AOE_AdvancedMode : CustomCombo + { + protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.DRG_AOE_AdvancedMode; - //Life Surge AoE Feature + protected override uint Invoke(uint actionID, uint lastComboMove, float comboTime, byte level) + { + DRGGauge? gauge = GetJobGauge(); + bool dragonfireAny = Config.DRG_AoE_DivesOption_Dragonfire.All(x => x == false); + bool spineshatterAny = Config.DRG_AoE_DivesOption_Spineshatter.All(x => x == false); + + if (actionID is DoomSpike) + { + if (IsEnabled(CustomComboPreset.DRG_Variant_Cure) && + IsEnabled(Variant.VariantCure) && + PlayerHealthPercentageHp() <= Config.DRG_Variant_Cure) + return Variant.VariantCure; + + // Piercing Talon Uptime Option + if (IsEnabled(CustomComboPreset.DRG_AoE_RangedUptime) && + LevelChecked(PiercingTalon) && !InMeleeRange() && HasBattleTarget()) + return PiercingTalon; + + if (IsEnabled(CustomComboPreset.DRG_Variant_Rampart) && + IsEnabled(Variant.VariantRampart) && + IsOffCooldown(Variant.VariantRampart) && + AnimationLock.CanDRGWeave(Variant.VariantRampart)) + return Variant.VariantRampart; + + if (HasEffect(Buffs.PowerSurge)) + { + if (IsEnabled(CustomComboPreset.DRG_AoE_Buffs)) + { + //Battle Litany Feature + if (IsEnabled(CustomComboPreset.DRG_AoE_Litany) && + ActionReady(BattleLitany) && AnimationLock.CanDRGWeave(BattleLitany) && + GetTargetHPPercent() >= Config.DRG_AoE_LitanyHP) + return BattleLitany; + + //Lance Charge Feature + if (IsEnabled(CustomComboPreset.DRG_AoE_Lance) && + ActionReady(LanceCharge) && AnimationLock.CanDRGWeave(LanceCharge) && + GetTargetHPPercent() >= Config.DRG_AoE_LanceChargeHP) + return LanceCharge; + + //Dragon Sight Feature + if (IsEnabled(CustomComboPreset.DRG_AoE_DragonSight) && + ActionReady(DragonSight) && AnimationLock.CanDRGWeave(DragonSight) && + GetTargetHPPercent() >= Config.DRG_AoE_SightHP) + return DragonSight; + } + + if (IsEnabled(CustomComboPreset.DRG_AoE_CDs)) + { + //Life Surge Feature if (IsEnabled(CustomComboPreset.DRG_AoE_LifeSurge) && - !HasEffect(Buffs.LifeSurge) && GetRemainingCharges(LifeSurge) > 0 && (HasEffect(Buffs.LanceCharge) || HasEffect(Buffs.RightEye)) && - ((lastComboMove is CoerthanTorment && LevelChecked(CoerthanTorment)) || - (lastComboMove is SonicThrust && LevelChecked(SonicThrust) && !LevelChecked(CoerthanTorment)) || - (lastComboMove is DoomSpike && !LevelChecked(SonicThrust)))) + !HasEffect(Buffs.LifeSurge) && HasCharges(LifeSurge) && + lastComboMove is SonicThrust && LevelChecked(CoerthanTorment) && AnimationLock.CanDRGWeave(LifeSurge)) return LifeSurge; - //Wyrmwind Thrust AoE Feature - if (IsEnabled(CustomComboPreset.DRG_AoE_WyrmwindFeature) && gauge.FirstmindsFocusCount is 2) + //Wyrmwind Thrust Feature + if (IsEnabled(CustomComboPreset.DRG_AoE_Wyrmwind) && + gauge.FirstmindsFocusCount is 2 && AnimationLock.CanDRGWeave(WyrmwindThrust)) return WyrmwindThrust; - //Dives AoE Feature - if (IsEnabled(CustomComboPreset.DRG_AoE_Dives) && (IsNotEnabled(CustomComboPreset.DRG_AoE_Dives_Melee) || (IsEnabled(CustomComboPreset.DRG_AoE_Dives_Melee) && GetTargetDistance() <= 1))) + if (!IsMoving) { - if (DiveOptions is 0 or 1 or 2 or 3 && gauge.IsLOTDActive && LevelChecked(Stardiver) && IsOffCooldown(Stardiver) && CanWeave(actionID, 1.3) && IsOnCooldown(DragonfireDive)) - return Stardiver; + if (IsEnabled(CustomComboPreset.DRG_AoE_Dragonfire_Dive)) + { + if (dragonfireAny || //Dives on cooldown + (((Config.DRG_AoE_DivesOption_Dragonfire[0] && HasEffect(Buffs.LanceCharge)) || (!Config.DRG_AoE_DivesOption_Dragonfire[0]) || (!LanceCharge.LevelChecked())) && + ((Config.DRG_AoE_DivesOption_Dragonfire[1] && HasEffect(Buffs.RightEye)) || (!Config.DRG_AoE_DivesOption_Dragonfire[1]) || (!DragonSight.LevelChecked())) && + ((Config.DRG_AoE_DivesOption_Dragonfire[2] && HasEffect(Buffs.BattleLitany)) || (!Config.DRG_AoE_DivesOption_Dragonfire[2]) || (!BattleLitany.LevelChecked())))) + { + if (ActionReady(DragonfireDive) && AnimationLock.CanDRGWeave(DragonfireDive)) + return DragonfireDive; + } + } - if (DiveOptions is 0 or 1 || //Dives on cooldown - (DiveOptions is 2 && ((LevelChecked(Nastrond) && gauge.IsLOTDActive) || !LevelChecked(Nastrond)) && HasEffectAny(Buffs.BattleLitany)) || //Dives under Litany and Life of the Dragon - (DiveOptions is 3 && HasEffect(Buffs.LanceCharge))) //Dives under Lance Charge Feature + if (IsEnabled(CustomComboPreset.DRG_AoE_Spineshatter_Dive)) { - if (LevelChecked(DragonfireDive) && IsOffCooldown(DragonfireDive)) - return DragonfireDive; - if (LevelChecked(SpineshatterDive) && GetRemainingCharges(SpineshatterDive) > 0) - return SpineshatterDive; + if (spineshatterAny || //Dives on cooldown + (((Config.DRG_AoE_DivesOption_Spineshatter[0] && HasEffect(Buffs.LanceCharge)) || (!Config.DRG_AoE_DivesOption_Spineshatter[0]) || (!LanceCharge.LevelChecked())) && + ((Config.DRG_AoE_DivesOption_Spineshatter[1] && HasEffect(Buffs.RightEye)) || (!Config.DRG_AoE_DivesOption_Spineshatter[1]) || (!DragonSight.LevelChecked())) && + ((Config.DRG_AoE_DivesOption_Spineshatter[2] && HasEffect(Buffs.BattleLitany)) || (!Config.DRG_AoE_DivesOption_Spineshatter[2]) || (!BattleLitany.LevelChecked())))) + { + if (ActionReady(SpineshatterDive) && AnimationLock.CanDRGWeave(SpineshatterDive)) + return SpineshatterDive; + } } } - } - // healing - please move if not appropriate priority - if (IsEnabled(CustomComboPreset.DRG_AoE_ComboHeals)) - { - if (PlayerHealthPercentageHp() <= PluginConfiguration.GetCustomIntValue(Config.DRG_AoESecondWindThreshold) && LevelChecked(All.SecondWind) && IsOffCooldown(All.SecondWind)) - return All.SecondWind; - if (PlayerHealthPercentageHp() <= PluginConfiguration.GetCustomIntValue(Config.DRG_AoEBloodbathThreshold) && LevelChecked(All.Bloodbath) && IsOffCooldown(All.Bloodbath)) - return All.Bloodbath; + //(High) Jump Feature + if (IsEnabled(CustomComboPreset.DRG_AoE_HighJump) && + ActionReady(OriginalHook(Jump)) && !IsMoving && AnimationLock.CanDRGWeave(OriginalHook(Jump))) + return OriginalHook(Jump); + + //Geirskogul and Nastrond Feature + if (IsEnabled(CustomComboPreset.DRG_AoE_GeirskogulNastrond) && AnimationLock.CanDRGWeave(OriginalHook(Geirskogul)) && (ActionReady(OriginalHook(Geirskogul)) || + (IsEnabled(CustomComboPreset.DRG_AoE_Optimized_Rotation) && IsOnCooldown(OriginalHook(Jump)) && ActionReady(OriginalHook(Geirskogul))))) + return OriginalHook(Geirskogul); + + //Mirage Feature + if (IsEnabled(CustomComboPreset.DRG_AoE_Mirage) && AnimationLock.CanDRGWeave(MirageDive) && (HasEffect(Buffs.DiveReady) || + (IsEnabled(CustomComboPreset.DRG_AoE_Optimized_Rotation) && IsOnCooldown(OriginalHook(Geirskogul)) && HasEffect(Buffs.DiveReady)))) + return MirageDive; + + //StarDives Feature + if (IsEnabled(CustomComboPreset.DRG_AoE_Stardiver) && AnimationLock.CanDRGWeave(Stardiver) && + gauge.IsLOTDActive && ActionReady(Stardiver) && !IsMoving && + (HasEffect(Buffs.LanceCharge) || HasEffect(Buffs.RightEye) || HasEffect(Buffs.BattleLitany))) + return Stardiver; } + } + + // healing + if (IsEnabled(CustomComboPreset.DRG_AoE_ComboHeals)) + { + if (PlayerHealthPercentageHp() <= Config.DRG_AoE_SecondWind_Threshold && ActionReady(All.SecondWind)) + return All.SecondWind; + if (PlayerHealthPercentageHp() <= Config.DRG_AoEBloodbath_Threshold && ActionReady(All.Bloodbath)) + return All.Bloodbath; } if (comboTime > 0) { - if (lastComboMove is DoomSpike or DraconianFury && LevelChecked(SonicThrust)) - return SonicThrust; - if (lastComboMove is SonicThrust && LevelChecked(CoerthanTorment)) - return CoerthanTorment; + if (!SonicThrust.LevelChecked()) + { + if (lastComboMove == TrueThrust) + return Disembowel; + + if (lastComboMove == Disembowel && OriginalHook(ChaosThrust).LevelChecked()) + return OriginalHook(ChaosThrust); + } + else + { + if (lastComboMove is DoomSpike or DraconianFury) + return SonicThrust; + + if (lastComboMove == SonicThrust && CoerthanTorment.LevelChecked()) + return CoerthanTorment; + } } - return OriginalHook(DoomSpike); + return HasEffect(Buffs.PowerSurge) || SonicThrust.LevelChecked() ? OriginalHook(DoomSpike) : OriginalHook(TrueThrust); + } return actionID; } } + internal class DRG_JumpFeature : CustomCombo + { + protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.DRG_Jump; + + protected override uint Invoke(uint actionID, uint lastComboMove, float comboTime, byte level) => + actionID is Jump or HighJump && HasEffect(Buffs.DiveReady) ? MirageDive : actionID; + } + internal class DRG_StardiverFeature : CustomCombo { protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.DRG_StardiverFeature; protected override uint Invoke(uint actionID, uint lastComboMove, float comboTime, byte level) { + DRGGauge? gauge = GetJobGauge(); + if (actionID is Stardiver) { - var gauge = GetJobGauge(); - - if (gauge.IsLOTDActive && IsOffCooldown(Stardiver) && LevelChecked(Stardiver)) + if (gauge.IsLOTDActive && ActionReady(Stardiver)) return Stardiver; + if ((LevelChecked(Geirskogul) && !gauge.IsLOTDActive) || gauge.IsLOTDActive) return OriginalHook(Geirskogul); - } + return actionID; } } @@ -460,9 +733,11 @@ protected override uint Invoke(uint actionID, uint lastComboMove, float comboTim { if (IsOnCooldown(LanceCharge)) { - if (IsEnabled(CustomComboPreset.DRG_BurstCDFeature_DragonSight) && IsOffCooldown(DragonSight) && LevelChecked(DragonSight)) + if (IsEnabled(CustomComboPreset.DRG_BurstCDFeature_DragonSight) && + ActionReady(DragonSight)) return DragonSight; - if (LevelChecked(BattleLitany) && IsOffCooldown(BattleLitany)) + + if (ActionReady(BattleLitany)) return BattleLitany; } } diff --git a/XIVSlothCombo/Combos/PvE/MCH.cs b/XIVSlothCombo/Combos/PvE/MCH.cs index 565792d37..86d3ca862 100644 --- a/XIVSlothCombo/Combos/PvE/MCH.cs +++ b/XIVSlothCombo/Combos/PvE/MCH.cs @@ -1,15 +1,19 @@ using Dalamud.Game.ClientState.JobGauge.Types; +using XIVSlothCombo.Combos.JobHelpers; using XIVSlothCombo.Combos.PvE.Content; -using XIVSlothCombo.Core; using XIVSlothCombo.CustomComboNS; +using XIVSlothCombo.CustomComboNS.Functions; +using XIVSlothCombo.Data; +using XIVSlothCombo.Extensions; + namespace XIVSlothCombo.Combos.PvE { - internal static class MCH + internal class MCH { public const byte JobID = 31; - public const uint + internal const uint CleanShot = 2873, HeatedCleanShot = 7413, SplitShot = 2866, @@ -35,31 +39,45 @@ public const uint ChainSaw = 25788, BioBlaster = 16499, BarrelStabilizer = 7414, - Wildfire = 2878; + Wildfire = 2878, + Dismantle = 2887, + Flamethrower = 7418; - public static class Buffs + internal static class Buffs { - public const ushort + internal const ushort Reassembled = 851, Tactician = 1951, - Wildfire = 1946; + Wildfire = 1946, + Overheated = 2688, + Flamethrower = 1205; } - public static class Debuffs + internal static class Debuffs { - // public const short placeholder = 0; + internal const ushort + Dismantled = 2887; } - public static class Config + + internal static class Config { - public const string - MCH_ST_SecondWindThreshold = "MCH_ST_SecondWindThreshold", - MCH_AoE_SecondWindThreshold = "MCH_AoE_SecondWindThreshold", - MCH_VariantCure = "MCH_VariantCure"; + public static UserInt + MCH_ST_SecondWindThreshold = new("MCH_ST_SecondWindThreshold"), + MCH_AoE_SecondWindThreshold = new("MCH_AoE_SecondWindThreshold"), + MCH_ST_RotationSelection = new("MCH_ST_RotationSelection"), + MCH_VariantCure = new("MCH_VariantCure"), + MCH_ST_TurretUsage = new("MCH_ST_Adv_TurretGauge"), + MCH_AoE_TurretUsage = new("MCH_AoE_TurretUsage"); + public static UserBoolArray + MCH_ST_Reassembled = new("MCH_ST_Reassembled"), + MCH_AoE_Reassembled = new("MCH_AoE_Reassembled"); + public static UserBool + MCH_AoE_Hypercharge = new("MCH_AoE_Hypercharge"); } - public static class Levels + internal static class Levels { - public const byte + internal const byte SlugShot = 2, Hotshot = 4, GaussRound = 15, @@ -81,570 +99,1089 @@ public const byte QueenOverdrive = 80, Scattergun = 82, BarrelStabilizer = 66, - ChainSaw = 90; + ChainSaw = 90, + Dismantle = 62; } - internal class MCH_ST_MainCombo : CustomCombo + internal class MCH_ST_SimpleMode : CustomCombo { - protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.MCH_ST_MainCombo; + protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.MCH_ST_SimpleMode; + internal static MCHOpenerLogic MCHOpener = new(); protected override uint Invoke(uint actionID, uint lastComboMove, float comboTime, byte level) { - if (actionID == CleanShot || actionID == HeatedCleanShot || actionID == SplitShot || actionID == HeatedSplitShot) - { - var gauge = GetJobGauge(); - var drillCD = GetCooldown(Drill); - var airAnchorCD = GetCooldown(AirAnchor); - var hotshotCD = GetCooldown(HotShot); - - var gaussCD = GetCooldown(GaussRound); - var ricochetCD = GetCooldown(Ricochet); - var chainsawCD = GetCooldown(ChainSaw); - - var battery = GetJobGauge().Battery; - var heat = GetJobGauge().Heat; - var canWeave = CanWeave(actionID); + MCHGauge? gauge = GetJobGauge(); + float wildfireCDTime = GetCooldownRemainingTime(Wildfire); + bool interruptReady = ActionReady(All.HeadGraze) && CanInterruptEnemy(); - if (IsEnabled(CustomComboPreset.MCH_Variant_Cure) && IsEnabled(Variant.VariantCure) && PlayerHealthPercentageHp() <= GetOptionValue(Config.MCH_VariantCure)) + if (actionID is SplitShot) + { + if (IsEnabled(CustomComboPreset.MCH_Variant_Cure) && + IsEnabled(Variant.VariantCure) && PlayerHealthPercentageHp() <= Config.MCH_VariantCure) return Variant.VariantCure; if (IsEnabled(CustomComboPreset.MCH_Variant_Rampart) && IsEnabled(Variant.VariantRampart) && IsOffCooldown(Variant.VariantRampart) && - canWeave) + CanWeave(actionID)) return Variant.VariantRampart; - if (IsEnabled(CustomComboPreset.MCH_ST_BarrelStabilizer_DriftProtection)) - { - if (level >= Levels.BarrelStabilizer && heat < 20 && canWeave && IsOffCooldown(BarrelStabilizer)) - return BarrelStabilizer; - } + // Opener for MCH + if (MCHOpener.DoFullOpener(ref actionID, false)) + return actionID; - if (IsEnabled(CustomComboPreset.MCH_ST_MainCombo_HeatBlast) && gauge.IsOverheated) + // Interrupt + if (interruptReady) + return All.HeadGraze; + + // Wildfire + if ((gauge.Heat >= 50 || WasLastAbility(Hypercharge)) && ActionReady(Wildfire)) //these try to ensure the correct loops { - if (CanWeave(actionID, 0.6)) + if (CanDelayedWeave(actionID)) { - if (level <= Levels.Ricochet && HasCharges(GaussRound)) - return GaussRound; - - if (HasCharges(GaussRound) && gaussCD.CooldownRemaining < ricochetCD.CooldownRemaining) - return GaussRound; - else if (level >= Levels.Ricochet && HasCharges(Ricochet)) - return Ricochet; - } + if (!gauge.IsOverheated && WasLastWeaponskill(AirAnchor)) //WF EVEN BURST + return Wildfire; - if (level >= Levels.HeatBlast) // prioritize heatblast - return HeatBlast; + else if (gauge.IsOverheated && WasLastWeaponskill(HeatBlast)) + return Wildfire; + } } - if (IsEnabled(CustomComboPreset.MCH_ST_MainCombo_Cooldowns)) + // BarrelStabilizer use + if (CanWeave(actionID) && gauge.Heat <= 55 && ActionReady(BarrelStabilizer)) + return BarrelStabilizer; + + //queen + if (CanWeave(actionID) && !gauge.IsOverheated && LevelChecked(OriginalHook(RookAutoturret)) && !gauge.IsRobotActive) { - if (HasEffect(Buffs.Reassembled) && !airAnchorCD.IsCooldown && level >= Levels.AirAnchor) - return AirAnchor; - if (airAnchorCD.IsCooldown && !drillCD.IsCooldown && level >= Levels.Drill) - return Drill; - if (HasEffect(Buffs.Reassembled) && !chainsawCD.IsCooldown && level >= Levels.ChainSaw) - return ChainSaw; + if (level >= 90) + { + // First condition + if (gauge.Battery is 50 && CombatEngageDuration().TotalSeconds > 61 && CombatEngageDuration().TotalSeconds < 68) + return OriginalHook(RookAutoturret); + + // Second condition + if (gauge.Battery is 100 && gauge.LastSummonBatteryPower == 50 && + (GetCooldownRemainingTime(AirAnchor) <= 3 || ActionReady(AirAnchor))) + return OriginalHook(RookAutoturret); + + // Third condition + if (gauge.LastSummonBatteryPower == 100 && gauge.Battery >= 90) + return OriginalHook(RookAutoturret); + + // Fourth condition + else if (gauge.LastSummonBatteryPower == 90 && wildfireCDTime < 70 && wildfireCDTime > 45 && gauge.Battery >= 90) + return OriginalHook(RookAutoturret); + + // Fifth condition + else if (gauge.LastSummonBatteryPower != 50 && (wildfireCDTime <= 4 || (ActionReady(AirAnchor) && ActionReady(Wildfire)))) + return OriginalHook(RookAutoturret); + } + else if (LevelChecked(RookOverdrive) && gauge.Battery >= 50) + return OriginalHook(RookAutoturret); } - if (IsEnabled(CustomComboPreset.MCH_ST_MainCombo_RicochetGaussCharges) && CanWeave(actionID, 0.6)) //0.6 instead of 0.7 to more easily fit opener. a + if (CanWeave(actionID) && gauge.Heat >= 50 && LevelChecked(Hypercharge) && !gauge.IsOverheated) { - if (level >= Levels.Ricochet && HasCharges(Ricochet)) - return Ricochet; - if (level >= Levels.GaussRound && HasCharges(GaussRound)) - return GaussRound; + //Protection & ensures Hyper charged is double weaved with WF during reopener + if (HasEffect(Buffs.Wildfire) || !LevelChecked(Wildfire)) + return Hypercharge; - } + if (LevelChecked(Drill) && GetCooldownRemainingTime(Drill) >= 8) + { + if (LevelChecked(AirAnchor) && GetCooldownRemainingTime(AirAnchor) >= 8) + { + if (LevelChecked(ChainSaw) && GetCooldownRemainingTime(ChainSaw) >= 8) + { + if (UseHyperchargeStandard(gauge, wildfireCDTime)) + return Hypercharge; + } - if (IsEnabled(CustomComboPreset.MCH_ST_MainCombo_RicochetGauss) && CanWeave(actionID, 0.6)) //0.6 instead of 0.7 to more easily fit opener. a - { - if (level >= Levels.Ricochet && GetRemainingCharges(Ricochet) > 1) - return Ricochet; - if (level >= Levels.GaussRound && GetRemainingCharges(GaussRound) > 1) - return GaussRound; + else if (!LevelChecked(ChainSaw)) + { + if (UseHyperchargeStandard(gauge, wildfireCDTime)) + return Hypercharge; + } + } - } + else if (!LevelChecked(AirAnchor)) + { + if (UseHyperchargeStandard(gauge, wildfireCDTime)) + return Hypercharge; + } + } - if (IsEnabled(CustomComboPreset.MCH_ST_MainComboAlternate)) - { - if (level >= Levels.AirAnchor && !airAnchorCD.IsCooldown && (HasEffect(Buffs.Reassembled) || !HasCharges(Reassemble))) - return AirAnchor; - if (level >= Levels.ChainSaw && !chainsawCD.IsCooldown && (GetCooldownChargeRemainingTime(Reassemble) >= 55 || !HasCharges(Reassemble)) ) - return ChainSaw; - if (level >= Levels.Drill && !drillCD.IsCooldown && (HasEffect(Buffs.Reassembled) || !HasCharges(Reassemble))) - return Drill; - if (level < Levels.AirAnchor && !hotshotCD.IsCooldown && (GetCooldownChargeRemainingTime(Reassemble) >= 55 || !HasCharges(Reassemble)) ) - return HotShot; + else if (!LevelChecked(Drill)) + { + if (UseHyperchargeStandard(gauge, wildfireCDTime)) + return Hypercharge; + } } - if (IsEnabled(CustomComboPreset.MCH_ST_MainCombo_OverCharge) && canWeave) + //Heatblast, Gauss, Rico + if (gauge.IsOverheated && LevelChecked(HeatBlast)) { - if (battery == 100 && level is >= 40 and <= 79) - return RookAutoturret; - if (battery == 100 && level >= 80) - return AutomatonQueen; + if (WasLastAction(HeatBlast) && CanWeave(actionID)) + { + if (ActionReady(GaussRound) && GetRemainingCharges(GaussRound) >= GetRemainingCharges(Ricochet)) + return GaussRound; + + if (ActionReady(Ricochet) && GetRemainingCharges(Ricochet) >= GetRemainingCharges(GaussRound)) + return Ricochet; + } + return HeatBlast; } - if (comboTime > 0) - { - if (lastComboMove == SplitShot && level >= Levels.SlugShot) - return OriginalHook(SlugShot); + // OGCD's + if (CanWeave(actionID) && !HasEffect(Buffs.Wildfire) && + !HasEffect(Buffs.Reassembled) && HasCharges(Reassemble) && + ((LevelChecked(ChainSaw) && GetCooldownRemainingTime(ChainSaw) < 1) || ActionReady(ChainSaw) || + (LevelChecked(AirAnchor) && GetCooldownRemainingTime(AirAnchor) < 1) || ActionReady(AirAnchor) || + (!LevelChecked(AirAnchor) && LevelChecked(Drill) && (GetCooldownRemainingTime(Drill) < 1)) || ActionReady(Drill))) + return Reassemble; - if (lastComboMove == SlugShot && level >= Levels.CleanShot) - return OriginalHook(CleanShot); - } - return OriginalHook(SplitShot); - } - return actionID; + if (!HasEffect(Buffs.Wildfire) && + ((LevelChecked(ChainSaw) && GetCooldownRemainingTime(ChainSaw) < 1.2) || ActionReady(ChainSaw)) && + !HasEffect(Buffs.Reassembled) && HasCharges(Reassemble)) + return Reassemble; - } - } + if ((LevelChecked(ChainSaw) && GetCooldownRemainingTime(ChainSaw) < 1) || ActionReady(ChainSaw)) + return ChainSaw; - internal class MCH_HeatblastGaussRicochet : CustomCombo - { - protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.MCH_HeatblastGaussRicochet; + if ((LevelChecked(AirAnchor) && GetCooldownRemainingTime(AirAnchor) < 1) || + (!LevelChecked(AirAnchor) && ActionReady(HotShot)) || + ActionReady(AirAnchor)) + return OriginalHook(AirAnchor); - protected override uint Invoke(uint actionID, uint lastComboMove, float comboTime, byte level) - { - if (actionID == HeatBlast) - { - var heatBlastCD = GetCooldown(HeatBlast); - var gaussCD = GetCooldown(GaussRound); - var ricochetCD = GetCooldown(Ricochet); + if ((LevelChecked(Drill) && GetCooldownRemainingTime(Drill) < 1) || ActionReady(Drill)) + return Drill; - var gauge = GetJobGauge(); - var heat = GetJobGauge().Heat; - if (IsEnabled(CustomComboPreset.MCH_ST_AutoBarrel) - && level >= Levels.BarrelStabilizer - && heat < 50 - && IsOffCooldown(BarrelStabilizer) - && !gauge.IsOverheated) - return BarrelStabilizer; + //gauss and ricochet overcap protection + if (CanWeave(actionID) && !gauge.IsOverheated && !HasEffect(Buffs.Wildfire)) + { + if (ActionReady(GaussRound) && GetRemainingCharges(GaussRound) >= GetMaxCharges(GaussRound)) + return GaussRound; - if (IsEnabled(CustomComboPreset.MCH_ST_Wildfire) - && IsOffCooldown(Hypercharge) - && IsOffCooldown(Wildfire) - && level >= Levels.Wildfire - && heat >= 50) - return Wildfire; + if (ActionReady(Ricochet) && GetRemainingCharges(Ricochet) >= GetMaxCharges(Ricochet)) + return Ricochet; + } - if (!gauge.IsOverheated && level >= Levels.Hypercharge) - return Hypercharge; - if (heatBlastCD.CooldownRemaining < 0.7 && level >= Levels.HeatBlast) // Prioritize Heat Blast - return HeatBlast; + // healing + if (CanWeave(actionID) && PlayerHealthPercentageHp() <= 20 && ActionReady(All.SecondWind)) + return All.SecondWind; - if (level <= Levels.Ricochet) - return GaussRound; + //1-2-3 Combo + if (comboTime > 0) + { + if (lastComboMove is SplitShot && LevelChecked(OriginalHook(SlugShot))) + return OriginalHook(SlugShot); - if (gaussCD.CooldownRemaining < ricochetCD.CooldownRemaining) - return GaussRound; - return Ricochet; - } + if (lastComboMove is SlugShot && LevelChecked(OriginalHook(CleanShot))) + return (!LevelChecked(Drill) && !HasEffect(Buffs.Reassembled) && HasCharges(Reassemble)) + ? Reassemble + : OriginalHook(CleanShot); + } + return OriginalHook(SplitShot); + } return actionID; } - } - - internal class MCH_GaussRoundRicochet : CustomCombo - { - protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.MCH_GaussRoundRicochet; - protected override uint Invoke(uint actionID, uint lastComboMove, float comboTime, byte level) + private bool UseHyperchargeStandard(MCHGauge gauge, float wildfireCDTime) { - if (actionID == GaussRound || actionID == Ricochet) - { - var gaussCd = GetCooldown(GaussRound); - var ricochetCd = GetCooldown(Ricochet); - - // Prioritize the original if both are off cooldown - if (level <= Levels.Ricochet) - return GaussRound; + // i really do not remember why i put > 70 here for heat, and im afraid if i remove it itll break it lol + if (CombatEngageDuration().Minutes == 0 && + (gauge.Heat > 70 || CombatEngageDuration().Seconds <= 30) && !WasLastWeaponskill(OriginalHook(CleanShot))) + return true; - if (!gaussCd.IsCooldown && !ricochetCd.IsCooldown) - return actionID; + if (CombatEngageDuration().Minutes > 0) + { + if (CombatEngageDuration().Minutes % 2 == 1 && gauge.Heat >= 90) + return true; - if (gaussCd.CooldownRemaining < ricochetCd.CooldownRemaining) - return GaussRound; - else - return Ricochet; + if (CombatEngageDuration().Minutes % 2 == 0) + return true; } - - return actionID; + return false; } + } - internal class MCH_AoE_SimpleMode : CustomCombo + internal class MCH_ST_AdvancedMode : CustomCombo { - protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.MCH_AoE_SimpleMode; + protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.MCH_ST_AdvancedMode; + internal static MCHOpenerLogic MCHOpener = new(); protected override uint Invoke(uint actionID, uint lastComboMove, float comboTime, byte level) { - if (actionID == SpreadShot || actionID == Scattergun) - { - var canWeave = CanWeave(actionID); - var gauge = GetJobGauge(); - var battery = GetJobGauge().Battery; + float wildfireCDTime = GetCooldownRemainingTime(Wildfire); + MCHGauge? gauge = GetJobGauge(); + int rotationSelection = Config.MCH_ST_RotationSelection; + bool interruptReady = ActionReady(All.HeadGraze) && CanInterruptEnemy(); - if (IsEnabled(CustomComboPreset.MCH_Variant_Cure) && IsEnabled(Variant.VariantCure) && PlayerHealthPercentageHp() <= GetOptionValue(Config.MCH_VariantCure)) + if (actionID is SplitShot) + { + if (IsEnabled(CustomComboPreset.MCH_Variant_Cure) && + IsEnabled(Variant.VariantCure) && PlayerHealthPercentageHp() <= Config.MCH_VariantCure) return Variant.VariantCure; if (IsEnabled(CustomComboPreset.MCH_Variant_Rampart) && IsEnabled(Variant.VariantRampart) && IsOffCooldown(Variant.VariantRampart) && - canWeave) + CanWeave(actionID)) return Variant.VariantRampart; - if (IsEnabled(CustomComboPreset.MCH_AoE_OverCharge) && canWeave) - { - if (battery == 100 && level >= Levels.QueenOverdrive) - return AutomatonQueen; - if (battery == 100 && level >= Levels.RookOverdrive) - return RookAutoturret; - } - - if (IsEnabled(CustomComboPreset.MCH_AoE_GaussRicochet) && canWeave && (IsEnabled(CustomComboPreset.MCH_AoE_Gauss) || gauge.IsOverheated) && (HasCharges(Ricochet) || HasCharges(GaussRound))) - { - var gaussCharges = GetRemainingCharges(GaussRound); - var ricochetCharges = GetRemainingCharges(Ricochet); - - if ((gaussCharges >= ricochetCharges || level < Levels.Ricochet) && - level >= Levels.GaussRound) - return GaussRound; - else if (ricochetCharges > 0 && level >= Levels.Ricochet) - return Ricochet; - - } - - if (IsOffCooldown(BioBlaster) && level >= Levels.BioBlaster && !gauge.IsOverheated && IsEnabled(CustomComboPreset.MCH_AoE_Simple_Bioblaster)) - return BioBlaster; - - if (IsEnabled(CustomComboPreset.MCH_AoE_Simple_Hypercharge) && canWeave) + // Opener for MCH + if (IsEnabled(CustomComboPreset.MCH_ST_Adv_Opener)) { - if (gauge.Heat >= 50 && level >= Levels.AutoCrossbow && !gauge.IsOverheated) - return Hypercharge; + if (MCHOpener.DoFullOpener(ref actionID, false)) + return actionID; } - if (IsEnabled(CustomComboPreset.MCH_AoE_SecondWind) && CanWeave(actionID, 0.6)) + //Standard Rotation + if (rotationSelection is 0) { - if (PlayerHealthPercentageHp() <= PluginConfiguration.GetCustomIntValue(Config.MCH_AoE_SecondWindThreshold) && (LevelChecked(All.SecondWind) && IsOffCooldown(All.SecondWind))) - return All.SecondWind; - } - - if (gauge.IsOverheated && level >= Levels.AutoCrossbow) - return AutoCrossbow; - - } - - return actionID; - } - } - - internal class MCH_Overdrive : CustomCombo - { - protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.MCH_Overdrive; - - protected override uint Invoke(uint actionID, uint lastComboMove, float comboTime, byte level) - { - if (actionID == RookAutoturret || actionID == AutomatonQueen) - { - var gauge = GetJobGauge(); - if (gauge.IsRobotActive) - return OriginalHook(QueenOverdrive); - } + // Interrupt + if (IsEnabled(CustomComboPreset.MCH_ST_Adv_Interrupt) && interruptReady) + return All.HeadGraze; - return actionID; - } + // Wildfire + if (IsEnabled(CustomComboPreset.MCH_ST_Adv_WildFire)) + { + if ((gauge.Heat >= 50 || WasLastAbility(Hypercharge)) && ActionReady(Wildfire) && level >= 90) //these try to ensure the correct loops + { + if (CanDelayedWeave(actionID)) + { + if (!gauge.IsOverheated && WasLastWeaponskill(AirAnchor)) //WF EVEN BURST + return Wildfire; - internal class MCH_HotShotDrillChainSaw : CustomCombo - { - protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.MCH_HotShotDrillChainSaw; + else if (gauge.IsOverheated && WasLastWeaponskill(HeatBlast)) + return Wildfire; + } + } + else if (gauge.Heat >= 50 && ActionReady(Wildfire)) + return Wildfire; + } - protected override uint Invoke(uint actionID, uint lastComboMove, float comboTime, byte level) - { - if (actionID == Drill || actionID == HotShot || actionID == AirAnchor) - { - if (level >= Levels.ChainSaw) - return CalcBestAction(actionID, ChainSaw, AirAnchor, Drill); + // BarrelStabilizer use + if (IsEnabled(CustomComboPreset.MCH_ST_Adv_Stabilizer) && CanWeave(actionID) && + gauge.Heat <= 55 && ActionReady(BarrelStabilizer) && + ((((wildfireCDTime <= 25 && wildfireCDTime >= 100) || HasEffect(Buffs.Wildfire)) && IsEnabled(CustomComboPreset.MCH_ST_Adv_Stabilizer_Wildfire_Only)) || + (wildfireCDTime >= 110 && !IsEnabled(CustomComboPreset.MCH_ST_Adv_Stabilizer_Wildfire_Only)))) + return BarrelStabilizer; - if (level >= Levels.AirAnchor) - return CalcBestAction(actionID, AirAnchor, Drill); + //queen + if (IsEnabled(CustomComboPreset.MCH_Adv_TurretQueen) && Config.MCH_ST_TurretUsage == 1 && CanWeave(actionID) && !gauge.IsOverheated && LevelChecked(OriginalHook(RookAutoturret)) && !gauge.IsRobotActive) + { + // First condition + if (gauge.Battery is 50 && CombatEngageDuration().TotalSeconds > 59 && CombatEngageDuration().TotalSeconds < 68) + return OriginalHook(RookAutoturret); + + // Second condition + if (gauge.Battery is 100 && gauge.LastSummonBatteryPower == 50 && + (GetCooldownRemainingTime(AirAnchor) <= 3 || ActionReady(AirAnchor))) + return OriginalHook(RookAutoturret); + + // Third condition + if (gauge.LastSummonBatteryPower == 100 && gauge.Battery >= 90) + return OriginalHook(RookAutoturret); + + // Fourth condition + else if (gauge.LastSummonBatteryPower == 90 && wildfireCDTime < 70 && wildfireCDTime > 45 && gauge.Battery >= 90) + return OriginalHook(RookAutoturret); + + // Fifth condition + else if (gauge.LastSummonBatteryPower != 50 && (wildfireCDTime <= 4 || (ActionReady(AirAnchor) && ActionReady(Wildfire)))) + return OriginalHook(RookAutoturret); + } - if (level >= Levels.Drill) - return CalcBestAction(actionID, Drill, HotShot); + if (IsEnabled(CustomComboPreset.MCH_Adv_TurretQueen) && Config.MCH_ST_TurretUsage == 0 && CanWeave(actionID) && LevelChecked(OriginalHook(RookAutoturret)) && + gauge.Battery >= 50) + return OriginalHook(RookAutoturret); - return HotShot; - } + if (IsEnabled(CustomComboPreset.MCH_ST_Adv_Hypercharge) && + CanWeave(actionID) && gauge.Heat >= 50 && LevelChecked(Hypercharge) && !gauge.IsOverheated) + { + //Protection & ensures Hyper charged is double weaved with WF during reopener + if (HasEffect(Buffs.Wildfire) || !LevelChecked(Wildfire)) + return Hypercharge; - return actionID; - } - } - } + if (LevelChecked(Drill) && GetCooldownRemainingTime(Drill) >= 8) + { + if (LevelChecked(AirAnchor) && GetCooldownRemainingTime(AirAnchor) >= 8) + { + if (LevelChecked(ChainSaw) && GetCooldownRemainingTime(ChainSaw) >= 8) + { + if (UseHyperchargeDelayedTools(gauge, wildfireCDTime)) + return Hypercharge; + } + + else if (!LevelChecked(ChainSaw)) + { + if (UseHyperchargeDelayedTools(gauge, wildfireCDTime)) + return Hypercharge; + } + } - internal class MCH_AutoCrossbowGaussRicochet : CustomCombo - { - protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.MCH_AutoCrossbowGaussRicochet; + else if (!LevelChecked(AirAnchor)) + { + if (UseHyperchargeDelayedTools(gauge, wildfireCDTime)) + return Hypercharge; + } + } - protected override uint Invoke(uint actionID, uint lastComboMove, float comboTime, byte level) - { - if (actionID == AutoCrossbow) - { - var heatBlastCD = GetCooldown(HeatBlast); - var gaussCD = GetCooldown(GaussRound); - var ricochetCD = GetCooldown(Ricochet); - var heat = GetJobGauge().Heat; - - var gauge = GetJobGauge(); - if (IsEnabled(CustomComboPreset.MCH_ST_AutoBarrel) - && level >= Levels.BarrelStabilizer - && heat < 50 - && IsOffCooldown(BarrelStabilizer) - && !gauge.IsOverheated - ) return BarrelStabilizer; + else if (!LevelChecked(Drill)) + { + if (UseHyperchargeDelayedTools(gauge, wildfireCDTime)) + return Hypercharge; + } + } - if (!gauge.IsOverheated && level >= Levels.Hypercharge) - return Hypercharge; - if (heatBlastCD.CooldownRemaining < 0.7 && level >= Levels.AutoCrossbow) // prioritize autocrossbow - return AutoCrossbow; - if (level <= Levels.Ricochet) - return GaussRound; - if (gaussCD.CooldownRemaining < ricochetCD.CooldownRemaining) - return GaussRound; - else - return Ricochet; - } + //Heatblast, Gauss, Rico + if (IsEnabled(CustomComboPreset.MCH_ST_Adv_GaussRicochet) && + gauge.IsOverheated && LevelChecked(HeatBlast)) + { + if (CanWeave(actionID)) + { + if (GetRemainingCharges(GaussRound) >= GetRemainingCharges(Ricochet) && WasLastAction(HeatBlast)) + return GaussRound; - return actionID; - } - } + if (GetRemainingCharges(Ricochet) >= GetRemainingCharges(GaussRound) && WasLastAction(HeatBlast)) + return Ricochet; + } - internal class MCH_ST_SimpleMode : CustomCombo - { - protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.MCH_ST_SimpleMode; - internal static bool openerFinished = false; + if (IsEnabled(CustomComboPreset.MCH_ST_Adv_HeatBlast)) + return HeatBlast; + } - protected override uint Invoke(uint actionID, uint lastComboMove, float comboTime, byte level) - { - if (actionID is SplitShot or HeatedSplitShot) - { - var inCombat = InCombat(); - var gauge = GetJobGauge(); - - var wildfireCDTime = GetCooldownRemainingTime(Wildfire); + if (ReassembledTools(ref actionID)) + return actionID; - if (!inCombat) - { - openerFinished = false; + //gauss and ricochet overcap protection + if (IsEnabled(CustomComboPreset.MCH_ST_Adv_GaussRicochet) && + CanWeave(actionID) && !gauge.IsOverheated && !HasEffect(Buffs.Wildfire)) + { + if (HasCharges(GaussRound) && (!LevelChecked(Ricochet) || + GetCooldownRemainingTime(GaussRound) < GetCooldownRemainingTime(Ricochet))) + return GaussRound; + else if (ActionReady(Ricochet)) + return Ricochet; + } } - if (CanWeave(actionID) && IsEnabled(CustomComboPreset.MCH_ST_Simple_Stabilizer) && gauge.Heat <= 55 && - IsOffCooldown(BarrelStabilizer) && level >= Levels.BarrelStabilizer && !WasLastWeaponskill(ChainSaw) && - (wildfireCDTime <= 9 || (wildfireCDTime >= 110 && !IsEnabled(CustomComboPreset.MCH_ST_Simple_Stabilizer_Wildfire_Only) && gauge.IsOverheated)) ) - return BarrelStabilizer; - - if (CanWeave(actionID) && IsEnabled(CustomComboPreset.MCH_ST_Simple_Interrupt) && CanInterruptEnemy() && IsOffCooldown(All.HeadGraze)) + //123Tools Rotation + if (rotationSelection is 1) { - return All.HeadGraze; - } + if (IsEnabled(CustomComboPreset.MCH_ST_Adv_Interrupt) && interruptReady) + return All.HeadGraze; + + // BarrelStabilizer use + if (IsEnabled(CustomComboPreset.MCH_ST_Adv_Stabilizer) && CanWeave(actionID) && + gauge.Heat <= 55 && ActionReady(BarrelStabilizer) && + ((((wildfireCDTime <= 25 && wildfireCDTime >= 100) || HasEffect(Buffs.Wildfire)) && IsEnabled(CustomComboPreset.MCH_ST_Adv_Stabilizer_Wildfire_Only)) || + (wildfireCDTime >= 110 && !IsEnabled(CustomComboPreset.MCH_ST_Adv_Stabilizer_Wildfire_Only)))) + return BarrelStabilizer; - if (openerFinished && (gauge.Heat >= 50 || WasLastAbility(Hypercharge)) && wildfireCDTime <= 2 && level >= Levels.Wildfire && IsEnabled(CustomComboPreset.MCH_ST_Simple_WildCharge) && - (WasLastWeaponskill(ChainSaw) || (!WasLastWeaponskill(Drill) && !WasLastWeaponskill(AirAnchor) && !WasLastWeaponskill(HeatBlast))) ) //these try to ensure the correct loops - { - if (CanDelayedWeave(actionID) && !gauge.IsOverheated && !WasLastWeaponskill(ChainSaw)) - { - return Wildfire; - } else if (CanDelayedWeave(actionID,1.1) && !gauge.IsOverheated && WasLastWeaponskill(ChainSaw)) + //Wildfire stuff + //these TRY to ensure the correct loop, HC > CS > WF + if (IsEnabled(CustomComboPreset.MCH_ST_Adv_WildFire) && ActionReady(Wildfire)) { - return Wildfire; - } else if (CanWeave(actionID, 0.6) && gauge.IsOverheated ) - { - return Wildfire; - } + if (CanDelayedWeave(actionID, 0.8) && gauge.IsOverheated && WasLastWeaponskill(ChainSaw)) + return Wildfire; - } - - if (CanWeave(actionID) && openerFinished && !gauge.IsRobotActive && IsEnabled(CustomComboPreset.MCH_ST_Simple_Gadget) && (wildfireCDTime >= 2 && !WasLastAbility(Wildfire) || level < Levels.Wildfire)) - { - //overflow protection - if (level >= Levels.RookOverdrive && gauge.Battery == 100 && CombatEngageDuration().Seconds < 55) - { - return OriginalHook(RookAutoturret); + else if (CanWeave(actionID) && gauge.IsOverheated) + return Wildfire; } - else if (level >= Levels.RookOverdrive && gauge.Battery >= 50 && (CombatEngageDuration().Seconds >= 59 || CombatEngageDuration().Seconds <= 05 || (CombatEngageDuration().Minutes == 0 && !WasLastWeaponskill(OriginalHook(CleanShot))) )) + + //Queen aka Robot + if (IsEnabled(CustomComboPreset.MCH_Adv_TurretQueen) && Config.MCH_ST_TurretUsage == 1 && CanWeave(actionID) && !gauge.IsRobotActive && (!WasLastAbility(Wildfire)) && LevelChecked(OriginalHook(RookAutoturret))) { - return OriginalHook(RookAutoturret); + // First condition + if (gauge.Battery == 50 && CombatEngageDuration().TotalSeconds > 61 && CombatEngageDuration().TotalSeconds < 68) + return OriginalHook(RookAutoturret); + + // Second condition + if (!WasLastAction(OriginalHook(CleanShot)) && gauge.Battery == 100 && gauge.LastSummonBatteryPower == 50 && + (GetCooldownRemainingTime(AirAnchor) <= 3 || ActionReady(AirAnchor)) && AirAnchor.LevelChecked()) + return OriginalHook(RookAutoturret); + + // Third condition + while (gauge.LastSummonBatteryPower == 100 && gauge.Battery >= 90) //was previously 80 with 30 overcap for 10mins + return OriginalHook(RookAutoturret); + + // Fourth condition + while (gauge.LastSummonBatteryPower != 50 && gauge.Battery == 100 && (GetCooldownRemainingTime(AirAnchor) <= 3 || ActionReady(AirAnchor)) && AirAnchor.LevelChecked()) + return OriginalHook(RookAutoturret); } - //else if (gauge.Battery >= 50 && level >= Levels.RookOverdrive && (CombatEngageDuration().Seconds >= 58 || CombatEngageDuration().Seconds <= 05)) - //{ - // return OriginalHook(RookAutoturret); - //} - } + if (IsEnabled(CustomComboPreset.MCH_Adv_TurretQueen) && + Config.MCH_ST_TurretUsage == 0 && + LevelChecked(OriginalHook(RookAutoturret)) && gauge.Battery >= 50 && !gauge.IsRobotActive) + return OriginalHook(RookAutoturret); - - if (gauge.IsOverheated && level >= Levels.HeatBlast) - { - if (IsEnabled(CustomComboPreset.MCH_ST_Simple_GaussRicochet) && CanWeave(actionID, 0.6) && (wildfireCDTime > 2 || level < Levels.Wildfire) ) //gauss and ricochet weave + //Overheated Reassemble & Heatblast & GaussRico featuring a small ChainSaw addendum + if (gauge.IsOverheated && LevelChecked(HeatBlast) && IsEnabled(CustomComboPreset.MCH_ST_Adv_HeatBlast)) { - var gaussCharges = GetRemainingCharges(GaussRound); - var gaussMaxCharges = GetMaxCharges(GaussRound); - - var overheatTime = gauge.OverheatTimeRemaining; - var reasmCharges = GetRemainingCharges(Reassemble); - - //Makes sure Reassemble isnt double weaved after a Gauss/Richochet during Hypercharge - if (overheatTime < 1.7 && !HasEffect(Buffs.Reassembled) && IsEnabled(CustomComboPreset.MCH_ST_Simple_Assembling) && (WasLastAbility(GaussRound) || WasLastAbility(Ricochet)) && - ( - (IsEnabled(CustomComboPreset.MCH_ST_Simple_Assembling_ChainSaw) && reasmCharges >= 1 && GetCooldownRemainingTime(ChainSaw) <= 2) - || - (IsEnabled(CustomComboPreset.MCH_ST_Simple_Assembling_AirAnchor) && reasmCharges >= 1 && GetCooldownRemainingTime(AirAnchor) <= 2) - || - (IsEnabled(CustomComboPreset.MCH_ST_Simple_Assembling_Drill) && reasmCharges >= 1 && GetCooldownRemainingTime(Drill) <= 2) - )) - return Reassemble; - else if ( (!IsEnabled(CustomComboPreset.MCH_ST_Simple_High_Latency_Mode) && HasCharges(GaussRound) && (level < Levels.Ricochet || GetCooldownRemainingTime(GaussRound) < GetCooldownRemainingTime(Ricochet)) ) || - (IsEnabled(CustomComboPreset.MCH_ST_Simple_High_Latency_Mode) && gaussCharges >= gaussMaxCharges - 1 ) ) - { - return GaussRound; - } - else if (level >= Levels.Ricochet && HasCharges(Ricochet) && !IsEnabled(CustomComboPreset.MCH_ST_Simple_High_Latency_Mode)) + if (CanWeave(actionID, 0.6) && wildfireCDTime > 2 && IsEnabled(CustomComboPreset.MCH_ST_Adv_GaussRicochet)) //check to see if this prevents Gauss/Rico from weaving on reopener deaths later { - return Ricochet; - } + if (HasCharges(GaussRound) && (!LevelChecked(Ricochet) || GetCooldownRemainingTime(GaussRound) < GetCooldownRemainingTime(Ricochet))) + return GaussRound; - } + else if (ActionReady(Ricochet)) + return Ricochet; + } - return HeatBlast; - } + if ((GetCooldownRemainingTime(ChainSaw) <= 1 || IsOffCooldown(ChainSaw)) && (wildfireCDTime < 3 || IsOffCooldown(Wildfire)) && ChainSaw.LevelChecked() && IsEnabled(CustomComboPreset.MCH_ST_Adv_ChainSaw)) + return ChainSaw; - if (CanWeave(actionID) && gauge.Heat >= 50 && openerFinished && IsEnabled(CustomComboPreset.MCH_ST_Simple_WildCharge) && level >= Levels.Hypercharge && !gauge.IsOverheated) - { - //Protection & ensures Hyper charged is double weaved with WF during reopener - if (HasEffect(Buffs.Wildfire) || level < Levels.Wildfire) return Hypercharge; + return HeatBlast; + } - if (level >= Levels.Drill && GetCooldownRemainingTime(Drill) >= 8) + //HYPERCHARGE!! + if (IsEnabled(CustomComboPreset.MCH_ST_Adv_Hypercharge) && gauge.Heat >= 50 && LevelChecked(Hypercharge) && !gauge.IsOverheated) { - if (level >= Levels.AirAnchor && GetCooldownRemainingTime(AirAnchor) >= 8) + //Tries to ensure the HC > CS > WF loop for the back-to-back HC loops in full uptime fights. + + if (LevelChecked(Drill) && GetCooldownRemainingTime(Drill) >= 8) { - if (level >= Levels.ChainSaw && GetCooldownRemainingTime(ChainSaw) >= 8) + if (LevelChecked(AirAnchor) && GetCooldownRemainingTime(AirAnchor) >= 8) { - if (UseHypercharge(gauge, wildfireCDTime)) return Hypercharge; + if (LevelChecked(ChainSaw) && GetCooldownRemainingTime(ChainSaw) <= 2 && (wildfireCDTime <= 4 || IsOffCooldown(Wildfire))) + { + if (CanDelayedWeave(actionID) && UseHypercharge123Tools(gauge, wildfireCDTime)) + return Hypercharge; + } + else if (LevelChecked(ChainSaw) && GetCooldownRemainingTime(ChainSaw) >= 8) + { + if (CanWeave(actionID) && UseHypercharge123Tools(gauge, wildfireCDTime)) + return Hypercharge; + } + else if (!LevelChecked(ChainSaw)) + { + if (CanWeave(actionID) && UseHypercharge123Tools(gauge, wildfireCDTime)) + return Hypercharge; + } } - else if (level < Levels.ChainSaw) + else if (!LevelChecked(AirAnchor)) { - if (UseHypercharge(gauge, wildfireCDTime)) return Hypercharge; + if (CanWeave(actionID) && UseHypercharge123Tools(gauge, wildfireCDTime)) + return Hypercharge; } } - else if (level < Levels.AirAnchor) + else if (!LevelChecked(Drill)) { - if (UseHypercharge(gauge, wildfireCDTime)) return Hypercharge; + if (CanWeave(actionID) && UseHypercharge123Tools(gauge, wildfireCDTime)) + return Hypercharge; } } - else if (level < Levels.Drill) - { - if (UseHypercharge(gauge, wildfireCDTime)) return Hypercharge; - } - } - // healing - please move if not appropriate priority - if (IsEnabled(CustomComboPreset.MCH_ST_SecondWind) && CanWeave(actionID, 0.6)) - { - if (PlayerHealthPercentageHp() <= PluginConfiguration.GetCustomIntValue(Config.MCH_ST_SecondWindThreshold) && LevelChecked(All.SecondWind) && IsOffCooldown(All.SecondWind)) - return All.SecondWind; - } - if ((IsOffCooldown(AirAnchor) || GetCooldownRemainingTime(AirAnchor) < 1) && level >= Levels.AirAnchor) - { - if (IsEnabled(CustomComboPreset.MCH_ST_Simple_Assembling) && !HasEffect(Buffs.Reassembled) && IsEnabled(CustomComboPreset.MCH_ST_Simple_Assembling_AirAnchor) && - GetRemainingCharges(Reassemble) > 0) + if (ReassembledTools(ref actionID)) + return actionID; + + //gauss and ricochet overcap protection + if (IsEnabled(CustomComboPreset.MCH_ST_Adv_GaussRicochet) && + CanWeave(actionID) && !gauge.IsOverheated && !HasEffect(Buffs.Wildfire)) { - if (IsEnabled(CustomComboPreset.MCH_ST_Simple_Assembling_AirAnchor_MaxCharges) && GetRemainingCharges(Reassemble) == GetMaxCharges(Reassemble)) return Reassemble; - else if (!IsEnabled(CustomComboPreset.MCH_ST_Simple_Assembling_AirAnchor_MaxCharges)) return Reassemble; + if (HasCharges(GaussRound) && (!LevelChecked(Ricochet) || + GetCooldownRemainingTime(GaussRound) < GetCooldownRemainingTime(Ricochet))) + return GaussRound; + else if (ActionReady(Ricochet)) + return Ricochet; } - return AirAnchor; } - else if ((IsOffCooldown(HotShot) || GetCooldownRemainingTime(HotShot) < 1) && level is >= Levels.Hotshot and < Levels.AirAnchor) - return HotShot; - if ((IsOffCooldown(Drill) || GetCooldownRemainingTime(Drill) < 1) && level >= Levels.Drill) + //Early Tools Rotation + if (rotationSelection is 2) { - if (IsEnabled(CustomComboPreset.MCH_ST_Simple_Assembling) && IsEnabled(CustomComboPreset.MCH_ST_Simple_Assembling_Drill) && - !HasEffect(Buffs.Reassembled) && GetRemainingCharges(Reassemble) > 0) + if (IsEnabled(CustomComboPreset.MCH_ST_Adv_Interrupt) && interruptReady) + return All.HeadGraze; + + // BarrelStabilizer use + if (IsEnabled(CustomComboPreset.MCH_ST_Adv_Stabilizer) && + CanWeave(actionID) && gauge.Heat <= 55 && ActionReady(BarrelStabilizer) && + ((((wildfireCDTime <= 25 && wildfireCDTime >= 100) || HasEffect(Buffs.Wildfire)) && IsEnabled(CustomComboPreset.MCH_ST_Adv_Stabilizer_Wildfire_Only)) || + (wildfireCDTime >= 110 && !IsEnabled(CustomComboPreset.MCH_ST_Adv_Stabilizer_Wildfire_Only)))) + return BarrelStabilizer; + + //Wildfire stuff + //these try to ensure the correct loop, 1/2/3 > HC > WF + if (ActionReady(Wildfire) && IsEnabled(CustomComboPreset.MCH_ST_Adv_WildFire)) { - if (IsEnabled(CustomComboPreset.MCH_ST_Simple_Assembling_Drill_MaxCharges) && GetRemainingCharges(Reassemble) == GetMaxCharges(Reassemble)) return Reassemble; - else if (!IsEnabled(CustomComboPreset.MCH_ST_Simple_Assembling_Drill_MaxCharges)) return Reassemble; + if (CanDelayedWeave(actionID, 0.8) && + (WasLastWeaponskill(HeatedSplitShot) || WasLastWeaponskill(HeatedSlugshot) || WasLastWeaponskill(HeatedCleanShot))) + return Wildfire; + + else if (CanWeave(actionID) && gauge.IsOverheated) + return Wildfire; } - return Drill; - } - if ((IsOffCooldown(ChainSaw) || GetCooldownRemainingTime(ChainSaw) < 1) && level >= Levels.ChainSaw && openerFinished) - { - if (IsEnabled(CustomComboPreset.MCH_ST_Simple_Assembling) && IsEnabled(CustomComboPreset.MCH_ST_Simple_Assembling_ChainSaw) && !HasEffect(Buffs.Reassembled) && - GetRemainingCharges(Reassemble) > 0) + //Queen aka Robot + if (CanWeave(actionID) && IsEnabled(CustomComboPreset.MCH_Adv_TurretQueen) && Config.MCH_ST_TurretUsage == 1 && + !gauge.IsRobotActive && !WasLastAbility(Wildfire) && OriginalHook(RookAutoturret).LevelChecked()) { - if (IsEnabled(CustomComboPreset.MCH_ST_Simple_Assembling_ChainSaw_MaxCharges) && GetRemainingCharges(Reassemble) == GetMaxCharges(Reassemble)) return Reassemble; - else if (!IsEnabled(CustomComboPreset.MCH_ST_Simple_Assembling_ChainSaw_MaxCharges)) return Reassemble; + // First condition + if (gauge.Battery == 70 && CombatEngageDuration().TotalSeconds > 61 && CombatEngageDuration().TotalSeconds < 68) + return OriginalHook(RookAutoturret); + + // Second condition + if (!WasLastAction(OriginalHook(CleanShot)) && + gauge.Battery >= 90 && gauge.LastSummonBatteryPower == 70) + return OriginalHook(RookAutoturret); + + // Third condition + if (gauge.LastSummonBatteryPower >= 90 && gauge.Battery >= 90) + return OriginalHook(RookAutoturret); + + // Fourth condition + while (gauge.LastSummonBatteryPower != 50 && gauge.Battery == 100) + return OriginalHook(RookAutoturret); + + // Fifth condition + while (gauge.LastSummonBatteryPower == 100 && gauge.Battery >= 90) //was previously 80 with 30 overcap for 10mins + return OriginalHook(RookAutoturret); } - return ChainSaw; + + if (IsEnabled(CustomComboPreset.MCH_Adv_TurretQueen) && + Config.MCH_ST_TurretUsage == 0 && + LevelChecked(OriginalHook(RookAutoturret)) && gauge.Battery >= 50 && !gauge.IsRobotActive) + return OriginalHook(RookAutoturret); + + //Overheated Reassemble & Heatblast & GaussRico featuring a small ChainSaw addendum + if (gauge.IsOverheated && LevelChecked(HeatBlast)) + { + if (CanWeave(actionID, 0.6) && IsEnabled(CustomComboPreset.MCH_ST_Adv_GaussRicochet)) + { + if (ActionReady(GaussRound) && (!LevelChecked(Ricochet) || GetCooldownRemainingTime(GaussRound) < GetCooldownRemainingTime(Ricochet))) + return GaussRound; + + else if (ActionReady(Ricochet)) + return Ricochet; + } + if (IsEnabled(CustomComboPreset.MCH_ST_Adv_HeatBlast)) + return HeatBlast; + } + + //HYPERCHARGE!! + if (IsEnabled(CustomComboPreset.MCH_ST_Adv_Hypercharge) && + gauge.Heat >= 50 && ActionReady(Hypercharge) && !gauge.IsOverheated && CanWeave(actionID)) + { + //Protection & ensures Hyper charged is double weaved with WF during reopener + //if (HasEffect(Buffs.Wildfire) || level < Levels.Wildfire) return Hypercharge; + + if (LevelChecked(Drill) && GetCooldownRemainingTime(Drill) >= 8) + { + if (LevelChecked(AirAnchor) && GetCooldownRemainingTime(AirAnchor) >= 8) + { + if (LevelChecked(ChainSaw) && GetCooldownRemainingTime(ChainSaw) >= 8) + { + if (UseHyperchargeEarlyRotation(gauge, wildfireCDTime)) + return Hypercharge; + } + + else if (!LevelChecked(ChainSaw)) + { + if (UseHyperchargeEarlyRotation(gauge, wildfireCDTime)) + return Hypercharge; + } + } + + else if (!LevelChecked(AirAnchor)) + { + if (UseHyperchargeEarlyRotation(gauge, wildfireCDTime)) + return Hypercharge; + } + } + + else if (!LevelChecked(Drill)) + { + if (UseHyperchargeEarlyRotation(gauge, wildfireCDTime)) + return Hypercharge; + } + } + + if (ReassembledTools(ref actionID)) + return actionID; + + //gauss and ricochet overcap protection + if (IsEnabled(CustomComboPreset.MCH_ST_Adv_GaussRicochet) && + CanWeave(actionID) && !gauge.IsOverheated && !HasEffect(Buffs.Wildfire)) + { + if (HasCharges(GaussRound) && (level < Levels.Ricochet || GetCooldownRemainingTime(GaussRound) < GetCooldownRemainingTime(Ricochet))) + return GaussRound; + else if (HasCharges(Ricochet) && level >= Levels.Ricochet) + return Ricochet; + } + } + + // healing + if (IsEnabled(CustomComboPreset.MCH_ST_Adv_SecondWind) && + CanWeave(actionID, 0.6) && PlayerHealthPercentageHp() <= Config.MCH_ST_SecondWindThreshold && ActionReady(All.SecondWind)) + return All.SecondWind; + + //1-2-3 Combo + if (comboTime > 0) + { + if (lastComboMove is SplitShot && LevelChecked(OriginalHook(SlugShot))) + return OriginalHook(SlugShot); + + if (lastComboMove is SlugShot && LevelChecked(OriginalHook(CleanShot))) + return OriginalHook(CleanShot); + } + + return OriginalHook(SplitShot); + } + + return actionID; + } + + private bool ReassembledTools(ref uint actionId) + { + bool reassembledAnchor = (Config.MCH_ST_Reassembled[0] && HasEffect(Buffs.Reassembled)) || (!Config.MCH_ST_Reassembled[0] && !HasEffect(Buffs.Reassembled)) || (!HasEffect(Buffs.Reassembled) && GetRemainingCharges(Reassemble) == 0); + bool reassembledDrill = (Config.MCH_ST_Reassembled[1] && HasEffect(Buffs.Reassembled)) || (!Config.MCH_ST_Reassembled[1] && !HasEffect(Buffs.Reassembled)) || (!HasEffect(Buffs.Reassembled) && GetRemainingCharges(Reassemble) == 0); + bool reassembledChainsaw = (Config.MCH_ST_Reassembled[2] && HasEffect(Buffs.Reassembled)) || (!Config.MCH_ST_Reassembled[2] && !HasEffect(Buffs.Reassembled)) || (!HasEffect(Buffs.Reassembled) && GetRemainingCharges(Reassemble) == 0); + + // TOOLS!! ChainSaw Drill Air Anchor + if (IsEnabled(CustomComboPreset.MCH_ST_Adv_Reassembled) && !HasEffect(Buffs.Wildfire) && + !HasEffect(Buffs.Reassembled) && HasCharges(Reassemble) && + ((GetCooldownRemainingTime(OriginalHook(HotShot)) < 1 && Config.MCH_ST_Reassembled[0] && AirAnchor.LevelChecked()) || + (GetCooldownRemainingTime(OriginalHook(Drill)) < 1 && Config.MCH_ST_Reassembled[1] && Drill.LevelChecked()) || + (GetCooldownRemainingTime(OriginalHook(ChainSaw)) < 1 && Config.MCH_ST_Reassembled[2]) && ChainSaw.LevelChecked())) + { + actionId = Reassemble; + return true; + } + + if (IsEnabled(CustomComboPreset.MCH_ST_Adv_ChainSaw) && + reassembledChainsaw && + ChainSaw.LevelChecked() && + (GetCooldownRemainingTime(ChainSaw) < 1 || ActionReady(ChainSaw))) + { + actionId = ChainSaw; + return true; + } + + if (IsEnabled(CustomComboPreset.MCH_ST_Adv_Drill) && + reassembledDrill && + Drill.LevelChecked() && + (GetCooldownRemainingTime(Drill) < 1 || ActionReady(Drill))) + { + actionId = Drill; + return true; + } + if (IsEnabled(CustomComboPreset.MCH_ST_Adv_AirAnchor) && + reassembledAnchor && + OriginalHook(AirAnchor).LevelChecked() && + (GetCooldownRemainingTime(OriginalHook(AirAnchor)) < 1 || ActionReady(OriginalHook(AirAnchor)))) + { + actionId = OriginalHook(AirAnchor); + return true; + } + + return false; + } + + private bool UseHyperchargeDelayedTools(MCHGauge gauge, float wildfireCDTime) + { + if (CombatEngageDuration().Minutes == 0 && (gauge.Heat == 60 || CombatEngageDuration().Seconds <= 33)) + return true; + + if (CombatEngageDuration().Minutes > 0) + { + if (gauge.Heat >= 50 && wildfireCDTime >= 104) + return true; + + if (gauge.Heat >= 50 && wildfireCDTime <= 33 && wildfireCDTime >= 1) + return false; + + if (gauge.Heat >= 55) + return true; + } + return false; + } + + private bool UseHypercharge123Tools(MCHGauge gauge, float wildfireCDTime) + { + if (CombatEngageDuration().Minutes == 0 && (gauge.Heat >= 60 || CombatEngageDuration().Seconds <= 30) && !WasLastWeaponskill(OriginalHook(CleanShot))) + return true; + + if (CombatEngageDuration().Minutes > 0) + { + if (gauge.Heat >= 50 && GetCooldownRemainingTime(ChainSaw) <= 1 && (wildfireCDTime <= 4 || IsOffCooldown(Wildfire))) + return true; + + if (gauge.Heat >= 50 && wildfireCDTime <= 38 && wildfireCDTime >= 4) + return false; + + if (gauge.Heat >= 55) + return true; + + if (gauge.Heat >= 50 && wildfireCDTime >= 99) + return true; + } + + return false; + } + + private bool UseHyperchargeEarlyRotation(MCHGauge gauge, float wildfireCDTime) + { + if (CombatEngageDuration().Minutes == 0 && (gauge.Heat >= 50 || CombatEngageDuration().Seconds <= 30) && WasLastWeaponskill(HeatedSplitShot)) + return true; + + if (CombatEngageDuration().Minutes > 0) + { + if (gauge.Heat >= 50 && wildfireCDTime <= 36 && wildfireCDTime >= 1) + return false; + + if (gauge.Heat >= 60) + return true; + + if (gauge.Heat >= 50 && wildfireCDTime >= 99) + return true; + } + + return false; + } + } + + internal class MCH_AoE_SimpleMode : CustomCombo + { + protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.MCH_AoE_SimpleMode; + + protected override uint Invoke(uint actionID, uint lastComboMove, float comboTime, byte level) + { + if (actionID is SpreadShot) + { + MCHGauge? gauge = GetJobGauge(); + + if (IsEnabled(CustomComboPreset.MCH_Variant_Cure) && + IsEnabled(Variant.VariantCure) && PlayerHealthPercentageHp() <= GetOptionValue(Config.MCH_VariantCure)) + return Variant.VariantCure; + + if (IsEnabled(CustomComboPreset.MCH_Variant_Rampart) && + IsEnabled(Variant.VariantRampart) && + IsOffCooldown(Variant.VariantRampart) && + CanWeave(actionID)) + return Variant.VariantRampart; + + if (!gauge.IsOverheated) + { + if (gauge.Battery == 100) + return OriginalHook(RookAutoturret); } - if (IsEnabled(CustomComboPreset.MCH_ST_Simple_GaussRicochet) && CanWeave(actionID)) + //gauss and ricochet overcap protection + if (CanWeave(actionID) && !gauge.IsOverheated) { - if (HasCharges(GaussRound) && (level < Levels.Ricochet || GetCooldownRemainingTime(GaussRound) < GetCooldownRemainingTime(Ricochet))) + if (ActionReady(GaussRound)&& GetRemainingCharges(GaussRound) >= GetMaxCharges(GaussRound)) return GaussRound; - else if (HasCharges(Ricochet) && level >= Levels.Ricochet) + + if (ActionReady(Ricochet) && GetRemainingCharges(Ricochet) >= GetMaxCharges(Ricochet)) return Ricochet; } - - if (lastComboMove == SplitShot && level >= Levels.SlugShot) - return OriginalHook(SlugShot); + // Hypercharge + if (gauge.Heat >= 50 && LevelChecked(Hypercharge) && !gauge.IsOverheated) + return Hypercharge; - if (lastComboMove == SlugShot && level >= Levels.CleanShot) + //Heatblast, Gauss, Rico + if (gauge.IsOverheated && LevelChecked(AutoCrossbow)) { - if (IsEnabled(CustomComboPreset.MCH_ST_Simple_Assembling) && - level < Levels.Drill && !HasEffect(Buffs.Reassembled) && GetRemainingCharges(Reassemble) > 0) + if (WasLastAction(AutoCrossbow) && CanWeave(actionID)) { - return Reassemble; + if (ActionReady(GaussRound) && GetRemainingCharges(GaussRound) >= GetRemainingCharges(Ricochet)) + return GaussRound; + + if (ActionReady(Ricochet) && GetRemainingCharges(Ricochet) >= GetRemainingCharges(GaussRound)) + return Ricochet; } - return OriginalHook(CleanShot); + return AutoCrossbow; } - if (lastComboMove == CleanShot) openerFinished = true; + if (ActionReady(BioBlaster) && !HasEffect(Buffs.Overheated) && IsEnabled(CustomComboPreset.MCH_AoE_Adv_Bioblaster)) + return BioBlaster; + + if (CanWeave(actionID, 0.6) && PlayerHealthPercentageHp() <= 20 && ActionReady(All.SecondWind)) + return All.SecondWind; } return actionID; } + } - private bool UseHypercharge(MCHGauge gauge, float wildfireCDTime) - { - uint wfTimer = 6; //default timer - if (LocalPlayer.Level < Levels.BarrelStabilizer) wfTimer = 12; // just a little space to breathe and not delay the WF too much while you don't have access to the Barrel Stabilizer + internal class MCH_AoE_AdvancedMode : CustomCombo + { + protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.MCH_AoE_AdvancedMode; - // i really do not remember why i put > 70 here for heat, and im afraid if i remove it itll break it lol - if (CombatEngageDuration().Minutes == 0 && (gauge.Heat > 70 || CombatEngageDuration().Seconds <= 30) && !WasLastWeaponskill(OriginalHook(CleanShot))) + protected override uint Invoke(uint actionID, uint lastComboMove, float comboTime, byte level) + { + if (actionID is SpreadShot) { - return true; - } + MCHGauge? gauge = GetJobGauge(); + bool reassembledScattergun = (Config.MCH_AoE_Reassembled[0] && HasEffect(Buffs.Reassembled)); + bool reassembledCrossbow = (Config.MCH_AoE_Reassembled[1] && HasEffect(Buffs.Reassembled)) || (!Config.MCH_AoE_Reassembled[1] && !HasEffect(Buffs.Reassembled)); + bool reassembledChainsaw = (Config.MCH_AoE_Reassembled[2] && HasEffect(Buffs.Reassembled)) || (!Config.MCH_AoE_Reassembled[2] && !HasEffect(Buffs.Reassembled)) || (!HasEffect(Buffs.Reassembled) && GetRemainingCharges(Reassemble) == 0); - if (CombatEngageDuration().Minutes > 0 && (wildfireCDTime >= wfTimer || WasLastAbility(Wildfire) || (WasLastWeaponskill(ChainSaw) && (IsOffCooldown(Wildfire) || wildfireCDTime < 1)))) - { - if (CombatEngageDuration().Minutes % 2 == 1 && gauge.Heat >= 90) + + if (IsEnabled(CustomComboPreset.MCH_Variant_Cure) && + IsEnabled(Variant.VariantCure) && PlayerHealthPercentageHp() <= GetOptionValue(Config.MCH_VariantCure)) + return Variant.VariantCure; + + if (HasEffect(Buffs.Flamethrower) || JustUsed(Flamethrower)) + return OriginalHook(11); + + if (IsEnabled(CustomComboPreset.MCH_Variant_Rampart) && + IsEnabled(Variant.VariantRampart) && + IsOffCooldown(Variant.VariantRampart) && + CanWeave(actionID)) + return Variant.VariantRampart; + + if (IsEnabled(CustomComboPreset.MCH_AoE_Adv_Reassemble) && !HasEffect(Buffs.Wildfire) && + !HasEffect(Buffs.Reassembled) && HasCharges(Reassemble) && + ((Config.MCH_AoE_Reassembled[0] && Scattergun.LevelChecked()) || + (gauge.IsOverheated && Config.MCH_AoE_Reassembled[1] && AutoCrossbow.LevelChecked()) || + (GetCooldownRemainingTime(OriginalHook(ChainSaw)) < 1 && Config.MCH_AoE_Reassembled[2] && ChainSaw.LevelChecked()))) + return Reassemble; + + if (IsEnabled(CustomComboPreset.MCH_AoE_Adv_Chainsaw) && + reassembledChainsaw && + ((LevelChecked(ChainSaw) && GetCooldownRemainingTime(ChainSaw) < 1) || + ActionReady(ChainSaw))) + return ChainSaw; + + if (reassembledScattergun) + return OriginalHook(Scattergun); + + if (reassembledCrossbow && + LevelChecked(AutoCrossbow) && gauge.IsOverheated) + return AutoCrossbow; + + if (IsEnabled(CustomComboPreset.MCH_AoE_Adv_Bioblaster) && ActionReady(BioBlaster)) + return OriginalHook(BioBlaster); + + if (IsEnabled(CustomComboPreset.MCH_AoE_Adv_FlameThrower) && ActionReady(Flamethrower) && !IsMoving) + return OriginalHook(Flamethrower); + + if (IsEnabled(CustomComboPreset.MCH_AoE_Adv_Queen) && !gauge.IsOverheated) { - return true; + if (gauge.Battery >= Config.MCH_AoE_TurretUsage) + return OriginalHook(RookAutoturret); } - if (CombatEngageDuration().Minutes % 2 == 0) + // Hypercharge + if (IsEnabled(CustomComboPreset.MCH_AoE_Adv_Hypercharge) && + gauge.Heat >= 50 && LevelChecked(Hypercharge) && LevelChecked(AutoCrossbow) && !gauge.IsOverheated && + ((BioBlaster.LevelChecked() && GetCooldownRemainingTime(BioBlaster) > 10) || !BioBlaster.LevelChecked() || IsNotEnabled(CustomComboPreset.MCH_AoE_Adv_Bioblaster)) && + ((Flamethrower.LevelChecked() && GetCooldownRemainingTime(Flamethrower) > 10) || !Flamethrower.LevelChecked() || IsNotEnabled(CustomComboPreset.MCH_AoE_Adv_FlameThrower))) + return Hypercharge; + + //Heatblast, Gauss, Rico + if (IsEnabled(CustomComboPreset.MCH_AoE_Adv_GaussRicochet) && CanWeave(actionID) && + (Config.MCH_AoE_Hypercharge || (!Config.MCH_AoE_Hypercharge && gauge.IsOverheated))) { - return true; + if ((WasLastAction(SpreadShot) || WasLastAction(AutoCrossbow) || Config.MCH_AoE_Hypercharge) && ActionWatching.GetAttackType(ActionWatching.LastAction) != ActionWatching.ActionAttackType.Ability) + { + if (GetRemainingCharges(Ricochet) > 0) + return Ricochet; + + if (GetRemainingCharges(GaussRound) > 0) + return GaussRound; + + } + } + + if (gauge.IsOverheated && AutoCrossbow.LevelChecked()) + return OriginalHook(AutoCrossbow); + + if (IsEnabled(CustomComboPreset.MCH_AoE_Adv_SecondWind) && CanWeave(actionID, 0.6)) + { + if (PlayerHealthPercentageHp() <= Config.MCH_AoE_SecondWindThreshold && ActionReady(All.SecondWind)) + return All.SecondWind; } } - return false; + return actionID; } } + internal class MCH_HeatblastGaussRicochet : CustomCombo + { + protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.MCH_HeatblastGaussRicochet; + + protected override uint Invoke(uint actionID, uint lastComboMove, float comboTime, byte level) + { + MCHGauge? gauge = GetJobGauge(); + if (actionID is HeatBlast) + { + if (IsEnabled(CustomComboPreset.MCH_AutoCrossbowGaussRicochet_AutoBarrel) + && ActionReady(BarrelStabilizer) + && gauge.Heat < 50 + && !HasEffect(Buffs.Overheated)) + return BarrelStabilizer; + + if (IsEnabled(CustomComboPreset.MCH_ST_Wildfire) + && ActionReady(Hypercharge) + && ActionReady(Wildfire) + && gauge.Heat >= 50) + return Wildfire; + + if (!HasEffect(Buffs.Overheated) && LevelChecked(Hypercharge)) + return Hypercharge; + + if (GetCooldownRemainingTime(HeatBlast) < 0.7 && LevelChecked(HeatBlast)) // Prioritize Heat Blast + return HeatBlast; + + if (!LevelChecked(Ricochet)) + return GaussRound; + + if (GetCooldownRemainingTime(GaussRound) < GetCooldownRemainingTime(Ricochet)) + return GaussRound; + return Ricochet; + } + return actionID; + } + } + + internal class MCH_GaussRoundRicochet : CustomCombo + { + protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.MCH_GaussRoundRicochet; + + protected override uint Invoke(uint actionID, uint lastComboMove, float comboTime, byte level) + { + + if (actionID is GaussRound or Ricochet) + + { + var gaussCharges = GetRemainingCharges(GaussRound); + var ricochetCharges = GetRemainingCharges(Ricochet); + + // Prioritize the original if both are off cooldown + + if (!LevelChecked(Ricochet)) + return GaussRound; + + if (IsOffCooldown(GaussRound) && IsOffCooldown(Ricochet)) + return actionID; + + if ((gaussCharges >= ricochetCharges || level < Levels.Ricochet) && + level >= Levels.GaussRound) + return GaussRound; + else if (ricochetCharges > 0 && level >= Levels.Ricochet) + return Ricochet; + } + + return actionID; + } + } + + internal class MCH_Overdrive : CustomCombo + { + protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.MCH_Overdrive; + + protected override uint Invoke(uint actionID, uint lastComboMove, float comboTime, byte level) + { + if (actionID is RookAutoturret or AutomatonQueen) + { + MCHGauge? gauge = GetJobGauge(); + if (gauge.IsRobotActive) + return OriginalHook(QueenOverdrive); + } + + return actionID; + } + } + + internal class MCH_HotShotDrillChainSaw : CustomCombo + { + protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.MCH_HotShotDrillChainSaw; + + protected override uint Invoke(uint actionID, uint lastComboMove, float comboTime, byte level) + { + if (actionID == Drill || actionID == HotShot || actionID == AirAnchor) + { + if (LevelChecked(ChainSaw)) + return CalcBestAction(actionID, ChainSaw, AirAnchor, Drill); + + if (LevelChecked(AirAnchor)) + return CalcBestAction(actionID, AirAnchor, Drill); + + if (LevelChecked(Drill)) + return CalcBestAction(actionID, Drill, HotShot); + + return HotShot; + } + + return actionID; + } + } + + internal class MCH_DismantleTactician : CustomCombo + { + protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.MCH_DismantleTactician; + protected override uint Invoke(uint actionID, uint lastComboMove, float comboTime, byte level) + { + if (actionID is Dismantle + && (IsOnCooldown(Dismantle) || !LevelChecked(Dismantle)) + && ActionReady(Tactician) + && !HasEffect(Buffs.Tactician)) + return Tactician; + + return actionID; + } + } + + internal class MCH_AutoCrossbowGaussRicochet : CustomCombo + { + protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.MCH_AutoCrossbowGaussRicochet; + + protected override uint Invoke(uint actionID, uint lastComboMove, float comboTime, byte level) + { + if (actionID is AutoCrossbow) + { + var heatBlastCD = GetCooldown(HeatBlast); + var gaussCD = GetCooldown(GaussRound); + var ricochetCD = GetCooldown(Ricochet); + MCHGauge? gauge = GetJobGauge(); + + if (IsEnabled(CustomComboPreset.MCH_AutoCrossbowGaussRicochet_AutoBarrel) + && ActionReady(BarrelStabilizer) + && gauge.Heat < 50 + && !HasEffect(Buffs.Overheated) + ) return BarrelStabilizer; + + if (!HasEffect(Buffs.Overheated) && ActionReady(Hypercharge)) + return Hypercharge; + if (heatBlastCD.CooldownRemaining < 0.7 && LevelChecked(AutoCrossbow)) // prioritize autocrossbow + return AutoCrossbow; + if (!LevelChecked(Ricochet)) + return GaussRound; + if (gaussCD.CooldownRemaining < ricochetCD.CooldownRemaining) + return GaussRound; + else + return Ricochet; + } + + return actionID; + } + } + + + internal class All_PRanged_Dismantle : CustomCombo + + { + protected internal override CustomComboPreset Preset { get; } = CustomComboPreset.All_PRanged_Dismantle; + + protected override uint Invoke(uint actionID, uint lastComboMove, float comboTime, byte level) + { + if (actionID is Dismantle) + if (TargetHasEffectAny(Debuffs.Dismantled) && IsOffCooldown(Dismantle)) + return BLM.Fire; + + return actionID; + } + } } -} +} \ No newline at end of file diff --git a/XIVSlothCombo/CustomCombo/Functions/Config.cs b/XIVSlothCombo/CustomCombo/Functions/Config.cs index 85f5984c9..24b879974 100644 --- a/XIVSlothCombo/CustomCombo/Functions/Config.cs +++ b/XIVSlothCombo/CustomCombo/Functions/Config.cs @@ -1,5 +1,7 @@ using System; +using System.Linq; using XIVSlothCombo.Core; +using XIVSlothCombo.Services; namespace XIVSlothCombo.CustomComboNS.Functions { @@ -43,8 +45,29 @@ internal class UserBoolArray : UserData { public UserBoolArray(string v) : base(v) { } public int Count => PluginConfiguration.GetCustomBoolArrayValue(this.pName).Length; - public bool this[int index] => PluginConfiguration.GetCustomBoolArrayValue(this.pName)[index]; public static implicit operator bool[](UserBoolArray o) => PluginConfiguration.GetCustomBoolArrayValue(o.pName); + public bool this[int index] + { + get + { + if (index >= this.Count) + { + var array = PluginConfiguration.GetCustomBoolArrayValue(this.pName); + Array.Resize(ref array, index + 1); + array[index] = false; + PluginConfiguration.SetCustomBoolArrayValue(this.pName, array); + Service.Configuration.Save(); + } + return PluginConfiguration.GetCustomBoolArrayValue(this.pName)[index]; + } + } + + public bool All(Func predicate) + { + var array = PluginConfiguration.GetCustomBoolArrayValue(this.pName); + return array.All(predicate); + + } } } diff --git a/XIVSlothCombo/Data/ActionWatching.cs b/XIVSlothCombo/Data/ActionWatching.cs index d38ac21be..1f7df1181 100644 --- a/XIVSlothCombo/Data/ActionWatching.cs +++ b/XIVSlothCombo/Data/ActionWatching.cs @@ -104,30 +104,29 @@ private unsafe static void SendActionDetour(long targetObjectId, byte actionType private unsafe static void CheckForChangedTarget(uint actionId, ref long targetObjectId) { if (actionId is AST.Balance or AST.Bole or AST.Ewer or AST.Arrow or AST.Spire or AST.Spear && - AST.AST_QuickTargetCards.SelectedRandomMember is not null && - !OutOfRange(actionId, (GameObject*)Service.ClientState.LocalPlayer.Address, (GameObject*)AST.AST_QuickTargetCards.SelectedRandomMember.Address)) + Combos.JobHelpers.AST.AST_QuickTargetCards.SelectedRandomMember is not null && + !OutOfRange(actionId, (GameObject*)Service.ClientState.LocalPlayer.Address, (GameObject*)Combos.JobHelpers.AST.AST_QuickTargetCards.SelectedRandomMember.Address)) { int targetOptions = AST.Config.AST_QuickTarget_Override; switch (targetOptions) { case 0: - targetObjectId = AST.AST_QuickTargetCards.SelectedRandomMember.ObjectId; + targetObjectId = Combos.JobHelpers.AST.AST_QuickTargetCards.SelectedRandomMember.ObjectId; break; case 1: - if (Service.ClientState.LocalPlayer.TargetObject is not null) + if (CustomComboFunctions.HasFriendlyTarget()) targetObjectId = Service.ClientState.LocalPlayer.TargetObject.ObjectId; else - targetObjectId = AST.AST_QuickTargetCards.SelectedRandomMember.ObjectId; + targetObjectId = Combos.JobHelpers.AST.AST_QuickTargetCards.SelectedRandomMember.ObjectId; break; case 2: if (CustomComboFunctions.GetHealTarget(true, true) is not null) targetObjectId = CustomComboFunctions.GetHealTarget(true, true).ObjectId; else - targetObjectId = AST.AST_QuickTargetCards.SelectedRandomMember.ObjectId; + targetObjectId = Combos.JobHelpers.AST.AST_QuickTargetCards.SelectedRandomMember.ObjectId; break; } - } } diff --git a/XIVSlothCombo/Translatezh/Translatezh_CN.cs b/XIVSlothCombo/Translatezh/Translatezh_CN.cs index 10c279a41..206d2823b 100644 --- a/XIVSlothCombo/Translatezh/Translatezh_CN.cs +++ b/XIVSlothCombo/Translatezh/Translatezh_CN.cs @@ -746,14 +746,14 @@ public class Translatezh_CN {"Adds True North to the main combo right before positionals if you aren't in the correct position for their bonuses.","等待翻译"}, #endregion #region NINJA - {"Simple Mode - Single Target","下忍模式 - 单目标"}, + {"Simple Mode - Single Target","简单模式 - 单目标"}, {"Replaces Spinning Edge with a one-button full single target rotation.\nThis is the ideal option for newcomers to the job.","将双刃旋替换为一键单目标连击。\n一键输出,下忍的理想之选。"}, {"Balance Opener Option","平衡起手"}, {"Starts with the Balance opener.\nDoes pre-pull first, if you enter combat before hiding the opener will fail.\nLikewise, moving during TCJ will cause the opener to fail too.\nRequires you to be out of combat with majority of your cooldowns available for it to work.", "平衡起手开场。\n战斗前需要做一定准备,如果你在隐遁就前进入了战斗,起手爆发将会失败。\n相同的,如果你在天地人期间移动,也会导致起手失败。\n需要你退出战斗,并且所有技能冷却完毕,它才能正常工作。"}, - {"Simple Mode - AoE","下忍模式 - AoE"}, + {"Simple Mode - AoE","简单模式 - AoE"}, {"Turns Death Blossom into a one-button full AoE rotation.","将血雨飞花替换为一键AOE连击"}, - {"Advanced Mode - Single Target","上忍模式 - 单目标"}, + {"Advanced Mode - Single Target","高级模式 - 单目标"}, {"Replace Spinning Edge with a one-button full single target rotation.\nThese features are ideal if you want to customize the rotation.","将双刃旋替换为一键单目标连击。\n自定义循环,上忍的理想之选。"}, {"Throwing Dagger Uptime Option","飞刀 选项"}, {"Adds Throwing Dagger to Advanced Mode if out of melee range.","如果在近战攻击距离以外,将飞刀加入循环。"}, @@ -814,7 +814,7 @@ public class Translatezh_CN {"Adds Shade Shift to Advanced Mode.","将 残影 加入一键循环"}, {"Bloodbath Option","浴血 选项"}, {"Adds Bloodbath to Advanced Mode.","将 浴血 加入一键循环"}, - {"Advanced Mode - AoE","上忍模式 - AoE"}, + {"Advanced Mode - AoE","高级模式 - AoE"}, {"Replace Death Blossom with a one-button full AoE rotation.\nThese features are ideal if you want to customize the rotation.","将血雨飞花替换为一键群体连击。\n自定义循环,上忍的理想之选。"}, {"Adds Assassinate/Dream Within a Dream to Advanced Mode.","将 断绝/梦幻三段 加入一键循环"}, {"Use Katon","使用 火遁"}, diff --git a/XIVSlothCombo/Window/ConfigWindow.cs b/XIVSlothCombo/Window/ConfigWindow.cs index 4498e108e..f4563d659 100644 --- a/XIVSlothCombo/Window/ConfigWindow.cs +++ b/XIVSlothCombo/Window/ConfigWindow.cs @@ -131,11 +131,11 @@ public void DrawConfig() private unsafe void DrawTargetHelper() { - if (AST.AST_QuickTargetCards.SelectedRandomMember is not null) + if (Combos.JobHelpers.AST.AST_QuickTargetCards.SelectedRandomMember is not null) { for (int i = 1; i <= 8; i++) { - if (CustomComboFunctions.GetPartySlot(i) == AST.AST_QuickTargetCards.SelectedRandomMember) + if (CustomComboFunctions.GetPartySlot(i) == Combos.JobHelpers.AST.AST_QuickTargetCards.SelectedRandomMember) { IntPtr partyPTR = Service.GameGui.GetAddonByName("_PartyList", 1); if (partyPTR == IntPtr.Zero) diff --git a/XIVSlothCombo/Window/Functions/UserConfig.cs b/XIVSlothCombo/Window/Functions/UserConfig.cs index 3d2a6ab77..5ab000eb8 100644 --- a/XIVSlothCombo/Window/Functions/UserConfig.cs +++ b/XIVSlothCombo/Window/Functions/UserConfig.cs @@ -1154,19 +1154,93 @@ internal static void Draw(CustomComboPreset preset, bool enabled) #endregion // ==================================================================================== - #region BLACK MAGE + #region BLACK MAGE - if (preset == CustomComboPreset.BLM_AoE_Simple_Foul) - UserConfig.DrawSliderInt(0, 2, BLM.Config.BLM_PolyglotsStored, "存几层通晓.\n(2 = 只在魔泉下使用通晓)"); + if (preset is CustomComboPreset.BLM_ST_AdvancedMode) + { + UserConfig.DrawHorizontalRadioButton(BLM.Config.BLM_Adv_InitialCast, "Fire 3 Initial Cast", "", 0); + UserConfig.DrawHorizontalRadioButton(BLM.Config.BLM_Adv_InitialCast, "Blizzard 3 Initial Cast", "", 1); + ImGui.Indent(); + UserConfig.DrawRoundedSliderFloat(3.0f, 8.0f, BLM.Config.BLM_AstralFire_Refresh, "Seconds before refreshing Astral Fire"); + ImGui.Unindent(); + } - if (preset is CustomComboPreset.BLM_SimpleMode or CustomComboPreset.BLM_Simple_Transpose) - UserConfig.DrawRoundedSliderFloat(3.0f, 8.0f, BLM.Config.BLM_AstralFireRefresh, "星极火刷新时间.\n(6s = 推荐)"); + if (preset is CustomComboPreset.BLM_Variant_Cure) + UserConfig.DrawSliderInt(1, 100, BLM.Config.BLM_VariantCure, "HP% to be at or under", 200); - if (preset == CustomComboPreset.BLM_Simple_CastMovement) - UserConfig.DrawRoundedSliderFloat(0.0f, 1.0f, BLM.Config.BLM_MovementTime, "走了多久(秒)后应用此移动特性.(例如:设置成1就是持续走动1秒后才会把读条技能替换成即刻/崩溃)"); + if (preset is CustomComboPreset.BLM_Adv_Opener) + { + UserConfig.DrawHorizontalRadioButton(BLM.Config.BLM_Advanced_OpenerSelection, "Standard Opener", "Uses Standard Opener.", 0); + UserConfig.DrawHorizontalRadioButton(BLM.Config.BLM_Advanced_OpenerSelection, "Double Transpose Opener", "Uses Fire III opener - Double Transpose variation.", 1); + } - if (preset == CustomComboPreset.BLM_Variant_Cure) - UserConfig.DrawSliderInt(1, 100, BLM.Config.BLM_VariantCure, "HP% to be at or under", 200); + if (preset is CustomComboPreset.BLM_Adv_Rotation) + { + UserConfig.DrawHorizontalRadioButton(BLM.Config.BLM_Adv_Rotation_Options, "Standard Rotation", "Uses Standard Rotation.", 0); + UserConfig.DrawHorizontalRadioButton(BLM.Config.BLM_Adv_Rotation_Options, "Double Transpose Rotation", "Uses Double Transpose rotation.\nOnly works at Lv.90.", 1); + + if (BLM.Config.BLM_Adv_Rotation_Options == 0) + { + ImGui.Indent(); + UserConfig.DrawAdditionalBoolChoice(BLM.Config.BLM_Adv_Xeno_Burst, "Use Xenoglossy for burst", "Will save Xenoglossy for every minute burst window."); + ImGui.Unindent(); + ImGui.Spacing(); + } + + } + + if (preset is CustomComboPreset.BLM_Adv_Cooldowns) + { + // UserConfig.DrawGridMultiChoice(BLM.Config.BLM_Adv_Cooldowns_Choice, 4, new string[,]{ + // {"Manafont", "Add Manafont to the rotation." }, + // {"Sharpcast", "Add Sharpcast to the rotation." }, + // {"Amplifier", "Add Amplifier to the rotation." }, + // {"Ley Lines", "Add Ley Lines to the rotation." }, + // }); + } + + if (preset is CustomComboPreset.BLM_AoE_Adv_Cooldowns) + { + // UserConfig.DrawGridMultiChoice(BLM.Config.BLM_AoE_Adv_Cooldowns_Choice, 5, new string[,]{ + // {$"Manafont", "Add Manafont to the rotation." }, + // {"Sharpcast", "Add Sharpcast to the rotation." }, + // {"Amplifier", "Add Amplifier to the rotation." }, + // {"Ley Lines", "Add Ley Lines to the rotation." }, + // {"Triplecast", "Add Triplecast to the rotation" } + // }); + } + + if (preset is CustomComboPreset.BLM_Adv_Movement) + { + // UserConfig.DrawGridMultiChoice(BLM.Config.BLM_Adv_Movement_Choice, 4, new string[,]{ + // {"Sharpcast", "Add Sharpcast." }, + // {"Thunder", "Add Thunder I/Thunder III." }, + // {"Firestarter", "Add Firestarter when in Astral Fire." }, + // {"Paradox", "Add Paradox when in Umbral Ice." }, + // {"Xenoglossy", "Add Xenoglossy.\nOne charge will be held for rotation." }, + // {"Swiftcast", "Add Swiftcast." }, + // {"Triplecast", "Add (pooled) Triplecast." }, + // {"Scathe", "Add Scathe." } + // }); + } + + if (preset is CustomComboPreset.BLM_ST_Adv_Thunder) + UserConfig.DrawSliderInt(0, 5, BLM.Config.BLM_Adv_Thunder, "Seconds remaining before refreshing Thunder"); + + if (preset is CustomComboPreset.BLM_AoE_Adv_ThunderUptime) + UserConfig.DrawSliderInt(0, 5, BLM.Config.BLM_AoE_Adv_ThunderUptime, "Seconds remaining before refreshing Thunder"); + + if (preset is CustomComboPreset.BLM_ST_Adv_Thunder) + UserConfig.DrawSliderInt(0, 5, BLM.Config.BLM_ST_Adv_ThunderHP, "Target HP% to stop using Thunder"); + + if (preset is CustomComboPreset.BLM_AoE_Adv_ThunderUptime) + UserConfig.DrawSliderInt(0, 5, BLM.Config.BLM_AoE_Adv_ThunderHP, "Target HP% to stop using Thunder"); + + if (preset is CustomComboPreset.BLM_ST_Adv_Thunder_ThunderCloud) + { + UserConfig.DrawHorizontalRadioButton(BLM.Config.BLM_Adv_ThunderCloud, "Only after quicker casts (weave window)", "", 0); + UserConfig.DrawHorizontalRadioButton(BLM.Config.BLM_Adv_ThunderCloud, "Use as soon as possible", "", 1); + } #endregion // ==================================================================================== @@ -1290,42 +1364,86 @@ internal static void Draw(CustomComboPreset preset, bool enabled) #endregion // ==================================================================================== #region DRAGOON - if (preset == CustomComboPreset.DRG_ST_Dives && enabled) + + if (preset == CustomComboPreset.DRG_ST_Dives_Dragonfire) + { + UserConfig.DrawHorizontalMultiChoice(DRG.Config.DRG_ST_DivesOption_Dragonfire, "Under Lance Charge", "", 3, 0); + UserConfig.DrawHorizontalMultiChoice(DRG.Config.DRG_ST_DivesOption_Dragonfire, "Under Dragon Sight", "", 3, 1); + UserConfig.DrawHorizontalMultiChoice(DRG.Config.DRG_ST_DivesOption_Dragonfire, "Under Battle Litany", "", 3, 2); + } + + if (preset == CustomComboPreset.DRG_ST_Dives_Spineshatter) { - UserConfig.DrawHorizontalRadioButton(DRG.Config.DRG_ST_DiveOptions, "冷却好了用", "单插友好. 冷却好了使用.", 1); - UserConfig.DrawHorizontalRadioButton(DRG.Config.DRG_ST_DiveOptions, "战斗连倒和红莲龙血下用", "需要双插. 破碎冲龙炎冲在战斗连倒和红莲龙血下用, 坠星冲在红莲龙血下用.", 2); - UserConfig.DrawHorizontalRadioButton(DRG.Config.DRG_ST_DiveOptions, "配合猛枪使用", "单插友好. 配合猛枪使用破碎冲龙炎冲, 红莲龙血下的坠星冲.", 3); + UserConfig.DrawHorizontalMultiChoice(DRG.Config.DRG_ST_DivesOption_Spineshatter, "Under Lance Charge", "", 3, 0); + UserConfig.DrawHorizontalMultiChoice(DRG.Config.DRG_ST_DivesOption_Spineshatter, "Under Dragon Sight", "", 3, 1); + UserConfig.DrawHorizontalMultiChoice(DRG.Config.DRG_ST_DivesOption_Spineshatter, "Under Battle Litany", "", 3, 2); } + if (preset == CustomComboPreset.DRG_AoE_Dragonfire_Dive) + { + UserConfig.DrawHorizontalMultiChoice(DRG.Config.DRG_AoE_DivesOption_Dragonfire, "Under Lance Charge", "", 3, 0); + UserConfig.DrawHorizontalMultiChoice(DRG.Config.DRG_AoE_DivesOption_Dragonfire, "Under Dragon Sight", "", 3, 1); + UserConfig.DrawHorizontalMultiChoice(DRG.Config.DRG_AoE_DivesOption_Dragonfire, "Under Battle Litany", "", 3, 2); + } - if (preset == CustomComboPreset.DRG_AoE_Dives && enabled) + if (preset == CustomComboPreset.DRG_AoE_Spineshatter_Dive) { - UserConfig.DrawHorizontalRadioButton(DRG.Config.DRG_AOE_DiveOptions, "冷却好了用", "单插友好. 冷却好了使用.", 1); - UserConfig.DrawHorizontalRadioButton(DRG.Config.DRG_AOE_DiveOptions, "战斗连倒和红莲龙血下用", "需要双插. 破碎冲龙炎冲在战斗连倒和红莲龙血下用, 坠星冲在红莲龙血下用.", 2); - UserConfig.DrawHorizontalRadioButton(DRG.Config.DRG_AOE_DiveOptions, "配合猛枪使用", "单插友好. 配合猛枪使用破碎冲龙炎冲, 红莲龙血下的坠星冲.", 3); + UserConfig.DrawHorizontalMultiChoice(DRG.Config.DRG_AoE_DivesOption_Spineshatter, "Under Lance Charge", "", 3, 0); + UserConfig.DrawHorizontalMultiChoice(DRG.Config.DRG_AoE_DivesOption_Spineshatter, "Under Dragon Sight", "", 3, 1); + UserConfig.DrawHorizontalMultiChoice(DRG.Config.DRG_AoE_DivesOption_Spineshatter, "Under Battle Litany", "", 3, 2); } if (preset == CustomComboPreset.DRG_ST_Opener && enabled) { - UserConfig.DrawHorizontalRadioButton(DRG.Config.DRG_OpenerOptions, "标准开场起手", "使用标准起手(自己吃爆发药)", 1); - UserConfig.DrawHorizontalRadioButton(DRG.Config.DRG_OpenerOptions, "低Ping开场起手", "低延迟下的起手. 第一个直刺连中开猛枪的不吃药开场起手.", 2); + UserConfig.DrawHorizontalRadioButton(DRG.Config.DRG_Opener_Choice, "2.5 Skill Speed Opener","", 0); + UserConfig.DrawHorizontalRadioButton(DRG.Config.DRG_Opener_Choice, "2.46 Skill Speed Opener", "", 1); + } if (preset == CustomComboPreset.DRG_ST_ComboHeals) { - UserConfig.DrawSliderInt(0, 100, DRG.Config.DRG_STSecondWindThreshold, "使用内丹的生命值百分比临界点 (0 = 禁用)", 150, SliderIncrements.Ones); - UserConfig.DrawSliderInt(0, 100, DRG.Config.DRG_STBloodbathThreshold, "使用浴血的生命值百分比临界点 (0 = 禁用)", 150, SliderIncrements.Ones); + UserConfig.DrawSliderInt(0, 100, DRG.Config.DRG_ST_SecondWind_Threshold, "使用内丹的生命值百分比临界点 (0 = 禁用)", 150, SliderIncrements.Ones); + UserConfig.DrawSliderInt(0, 100, DRG.Config.DRG_ST_Bloodbath_Threshold, "使用浴血的生命值百分比临界点 (0 = 禁用)", 150, SliderIncrements.Ones); } if (preset == CustomComboPreset.DRG_AoE_ComboHeals) { - UserConfig.DrawSliderInt(0, 100, DRG.Config.DRG_AoESecondWindThreshold, "使用内丹的生命值百分比临界点 (0 = 禁用)", 150, SliderIncrements.Ones); - UserConfig.DrawSliderInt(0, 100, DRG.Config.DRG_AoEBloodbathThreshold, "使用浴血的生命值百分比临界点 (0 = 禁用)", 150, SliderIncrements.Ones); + UserConfig.DrawSliderInt(0, 100, DRG.Config.DRG_AoE_SecondWind_Threshold, "使用内丹的生命值百分比临界点 (0 = 禁用)", 150, SliderIncrements.Ones); + UserConfig.DrawSliderInt(0, 100, DRG.Config.DRG_AoEBloodbath_Threshold, "使用浴血的生命值百分比临界点 (0 = 禁用)", 150, SliderIncrements.Ones); } - + if (preset == CustomComboPreset.DRG_Variant_Cure) - UserConfig.DrawSliderInt(1, 100, DRG.Config.DRG_VariantCure, "HP% to be at or under", 200); + UserConfig.DrawSliderInt(1, 100, DRG.Config.DRG_Variant_Cure, "HP% to be at or under", 200); + if (preset == CustomComboPreset.DRG_TrueNorthDynamic) + { + UserConfig.DrawAdditionalBoolChoice(DRG.Config.DRG_ST_TrueNorth_Moving, "Only When Not Moving", ""); + UserConfig.DrawAdditionalBoolChoice(DRG.Config.DRG_ST_TrueNorth_FirstOnly, "Only On First Positional", "When you have back-to-back positionals, True North will only trigger on the first one allowing you to move in time for the second positional."); + } + + if (preset == CustomComboPreset.DRG_ST_Litany) + UserConfig.DrawSliderInt(0, 100, DRG.Config.DRG_ST_LitanyHP, "Stop Using When Target HP% is at or Below (Set to 0 to Disable This Check)"); + + + if (preset == CustomComboPreset.DRG_ST_DragonSight) + UserConfig.DrawSliderInt(0, 100, DRG.Config.DRG_ST_SightHP, "Stop Using When Target HP% is at or Below (Set to 0 to Disable This Check)"); + + + if (preset == CustomComboPreset.DRG_ST_Lance) + UserConfig.DrawSliderInt(0, 100, DRG.Config.DRG_ST_LanceChargeHP, "Stop Using When Target HP% is at or Below (Set to 0 to Disable This Check)"); + + if (preset == CustomComboPreset.DRG_AoE_Litany) + UserConfig.DrawSliderInt(0, 100, DRG.Config.DRG_AoE_LitanyHP, "Stop Using When Target HP% is at or Below (Set to 0 to Disable This Check)"); + + + if (preset == CustomComboPreset.DRG_AoE_DragonSight) + UserConfig.DrawSliderInt(0, 100, DRG.Config.DRG_AoE_SightHP, "Stop Using When Target HP% is at or Below (Set to 0 to Disable This Check)"); + + + if (preset == CustomComboPreset.DRG_AoE_Lance) + UserConfig.DrawSliderInt(0, 100, DRG.Config.DRG_AoE_LanceChargeHP, "Stop Using When Target HP% is at or Below (Set to 0 to Disable This Check)"); + + #region Dragoon PvP if (preset is CustomComboPreset.DRGPvP_Nastrond) UserConfig.DrawSliderInt(0, 100, DRGPvP.Config.DRGPvP_LOTD_HPValue, "Ends Life of the Dragon if HP falls below the set percentage", 150, SliderIncrements.Ones); @@ -1373,12 +1491,12 @@ internal static void Draw(CustomComboPreset preset, bool enabled) #endregion // ==================================================================================== #region MACHINIST - - if (preset == CustomComboPreset.MCH_ST_SecondWind) - UserConfig.DrawSliderInt(0, 100, MCH.Config.MCH_ST_SecondWindThreshold, "使用内丹的生命值百分比临界点 (0 = 禁用)", 150, SliderIncrements.Ones); - - if (preset == CustomComboPreset.MCH_AoE_SecondWind) - UserConfig.DrawSliderInt(0, 100, MCH.Config.MCH_AoE_SecondWindThreshold, "使用内丹的生命值百分比临界点 (0 = 禁用)", 150, SliderIncrements.Ones); + // + // if (preset == CustomComboPreset.MCH_ST_SecondWind) + // UserConfig.DrawSliderInt(0, 100, MCH.Config.MCH_ST_SecondWindThreshold, "使用内丹的生命值百分比临界点 (0 = 禁用)", 150, SliderIncrements.Ones); + // + // if (preset == CustomComboPreset.MCH_AoE_SecondWind) + // UserConfig.DrawSliderInt(0, 100, MCH.Config.MCH_AoE_SecondWindThreshold, "使用内丹的生命值百分比临界点 (0 = 禁用)", 150, SliderIncrements.Ones); if (preset == CustomComboPreset.MCH_Variant_Cure) UserConfig.DrawSliderInt(1, 100, MCH.Config.MCH_VariantCure, "HP% to be at or under", 200); diff --git a/XIVSlothCombo/XIVSlothCombo.csproj b/XIVSlothCombo/XIVSlothCombo.csproj index 3738ba67b..46780de3a 100644 --- a/XIVSlothCombo/XIVSlothCombo.csproj +++ b/XIVSlothCombo/XIVSlothCombo.csproj @@ -4,7 +4,7 @@ Aki, k-kz, ele-starshade, damolitionn, Taurenkey, Augporto, grimgal, Genesis-Nova, Tartarga - - 3.0.18.13 + 3.0.18.14 XIVCombo for lazy players Copyleft attick 2021 thanks attick UwU diff --git a/release/XIVSlothCombo/XIVSlothCombo.json b/release/XIVSlothCombo/XIVSlothCombo.json index 7affa19eb..c3361fa8c 100644 --- a/release/XIVSlothCombo/XIVSlothCombo.json +++ b/release/XIVSlothCombo/XIVSlothCombo.json @@ -2,7 +2,7 @@ "Author": "Aki, k-kz, ele-starshade, damolitionn, Taurenkey, Augporto, grimgal, Genesis-Nova, Tartarga", "Name": "XIVSlothCombo", "InternalName": "XIVSlothCombo", - "AssemblyVersion": "3.0.18.13", + "AssemblyVersion": "3.0.18.14", "Description": "Condenses combos and mutually exclusive abilities onto a single button - and then some.", "ApplicableVersion": "any", "RepoUrl": "https://github.com/Nik-Potokar/XIVSlothCombo", diff --git a/release/XIVSlothCombo/latest.zip b/release/XIVSlothCombo/latest.zip index 764f8886f6bcc689d25b349297facfa7e73dd439..c6fb3b3f2bf12739c1b89a14fcf0cf65044a6ff1 100644 GIT binary patch delta 338586 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�OiUdhSF5rJat^$#}2~2gneQKpDt@@E%0Ao7hSHqa9W25>G(%06K! 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 pFyIJgV^;&N0lWin6mTuzI?R8@uE+fA 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

otN^~DbB&1~{kvYGwczDFVvH3TvtPW6 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

Bon9tzX8f%0&p`(F~!jz$`Zg4@Cv25 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%0D9?kWlZKH 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 G0001IevH5X delta 331000 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 !iV2fZO9j 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

5J7kYTJy-XV1G~-H0<088TT37=CaeVlf$*v2 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�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�Uj+XE1z^x? zTPS`}3MGJo6ve#Xjh+UfMnafXG3b4CF~f`JQxnU$e`o6eT^!~n*%vm$e33*cE`vn` zj{r4Q9}^(kg{4Wx!2@?kqzB|0v52%;_Yv6ZGfHKmF6Ie|129_s}0%p4pii?*Mny3w9$55bhSobd~Kf!NvTJpWk5PkIL`kB&k?Je=yO> zXa#|Dh5-zP3sOtpWXVQ;wy-ZG)tDL=>yMtpBR+iA(&SmlLv}z%bw_YGXTEK|NTcF4 zk;7hDxCaH6{U9v&(dH7w1Y51WR4zd>6?DkQ@12FcEz&WaxvL#{RBLz1$GUzF;JLN-O_2 z0$+87e~-ygBG$B4;5f^|ztP8jslJ=PmKm-q{H1OyJVB}U6|1wob|f~Wq;(e+J$<4n z*J!@%IM)8$98n_>Z4Ll#>3#zcH0_O;ug`AMV}x4U?wrN|XejqNqh z0UEn5q6uD4416{*aN1}$+lt)Axj?4g^_)rMBaMXFfZu8CdofWeopn(Czs~0_fBedP zjiHGjnv(ruJ=Ud>*3wx#$U^>z^-r9=!6k_eCVet8-%m3z7}gSmO0{tLbC@wQU+Lc_pHkjzMJUBVEf_{;66h!|s4m5jq&(p!gs2qzW=RF*ZXZIBS zI@S?_6z{A?o73%FizTdfSdA~>evA|e1i01`p{W&g~V_Hz{3<AXZ?Sa>(xQD>X7Bekcea!K)m62vx8rP_eLn^H`T5Jp6N{vCH zP(~h;9kxsztg6&fcmk3Vdy!<-9Zb~4M;&MhS~a>tWifvHoZmo!km8ZLQ3iDvWe`+k zAhY-Esaat)>6~5y$PtDCe^b||!DR+>yWi$~7nL6?bw;eKN-nIo5^bLHgV7|Ta$?Us z#<+b-yd@3gOB8(h{if8!e3Ixjf|zs#kdw5{8TJ*i!UHFj-%C>CEgVIFCFJqrG#Eqg z*7Ad$sX>SU0}52Ndz9WslzMtCca!4NN!Ulve|Hi#uK5OCcjfoq z^pUPhuun3n@f0^g^>l!WS_78Pbv7yRshvF}dJ*|M=JRyT;l)JwGFOC(LTf=tOm4RwP$9D^-NbVwT#&nsS+JHqL> zzj!LEb7c!xbAefBf1Hm&BG>kp`5494;=tCYsc2@l3&C}|5C9+Tmzlr#_GoUtXio}uqXbmgHXD{40F)yxdNno%0OrqG_?Xf%~W7R~54I37&2+J2TUy^bpmG)WYN zKhex89BFPqY@T9Y*2X;uYQfw@hz`dlP8g=p&ktCWf7Fryk_6OC8%Ux}TX}fa z!=6vdDhF^x-c-d1j{IfLyvkNMb#B-ex17Y` zwkNp|9F%KPC4i+WiD2sK00vn?Q*WWKUu2u@vTZVLDF)a$YExiA>AX4YK~7QS23xes z+RZImt*E!Oe{Jg;^L3i)c0u~OD0p%@!1j0^*%TLJUVJ2xH7_bFyL2kI%w};KS%^-= zm3EmnFL(e8ZLfly&>J7MD2|||Q@Sm^J2z;vxIZgvMF1Q#DnPlZBF(0xQC3QiM6W%L z*W~DN3B((XO%*|XZKU*wzV=LRF-eQ1PecdGh>=zyb*lB#8nCbQ(io$OC9XdWD0O9QOe5f#xH5)PH^j&)A4!}= zDsdA-2w_%NoK)~ndG0Wu6B-;)oO=4M*C&V-3DLDaaYuYgji9OmykZ(+X-=CD%2^w8 z;-h;$e=bfGZ#JKl>)qz#di_g+7_Tv3%{EzsJ@l>~uhl{^wBD12;>0R!ulds0LGukB zRP(3V9)XwL`(0?pyHi2N1(whSl?>gw8+K|JmFRL#@F%26SdB1XLM!y}q500NU>>J8 z*s~e}Iib4OsP{)4-yGee{#Jq48{h{^Ny1X+fn*E88KrQW;LEb zpuvx9ByK$(D4ea?jONS_%{LuqYq&1kW`k^9!Ps8_o!dBRR}nd!@3{L| zMMwe*089Y)2E6m~Modos50_mbYagHf~3No^Ej4hC79^%kF%%LkIbYnbVF(%Y}z9@c0e{3Y9 z@dseVvZL=wJ^bbUBG8@YNvZ11=HpiI!CvFPJIq()cMk@ieeVT%?+WvhUVmZiHuC~T zg!vvwp8%HROcy!OQBzP#(iEL?_v5FllH}g(7q&_tCKywAOYDE!lem#XNqpft1K8WJ zF1J{BUY+*3qNuH*pEExAp$2 zZVDuyAQ|m)TY{COx*bb_UcD;?S_aL6EVMo2h)PL7xUwg48-oSP26A(1Viu_oGHM#p z+&3kieW`4pHN!w=1~4O;&yeUed1wHrrg;uDBX4r74N&&obU&XwBa~boeX$%}GR=em@-V{Nn!wuNf9E0|NY8!)}tGd09jpaT$ zfGh!RPmjPRuVcO_PJpe6QbJ%+W~5(Xw#)uTkCn8I^pi0G z(#=OJfpiPbSmUTyj^s9tB)ajx+u;?(F8-o$ms+q0%4vZ-doniS z^k=>k1+rKdpbINQ>UNvo(F|Y9E#brc<}aYN93;MTXRPc9=gpqL$y8+qb4*0c{#h=( z!AvrT|BW1gy+h68pVh>HEB5T=Q;Eb<4U(|JmO|RY%B57O`Lrf$G%oDMpp16eL(i|0 zL%x`T;i$`|R{Qxje{0W#K`a?*nxwJD+U!g>a=}EGL@fe!Ie$Wq47FBli9ZEWu|__S z0}VP9tL(DZ?(y>jHd9f3fei4FK9YWZ;OB3o*$yh_^B!ob(uRU4&hR*WEc@sbqi3~( zQ`uzMchVjsf(C_tet3$uIoJGbtaPXO9TH9MMRRZ9vl$2m zeL8v1r8-r1Xz%o~S;i`p20J`B=v1lpW9iTsV&;h;KSJHK#|1RDiigm_IKewN6Pb{HUXvc5L*>2w z4Sj1pkA+!HY6$c{5gacT97WTBKI%!Z<-76c-246f-WkhrE^}l^!~Efs$vYUFMb4=; z?+fy`*^T^hx_TYuSzRK3*Ks#xow~m3=NH(+MO$ePe*(taNgNOGVf>KOnua9;M#PTS zdHY0=zvxBR{4jImh%Iy^pmch}`V|)aJm|`D_Of}L8k5v{>QmVDGP;j5fVOVENPs~u zZCCMbh{PM$u&n5F?e@9#jnNzBVNiZ|eM3cl`tBNGvBV#Kde@2!NSy(YQXtbW;&bg$Yif5&dC!79w?v;DaR<~!V~4ug3;EazRtwialm_qhG zq;p|wfM#M)hZWai|J6+gS5)e#wF%vnv$t+8-|D-`-a1PPm)m`}P`J9!YI_xPf47=H z;3*Gp&1PsN;<2WLm0+uHr^&mEp&zj-zL(Z-7>m-*Dc_kxrC0qSHw6|ScWE#a%-qEW z-lh5cyzh21*#GQQp$e&T*xYVY9P2>acbn(XP1n+j)Q7d+g_Uu3#Ch+CH(B4wnZGvQ zb)22pRV}oZU9sA(duPZ+CTw2b z%TcM6GdO2qJB+>2tqi5vPC6)X|1R;>PhfllpRI5RoNKN2UBow}f!$i`fEPJT z_@$jwuCqo6M}U-IO14mfMs)~RX*LIQH=94C{(mSt%a(8>Po9we*iEY;+sK8zTHQE^ zbR^Mli*55j>k!U_WpF00f9Iqi=Xo5Co97xA&`V|WbcF}UdUC*-8nZl&4=uqN)xF6Z zhf2@mjMK2>AKrQO!JE(AanqJFx12n)NdDfwXxEvOJ8ro7EjQeD`=YJ4-g(RIebF&C zoJSLVhmqRZRrXqogG@K|H+S*F!_7&SL~y3rl(S||5(&4k0VE~oe}*-f6R?+)8Hd0m zp4v$IFF<3O)9`Z{0eOt(YWuT?uj9EfzJBD;C0<_^zrJRM+=ge)?NH%2=C*o<+=ed7 zZLgHgJcaBeyy$#DWTUgEgC;x@H9|`Mz+uYw+%Sc1t5UxN&Z+_i| zeq%DF*&WJu|HrZmf2L-)$NZ5~GaTNPy~F8g3aaZoasjJ6?76z#?iA*o+fzUfT>imy zJlj3bKaO7OcGLWWpH(hc9?lpB)5`EuSO)7H%!u>dS!qjdTk4K51)JPzw~MJeFjKg7 zY0G+B?at9_OYAl97t&r2=L9$W>Jt9DBK)TO+a10z#DAN@f8TFjNj)fhxw(eMeCP^< zv*)_&Np9X&jXmXBhP*XTSL63w3~6uja*Sy&Z$4mNb)3fVHIO*!XiMDY9h=QH@bPL) zTa#x9lVTeM+=L5X)cn9-n}ML1w`MHyxT*%PEC?`mcFXk(dcC^FS?(<139{Rp9jHGK z%B0flCTs8uf6rg;?`{DZ!(6~B19KGWIf-77g%kf4JIx=nY`=)gHsT#iTW(6u!&bNs z`(61^lbfhPHuJEOd1G?@alJl?b!jbcY}Fg@jBcE-aaQrh<$A;DjoKQlJh;9^uRo~Q zQRJ1pKBm_{7-apP_LiKQCrZ-;y#th$H z!Rx#9`V-L$cc!2g;Kp{n@o048o)loz-}nYdgO65EeZw>F33kKK#S`nDw2##rj2!wf z4ui`ie@oL&{Aes5hy-P}cMMicXS4;jmA8P~?M)uf!pOo?_!t6U#OtczW|2Rk1swE7 z8myL6XWdL!6t9P>mT_+Ok#`-hbcSE6tENH%ZaVf~Po9M3s4sE{Xy9ew&(-AdlQ+aY zqpQ~v=2eEpU(Zur8=ZT3{B~6X2I1Yv&aGxNf1Op;?jCQ`JV1Ma-dOKeH(<2l;k9m6 zC$632Yc)_faW}aqm^{D4S((Dqvz%MeR0({t3(er4=81Ki?~nyv6y-T9_|L%Hm3Nvy zL5UAWB?eM12d6hAcQG6!IO967=`dzf9WXa}yS(#9=&PXD!~n@uVio;_fcWaqjp_)a zf6t+JlJ?L(l;H{~!}9&xr6>nhnlG3?b(~e^v8)8Ep*u6i^0kckfY}df>f^362xx>r zl_YuMTCkx3=K+-xsjQ}JelRzg^Sf94%q`R`@sojdvOfO&YO?D@?jD}?-J-gTMX znmsy-f2%i`A3}hTFrPJVXCi^blgrKbk%Z9K!xFS-jtx!U>U+*o@CTihCAo>+Z@^%?qu=f07bc zyRO?WrsgoanE%#<`$e(c6JFaU|CX+_|6Z7se~%R>Ay1?ueg~(oqR6IXioB39Ke*p& z#1lJc>)saL(k!ML27rZnD^Y-!xx{&yTEdhNnsqxmFPxBq%r0&@VE@hOzgzX+ZQEGh zmi#{cYze=*@Baf(O9KQH000080|3xjw`Cv&644D3RDM@}BoIc60RRBfmxS>JG6)!0 zepdj?-z=BD@dXwE5|`ES1tuTRS$ze@&z0M7Xz2s@&!EuuO0=L4m<@J a7EntC1^@s600;mG0RI610P)iW00004xZ3Xk diff --git a/release/pluginmaster.json b/release/pluginmaster.json index 34e8a3ed1..9ac5ee7ba 100644 --- a/release/pluginmaster.json +++ b/release/pluginmaster.json @@ -2,10 +2,10 @@ { "Author": "Aki, k-kz, ele-starshade, damolitionn, Taurenkey, Augporto, grimgal, Genesis-Nova, Tartarga", "Name": "XIVSlothCombo", - "Punchline": "CN6.4 update PLD DNC", - "Description": "CN6.4 update PLD DNC", + "Punchline": "update BLM DRG MCH AST", + "Description": "update BLM DRG MCH AST", "InternalName": "XIVSlothCombo", - "AssemblyVersion": "3.0.18.13", + "AssemblyVersion": "3.0.18.14", "RepoUrl": "https://github.com/44451516/XIVSlothCombo/", "ApplicableVersion": "any", "DalamudApiLevel": 8,