Skip to content
This repository has been archived by the owner on Aug 28, 2024. It is now read-only.

Commit

Permalink
fix: simplify config.
Browse files Browse the repository at this point in the history
  • Loading branch information
ArchiDog1998 committed Nov 13, 2023
1 parent 208aa1c commit 156b2ec
Show file tree
Hide file tree
Showing 27 changed files with 275 additions and 364 deletions.
7 changes: 4 additions & 3 deletions RotationSolver.Basic/Actions/BaseAction_Target.cs
Original file line number Diff line number Diff line change
Expand Up @@ -95,9 +95,10 @@ internal static bool TankDefenseSelf(BattleChara _, bool mustUse)
{
return (DataCenter.TarOnMeTargets.Any() || mustUse) && DataCenter.AverageTimeToKill > 8;
}
internal static bool TankBreakOtherCheck(Job id)

internal static bool CanTankBurst()
{
var tankHealth = id.GetHealthForDyingTank();
var tankHealth = Service.Config.GetValue(JobConfigFloat.HealthForDyingTanks);

return DataCenter.HasHostilesInRange
&& Player.Object.GetHealthRatio() < tankHealth
Expand Down Expand Up @@ -652,7 +653,7 @@ bool CheckStatus(BattleChara tar)

if (TargetStatus == null) return true;

return tar.WillStatusEndGCD(GetDotGcdCount?.Invoke() ?? (uint)Service.Config.GetValue(DataCenter.Job, JobConfigInt.AddDotGCDCount),
return tar.WillStatusEndGCD(GetDotGcdCount?.Invoke() ?? (uint)Service.Config.GetValue(JobConfigInt.AddDotGCDCount),
0, true, TargetStatus);
}

Expand Down
4 changes: 2 additions & 2 deletions RotationSolver.Basic/Actions/HealPotionItem.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using ECommons.ExcelServices;
using ECommons.GameHelpers;
using Lumina.Excel.GeneratedSheets;
using RotationSolver.Basic.Configuration;

namespace RotationSolver.Basic.Actions;

Expand Down Expand Up @@ -31,8 +32,7 @@ public override bool CanUse(out IAction item, bool clippingCheck)
{
item = null;
if (!Player.Available) return false;
var job = (Job)Player.Object.ClassJob.Id;
if (Player.Object.GetHealthRatio() > job.GetHealthSingleAbilityHot()) return false;
if (Player.Object.GetHealthRatio() > Service.Config.GetValue(JobConfigFloat.HealthSingleAbilityHot)) return false;
if (Player.Object.MaxHp - Player.Object.CurrentHp < MaxHealHp) return false;
return base.CanUse(out item, clippingCheck);
}
Expand Down
26 changes: 16 additions & 10 deletions RotationSolver.Basic/Configuration/Configs.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,11 @@ public static PluginConfig Create()
public GlobalConfig GlobalConfig { get; private set; } = new();
public int Version { get; set; } = 7;

public int GetValue(Job job, JobConfigInt config)
=> GetJobConfig(job).Ints.GetValue(config);
public int GetValue(JobConfigInt config)
=> GetJobConfig(DataCenter.Job).Ints.GetValue(config);

public float GetValue(Job job, JobConfigFloat config)
=> GetJobConfig(job).Floats.GetValue(config);
public float GetValue(JobConfigFloat config)
=> GetJobConfig(DataCenter.Job).Floats.GetValue(config);

public int GetValue(PluginConfigInt config)
=> GlobalConfig.Ints.GetValue(config);
Expand Down Expand Up @@ -64,11 +64,11 @@ public float GetValue(PluginConfigFloat config)
public Vector4 GetValue(PluginConfigVector4 config)
=> GlobalConfig.Vectors.GetValue(config);

public int GetDefault(Job job, JobConfigInt config)
=> GetJobConfig(job).Ints.GetDefault(config);
public int GetDefault(JobConfigInt config)
=> GetJobConfig(DataCenter.Job).Ints.GetDefault(config);

public float GetDefault(Job job, JobConfigFloat config)
=> GetJobConfig(job).Floats.GetDefault(config);
public float GetDefault(JobConfigFloat config)
=> GetJobConfig(DataCenter.Job).Floats.GetDefault(config);

public int GetDefault(PluginConfigInt config)
=> GlobalConfig.Ints.GetDefault(config);
Expand All @@ -82,7 +82,10 @@ public float GetDefault(PluginConfigFloat config)
public Vector4 GetDefault(PluginConfigVector4 config)
=> GlobalConfig.Vectors.GetDefault(config);

public void SetValue(Job job, JobConfigInt config, int value)
public void SetValue(JobConfigInt config, int value)
=> SetValue(DataCenter.Job, config, value);

private void SetValue(Job job, JobConfigInt config, int value)
{
var attr = config.GetAttribute<DefaultAttribute>();
if (attr != null)
Expand All @@ -96,7 +99,10 @@ public void SetValue(Job job, JobConfigInt config, int value)
GetJobConfig(job).Ints.SetValue(config, value);
}

public void SetValue(Job job, JobConfigFloat config, float value)
public void SetValue(JobConfigFloat config, float value)
=> SetValue(DataCenter.Job, config, value);

private void SetValue(Job job, JobConfigFloat config, float value)
{
var attr = config.GetAttribute<DefaultAttribute>();
if (attr != null)
Expand Down
2 changes: 1 addition & 1 deletion RotationSolver.Basic/DataCenter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ internal static void AddCommandAction(IAction act, double time)
}

public static TargetHostileType RightNowTargetToHostileType
=> (TargetHostileType)Service.Config.GetValue(Job, Configuration.JobConfigInt.HostileType);
=> (TargetHostileType)Service.Config.GetValue(JobConfigInt.HostileType);

public static unsafe ActionID LastComboAction => (ActionID)ActionManager.Instance()->Combo.Action;
public static unsafe float ComboTime => ActionManager.Instance()->Combo.Timer;
Expand Down
28 changes: 0 additions & 28 deletions RotationSolver.Basic/Helpers/ConfigurationHelper.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
using Dalamud.Game.ClientState.Keys;
using ECommons.ExcelServices;

namespace RotationSolver.Basic.Helpers;

Expand Down Expand Up @@ -32,31 +31,4 @@ internal static class ConfigurationHelper
};

public static readonly VirtualKey[] Keys = new VirtualKey[] { VirtualKey.CONTROL, VirtualKey.SHIFT, VirtualKey.MENU };

public static float GetHealthAreaAbility(this Job job)
=> Service.Config.GetValue(job, Configuration.JobConfigFloat.HealthAreaAbility);

public static float GetHealthAreaSpell(this Job job)
=> Service.Config.GetValue(job, Configuration.JobConfigFloat.HealthAreaSpell);

public static float GetHealthAreaAbilityHot(this Job job)
=> Service.Config.GetValue(job, Configuration.JobConfigFloat.HealthAreaAbilityHot);

public static float GetHealthAreaSpellHot(this Job job)
=> Service.Config.GetValue(job, Configuration.JobConfigFloat.HealthAreaSpellHot);

public static float GetHealthSingleAbility(this Job job)
=> Service.Config.GetValue(job, Configuration.JobConfigFloat.HealthSingleAbility);

public static float GetHealthSingleSpell(this Job job)
=> Service.Config.GetValue(job, Configuration.JobConfigFloat.HealthSingleSpell);

public static float GetHealthSingleAbilityHot(this Job job)
=> Service.Config.GetValue(job, Configuration.JobConfigFloat.HealthSingleAbilityHot);

public static float GetHealthSingleSpellHot(this Job job)
=> Service.Config.GetValue(job, Configuration.JobConfigFloat.HealthSingleSpellHot);

public static float GetHealthForDyingTank(this Job job)
=> Service.Config.GetValue(job, Configuration.JobConfigFloat.HealthForDyingTanks);
}
2 changes: 1 addition & 1 deletion RotationSolver.Basic/Rotations/Basic/DRK_Base.cs
Original file line number Diff line number Diff line change
Expand Up @@ -332,7 +332,7 @@ protected static bool ShadowTimeEndAfterGCD(uint gctCount = 0, float offset = 0)
/// <returns></returns>
protected override bool EmergencyAbility(IAction nextGCD, out IAction act)
{
if (LivingDead.CanUse(out act) && BaseAction.TankBreakOtherCheck(Jobs[0])) return true;
if (LivingDead.CanUse(out act) && BaseAction.CanTankBurst()) return true;
return base.EmergencyAbility(nextGCD, out act);
}

Expand Down
2 changes: 1 addition & 1 deletion RotationSolver.Basic/Rotations/Basic/GNB_Base.cs
Original file line number Diff line number Diff line change
Expand Up @@ -325,7 +325,7 @@ public abstract class GNB_Base : CustomRotation
/// <returns></returns>
protected override bool EmergencyAbility(IAction nextGCD, out IAction act)
{
if (SuperBolide.CanUse(out act) && BaseAction.TankBreakOtherCheck(Jobs[0])) return true;
if (SuperBolide.CanUse(out act) && BaseAction.CanTankBurst()) return true;
return base.EmergencyAbility(nextGCD, out act);
}

Expand Down
8 changes: 4 additions & 4 deletions RotationSolver.Basic/Rotations/Basic/PLD_Base.cs
Original file line number Diff line number Diff line change
Expand Up @@ -321,22 +321,22 @@ public abstract class PLD_Base : CustomRotation
ActionCheck = (b, m) => LimitBreakLevel == 3,
};

/// <inheritdoc//>
/// <inheritdoc/>
protected override bool EmergencyAbility(IAction nextGCD, out IAction act)
{
if (HallowedGround.CanUse(out act) && BaseAction.TankBreakOtherCheck(Jobs[0])) return true;
if (HallowedGround.CanUse(out act) && BaseAction.CanTankBurst()) return true;
return base.EmergencyAbility(nextGCD, out act);
}

/// <inheritdoc//>
/// <inheritdoc/>
[RotationDesc(ActionID.Intervene)]
protected sealed override bool MoveForwardAbility(out IAction act)
{
if (Intervene.CanUse(out act)) return true;
return base.MoveForwardAbility(out act);
}

/// <inheritdoc//>
/// <inheritdoc/>
[RotationDesc(ActionID.Clemency)]
protected sealed override bool HealSingleGCD(out IAction act)
{
Expand Down
2 changes: 1 addition & 1 deletion RotationSolver.Basic/Rotations/Basic/WAR_Base.cs
Original file line number Diff line number Diff line change
Expand Up @@ -375,7 +375,7 @@ public abstract class WAR_Base : CustomRotation
/// <inheritdoc/>
protected override bool EmergencyAbility(IAction nextGCD, out IAction act)
{
if (Holmgang.CanUse(out act) && BaseAction.TankBreakOtherCheck(Jobs[0])) return true;
if (Holmgang.CanUse(out act) && BaseAction.CanTankBurst()) return true;
return base.EmergencyAbility(nextGCD, out act);
}

Expand Down
2 changes: 1 addition & 1 deletion RotationSolver.Basic/Rotations/CustomRotation_Ability.cs
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,7 @@ private bool AutoDefense(JobRole role, bool helpDefenseAOE, bool helpDefenseSing

//A lot targets are targeting on me.
if (tarOnMeCount >= Service.Config.GetValue(PluginConfigInt.AutoDefenseNumber)
&& Player.GetHealthRatio() <= Service.Config.GetValue(DataCenter.Job, JobConfigFloat.HealthForAutoDefense)
&& Player.GetHealthRatio() <= Service.Config.GetValue(JobConfigFloat.HealthForAutoDefense)
&& movingHere && attacked)
{
if (DefenseSingleAbility(out act)) return true;
Expand Down
2 changes: 1 addition & 1 deletion RotationSolver.Basic/Rotations/CustomRotation_Actions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ public override bool CanUse(out IAction act, CanUseOption option = CanUseOption.
public static IBaseAction SecondWind { get; } = new RoleAction(ActionID.SecondWind,
new JobRole[] { JobRole.RangedPhysical, JobRole.Melee }, ActionOption.Heal)
{
ActionCheck = (b, m) => Player?.GetHealthRatio() < Service.Config.GetValue(DataCenter.Job, Configuration.JobConfigFloat.HealthSingleAbility) && InCombat,
ActionCheck = (b, m) => Player?.GetHealthRatio() < Service.Config.GetValue(Configuration.JobConfigFloat.HealthSingleAbility) && InCombat,
};

/// <summary>
Expand Down
21 changes: 11 additions & 10 deletions RotationSolver.Basic/Rotations/CustomRotation_OtherInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
using Dalamud.Plugin.Services;
using ECommons.DalamudServices;
using FFXIVClientStructs.FFXIV.Client.Game.UI;
using RotationSolver.Basic.Configuration;

namespace RotationSolver.Basic.Rotations;
public abstract partial class CustomRotation
Expand Down Expand Up @@ -567,51 +568,51 @@ protected static float GCDTime(uint gcdCount = 0, float offset = 0)
/// <summary>
/// The count down ahead.
/// </summary>
public static float CountDownAhead => Service.Config.GetValue(Configuration.PluginConfigFloat.CountDownAhead);
public static float CountDownAhead => Service.Config.GetValue(PluginConfigFloat.CountDownAhead);

/// <summary>
///
/// </summary>
public float HealthAreaAbility => Jobs.FirstOrDefault().GetHealthAreaAbility();
public static float HealthAreaAbility => Service.Config.GetValue(JobConfigFloat.HealthAreaAbility);

/// <summary>
///
/// </summary>
public float HealthAreaSpell => Jobs.FirstOrDefault().GetHealthAreaSpell();
public static float HealthAreaSpell => Service.Config.GetValue(JobConfigFloat.HealthAreaSpell);

/// <summary>
///
/// </summary>
public float HealthAreaAbilityHot => Jobs.FirstOrDefault().GetHealthAreaAbilityHot();
public static float HealthAreaAbilityHot => Service.Config.GetValue(JobConfigFloat.HealthAreaAbilityHot);

/// <summary>
///
/// </summary>
public float HealthAreaSpellHot => Jobs.FirstOrDefault().GetHealthAreaSpellHot();
public static float HealthAreaSpellHot => Service.Config.GetValue(JobConfigFloat.HealthAreaSpellHot);

/// <summary>
///
/// </summary>
public float HealthSingleAbility => Jobs.FirstOrDefault().GetHealthSingleAbility();
public static float HealthSingleAbility => Service.Config.GetValue(JobConfigFloat.HealthSingleAbility);

/// <summary>
///
/// </summary>
public float HealthSingleSpell => Jobs.FirstOrDefault().GetHealthSingleSpell();
public static float HealthSingleSpell => Service.Config.GetValue(JobConfigFloat.HealthSingleSpell);

/// <summary>
///
/// </summary>
public float HealthSingleAbilityHot => Jobs.FirstOrDefault().GetHealthSingleAbilityHot();
public static float HealthSingleAbilityHot => Service.Config.GetValue(JobConfigFloat.HealthSingleAbilityHot);

/// <summary>
///
/// </summary>
public float HealthSingleSpellHot => Jobs.FirstOrDefault().GetHealthSingleSpellHot();
public static float HealthSingleSpellHot => Service.Config.GetValue(JobConfigFloat.HealthSingleSpellHot);

/// <summary>
///
/// </summary>
public float HealthForDyingTanksDefault => Jobs.FirstOrDefault().GetHealthForDyingTank();
public static float HealthForDyingTanks => Service.Config.GetValue(Configuration.JobConfigFloat.HealthForDyingTanks);
#endregion
}
9 changes: 4 additions & 5 deletions RotationSolver/Commands/RSCommands_OtherCommand.cs
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@ private static void DoOtherCommand(OtherCommandType otherType, string str)

private static void DoSettingCommand(string str)
{
var job = DataCenter.Job;
var strs = str.Split(' ');
var value = strs.LastOrDefault();
if (TryGetOneEnum<PluginConfigBool>(str, out var b))
Expand All @@ -60,14 +59,14 @@ private static void DoSettingCommand(string str)
}
else if (TryGetOneEnum<JobConfigFloat>(str, out var f2) && float.TryParse(value, out f1))
{
Service.Config.SetValue(job, f2, f1);
value = Service.Config.GetValue(job, f2).ToString();
Service.Config.SetValue(f2, f1);
value = Service.Config.GetValue(f2).ToString();

}
else if (TryGetOneEnum<JobConfigInt>(str, out var i2) && int.TryParse(value, out i1))
{
Service.Config.SetValue(job, i2, i1);
value = Service.Config.GetValue(job, i2).ToString();
Service.Config.SetValue(i2, i1);
value = Service.Config.GetValue(i2).ToString();
}
else
{
Expand Down
2 changes: 1 addition & 1 deletion RotationSolver/Localization/Strings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -497,7 +497,7 @@ internal class Strings
{ nameof(CustomRotation.HealthSingleSpell), "Health of single spell"},
{ nameof(CustomRotation.HealthSingleAbilityHot), "Health of single ability Hot"},
{ nameof(CustomRotation.HealthSingleSpellHot), "Health of single spell Hot"},
{ nameof(CustomRotation.HealthForDyingTanksDefault), "Health of dying tank"},
{ nameof(CustomRotation.HealthForDyingTanks), "Health of dying tank"},

{ nameof(CustomRotation.IsValid), "Is this rotation valid"},
{ nameof(CustomRotation.ShowStatus), "Show the status"},
Expand Down
16 changes: 7 additions & 9 deletions RotationSolver/UI/RotationConfigWindow.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
using FFXIVClientStructs.FFXIV.Client.Game.Fate;
using FFXIVClientStructs.FFXIV.Common.Component.BGCollision;
using Lumina.Excel.GeneratedSheets;
using Newtonsoft.Json.Linq;
using RotationSolver.Basic.Configuration;
using RotationSolver.Data;
using RotationSolver.Helpers;
Expand All @@ -29,7 +28,6 @@ namespace RotationSolver.UI;
public partial class RotationConfigWindow : Window
{
private static float Scale => ImGuiHelpers.GlobalScale;
private static Job Job => DataCenter.Job;

private RotationConfigWindowTab _activeTab;

Expand Down Expand Up @@ -494,11 +492,11 @@ private static void DrawRotationCombo(float comboSize, ICustomRotation[] rotatio
{
if( DataCenter.Territory?.IsPvpZone ?? false)
{
Service.Config.GetJobConfig(Job).PvPRotationChoice = r.GetType().FullName;
Service.Config.GetJobConfig(DataCenter.Job).PvPRotationChoice = r.GetType().FullName;
}
else
{
Service.Config.GetJobConfig(Job).RotationChoice = r.GetType().FullName;
Service.Config.GetJobConfig(DataCenter.Job).RotationChoice = r.GetType().FullName;
}
Service.Config.Save();
}
Expand Down Expand Up @@ -536,7 +534,7 @@ private void DrawBody()

foreach (var searchable in _searchResults)
{
searchable?.Draw(Job);
searchable?.Draw();
}
}
else
Expand Down Expand Up @@ -1573,8 +1571,8 @@ private static void DrawRotations()

private static void DrawRotationsSettings()
{
_updateRotation?.Draw(Job);
_autoLoadRotations?.Draw(Job);
_updateRotation?.Draw();
_autoLoadRotations?.Draw();
}

private static void DrawRotationsLoaded()
Expand Down Expand Up @@ -2046,7 +2044,7 @@ private static void DrawListActions()
ImGui.TableNextColumn();
foreach (var searchable in _listSearchable)
{
searchable?.Draw(Job);
searchable?.Draw();
}
ImGui.TextWrapped(LocalizationManager.RightLang.ConfigWindow_List_HostileCastingAreaDesc);

Expand Down Expand Up @@ -2304,7 +2302,7 @@ private static void DrawDebug()
{
foreach (var searchable in _debugSearchable)
{
searchable?.Draw(Job);
searchable?.Draw();
}

if (!Player.Available || !Service.Config.GetValue(PluginConfigBool.InDebug)) return;
Expand Down
Loading

0 comments on commit 156b2ec

Please sign in to comment.