Implement a new notification system --
Important event happens, a diety in (Asgard | Valhalla | Olympus | etc)
notices event instantly, and takes action.
-> player levels up? diety scribes scroll, gets a carrier pigeon from
container room, give scroll to pigeon, pigeon tracks down a town crier,
gives scroll to crier who will make the announcement.
-> can be disrupted many ways - player kills/disables diety, breaks into
pigeon coop & sleeps them all, catches pigeon in flight & swaps
scrolls, sleeps/blinds town crier...
Once that code is in place, makes it easier to add any arbitrary event type &
handling handling for it.
such as for deaths...
-> mob or player dies? the Lord of Death (or players' diety) notices
and sends out scavenger to rerieve corpse.
-> pc corpse moved to a morgue room.
-> npc corpse taken to an approriate (or semi-random) MOB such as...
-> farmer, uses corpse as fertilizer in growing grain, veggies, etc.
-> if grain sends to baker who makes bread, etc, sends bread to shop
owner.
-> butcher who processes corpse into meat for a shop.
(farmers may also feed grain to MOBs who 'grow' & then are sent to
butcher, or send grain to brewers...)
-> mage who may be able to use corpse parts in making of magic items
(scroll/wands/potions/certain special weapons) & sends to shop.
-> etc.
If scavengers impaired & PCs not cleaning up thier kills (sacrifice,
embalm, whatever), then the corpses just rot. Rotting corpses should have
chance to spread disease to MOBs/players in room. Odds depend on corpse
age, etc etc..
Scavengers should be slow enough as to make it annoying for PC's to wait
for thier body to be returned (thus keeping the tradition of corpse
retrieval runs alive?), but fast enough that rot is usually not an issue.
Should be okay to gloss over butcher/baker & just have store mobs considered
considered as doing (or do) processing. Mage (& etc) code would need to be
done anyway and sounds more tedious to write than others. aarrgghh.
this being done, could start to set up the economy...
break down into three major areas: producers, transport, and shops...
with upkeep for each...
producers covered above, except...
As producers receive raw materials, the raw material gets a timer.
Timer on object expires, convert raw material to finished goods.
- Producer has a (short!) list of things (object vnums) it will make,
with an associated counter for each. If already has enough of obj A,
makes try make B, if has B move on ... if reach end of list, raw material
was wasted & object is simply extracted.
New goods get timer, when timer runs out they are extracted & mob carrying
item gets a _small_ amount of cash added. Producers gaurenteed _small_
amount of cash coming in, no matter if goods bought by trader or PC's.
When objects sold:
To another MOB: Timer to extraction reset.
To a player: If object is food/drink, timer reset and value for
extraction set to zero. Other objects types, timer removed. A loaf of
bread might rot, but a candle shouldn't.
Buying objects: Producers might buy appropriate corpse (or other raw
materials) from PC's, otherwise buy nothing.
Such MOBs might make attractive targets for evil players, after they've
been working for a while. If killed, respawn with area reset. Have no
cash or inventory at initial spawning. Thus killing at wrong time
will set back production of <whatever>. Area reset times should be long
enough that shops in question suffer.
Upkeep: nothing planned yet, extraction timer & handling should be
enough. wehen nothing goes in, nothing comes out.
Transport
Transport MOB(s) have a list of room vnums to visit to buy & sell, with
memory of position on each list.
when running buy list, track to current buy room, attempt to buy entire
inventory of producer. if run out of money or carrying capacity, switch
to sell list, otherwise move to next room on buy list. if reach position
on buy list which it last started at (visited all producers), switch to
sell list.
when running sell list, track to current sell room, loop thru inventory
list attempting to sell everything. shop will reject inapporpriate item
types and fail to buy when don't have enough cash (current code has handling
both these conditions). if run out of inventory, switch to sell list. if
reach same position on sell list as started at (visited all shops), switch
to buy list.
If out of inventory & cash, or is killed, extract trader and set timer.
Respawn when timer runs out, with cash & target room being 1st on buy list.
Objects extraction timer reset when transport MOB buys, or just use a
longer timer so as not to have to worry about it?
This will take longer for MOBs to run routes than is optimal, but that's
probably desirable because it will be simpler to code if not checking to
see if a mob _should_ visit a particular spot or not, and will give PC's
more time to do transport runs if they so desire.
Upkeep: Same as for producers.
Vendors
Selling of objects: same as producers.
Buying of objects: If buying from another MOB, check how many of object
type have on hand before considering if has enough cash. If buying from
players, only limit should be cash on hand?
Upkeep:
Each MUD-day, remove some cash amount for basic shop upkeep. If shop
is owned by a guild, then send percentage of cash on hand (minus a
minimum amount for shop buy budget) to guild coffers.
At this time, if cash on hand is below that minimum amount, then the
shop must be closed for the next MUD-day while the owner MOB is
considered to be frantically doing anything else to raise money to pay
its' bills. Open again the day after with random amount of cash...
enough to pay for a few days to a few weeks worth of upkeep.
<---->
This should work with few(?) problems for food & maybe basic equipment
(lamps, etc) as players will be buying food & such on a regular basis.
(get rid of the create food/water spells... don't have endless containers of
water as quest reward items, etc?) This could become seriously problematic
when dealing with other equipment, as traditionally characters get the best
weapons & armor from killing MOBs rather than in stores... an attempt at
solving this problem involves player guilds, AND makes it a bit easier for
players to simply go buy halfway decent equipment.
(truly special equipment should have flag where it can't be donated & cash
value of 0 so shops won't buy it)
- drop concept of guild donation pit & have donated items go to a guild
operated shop? Put items on timers (like above), but timer doesn't
simply extract object, gives shop MOB a small amount of cash. Daily
upkeep sends portion of shop owner cash into guild coffers, which are
used to purchase stuff for the guild. Should be _much_ slower than what
you'd get from players actively working to raise money for thier guilds.
items go to an appropriate shop by type... split so that each guild runs
one type of shop, or all shops in one town? if each guild runs one shop
each in main town, then.. if items donated by member of guild A goes to a
shop run by guild B, charge guild B a small amount.. (slightly less than
what they'd get from extraction after sell timelimit runs out?)
Of course, this isn't going to work if players usually sacrifice items rather
than
donating or selling.
<--->
End result of the above?
If players are completely inactive, then the economy starts on a slow death
spiral. The amount of cash given over to MOBs when objects are extracted
should be enough to delay things, but not stop it.
Different types of MOBs having different uses, different types of stuff
available in shops at depends on who's killing what.
<--->
Balance of stuff available vs. player effort to keep raw supplies going in
(which should be the natural result of levelling up thru combat) isn't
bloody likely to be well balanced if one corpse equals one finished item.
...finding balance between input of raw material and output of finished goods
is likely to be tricky. It's also likely to need rebalancing as number of
players goes up or down.
Addition of extra layers (grain going to meat raisers, brewers) would likely
just be baroque, add too much code to an already complicated system. The
extra tweakability added would probably be minimal, BUT players might at
least get a kick out of watching the system run. (Follow a scavenger MOB
around on its' rounds, a trader, etc)
If you have reached the bottom of this post, and still think there's a
chance that I'm NOT a fruitcake... ask me who I play on what MUD.
Cheers,
d.c.
| dwight a campbell - [EMAIL PROTECTED] - http://rats.darktech.org - KD7KJG |
| yet another linux guru in training & reality avoidance therapist at large |
| "When you live in a sick society, just about everything you do is wrong." |