Class PlotTaxDecision
Decides what a tax sweep does with a plot, separately from doing it.
public static class PlotTaxDecision
- Inheritance
-
PlotTaxDecision
- Inherited Members
Remarks
Pulled out of the sweep because this is where the mistakes are. The rule it encodes is not obvious, and getting it wrong fails silently in a direction nobody notices: an owner who never pays simply keeps their land forever, which looks exactly like an owner who does pay.
The rule is that grace runs from the first missed payment, not from the current due date. The due date has to advance on every billing attempt — that is the pin which stops two scene servers charging the same period — so it moves whether or not any money was collected. Measuring grace against it would mean a plot never looked more than one period overdue, and nothing would ever be reclaimed.
Methods
Decide(long, long, DateTime?, DateTime, TimeSpan)
Decides what to do with a plot whose tax has fallen due.
public static PlotTaxAction Decide(long ownerCharacterID, long ownerGuildID, DateTime? delinquentSinceUtc, DateTime nowUtc, TimeSpan grace)
Parameters
ownerCharacterIDlongThe owning character, or zero.
ownerGuildIDlongThe owning guild, or zero.
delinquentSinceUtcDateTime?When the owner first missed a payment, or null.
nowUtcDateTimeThe moment being judged.
graceTimeSpanHow long an overdue plot is kept before being taken back.