fix(huoshan): 优化攻击段愤怒红屏反馈
This commit is contained in:
@@ -45,5 +45,5 @@ Material:
|
||||
m_Colors:
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _PhosphorColor: {r: 0.44716978, g: 1, b: 0.74689186, a: 1}
|
||||
- _RageColor: {r: 0.44716978, g: 1, b: 0.74689186, a: 1}
|
||||
- _RageColor: {r: 1, g: 0.1882353, b: 0.3019608, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
|
||||
@@ -106,6 +106,11 @@ namespace AibisDream.MiniGame.Language
|
||||
[SerializeField] private Color lieBackdropColor = new Color(0.02f, 0.05f, 0.09f, 0.82f);
|
||||
[Tooltip("梳理完成后目标粒子与真话字的颜色;玩法阶段仍用粒子管理器原色。")]
|
||||
[SerializeField] private Color presentationResolvedColor = Color.white;
|
||||
[Header("Truth Attack")]
|
||||
[Tooltip("攻击词命中时覆盖记忆层的瞬时怒火色。使用深红而非粉红,避免与攻击文字争夺可读性。")]
|
||||
[SerializeField] private Color truthAttackFlashColor = new Color(0.48f, 0.01f, 0.025f, 1f);
|
||||
[Tooltip("攻击强度从 0 到 1 时,整屏红色冲击的透明度范围。")]
|
||||
[SerializeField] private Vector2 truthAttackFlashAlpha = new Vector2(0.14f, 0.40f);
|
||||
[SerializeField] private int screenGlowSortingOrder = 8;
|
||||
[SerializeField] private int screenTextSortingOrder = 18;
|
||||
|
||||
@@ -1436,6 +1441,13 @@ namespace AibisDream.MiniGame.Language
|
||||
PlayMemoryTear(
|
||||
Mathf.Lerp(0.08f, 0.58f, resolvedImpact),
|
||||
Mathf.Lerp(0.14f, 0.36f, resolvedImpact));
|
||||
PulseTruthAttackFlash(
|
||||
Mathf.Lerp(
|
||||
truthAttackFlashAlpha.x,
|
||||
truthAttackFlashAlpha.y,
|
||||
resolvedImpact),
|
||||
Mathf.Lerp(0.035f, 0.018f, resolvedImpact),
|
||||
Mathf.Lerp(0.18f, 0.30f, resolvedImpact));
|
||||
|
||||
if (particleManager != null)
|
||||
yield return particleManager.PlayTruthAttackAndWait(text, duration, resolvedImpact);
|
||||
@@ -2668,6 +2680,30 @@ namespace AibisDream.MiniGame.Language
|
||||
sequence.OnComplete(StopScreenDim);
|
||||
}
|
||||
|
||||
private void PulseTruthAttackFlash(float alpha, float riseDuration, float fallDuration)
|
||||
{
|
||||
if (screenDimRenderer == null)
|
||||
return;
|
||||
|
||||
screenDimRenderer.DOKill();
|
||||
screenDimRenderer.enabled = true;
|
||||
screenDimRenderer.gameObject.SetActive(true);
|
||||
screenDimRenderer.color = new Color(
|
||||
truthAttackFlashColor.r,
|
||||
truthAttackFlashColor.g,
|
||||
truthAttackFlashColor.b,
|
||||
0f);
|
||||
|
||||
Sequence sequence = DOTween.Sequence().SetTarget(this);
|
||||
sequence.Append(screenDimRenderer.DOFade(
|
||||
Mathf.Clamp01(alpha),
|
||||
Mathf.Max(0.01f, riseDuration)));
|
||||
sequence.Append(screenDimRenderer.DOFade(
|
||||
0f,
|
||||
Mathf.Max(0.01f, fallDuration)));
|
||||
sequence.OnComplete(StopScreenDim);
|
||||
}
|
||||
|
||||
private void HoldTruthBreakBlackout(float alpha)
|
||||
{
|
||||
if (screenDimRenderer == null)
|
||||
|
||||
Reference in New Issue
Block a user