使用新的状态管理方法

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;
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);
}
}
}

View File

@ -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);
}
}
}

View File

@ -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;

View File

@ -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);
}
/// <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")]
public string GetLastLoginTime()