使用新的状态管理方法

This commit is contained in:
milimoe 2025-04-18 01:10:15 +08:00
parent ef0f870468
commit 3a3477ca6e
Signed by: milimoe
GPG Key ID: 05D280912DA6C69E
4 changed files with 37 additions and 14 deletions

View File

@ -32,15 +32,13 @@ namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects
{ {
if (_durative) RemainDuration = Duration; if (_durative) RemainDuration = Duration;
else RemainDurationTurn = DurationTurn; else RemainDurationTurn = DurationTurn;
character.CharacterEffectStates.Add(this, [CharacterState.SkillRestricted]); AddEffectStatesToCharacter(character, [CharacterState.SkillRestricted]);
character.UpdateCharacterState();
InterruptCasting(character, Source); InterruptCasting(character, Source);
} }
public override void OnEffectLost(Character character) public override void OnEffectLost(Character character)
{ {
character.CharacterEffectStates.Remove(this); RemoveEffectStatesFromCharacter(character);
character.UpdateCharacterState();
} }
} }
} }

View File

@ -32,15 +32,13 @@ namespace Oshima.FunGame.OshimaModules.Effects.PassiveEffects
{ {
if (_durative) RemainDuration = Duration; if (_durative) RemainDuration = Duration;
else RemainDurationTurn = DurationTurn; else RemainDurationTurn = DurationTurn;
character.CharacterEffectStates.Add(this, [CharacterState.NotActionable]); AddEffectStatesToCharacter(character, [CharacterState.NotActionable]);
character.UpdateCharacterState();
InterruptCasting(character, Source); InterruptCasting(character, Source);
} }
public override void OnEffectLost(Character character) public override void OnEffectLost(Character character)
{ {
character.CharacterEffectStates.Remove(this); RemoveEffectStatesFromCharacter(character);
character.UpdateCharacterState();
} }
} }
} }

View File

@ -36,8 +36,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
public override void OnEffectGained(Character character) public override void OnEffectGained(Character character)
{ {
Skill.IsInEffect = true; Skill.IsInEffect = true;
character.CharacterEffectTypes.Add(this, [EffectType.Unselectable]); AddEffectTypeToCharacter(character, [EffectType.Unselectable]);
character.UpdateCharacterState();
character.ExSPD += 100; character.ExSPD += 100;
character.ExCritRate += 0.08; character.ExCritRate += 0.08;
GamingQueue?.InterruptCastingAsync(character); GamingQueue?.InterruptCastingAsync(character);
@ -49,8 +48,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
if (!) if (!)
{ {
// 在没有打出破隐一击的情况下,恢复角色状态 // 在没有打出破隐一击的情况下,恢复角色状态
character.CharacterEffectTypes.Remove(this); RemoveEffectTypesFromCharacter(character);
character.UpdateCharacterState();
} }
character.ExSPD -= 100; character.ExSPD -= 100;
character.ExCritRate -= 0.08; character.ExCritRate -= 0.08;
@ -62,8 +60,7 @@ namespace Oshima.FunGame.OshimaModules.Skills
{ {
= false; = false;
= true; = true;
character.CharacterEffectTypes.Remove(this); RemoveEffectTypesFromCharacter(character);
character.UpdateCharacterState();
double d = ; double d = ;
WriteLine($"[ {character} ] 触发了疾风步破隐一击,获得了 [ {d:0.##} ] 点伤害加成!"); WriteLine($"[ {character} ] 触发了疾风步破隐一击,获得了 [ {d:0.##} ] 点伤害加成!");
return d; return d;

View File

@ -1,4 +1,5 @@
using System.Globalization; using System.Globalization;
using System.Security.Cryptography;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Milimoe.FunGame.Core.Api.Transmittal; using Milimoe.FunGame.Core.Api.Transmittal;
@ -23,6 +24,35 @@ namespace Oshima.FunGame.WebAPI.Controllers
return msg.Encrypt(key); 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);
}
/// <summary>
/// 1: public, 2: private
/// </summary>
/// <returns></returns>
[HttpGet("getxml")]
public string[] GetRSAXMLString()
{
using RSACryptoServiceProvider rsa = new();
return [rsa.ToXmlString(false), rsa.ToXmlString(true)];
}
[HttpGet("getlastlogintime")] [HttpGet("getlastlogintime")]
public string GetLastLoginTime() public string GetLastLoginTime()
{ {