Fix Enochian, prep for 5.1 changes.

This commit is contained in:
attick 2019-10-25 20:35:53 -04:00
parent 09c5f0841d
commit 58b5401e90
5 changed files with 37 additions and 26 deletions

View file

@ -7,14 +7,14 @@ using System.Threading.Tasks;
namespace XIVLauncher.Dalamud namespace XIVLauncher.Dalamud
{ {
//CURRENT HIGHEST FLAG IS 45 //CURRENT HIGHEST FLAG IS 44
[Flags] [Flags]
public enum CustomComboPreset : long public enum CustomComboPreset : long
{ {
None = 0, None = 0,
// DRAGOON // DRAGOON
[CustomComboInfo("Coerthan Torment Combo", "Replace Coearthan Torment with its combo chain", 22)] [CustomComboInfo("Coerthan Torment Combo", "Replace Coerthan Torment with its combo chain", 22)]
DragoonCoerthanTormentCombo = 1L << 0, DragoonCoerthanTormentCombo = 1L << 0,
[CustomComboInfo("Chaos Thrust Combo", "Replace Chaos Thrust with its combo chain", 22)] [CustomComboInfo("Chaos Thrust Combo", "Replace Chaos Thrust with its combo chain", 22)]
@ -68,8 +68,6 @@ namespace XIVLauncher.Dalamud
// NINJA // NINJA
[CustomComboInfo("Shadow Fang Combo", "Replace Shadow Fang with its combo chain", 30)]
NinjaShadowFangCombo = 1L << 16,
[CustomComboInfo("Armor Crush Combo", "Replace Armor Crush with its combo chain", 30)] [CustomComboInfo("Armor Crush Combo", "Replace Armor Crush with its combo chain", 30)]
NinjaArmorCrushCombo = 1L << 17, NinjaArmorCrushCombo = 1L << 17,
@ -166,7 +164,7 @@ namespace XIVLauncher.Dalamud
MonkRearCombo = 1L << 44, MonkRearCombo = 1L << 44,
[CustomComboInfo("Rockbreaker Combo", "Replaces Rockbreaker according to stance. When PB is active, prefer RB (with non-max GL) > Twin Snakes (with no TS active) > AotD.", 20)] [CustomComboInfo("Rockbreaker Combo", "Replaces Rockbreaker according to stance. When PB is active, prefer RB (with non-max GL) > Twin Snakes (with no TS active) > AotD.", 20)]
MonkAoECombo = 1L << 45, MonkAoECombo = 1L << 16,
// RED MAGE // RED MAGE
[CustomComboInfo("One-button White Magic", "Replaces Verstone with the following priority: Scorch > Verholy > Dual/Swiftcast Veraero > Verstone proc > Opener Veraero > Jolt.", 35)] [CustomComboInfo("One-button White Magic", "Replaces Verstone with the following priority: Scorch > Verholy > Dual/Swiftcast Veraero > Verstone proc > Opener Veraero > Jolt.", 35)]

View file

@ -14,7 +14,7 @@ namespace Dalamud.Game.ClientState.Structs.JobGauge {
[FieldOffset(4)] private byte ElementStance; //ui/af [FieldOffset(4)] private byte ElementStance; //ui/af
[FieldOffset(5)] public byte NumUmbralHearts; //number of umbral hearts [FieldOffset(5)] public byte NumUmbralHearts; //number of umbral hearts
[FieldOffset(6)] public byte NumPolyglotStacks; //number of polyglot stacks [FieldOffset(6)] public byte NumPolyglotStacks; //number of polyglot stacks
[FieldOffset(7)] public bool IsEnoActive; //eno active? [FieldOffset(7)] private byte EnoState; //eno active?
public bool InUmbralIce() { public bool InUmbralIce() {
return ElementStance > 4; return ElementStance > 4;
@ -24,6 +24,10 @@ namespace Dalamud.Game.ClientState.Structs.JobGauge {
return ElementStance > 0 && ElementStance < 4; return ElementStance > 0 && ElementStance < 4;
} }
public bool IsEnoActive() {
return EnoState > 0;
}
} }

View file

@ -10,7 +10,11 @@ namespace Dalamud.Game.ClientState.Structs.JobGauge {
public struct DRKGauge { public struct DRKGauge {
[FieldOffset(0)] public short Blood; [FieldOffset(0)] public short Blood;
[FieldOffset(2)] public short DarksideTimeRemaining; [FieldOffset(2)] public short DarksideTimeRemaining;
[FieldOffset(4)] public bool HasDarkArts; [FieldOffset(4)] private byte DarkArtsState;
[FieldOffset(6)] public short ShadowTimeRemaining; [FieldOffset(6)] public short ShadowTimeRemaining;
public bool HasDarkArts() {
return DarkArtsState > 0;
}
} }
} }

View file

@ -12,6 +12,10 @@ namespace Dalamud.Game.ClientState.Structs.JobGauge {
[FieldOffset(0)] public byte GLTimer; [FieldOffset(0)] public byte GLTimer;
[FieldOffset(2)] public byte NumGLStacks; [FieldOffset(2)] public byte NumGLStacks;
[FieldOffset(3)] public byte NumChakra; [FieldOffset(3)] public byte NumChakra;
[FieldOffset(4)] public bool IsGLTimerFrozen; [FieldOffset(4)] private byte GLTimerFreezeState;
public bool IsGLTimerFroze() {
return GLTimerFreezeState > 0;
}
} }
} }

View file

@ -193,7 +193,10 @@ namespace Dalamud.Game.Internal.Gui {
if (actionID == 3539) { if (actionID == 3539) {
if (comboTime > 0) { if (comboTime > 0) {
if (lastMove == 9 && level >= 4) return 15; if (lastMove == 9 && level >= 4) return 15;
if (lastMove == 15 && level >= 60) return 3539; if (lastMove == 15) {
if (level >= 60) return 3539;
if (level >= 26) return 21;
}
} }
return 9; return 9;
@ -307,16 +310,6 @@ namespace Dalamud.Game.Internal.Gui {
// NINJA // NINJA
// Replace Shadow Fang with Shadow Fang combo
if (this.dalamud.Configuration.ComboPresets.HasFlag(CustomComboPreset.NinjaShadowFangCombo)) {
if (actionID == 2257) {
if (comboTime > 0) {
if (lastMove == 2240 && level >= 30) return 2257;
}
return 2240;
}
}
// Replace Armor Crush with Armor Crush combo // Replace Armor Crush with Armor Crush combo
if (this.dalamud.Configuration.ComboPresets.HasFlag(CustomComboPreset.NinjaArmorCrushCombo)) { if (this.dalamud.Configuration.ComboPresets.HasFlag(CustomComboPreset.NinjaArmorCrushCombo)) {
if (actionID == 3563) { if (actionID == 3563) {
@ -392,8 +385,14 @@ namespace Dalamud.Game.Internal.Gui {
if (actionID == 7413) { if (actionID == 7413) {
if (this.dalamud.ClientState.JobGauges.Get<MCHGauge>().IsOverheated() && level >= 35) return 7410; if (this.dalamud.ClientState.JobGauges.Get<MCHGauge>().IsOverheated() && level >= 35) return 7410;
if (comboTime > 0) { if (comboTime > 0) {
if (lastMove == 2866 && level >= 2) return 7412; if (lastMove == 2866) {
if (lastMove == 2868 && level >= 26) return 7413; if (level >= 60) return 7412;
if (level >= 2) return 2868;
}
if (lastMove == 2868) {
if (level >= 64) return 7413;
if (level >= 26) return 2873;
}
} }
return 7411; return 7411;
} }
@ -410,11 +409,10 @@ namespace Dalamud.Game.Internal.Gui {
// BLACK MAGE // BLACK MAGE
// Enochian changes to B4 or F4 depending on stance. // Enochian changes to B4 or F4 depending on stance.
// TODO: For some reason this breaks only on my Crystal alt.
if (this.dalamud.Configuration.ComboPresets.HasFlag(CustomComboPreset.BlackEnochianFeature)) { if (this.dalamud.Configuration.ComboPresets.HasFlag(CustomComboPreset.BlackEnochianFeature)) {
if (actionID == 3575) { if (actionID == 3575) {
BLMGauge jobInfo = this.dalamud.ClientState.JobGauges.Get<BLMGauge>(); BLMGauge jobInfo = this.dalamud.ClientState.JobGauges.Get<BLMGauge>();
if (jobInfo.IsEnoActive) { if (jobInfo.IsEnoActive()) {
if (jobInfo.InUmbralIce() && level >= 58) return 3576; if (jobInfo.InUmbralIce() && level >= 58) return 3576;
if (level >= 60) return 3577; if (level >= 60) return 3577;
} }
@ -425,7 +423,8 @@ namespace Dalamud.Game.Internal.Gui {
// Umbral Soul and Transpose // Umbral Soul and Transpose
if (this.dalamud.Configuration.ComboPresets.HasFlag(CustomComboPreset.BlackManaFeature)) { if (this.dalamud.Configuration.ComboPresets.HasFlag(CustomComboPreset.BlackManaFeature)) {
if (actionID == 149) { if (actionID == 149) {
if (this.dalamud.ClientState.JobGauges.Get<BLMGauge>().InUmbralIce() && level >= 76) return 16506; BLMGauge gauge = this.dalamud.ClientState.JobGauges.Get<BLMGauge>();
if (gauge.InUmbralIce() && gauge.IsEnoActive() && level >= 76) return 16506;
return 149; return 149;
} }
} }
@ -449,10 +448,12 @@ namespace Dalamud.Game.Internal.Gui {
return 4405; return 4405;
case CardType.SPIRE: case CardType.SPIRE:
return 4406; return 4406;
/*
case CardType.LORD: case CardType.LORD:
return 7444; return 7444;
case CardType.LADY: case CardType.LADY:
return 7445; return 7445;
*/
default: default:
return 3590; return 3590;
} }
@ -710,7 +711,7 @@ namespace Dalamud.Game.Internal.Gui {
} }
// Replace Rockbreaker with AoE combo. // Replace Rockbreaker with AoE combo.
// During PB, RB (with sub-max stacks) > Twin Snakes (if not applied) > AotD. // During PB, RB (with sub-max stacks) > Twin Snakes (if not applied) > RB.
if (this.dalamud.Configuration.ComboPresets.HasFlag(CustomComboPreset.MonkAoECombo)) { if (this.dalamud.Configuration.ComboPresets.HasFlag(CustomComboPreset.MonkAoECombo)) {
if (actionID == 70) { if (actionID == 70) {
if (SearchBuffArray(110)) { if (SearchBuffArray(110)) {
@ -722,7 +723,7 @@ namespace Dalamud.Game.Internal.Gui {
return 70; return 70;
} }
else if (!SearchBuffArray(101)) return 61; else if (!SearchBuffArray(101)) return 61;
else return 62; else return 70;
} }
else { else {
if (SearchBuffArray(107)) return 62; if (SearchBuffArray(107)) return 62;