Модуль:EventsTable: различия между версиями
Blyoba (обсуждение | вклад) Нет описания правки |
м Замена текста — «AnomalyAll.gif» на «Anomalies.png» Метки: с мобильного устройства из мобильной версии |
||
| (не показано 26 промежуточных версий 1 участника) | |||
| Строка 2: | Строка 2: | ||
local data = { -- Дата | local data = { -- Дата | ||
{ | |||
name = "Аномалия", | |||
id = "AnomalySpawn", | |||
image = "Anomalies.png", | |||
advert = "111", | |||
description = "В случайном месте на станции появляется аномалия.", | |||
weight = 5, | |||
duration = 120, | |||
earliestStart = 20, | |||
minimumPlayers = 40, | |||
}, | |||
{ | |||
name = "Артефакт", | |||
id = "BluespaceArtifact", | |||
image = "BluespaceArtifact.gif", | |||
advert = "112", | |||
description = "В случайном месте на станции с характерным звуком и голубым свечением появляется артефакт.", | |||
weight = 4, | |||
duration = 90, | |||
earliestStart = 30, | |||
minimumPlayers = 30, | |||
}, | |||
{ | |||
name = "Блюспейс шкаф", | |||
id = "BluespaceLocker", | |||
image = "BluespaceLocker.gif", | |||
advert = "113", | |||
description = "Два случайных шкафа образуют пространственно-связанный туннель, аналогичный кроличьей норе. Любой объект, помещенный в один из шкафов, мгновенно перемещается в другой, создавая эффект мгновенной телепортации.", | |||
weight = 3, | |||
duration = 60, | |||
earliestStart = 25, | |||
minimumPlayers = 25, | |||
}, | |||
{ | |||
name = "Выключение ЛКП", | |||
id = "BreakerFlip", | |||
image = "BreakerFlip.gif", | |||
advert = "114", | |||
description = "На станции выключается случайное количество ЛКП.", | |||
weight = 2, | |||
duration = 30, | |||
earliestStart = 15, | |||
minimumPlayers = 20, | |||
}, | |||
{ | |||
name = "Бюрократическая ошибка", | |||
id = "BureaucraticError", | |||
image = "BureaucraticError.gif", | |||
advert = "115", | |||
description = "В исходе бюрократической ошибки меняет свободное количество слотов для професий.<br>Имеет два варианта события:<br> * Стандартный '''(вероятность 75%)''': **Выбирается 20-30% случайных профессий. **Для каждой из них случайным образом уменьшается или увеличивается количество доступных мест '''(в диапазоне от -3 до +5)'''. **Обновление происходит с учетом ограничений '''(clamp: true)''', чтобы избежать выхода за пределы допустимых значений. <br> * Редкий '''(вероятность 25%)''': **Выбирается одна случайная профессия, которая становится '''неограниченной''' **Все остальные профессии '''(кроме уже неограниченных)''' закрываются '''(их слоты устанавливаются на 0)'''. <br>'''''Исключение:''''' ''Станционный ИИ''", | |||
weight = 3, | |||
duration = 45, | |||
earliestStart = 20, | |||
minimumPlayers = 20, | |||
}, | |||
{ | |||
name = "Канцелярская ошибка", | |||
id = "ClericalError", | |||
image = "ClericalError.gif", | |||
advert = "116", | |||
description = "Событие вызывает удаление определённого количества экипажа из манифеста случайной станции.", | |||
weight = 2, | |||
duration = 30, | |||
earliestStart = 15, | |||
minimumPlayers = 15, | |||
}, | |||
{ --заполнить инфо | |||
name = "Миграция тараканов", | |||
id = "CockroachMigration", | |||
image = "CockroachMigration.gif", | |||
advert = "117", | |||
description = "Тараканы массово мигрируют на станцию.", | |||
weight = 3, | |||
duration = 60, | |||
earliestStart = 25, | |||
minimumPlayers = 30, | |||
}, | |||
{ | |||
name = "Утечка газа", | |||
id = "GasLeak", | |||
image = "GasLeak.gif", | |||
advert = "118", | |||
description = "Создаёт на станции имитацию утечки газа. По окончанию события добавляется горячая точка с температурой 700K и энергией 50 Дж.", | |||
weight = 4, | |||
duration = 90, | |||
earliestStart = 30, | |||
minimumPlayers = 35, | |||
}, | |||
{ | |||
name = "Вирус грейтайд", | |||
id = "GreytideVirus", | |||
image = "GreytideVirus.gif", | |||
advert = "119", | |||
description = "Во время события сначала выбираются случайные доступы из перечня: Cargo, Command, Engineering, Research, Security, Service и степень серьёзности '''(Severity)''' которая определяется радиус и количество затрагиваемых предметов.<br>Потом может произойти следующие:<br>* Открываются и болтируются некоторые шлюзы.<br>* Разблокируются некоторые закрытые шкафчики", | |||
weight = 4, | |||
duration = 120, | |||
earliestStart = 40, | |||
minimumPlayers = 50, | |||
}, | |||
{ | |||
name = "Ионный шторм", | |||
id = "IonStorm", | |||
image = "IonStorm.gif", | |||
advert = "120", | |||
description = "Во время события у ИИ, боргов и других синтетиков добавляется или заменяет существующий или даже удаляет один из текущих законов. В некоторых случаях синтетик получает не один случайный закон, а полностью новый набор законов.<br>Составление законов происходит хаотично: они формируются из заранее заданных категорий слов создавая причудливые и непредсказуемые формулировки. Порядок законов тоже может измениться, так что важность того или иного правила окажется неожиданной.", | |||
weight = 3, | |||
duration = 100, | |||
earliestStart = 35, | |||
minimumPlayers = 30, | |||
}, | |||
{ | |||
name = "Рост кудзу", | |||
id = "KudzuGrowth", | |||
image = "KudzuGrowth.gif", | |||
advert = "121", | |||
description = "Кудзу начало разрастаться по станции.", | |||
weight = 4, | |||
duration = 150, | |||
earliestStart = 40, | |||
minimumPlayers = 40, | |||
}, | |||
{ | |||
name = "Массовые галлюцинации", | |||
id = "MassHallucinations", | |||
image = "MassHallucinations.gif", | |||
advert = "122", | |||
description = "Члены экипажа начинают видеть странные вещи.", | |||
weight = 3, | |||
duration = 90, | |||
earliestStart = 30, | |||
minimumPlayers = 35, | |||
}, | |||
{ | |||
name = "MimicVendorRule", | |||
id = "MimicVendorRule", | |||
image = "MimicVendorRule.gif", | |||
advert = "125", | |||
description = "Неожиданное пробуждение разума у случайного объекта.", | |||
weight = 5, | |||
duration = "", | |||
earliestStart = 0, | |||
minimumPlayers = 20, | |||
}, | |||
{ | |||
name = "Миграция мышей", | |||
id = "MouseMigration", | |||
image = "MouseMigration.gif", | |||
advert = "123", | |||
description = "Мыши заполонили станцию.", | |||
weight = 2, | |||
duration = 60, | |||
earliestStart = 20, | |||
minimumPlayers = 25, | |||
}, | |||
{ | |||
name = "Проверка энергосистемы", | |||
id = "PowerGridCheck", | |||
image = "PowerGridCheck.gif", | |||
advert = "124", | |||
description = "Выполняется диагностика энергосистемы станции.", | |||
weight = 2, | |||
duration = 45, | |||
earliestStart = 20, | |||
minimumPlayers = 20, | |||
}, | |||
{ | |||
name = "Случайное пробуждение разума", | |||
id = "RandomSentience", | |||
image = "RandomSentience.gif", | |||
advert = "125", | |||
description = "Неожиданное пробуждение разума у случайного объекта.", | |||
weight = 3, | |||
duration = 90, | |||
earliestStart = 30, | |||
minimumPlayers = 30, | |||
}, | |||
{ | |||
name = "Спавн слаймов", | |||
id = "SlimesSpawn", | |||
image = "SlimesSpawn.gif", | |||
advert = "125", | |||
description = "Неожиданное пробуждение разума у случайного объекта.", | |||
weight = 5, | |||
duration = 60, | |||
earliestStart = 20, | |||
minimumPlayers = 15, | |||
}, | |||
{ | |||
name = "SolarFlare", | |||
id = "SolarFlare", | |||
image = "SolarFlare.gif", | |||
advert = "125", | |||
description = "Неожиданное пробуждение разума у случайного объекта.", | |||
weight = 8, | |||
duration = "120-240", | |||
earliestStart = "", | |||
minimumPlayers = "", | |||
}, | |||
{ | |||
name = "SnakeSpawn", | |||
id = "SnakeSpawn", | |||
image = "SnakeSpawn.gif", | |||
advert = "125", | |||
description = "Неожиданное пробуждение разума у случайного объекта.", | |||
weight = 5, | |||
duration = 60, | |||
earliestStart = 20, | |||
minimumPlayers = 15, | |||
}, | |||
{ | |||
name = "SpiderClownSpawn", | |||
id = "SpiderClownSpawn", | |||
image = "SpiderClownSpawn.gif", | |||
advert = "125", | |||
description = "Неожиданное пробуждение разума у случайного объекта.", | |||
weight = 1.5, | |||
duration = 60, | |||
earliestStart = 20, | |||
minimumPlayers = 20, | |||
}, | |||
{ | |||
name = "SpiderSpawn", | |||
id = "SpiderSpawn", | |||
image = "SpiderSpawn.gif", | |||
advert = "125", | |||
description = "Неожиданное пробуждение разума у случайного объекта.", | |||
weight = 5, | |||
duration = 60, | |||
earliestStart = 20, | |||
minimumPlayers = 15, | |||
}, | |||
{ | |||
name = "VentClog", | |||
id = "VentClog", | |||
image = "VentClog.gif", | |||
advert = "125", | |||
description = "Неожиданное пробуждение разума у случайного объекта.", | |||
weight = 5, | |||
duration = 60, | |||
earliestStart = 15, | |||
minimumPlayers = 15, | |||
}, | |||
} | } | ||
function p.generateTable(frame) -- Генерация табличек | function p.generateTable(frame) -- Генерация табличек | ||
local out = '{| id="highlighted-header-CM" class="wikitable sortable mw-collapsible" | local out = '{| id="highlighted-header-CM" class="wikitable sortable mw-collapsible" margin:0;"\n' | ||
out = out .. '! | out = out .. '! Событие !! Оповещение !! Описание !! Характеристики\n' | ||
for _, event in ipairs(data) do | |||
-- Формируем ячейку с названием, ID и изображением | |||
local IIevent = '<div style="text-align:center;">' | |||
IIevent = IIevent .. "'''" .. (event.name or "Неизвестно") .. "'''<br>" | |||
IIevent = IIevent .. "<span style='color:#adadad'>'''" .. (event.id or "Нет ID") .. "'''</span><br>" | |||
if event.image and event.image ~= "Нет изображения" then | |||
IIevent = IIevent .. '[[File:' .. event.image .. '|50px]]' | |||
end | |||
IIevent = IIevent .. '</div>' | |||
-- Формируем список характеристик с вики-разметкой AltTooltip | |||
local characteristicsList = "" | |||
local characteristics = { | |||
{"Вес", "Вес события в системе случайных событий (чем выше, тем чаще случается)", event.weight}, | |||
{"Мин. игроков", "Минимальное количество игроков для начала события", event.minimumPlayers}, | |||
{"Время старта", "Время с которого событие может начаться", event.earliestStart .. " сек."}, | |||
{"Длительность", "Длительность события в секундах", event.duration .. " сек."} | |||
} | |||
for _, char in ipairs(characteristics) do | |||
characteristicsList = characteristicsList .. "- " .. frame:expandTemplate{ title = "AltTooltip", args = { char[1], char[2] }} .. ": " .. char[3] .. "<br>" | |||
end | |||
-- Добавляем строки в таблицу | |||
out = out .. "|-\n" | |||
out = out .. "| " .. IIevent .. "\n" | |||
out = out .. "| " .. (event.advert or "Нет оповещения") .. "\n" | |||
out = out .. "| " .. (event.description or "Нет описания") .. "\n" | |||
out = out .. "| " .. characteristicsList .. "\n" | |||
end | |||
out = out .. "|}" -- Добавляем закрытие таблицы | |||
return out | return out | ||