diff --git a/Interface/Base/IGamingQueue.cs b/Interface/Base/IGamingQueue.cs
index 14e5ca4..bca61f3 100644
--- a/Interface/Base/IGamingQueue.cs
+++ b/Interface/Base/IGamingQueue.cs
@@ -179,7 +179,8 @@ namespace Milimoe.FunGame.Core.Interface.Base
///
/// 角色
/// 加值
+ /// 是否是百分比
/// 是否使用插队保护机制
- public void ChangeCharacterHardnessTime(Character character, double addValue, bool isCheckProtected);
+ public void ChangeCharacterHardnessTime(Character character, double addValue, bool isPercentage, bool isCheckProtected);
}
}
diff --git a/Model/ActionQueue.cs b/Model/ActionQueue.cs
index a6cc764..9584a35 100644
--- a/Model/ActionQueue.cs
+++ b/Model/ActionQueue.cs
@@ -2761,10 +2761,15 @@ namespace Milimoe.FunGame.Core.Model
///
/// 角色
/// 加值
+ /// 是否是百分比
/// 是否使用插队保护机制
- public void ChangeCharacterHardnessTime(Character character, double addValue, bool isCheckProtected)
+ public void ChangeCharacterHardnessTime(Character character, double addValue, bool isPercentage, bool isCheckProtected)
{
double hardnessTime = _hardnessTimes[character];
+ if (isPercentage)
+ {
+ addValue = hardnessTime * addValue;
+ }
hardnessTime += addValue;
if (hardnessTime <= 0) hardnessTime = 0;
_queue.Remove(character);