| 
				 Spawn Conditions Proposal 
 OK, so in my downtime recently, I have been dreaming up a spawn condition system which can be used to make eqemu's spawn system more dynamic. Here is the proposal, let me know what you guys think:
 This system should facilitate several things which I have heard requests for in eqemu:
 1. time of day spawns - the ability to change what spawns in a zone based on what the EQ time is.
 2. LDoN spawns - change the spawn in a zone based on the ldon difficulty easily.
 3. mutliple spawn tables - The ability to switch an entire zone's spawn tables easily.
 4. quests - quests will be able to make permanent changes to spawn patterns even across zones.
 5. timed spawns - cause a mob to only spawn for an hour, then depop.
 
 
 
 New table to hold spawn conditions:
 zone - the zone this spawn condition applies to
 id - a numeric id of this spawn condition in this zone
 value - the current value of this spawn condition
 onchange - an action which says what to do for a spawn point which uses this spawn condition when that spawn point changes state between on and off. values: nothing, depop, repop, signal
 
 New table to handle time-driven events:
 zone, condition id - what condition does this apply to
 enabled - is this event enabled?
 time_base, period - values to specify when the event happens. It occurrs every period time units from time_base based on the EQ clock, assuming if we start before time_base, that we start our time base on the previous day and skip any events from that time base to now.
 action - what to do when this event is triggered. values: set, add, subtract, multiply, divide
 value - the number used by action
 
 the spawn2 table gets two new fields:
 1. a spawn condition ID - this associates this specific spawn point with a spawn condition. value 0 is a default 'always enabled' condition number.
 2. a spawn condition value - This is a threshold value for the spawn condition. If the condition is below this, the spawn is disabled, above: enabled.
 
 this new functionality will be complimented by some quest functions:
 quest::spawn_condition(zone_short, condition_id, new_value) - set a spawn condition's value.
 quest::get_spawn_condition(zone_short, condition_id) - returns the value of the spawn condition.
 quest::toggle_spawn_event(event_id, bool enable, bool reset_base);
 
 These quest events would be capible of affecting other currently active zones, to cause for example a mob to spawn in another zone, or entire spawn patterns to be altered from a different zone.
 
			
			
			
			
				  |