hch
2026-01-09 75da4da96e33133f45253f64261dc4489cf03db4
266 【内政】古宝系统
2个文件已修改
85 ■■■■ 已修改文件
Main/System/Gubao/GubaoCallCell.cs 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Gubao/GubaoCallWin.cs 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Gubao/GubaoCallCell.cs
@@ -40,6 +40,7 @@
            canImage.SetActive(false);
            rotationTween.Stop();
            openEffect.Stop();
            showEffect.effectId = GetShowEffectID(result.itemId, result.count);
            showEffect.PlayByArrIndex(Math.Max(itemCfg.ItemColor - 1, 0));
            itemIcon.SetActive(true);
            itemName.SetActive(true);
@@ -50,7 +51,7 @@
            itemName.text = itemCfg.ItemName;
            itemName.color = UIHelper.GetFuncQualityColor(itemCfg.ItemColor);
            cntText.text = "x" + result.count.ToString();
            if (gbCfg == null)
            {
                pieceImg.SetActive(false);
@@ -63,7 +64,7 @@
                {
                    newImg.SetActive(false);
                }
                else if (VirtualPackManager.Instance.GetNoPackItemCount(result.itemId) < gbCfg.UnlockItemCnt)
                else if (result.count >= gbCfg.UnlockItemCnt && VirtualPackManager.Instance.GetNoPackItemCount(result.itemId) < gbCfg.UnlockItemCnt * 2)
                {
                    newImg.SetActive(true);
                }
@@ -103,6 +104,7 @@
        await UniTask.Delay(200);
        canImage.SetActive(false);
        await UniTask.Delay(400);
        showEffect.effectId = GetShowEffectID(result.itemId, result.count);
        showEffect.PlayByArrIndex(Math.Max(itemCfg.ItemColor - 1, 0));
        itemIcon.SetActive(true);
        itemName.SetActive(true);
@@ -124,7 +126,7 @@
            {
                newImg.SetActive(false);
            }
            else if (VirtualPackManager.Instance.GetNoPackItemCount(result.itemId) < gbCfg.UnlockItemCnt)
            else if (result.count >= gbCfg.UnlockItemCnt && VirtualPackManager.Instance.GetNoPackItemCount(result.itemId) < gbCfg.UnlockItemCnt * 2)
            {
                newImg.SetActive(true);
            }
@@ -137,4 +139,17 @@
    }
    int GetShowEffectID(int itemID, int cnt)
    {
        var config = GubaoConfig.Get(itemID);
        if (config == null)
        {
            return 1095;
        }
        if (cnt >= config.UnlockItemCnt)
        {
            return 1094;
        }
        return 1095;
    }
}
Main/System/Gubao/GubaoCallWin.cs
@@ -64,7 +64,7 @@
            }
            opObj.SetActive(true);
            resultObj.SetActive(false);
            ShowVenderTalk(0);
            ShowVenderTalk(0).Forget();
        });
    }
@@ -73,12 +73,11 @@
    {
        HappyXBModel.Instance.RefreshXBTypeInfoAct += Display;
        HappyXBModel.Instance.RefreshXBResultAct += ShowResult;
        // GubaoManager.Instance.clickCallEvent += clickCallEvent;
        skipToggle.isOn = LocalSave.GetBool(GubaoManager.skipKey + PlayerDatas.Instance.baseData.PlayerID, false);
        opObj.SetActive(true);
        resultObj.SetActive(false);
        ShowVenderTalk(0);
        ShowVenderTalk(0).Forget();
        Display();
    }
@@ -86,35 +85,40 @@
    {
        HappyXBModel.Instance.RefreshXBTypeInfoAct -= Display;
        HappyXBModel.Instance.RefreshXBResultAct -= ShowResult;
        // GubaoManager.Instance.clickCallEvent -= clickCallEvent;
    }
    //优先古宝表现
    void ShowVenderTalk(int quality)
    async UniTask ShowVenderTalk(int quality, float delay=0)
    {
        if (quality == 0)
        {
            var random = Random.Range(1, GubaoManager.Instance.maxIdleTalk + 1);
            talkText.text = Language.Get("GubaoIdleTalk" + random);
            roleModel.Play(0);
            return;
        }
        await UniTask.Delay((int)(delay*1000*0.6));
        if (quality >= 10)
        {
            //物品品质
            quality = quality / 10;
            talkText.text = Language.Get("GubaoResultTalkItem" + quality);
            roleModel.Play(GubaoManager.Instance.emojiItemDict[quality]);
        }
        else
        {
            if (quality >= 10)
            {
                //物品品质
                quality = quality / 10;
                talkText.text = Language.Get( "GubaoResultTalkItem" + quality);
                roleModel.Play(GubaoManager.Instance.emojiItemDict[quality]);
            }
            else
            {
                talkText.text = Language.Get( "GubaoResultTalkGB" + quality);
                roleModel.Play(GubaoManager.Instance.emojiGBDict[quality]);
            }
            talkText.text = Language.Get("GubaoResultTalkGB" + quality);
            roleModel.Play(GubaoManager.Instance.emojiGBDict[quality]);
        }
        await UniTask.Delay((int)(delay*1000*0.4));
        if (delay != 0)
        {
            opObj.SetActive(true);
        }
    }
    public void Display()
@@ -159,17 +163,10 @@
    {
        //每秒触发一次
        cdTime += Time.deltaTime;
        if (cdTime < 0.5) return;
        if (cdTime < 1) return;
        cdTime = 0;
        RefreshFreeTime();
        if (resultObj.gameObject.activeSelf && !opObj.gameObject.activeSelf)
        {
            if (Time.time - showResultTime > showCD)
            {
                opObj.SetActive(true);
                ShowVenderTalk(GetResultQuality());
            }
        }
    }
    //区分物品品质*10 和 古宝品质
@@ -269,23 +266,16 @@
        if (isSkip)
        {
            ShowVenderTalk(GetResultQuality());
            ShowVenderTalk(GetResultQuality()).Forget();
        }
        else
        {
            opObj.SetActive(false);
            ShowVenderTalk(0);
            ShowVenderTalk(0).Forget();
            ShowVenderTalk(GetResultQuality(), showCD).Forget();
        }
    }
    // void clickCallEvent()
    // {
    //     if (!skipToggle.isOn)
    //     {
    //         showResultTime = Time.time + 2; //预设延迟2秒等服务端
    //         opObj.SetActive(false);
    //     }
    // }
    void ShowRate()
    {