- Костяной скакун (necroBoneSteed): мотоцикл из костей, сухожилий и сосудов с черепом-циклопом вместо фары; своя модель (бандл necrobonesteed), ванильная система предмета-транспорта (necroBoneSteedPlaceable, предпросмотр при установке); топливо - кровавая сфера, одна сфера = полный бак; теги коллайдеров и шейдер копируются с ванильного мотоцикла; рецепт на верстаке, Подмастерье - Книга Духа крысы: своя модель (бандл necrobooks) - чёрная кожа, светящийся узор со скелетом крысы и семиконечной звездой, ржавые уголки, ремешок - Турели не стреляют по существам мода (питомцы, рой, змея) - Гео-оссуарий тратит 1/10 прочности сферы на стак вместо целой сферы В игре не проверено. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
33 lines
1.6 KiB
C#
33 lines
1.6 KiB
C#
using HarmonyLib;
|
||
|
||
namespace NecromancerTome
|
||
{
|
||
/// <summary>
|
||
/// Турели не стреляют по существам мода. Жалоба 01.10: «мои питомцы враги, их атакуют
|
||
/// турели». Питомцы, рой и змея сделаны на зомби-основе и для игры остаются EntityEnemy, а
|
||
/// обе турели (стационарная AutoTurretFireController и переносная MiniTurretFireController)
|
||
/// решают в shouldIgnoreTarget: EntityEnemy - стрелять, если включено «по зомби». Здесь
|
||
/// ответ «пропустить» для всех necro*-сущностей (SnakeControl.IsNecroEntity) - тот же признак,
|
||
/// по которому их не выбирает целью охрана.
|
||
/// </summary>
|
||
[HarmonyPatch(typeof(AutoTurretFireController), nameof(AutoTurretFireController.shouldIgnoreTarget))]
|
||
public static class Patch_AutoTurretFireController_shouldIgnoreTarget_Pets
|
||
{
|
||
public static void Postfix(Entity _target, ref bool __result)
|
||
{
|
||
if (!__result && _target is EntityAlive alive && SnakeControl.IsNecroEntity(alive))
|
||
__result = true;
|
||
}
|
||
}
|
||
|
||
[HarmonyPatch(typeof(MiniTurretFireController), nameof(MiniTurretFireController.shouldIgnoreTarget))]
|
||
public static class Patch_MiniTurretFireController_shouldIgnoreTarget_Pets
|
||
{
|
||
public static void Postfix(Entity _target, ref bool __result)
|
||
{
|
||
if (!__result && _target is EntityAlive alive && SnakeControl.IsNecroEntity(alive))
|
||
__result = true;
|
||
}
|
||
}
|
||
}
|