-
Notifications
You must be signed in to change notification settings - Fork 154
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Feature] Lathe Arbitrage Integration Test #997
Conversation
Обзор измененийWalkthroughВ этом обновлении добавлен новый тестовый класс для проверки стоимости рецептов токарного станка и введено новое свойство Changes
Sequence DiagramsequenceDiagram
participant Test as LatheRecipyCostTest
participant PricingSystem as Система ценообразования
participant MaterialPrototype as Прототип материала
Test->>PricingSystem: Получить список рецептов
PricingSystem-->>Test: Список рецептов
Test->>MaterialPrototype: Проверить свойство IgnoreArbitrage
MaterialPrototype-->>Test: Статус игнорирования
Test->>Test: Вычислить стоимость материалов
Test->>Test: Проверить арбитраж
Poem
📜 Recent review detailsConfiguration used: CodeRabbit UI 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
Finishing Touches
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (5)
Content.IntegrationTests/Tests/Backmen/Lathe/LatheRecipyCostTest.cs (3)
10-10
: Рекомендуется документировать константу ToleranceДобавьте комментарий, объясняющий выбор значения допуска 10 и его единицы измерения (кредиты).
- private const double Tolerance = 10; + /// <summary> + /// Допустимая разница между стоимостью материалов и результата (в кредитах) + /// </summary> + private const double Tolerance = 10;
24-52
: Оптимизировать обработку рецептовТекущая реализация выполняет вычисления внутри WaitAssertion, что может повлиять на производительность теста.
Рекомендуется:
- Вынести логику проверки рецепта в отдельный метод
- Использовать LINQ для более чистого кода
- Добавить параллельную обработку для больших наборов рецептов
- await server.WaitAssertion(() => - { - var recipes = proto.EnumeratePrototypes<LatheRecipePrototype>(); - foreach (var recipe in recipes) - { - // ... current implementation - } - }); + var recipes = proto.EnumeratePrototypes<LatheRecipePrototype>(); + await server.WaitAssertion(() => + { + fails.AddRange( + recipes.AsParallel() + .Select(recipe => ValidateRecipe(recipe, proto, priceSystem)) + .Where(result => result != null) + ); + });
56-57
: Улучшить сообщение об ошибкеТекущее сообщение об ошибке можно сделать более информативным.
- var msg = string.Join("\n", fails) + "\n" + "Following RecipePrototypes are giving Arbitrage when printed!"; + var msg = $"Обнаружены рецепты с возможностью арбитража ({fails.Count}):\n" + + string.Join("\n", fails) + "\n" + + "Убедитесь, что стоимость результата не превышает стоимость материалов.";Content.Shared/Materials/MaterialPrototype.cs (1)
60-65
: Улучшить документацию свойства IgnoreArbitrageТекущая документация недостаточно подробно описывает назначение и последствия использования свойства.
/// <summary> - /// Backmen Change: Setting this to true will make - /// this material be ignored in Price Tests. + /// Если установлено значение true, материал будет исключен из проверок арбитража цен. + /// Используется для материалов, которые не должны учитываться при расчете + /// стоимости рецептов (например, расходные материалы или специальные предметы). /// </summary> [DataField] - public bool IgnoreArbitrage; + public bool IgnoreArbitrage = false;Resources/Prototypes/Entities/Objects/Misc/space_cash.yml (1)
56-56
: Необходимо уточнить комментарий в кодеДобавление
ignoreArbitrage: true
для материала Credit логично, так как валюта не должна учитываться в расчетах арбитража при крафте. Однако комментарий "uhhhh no" вызывает сомнения в правильности этого решения.Предлагаю:
- Удалить неясный комментарий "uhhhh no"
- Добавить более подробное объяснение, почему валюта исключается из проверок арбитража
- ignoreArbitrage: true # lathe-test change # uhhhh no + ignoreArbitrage: true # Currency should be excluded from arbitrage calculations as it's not craftable
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (6)
Content.IntegrationTests/Tests/Backmen/Lathe/LatheRecipyCostTest.cs
(1 hunks)Content.Shared/Materials/MaterialPrototype.cs
(1 hunks)Resources/Prototypes/Entities/Objects/Misc/space_cash.yml
(1 hunks)Resources/Prototypes/Reagents/Materials/materials.yml
(3 hunks)Resources/Prototypes/Reagents/Materials/ores.yml
(9 hunks)Resources/Prototypes/_Backmen/Reagents/Materials/prizeticket.yml
(1 hunks)
⏰ Context from checks skipped due to timeout of 300000ms (4)
- GitHub Check: build (ubuntu-latest)
- GitHub Check: Test Packaging
- GitHub Check: YAML Linter
- GitHub Check: build (ubuntu-latest)
🔇 Additional comments (3)
Resources/Prototypes/_Backmen/Reagents/Materials/prizeticket.yml (1)
7-7
: Корректная конфигурация PrizeTicketНастройка ignoreArbitrage для призового билета логична, так как этот предмет не должен участвовать в экономических расчетах.
Resources/Prototypes/Reagents/Materials/ores.yml (1)
8-8
: Проверить влияние на игровую экономикуИсключение всех руд из проверок арбитража может иметь значительное влияние на игровой баланс. Необходимо убедиться, что это намеренное решение.
Предлагаю проверить все рецепты, использующие эти материалы:
Also applies to: 18-18, 28-28, 38-38, 48-48, 58-58, 68-68, 78-78, 88-88
Resources/Prototypes/Reagents/Materials/materials.yml (1)
9-9
: Требуется согласованный подход к исключению материалов из проверок арбитражаНаблюдаются несогласованности в реализации:
- Для Biomass указана причина исключения
- Для Cardboard причина не указана
- Для Paper причина не указана
Учитывая низкую стоимость этих материалов (0.01-0.1), их исключение из проверок арбитража может быть оправдано, но требуется документация.
Рекомендации:
- Добавить единообразные комментарии с объяснением причин исключения
- Создать документацию с критериями для исключения материалов из проверок арбитража
- Проверить возможность эксплуатации через крафт с использованием этих материалов
Для проверки потенциальных эксплойтов выполните:
Also applies to: 18-18, 46-46
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
🔭 Outside diff range comments (3)
Resources/Prototypes/Recipes/Lathes/medical.yml (1)
Необходимо сохранить материальные затраты для хирургических инструментов
При удалении
BaseSurgicalRecipe
следующие рецепты потеряют определение базовых материалов (Steel: 200):
- Scalpel
- Retractor
- Cautery
- Saw
- Hemostat
Необходимо явно определить материальные затраты для каждого из этих рецептов.
🔗 Analysis chain
Line range hint
1-8
: Проверьте влияние удаления базового прототипаУдаление
BaseSurgicalRecipe
может повлиять на наследование рецептов хирургических инструментов. Убедитесь, что:
- Все дочерние рецепты правильно обновлены
- Базовые материалы (Steel: 200) корректно определены в каждом рецепте
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Проверка рецептов, которые могли использовать BaseSurgicalRecipe rg -l "parent:\s*BaseSurgicalRecipe" Resources/Prototypes/Recipes/Length of output: 116
Script:
#!/bin/bash # Показать содержимое файла medical.yml cat Resources/Prototypes/Recipes/Lathes/medical.ymlLength of output: 3822
Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml (2)
Line range hint
1200-1200
: Отсутствует компонент StaticPrice для энергетического дробовикаЭнергетический дробовик (WeaponEnergyShotgun) не имеет установленной цены, что может привести к проблемам с арбитражем. Необходимо добавить компонент StaticPrice.
Добавьте следующий компонент:
- type: BatterySelfRecharger autoRecharge: true autoRechargeRate: 24 autoRechargePause: true autoRechargePauseTime: 30 + - type: StaticPrice + price: 150
Цена лазера бехонкера действительно завышена
Анализ характеристик оружия показывает, что цена в 750 кредитов неоправданно высока:
- Большинство энергетического оружия стоит 100-500 кредитов
- Характеристики оружия (скорострельность 1, затраты энергии 100) не выделяются на фоне более дешёвых аналогов
- Базируется на BaseWeaponBatterySmall, как и более дешёвые варианты
Рекомендуется снизить цену до диапазона 300-500 кредитов.
🔗 Analysis chain
Line range hint
750-750
: Проверьте обоснованность высокой цены для лазера бехонкераЦена в 750 кредитов для WeaponBehonkerLaser кажется завышенной, учитывая его характеристики. Рекомендуется сравнить с ценами других самозаряжающихся лазеров.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Поиск других самозаряжающихся лазеров ast-grep --pattern 'type: BatterySelfRecharger $$$ type: StaticPrice price: $_'Length of output: 89
Script:
#!/bin/bash # Search for self-recharging weapons and their prices rg -A 5 "BatterySelfRecharger" Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/ # Also search for price definitions in battery weapons rg "price: \d+" Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/Length of output: 3472
Script:
#!/bin/bash # Search for WeaponBehonkerLaser definition and surrounding context rg -B 5 -A 15 "WeaponBehonkerLaser" Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/Length of output: 2259
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (14)
Resources/Prototypes/Entities/Objects/Devices/Circuitboards/computer.yml
(1 hunks)Resources/Prototypes/Entities/Objects/Devices/Circuitboards/misc.yml
(1 hunks)Resources/Prototypes/Entities/Objects/Devices/Electronics/door.yml
(1 hunks)Resources/Prototypes/Entities/Objects/Devices/Electronics/firelock.yml
(1 hunks)Resources/Prototypes/Entities/Objects/Devices/Electronics/misc.yml
(1 hunks)Resources/Prototypes/Entities/Objects/Devices/Electronics/timer.yml
(1 hunks)Resources/Prototypes/Entities/Objects/Devices/holoprojectors.yml
(1 hunks)Resources/Prototypes/Entities/Objects/Shields/shields.yml
(1 hunks)Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml
(1 hunks)Resources/Prototypes/Reagents/Materials/materials.yml
(4 hunks)Resources/Prototypes/Recipes/Lathes/medical.yml
(1 hunks)Resources/Prototypes/Recipes/Lathes/security.yml
(2 hunks)Resources/Prototypes/_Backmen/Entities/Objects/Devices/Circuitboards/computer.yml
(1 hunks)Resources/Prototypes/_Backmen/Entities/Objects/Weapons/Guns/Energy/energy.yml
(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
- Resources/Prototypes/Reagents/Materials/materials.yml
⏰ Context from checks skipped due to timeout of 300000ms (2)
- GitHub Check: build (ubuntu-latest)
- GitHub Check: Test Packaging
🔇 Additional comments (15)
Resources/Prototypes/Recipes/Lathes/medical.yml (1)
104-104
: Подтверждаю изменение стоимости ClothingMaskSterileУвеличение требуемого количества пластика с 50 до 100 соответствует цели PR по предотвращению арбитража. Изменение делает рецепт менее прибыльным.
Resources/Prototypes/Recipes/Lathes/security.yml (3)
78-80
: Увеличение стоимости материалов для WeaponLaserPistolЗначительное повышение требований к материалам поможет предотвратить возможность арбитража при крафте лазерного пистолета.
119-120
: Корректировка стоимости WeaponXrayCannonУвеличение количества золота и пластика в рецепте рентгеновской пушки эффективно предотвращает возможность получения прибыли от её создания.
78-80
: Целевой подход к балансировке экономикиТочечные изменения в рецептах WeaponLaserPistol и WeaponXrayCannon демонстрируют тщательный подход к устранению возможностей арбитража. Рекомендуется также проверить остальные рецепты оружия на предмет потенциальных проблем с балансом.
Also applies to: 119-120
✅ Verification successful
Изменения в рецептах соответствуют общей системе баланса
Анализ всех рецептов оружия показывает, что изменения в WeaponLaserPistol и WeaponXrayCannon являются частью последовательной системы прогрессии, где стоимость материалов пропорциональна мощности оружия. Текущие изменения поддерживают существующую иерархию крафта.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Поиск других рецептов оружия, которые могут требовать балансировки # Поиск всех рецептов оружия в категории Weapons rg "category: Weapons" -B 2 -A 10 # Поиск рецептов, использующих ценные материалы (Gold, Uranium, Plasma) rg "materials:(\n|.)*?(Gold|Uranium|Plasma):" -B 2 -A 5Length of output: 4695
Script:
#!/bin/bash # Поиск рецептов с ценными материалами с поддержкой многострочного поиска rg -U "materials:(\s|\n)+.*(Gold|Uranium|Plasma|Silver):" -B 2 -A 5 # Поиск базовых рецептов для сравнения rg "parent: BaseWeaponRecipe" -B 5 -A 5Length of output: 17045
Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml (1)
Line range hint
260-260
: Проверьте соотношение цены и характеристик DisablerSMGЦена в 260 кредитов для DisablerSMG требует проверки баланса относительно других оглушающих видов оружия.
✅ Verification successful
Цена DisablerSMG в 260 кредитов является сбалансированной
Анализ показывает, что цена оправдана следующими характеристиками:
- Высокий потенциальный урон в секунду благодаря автоматическому режиму стрельбы
- Эффективное использование заряда батареи (33 на выстрел против 100-200 у аналогов)
- Сбалансированные недостатки в виде большего размера и меньшего урона за выстрел
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Поиск других оглушающих видов оружия для сравнения цен rg "type: StaticPrice" -B 5 | rg -B 5 "Disabler|Taser"Length of output: 56
Script:
#!/bin/bash # Поиск файлов оружия echo "=== Поиск файлов с оружием ===" fd "\.yml$" Resources/Prototypes/Entities/Objects/Weapons/ # Поиск ценовых компонентов в файлах оружия echo "=== Поиск цен оружия ===" rg "StaticPrice|Price" Resources/Prototypes/Entities/Objects/Weapons/ -B 5 -A 2 # Поиск оглушающего оружия echo "=== Поиск оглушающего оружия ===" rg -i "disabler|taser|stun|nonlethal" Resources/Prototypes/Entities/Objects/Weapons/ -B 5 -A 5Length of output: 79139
Resources/Prototypes/Entities/Objects/Devices/Electronics/misc.yml (1)
15-15
: Проверить влияние на рецепты автотокарного станкаСнижение цены с 55 до 20 требует проверки всех рецептов, использующих FreezerElectronics, чтобы убедиться в отсутствии возможности арбитража.
✅ Verification successful
Изменение цены безопасно
Снижение цены FreezerElectronics с 55 до 20 не создаёт возможностей для арбитража, так как стоимость материалов для создания (50 стали + 50 пластика) значительно превышает цену продажи.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Поиск рецептов, использующих FreezerElectronics rg -l "FreezerElectronics" Resources/Prototypes/Lathe/Length of output: 122
Script:
#!/bin/bash # Найти все файлы, содержащие 'lathe' или 'recipe' в названии fd -i "lathe|recipe" --type f # После нахождения файлов, поищем упоминания FreezerElectronics rg -l "FreezerElectronics" .Length of output: 3448
Script:
#!/bin/bash # Проверить содержимое файла с рецептами электроники cat Resources/Prototypes/Recipes/Lathes/electronics.yml # Также проверим рецепты крафта для полноты картины cat Resources/Prototypes/Recipes/Crafting/Graphs/storage/cratefreezer.yml cat Resources/Prototypes/Recipes/Crafting/Graphs/storage/tallbox.ymlLength of output: 20486
Resources/Prototypes/Entities/Objects/Devices/Circuitboards/misc.yml (1)
16-16
: Изменение цены соответствует общей стандартизацииСнижение цены до 20 согласуется с общим подходом к стандартизации цен на базовую электронику станции.
Resources/Prototypes/Entities/Objects/Devices/Electronics/firelock.yml (1)
16-16
: Значительное снижение цены требует проверкиСнижение цены с 61 до 20 является существенным изменением. Необходимо проверить:
- Влияние на общую экономику станции
- Возможность создания новых схем арбитража через крафт
✅ Verification successful
Снижение цены оправдано и соответствует общему балансу
Анализ показывает, что новая цена в 20 кредитов:
- Соответствует стоимости других базовых электронных компонентов (дверная электроника, таймеры)
- Подкреплена низкими затратами на материалы при крафте
- Ограничена редким появлением в шкафчиках инженеров (5%)
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Поиск связанных рецептов и цен rg -l "FirelockElectronics" Resources/Prototypes/Length of output: 604
Script:
#!/bin/bash # Check recipes and construction details echo "=== Lathe Recipe ===" rg -A 10 "FirelockElectronics" Resources/Prototypes/Recipes/Lathes/electronics.yml echo -e "\n=== Construction Graph ===" rg -A 10 "FirelockElectronics" Resources/Prototypes/Recipes/Construction/Graphs/structures/firelock.yml echo -e "\n=== Engineer Locker Contents ===" rg -A 5 "FirelockElectronics" Resources/Prototypes/Catalog/Fills/Lockers/engineer.ymlLength of output: 1239
Script:
#!/bin/bash # Check base recipe materials and costs echo "=== Base Electronics Recipe ===" rg "BaseCheapElectronicsRecipe|BaseElectronicsRecipe" Resources/Prototypes/Recipes/Lathes/electronics.yml -A 10 echo -e "\n=== Other Electronics Prices ===" rg "price: \d+" Resources/Prototypes/Entities/Objects/Devices/Electronics/*.ymlLength of output: 5116
Resources/Prototypes/_Backmen/Entities/Objects/Devices/Circuitboards/computer.yml (1)
12-12
: Требуется обоснование значительного снижения ценыСнижение цены с 750 до 150 (на 80%) является очень существенным изменением для специализированной платы верфи. Необходимо:
- Обосновать такое значительное снижение
- Проверить влияние на баланс игры
- Убедиться, что это не создаст новых возможностей для арбитража
Resources/Prototypes/Entities/Objects/Devices/Electronics/door.yml (1)
15-15
: Стандартизация цены требует проверки крафтаСнижение цены до 20 соответствует общей стандартизации, но учитывая частое использование дверной электроники, необходимо проверить влияние на крафт.
✅ Verification successful
Изменение цены не влияет на крафт
Снижение цены дверной электроники до 20 не оказывает влияния на крафт, так как:
- Рецепты создания в станках используют фиксированное количество материалов (50 стали, 50 пластика)
- Графы конструкции дверей требуют только наличия компонента, без учета его стоимости
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Поиск рецептов с дверной электроникой rg -l "DoorElectronics" Resources/Prototypes/Lathe/Length of output: 119
Script:
#!/bin/bash # Найдем все файлы, связанные с рецептами и крафтом fd -e yml -e yaml "(recipe|craft|construction)" # Поиск упоминаний DoorElectronics rg -l "DoorElectronics" Resources/Prototypes/Length of output: 2692
Script:
#!/bin/bash # Проверим рецепты в electronics.yml cat Resources/Prototypes/Recipes/Lathes/electronics.yml # Проверим графы конструкции для дверей cat Resources/Prototypes/Recipes/Construction/Graphs/structures/airlock.yml cat Resources/Prototypes/Recipes/Construction/Graphs/structures/windoor.ymlLength of output: 41458
Resources/Prototypes/Entities/Objects/Devices/Electronics/timer.yml (1)
18-18
: Подтверждаю изменение цены для таймера.Снижение цены с 30 до 20 соответствует общей инициативе по корректировке цен для предотвращения арбитража.
Resources/Prototypes/Entities/Objects/Devices/holoprojectors.yml (1)
69-69
: Корректировка цены голопроектора.Снижение цены с 80 до 60 для HolofanProjector логично соотносится с ценой HoloprojectorSecurity (50), создавая сбалансированную ценовую структуру.
Resources/Prototypes/_Backmen/Entities/Objects/Weapons/Guns/Energy/energy.yml (1)
174-175
: Добавление цены для лазерного пистолета.Установка цены 250 для лазерного пистолета EarthGov является обоснованной для энергетического оружия и соответствует целям предотвращения арбитража.
Resources/Prototypes/Entities/Objects/Devices/Circuitboards/computer.yml (1)
405-405
: Корректировка цены платы массмедиа.Снижение цены со 150 до 100 соответствует базовой цене компьютерных плат и общей инициативе по балансировке цен.
Resources/Prototypes/Entities/Objects/Shields/shields.yml (1)
589-589
: Корректировка цены телескопического щита.Снижение цены с 250 до 170 лучше отражает полезность предмета в сравнении с другими щитами, сохраняя при этом его ценность как продвинутого защитного снаряжения.
- type: StaticPrice | ||
price: 300 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Codebase verification
🛠️ Refactor suggestion
Цена частичного замедлителя значительно занижена
Текущая цена в 300 кредитов создает серьезную возможность для арбитража, учитывая что:
- Стоимость материалов для создания составляет около 9000-10500 кредитов
- Требуется исследование технологии 3-го уровня (GravityManipulation)
- Является специализированным инструментом для работы с опасными явлениями
Рекомендуется повысить цену минимум до 9000 кредитов для предотвращения эксплуатации экономики.
🔗 Analysis chain
Проверьте баланс цены частичного замедлителя
Цена в 300 кредитов кажется низкой для оружия, способного разлагать теслу или сингулярность. Рекомендуется пересмотреть цену с учетом его уникальных возможностей.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Поиск рецептов создания частичного замедлителя
rg -l "WeaponParticleDecelerator"
Length of output: 651
Script:
#!/bin/bash
# Check lathe recipes and research requirements
echo "=== Lathe Recipe ==="
rg -A 10 "WeaponParticleDecelerator" Resources/Prototypes/Recipes/Lathes/tools.yml
echo -e "\n=== Research Requirements ==="
rg -A 10 "WeaponParticleDecelerator" Resources/Prototypes/Research/experimental.yml
echo -e "\n=== Crate Information ==="
rg -A 5 "WeaponParticleDecelerator" Resources/Prototypes/Catalog/Fills/Crates/engineering.yml
Length of output: 969
Описание PR
Добавлен тест на проверку стоимости всех рецептов из автолатов.
Если какой-либо рецепт в результате даёт больше чем материалы необходимые для него, то тест проваливается и выдаёт ошибку!
🆑 Evil Lathe Fixer
Summary by CodeRabbit
Тесты
Новые возможности
IgnoreArbitrage
для материалов.Изменения в конфигурации
ignoreArbitrage: true
для нескольких материалов, включая кредиты, биомассу, руды и другие специальные материалы.WeaponLaserPistol
иWeaponXrayCannon
.HolofanProjector
иTelescopicShield
, улучшая баланс в игре.Эти изменения направлены на улучшение системы ценообразования в игре и обеспечение экономической сбалансированности.