hch
2025-09-04 23642e28c8c2269524bd6816d93bd4b137f44baf
153 【武将】招募系统 - 单抽弹立绘,品质配置决定
2个文件已修改
64 ■■■■ 已修改文件
Main/System/HappyXB/HappyXBModel.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/HappyXB/HeroCallResultWin.cs 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/HappyXB/HappyXBModel.cs
@@ -39,6 +39,8 @@
    }  
    private Dictionary<int, XBTypeInfo> xbTypeInfoDict = new Dictionary<int, XBTypeInfo>(); //抽奖状态相关的 服务器记录
    public int lhQuality;
    public override void Init()
    {
        DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += OnBeforePlayerDataInitialize;
@@ -67,6 +69,9 @@
            xbTypeItemDict[list[i].TreasureType].Add(list[i]);
        }
        var config = FuncConfigConfig.Get("HeroCall");
        lhQuality = int.Parse(config.Numerical1);
    }
    public override void Release()
Main/System/HappyXB/HeroCallResultWin.cs
@@ -1,3 +1,4 @@
using System;
using System.Collections;
using System.Collections.Generic;
using Cysharp.Threading.Tasks;
@@ -43,7 +44,15 @@
    [SerializeField] Button okBtn;
    int resultState = 0; //0单抽展示 1十连展示 2 十连开始展示 3 十连立绘展示
    public enum ResultState
    {
        single = 0, //单抽展示
        singleStart = 1,    //单抽展示开始
        ten = 2,    //十连展示
        tenStart = 3,   //十连开始展示
        Lihui = 4,  //立绘展示
    }
    ResultState resultState = ResultState.single;
    bool isSkip = false;
    List<int> showLHHeroIDList = new List<int>();
@@ -78,37 +87,36 @@
        HappyXBModel.Instance.RefreshXBTypeInfoAct -= RefreshBtn;
    }
    void UpdateState()
    {
        if (HeroUIManager.Instance.selectCallIndex == 0)
        if (isSkip)
        {
            resultState = 0;
        }
        else if (isSkip)
        {
            resultState = 1;
            resultState = HeroUIManager.Instance.selectCallIndex == 0 ? ResultState.single : ResultState.ten;
            RefreshState();
        }
        else
        {
            resultState = 2;
            resultState = HeroUIManager.Instance.selectCallIndex == 0 ? ResultState.singleStart : ResultState.tenStart;
            RefreshState();
            MoveToNextState().Forget();
        }
        RefreshState();
    }
    async UniTask MoveToNextState()
    {
        await UniTask.Delay(1500);
        showLHHeroIDList.Clear();
        for (int i = 0; i < HappyXBModel.Instance.xbResultDict.Count; i++)
        {
            var heroID = HappyXBModel.Instance.xbResultDict[i].itemId;
            if (HeroConfig.Get(heroID).Quality >= 4)
            if (HeroConfig.Get(heroID).Quality >= HappyXBModel.Instance.lhQuality)
                showLHHeroIDList.Add(HappyXBModel.Instance.xbResultDict[i].itemId);
        }
        resultState = 3;
        await UniTask.Delay(resultState == ResultState.singleStart ? 800 : 1500);
        resultState = ResultState.Lihui;
        try
        {
            RefreshState();
@@ -121,7 +129,7 @@
    void RefreshState()
    {
        if (resultState == 0)
        if (resultState == ResultState.single)
        {
            btnsObj.SetActive(true);
            call1Btn.SetActive(HeroUIManager.Instance.selectCallType != HappXBTitle.HeroCallScore ? true : false);
@@ -133,10 +141,23 @@
            ShowMoney(true);
            heroInfoObj.SetActive(true);
            result1Cell.Display(HappyXBModel.Instance.xbResultDict[0].itemId, 0);
            if (isSkip)
                result1Cell.Display(HappyXBModel.Instance.xbResultDict[0].itemId, 0, true);
            RefreshHeroInfo(HappyXBModel.Instance.xbResultDict[0].itemId);
        }
        else if (resultState == 1)
        else if (resultState == ResultState.singleStart)
        {
            btnsObj.SetActive(false);
            result1Obj.SetActive(true);
            result10Obj.SetActive(false);
            result10LihuiObj.SetActive(false);
            ShowMoney(false);
            heroInfoObj.SetActive(false);
            result1Cell.Display(HappyXBModel.Instance.xbResultDict[0].itemId, 0);
        }
        else if (resultState == ResultState.ten)
        {
            btnsObj.SetActive(true);
            call1Btn.SetActive(false);
@@ -150,7 +171,7 @@
            if (isSkip)
                Refresh10Result();
        }
        else if (resultState == 2)
        else if (resultState == ResultState.tenStart)
        {
            btnsObj.SetActive(false);
@@ -161,7 +182,7 @@
            heroInfoObj.SetActive(false);
            Refresh10Result();
        }
        else if (resultState == 3)
        else if (resultState == ResultState.Lihui)
        {
            btnsObj.SetActive(false);
@@ -260,7 +281,7 @@
        }
        else
        {
            resultState = 1;
            resultState = HeroUIManager.Instance.selectCallIndex == 0 ? ResultState.single : ResultState.ten;
            RefreshState();
            return;
        }