Files
5.24BuYu/Assets/MyGame/aa/Game/FLZY/BOSS/BJBeishuEvent.cs
T
2026-08-25 17:00:03 +08:00

71 lines
3.0 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using System;
using System.Collections;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
/// <summary>
/// 倍数爆奖二层基类(分 n 次加爆奖倍数)。
/// 与积分型 BJRedPacketEvent 对称:积分走"红包 + 分数面板 + 滚分",倍数走"累计倍数 + 结算"。
///
/// 提供倍数型子类共用能力:
/// beishu/beishu_UGUI(累计倍数)、beishunum(累计值)
/// chengshu/chengshu_UGUI(底分成数)、xiaoGuo_Effect/xiaoGuo_UGUI(本轮加成倍数)
/// 每个显示项都支持两种文本组件:TextMeshProUGUI 或 UnityEngine.UI.Text,拖哪个就用哪个
/// SetBeiShu(更新累计倍数,子类可 override 加滚动动画)
/// EndBJ(统一结算入口)→ OnScoreEnd(JiaFen + BJEndUI + die)
///
/// 子类职责:实现倍数玩法(转盘/翻牌/Timeline 轮次……),
/// 写入倍数时用 SetFieldText(...)(TMP 优先、UGUI 兜底),结束调 EndBJ。
/// </summary>
public class BJBeishuEvent : BJRedPacketEvent
{
[Header("倍数显示")]
public TextMeshProUGUI beishu; // 累计倍数显示(TMP)
public Text beishu_UGUI; // 累计倍数显示(UGUI,备用)
public int beishunum; // 累计倍数
public TextMeshProUGUI chengshu; // 底分(成数)显示(TMP)
public Text chengshu_UGUI; // 底分(成数)显示(UGUI,备用)
public TextMeshProUGUI xiaoGuo_Effect; // 本轮效果/加成倍数显示(TMP)
public Text xiaoGuo_UGUI; // 本轮效果/加成倍数显示(UGUI,备用)
[Header("倍数递增动画")]
[Tooltip("累计倍数从旧值滚到新值的时长(不直接跳变)")]
public float beiShuRollDuration = 0.5f;
/// <summary>写文本:优先 TMP,否则用 UGUI(两个字段在同一显示项上二选一拖)</summary>
protected void SetFieldText(TextMeshProUGUI tmp, Text ugui, string value)
{
if (tmp != null) tmp.text = value;
else if (ugui != null) ugui.text = value;
}
/// <summary>
/// 累计倍数递增显示:从 fromRoll 一点一点滚到 beishunum(而非直接等于)。
/// 复用基类 RollNumber,自动停止上一次未完成的滚动。
/// </summary>
protected void RollBeiShu(int fromRoll, float duration = 0f, Action onDone = null)
{
if (duration <= 0f) duration = beiShuRollDuration;
RollNumber(
v => SetFieldText(beishu, beishu_UGUI, v.ToString()),
fromRoll, beishunum, duration, onDone);
}
/// <summary>更新累计倍数显示(子类可 override 加滚动动画,如 FLXJEvent)</summary>
public virtual void SetBeiShu()
{
SetFieldText(beishu, beishu_UGUI, beishunum.ToString());
}
/// <summary>结束爆奖:走基类统一结算(JiaFen + BJEndUI + die)</summary>
public void EndBJ()
{
GameManager.Instance.StartCoroutine(yanchi());
}
IEnumerator yanchi()
{
yield return new WaitForSeconds(1f);
OnScoreEnd();
}
}