lcy
2026-06-10 82e8a3f6ff7aaec06d1b60463a545a8bb031f546
Main/System/GuildAtkDefBat/GuildAtkDefBatManager.cs
@@ -476,7 +476,7 @@
    public void ClearMainRedpoint()
    {
        hasShowedMainRedpoint = true;
        mainRedpoint.state = RedPointState.None;
        UpdateRedpoint();
    }
    private bool HasShopFreeItem()
@@ -761,8 +761,8 @@
    /// <summary>宝库奖励类型ID (对应CA504的RewardType)</summary>
    public const byte TREASURE_REWARD_TYPE = 11;
    /// <summary>缓存格子开启记录: Key=格子编号(1~n), Value=AwardID</summary>
    public Dictionary<int, int> treasureGridRecords = new Dictionary<int, int>();
    /// <summary>缓存格子开启记录: Key=格子编号(1~n), Value=开启记录</summary>
    public Dictionary<int, GuildAtkDefBatTreasureRecord> treasureGridRecords = new Dictionary<int, GuildAtkDefBatTreasureRecord>();
    /// <summary>标记宝库窗口是否打开,用于收到A525时自动刷新</summary>
    public bool isTreasureWinOpen = false;
@@ -787,17 +787,22 @@
        {
            if (mem.GridNum > 0)
            {
                treasureGridRecords[mem.GridNum] = mem.AwardID;
                treasureGridRecords[mem.GridNum] = new GuildAtkDefBatTreasureRecord
                {
                    AwardID = mem.AwardID,
                    PlayerName = UIHelper.ServerStringTrim(mem.Name),
                };
            }
        }
        if (isTreasureWinOpen)
        {
            int openGrid = pendingOpenGridIndex;
            if (openGrid > 0 && treasureGridRecords.TryGetValue(openGrid, out var awardID))
            GuildAtkDefBatTreasureRecord treasureRecord;
            if (openGrid > 0 && treasureGridRecords.TryGetValue(openGrid, out treasureRecord))
            {
                pendingOpenGridIndex = 0;
                OnTreasureGridOpenEvent?.Invoke(openGrid, awardID);
                OnTreasureGridOpenEvent?.Invoke(openGrid, treasureRecord.AwardID);
            }
            OnTreasureDataUpdateEvent?.Invoke();
        }
@@ -1010,3 +1015,9 @@
    }
    #endregion
}
public class GuildAtkDefBatTreasureRecord
{
    public int AwardID;
    public string PlayerName;
}