feat(expression): 表达系统目标/非目标解绑与干扰短句逻辑

Made-with: Cursor
This commit is contained in:
2026-03-11 20:11:52 +08:00
parent f04c02337d
commit 725c841895
6 changed files with 237 additions and 48 deletions
@@ -8,10 +8,10 @@ namespace AibisDream.MiniGame.Language
/// </summary>
public class CandidateParticle : TextParticle
{
[Header("粒子状态")]
public bool isRed = false; // 是否是红色目标粒子
[Header("粒子状态(目标/非目标,颜色由 Manager 配置,可与红蓝解绑)")]
public bool isRed = false; // 当前是否为目标粒子(用于颜色/样式,可配成蓝)
public bool isOrange = false; // 是否受到效果影响(橙色)
public bool originalIsRed = false; // 原始是否为红色
public bool originalIsRed = false; // 原始是否为目标粒子(不变,用于字符逻辑)
public bool hasEffect = false; // 是否有效果
public bool isTemporaryRed = false; // 临时红色状态
@@ -190,6 +190,20 @@ namespace AibisDream.MiniGame.Language
}
}
/// <summary>
/// 目标粒子:chineseChars 随机单字;非目标粒子:从笑话/干扰短句字符中随机。
/// 使用 IsTarget 判断,与红蓝颜色解绑。
/// </summary>
protected override string GetNextDisplayChar()
{
return IsTarget ? GetRandomChar() : GetRandomCharFromPhrases();
}
/// <summary>
/// 是否为目标粒子(由 originalIsRed 表示,与显示颜色解绑)
/// </summary>
private bool IsTarget => originalIsRed;
public void InitializeAnxietyEffect()
{
anxietyShakePhase = Random.Range(0f, Mathf.PI * 2f);