47 lines
1.2 KiB
C#
47 lines
1.2 KiB
C#
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;
|
|
}
|
|
}
|