mirror of
https://github.com/ComfyFactory/ComfyFactorio.git
synced 2025-01-10 00:43:27 +02:00
229 lines
39 KiB
Lua
229 lines
39 KiB
Lua
--This will add a new game mechanic so that containers with explosives actually go boom when they get damaged.
|
|
--Made by MewMew
|
|
local math_min = math.min
|
|
local math_random = math.random
|
|
|
|
local Table = require 'modules.scrap_towny_ffa.table'
|
|
local Pollution = require "modules.scrap_towny_ffa.pollution"
|
|
|
|
--local damage_per_explosive = 100
|
|
local damage_per_explosive = 50
|
|
local empty_tile_damage_decay = 100
|
|
local out_of_map_tile_health = 1500
|
|
local max_volatility = 20
|
|
|
|
local explosive_items = {
|
|
["explosives"] = 1,
|
|
["land-mine"] = 1,
|
|
["grenade"] = 1,
|
|
["cluster-grenade"] = 3,
|
|
["artillery-shell"] = 5,
|
|
["cannon-shell"] = 3,
|
|
["explosive-cannon-shell"] = 5,
|
|
["explosive-uranium-cannon-shell"] = 5,
|
|
["uranium-cannon-shell"] = 5,
|
|
-- ["atomic-bomb"] = 100,
|
|
["explosive-rocket"] = 5,
|
|
["rocket"] = 2,
|
|
["flamethrower-ammo"] = 2,
|
|
["petroleum-gas-barrel"] = 2,
|
|
-- ["crude-oil-barrel"] = 2,
|
|
-- ["light-oil-barrel"] = 2,
|
|
-- ["heavy-oil-barrel"] = 2,
|
|
-- ["lubricant-barrel"] = 1,
|
|
-- ["shotgun-shell"] = 1,
|
|
-- ["piercing-shotgun-shell"] = 1,
|
|
-- ["firearm-magazine"] = 1,
|
|
-- ["piercing-rounds-magazine"] = 1,
|
|
-- ["uranium-rounds-magazine"] = 1,
|
|
["cliff-explosives"] = 2,
|
|
-- ["solid-fuel"] = 1
|
|
}
|
|
|
|
local circle_coordinates = {
|
|
[1] = { { x = 0, y = 0 } },
|
|
[2] = { { x = -1, y = -1 }, { x = 1, y = -1 }, { x = 0, y = -1 }, { x = -1, y = 0 }, { x = -1, y = 1 }, { x = 0, y = 1 }, { x = 1, y = 1 }, { x = 1, y = 0 } },
|
|
[3] = { { x = -2, y = -1 }, { x = -1, y = -2 }, { x = 1, y = -2 }, { x = 0, y = -2 }, { x = 2, y = -1 }, { x = -2, y = 1 }, { x = -2, y = 0 }, { x = 2, y = 1 }, { x = 2, y = 0 }, { x = -1, y = 2 }, { x = 1, y = 2 }, { x = 0, y = 2 } },
|
|
[4] = { { x = -1, y = -3 }, { x = 1, y = -3 }, { x = 0, y = -3 }, { x = -3, y = -1 }, { x = -2, y = -2 }, { x = 3, y = -1 }, { x = 2, y = -2 }, { x = -3, y = 0 }, { x = -3, y = 1 }, { x = 3, y = 1 }, { x = 3, y = 0 }, { x = -2, y = 2 }, { x = -1, y = 3 }, { x = 0, y = 3 }, { x = 1, y = 3 }, { x = 2, y = 2 } },
|
|
[5] = { { x = -3, y = -3 }, { x = -2, y = -3 }, { x = -1, y = -4 }, { x = -2, y = -4 }, { x = 1, y = -4 }, { x = 0, y = -4 }, { x = 2, y = -3 }, { x = 3, y = -3 }, { x = 2, y = -4 }, { x = -3, y = -2 }, { x = -4, y = -1 }, { x = -4, y = -2 }, { x = 3, y = -2 }, { x = 4, y = -1 }, { x = 4, y = -2 }, { x = -4, y = 1 }, { x = -4, y = 0 }, { x = 4, y = 1 }, { x = 4, y = 0 }, { x = -3, y = 3 }, { x = -3, y = 2 }, { x = -4, y = 2 }, { x = -2, y = 3 }, { x = 2, y = 3 }, { x = 3, y = 3 }, { x = 3, y = 2 }, { x = 4, y = 2 }, { x = -2, y = 4 }, { x = -1, y = 4 }, { x = 0, y = 4 }, { x = 1, y = 4 }, { x = 2, y = 4 } },
|
|
[6] = { { x = -1, y = -5 }, { x = -2, y = -5 }, { x = 1, y = -5 }, { x = 0, y = -5 }, { x = 2, y = -5 }, { x = -3, y = -4 }, { x = -4, y = -3 }, { x = 3, y = -4 }, { x = 4, y = -3 }, { x = -5, y = -1 }, { x = -5, y = -2 }, { x = 5, y = -1 }, { x = 5, y = -2 }, { x = -5, y = 1 }, { x = -5, y = 0 }, { x = 5, y = 1 }, { x = 5, y = 0 }, { x = -5, y = 2 }, { x = -4, y = 3 }, { x = 4, y = 3 }, { x = 5, y = 2 }, { x = -3, y = 4 }, { x = -2, y = 5 }, { x = -1, y = 5 }, { x = 0, y = 5 }, { x = 1, y = 5 }, { x = 3, y = 4 }, { x = 2, y = 5 } },
|
|
[7] = { { x = -4, y = -5 }, { x = -3, y = -5 }, { x = -2, y = -6 }, { x = -1, y = -6 }, { x = 0, y = -6 }, { x = 1, y = -6 }, { x = 3, y = -5 }, { x = 2, y = -6 }, { x = 4, y = -5 }, { x = -5, y = -4 }, { x = -5, y = -3 }, { x = -4, y = -4 }, { x = 4, y = -4 }, { x = 5, y = -4 }, { x = 5, y = -3 }, { x = -6, y = -1 }, { x = -6, y = -2 }, { x = 6, y = -1 }, { x = 6, y = -2 }, { x = -6, y = 1 }, { x = -6, y = 0 }, { x = 6, y = 1 }, { x = 6, y = 0 }, { x = -5, y = 3 }, { x = -6, y = 2 }, { x = 5, y = 3 }, { x = 6, y = 2 }, { x = -5, y = 4 }, { x = -4, y = 4 }, { x = -4, y = 5 }, { x = -3, y = 5 }, { x = 3, y = 5 }, { x = 4, y = 4 }, { x = 5, y = 4 }, { x = 4, y = 5 }, { x = -1, y = 6 }, { x = -2, y = 6 }, { x = 1, y = 6 }, { x = 0, y = 6 }, { x = 2, y = 6 } },
|
|
[8] = { { x = -1, y = -7 }, { x = -2, y = -7 }, { x = 1, y = -7 }, { x = 0, y = -7 }, { x = 2, y = -7 }, { x = -5, y = -5 }, { x = -4, y = -6 }, { x = -3, y = -6 }, { x = 3, y = -6 }, { x = 4, y = -6 }, { x = 5, y = -5 }, { x = -6, y = -3 }, { x = -6, y = -4 }, { x = 6, y = -4 }, { x = 6, y = -3 }, { x = -7, y = -1 }, { x = -7, y = -2 }, { x = 7, y = -1 }, { x = 7, y = -2 }, { x = -7, y = 1 }, { x = -7, y = 0 }, { x = 7, y = 1 }, { x = 7, y = 0 }, { x = -7, y = 2 }, { x = -6, y = 3 }, { x = 6, y = 3 }, { x = 7, y = 2 }, { x = -5, y = 5 }, { x = -6, y = 4 }, { x = 5, y = 5 }, { x = 6, y = 4 }, { x = -3, y = 6 }, { x = -4, y = 6 }, { x = -2, y = 7 }, { x = -1, y = 7 }, { x = 0, y = 7 }, { x = 1, y = 7 }, { x = 3, y = 6 }, { x = 2, y = 7 }, { x = 4, y = 6 } },
|
|
[9] = { { x = -4, y = -7 }, { x = -3, y = -7 }, { x = -2, y = -8 }, { x = -1, y = -8 }, { x = 0, y = -8 }, { x = 1, y = -8 }, { x = 3, y = -7 }, { x = 2, y = -8 }, { x = 4, y = -7 }, { x = -5, y = -6 }, { x = -6, y = -6 }, { x = -6, y = -5 }, { x = 5, y = -6 }, { x = 6, y = -5 }, { x = 6, y = -6 }, { x = -7, y = -4 }, { x = -7, y = -3 }, { x = 7, y = -4 }, { x = 7, y = -3 }, { x = -8, y = -2 }, { x = -8, y = -1 }, { x = 8, y = -1 }, { x = 8, y = -2 }, { x = -8, y = 0 }, { x = -8, y = 1 }, { x = 8, y = 1 }, { x = 8, y = 0 }, { x = -7, y = 3 }, { x = -8, y = 2 }, { x = 7, y = 3 }, { x = 8, y = 2 }, { x = -7, y = 4 }, { x = -6, y = 5 }, { x = 6, y = 5 }, { x = 7, y = 4 }, { x = -5, y = 6 }, { x = -6, y = 6 }, { x = -4, y = 7 }, { x = -3, y = 7 }, { x = 3, y = 7 }, { x = 5, y = 6 }, { x = 4, y = 7 }, { x = 6, y = 6 }, { x = -2, y = 8 }, { x = -1, y = 8 }, { x = 0, y = 8 }, { x = 1, y = 8 }, { x = 2, y = 8 } },
|
|
[10] = { { x = -3, y = -9 }, { x = -1, y = -9 }, { x = -2, y = -9 }, { x = 1, y = -9 }, { x = 0, y = -9 }, { x = 3, y = -9 }, { x = 2, y = -9 }, { x = -5, y = -7 }, { x = -6, y = -7 }, { x = -5, y = -8 }, { x = -4, y = -8 }, { x = -3, y = -8 }, { x = 3, y = -8 }, { x = 5, y = -7 }, { x = 5, y = -8 }, { x = 4, y = -8 }, { x = 6, y = -7 }, { x = -7, y = -5 }, { x = -7, y = -6 }, { x = -8, y = -5 }, { x = 7, y = -5 }, { x = 7, y = -6 }, { x = 8, y = -5 }, { x = -9, y = -3 }, { x = -8, y = -4 }, { x = -8, y = -3 }, { x = 8, y = -4 }, { x = 8, y = -3 }, { x = 9, y = -3 }, { x = -9, y = -1 }, { x = -9, y = -2 }, { x = 9, y = -1 }, { x = 9, y = -2 }, { x = -9, y = 1 }, { x = -9, y = 0 }, { x = 9, y = 1 }, { x = 9, y = 0 }, { x = -9, y = 3 }, { x = -9, y = 2 }, { x = -8, y = 3 }, { x = 8, y = 3 }, { x = 9, y = 3 }, { x = 9, y = 2 }, { x = -7, y = 5 }, { x = -8, y = 5 }, { x = -8, y = 4 }, { x = 7, y = 5 }, { x = 8, y = 5 }, { x = 8, y = 4 }, { x = -7, y = 6 }, { x = -6, y = 7 }, { x = -5, y = 7 }, { x = 5, y = 7 }, { x = 7, y = 6 }, { x = 6, y = 7 }, { x = -5, y = 8 }, { x = -4, y = 8 }, { x = -3, y = 8 }, { x = -3, y = 9 }, { x = -2, y = 9 }, { x = -1, y = 9 }, { x = 0, y = 9 }, { x = 1, y = 9 }, { x = 3, y = 8 }, { x = 2, y = 9 }, { x = 3, y = 9 }, { x = 5, y = 8 }, { x = 4, y = 8 } },
|
|
[11] = { { x = -5, y = -9 }, { x = -4, y = -9 }, { x = -3, y = -10 }, { x = -1, y = -10 }, { x = -2, y = -10 }, { x = 1, y = -10 }, { x = 0, y = -10 }, { x = 3, y = -10 }, { x = 2, y = -10 }, { x = 5, y = -9 }, { x = 4, y = -9 }, { x = -7, y = -7 }, { x = -6, y = -8 }, { x = 7, y = -7 }, { x = 6, y = -8 }, { x = -9, y = -5 }, { x = -8, y = -6 }, { x = 9, y = -5 }, { x = 8, y = -6 }, { x = -9, y = -4 }, { x = -10, y = -3 }, { x = 9, y = -4 }, { x = 10, y = -3 }, { x = -10, y = -2 }, { x = -10, y = -1 }, { x = 10, y = -1 }, { x = 10, y = -2 }, { x = -10, y = 0 }, { x = -10, y = 1 }, { x = 10, y = 1 }, { x = 10, y = 0 }, { x = -10, y = 2 }, { x = -10, y = 3 }, { x = 10, y = 3 }, { x = 10, y = 2 }, { x = -9, y = 4 }, { x = -9, y = 5 }, { x = 9, y = 5 }, { x = 9, y = 4 }, { x = -8, y = 6 }, { x = -7, y = 7 }, { x = 7, y = 7 }, { x = 8, y = 6 }, { x = -6, y = 8 }, { x = -5, y = 9 }, { x = -4, y = 9 }, { x = 4, y = 9 }, { x = 5, y = 9 }, { x = 6, y = 8 }, { x = -3, y = 10 }, { x = -2, y = 10 }, { x = -1, y = 10 }, { x = 0, y = 10 }, { x = 1, y = 10 }, { x = 2, y = 10 }, { x = 3, y = 10 } },
|
|
[12] = { { x = -3, y = -11 }, { x = -2, y = -11 }, { x = -1, y = -11 }, { x = 0, y = -11 }, { x = 1, y = -11 }, { x = 2, y = -11 }, { x = 3, y = -11 }, { x = -7, y = -9 }, { x = -6, y = -9 }, { x = -5, y = -10 }, { x = -4, y = -10 }, { x = 5, y = -10 }, { x = 4, y = -10 }, { x = 7, y = -9 }, { x = 6, y = -9 }, { x = -9, y = -7 }, { x = -7, y = -8 }, { x = -8, y = -8 }, { x = -8, y = -7 }, { x = 7, y = -8 }, { x = 8, y = -7 }, { x = 8, y = -8 }, { x = 9, y = -7 }, { x = -9, y = -6 }, { x = -10, y = -5 }, { x = 9, y = -6 }, { x = 10, y = -5 }, { x = -11, y = -3 }, { x = -10, y = -4 }, { x = 10, y = -4 }, { x = 11, y = -3 }, { x = -11, y = -2 }, { x = -11, y = -1 }, { x = 11, y = -1 }, { x = 11, y = -2 }, { x = -11, y = 0 }, { x = -11, y = 1 }, { x = 11, y = 1 }, { x = 11, y = 0 }, { x = -11, y = 2 }, { x = -11, y = 3 }, { x = 11, y = 3 }, { x = 11, y = 2 }, { x = -10, y = 5 }, { x = -10, y = 4 }, { x = 10, y = 5 }, { x = 10, y = 4 }, { x = -9, y = 7 }, { x = -9, y = 6 }, { x = -8, y = 7 }, { x = 8, y = 7 }, { x = 9, y = 7 }, { x = 9, y = 6 }, { x = -8, y = 8 }, { x = -7, y = 8 }, { x = -7, y = 9 }, { x = -6, y = 9 }, { x = 7, y = 8 }, { x = 7, y = 9 }, { x = 6, y = 9 }, { x = 8, y = 8 }, { x = -5, y = 10 }, { x = -4, y = 10 }, { x = -3, y = 11 }, { x = -2, y = 11 }, { x = -1, y = 11 }, { x = 0, y = 11 }, { x = 1, y = 11 }, { x = 2, y = 11 }, { x = 3, y = 11 }, { x = 4, y = 10 }, { x = 5, y = 10 } },
|
|
[13] = { { x = -5, y = -11 }, { x = -4, y = -11 }, { x = -3, y = -12 }, { x = -1, y = -12 }, { x = -2, y = -12 }, { x = 1, y = -12 }, { x = 0, y = -12 }, { x = 3, y = -12 }, { x = 2, y = -12 }, { x = 4, y = -11 }, { x = 5, y = -11 }, { x = -8, y = -9 }, { x = -7, y = -10 }, { x = -6, y = -10 }, { x = 6, y = -10 }, { x = 7, y = -10 }, { x = 8, y = -9 }, { x = -10, y = -7 }, { x = -9, y = -8 }, { x = 9, y = -8 }, { x = 10, y = -7 }, { x = -11, y = -5 }, { x = -10, y = -6 }, { x = 10, y = -6 }, { x = 11, y = -5 }, { x = -11, y = -4 }, { x = -12, y = -3 }, { x = 11, y = -4 }, { x = 12, y = -3 }, { x = -12, y = -1 }, { x = -12, y = -2 }, { x = 12, y = -1 }, { x = 12, y = -2 }, { x = -12, y = 1 }, { x = -12, y = 0 }, { x = 12, y = 1 }, { x = 12, y = 0 }, { x = -12, y = 3 }, { x = -12, y = 2 }, { x = 12, y = 3 }, { x = 12, y = 2 }, { x = -11, y = 5 }, { x = -11, y = 4 }, { x = 11, y = 4 }, { x = 11, y = 5 }, { x = -10, y = 7 }, { x = -10, y = 6 }, { x = 10, y = 6 }, { x = 10, y = 7 }, { x = -9, y = 8 }, { x = -8, y = 9 }, { x = 9, y = 8 }, { x = 8, y = 9 }, { x = -7, y = 10 }, { x = -5, y = 11 }, { x = -6, y = 10 }, { x = -4, y = 11 }, { x = 5, y = 11 }, { x = 4, y = 11 }, { x = 7, y = 10 }, { x = 6, y = 10 }, { x = -3, y = 12 }, { x = -2, y = 12 }, { x = -1, y = 12 }, { x = 0, y = 12 }, { x = 1, y = 12 }, { x = 2, y = 12 }, { x = 3, y = 12 } },
|
|
[14] = { { x = -3, y = -13 }, { x = -1, y = -13 }, { x = -2, y = -13 }, { x = 1, y = -13 }, { x = 0, y = -13 }, { x = 3, y = -13 }, { x = 2, y = -13 }, { x = -7, y = -11 }, { x = -6, y = -11 }, { x = -5, y = -12 }, { x = -6, y = -12 }, { x = -4, y = -12 }, { x = 5, y = -12 }, { x = 4, y = -12 }, { x = 7, y = -11 }, { x = 6, y = -11 }, { x = 6, y = -12 }, { x = -10, y = -9 }, { x = -9, y = -9 }, { x = -9, y = -10 }, { x = -8, y = -10 }, { x = 9, y = -9 }, { x = 9, y = -10 }, { x = 8, y = -10 }, { x = 10, y = -9 }, { x = -11, y = -7 }, { x = -10, y = -8 }, { x = 11, y = -7 }, { x = 10, y = -8 }, { x = -11, y = -6 }, { x = -12, y = -6 }, { x = -12, y = -5 }, { x = 11, y = -6 }, { x = 12, y = -6 }, { x = 12, y = -5 }, { x = -13, y = -3 }, { x = -12, y = -4 }, { x = 12, y = -4 }, { x = 13, y = -3 }, { x = -13, y = -2 }, { x = -13, y = -1 }, { x = 13, y = -1 }, { x = 13, y = -2 }, { x = -13, y = 0 }, { x = -13, y = 1 }, { x = 13, y = 1 }, { x = 13, y = 0 }, { x = -13, y = 2 }, { x = -13, y = 3 }, { x = 13, y = 3 }, { x = 13, y = 2 }, { x = -12, y = 5 }, { x = -12, y = 4 }, { x = 12, y = 5 }, { x = 12, y = 4 }, { x = -11, y = 6 }, { x = -11, y = 7 }, { x = -12, y = 6 }, { x = 11, y = 7 }, { x = 11, y = 6 }, { x = 12, y = 6 }, { x = -10, y = 8 }, { x = -10, y = 9 }, { x = -9, y = 9 }, { x = 9, y = 9 }, { x = 10, y = 9 }, { x = 10, y = 8 }, { x = -9, y = 10 }, { x = -8, y = 10 }, { x = -7, y = 11 }, { x = -6, y = 11 }, { x = 7, y = 11 }, { x = 6, y = 11 }, { x = 8, y = 10 }, { x = 9, y = 10 }, { x = -6, y = 12 }, { x = -5, y = 12 }, { x = -4, y = 12 }, { x = -3, y = 13 }, { x = -2, y = 13 }, { x = -1, y = 13 }, { x = 0, y = 13 }, { x = 1, y = 13 }, { x = 2, y = 13 }, { x = 3, y = 13 }, { x = 5, y = 12 }, { x = 4, y = 12 }, { x = 6, y = 12 } },
|
|
[15] = { { x = -5, y = -13 }, { x = -6, y = -13 }, { x = -4, y = -13 }, { x = -3, y = -14 }, { x = -1, y = -14 }, { x = -2, y = -14 }, { x = 1, y = -14 }, { x = 0, y = -14 }, { x = 3, y = -14 }, { x = 2, y = -14 }, { x = 5, y = -13 }, { x = 4, y = -13 }, { x = 6, y = -13 }, { x = -9, y = -11 }, { x = -8, y = -11 }, { x = -8, y = -12 }, { x = -7, y = -12 }, { x = 7, y = -12 }, { x = 8, y = -12 }, { x = 8, y = -11 }, { x = 9, y = -11 }, { x = -11, y = -9 }, { x = -10, y = -10 }, { x = 10, y = -10 }, { x = 11, y = -9 }, { x = -12, y = -7 }, { x = -11, y = -8 }, { x = -12, y = -8 }, { x = 11, y = -8 }, { x = 12, y = -8 }, { x = 12, y = -7 }, { x = -13, y = -5 }, { x = -13, y = -6 }, { x = 13, y = -5 }, { x = 13, y = -6 }, { x = -13, y = -4 }, { x = -14, y = -3 }, { x = 13, y = -4 }, { x = 14, y = -3 }, { x = -14, y = -2 }, { x = -14, y = -1 }, { x = 14, y = -1 }, { x = 14, y = -2 }, { x = -14, y = 0 }, { x = -14, y = 1 }, { x = 14, y = 1 }, { x = 14, y = 0 }, { x = -14, y = 2 }, { x = -14, y = 3 }, { x = 14, y = 3 }, { x = 14, y = 2 }, { x = -13, y = 4 }, { x = -13, y = 5 }, { x = 13, y = 5 }, { x = 13, y = 4 }, { x = -13, y = 6 }, { x = -12, y = 7 }, { x = 12, y = 7 }, { x = 13, y = 6 }, { x = -11, y = 9 }, { x = -11, y = 8 }, { x = -12, y = 8 }, { x = 11, y = 8 }, { x = 11, y = 9 }, { x = 12, y = 8 }, { x = -9, y = 11 }, { x = -10, y = 10 }, { x = -8, y = 11 }, { x = 9, y = 11 }, { x = 8, y = 11 }, { x = 10, y = 10 }, { x = -7, y = 12 }, { x = -8, y = 12 }, { x = -6, y = 13 }, { x = -5, y = 13 }, { x = -4, y = 13 }, { x = 5, y = 13 }, { x = 4, y = 13 }, { x = 7, y = 12 }, { x = 6, y = 13 }, { x = 8, y = 12 }, { x = -3, y = 14 }, { x = -2, y = 14 }, { x = -1, y = 14 }, { x = 0, y = 14 }, { x = 1, y = 14 }, { x = 2, y = 14 }, { x = 3, y = 14 } },
|
|
[16] = { { x = -3, y = -15 }, { x = -1, y = -15 }, { x = -2, y = -15 }, { x = 1, y = -15 }, { x = 0, y = -15 }, { x = 3, y = -15 }, { x = 2, y = -15 }, { x = -7, y = -13 }, { x = -8, y = -13 }, { x = -5, y = -14 }, { x = -6, y = -14 }, { x = -4, y = -14 }, { x = 5, y = -14 }, { x = 4, y = -14 }, { x = 7, y = -13 }, { x = 6, y = -14 }, { x = 8, y = -13 }, { x = -9, y = -12 }, { x = -10, y = -11 }, { x = 9, y = -12 }, { x = 10, y = -11 }, { x = -11, y = -10 }, { x = -12, y = -9 }, { x = 11, y = -10 }, { x = 12, y = -9 }, { x = -13, y = -7 }, { x = -13, y = -8 }, { x = 13, y = -7 }, { x = 13, y = -8 }, { x = -14, y = -6 }, { x = -14, y = -5 }, { x = 14, y = -5 }, { x = 14, y = -6 }, { x = -15, y = -3 }, { x = -14, y = -4 }, { x = 15, y = -3 }, { x = 14, y = -4 }, { x = -15, y = -2 }, { x = -15, y = -1 }, { x = 15, y = -1 }, { x = 15, y = -2 }, { x = -15, y = 0 }, { x = -15, y = 1 }, { x = 15, y = 1 }, { x = 15, y = 0 }, { x = -15, y = 2 }, { x = -15, y = 3 }, { x = 15, y = 3 }, { x = 15, y = 2 }, { x = -14, y = 5 }, { x = -14, y = 4 }, { x = 14, y = 5 }, { x = 14, y = 4 }, { x = -13, y = 7 }, { x = -14, y = 6 }, { x = 13, y = 7 }, { x = 14, y = 6 }, { x = -13, y = 8 }, { x = -12, y = 9 }, { x = 12, y = 9 }, { x = 13, y = 8 }, { x = -11, y = 10 }, { x = -10, y = 11 }, { x = 10, y = 11 }, { x = 11, y = 10 }, { x = -9, y = 12 }, { x = -8, y = 13 }, { x = -7, y = 13 }, { x = 7, y = 13 }, { x = 8, y = 13 }, { x = 9, y = 12 }, { x = -6, y = 14 }, { x = -5, y = 14 }, { x = -4, y = 14 }, { x = -3, y = 15 }, { x = -2, y = 15 }, { x = -1, y = 15 }, { x = 0, y = 15 }, { x = 1, y = 15 }, { x = 2, y = 15 }, { x = 3, y = 15 }, { x = 4, y = 14 }, { x = 5, y = 14 }, { x = 6, y = 14 } },
|
|
[17] = { { x = -5, y = -15 }, { x = -6, y = -15 }, { x = -3, y = -16 }, { x = -4, y = -16 }, { x = -4, y = -15 }, { x = -1, y = -16 }, { x = -2, y = -16 }, { x = 1, y = -16 }, { x = 0, y = -16 }, { x = 3, y = -16 }, { x = 2, y = -16 }, { x = 5, y = -15 }, { x = 4, y = -15 }, { x = 4, y = -16 }, { x = 6, y = -15 }, { x = -9, y = -13 }, { x = -10, y = -13 }, { x = -8, y = -14 }, { x = -7, y = -14 }, { x = 7, y = -14 }, { x = 9, y = -13 }, { x = 8, y = -14 }, { x = 10, y = -13 }, { x = -11, y = -12 }, { x = -11, y = -11 }, { x = -12, y = -11 }, { x = -10, y = -12 }, { x = 11, y = -11 }, { x = 11, y = -12 }, { x = 10, y = -12 }, { x = 12, y = -11 }, { x = -13, y = -10 }, { x = -13, y = -9 }, { x = -12, y = -10 }, { x = 13, y = -9 }, { x = 13, y = -10 }, { x = 12, y = -10 }, { x = -14, y = -7 }, { x = -14, y = -8 }, { x = 14, y = -7 }, { x = 14, y = -8 }, { x = -15, y = -6 }, { x = -15, y = -5 }, { x = 15, y = -5 }, { x = 15, y = -6 }, { x = -15, y = -4 }, { x = -16, y = -4 }, { x = -16, y = -3 }, { x = 15, y = -4 }, { x = 16, y = -3 }, { x = 16, y = -4 }, { x = -16, y = -2 }, { x = -16, y = -1 }, { x = 16, y = -1 }, { x = 16, y = -2 }, { x = -16, y = 0 }, { x = -16, y = 1 }, { x = 16, y = 1 }, { x = 16, y = 0 }, { x = -16, y = 2 }, { x = -16, y = 3 }, { x = 16, y = 3 }, { x = 16, y = 2 }, { x = -16, y = 4 }, { x = -15, y = 4 }, { x = -15, y = 5 }, { x = 15, y = 5 }, { x = 15, y = 4 }, { x = 16, y = 4 }, { x = -15, y = 6 }, { x = -14, y = 7 }, { x = 14, y = 7 }, { x = 15, y = 6 }, { x = -13, y = 9 }, { x = -14, y = 8 }, { x = 13, y = 9 }, { x = 14, y = 8 }, { x = -13, y = 10 }, { x = -12, y = 10 }, { x = -12, y = 11 }, { x = -11, y = 11 }, { x = 11, y = 11 }, { x = 12, y = 11 }, { x = 12, y = 10 }, { x = 13, y = 10 }, { x = -11, y = 12 }, { x = -10, y = 12 }, { x = -10, y = 13 }, { x = -9, y = 13 }, { x = 9, y = 13 }, { x = 10, y = 13 }, { x = 10, y = 12 }, { x = 11, y = 12 }, { x = -8, y = 14 }, { x = -7, y = 14 }, { x = -6, y = 15 }, { x = -5, y = 15 }, { x = -4, y = 15 }, { x = 4, y = 15 }, { x = 5, y = 15 }, { x = 7, y = 14 }, { x = 6, y = 15 }, { x = 8, y = 14 }, { x = -4, y = 16 }, { x = -3, y = 16 }, { x = -2, y = 16 }, { x = -1, y = 16 }, { x = 0, y = 16 }, { x = 1, y = 16 }, { x = 2, y = 16 }, { x = 3, y = 16 }, { x = 4, y = 16 } },
|
|
[18] = { { x = -3, y = -17 }, { x = -4, y = -17 }, { x = -1, y = -17 }, { x = -2, y = -17 }, { x = 1, y = -17 }, { x = 0, y = -17 }, { x = 3, y = -17 }, { x = 2, y = -17 }, { x = 4, y = -17 }, { x = -9, y = -15 }, { x = -8, y = -15 }, { x = -7, y = -15 }, { x = -7, y = -16 }, { x = -6, y = -16 }, { x = -5, y = -16 }, { x = 5, y = -16 }, { x = 7, y = -15 }, { x = 7, y = -16 }, { x = 6, y = -16 }, { x = 9, y = -15 }, { x = 8, y = -15 }, { x = -11, y = -13 }, { x = -10, y = -14 }, { x = -9, y = -14 }, { x = 9, y = -14 }, { x = 11, y = -13 }, { x = 10, y = -14 }, { x = -13, y = -11 }, { x = -12, y = -12 }, { x = 13, y = -11 }, { x = 12, y = -12 }, { x = -15, y = -9 }, { x = -14, y = -10 }, { x = -14, y = -9 }, { x = 14, y = -10 }, { x = 14, y = -9 }, { x = 15, y = -9 }, { x = -15, y = -8 }, { x = -15, y = -7 }, { x = -16, y = -7 }, { x = 15, y = -8 }, { x = 15, y = -7 }, { x = 16, y = -7 }, { x = -16, y = -6 }, { x = -16, y = -5 }, { x = 16, y = -5 }, { x = 16, y = -6 }, { x = -17, y = -3 }, { x = -17, y = -4 }, { x = 17, y = -3 }, { x = 17, y = -4 }, { x = -17, y = -1 }, { x = -17, y = -2 }, { x = 17, y = -1 }, { x = 17, y = -2 }, { x = -17, y = 1 }, { x = -17, y = 0 }, { x = 17, y = 1 }, { x = 17, y = 0 }, { x = -17, y = 3 }, { x = -17, y = 2 }, { x = 17, y = 3 }, { x = 17, y = 2 }, { x = -17, y = 4 }, { x = -16, y = 5 }, { x = 16, y = 5 }, { x = 17, y = 4 }, { x = -15, y = 7 }, { x = -16, y = 7 }, { x = -16, y = 6 }, { x = 15, y = 7 }, { x = 16, y = 7 }, { x = 16, y = 6 }, { x = -15, y = 9 }, { x = -15, y = 8 }, { x = -14, y = 9 }, { x = 14, y = 9 }, { x = 15, y = 9 }, { x = 15, y = 8 }, { x = -14, y = 10 }, { x = -13, y = 11 }, { x = 13, y = 11 }, { x = 14, y = 10 }, { x = -12, y = 12 }, { x = -11, y = 13 }, { x = 11, y = 13 }, { x = 12, y = 12 }, { x = -10, y = 14 }, { x = -9, y = 14 }, { x = -9, y = 15 }, { x = -8, y = 15 }, { x = -7, y = 15 }, { x = 7, y = 15 }, { x = 9, y = 14 }, { x = 9, y = 15 }, { x = 8, y = 15 }, { x = 10, y = 14 }, { x = -7, y = 16 }, { x = -6, y = 16 }, { x = -5, y = 16 }, { x = -4, y = 17 }, { x = -3, y = 17 }, { x = -2, y = 17 }, { x = -1, y = 17 }, { x = 0, y = 17 }, { x = 1, y = 17 }, { x = 2, y = 17 }, { x = 3, y = 17 }, { x = 4, y = 17 }, { x = 5, y = 16 }, { x = 6, y = 16 }, { x = 7, y = 16 } },
|
|
[19] = { { x = -7, y = -17 }, { x = -6, y = -17 }, { x = -5, y = -17 }, { x = -3, y = -18 }, { x = -4, y = -18 }, { x = -1, y = -18 }, { x = -2, y = -18 }, { x = 1, y = -18 }, { x = 0, y = -18 }, { x = 3, y = -18 }, { x = 2, y = -18 }, { x = 5, y = -17 }, { x = 4, y = -18 }, { x = 7, y = -17 }, { x = 6, y = -17 }, { x = -10, y = -15 }, { x = -9, y = -16 }, { x = -8, y = -16 }, { x = 9, y = -16 }, { x = 8, y = -16 }, { x = 10, y = -15 }, { x = -13, y = -13 }, { x = -11, y = -14 }, { x = -12, y = -14 }, { x = -12, y = -13 }, { x = 11, y = -14 }, { x = 13, y = -13 }, { x = 12, y = -13 }, { x = 12, y = -14 }, { x = -13, y = -12 }, { x = -14, y = -12 }, { x = -14, y = -11 }, { x = 13, y = -12 }, { x = 14, y = -11 }, { x = 14, y = -12 }, { x = -15, y = -10 }, { x = -16, y = -9 }, { x = 15, y = -10 }, { x = 16, y = -9 }, { x = -17, y = -7 }, { x = -16, y = -8 }, { x = 16, y = -8 }, { x = 17, y = -7 }, { x = -17, y = -5 }, { x = -17, y = -6 }, { x = 17, y = -6 }, { x = 17, y = -5 }, { x = -18, y = -3 }, { x = -18, y = -4 }, { x = 18, y = -4 }, { x = 18, y = -3 }, { x = -18, y = -1 }, { x = -18, y = -2 }, { x = 18, y = -2 }, { x = 18, y = -1 }, { x = -18, y = 1 }, { x = -18, y = 0 }, { x = 18, y = 0 }, { x = 18, y = 1 }, { x = -18, y = 3 }, { x = -18, y = 2 }, { x = 18, y = 2 }, { x = 18, y = 3 }, { x = -17, y = 5 }, { x = -18, y = 4 }, { x = 17, y = 5 }, { x = 18, y = 4 }, { x = -17, y = 7 }, { x = -17, y = 6 }, { x = 17, y = 7 }, { x = 17, y = 6 }, { x = -16, y = 9 }, { x = -16, y = 8 }, { x = 16, y = 9 }, { x = 16, y = 8 }, { x = -15, y = 10 }, { x = -14, y = 11 }, { x = 14, y = 11 }, { x = 15, y = 10 }, { x = -14, y = 12 }, { x = -13, y = 12 }, { x = -13, y = 13 }, { x = -12, y = 13 }, { x = 12, y = 13 }, { x = 13, y = 13 }, { x = 13, y = 12 }, { x = 14, y = 12 }, { x = -12, y = 14 }, { x = -11, y = 14 }, { x = -10, y = 15 }, { x = 10, y = 15 }, { x = 11, y = 14 }, { x = 12, y = 14 }, { x = -9, y = 16 }, { x = -7, y = 17 }, { x = -8, y = 16 }, { x = -5, y = 17 }, { x = -6, y = 17 }, { x = 5, y = 17 }, { x = 7, y = 17 }, { x = 6, y = 17 }, { x = 8, y = 16 }, { x = 9, y = 16 }, { x = -3, y = 18 }, { x = -4, y = 18 }, { x = -1, y = 18 }, { x = -2, y = 18 }, { x = 1, y = 18 }, { x = 0, y = 18 }, { x = 3, y = 18 }, { x = 2, y = 18 }, { x = 4, y = 18 } },
|
|
[20] = { { x = -3, y = -19 }, { x = -4, y = -19 }, { x = -1, y = -19 }, { x = -2, y = -19 }, { x = 1, y = -19 }, { x = 0, y = -19 }, { x = 3, y = -19 }, { x = 2, y = -19 }, { x = 4, y = -19 }, { x = -9, y = -17 }, { x = -7, y = -18 }, { x = -8, y = -17 }, { x = -5, y = -18 }, { x = -6, y = -18 }, { x = 5, y = -18 }, { x = 7, y = -18 }, { x = 6, y = -18 }, { x = 9, y = -17 }, { x = 8, y = -17 }, { x = -11, y = -16 }, { x = -11, y = -15 }, { x = -12, y = -15 }, { x = -10, y = -16 }, { x = 11, y = -15 }, { x = 11, y = -16 }, { x = 10, y = -16 }, { x = 12, y = -15 }, { x = -13, y = -14 }, { x = -14, y = -13 }, { x = 13, y = -14 }, { x = 14, y = -13 }, { x = -15, y = -12 }, { x = -15, y = -11 }, { x = -16, y = -11 }, { x = 15, y = -11 }, { x = 15, y = -12 }, { x = 16, y = -11 }, { x = -17, y = -9 }, { x = -16, y = -10 }, { x = 16, y = -10 }, { x = 17, y = -9 }, { x = -17, y = -8 }, { x = -18, y = -7 }, { x = 17, y = -8 }, { x = 18, y = -7 }, { x = -18, y = -6 }, { x = -18, y = -5 }, { x = 18, y = -5 }, { x = 18, y = -6 }, { x = -19, y = -4 }, { x = -19, y = -3 }, { x = 19, y = -3 }, { x = 19, y = -4 }, { x = -19, y = -2 }, { x = -19, y = -1 }, { x = 19, y = -1 }, { x = 19, y = -2 }, { x = -19, y = 0 }, { x = -19, y = 1 }, { x = 19, y = 1 }, { x = 19, y = 0 }, { x = -19, y = 2 }, { x = -19, y = 3 }, { x = 19, y = 3 }, { x = 19, y = 2 }, { x = -19, y = 4 }, { x = -18, y = 5 }, { x = 18, y = 5 }, { x = 19, y = 4 }, { x = -18, y = 7 }, { x = -18, y = 6 }, { x = 18, y = 7 }, { x = 18, y = 6 }, { x = -17, y = 9 }, { x = -17, y = 8 }, { x = 17, y = 9 }, { x = 17, y = 8 }, { x = -16, y = 10 }, { x = -16, y = 11 }, { x = -15, y = 11 }, { x = 15, y = 11 }, { x = 16, y = 11 }, { x = 16, y = 10 }, { x = -15, y = 12 }, { x = -14, y = 13 }, { x = 14, y = 13 }, { x = 15, y = 12 }, { x = -13, y = 14 }, { x = -12, y = 15 }, { x = -11, y = 15 }, { x = 11, y = 15 }, { x = 12, y = 15 }, { x = 13, y = 14 }, { x = -11, y = 16 }, { x = -10, y = 16 }, { x = -9, y = 17 }, { x = -8, y = 17 }, { x = 9, y = 17 }, { x = 8, y = 17 }, { x = 10, y = 16 }, { x = 11, y = 16 }, { x = -7, y = 18 }, { x = -5, y = 18 }, { x = -6, y = 18 }, { x = -4, y = 19 }, { x = -3, y = 19 }, { x = -2, y = 19 }, { x = -1, y = 19 }, { x = 0, y = 19 }, { x = 1, y = 19 }, { x = 2, y = 19 }, { x = 3, y = 19 }, { x = 4, y = 19 }, { x = 5, y = 18 }, { x = 7, y = 18 }, { x = 6, y = 18 } },
|
|
[21] = { { x = -7, y = -19 }, { x = -5, y = -19 }, { x = -6, y = -19 }, { x = -3, y = -20 }, { x = -4, y = -20 }, { x = -1, y = -20 }, { x = -2, y = -20 }, { x = 1, y = -20 }, { x = 0, y = -20 }, { x = 3, y = -20 }, { x = 2, y = -20 }, { x = 5, y = -19 }, { x = 4, y = -20 }, { x = 7, y = -19 }, { x = 6, y = -19 }, { x = -11, y = -17 }, { x = -10, y = -17 }, { x = -9, y = -18 }, { x = -8, y = -18 }, { x = 9, y = -18 }, { x = 8, y = -18 }, { x = 10, y = -17 }, { x = 11, y = -17 }, { x = -13, y = -15 }, { x = -14, y = -15 }, { x = -12, y = -16 }, { x = 13, y = -15 }, { x = 12, y = -16 }, { x = 14, y = -15 }, { x = -15, y = -14 }, { x = -15, y = -13 }, { x = -14, y = -14 }, { x = 15, y = -13 }, { x = 15, y = -14 }, { x = 14, y = -14 }, { x = -17, y = -11 }, { x = -16, y = -12 }, { x = 16, y = -12 }, { x = 17, y = -11 }, { x = -17, y = -10 }, { x = -18, y = -9 }, { x = 17, y = -10 }, { x = 18, y = -9 }, { x = -19, y = -7 }, { x = -18, y = -8 }, { x = 18, y = -8 }, { x = 19, y = -7 }, { x = -19, y = -6 }, { x = -19, y = -5 }, { x = 19, y = -6 }, { x = 19, y = -5 }, { x = -20, y = -4 }, { x = -20, y = -3 }, { x = 20, y = -3 }, { x = 20, y = -4 }, { x = -20, y = -2 }, { x = -20, y = -1 }, { x = 20, y = -1 }, { x = 20, y = -2 }, { x = -20, y = 0 }, { x = -20, y = 1 }, { x = 20, y = 1 }, { x = 20, y = 0 }, { x = -20, y = 2 }, { x = -20, y = 3 }, { x = 20, y = 3 }, { x = 20, y = 2 }, { x = -20, y = 4 }, { x = -19, y = 5 }, { x = 19, y = 5 }, { x = 20, y = 4 }, { x = -19, y = 7 }, { x = -19, y = 6 }, { x = 19, y = 7 }, { x = 19, y = 6 }, { x = -18, y = 9 }, { x = -18, y = 8 }, { x = 18, y = 9 }, { x = 18, y = 8 }, { x = -17, y = 11 }, { x = -17, y = 10 }, { x = 17, y = 11 }, { x = 17, y = 10 }, { x = -16, y = 12 }, { x = -15, y = 13 }, { x = 15, y = 13 }, { x = 16, y = 12 }, { x = -15, y = 14 }, { x = -14, y = 14 }, { x = -14, y = 15 }, { x = -13, y = 15 }, { x = 13, y = 15 }, { x = 14, y = 15 }, { x = 14, y = 14 }, { x = 15, y = 14 }, { x = -12, y = 16 }, { x = -11, y = 17 }, { x = -10, y = 17 }, { x = 11, y = 17 }, { x = 10, y = 17 }, { x = 12, y = 16 }, { x = -9, y = 18 }, { x = -8, y = 18 }, { x = -7, y = 19 }, { x = -5, y = 19 }, { x = -6, y = 19 }, { x = 5, y = 19 }, { x = 6, y = 19 }, { x = 7, y = 19 }, { x = 9, y = 18 }, { x = 8, y = 18 }, { x = -4, y = 20 }, { x = -3, y = 20 }, { x = -2, y = 20 }, { x = -1, y = 20 }, { x = 0, y = 20 }, { x = 1, y = 20 }, { x = 2, y = 20 }, { x = 3, y = 20 }, { x = 4, y = 20 } },
|
|
[22] = { { x = -3, y = -21 }, { x = -4, y = -21 }, { x = -1, y = -21 }, { x = -2, y = -21 }, { x = 1, y = -21 }, { x = 0, y = -21 }, { x = 3, y = -21 }, { x = 2, y = -21 }, { x = 4, y = -21 }, { x = -10, y = -19 }, { x = -9, y = -19 }, { x = -8, y = -19 }, { x = -7, y = -20 }, { x = -5, y = -20 }, { x = -6, y = -20 }, { x = 5, y = -20 }, { x = 7, y = -20 }, { x = 6, y = -20 }, { x = 9, y = -19 }, { x = 8, y = -19 }, { x = 10, y = -19 }, { x = -13, y = -17 }, { x = -12, y = -17 }, { x = -11, y = -18 }, { x = -10, y = -18 }, { x = 11, y = -18 }, { x = 10, y = -18 }, { x = 13, y = -17 }, { x = 12, y = -17 }, { x = -15, y = -15 }, { x = -13, y = -16 }, { x = -14, y = -16 }, { x = 13, y = -16 }, { x = 15, y = -15 }, { x = 14, y = -16 }, { x = -17, y = -13 }, { x = -16, y = -14 }, { x = -16, y = -13 }, { x = 17, y = -13 }, { x = 16, y = -13 }, { x = 16, y = -14 }, { x = -17, y = -12 }, { x = -18, y = -11 }, { x = 17, y = -12 }, { x = 18, y = -11 }, { x = -19, y = -10 }, { x = -19, y = -9 }, { x = -18, y = -10 }, { x = 18, y = -10 }, { x = 19, y = -10 }, { x = 19, y = -9 }, { x = -19, y = -8 }, { x = -20, y = -7 }, { x = 19, y = -8 }, { x = 20, y = -7 }, { x = -20, y = -6 }, { x = -20, y = -5 }, { x = 20, y = -6 }, { x = 20, y = -5 }, { x = -21, y = -4 }, { x = -21, y = -3 }, { x = 21, y = -3 }, { x = 21, y = -4 }, { x = -21, y = -2 }, { x = -21, y = -1 }, { x = 21, y = -1 }, { x = 21, y = -2 }, { x = -21, y = 0 }, { x = -21, y = 1 }, { x = 21, y = 1 }, { x = 21, y = 0 }, { x = -21, y = 2 }, { x = -21, y = 3 }, { x = 21, y = 3 }, { x = 21, y = 2 }, { x = -21, y = 4 }, { x = -20, y = 5 }, { x = 20, y = 5 }, { x = 21, y = 4 }, { x = -20, y = 7 }, { x = -20, y = 6 }, { x = 20, y = 7 }, { x = 20, y = 6 }, { x = -19, y = 9 }, { x = -19, y = 8 }, { x = 19, y = 9 }, { x = 19, y = 8 }, { x = -19, y = 10 }, { x = -18, y = 11 }, { x = -18, y = 10 }, { x = 18, y = 11 }, { x = 18, y = 10 }, { x = 19, y = 10 }, { x = -17, y = 13 }, { x = -17, y = 12 }, { x = -16, y = 13 }, { x = 16, y = 13 }, { x = 17, y = 13 }, { x = 17, y = 12 }, { x = -16, y = 14 }, { x = -15, y = 15 }, { x = 15, y = 15 }, { x = 16, y = 14 }, { x = -14, y = 16 }, { x = -13, y = 16 }, { x = -13, y = 17 }, { x = -12, y = 17 }, { x = 13, y = 16 }, { x = 13, y = 17 }, { x = 12, y = 17 }, { x = 14, y = 16 }, { x = -11, y = 18 }, { x = -10, y = 18 }, { x = -10, y = 19 }, { x = -9, y = 19 }, { x = -8, y = 19 }, { x = 9, y = 19 }, { x = 8, y = 19 }, { x = 11, y = 18 }, { x = 10, y = 18 }, { x = 10, y = 19 }, { x = -7, y = 20 }, { x = -6, y = 20 }, { x = -5, y = 20 }, { x = -3, y = 21 }, { x = -4, y = 21 }, { x = -1, y = 21 }, { x = -2, y = 21 }, { x = 1, y = 21 }, { x = 0, y = 21 }, { x = 3, y = 21 }, { x = 2, y = 21 }, { x = 4, y = 21 }, { x = 5, y = 20 }, { x = 7, y = 20 }, { x = 6, y = 20 } },
|
|
[23] = { { x = -8, y = -21 }, { x = -7, y = -21 }, { x = -6, y = -21 }, { x = -5, y = -21 }, { x = -3, y = -22 }, { x = -4, y = -22 }, { x = -1, y = -22 }, { x = -2, y = -22 }, { x = 1, y = -22 }, { x = 0, y = -22 }, { x = 3, y = -22 }, { x = 2, y = -22 }, { x = 5, y = -21 }, { x = 4, y = -22 }, { x = 7, y = -21 }, { x = 6, y = -21 }, { x = 8, y = -21 }, { x = -12, y = -19 }, { x = -11, y = -19 }, { x = -10, y = -20 }, { x = -9, y = -20 }, { x = -8, y = -20 }, { x = 9, y = -20 }, { x = 8, y = -20 }, { x = 11, y = -19 }, { x = 10, y = -20 }, { x = 12, y = -19 }, { x = -14, y = -17 }, { x = -13, y = -18 }, { x = -12, y = -18 }, { x = 13, y = -18 }, { x = 12, y = -18 }, { x = 14, y = -17 }, { x = -15, y = -16 }, { x = -16, y = -15 }, { x = 15, y = -16 }, { x = 16, y = -15 }, { x = -17, y = -14 }, { x = -18, y = -13 }, { x = 17, y = -14 }, { x = 18, y = -13 }, { x = -19, y = -12 }, { x = -19, y = -11 }, { x = -18, y = -12 }, { x = 18, y = -12 }, { x = 19, y = -12 }, { x = 19, y = -11 }, { x = -20, y = -10 }, { x = -20, y = -9 }, { x = 20, y = -10 }, { x = 20, y = -9 }, { x = -21, y = -8 }, { x = -21, y = -7 }, { x = -20, y = -8 }, { x = 20, y = -8 }, { x = 21, y = -8 }, { x = 21, y = -7 }, { x = -21, y = -6 }, { x = -21, y = -5 }, { x = 21, y = -6 }, { x = 21, y = -5 }, { x = -22, y = -4 }, { x = -22, y = -3 }, { x = 22, y = -3 }, { x = 22, y = -4 }, { x = -22, y = -2 }, { x = -22, y = -1 }, { x = 22, y = -1 }, { x = 22, y = -2 }, { x = -22, y = 0 }, { x = -22, y = 1 }, { x = 22, y = 1 }, { x = 22, y = 0 }, { x = -22, y = 2 }, { x = -22, y = 3 }, { x = 22, y = 3 }, { x = 22, y = 2 }, { x = -22, y = 4 }, { x = -21, y = 5 }, { x = 21, y = 5 }, { x = 22, y = 4 }, { x = -21, y = 7 }, { x = -21, y = 6 }, { x = 21, y = 7 }, { x = 21, y = 6 }, { x = -21, y = 8 }, { x = -20, y = 9 }, { x = -20, y = 8 }, { x = 20, y = 8 }, { x = 20, y = 9 }, { x = 21, y = 8 }, { x = -19, y = 11 }, { x = -20, y = 10 }, { x = 19, y = 11 }, { x = 20, y = 10 }, { x = -19, y = 12 }, { x = -18, y = 13 }, { x = -18, y = 12 }, { x = 18, y = 13 }, { x = 18, y = 12 }, { x = 19, y = 12 }, { x = -17, y = 14 }, { x = -16, y = 15 }, { x = 16, y = 15 }, { x = 17, y = 14 }, { x = -15, y = 16 }, { x = -14, y = 17 }, { x = 14, y = 17 }, { x = 15, y = 16 }, { x = -13, y = 18 }, { x = -12, y = 18 }, { x = -12, y = 19 }, { x = -11, y = 19 }, { x = 11, y = 19 }, { x = 13, y = 18 }, { x = 12, y = 18 }, { x = 12, y = 19 }, { x = -10, y = 20 }, { x = -9, y = 20 }, { x = -8, y = 20 }, { x = -8, y = 21 }, { x = -7, y = 21 }, { x = -6, y = 21 }, { x = -5, y = 21 }, { x = 5, y = 21 }, { x = 7, y = 21 }, { x = 6, y = 21 }, { x = 8, y = 20 }, { x = 9, y = 20 }, { x = 8, y = 21 }, { x = 10, y = 20 }, { x = -4, y = 22 }, { x = -3, y = 22 }, { x = -2, y = 22 }, { x = -1, y = 22 }, { x = 0, y = 22 }, { x = 1, y = 22 }, { x = 2, y = 22 }, { x = 3, y = 22 }, { x = 4, y = 22 } }
|
|
}
|
|
|
|
local function process_explosion_tile(pos, explosion_index, current_radius)
|
|
local ffatable = Table.get_table()
|
|
local surface = game.surfaces[ffatable.explosion_schedule[explosion_index].surface]
|
|
local target_entities = surface.find_entities_filtered({ area = { { pos.x - 0.5, pos.y - 0.5 }, { pos.x + 0.499, pos.y + 0.499 } } })
|
|
local explosion_animation = "explosion"
|
|
|
|
local tile = surface.get_tile(pos)
|
|
if tile.name == "out-of-map" then
|
|
if ffatable.explosion_schedule[explosion_index].damage_remaining >= out_of_map_tile_health then
|
|
explosion_animation = "big-explosion"
|
|
surface.set_tiles({ { name = "dirt-5", position = pos } }, true)
|
|
end
|
|
ffatable.explosion_schedule[explosion_index].damage_remaining = ffatable.explosion_schedule[explosion_index].damage_remaining - out_of_map_tile_health
|
|
else
|
|
local decay_explosion = true
|
|
for _, entity in pairs(target_entities) do
|
|
if entity.health then
|
|
decay_explosion = false
|
|
end
|
|
end
|
|
if decay_explosion then ffatable.explosion_schedule[explosion_index].damage_remaining = ffatable.explosion_schedule[explosion_index].damage_remaining - empty_tile_damage_decay end
|
|
end
|
|
|
|
for _, entity in pairs(target_entities) do
|
|
if entity.valid then
|
|
if entity.health then
|
|
if entity.health < ffatable.explosion_schedule[explosion_index].damage_remaining then
|
|
explosion_animation = "big-explosion"
|
|
if entity.health > 500 then explosion_animation = "big-artillery-explosion" end
|
|
ffatable.explosion_schedule[explosion_index].damage_remaining = ffatable.explosion_schedule[explosion_index].damage_remaining - entity.health
|
|
if entity.name ~= "character" then
|
|
entity.damage(2097152, "player", "explosion")
|
|
else
|
|
entity.die("player")
|
|
end
|
|
else
|
|
entity.damage(ffatable.explosion_schedule[explosion_index].damage_remaining, "player", "explosion")
|
|
if entity.valid then
|
|
ffatable.explosion_schedule[explosion_index].damage_remaining = ffatable.explosion_schedule[explosion_index].damage_remaining - entity.health
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
if ffatable.explosion_schedule[explosion_index].damage_remaining > 5000 and current_radius < 2 then
|
|
if math_random(1, 2) == 1 then
|
|
explosion_animation = "big-explosion"
|
|
else
|
|
explosion_animation = "big-artillery-explosion"
|
|
end
|
|
end
|
|
|
|
surface.create_entity({ name = explosion_animation, position = pos })
|
|
Pollution.explosion(pos, surface, explosion_animation)
|
|
|
|
if ffatable.explosion_schedule[explosion_index].damage_remaining <= 0 then return false end
|
|
|
|
return true
|
|
end
|
|
|
|
local function volatility(inventory)
|
|
local result = 0
|
|
for item, v in pairs(explosive_items) do
|
|
local c = inventory.get_item_count(item)
|
|
result = result + (c * v)
|
|
end
|
|
return math_min(max_volatility, result)
|
|
end
|
|
|
|
local function create_explosion_schedule(entity)
|
|
local ffatable = Table.get_table()
|
|
local inventory = defines.inventory.chest
|
|
if entity.type == "car" then inventory = defines.inventory.car_trunk end
|
|
local i = entity.get_inventory(inventory)
|
|
local explosives_amount = volatility(i)
|
|
if explosives_amount < 1 then return end
|
|
local center_position = entity.position
|
|
|
|
if not ffatable.explosion_schedule then ffatable.explosion_schedule = {} end
|
|
ffatable.explosion_schedule[#ffatable.explosion_schedule + 1] = {}
|
|
ffatable.explosion_schedule[#ffatable.explosion_schedule].surface = entity.surface.name
|
|
ffatable.explosion_schedule[#ffatable.explosion_schedule].damage_remaining = damage_per_explosive * explosives_amount
|
|
|
|
for current_radius = 1, 23, 1 do
|
|
|
|
ffatable.explosion_schedule[#ffatable.explosion_schedule][current_radius] = {}
|
|
ffatable.explosion_schedule[#ffatable.explosion_schedule][current_radius].trigger_tick = game.tick + (current_radius * 8)
|
|
|
|
local circle_coords = circle_coordinates[current_radius]
|
|
|
|
for index, tile_position in pairs(circle_coords) do
|
|
local pos = { x = center_position.x + tile_position.x, y = center_position.y + tile_position.y }
|
|
ffatable.explosion_schedule[#ffatable.explosion_schedule][current_radius][index] = { x = pos.x, y = pos.y }
|
|
end
|
|
|
|
end
|
|
entity.die("player")
|
|
end
|
|
|
|
local function on_entity_damaged(event)
|
|
local entity = event.entity
|
|
if not entity.valid then return end
|
|
if not entity.health then return end
|
|
if entity.health > entity.prototype.max_health * 0.75 then return end
|
|
|
|
if entity.type == "container" or entity.type == "logistic-container" then
|
|
if math_random(1, 3) == 1 or entity.health <= 0 then
|
|
create_explosion_schedule(event.entity)
|
|
return
|
|
end
|
|
end
|
|
if entity.type == "cargo-wagon" or entity.type == "car" then
|
|
if entity.health <= 0 then
|
|
create_explosion_schedule(entity)
|
|
return
|
|
end
|
|
if entity.health < 150 and math_random(1, 3) == 1 then
|
|
create_explosion_schedule(entity)
|
|
return
|
|
end
|
|
end
|
|
end
|
|
|
|
local function on_tick(event)
|
|
local ffatable = Table.get_table()
|
|
local tick = event.tick
|
|
if ffatable.explosion_schedule then
|
|
local explosion_schedule_is_alive = false
|
|
for explosion_index = 1, #ffatable.explosion_schedule, 1 do
|
|
if #ffatable.explosion_schedule[explosion_index] > 0 then
|
|
explosion_schedule_is_alive = true
|
|
for radius = 1, #ffatable.explosion_schedule[explosion_index], 1 do
|
|
if ffatable.explosion_schedule[explosion_index][radius].trigger_tick == tick then
|
|
for tile_index = 1, #ffatable.explosion_schedule[explosion_index][radius], 1 do
|
|
local continue_explosion = process_explosion_tile(ffatable.explosion_schedule[explosion_index][radius][tile_index], explosion_index, radius)
|
|
if not continue_explosion then
|
|
ffatable.explosion_schedule[explosion_index] = {}
|
|
break
|
|
end
|
|
end
|
|
if radius == #ffatable.explosion_schedule[explosion_index] then ffatable.explosion_schedule[explosion_index] = {} end
|
|
break
|
|
end
|
|
end
|
|
end
|
|
end
|
|
if not explosion_schedule_is_alive then ffatable.explosion_schedule = nil end
|
|
end
|
|
end
|
|
|
|
local on_init = function ()
|
|
local ffatable = Table.get_table()
|
|
ffatable.explosion_schedule = {}
|
|
end
|
|
|
|
local Event = require 'utils.event'
|
|
Event.on_init(on_init)
|
|
Event.add(defines.events.on_entity_damaged, on_entity_damaged)
|
|
Event.add(defines.events.on_tick, on_tick)
|