Proto: SimAgora 2000
------------------------------------------------------------------------
[We've done farmland/big maps. We've never built a town/city.]
#include <auctions.ATMunn>
// Assume auctions are defined sensibly and generally debugged.
#include <fixed-currencies.nichdel>
// Assume players get a fixed #shinies/month + officer rewards, no
dynamic rewards (except maybe Stamps) and Supply Level is "always
enough". Eventual plan to phase out AP.
#include <justice-blots.Aris>
// Assume Punishments are no longer cards, but Blots - a currency that
you don't want to have. Having blots lowers your voting strength,
prevents you from winning, and/or has other bad effects. (Can still
call them cards, the point is that a player's "criminality" is
represented by an integer).
Change the title of Rule 2489 (Estates) to 'Town Planning' and amend
it to read:
The Surveyor is an office, and the recordkeepor of Plats and
all Plat switches.
A Plat (syn. Land Unit) is a type of indestructable asset.
Creating and destroying Plats is Secured. Plats that are not owned
by Agora are Private plats, those owned by Agora are Public plats.
[unfortunate definition confusion with forum publicity but it
really is the best word here, for now.]
Zone is a Plat Switch with values Vacant (default), Residental,
Industrial, Commercial, Recreational, and Institutional.
Development is a numerical Plat Switch with possible values 0
(default), 1, 2, 3, and 4. Whenever the Zone of a Plat is
changed, its Development is flipped to 0.
Upkeep is a Boolean Plat switch (default FALSE). Public plats
always have an upkeep of FALSE.
Plats with the same Zone, Development, and Upkeep are fungible.
The Surveyor or the owner of a Plat may track names for individual
Plats, but these names are informal and do not affect
fungibility.
Enact the following Rule, "Zoning and Upkeep", power-2:
The owner of a Plat CAN flip its zone to any possible value
except Institutional by spending 20 shinies.
If the Development of a Plat has not been changed in the current
Agoran Week, then its owner CAN increase its Development to the
next highest possible value N, by spending T shinies where T
is 10 times the Nth triangular number [prices: 10, 30, 60, 100].
Performing any of the above actions on a Plat flips the Plat's
Upkeep to TRUE. The owner of a Plat CAN also spend 10 shinies
to flip the Upkeep of one of eir Plats to TRUE.
At the beginning of each Agoran month, the Upkeep of every Private
Plat is set to FALSE.
At the end of each Agoran month, every Private Plat with an Upkeep
of FALSE is destroyed [maybe a heavy penalty - this is for maximum
recycling - can also have lesser penalties such as downgrading
development].
Enact the following Rule, "Housing votes", power-2:
A player's Constituency is the sum of development values for
all Residential Plats e owns, with a maximum of 5.
A player's Voting Strength on an Agoran Decision to adopt a
proposal is increased by eir Constituency.
[Residential plots just sit there and provide voting strength]
Enact the following Rule, "Land-based currencies", power-2:
Widgets are a currency associated with Industrial Land, tracked
by the Promotor. Widget Price is a Numerical Agoran switch tracked
by the Promotor, with possible values integers between 5 and 100
(default 10).
Coupons are a currency associated with Commercial Land, tracked
by the Arbitor. Coupon Price is a Numerical Agoran switch tracked
by the Arbitor, with possible values integers between 5 and 100
(default 10).
Sports are a currency associated with Recreational Land, tracked
by the Referee. Sports Price is a Numerical Agoran switch tracked
by the Referee, with possible values integers between 5 and 100
(default 10).
If one of these price switches has not been flipped in the current
Agoran month, the recordkeepor for that switch CAN increase or
decrease that switch's value by up to 5, With Notice. [This is
the primary way that demand is controlled.]
Enact the following Rule, "Land Production":
If e has not done so in the current Agoran month, a player CAN
publish a Notice of Production. It must be labelled as a Notice
of Production. In it, e may list any Plat e owns along with
listing each Plat's Zone and Development level. For each of eir
Plats for which e correctly lists this information, N units of
the associated currency, where N is that Plat's development level,
are created in eir possession.
[One notice a month to ease the recordkeeping burden and promote
strategy development.]
Enact the following Rule, "Currency-based Actions":
A player CAN make a specified proposal pending by spending the
Widget Price in Widgets.
A player CAN initiate a Call for Judgement by spending the Coupon
Price in Coupons.
A player CAN destroy N blots belonging to a specified player by
spending N times the Sports Price in Sports.
[In this version, "spend" means "destroyed"]
[The metaphors aren't perfect.]
Enact the following Rule, "Land Auctions":
In a timely fashion after the beginning of each month, the
Surveyor SHALL initiate an auction for a single lot of between
1-4 Plats, e SHOULD choose the number of Plats to regulate the
land supply based on the overall economy. [also possible to
include some explicit formulas to regulate supply here]
The winners of the auction CAN, in a timely fashion after winning
the auction, spend the final auction price in Shinies to create a
Plat in their possession with default Zone and Development and
an Upkeep value of TRUE.
Enact the following Rule, "Landlord Limits", power-1:
A player CANNOT own more than two Plats. Any attempt to
transfer or create Plats that would cause a player to own more
than this limit fail, rules to the contrary notwithstandin
[This enforces specialization. It is a very low limit so we
can start out and debug. Power-1 so it can be changed easily].
// TODO: R2490 Estate votes need removal.
// TODO: Institutional Plats are to house Agoran Institutions (stub).
// TODO: Some other Estate-related Repeals.
// Bootstrap procedure
For each Estate that was owned by a player immediately before this
proposal took effect, a Plat is created in that player's possession
with default zone and development but an Upkeep value of TRUE.
All estates in existence are destroyed.
------------------------------------------------------------------------