using System; using Newtonsoft.Json; public class EventPartnerStatueBuff { public int? FreeMultiplier { get; set; } = null; public DateTime? PointBonusExpiryTime { get; set; } = null; [JsonIgnore] private EventPartnerStatueArc _arc; public void Init(EventPartnerStatueArc arc) { FreeMultiplier = null; PointBonusExpiryTime = null; _arc = arc; } public void CreateFreeBuff(int multiplier) { FreeMultiplier = multiplier; } public int ConsumeFreeBuff() { if (FreeMultiplier == null) { // Debug.Log("[EventPartner] No free multiplier available."); return -1; } var res = FreeMultiplier.Value; FreeMultiplier = null; return res; } public void CreateMoreBuff() { PointBonusExpiryTime = ZZTimeHelper.UtcNow().AddSeconds(_arc.TableContext.GetBonusBuffData().durationInSeconds); } public float GetMoreBuff() { if (PointBonusExpiryTime == null || PointBonusExpiryTime.Value < ZZTimeHelper.UtcNow()) return 0; return _arc.TableContext.GetBonusBuffData().percentage; } }