Resource provider regeneration
Implemented resource regeneration computation in the verse.compute_provider_regeneration() function. Created the PLANET_RES_REGEN update type, and added the corresponding implementation. Added resource regeneration constants registration.
This commit is contained in:
parent
d768766214
commit
66c72ef718
8 changed files with 443 additions and 1 deletions
legacyworlds-server-data/db-structure/parts/updates
|
@ -0,0 +1,47 @@
|
|||
-- LegacyWorlds Beta 6
|
||||
-- PostgreSQL database scripts
|
||||
--
|
||||
-- Game updates - resource regeneration
|
||||
--
|
||||
-- Copyright(C) 2004-2012, DeepClone Development
|
||||
-- --------------------------------------------------------
|
||||
|
||||
|
||||
/*
|
||||
* Resource provider regeneration update
|
||||
*
|
||||
* This function computes the regeneration of resource providers for the current batch
|
||||
* of planets.
|
||||
*
|
||||
* Parameters:
|
||||
* _tick The identifier of the game update
|
||||
*/
|
||||
CREATE OR REPLACE FUNCTION sys.process_planet_res_regen_updates( _tick BIGINT )
|
||||
RETURNS VOID
|
||||
STRICT VOLATILE
|
||||
SECURITY INVOKER
|
||||
AS $process_planet_res_regen_updates$
|
||||
|
||||
UPDATE verse.resource_providers _provider
|
||||
|
||||
SET resprov_quantity = verse.compute_provider_regeneration(
|
||||
_provider.resprov_quantity ,
|
||||
_provider.resprov_quantity_max ,
|
||||
_provider.resprov_recovery
|
||||
)
|
||||
|
||||
FROM sys.updates _upd_sys
|
||||
INNER JOIN verse.updates _upd_verse
|
||||
ON _upd_verse.update_id = _upd_sys.id
|
||||
|
||||
WHERE _upd_sys.last_tick = $1
|
||||
AND _upd_sys.status = 'PROCESSING'
|
||||
AND _upd_sys.gu_type = 'PLANET_RES_REGEN'
|
||||
AND _provider.planet_id = _upd_verse.planet_id;
|
||||
|
||||
$process_planet_res_regen_updates$ LANGUAGE SQL;
|
||||
|
||||
|
||||
REVOKE EXECUTE
|
||||
ON FUNCTION sys.process_planet_res_regen_updates( BIGINT )
|
||||
FROM PUBLIC;
|
Reference in a new issue