From 9d6e228dbae2c9bc9f35b24d53bdd030723b0854 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=8B=E6=B0=B4?= <1123993881@qq.com> Date: Fri, 30 Jun 2023 09:04:17 +0800 Subject: [PATCH] fix: add delay for count down. --- RotationSolver.Basic/Configuration/PluginConfiguration.cs | 8 ++++++-- RotationSolver.Basic/Data/Countdown.cs | 4 +++- RotationSolver/Localization/Strings.cs | 3 ++- RotationSolver/UI/RotationConfigWindow_Param.cs | 4 ++++ 4 files changed, 15 insertions(+), 4 deletions(-) diff --git a/RotationSolver.Basic/Configuration/PluginConfiguration.cs b/RotationSolver.Basic/Configuration/PluginConfiguration.cs index 73db3e0c3..390ad86f3 100644 --- a/RotationSolver.Basic/Configuration/PluginConfiguration.cs +++ b/RotationSolver.Basic/Configuration/PluginConfiguration.cs @@ -134,8 +134,8 @@ public class PluginConfiguration : IPluginConfiguration public float WeaponDelayMin = 0; public float WeaponDelayMax = 0; - public float DeathDelayMin = 0.5f; - public float DeathDelayMax = 1; + public float DeathDelayMin = 1; + public float DeathDelayMax = 1.5f; public float WeakenDelayMin = 0.5f; public float WeakenDelayMax = 1; @@ -145,6 +145,7 @@ public class PluginConfiguration : IPluginConfiguration public float HealDelayMin = 0; public float HealDelayMax = 0; + public float StopCastingDelayMin = 0.5f; public float StopCastingDelayMax = 1; @@ -157,6 +158,9 @@ public class PluginConfiguration : IPluginConfiguration public float ClickingDelayMin = 0.1f; public float ClickingDelayMax = 0.15f; + public float CountdownDelayMin = 0.5f; + public float CountdownDelayMax = 1; + public bool UseWorkTask = true; public bool UseStopCasting = false; diff --git a/RotationSolver.Basic/Data/Countdown.cs b/RotationSolver.Basic/Data/Countdown.cs index 0b7cecb4b..9c2392c48 100644 --- a/RotationSolver.Basic/Data/Countdown.cs +++ b/RotationSolver.Basic/Data/Countdown.cs @@ -13,12 +13,14 @@ public unsafe struct Countdown public static unsafe Countdown* Instance => (Countdown*)Framework.Instance()->GetUiModule()->GetAgentModule()->GetAgentByInternalId(AgentId.CountDownSettingDialog); + static RandomDelay _delay = new RandomDelay(()=>(Service.Config.CountdownDelayMin, Service.Config.CountdownDelayMax)); + public static float TimeRemaining { get { var inst = Instance; - return inst->Active != 0 ? inst->Timer : 0; + return _delay.Delay(inst->Active != 0) ? inst->Timer : 0; } } } diff --git a/RotationSolver/Localization/Strings.cs b/RotationSolver/Localization/Strings.cs index 545d50ac9..a710e0ab5 100644 --- a/RotationSolver/Localization/Strings.cs +++ b/RotationSolver/Localization/Strings.cs @@ -21,7 +21,7 @@ internal partial class Strings public string ConfigWindow_ParamItem { get; set; } = "Param"; public string ConfigWindow_ListItem { get; set; } = "List"; public string ConfigWindow_EventItem { get; set; } = "Event"; - public string ConfigWindow_ActionItem { get; set; } = "Action"; + public string ConfigWindow_ActionItem { get; set; } = "Action Rules"; public string ConfigWindow_ControlItem { get; set; } = "Control"; public string ConfigWindow_HelpItem { get; set; } = "Help"; public string ConfigWindow_ActionItem_Description { get; set; } @@ -125,6 +125,7 @@ internal partial class Strings public string ConfigWindow_Param_HealDelay { get; set; } = "Set the range of random delay for healing people in second."; + public string ConfigWindow_Param_CountdownDelay { get; set; } = "Set the range of random delay for count down in the party."; public string ConfigWindow_Param_NotInCombatDelay { get; set; } = "Set the range of random delay for Not In Combat in second."; public string ConfigWindow_Param_ClickingDelay { get; set; } = "Set the range of random delay for the interval of clicking actions."; diff --git a/RotationSolver/UI/RotationConfigWindow_Param.cs b/RotationSolver/UI/RotationConfigWindow_Param.cs index 5c2492af1..75965ed02 100644 --- a/RotationSolver/UI/RotationConfigWindow_Param.cs +++ b/RotationSolver/UI/RotationConfigWindow_Param.cs @@ -98,6 +98,10 @@ private void DrawParamDelay() ref Service.Config.HealDelayMin, ref Service.Config.HealDelayMax, Service.Default.HealDelayMin, Service.Default.HealDelayMax); + DrawRangedFloat(LocalizationManager.RightLang.ConfigWindow_Param_CountdownDelay, + ref Service.Config.CountdownDelayMin, ref Service.Config.CountdownDelayMax, + Service.Default.CountdownDelayMin, Service.Default.CountdownDelayMax); + DrawRangedFloat(LocalizationManager.RightLang.ConfigWindow_Param_NotInCombatDelay, ref Service.Config.NotInCombatDelayMin, ref Service.Config.NotInCombatDelayMax, Service.Default.NotInCombatDelayMin, Service.Default.NotInCombatDelayMax);