Урна рабочего: в кузню только сырьё, булыжник не плавить (#19)
Проверка «нет рецепта» не отличала камни от булыжника: у камня тоже есть рецепты (разбор, выплавка из переплавленного), и дух брал то, что лежит в ящике раньше. Теперь «сделано руками» = есть рецепт изготовления, не разбор и не выплавка; такое в кузню не кладётся. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
fb9c50cdf9
commit
b4335a0448
@@ -485,16 +485,18 @@ namespace NecromancerTome
|
||||
// 23.10 («вместо камней вплавляет булыжник»): сначала сырьё, у которого нет рецепта (камни, лом), сделанное руками
|
||||
// (булыжник) - только если сырья нет. Раньше - первое подходящее по порядку ячеек.
|
||||
// 24.10 («работник положил сланец в переплавку в печку»): горючее (нефтяной сланец - сырьё для бензина) не плавится
|
||||
// вовсе - рецепта у него нет, и раньше оно шло наравне с камнями.
|
||||
// вовсе. 24.10 («и снова засунул булыжник!!!»): плавится только сырьё - сделанное руками (булыжник) не плавится
|
||||
// никогда. Прежняя проверка «нет рецепта» не отличала камни от булыжника: у камня тоже есть рецепты (разбор в лом,
|
||||
// выплавка из переплавленного) - см. Handmade.
|
||||
foreach ((Vector3i p, TEFeatureStorage box, int k) s in Ordered(_src, g =>
|
||||
{
|
||||
ItemClass c = g.itemValue.ItemClass;
|
||||
if (c?.MadeOfMaterial?.ForgeCategory == null || !c.MadeOfMaterial.ForgeCategory.EqualsCaseInsensitive(mat) ||
|
||||
c.GetItemName().StartsWith("unit_") || ItemClass.GetFuelValue(g.itemValue) > 0)
|
||||
c.GetItemName().StartsWith("unit_") || ItemClass.GetFuelValue(g.itemValue) > 0 || Handmade(c))
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
return CraftingManager.GetRecipe(c.GetItemName()) == null ? 0 : 1;
|
||||
return 0;
|
||||
}))
|
||||
{
|
||||
{
|
||||
@@ -533,6 +535,20 @@ namespace NecromancerTome
|
||||
return false;
|
||||
}
|
||||
|
||||
/// <summary>Сделано руками: есть рецепт изготовления - не разбор (IsScrap, wildcard_forge_category) и не выплавка в кузне
|
||||
/// из переплавленного (material_based). Камни и лом - сырьё (только такие рецепты), булыжник - сделан руками.</summary>
|
||||
static bool Handmade(ItemClass _c)
|
||||
{
|
||||
foreach (Recipe r in CraftingManager.GetRecipes(_c.GetItemName()))
|
||||
{
|
||||
if (!r.IsScrap && !r.wildcardForgeCategory && !r.materialBasedRecipe)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
static Vector3i? FuelSource(List<(Vector3i p, TEFeatureStorage box)> _src)
|
||||
{
|
||||
foreach ((Vector3i p, TEFeatureStorage box, int k) s in Ordered(_src, FuelRank))
|
||||
|
||||
Reference in New Issue
Block a user