Files
5.24BuYu/Assets/MyGame/aa/UI/Game/DefaultPBBJEvent.cs
T
2026-08-31 16:40:04 +08:00

51 lines
2.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 UnityEngine;
/// <summary>
/// 默认 P(倍数)爆奖事件:n 次爆奖,每次评分一个倍数。
/// 逻辑:
/// 爆奖次数由前端定义(awardCount);
/// 每次自增倍数 = 总倍数(bJbeishu,服务端下发) / 爆奖次数(awardCount)。
/// 流程:
/// Timeline/动画事件每完成一轮调用一次 BeiShuFX():beishunum += (bJbeishu / awardCount),
/// xiaoGuo_Effect 显示本轮自增,beishu 显示累计
/// → 全部轮次走完后 TimeLineEnd()/EndBJ() 结算(保证最终显示总倍数 bJbeishu)。
/// 字段 beishu/beishunum/xiaoGuo_Effect/EndBJ 继承自 BJBeishuEvent。
/// </summary>
public class DefaultPBBJEvent : BJBeishuEvent
{
[Header("爆奖次数(前端定义)")]
[Tooltip("总共爆 n 次,每次评分 = 总倍数 bJbeishu / 爆奖次数")]
public int awardCount = 1;
/// <summary>已触发的爆奖次数</summary>
public int currCount;
public Action jiafenEndAction;
/// <summary>
/// 每次爆奖触发(awardCount 次调用):按"总倍数/次数"自增倍数。
/// xiaoGuo_Effect 显示本轮自增倍数,beishu 从旧值递增到新累计值(不直接跳变)。
/// </summary>
public void BeiShuFX()
{
if (awardCount <= 0) awardCount = 1;
// 每次自增 = 总倍数 / 爆奖次数
int old = beishunum;
int step = Mathf.CeilToInt((float)bJbeishu / awardCount);
beishunum += step;
SetFieldText(xiaoGuo_Effect, xiaoGuo_UGUI, step.ToString());
RollBeiShu(old,0, jiafenEndAction); // 从 old 递增到 beishunum(递增动画,而非直接等于)
currCount++;
}
/// <summary>时间轴/动画事件结束:把累计倍数递增到总倍数后统一结算</summary>
public void TimeLineEnd()
{
// 累计可能因整除有余数而与总倍数不一致,从当前值递增到服务端总倍数后再结算
int old = beishunum;
beishunum = bJbeishu;
RollBeiShu(old, 0f, () => EndBJ());
}
}