hch
2026-01-09 091553a3c15beee2c39136a68724a0d1650ab85c
266 【内政】古宝系统
3个文件已修改
67 ■■■■ 已修改文件
Main/System/Gubao/GubaoCallWin.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Gubao/GubaoManager.cs 44 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/HappyXB/HappyXBModel.cs 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Gubao/GubaoCallWin.cs
@@ -242,6 +242,11 @@
        {
            ShowVenderTalk(GetResultQuality());
        }
        else
        {
            opObj.SetActive(false);
            ShowVenderTalk(0);
        }
    }
    // void clickCallEvent()
Main/System/Gubao/GubaoManager.cs
@@ -10,8 +10,8 @@
{
    //古宝ID:[星级,等级, 特殊层]
    Dictionary<int, GubaoInfo> gubaoDict = new Dictionary<int, GubaoInfo>();
    public  Dictionary<int, long> gubaoAllAttrDict = new Dictionary<int, long>();
    public Dictionary<int, long> gubaoAllAttrDict = new Dictionary<int, long>();
    public event Action UpdateGubaoEvent;
    public int waitActiveGubao;
    public int selectGubao; //从藏宝阁选中
@@ -126,6 +126,7 @@
        }
        UpdateRedpoint();
        RefreshAllAttr();
        GubaoCallRedPoint();
    }
@@ -322,8 +323,8 @@
        {
            if (GetGubaoCntByStar(config.GubaoQuality, starConfig.Condition[1]) < starConfig.Condition[0])
            {
                return false;
            }
                return false;
            }
        }
        if (starConfig.StarUPNeedSelfCnt > 0 &&
@@ -653,7 +654,7 @@
            {
                continue;
            }
            if (gubaoAllAttrDict.ContainsKey(attrCfg.ResonanceAttrIDList[0]))
            {
                gubaoAllAttrDict[attrCfg.ResonanceAttrIDList[0]] += attrCfg.ResonanceAttrValueList[0];
@@ -664,7 +665,7 @@
            }
        }
    }
    public long GetAttrValue(int attrID)
    {
        gubaoAllAttrDict.TryGetValue(attrID, out long value);
@@ -709,7 +710,7 @@
    Redpoint gubaoLVRP = new Redpoint(MainRedDot.RedPoint_GuaBao * 10 + 1, MainRedDot.RedPoint_GuaBao * 100 + 1); //升级
    Redpoint gubaoStarRP = new Redpoint(MainRedDot.RedPoint_GuaBao * 10 + 1, MainRedDot.RedPoint_GuaBao * 100 + 2); //升星
    Redpoint gbCall1RP = new Redpoint(MainRedDot.RedPoint_GuaBao * 10 + 2, (MainRedDot.RedPoint_GuaBao * 10 + 2) * 10 + 1); //1抽
    Redpoint gbCallFreeRP = new Redpoint(MainRedDot.RedPoint_GuaBao * 10 + 2, (MainRedDot.RedPoint_GuaBao * 10 + 2) * 10 + 1); //免费抽
    Redpoint gbCall10RP = new Redpoint(MainRedDot.RedPoint_GuaBao * 10 + 2, (MainRedDot.RedPoint_GuaBao * 10 + 2) * 10 + 2); //10抽
    public void UpdateRedpoint()
    {
@@ -718,7 +719,7 @@
        gubaoStarRP.state = RedPointState.None;
        if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.GuaBao))
            return;
        var keys = GubaoConfig.GetKeys();
        for (int i = 0; i < keys.Count; i++)
        {
@@ -738,9 +739,34 @@
                gubaoStarRP.state = RedPointState.Simple;
            }
        }
    }
    public void GubaoCallRedPoint()
    {
        if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.HappyFindTreasure))
            return;
        if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Hero))
            return;
        // 免费 10连
        gbCallFreeRP.state = RedPointState.None;
        gbCall10RP.state = RedPointState.None;
        if (HappyXBModel.Instance.IsHaveFreeXB((int)HappXBTitle.Gubao))
        {
            gbCallFreeRP.state = PlayerDatas.Instance.baseData.realmLevel >= 1 ?RedPointState.GetReward : RedPointState.Simple;
        }
        if (HappyXBModel.Instance.IsHaveManyXBToolEx((int)HappXBTitle.Gubao, out int xbtoolCnt, out int needtoolCnt, out int needMoney))
        {
            gbCall10RP.state = PlayerDatas.Instance.baseData.realmLevel >= 1 ?RedPointState.GetReward : RedPointState.Simple;
            return;
        }
    }
    #endregion
}
Main/System/HappyXB/HappyXBModel.cs
@@ -99,6 +99,7 @@
    void OnPlayerLoginOk()
    {
        HeroCallRedPoint();
        GubaoManager.Instance.GubaoCallRedPoint();
    }
@@ -633,21 +634,32 @@
    private void UpdateFuncState(int funcId)
    {
        HeroCallRedPoint();
        GubaoManager.Instance.GubaoCallRedPoint();
    }
    private void RefreshXBTool(PackType type, int index, int id)
    {
        if (type != PackType.Item) return;
        if (!CheckIsXBTool(id, (int)HappXBTitle.HeroCallAdvanced))
        if (CheckIsXBTool(id, (int)HappXBTitle.HeroCallAdvanced))
        {
            HeroCallRedPoint();
            return;
        }
        HeroCallRedPoint();
        if (CheckIsXBTool(id, (int)HappXBTitle.Gubao))
        {
            GubaoManager.Instance.GubaoCallRedPoint();
            return;
        }
    }
    void OnDayEvent()
    {
    {
        HeroCallRedPoint();
        GubaoManager.Instance.GubaoCallRedPoint();
    }
    //英雄招募