mirror of
https://github.com/Shadowss/TravianZ.git
synced 2026-08-30 23:27:14 +00:00
Refactor oasis regeneration SQL script
Refactor oasis regeneration SQL script to improve clarity and maintainability.
This commit is contained in:
@@ -2,7 +2,8 @@
|
|||||||
-- oasis regeneration script
|
-- oasis regeneration script
|
||||||
-- used during installation, server reset, oasis reset & automation (nature repopulation)
|
-- used during installation, server reset, oasis reset & automation (nature repopulation)
|
||||||
--
|
--
|
||||||
-- author: martinambrus
|
-- original author: martinambrus
|
||||||
|
-- revised and improved: haki99
|
||||||
-- ----------------------------------------------------------------------------------------
|
-- ----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
@@ -118,444 +119,292 @@ WHERE
|
|||||||
|
|
||||||
-- +25% lumber oasis
|
-- +25% lumber oasis
|
||||||
UPDATE %PREFIX%units u
|
UPDATE %PREFIX%units u
|
||||||
JOIN %PREFIX%odata o
|
JOIN %PREFIX%odata o ON u.vref = o.wref
|
||||||
ON u.vref = o.wref
|
SET
|
||||||
SET
|
u.u35 = LEAST(
|
||||||
u.u35 = u.u35 + FLOOR((5 + RAND() * 10) * @growthFactor),
|
u.u35 + FLOOR((5 + RAND() * 10) * @growthFactor),
|
||||||
u36 = u36 + FLOOR((0 + RAND() * 5) * @growthFactor),
|
CASE o.high
|
||||||
u37 = u37 + FLOOR((0 + RAND() * 5) * @growthFactor)
|
WHEN 0 THEN FLOOR(@minUnitsForOasis0 + RAND() * (@maxUnitsForOasis0 - @minUnitsForOasis0))
|
||||||
WHERE
|
WHEN 1 THEN FLOOR(@minUnitsForOasis1 + RAND() * (@maxUnitsForOasis1 - @minUnitsForOasis1))
|
||||||
(
|
WHEN 2 THEN FLOOR(@minUnitsForOasis2 + RAND() * (@maxUnitsForOasis2 - @minUnitsForOasis2))
|
||||||
(
|
END
|
||||||
@firstVillage = -1
|
),
|
||||||
AND
|
u.u36 = LEAST(
|
||||||
vref IN(
|
u.u36 + FLOOR((0 + RAND() * 5) * @growthFactor),
|
||||||
SELECT
|
CASE o.high
|
||||||
id
|
WHEN 0 THEN FLOOR(@minUnitsForOasis0 + RAND() * (@maxUnitsForOasis0 - @minUnitsForOasis0))
|
||||||
FROM
|
WHEN 1 THEN FLOOR(@minUnitsForOasis1 + RAND() * (@maxUnitsForOasis1 - @minUnitsForOasis1))
|
||||||
%PREFIX%wdata
|
WHEN 2 THEN FLOOR(@minUnitsForOasis2 + RAND() * (@maxUnitsForOasis2 - @minUnitsForOasis2))
|
||||||
WHERE
|
END
|
||||||
oasistype IN(1,2)
|
),
|
||||||
)
|
u.u37 = LEAST(
|
||||||
)
|
u.u37 + FLOOR((0 + RAND() * 5) * @growthFactor),
|
||||||
OR
|
CASE o.high
|
||||||
(
|
WHEN 0 THEN FLOOR(@minUnitsForOasis0 + RAND() * (@maxUnitsForOasis0 - @minUnitsForOasis0))
|
||||||
@firstVillage > -1
|
WHEN 1 THEN FLOOR(@minUnitsForOasis1 + RAND() * (@maxUnitsForOasis1 - @minUnitsForOasis1))
|
||||||
AND
|
WHEN 2 THEN FLOOR(@minUnitsForOasis2 + RAND() * (@maxUnitsForOasis2 - @minUnitsForOasis2))
|
||||||
vref IN ( SELECT id FROM %PREFIX%oids )
|
END
|
||||||
)
|
)
|
||||||
)
|
WHERE
|
||||||
AND
|
(
|
||||||
(
|
(@firstVillage = -1 AND u.vref IN (SELECT id FROM %PREFIX%wdata WHERE oasistype IN (1,2)))
|
||||||
u35 <= (
|
OR
|
||||||
CASE o.high
|
(@firstVillage > -1 AND u.vref IN (SELECT id FROM %PREFIX%oids))
|
||||||
WHEN 0 THEN (FLOOR(@minUnitsForOasis0 + RAND() * @maxUnitsForOasis0))
|
);
|
||||||
WHEN 1 THEN (FLOOR(@minUnitsForOasis1 + RAND() * @maxUnitsForOasis1))
|
|
||||||
WHEN 2 THEN (FLOOR(@minUnitsForOasis2 + RAND() * @maxUnitsForOasis2))
|
|
||||||
END
|
|
||||||
)
|
|
||||||
OR u36 <= (
|
|
||||||
CASE o.high
|
|
||||||
WHEN 0 THEN (FLOOR(@minUnitsForOasis0 + RAND() * @maxUnitsForOasis0))
|
|
||||||
WHEN 1 THEN (FLOOR(@minUnitsForOasis1 + RAND() * @maxUnitsForOasis1))
|
|
||||||
WHEN 2 THEN (FLOOR(@minUnitsForOasis2 + RAND() * @maxUnitsForOasis2))
|
|
||||||
END
|
|
||||||
)
|
|
||||||
OR u37 <= (
|
|
||||||
CASE o.high
|
|
||||||
WHEN 0 THEN (FLOOR(@minUnitsForOasis0 + RAND() * @maxUnitsForOasis0))
|
|
||||||
WHEN 1 THEN (FLOOR(@minUnitsForOasis1 + RAND() * @maxUnitsForOasis1))
|
|
||||||
WHEN 2 THEN (FLOOR(@minUnitsForOasis2 + RAND() * @maxUnitsForOasis2))
|
|
||||||
END
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
-- +25% lumber and +25% crop oasis
|
-- +25% lumber and +25% crop oasis
|
||||||
UPDATE %PREFIX%units u
|
UPDATE %PREFIX%units u
|
||||||
JOIN %PREFIX%odata o
|
JOIN %PREFIX%odata o ON u.vref = o.wref
|
||||||
ON u.vref = o.wref
|
SET
|
||||||
SET
|
u35 = LEAST(u35 + FLOOR((5 + RAND() * 15) * @growthFactor),
|
||||||
u35 = u35 + FLOOR((5 + RAND() * 15) * @growthFactor),
|
CASE o.high
|
||||||
u36 = u36 + FLOOR((0 + RAND() * 5) * @growthFactor),
|
WHEN 0 THEN FLOOR(@minUnitsForOasis0 + RAND() * (@maxUnitsForOasis0 - @minUnitsForOasis0))
|
||||||
u37 = u37 + FLOOR((0 + RAND() * 5) * @growthFactor),
|
WHEN 1 THEN FLOOR(@minUnitsForOasis1 + RAND() * (@maxUnitsForOasis1 - @minUnitsForOasis1))
|
||||||
u38 = u38 + FLOOR((0 + RAND() * 5) * @growthFactor),
|
WHEN 2 THEN FLOOR(@minUnitsForOasis2 + RAND() * (@maxUnitsForOasis2 - @minUnitsForOasis2))
|
||||||
u40 = u40 + FLOOR((0 + RAND() * 3) * @growthFactor)
|
END),
|
||||||
WHERE
|
u36 = LEAST(u36 + FLOOR((0 + RAND() * 5) * @growthFactor),
|
||||||
(
|
CASE o.high
|
||||||
(
|
WHEN 0 THEN FLOOR(@minUnitsForOasis0 + RAND() * (@maxUnitsForOasis0 - @minUnitsForOasis0))
|
||||||
@firstVillage = -1
|
WHEN 1 THEN FLOOR(@minUnitsForOasis1 + RAND() * (@maxUnitsForOasis1 - @minUnitsForOasis1))
|
||||||
AND
|
WHEN 2 THEN FLOOR(@minUnitsForOasis2 + RAND() * (@maxUnitsForOasis2 - @minUnitsForOasis2))
|
||||||
vref IN(
|
END),
|
||||||
SELECT
|
u37 = LEAST(u37 + FLOOR((0 + RAND() * 5) * @growthFactor),
|
||||||
id
|
CASE o.high
|
||||||
FROM
|
WHEN 0 THEN FLOOR(@minUnitsForOasis0 + RAND() * (@maxUnitsForOasis0 - @minUnitsForOasis0))
|
||||||
%PREFIX%wdata
|
WHEN 1 THEN FLOOR(@minUnitsForOasis1 + RAND() * (@maxUnitsForOasis1 - @minUnitsForOasis1))
|
||||||
WHERE
|
WHEN 2 THEN FLOOR(@minUnitsForOasis2 + RAND() * (@maxUnitsForOasis2 - @minUnitsForOasis2))
|
||||||
oasistype IN(3)
|
END),
|
||||||
)
|
u38 = LEAST(u38 + FLOOR((0 + RAND() * 5) * @growthFactor),
|
||||||
)
|
CASE o.high
|
||||||
OR
|
WHEN 0 THEN FLOOR(@minUnitsForOasis0 + RAND() * (@maxUnitsForOasis0 - @minUnitsForOasis0))
|
||||||
(
|
WHEN 1 THEN FLOOR(@minUnitsForOasis1 + RAND() * (@maxUnitsForOasis1 - @minUnitsForOasis1))
|
||||||
@firstVillage > -1
|
WHEN 2 THEN FLOOR(@minUnitsForOasis2 + RAND() * (@maxUnitsForOasis2 - @minUnitsForOasis2))
|
||||||
AND
|
END),
|
||||||
vref IN ( SELECT id FROM %PREFIX%oids )
|
u40 = LEAST(u40 + FLOOR((0 + RAND() * 3) * @growthFactor),
|
||||||
)
|
CASE o.high
|
||||||
)
|
WHEN 0 THEN FLOOR(@minUnitsForOasis0 + RAND() * (@maxUnitsForOasis0 - @minUnitsForOasis0))
|
||||||
AND
|
WHEN 1 THEN FLOOR(@minUnitsForOasis1 + RAND() * (@maxUnitsForOasis1 - @minUnitsForOasis1))
|
||||||
(
|
WHEN 2 THEN FLOOR(@minUnitsForOasis2 + RAND() * (@maxUnitsForOasis2 - @minUnitsForOasis2))
|
||||||
u36 <= (
|
END),
|
||||||
CASE o.high
|
WHERE
|
||||||
WHEN 0 THEN (FLOOR(@minUnitsForOasis0 + RAND() * @maxUnitsForOasis0))
|
(
|
||||||
WHEN 1 THEN (FLOOR(@minUnitsForOasis1 + RAND() * @maxUnitsForOasis1))
|
(@firstVillage = -1 AND u.vref IN (SELECT id FROM %PREFIX%wdata WHERE oasistype = 3))
|
||||||
WHEN 2 THEN (FLOOR(@minUnitsForOasis2 + RAND() * @maxUnitsForOasis2))
|
OR
|
||||||
END
|
(@firstVillage > -1 AND u.vref IN (SELECT id FROM %PREFIX%oids))
|
||||||
)
|
);
|
||||||
OR u37 <= (
|
|
||||||
CASE o.high
|
|
||||||
WHEN 0 THEN (FLOOR(@minUnitsForOasis0 + RAND() * @maxUnitsForOasis0))
|
|
||||||
WHEN 1 THEN (FLOOR(@minUnitsForOasis1 + RAND() * @maxUnitsForOasis1))
|
|
||||||
WHEN 2 THEN (FLOOR(@minUnitsForOasis2 + RAND() * @maxUnitsForOasis2))
|
|
||||||
END
|
|
||||||
)
|
|
||||||
OR u38 <= (
|
|
||||||
CASE o.high
|
|
||||||
WHEN 0 THEN (FLOOR(@minUnitsForOasis0 + RAND() * @maxUnitsForOasis0))
|
|
||||||
WHEN 1 THEN (FLOOR(@minUnitsForOasis1 + RAND() * @maxUnitsForOasis1))
|
|
||||||
WHEN 2 THEN (FLOOR(@minUnitsForOasis2 + RAND() * @maxUnitsForOasis2))
|
|
||||||
END
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
-- +25% clay oasis
|
-- +25% clay oasis
|
||||||
UPDATE %PREFIX%units u
|
UPDATE %PREFIX%units u
|
||||||
JOIN %PREFIX%odata o
|
JOIN %PREFIX%odata o ON u.vref = o.wref
|
||||||
ON u.vref = o.wref
|
SET
|
||||||
SET
|
u31 = LEAST(u31 + FLOOR((10 + RAND() * 15) * @growthFactor),
|
||||||
u31 = u31 + FLOOR((10 + RAND() * 15) * @growthFactor),
|
CASE o.high
|
||||||
u32 = u32 + FLOOR((5 + RAND() * 15) * @growthFactor),
|
WHEN 0 THEN FLOOR(@minUnitsForOasis0 + RAND() * (@maxUnitsForOasis0 - @minUnitsForOasis0))
|
||||||
u35 = u35 + FLOOR((0 + RAND() * 10) * @growthFactor)
|
WHEN 1 THEN FLOOR(@minUnitsForOasis1 + RAND() * (@maxUnitsForOasis1 - @minUnitsForOasis1))
|
||||||
WHERE
|
WHEN 2 THEN FLOOR(@minUnitsForOasis2 + RAND() * (@maxUnitsForOasis2 - @minUnitsForOasis2))
|
||||||
(
|
END),
|
||||||
(
|
u32 = LEAST(u32 + FLOOR((5 + RAND() * 15) * @growthFactor),
|
||||||
@firstVillage = -1
|
CASE o.high
|
||||||
AND
|
WHEN 0 THEN FLOOR(@minUnitsForOasis0 + RAND() * (@maxUnitsForOasis0 - @minUnitsForOasis0))
|
||||||
vref IN(
|
WHEN 1 THEN FLOOR(@minUnitsForOasis1 + RAND() * (@maxUnitsForOasis1 - @minUnitsForOasis1))
|
||||||
SELECT
|
WHEN 2 THEN FLOOR(@minUnitsForOasis2 + RAND() * (@maxUnitsForOasis2 - @minUnitsForOasis2))
|
||||||
id
|
END),
|
||||||
FROM
|
u35 = LEAST(u35 + FLOOR((0 + RAND() * 10) * @growthFactor),
|
||||||
%PREFIX%wdata
|
CASE o.high
|
||||||
WHERE
|
WHEN 0 THEN FLOOR(@minUnitsForOasis0 + RAND() * (@maxUnitsForOasis0 - @minUnitsForOasis0))
|
||||||
oasistype IN(4,5)
|
WHEN 1 THEN FLOOR(@minUnitsForOasis1 + RAND() * (@maxUnitsForOasis1 - @minUnitsForOasis1))
|
||||||
)
|
WHEN 2 THEN FLOOR(@minUnitsForOasis2 + RAND() * (@maxUnitsForOasis2 - @minUnitsForOasis2))
|
||||||
)
|
END),
|
||||||
OR
|
WHERE
|
||||||
(
|
(
|
||||||
@firstVillage > -1
|
(@firstVillage = -1 AND u.vref IN (SELECT id FROM %PREFIX%wdata WHERE oasistype IN (4,5)))
|
||||||
AND
|
OR
|
||||||
vref IN ( SELECT id FROM %PREFIX%oids )
|
(@firstVillage > -1 AND u.vref IN (SELECT id FROM %PREFIX%oids))
|
||||||
)
|
);
|
||||||
)
|
|
||||||
AND u31 <= (
|
|
||||||
CASE o.high
|
|
||||||
WHEN 0 THEN (FLOOR(@minUnitsForOasis0 + RAND() * @maxUnitsForOasis0))
|
|
||||||
WHEN 1 THEN (FLOOR(@minUnitsForOasis1 + RAND() * @maxUnitsForOasis1))
|
|
||||||
WHEN 2 THEN (FLOOR(@minUnitsForOasis2 + RAND() * @maxUnitsForOasis2))
|
|
||||||
END
|
|
||||||
)
|
|
||||||
AND u32 <= (
|
|
||||||
CASE o.high
|
|
||||||
WHEN 0 THEN (FLOOR(@minUnitsForOasis0 + RAND() * @maxUnitsForOasis0))
|
|
||||||
WHEN 1 THEN (FLOOR(@minUnitsForOasis1 + RAND() * @maxUnitsForOasis1))
|
|
||||||
WHEN 2 THEN (FLOOR(@minUnitsForOasis2 + RAND() * @maxUnitsForOasis2))
|
|
||||||
END
|
|
||||||
)
|
|
||||||
AND u35 <= (
|
|
||||||
CASE o.high
|
|
||||||
WHEN 0 THEN (FLOOR(@minUnitsForOasis0 + RAND() * @maxUnitsForOasis0))
|
|
||||||
WHEN 1 THEN (FLOOR(@minUnitsForOasis1 + RAND() * @maxUnitsForOasis1))
|
|
||||||
WHEN 2 THEN (FLOOR(@minUnitsForOasis2 + RAND() * @maxUnitsForOasis2))
|
|
||||||
END
|
|
||||||
);
|
|
||||||
|
|
||||||
-- +25% clay and +25% crop oasis
|
-- +25% clay and +25% crop oasis
|
||||||
UPDATE %PREFIX%units u
|
UPDATE %PREFIX%units u
|
||||||
JOIN %PREFIX%odata o
|
JOIN %PREFIX%odata o ON u.vref = o.wref
|
||||||
ON u.vref = o.wref
|
SET
|
||||||
SET
|
u31 = LEAST(u31 + FLOOR((15 + RAND() * 20) * @growthFactor),
|
||||||
u31 = u31 + FLOOR((15 + RAND() * 20) * @growthFactor),
|
CASE o.high
|
||||||
u32 = u32 + FLOOR((10 + RAND() * 15) * @growthFactor),
|
WHEN 0 THEN FLOOR(@minUnitsForOasis0 + RAND() * (@maxUnitsForOasis0 - @minUnitsForOasis0))
|
||||||
u35 = u35 + FLOOR((0 + RAND() * 10) * @growthFactor),
|
WHEN 1 THEN FLOOR(@minUnitsForOasis1 + RAND() * (@maxUnitsForOasis1 - @minUnitsForOasis1))
|
||||||
u40 = u40 + FLOOR((0 + RAND() * 3) * @growthFactor)
|
WHEN 2 THEN FLOOR(@minUnitsForOasis2 + RAND() * (@maxUnitsForOasis2 - @minUnitsForOasis2))
|
||||||
WHERE
|
END),
|
||||||
(
|
u32 = LEAST(u32 + FLOOR((10 + RAND() * 15) * @growthFactor),
|
||||||
(
|
CASE o.high
|
||||||
@firstVillage = -1
|
WHEN 0 THEN FLOOR(@minUnitsForOasis0 + RAND() * (@maxUnitsForOasis0 - @minUnitsForOasis0))
|
||||||
AND
|
WHEN 1 THEN FLOOR(@minUnitsForOasis1 + RAND() * (@maxUnitsForOasis1 - @minUnitsForOasis1))
|
||||||
vref IN(
|
WHEN 2 THEN FLOOR(@minUnitsForOasis2 + RAND() * (@maxUnitsForOasis2 - @minUnitsForOasis2))
|
||||||
SELECT
|
END),
|
||||||
id
|
u35 = LEAST(u35 + FLOOR((0 + RAND() * 10) * @growthFactor),
|
||||||
FROM
|
CASE o.high
|
||||||
%PREFIX%wdata
|
WHEN 0 THEN FLOOR(@minUnitsForOasis0 + RAND() * (@maxUnitsForOasis0 - @minUnitsForOasis0))
|
||||||
WHERE
|
WHEN 1 THEN FLOOR(@minUnitsForOasis1 + RAND() * (@maxUnitsForOasis1 - @minUnitsForOasis1))
|
||||||
oasistype IN(6)
|
WHEN 2 THEN FLOOR(@minUnitsForOasis2 + RAND() * (@maxUnitsForOasis2 - @minUnitsForOasis2))
|
||||||
)
|
END),
|
||||||
)
|
u40 = LEAST(u40 + FLOOR((0 + RAND() * 3) * @growthFactor),
|
||||||
OR
|
CASE o.high
|
||||||
(
|
WHEN 0 THEN FLOOR(@minUnitsForOasis0 + RAND() * (@maxUnitsForOasis0 - @minUnitsForOasis0))
|
||||||
@firstVillage > -1
|
WHEN 1 THEN FLOOR(@minUnitsForOasis1 + RAND() * (@maxUnitsForOasis1 - @minUnitsForOasis1))
|
||||||
AND
|
WHEN 2 THEN FLOOR(@minUnitsForOasis2 + RAND() * (@maxUnitsForOasis2 - @minUnitsForOasis2))
|
||||||
vref IN ( SELECT id FROM %PREFIX%oids )
|
END),
|
||||||
)
|
WHERE
|
||||||
)
|
(
|
||||||
AND u31 <= (
|
(@firstVillage = -1 AND u.vref IN (SELECT id FROM %PREFIX%wdata WHERE oasistype = 6))
|
||||||
CASE o.high
|
OR
|
||||||
WHEN 0 THEN (FLOOR(@minUnitsForOasis0 + RAND() * @maxUnitsForOasis0))
|
(@firstVillage > -1 AND u.vref IN (SELECT id FROM %PREFIX%oids))
|
||||||
WHEN 1 THEN (FLOOR(@minUnitsForOasis1 + RAND() * @maxUnitsForOasis1))
|
);
|
||||||
WHEN 2 THEN (FLOOR(@minUnitsForOasis2 + RAND() * @maxUnitsForOasis2))
|
|
||||||
END
|
|
||||||
)
|
|
||||||
AND u32 <= (
|
|
||||||
CASE o.high
|
|
||||||
WHEN 0 THEN (FLOOR(@minUnitsForOasis0 + RAND() * @maxUnitsForOasis0))
|
|
||||||
WHEN 1 THEN (FLOOR(@minUnitsForOasis1 + RAND() * @maxUnitsForOasis1))
|
|
||||||
WHEN 2 THEN (FLOOR(@minUnitsForOasis2 + RAND() * @maxUnitsForOasis2))
|
|
||||||
END
|
|
||||||
)
|
|
||||||
AND u35 <= (
|
|
||||||
CASE o.high
|
|
||||||
WHEN 0 THEN (FLOOR(@minUnitsForOasis0 + RAND() * @maxUnitsForOasis0))
|
|
||||||
WHEN 1 THEN (FLOOR(@minUnitsForOasis1 + RAND() * @maxUnitsForOasis1))
|
|
||||||
WHEN 2 THEN (FLOOR(@minUnitsForOasis2 + RAND() * @maxUnitsForOasis2))
|
|
||||||
END
|
|
||||||
);
|
|
||||||
|
|
||||||
-- +25% iron oasis
|
-- +25% iron oasis
|
||||||
UPDATE %PREFIX%units u
|
UPDATE %PREFIX%units u
|
||||||
JOIN %PREFIX%odata o
|
JOIN %PREFIX%odata o ON u.vref = o.wref
|
||||||
ON u.vref = o.wref
|
SET
|
||||||
SET
|
u31 = LEAST(u31 + FLOOR((10 + RAND() * 15) * @growthFactor),
|
||||||
u31 = u31 + FLOOR((10 + RAND() * 15) * @growthFactor),
|
CASE o.high
|
||||||
u32 = u32 + FLOOR((5 + RAND() * 15) * @growthFactor),
|
WHEN 0 THEN FLOOR(@minUnitsForOasis0 + RAND() * (@maxUnitsForOasis0 - @minUnitsForOasis0))
|
||||||
u34 = u34 + FLOOR((0 + RAND() * 10) * @growthFactor)
|
WHEN 1 THEN FLOOR(@minUnitsForOasis1 + RAND() * (@maxUnitsForOasis1 - @minUnitsForOasis1))
|
||||||
WHERE
|
WHEN 2 THEN FLOOR(@minUnitsForOasis2 + RAND() * (@maxUnitsForOasis2 - @minUnitsForOasis2))
|
||||||
(
|
END),
|
||||||
(
|
u32 = LEAST(u32 + FLOOR((5 + RAND() * 15) * @growthFactor),
|
||||||
@firstVillage = -1
|
CASE o.high
|
||||||
AND
|
WHEN 0 THEN FLOOR(@minUnitsForOasis0 + RAND() * (@maxUnitsForOasis0 - @minUnitsForOasis0))
|
||||||
vref IN(
|
WHEN 1 THEN FLOOR(@minUnitsForOasis1 + RAND() * (@maxUnitsForOasis1 - @minUnitsForOasis1))
|
||||||
SELECT
|
WHEN 2 THEN FLOOR(@minUnitsForOasis2 + RAND() * (@maxUnitsForOasis2 - @minUnitsForOasis2))
|
||||||
id
|
END),
|
||||||
FROM
|
u34 = LEAST(u34 + FLOOR((0 + RAND() * 10) * @growthFactor),
|
||||||
%PREFIX%wdata
|
CASE o.high
|
||||||
WHERE
|
WHEN 0 THEN FLOOR(@minUnitsForOasis0 + RAND() * (@maxUnitsForOasis0 - @minUnitsForOasis0))
|
||||||
oasistype IN(7,8)
|
WHEN 1 THEN FLOOR(@minUnitsForOasis1 + RAND() * (@maxUnitsForOasis1 - @minUnitsForOasis1))
|
||||||
)
|
WHEN 2 THEN FLOOR(@minUnitsForOasis2 + RAND() * (@maxUnitsForOasis2 - @minUnitsForOasis2))
|
||||||
)
|
END),
|
||||||
OR
|
WHERE
|
||||||
(
|
(
|
||||||
@firstVillage > -1
|
(@firstVillage = -1 AND u.vref IN (SELECT id FROM %PREFIX%wdata WHERE oasistype IN (7,8)))
|
||||||
AND
|
OR
|
||||||
vref IN ( SELECT id FROM %PREFIX%oids )
|
(@firstVillage > -1 AND u.vref IN (SELECT id FROM %PREFIX%oids))
|
||||||
)
|
);
|
||||||
)
|
|
||||||
AND u31 <= (
|
|
||||||
CASE o.high
|
|
||||||
WHEN 0 THEN (FLOOR(@minUnitsForOasis0 + RAND() * @maxUnitsForOasis0))
|
|
||||||
WHEN 1 THEN (FLOOR(@minUnitsForOasis1 + RAND() * @maxUnitsForOasis1))
|
|
||||||
WHEN 2 THEN (FLOOR(@minUnitsForOasis2 + RAND() * @maxUnitsForOasis2))
|
|
||||||
END
|
|
||||||
)
|
|
||||||
AND u32 <= (
|
|
||||||
CASE o.high
|
|
||||||
WHEN 0 THEN (FLOOR(@minUnitsForOasis0 + RAND() * @maxUnitsForOasis0))
|
|
||||||
WHEN 1 THEN (FLOOR(@minUnitsForOasis1 + RAND() * @maxUnitsForOasis1))
|
|
||||||
WHEN 2 THEN (FLOOR(@minUnitsForOasis2 + RAND() * @maxUnitsForOasis2))
|
|
||||||
END
|
|
||||||
)
|
|
||||||
AND u34 <= (
|
|
||||||
CASE o.high
|
|
||||||
WHEN 0 THEN (FLOOR(@minUnitsForOasis0 + RAND() * @maxUnitsForOasis0))
|
|
||||||
WHEN 1 THEN (FLOOR(@minUnitsForOasis1 + RAND() * @maxUnitsForOasis1))
|
|
||||||
WHEN 2 THEN (FLOOR(@minUnitsForOasis2 + RAND() * @maxUnitsForOasis2))
|
|
||||||
END
|
|
||||||
);
|
|
||||||
|
|
||||||
-- +25% iron and +25% crop oasis
|
-- +25% iron and +25% crop oasis
|
||||||
UPDATE %PREFIX%units u
|
UPDATE %PREFIX%units u
|
||||||
JOIN %PREFIX%odata o
|
JOIN %PREFIX%odata o ON u.vref = o.wref
|
||||||
ON u.vref = o.wref
|
SET
|
||||||
SET
|
u31 = LEAST(u31 + FLOOR((15 + RAND() * 20) * @growthFactor),
|
||||||
u31 = u31 + FLOOR((15 + RAND() * 20) * @growthFactor),
|
CASE o.high
|
||||||
u32 = u32 + FLOOR((10 + RAND() * 15) * @growthFactor),
|
WHEN 0 THEN FLOOR(@minUnitsForOasis0 + RAND() * (@maxUnitsForOasis0 - @minUnitsForOasis0))
|
||||||
u34 = u34 + FLOOR((0 + RAND() * 10) * @growthFactor),
|
WHEN 1 THEN FLOOR(@minUnitsForOasis1 + RAND() * (@maxUnitsForOasis1 - @minUnitsForOasis1))
|
||||||
u39 = u39 + FLOOR((0 + RAND() * 3) * @growthFactor)
|
WHEN 2 THEN FLOOR(@minUnitsForOasis2 + RAND() * (@maxUnitsForOasis2 - @minUnitsForOasis2))
|
||||||
WHERE
|
END),
|
||||||
(
|
u32 = LEAST(u32 + FLOOR((10 + RAND() * 15) * @growthFactor),
|
||||||
(
|
CASE o.high
|
||||||
@firstVillage = -1
|
WHEN 0 THEN FLOOR(@minUnitsForOasis0 + RAND() * (@maxUnitsForOasis0 - @minUnitsForOasis0))
|
||||||
AND
|
WHEN 1 THEN FLOOR(@minUnitsForOasis1 + RAND() * (@maxUnitsForOasis1 - @minUnitsForOasis1))
|
||||||
vref IN(
|
WHEN 2 THEN FLOOR(@minUnitsForOasis2 + RAND() * (@maxUnitsForOasis2 - @minUnitsForOasis2))
|
||||||
SELECT
|
END),
|
||||||
id
|
u34 = LEAST(u34 + FLOOR((0 + RAND() * 10) * @growthFactor),
|
||||||
FROM
|
CASE o.high
|
||||||
%PREFIX%wdata
|
WHEN 0 THEN FLOOR(@minUnitsForOasis0 + RAND() * (@maxUnitsForOasis0 - @minUnitsForOasis0))
|
||||||
WHERE
|
WHEN 1 THEN FLOOR(@minUnitsForOasis1 + RAND() * (@maxUnitsForOasis1 - @minUnitsForOasis1))
|
||||||
oasistype IN(9)
|
WHEN 2 THEN FLOOR(@minUnitsForOasis2 + RAND() * (@maxUnitsForOasis2 - @minUnitsForOasis2))
|
||||||
)
|
END),
|
||||||
)
|
u39 = LEAST(u39 + FLOOR((0 + RAND() * 3) * @growthFactor),
|
||||||
OR
|
CASE o.high
|
||||||
(
|
WHEN 0 THEN FLOOR(@minUnitsForOasis0 + RAND() * (@maxUnitsForOasis0 - @minUnitsForOasis0))
|
||||||
@firstVillage > -1
|
WHEN 1 THEN FLOOR(@minUnitsForOasis1 + RAND() * (@maxUnitsForOasis1 - @minUnitsForOasis1))
|
||||||
AND
|
WHEN 2 THEN FLOOR(@minUnitsForOasis2 + RAND() * (@maxUnitsForOasis2 - @minUnitsForOasis2))
|
||||||
vref IN ( SELECT id FROM %PREFIX%oids )
|
END),
|
||||||
)
|
WHERE
|
||||||
)
|
(
|
||||||
AND u31 <= (
|
(@firstVillage = -1 AND u.vref IN (SELECT id FROM %PREFIX%wdata WHERE oasistype = 9))
|
||||||
CASE o.high
|
OR
|
||||||
WHEN 0 THEN (FLOOR(@minUnitsForOasis0 + RAND() * @maxUnitsForOasis0))
|
(@firstVillage > -1 AND u.vref IN (SELECT id FROM %PREFIX%oids))
|
||||||
WHEN 1 THEN (FLOOR(@minUnitsForOasis1 + RAND() * @maxUnitsForOasis1))
|
);
|
||||||
WHEN 2 THEN (FLOOR(@minUnitsForOasis2 + RAND() * @maxUnitsForOasis2))
|
|
||||||
END
|
|
||||||
)
|
|
||||||
AND u32 <= (
|
|
||||||
CASE o.high
|
|
||||||
WHEN 0 THEN (FLOOR(@minUnitsForOasis0 + RAND() * @maxUnitsForOasis0))
|
|
||||||
WHEN 1 THEN (FLOOR(@minUnitsForOasis1 + RAND() * @maxUnitsForOasis1))
|
|
||||||
WHEN 2 THEN (FLOOR(@minUnitsForOasis2 + RAND() * @maxUnitsForOasis2))
|
|
||||||
END
|
|
||||||
)
|
|
||||||
AND u34 <= (
|
|
||||||
CASE o.high
|
|
||||||
WHEN 0 THEN (FLOOR(@minUnitsForOasis0 + RAND() * @maxUnitsForOasis0))
|
|
||||||
WHEN 1 THEN (FLOOR(@minUnitsForOasis1 + RAND() * @maxUnitsForOasis1))
|
|
||||||
WHEN 2 THEN (FLOOR(@minUnitsForOasis2 + RAND() * @maxUnitsForOasis2))
|
|
||||||
END
|
|
||||||
);
|
|
||||||
|
|
||||||
-- +25% crop oasis
|
-- +25% crop oasis
|
||||||
UPDATE %PREFIX%units u
|
UPDATE %PREFIX%units u
|
||||||
JOIN %PREFIX%odata o
|
JOIN %PREFIX%odata o ON u.vref = o.wref
|
||||||
ON u.vref = o.wref
|
SET
|
||||||
SET
|
u31 = LEAST(u31 + FLOOR((5 + RAND() * 15) * @growthFactor),
|
||||||
u31 = u31 + FLOOR((5 + RAND() * 15) * @growthFactor),
|
CASE o.high
|
||||||
u33 = u33 + FLOOR((5 + RAND() * 10) * @growthFactor),
|
WHEN 0 THEN FLOOR(@minUnitsForOasis0 + RAND() * (@maxUnitsForOasis0 - @minUnitsForOasis0))
|
||||||
u37 = u37 + FLOOR((0 + RAND() * 10) * @growthFactor),
|
WHEN 1 THEN FLOOR(@minUnitsForOasis1 + RAND() * (@maxUnitsForOasis1 - @minUnitsForOasis1))
|
||||||
u38 = u38 + FLOOR((0 + RAND() * 5) * @growthFactor),
|
WHEN 2 THEN FLOOR(@minUnitsForOasis2 + RAND() * (@maxUnitsForOasis2 - @minUnitsForOasis2))
|
||||||
u39 = u39 + FLOOR((0 + RAND() * 5) * @growthFactor)
|
END),
|
||||||
WHERE
|
u33 = LEAST(u33 + FLOOR((5 + RAND() * 10) * @growthFactor),
|
||||||
(
|
CASE o.high
|
||||||
(
|
WHEN 0 THEN FLOOR(@minUnitsForOasis0 + RAND() * (@maxUnitsForOasis0 - @minUnitsForOasis0))
|
||||||
@firstVillage = -1
|
WHEN 1 THEN FLOOR(@minUnitsForOasis1 + RAND() * (@maxUnitsForOasis1 - @minUnitsForOasis1))
|
||||||
AND
|
WHEN 2 THEN FLOOR(@minUnitsForOasis2 + RAND() * (@maxUnitsForOasis2 - @minUnitsForOasis2))
|
||||||
vref IN(
|
END),
|
||||||
SELECT
|
u37 = LEAST(u37 + FLOOR((0 + RAND() * 10) * @growthFactor),
|
||||||
id
|
CASE o.high
|
||||||
FROM
|
WHEN 0 THEN FLOOR(@minUnitsForOasis0 + RAND() * (@maxUnitsForOasis0 - @minUnitsForOasis0))
|
||||||
%PREFIX%wdata
|
WHEN 1 THEN FLOOR(@minUnitsForOasis1 + RAND() * (@maxUnitsForOasis1 - @minUnitsForOasis1))
|
||||||
WHERE
|
WHEN 2 THEN FLOOR(@minUnitsForOasis2 + RAND() * (@maxUnitsForOasis2 - @minUnitsForOasis2))
|
||||||
oasistype IN(10,11)
|
END),
|
||||||
)
|
u38 = LEAST(u38 + FLOOR((0 + RAND() * 5) * @growthFactor),
|
||||||
)
|
CASE o.high
|
||||||
OR
|
WHEN 0 THEN FLOOR(@minUnitsForOasis0 + RAND() * (@maxUnitsForOasis0 - @minUnitsForOasis0))
|
||||||
(
|
WHEN 1 THEN FLOOR(@minUnitsForOasis1 + RAND() * (@maxUnitsForOasis1 - @minUnitsForOasis1))
|
||||||
@firstVillage > -1
|
WHEN 2 THEN FLOOR(@minUnitsForOasis2 + RAND() * (@maxUnitsForOasis2 - @minUnitsForOasis2))
|
||||||
AND
|
END),
|
||||||
vref IN ( SELECT id FROM %PREFIX%oids )
|
u39 = LEAST(u39 + FLOOR((0 + RAND() * 5) * @growthFactor),
|
||||||
)
|
CASE o.high
|
||||||
)
|
WHEN 0 THEN FLOOR(@minUnitsForOasis0 + RAND() * (@maxUnitsForOasis0 - @minUnitsForOasis0))
|
||||||
AND u31 <= (
|
WHEN 1 THEN FLOOR(@minUnitsForOasis1 + RAND() * (@maxUnitsForOasis1 - @minUnitsForOasis1))
|
||||||
CASE o.high
|
WHEN 2 THEN FLOOR(@minUnitsForOasis2 + RAND() * (@maxUnitsForOasis2 - @minUnitsForOasis2))
|
||||||
WHEN 0 THEN (FLOOR(@minUnitsForOasis0 + RAND() * @maxUnitsForOasis0))
|
END),
|
||||||
WHEN 1 THEN (FLOOR(@minUnitsForOasis1 + RAND() * @maxUnitsForOasis1))
|
WHERE
|
||||||
WHEN 2 THEN (FLOOR(@minUnitsForOasis2 + RAND() * @maxUnitsForOasis2))
|
(
|
||||||
END
|
(@firstVillage = -1 AND u.vref IN (SELECT id FROM %PREFIX%wdata WHERE oasistype IN (10,11)))
|
||||||
)
|
OR
|
||||||
AND u33 <= (
|
(@firstVillage > -1 AND u.vref IN (SELECT id FROM %PREFIX%oids))
|
||||||
CASE o.high
|
);
|
||||||
WHEN 0 THEN (FLOOR(@minUnitsForOasis0 + RAND() * @maxUnitsForOasis0))
|
|
||||||
WHEN 1 THEN (FLOOR(@minUnitsForOasis1 + RAND() * @maxUnitsForOasis1))
|
|
||||||
WHEN 2 THEN (FLOOR(@minUnitsForOasis2 + RAND() * @maxUnitsForOasis2))
|
|
||||||
END
|
|
||||||
)
|
|
||||||
AND u37 <= (
|
|
||||||
CASE o.high
|
|
||||||
WHEN 0 THEN (FLOOR(@minUnitsForOasis0 + RAND() * @maxUnitsForOasis0))
|
|
||||||
WHEN 1 THEN (FLOOR(@minUnitsForOasis1 + RAND() * @maxUnitsForOasis1))
|
|
||||||
WHEN 2 THEN (FLOOR(@minUnitsForOasis2 + RAND() * @maxUnitsForOasis2))
|
|
||||||
END
|
|
||||||
)
|
|
||||||
AND u38 <= (
|
|
||||||
CASE o.high
|
|
||||||
WHEN 0 THEN (FLOOR(@minUnitsForOasis0 + RAND() * @maxUnitsForOasis0))
|
|
||||||
WHEN 1 THEN (FLOOR(@minUnitsForOasis1 + RAND() * @maxUnitsForOasis1))
|
|
||||||
WHEN 2 THEN (FLOOR(@minUnitsForOasis2 + RAND() * @maxUnitsForOasis2))
|
|
||||||
END
|
|
||||||
);
|
|
||||||
|
|
||||||
-- +50% crop oasis
|
-- +50% crop oasis
|
||||||
UPDATE %PREFIX%units u
|
UPDATE %PREFIX%units u
|
||||||
JOIN %PREFIX%odata o
|
JOIN %PREFIX%odata o ON u.vref = o.wref
|
||||||
ON u.vref = o.wref
|
SET
|
||||||
SET
|
u31 = LEAST(u31 + FLOOR((10 + RAND() * 15) * @growthFactor),
|
||||||
u31 = u31 + FLOOR((10 + RAND() * 15) * @growthFactor),
|
CASE o.high
|
||||||
u33 = u33 + FLOOR((5 + RAND() * 10) * @growthFactor),
|
WHEN 0 THEN FLOOR(@minUnitsForOasis0 + RAND() * (@maxUnitsForOasis0 - @minUnitsForOasis0))
|
||||||
u37 = u37 + FLOOR((0 + RAND() * 10) * @growthFactor),
|
WHEN 1 THEN FLOOR(@minUnitsForOasis1 + RAND() * (@maxUnitsForOasis1 - @minUnitsForOasis1))
|
||||||
u38 = u38 + FLOOR((0 + RAND() * 5) * @growthFactor),
|
WHEN 2 THEN FLOOR(@minUnitsForOasis2 + RAND() * (@maxUnitsForOasis2 - @minUnitsForOasis2))
|
||||||
u39 = u39 + FLOOR((0 + RAND() * 5) * @growthFactor),
|
END),
|
||||||
u40 = u40 + FLOOR((0 + RAND() * 3) * @growthFactor)
|
u33 = LEAST(u33 + FLOOR((5 + RAND() * 10) * @growthFactor),
|
||||||
WHERE
|
CASE o.high
|
||||||
(
|
WHEN 0 THEN FLOOR(@minUnitsForOasis0 + RAND() * (@maxUnitsForOasis0 - @minUnitsForOasis0))
|
||||||
(
|
WHEN 1 THEN FLOOR(@minUnitsForOasis1 + RAND() * (@maxUnitsForOasis1 - @minUnitsForOasis1))
|
||||||
@firstVillage = -1
|
WHEN 2 THEN FLOOR(@minUnitsForOasis2 + RAND() * (@maxUnitsForOasis2 - @minUnitsForOasis2))
|
||||||
AND
|
END),
|
||||||
vref IN(
|
u37 = LEAST(u37 + FLOOR((0 + RAND() * 10) * @growthFactor),
|
||||||
SELECT
|
CASE o.high
|
||||||
id
|
WHEN 0 THEN FLOOR(@minUnitsForOasis0 + RAND() * (@maxUnitsForOasis0 - @minUnitsForOasis0))
|
||||||
FROM
|
WHEN 1 THEN FLOOR(@minUnitsForOasis1 + RAND() * (@maxUnitsForOasis1 - @minUnitsForOasis1))
|
||||||
%PREFIX%wdata
|
WHEN 2 THEN FLOOR(@minUnitsForOasis2 + RAND() * (@maxUnitsForOasis2 - @minUnitsForOasis2))
|
||||||
WHERE
|
END),
|
||||||
oasistype IN(12)
|
u38 = LEAST(u38 + FLOOR((0 + RAND() * 5) * @growthFactor),
|
||||||
)
|
CASE o.high
|
||||||
)
|
WHEN 0 THEN FLOOR(@minUnitsForOasis0 + RAND() * (@maxUnitsForOasis0 - @minUnitsForOasis0))
|
||||||
OR
|
WHEN 1 THEN FLOOR(@minUnitsForOasis1 + RAND() * (@maxUnitsForOasis1 - @minUnitsForOasis1))
|
||||||
(
|
WHEN 2 THEN FLOOR(@minUnitsForOasis2 + RAND() * (@maxUnitsForOasis2 - @minUnitsForOasis2))
|
||||||
@firstVillage > -1
|
END),
|
||||||
AND
|
u39 = LEAST(u39 + FLOOR((0 + RAND() * 5) * @growthFactor),
|
||||||
vref IN ( SELECT id FROM %PREFIX%oids )
|
CASE o.high
|
||||||
)
|
WHEN 0 THEN FLOOR(@minUnitsForOasis0 + RAND() * (@maxUnitsForOasis0 - @minUnitsForOasis0))
|
||||||
)
|
WHEN 1 THEN FLOOR(@minUnitsForOasis1 + RAND() * (@maxUnitsForOasis1 - @minUnitsForOasis1))
|
||||||
AND u31 <= (
|
WHEN 2 THEN FLOOR(@minUnitsForOasis2 + RAND() * (@maxUnitsForOasis2 - @minUnitsForOasis2))
|
||||||
CASE o.high
|
END),
|
||||||
WHEN 0 THEN (FLOOR(@minUnitsForOasis0 + RAND() * @maxUnitsForOasis0))
|
u40 = LEAST(u40 + FLOOR((0 + RAND() * 3) * @growthFactor),
|
||||||
WHEN 1 THEN (FLOOR(@minUnitsForOasis1 + RAND() * @maxUnitsForOasis1))
|
CASE o.high
|
||||||
WHEN 2 THEN (FLOOR(@minUnitsForOasis2 + RAND() * @maxUnitsForOasis2))
|
WHEN 0 THEN FLOOR(@minUnitsForOasis0 + RAND() * (@maxUnitsForOasis0 - @minUnitsForOasis0))
|
||||||
END
|
WHEN 1 THEN FLOOR(@minUnitsForOasis1 + RAND() * (@maxUnitsForOasis1 - @minUnitsForOasis1))
|
||||||
)
|
WHEN 2 THEN FLOOR(@minUnitsForOasis2 + RAND() * (@maxUnitsForOasis2 - @minUnitsForOasis2))
|
||||||
AND u33 <= (
|
END),
|
||||||
CASE o.high
|
WHERE
|
||||||
WHEN 0 THEN (FLOOR(@minUnitsForOasis0 + RAND() * @maxUnitsForOasis0))
|
(
|
||||||
WHEN 1 THEN (FLOOR(@minUnitsForOasis1 + RAND() * @maxUnitsForOasis1))
|
(@firstVillage = -1 AND u.vref IN (SELECT id FROM %PREFIX%wdata WHERE oasistype = 12))
|
||||||
WHEN 2 THEN (FLOOR(@minUnitsForOasis2 + RAND() * @maxUnitsForOasis2))
|
OR
|
||||||
END
|
(@firstVillage > -1 AND u.vref IN (SELECT id FROM %PREFIX%oids))
|
||||||
)
|
);
|
||||||
AND u37 <= (
|
|
||||||
CASE o.high
|
|
||||||
WHEN 0 THEN (FLOOR(@minUnitsForOasis0 + RAND() * @maxUnitsForOasis0))
|
|
||||||
WHEN 1 THEN (FLOOR(@minUnitsForOasis1 + RAND() * @maxUnitsForOasis1))
|
|
||||||
WHEN 2 THEN (FLOOR(@minUnitsForOasis2 + RAND() * @maxUnitsForOasis2))
|
|
||||||
END
|
|
||||||
)
|
|
||||||
AND u38 <= (
|
|
||||||
CASE o.high
|
|
||||||
WHEN 0 THEN (FLOOR(@minUnitsForOasis0 + RAND() * @maxUnitsForOasis0))
|
|
||||||
WHEN 1 THEN (FLOOR(@minUnitsForOasis1 + RAND() * @maxUnitsForOasis1))
|
|
||||||
WHEN 2 THEN (FLOOR(@minUnitsForOasis2 + RAND() * @maxUnitsForOasis2))
|
|
||||||
END
|
|
||||||
)
|
|
||||||
AND u39 <= (
|
|
||||||
CASE o.high
|
|
||||||
WHEN 0 THEN (FLOOR(@minUnitsForOasis0 + RAND() * @maxUnitsForOasis0))
|
|
||||||
WHEN 1 THEN (FLOOR(@minUnitsForOasis1 + RAND() * @maxUnitsForOasis1))
|
|
||||||
WHEN 2 THEN (FLOOR(@minUnitsForOasis2 + RAND() * @maxUnitsForOasis2))
|
|
||||||
END
|
|
||||||
);
|
|
||||||
|
|||||||
Reference in New Issue
Block a user