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. ------------------------------------------------------------------------