feat: add option to only alternate in combat
This commit is contained in:
parent
05fffe39f8
commit
07b62ba03b
@ -19,6 +19,7 @@ public class Configuration : IPluginConfiguration {
|
|||||||
public bool Alternate = true;
|
public bool Alternate = true;
|
||||||
public bool ManaModeAlternateOnlyManaUsers = true;
|
public bool ManaModeAlternateOnlyManaUsers = true;
|
||||||
public float AlternateSeconds = 3.0f;
|
public float AlternateSeconds = 3.0f;
|
||||||
|
public bool OnlyAlternateInCombat = true;
|
||||||
public uint TextColour = 0xEDFFEC;
|
public uint TextColour = 0xEDFFEC;
|
||||||
public int TextAddRed;
|
public int TextAddRed;
|
||||||
public int TextAddGreen;
|
public int TextAddGreen;
|
||||||
|
10
Plugin.cs
10
Plugin.cs
@ -3,6 +3,7 @@ using System.Globalization;
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using Dalamud.Game.Addon.Lifecycle;
|
using Dalamud.Game.Addon.Lifecycle;
|
||||||
using Dalamud.Game.Addon.Lifecycle.AddonArgTypes;
|
using Dalamud.Game.Addon.Lifecycle.AddonArgTypes;
|
||||||
|
using Dalamud.Game.ClientState.Conditions;
|
||||||
using Dalamud.Game.Gui.ContextMenu;
|
using Dalamud.Game.Gui.ContextMenu;
|
||||||
using Dalamud.Game.Text;
|
using Dalamud.Game.Text;
|
||||||
using Dalamud.IoC;
|
using Dalamud.IoC;
|
||||||
@ -51,6 +52,9 @@ public class Plugin : IDalamudPlugin {
|
|||||||
[PluginService]
|
[PluginService]
|
||||||
internal IDataManager DataManager { get; init; }
|
internal IDataManager DataManager { get; init; }
|
||||||
|
|
||||||
|
[PluginService]
|
||||||
|
internal ICondition Condition { get; init; }
|
||||||
|
|
||||||
// [PluginService]
|
// [PluginService]
|
||||||
// internal ITextureProvider TextureProvider { get; init; }
|
// internal ITextureProvider TextureProvider { get; init; }
|
||||||
|
|
||||||
@ -617,6 +621,8 @@ public class Plugin : IDalamudPlugin {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var inCombat = this.Condition[ConditionFlag.InCombat];
|
||||||
|
|
||||||
if (this.Config.Mode == MeterMode.Mana && info.IsChocobo) {
|
if (this.Config.Mode == MeterMode.Mana && info.IsChocobo) {
|
||||||
var chocoboTimer = list->GetTextNodeById(5);
|
var chocoboTimer = list->GetTextNodeById(5);
|
||||||
var chocoboTimerIcon = list->GetTextNodeById(4);
|
var chocoboTimerIcon = list->GetTextNodeById(4);
|
||||||
@ -624,7 +630,7 @@ public class Plugin : IDalamudPlugin {
|
|||||||
var hasTimer = chocoboTimer != null && chocoboTimer->IsVisible();
|
var hasTimer = chocoboTimer != null && chocoboTimer->IsVisible();
|
||||||
var hasTimerIcon = chocoboTimerIcon != null && chocoboTimerIcon->IsVisible();
|
var hasTimerIcon = chocoboTimerIcon != null && chocoboTimerIcon->IsVisible();
|
||||||
|
|
||||||
if (this.Config.Alternate && !this._showDps) {
|
if (this.Config.Alternate && (!this.Config.OnlyAlternateInCombat || inCombat) && !this._showDps) {
|
||||||
this.ResetMember(list, info, false, false);
|
this.ResetMember(list, info, false, false);
|
||||||
} else {
|
} else {
|
||||||
if (hasTimer) {
|
if (hasTimer) {
|
||||||
@ -647,7 +653,7 @@ public class Plugin : IDalamudPlugin {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.Config.Alternate && !this._showDps && info.ClassJob is { } classJob) {
|
if (this.Config.Alternate && (!this.Config.OnlyAlternateInCombat || inCombat) && !this._showDps && info.ClassJob is { } classJob) {
|
||||||
var isCaster = Array.IndexOf(this._manaUsers, classJob) != -1;
|
var isCaster = Array.IndexOf(this._manaUsers, classJob) != -1;
|
||||||
if (!this.Config.ManaModeAlternateOnlyManaUsers || isCaster) {
|
if (!this.Config.ManaModeAlternateOnlyManaUsers || isCaster) {
|
||||||
this.ResetMember(list, info, false, false);
|
this.ResetMember(list, info, false, false);
|
||||||
|
@ -118,6 +118,7 @@ public class PluginUi : IDisposable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
using (ImGuiHelper.DisabledUnless(this.Plugin.Config is { Alternate: true, Mode: MeterMode.Mana })) {
|
using (ImGuiHelper.DisabledUnless(this.Plugin.Config is { Alternate: true, Mode: MeterMode.Mana })) {
|
||||||
|
anyChanged |= ImGui.Checkbox("Only alternate when in combat", ref this.Plugin.Config.OnlyAlternateInCombat);
|
||||||
anyChanged |= ImGui.Checkbox("Only alternate on jobs that use mana", ref this.Plugin.Config.ManaModeAlternateOnlyManaUsers);
|
anyChanged |= ImGui.Checkbox("Only alternate on jobs that use mana", ref this.Plugin.Config.ManaModeAlternateOnlyManaUsers);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user