Table of Contents

Class PlotTaxDecision

Namespace
FishMMO.Shared
Assembly
FishMMO.Shared.dll

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

ownerCharacterID long

The owning character, or zero.

ownerGuildID long

The owning guild, or zero.

delinquentSinceUtc DateTime?

When the owner first missed a payment, or null.

nowUtc DateTime

The moment being judged.

grace TimeSpan

How long an overdue plot is kept before being taken back.

Returns

PlotTaxAction