Core/Players: Several currency fixes and improvements
Port From (https://github.com/TrinityCore/TrinityCore/commit/03918978c166c9fb191117a0cae9ba1285bf0e37)
This commit is contained in:
@@ -538,6 +538,60 @@ namespace Game.DataStorage
|
||||
public uint RechargingAmountPerCycle;
|
||||
public uint RechargingCycleDurationMS;
|
||||
public int[] Flags = new int[2];
|
||||
|
||||
public CurrencyTypesFlags GetFlags() { return (CurrencyTypesFlags)Flags[0]; }
|
||||
public CurrencyTypesFlagsB GetFlagsB() { return (CurrencyTypesFlagsB)Flags[1]; }
|
||||
|
||||
// Helpers
|
||||
public int GetScaler()
|
||||
{
|
||||
return GetFlags().HasFlag(CurrencyTypesFlags._100_Scaler) ? 100 : 1;
|
||||
}
|
||||
|
||||
public bool HasMaxEarnablePerWeek()
|
||||
{
|
||||
return MaxEarnablePerWeek != 0 || GetFlags().HasFlag(CurrencyTypesFlags.ComputedWeeklyMaximum);
|
||||
}
|
||||
|
||||
public bool HasMaxQuantity(bool onLoad = false, bool onUpdateVersion = false)
|
||||
{
|
||||
if (onLoad && GetFlags().HasFlag(CurrencyTypesFlags.IgnoreMaxQtyOnLoad))
|
||||
return false;
|
||||
|
||||
if (onUpdateVersion && GetFlags().HasFlag(CurrencyTypesFlags.UpdateVersionIgnoreMax))
|
||||
return false;
|
||||
|
||||
return MaxQty != 0 || MaxQtyWorldStateID != 0 || GetFlags().HasFlag(CurrencyTypesFlags.DynamicMaximum);
|
||||
}
|
||||
|
||||
public bool HasTotalEarned()
|
||||
{
|
||||
return GetFlagsB().HasFlag(CurrencyTypesFlagsB.UseTotalEarnedForEarned);
|
||||
}
|
||||
|
||||
public bool IsAlliance()
|
||||
{
|
||||
return GetFlags().HasFlag(CurrencyTypesFlags.IsAllianceOnly);
|
||||
}
|
||||
|
||||
public bool IsHorde()
|
||||
{
|
||||
return GetFlags().HasFlag(CurrencyTypesFlags.IsHordeOnly);
|
||||
}
|
||||
|
||||
public bool IsSuppressingChatLog(bool onUpdateVersion = false)
|
||||
{
|
||||
if ((onUpdateVersion && GetFlags().HasFlag(CurrencyTypesFlags.SuppressChatMessageOnVersionChange)) ||
|
||||
GetFlags().HasFlag(CurrencyTypesFlags.SuppressChatMessages))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public bool IsTrackingQuantity()
|
||||
{
|
||||
return GetFlags().HasFlag(CurrencyTypesFlags.TrackQuantity);
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class CurveRecord
|
||||
|
||||
Reference in New Issue
Block a user