Дневник разработчиков Stellaris №253 — Список изменений 3.4 «Цефей» и другое!

Так как чейнджлог слишком большой и джой не позволяет выложить всё одним постом, конкретные изменения будут выложены в комментариях.
Update: така как на джое нет команды pre для корректной вставки кода в текст, если кому интересно рассматривать коды модификаторов и прочего снизу, рекомендую сделать это в удобной форме по ссылке прямо под этим текстом. Если у нас есть хоть один человек, который делает моды для стеллариса и которому не поебать.
"Всем привет!
Надеюсь, вы все сгораете от нетерпения поиграть в наше новое дополнение Overlord, которое выйдет на следующей неделе! Расширение отношений между субъектам и сюзереном — это то, чего многие из вас (и нас) ожидали на протяжении долгого времени, и мы рады, что это ожидание дало свои плоды!
Поэтому, чтобы вам было чем заняться до выхода Overlord, представляем этот дневник разработчиков, который, как обычно, содержит список изменений!
Но для начала мы должны рассказать о важном событии сообщества:
7 и 8 мая в 15:00 МСК присоединяйтесь к нам, чтобы посмотреть на показ мультиплеера нашими известными членами сообщества. Мы будем проводить с ними стрим Overlord все выходные на Twitch и YouTube!
Изменения моддинга в 3.4 «Цефей» от Caligula Caesar
Буду краток, по своим меркам. Недавние обновления дали мододелам много чего, во что можно вцепиться зубами, и 3.4 не является исключением. Мы уже описывали систему инцидентов несколько недель назад, которая несомненно будет перекручена мододелами, поэтому я сосредоточусь на других изменениях языка скрипта.
Наибольшим улучшением, которое приходит на ум, это поле модификаторов. В условных модификаторах вы можете указать значение mult, которое позволит вам применить модификатор или скриптовое значение на этот условный модификатор:
triggered_pop_modifier = {potential = {NOT = { is_same_species = owner }}modifier = { pop_citizen_happiness = 1 }mult = modifier:non_main_species_happiness_mult}
Как вы можете заметить, я указав модификатор, которого нет в игре. Это потому что сейчас можно указать свои собственные модификаторы в скрипте, например:
non_main_species_happiness_mult = {icon = mod_planet_happiness_multpercentage = yesgood = yescategory = pop}
Этот модификатор, разумеется, будет что-то делать только если он где-то применён, но сегодня есть ряд мест, где его можно применить (в любом месте, где значения этого скрипта действительны). Например, для использования этой системы мы перенесли бонусы от признаков и торговую ценность от должностей, благодаря чему изменить эти значения стало проще (и позволило отследить нам несколько связанных с этим ошибок).
В качестве маловажного, но довольно приятного улучшения вы больше не будете получать ошибок порядка загрузки когда определённые модификаторы не работали в определённых контекстах (например, модификаторы этик в признаках).
Но это ещё не всё. Разумеется разработка Overlord дала нам возможности переработать старые системы. К примеру, тысячи строк сохранялись в скриптах анклавов используя новую систему «наследия событий». Благодаря ей события могут унаследовать свойства других событий через "base = <some_event_id>". Затем, различные свойства могут быть переписаны через “desc_clear”, “option_clear”, “picture_clear” и “show_sound_clear”. Проще говоря, это позволяет нам передавать поведение определённого момента, меняя его атмосферу.
Идём дальше. Новая папка common/tradable_actions позволяет вам определять действия, которыми вы можете торговать с другими государствами. Например, субъекты могут присягнуть новому сюзерену в обмен на бонусы. Также эта папка подробно задокументирована:
# trade_action_my_example_action = {# # If this is set to 'yes', then the action will be fired and then removed from the trade deal.# # If 'no', then the trade deal will be treated as a treaty that lasts for at least 10 years.# fire_and_forget = no## # Determines if the action will show up in the list in the trade deals view.# # SCOPE: Country "giving" the action# # FROM: Country "receiving" the action# potential = {# has_overlord = from# is_specialist_subject_type = { TYPE = bulwark }# }## # If this trigger returns 'no', then the trade deal will be cancelled. Checked on daily tick. Only relevant if fire_and_forget is 'no'.# # SCOPE: Country "giving" the action# # FROM: Country "receiving" the action# active = {# has_overlord = from# is_specialist_subject_type = { TYPE = bulwark }# }## # Effect that fires when the trade deal is accepted.# # SCOPE: Country "giving" the action# # FROM: Country "receiving" the action# on_traded_effect = {# from = {# set_galactic_custodian = yes# }# }## # Effect that fires when the trade deal ends. Only relevant if fire_and_forget is 'no'.# # SCOPE: Country "giving" the action# # FROM: Country "receiving" the action. Not guaranteed to be valid, since a trade deal is cancelled if one of the countries dies.# on_deal_ended_sender_effect = {# }## # Effect that fires when the trade deal ends. Only relevant if fire_and_forget is 'no'.# # SCOPE: Country "receiving" the action# # FROM: Country "giving" the action. Not guaranteed to be valid, since a trade deal is cancelled if one of the countries dies.# on_deal_ended_recipient_effect = {# set_galactic_custodian = no# }## # Used to determine how much the AI will value the action in a trade deal.# ai_weight = {# weight = 1## modifier = {# weight = 2# from = {# is_galactic_custodian = no# }# }# }# }
Касательно ИИ и дипломатии, теперь дипломатические действия более управляемые через скрипты. Хотя они (и окружающая их логика ИИ) всё ещё в значительной степени зависят от кода, теперь можно заскриптовать дополнительные причины для принятия или отклонения ИИ предложений в поле “ai_acceptance”, а поле “should_ai_propose” позволит вам запретить ИИ предлагать это.
И наконец мододелы должны знать об изменениях синхронизированной локализации. Точнее о том, что мы её полностью убрали. Это значит, что там, где она использовалась, она заменена на обычную систему локализации. У этого есть ряд преимуществ:
— Теперь мультиплеер будет работать даже если один игрок играет на китайском, а другой на английском (сейчас это невозможно).
— Теоретически можно перевести все названия на любой язык. (Однако к сожалению я не могу обещать, что мы это сделаем, потому что у всех европейских языков сложные грамматические правила, и нам всё ещё нужно найти приемлемый способ чтобы справиться с ними. Но возможность — это всё ещё круто).
К сожалению есть также сложности, которые можно свести к следующему: нам нужно сохранить свойство таким, каким оно есть когда оно получает название (например, свойство может измениться позже, но от этого его название не должно меняться), а также убедиться в том, что название правильное, вне зависимости от локализации.
Проще говоря, если вы используете команду в скобках в настройке названий, вам нужно зарегистрировать его в том месте, где вы регистрируете название, например:
set_name = {key = "NAME_Absorbed_Species"variable_string = "[Root.GetSpeciesNamePlural]"}NAME_Absorbed_Species:0 "Absorbed [Root.GetSpeciesNamePlural]"
У названий государств в папке random_names есть новые строки «поиска» чтобы служить своей цели:
# Imperial Spiritualist 2empire_name_format = {random_weight = {factor = 0modifier = {add = 1has_government = "gov_theocratic_monarchy"is_pirate = nois_primitive = noNOT = { is_country_type = fallen_empire }NOT = { is_country_type = awakened_fallen_empire }}}lookups = "<imperial_spi> [This.Capital.GetName]"format = format.imp_spi.2 # <imperial_spi> of [This.Capital.GetName]noun = format.homeworld # [This.Capital.GetName]prefix_format = format_prefix.imp_spi.2 # [This.Capital.GetName] <imperial_spi># Empire of Earth}
В тех случаях, когда названия определены напрямую в скрипте, что не редкость для модов, оно будет работать так, как оно должно (до тех пор пока команды в скобках не используются). Я не могу поручиться за это, поскольку мы не использовали эту функцию, поскольку она ломает китайскую (а теперь и корейскую с японской) локализации, поскольку у них всегда переведённые названия. Также могут возникнуть проблемы, если указанное название является локализованным ключом, который вы не хотите использовать... (на заметку: теперь списки названий также используют ключи локализации).
В качестве предостережения, каждая доступная команда в квадратных скобках должна работать в C++. Мы пытались покрыть все возможные случаи, но наверняка мы что-то упустили (в этом случае в журнале ошибок может быть жалоба на недопустимое свойство“GetXPersistent”). Если есть какие-то вопиющие случаи, которые мы пропустили, пожалуйста, оставьте сообщение на форуме, посвящённому ошибкам, и мы посмотрим, что мы можем сделать!
Но подождите, есть кое-что ещё!
На этой неделе Nivarias показал последнее происхождение!
 «Улей-прародитель».
f}t Progenitor Hive
This hive has gained evolutionary advantage through semi-independent leaders. These "Offspring" greatly improve overall proficiency, though they require constant oversight.
Effects:
-	Employ special Offspring Leaders who gain XP passively.
-	Replaces Ug Spawning Pools with
В самом начале был прародитель.
Жизнь на нашем родном мире была суровой и враждующей, но несмотря на это могучий прародитель расширил свои владения. Управлять такими обширными владениями вскоре стало невозможно, и тогда прародитель создал первого отпрыска. Со временем стало очевидно, что отпрыск не справлялся в одиночку. Тогда он создал трутней, чтобы помочь ему покорять наш дом.
Когда вы сделали свой первый шаг навстречу звёздам, прародитель уединился в своём особом гнезде. Теперь когда вы одарены большим, прямым контролем, вы готовы распространить влияние прародителя на все звёзды галактики — потому что прародитель был, есть и будет.
Происхождения «Улей-прародитель» — это новое происхождение коллективного разума в Overlord, а посему он также нуждается в дополнении Utopia.
Улей сильно зависит от присутствия мощных отпрысков. Когда они рядом, улей расцветает и работает усерднее.
Вы можете добавить в свой флот судна отпрысков с аурой, которая отменяет присущие вашим кораблям штрафы и даёт им небольшой бонус. Количество содержимых кораблей отпрысков ограничено вместимостью вашего флота, подобно лимиту титанов. Судна отпрысков разделяют свои бонусы из ограниченного запаса, большие корабли получают больше очков из запаса.
ICS Combat Vessel IX
Overseer-class Offspring Battleship
Core Components
• Hull Points:	3CXX
9 Armor	274(
9 Shields:	274(
-»> Speed:	21<
Evasion:	12.17
// Damage: 444.80 /	
;V Rank:	Regula
Offspring Oversight Offspring Oversight	
Effect on Allied Ships: Sublight Speed: +55% Evasion: +55%
Также есть модуль на космической базе для защиты пространства вашего государства, который даёт больше бонусов, чем корабли.
Offspring Outlook <$•150 #100
Offspring Outlook
A starbase building allowing an Offspring to oversee and administrate ongoing battles within the system.
Cost: ^150 Base Time: #180 Upkeep: $2.00 Offspring Oversight Effect on Allied Ships:
Sublight Speed: +65%
Evasion: +65%
Ship Fire Rate: +65%
Гнездо отпрыска заменяет собой резервуары для выведения обычных ульев, предоставляя дополнительные бонусы. Вы наверняка захотите обзавестись таким на каждой планете.
L
ition
iw r		$?20 #20 <*20
	■	<@>28 & 13
Offspring Nest Planet Limit: 1/1 ® 360 «>400 Upkeep: $2 Offspring Drone Jobs: +1
tr Offspring Drones increase ^ Amenities and Monthly Organic Pop Assembly, spawn Offspring-Led Armies, and provide a +10% increase in Menial Drone output.
Only Progenitor
Убедитесь в том, что кто-то занимает должность дрона-отпрыска, иначе у других ваших бесцельных трутней возникнут трудности.
Missing Offspring Menial Drone Output: -50%
This planet is missing an Offspring leading to a significant drop in Menial Drone efficiency.,Stellaris Dev Diary,Stellaris,Игры,продолжение в комментах
Все нанятые лидеры улья-прародителя пассивно получают опыт, повышая уровень значительно быстрее лидеров других государств. В среднем, без бонусов к опыту и других источников опыта, они пассивно получают уровень примерно каждые (1.5 * достигаемый уровень) лет.
В отличии от других ульев, прародитель может освобождать сектора в качестве вассалов, передавая судьбу сектора в щупальца повышенного до прародителя отпрыска, который становится правителем нового государства. Субъекты прародителя наследуют происхождение «Улей-прародитель», со всеми сопутствующими бонусами и штрафами.
Agreements
Ti-Zru Encroachers
Agreements: 2 Holdings: 0
		
Ti-Zru Multitude,Stellaris Dev Diary,Stellaris,Игры,продолжение в комментах
Если у вас есть субъект без происхождения «Улей-прародитель», вы можете построить на его планетах гнездо отпрыска, которое даёт столь необходимый надзор над их тру... Кхм, рабочими. Это в принципе одно и то же, правда?
Overlord
I*
-1


Planet Summary
Production Deficit -Q\.
Offspring Nest Planet Limit: 1/1 & 480 <^>400 Upkeep: $2
Offspring Drone Feeder Jobs: +1
A Offspring Drone Feeder provide access to Offspring-Led Armies and an Increase In £, Worker Pop Resource Output.
Approx Jobs Production:	+5%
Также у нас есть другое (не связанное с «Ульем-прародителем») владение!
Сюзерены с гражданской моделью «Защита окружающей среды» могут построить заставу рейнджеров, которая снижает потребление товаров массового спроса на планете субъекта, но также создаёт непригодный квадрат «Природный заповедник», который нельзя убрать пока существует ложа.
Production Deficit
Ranger Lodge Planet Limit: 1/1 ■# 437 «>400 Upkeep: (£2 Overlord Ranger Jobs: +1
tj Overlord Rangers provide a Consumer Goods Upkeep reduction while providing the Overlord with <§> Unity.
immar
mm
Approx Jobs Production:	-10%
Approx Jobs Production for Overlord: <§»18
The
Arid Highlar
Nature Preserve
Nature Preserve Blocker
Max Districts: 1
A section ot natural beauty decreed by the Overlord to never be tampered with.,Stellaris Dev Diary,Stellaris,Игры,продолжение в комментах
Заставу рейнджеров можно построить только на природных планетах, на которых есть свободные районы для блокировки, поэтому её нельзя построить на экуменополисах, мирах-ульях, машинных или реликтовых мирах.
,Stellaris Dev Diary,Stellaris,Игры,продолжение в комментах
Банан для сравнения.