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()