diff --git a/OshimaModules/Effects/PassiveEffects/封技.cs b/OshimaModules/Effects/PassiveEffects/封技.cs
index f071a23..1028b7f 100644
--- a/OshimaModules/Effects/PassiveEffects/封技.cs
+++ b/OshimaModules/Effects/PassiveEffects/封技.cs
@@ -32,15 +32,13 @@ namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects
{
if (_durative) RemainDuration = Duration;
else RemainDurationTurn = DurationTurn;
- character.CharacterEffectStates.Add(this, [CharacterState.SkillRestricted]);
- character.UpdateCharacterState();
+ AddEffectStatesToCharacter(character, [CharacterState.SkillRestricted]);
InterruptCasting(character, Source);
}
public override void OnEffectLost(Character character)
{
- character.CharacterEffectStates.Remove(this);
- character.UpdateCharacterState();
+ RemoveEffectStatesFromCharacter(character);
}
}
}
diff --git a/OshimaModules/Effects/PassiveEffects/眩晕.cs b/OshimaModules/Effects/PassiveEffects/眩晕.cs
index 7b15a65..0c6277c 100644
--- a/OshimaModules/Effects/PassiveEffects/眩晕.cs
+++ b/OshimaModules/Effects/PassiveEffects/眩晕.cs
@@ -32,15 +32,13 @@ namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects
{
if (_durative) RemainDuration = Duration;
else RemainDurationTurn = DurationTurn;
- character.CharacterEffectStates.Add(this, [CharacterState.NotActionable]);
- character.UpdateCharacterState();
+ AddEffectStatesToCharacter(character, [CharacterState.NotActionable]);
InterruptCasting(character, Source);
}
public override void OnEffectLost(Character character)
{
- character.CharacterEffectStates.Remove(this);
- character.UpdateCharacterState();
+ RemoveEffectStatesFromCharacter(character);
}
}
}
diff --git a/OshimaModules/Skills/战技/疾风步.cs b/OshimaModules/Skills/战技/疾风步.cs
index d4cbb22..3abb90d 100644
--- a/OshimaModules/Skills/战技/疾风步.cs
+++ b/OshimaModules/Skills/战技/疾风步.cs
@@ -36,8 +36,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override void OnEffectGained(Character character)
{
Skill.IsInEffect = true;
- character.CharacterEffectTypes.Add(this, [EffectType.Unselectable]);
- character.UpdateCharacterState();
+ AddEffectTypeToCharacter(character, [EffectType.Unselectable]);
character.ExSPD += 100;
character.ExCritRate += 0.08;
GamingQueue?.InterruptCastingAsync(character);
@@ -49,8 +48,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
if (!破隐一击)
{
// 在没有打出破隐一击的情况下,恢复角色状态
- character.CharacterEffectTypes.Remove(this);
- character.UpdateCharacterState();
+ RemoveEffectTypesFromCharacter(character);
}
character.ExSPD -= 100;
character.ExCritRate -= 0.08;
@@ -62,8 +60,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
{
首次伤害 = false;
破隐一击 = true;
- character.CharacterEffectTypes.Remove(this);
- character.UpdateCharacterState();
+ RemoveEffectTypesFromCharacter(character);
double d = 伤害加成;
WriteLine($"[ {character} ] 触发了疾风步破隐一击,获得了 [ {d:0.##} ] 点伤害加成!");
return d;
diff --git a/OshimaWebAPI/Controllers/TestController.cs b/OshimaWebAPI/Controllers/TestController.cs
index 2601438..e2dca23 100644
--- a/OshimaWebAPI/Controllers/TestController.cs
+++ b/OshimaWebAPI/Controllers/TestController.cs
@@ -1,4 +1,5 @@
using System.Globalization;
+using System.Security.Cryptography;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using Milimoe.FunGame.Core.Api.Transmittal;
@@ -22,6 +23,35 @@ namespace Oshima.FunGame.WebAPI.Controllers
{
return msg.Encrypt(key);
}
+
+ [HttpGet("gethmacsha256")]
+ public string UseHMACSHA256(string msg, string key)
+ {
+ return Encryption.HmacSha256(msg, key);
+ }
+
+ [HttpGet("getrsa")]
+ public string GetRSA(string msg, string key)
+ {
+ return Encryption.RSADecrypt(msg, key);
+ }
+
+ [HttpGet("setrsa")]
+ public string SetRSA(string msg, string key)
+ {
+ return Encryption.RSAEncrypt(msg, key);
+ }
+
+ ///
+ /// 1: public, 2: private
+ ///
+ ///
+ [HttpGet("getxml")]
+ public string[] GetRSAXMLString()
+ {
+ using RSACryptoServiceProvider rsa = new();
+ return [rsa.ToXmlString(false), rsa.ToXmlString(true)];
+ }
[HttpGet("getlastlogintime")]
public string GetLastLoginTime()