Files
necromants-tome-7d2d-3-2/HarmonySrc/NecromancerHarmony.csproj
T
AlexCubeandClaude Opus 5.5 6ff76d174e Режим змеи для Ножа некроманта и чёрный разрыв
Ночью по R с ножом - дух змеи: тело падает (-95% HP), игрок управляет
призрачной змеёй от первого лица. Свободный ход по миру (свой наблюдатель
чанков, отрисовка, звук, спавн и спящие считаются от змеи), прыжок,
атака на ЛКМ - рывок сквозь препятствия и чёрный разрыв, ПКМ - выбраться
из текстур. Тёмное чутьё, тревога у тела, отсчёт в радиации края карты,
пурпурный фильтр зрения (necrovision). Утром змея развеивается.

Чёрный разрыв (NecroBurst.cs): клон частиц confetti в чёрном, команда
necroburst. Проверено в игре 28.09.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 15:31:37 +03:00

105 lines
5.5 KiB
XML

<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework>
<AssemblyName>NecromancerHarmony</AssemblyName>
<RootNamespace>NecromancerTome</RootNamespace>
<LangVersion>latest</LangVersion>
<Nullable>disable</Nullable>
<!-- The DLL is loaded straight out of the mod folder by the game, not via NuGet/deps.json. -->
<GenerateDependencyFile>false</GenerateDependencyFile>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<OutputPath>bin\</OutputPath>
</PropertyGroup>
<ItemGroup>
<!-- Game/Harmony assemblies: compile-time only, never copied into our output (they already
exist where the game loads them from). -->
<Reference Include="0Harmony">
<HintPath>..\..\0_TFP_Harmony\0Harmony.dll</HintPath>
<Private>false</Private>
</Reference>
<Reference Include="Assembly-CSharp">
<HintPath>..\..\..\7DaysToDie_Data\Managed\Assembly-CSharp.dll</HintPath>
<Private>false</Private>
</Reference>
<Reference Include="UnityEngine.CoreModule">
<HintPath>..\..\..\7DaysToDie_Data\Managed\UnityEngine.CoreModule.dll</HintPath>
<Private>false</Private>
</Reference>
<Reference Include="UnityEngine.ParticleSystemModule">
<HintPath>..\..\..\7DaysToDie_Data\Managed\UnityEngine.ParticleSystemModule.dll</HintPath>
<Private>false</Private>
</Reference>
<!-- Collider/Physics.IgnoreCollision for SummonPatch.cs's "pet passes through its owner"
(user request 2026-08-28) - lives in its own module, not CoreModule. -->
<Reference Include="UnityEngine.PhysicsModule">
<HintPath>..\..\..\7DaysToDie_Data\Managed\UnityEngine.PhysicsModule.dll</HintPath>
<Private>false</Private>
</Reference>
<!-- EntityAlive.PlayOneShot(string)'s own overload set touches AnimationEvent (2026-08-29,
BansheePatch.cs) - needed even though this mod never uses AnimationEvent directly, just
to satisfy the compiler's reference-resolution for that overload. -->
<Reference Include="UnityEngine.AnimationModule">
<HintPath>..\..\..\7DaysToDie_Data\Managed\UnityEngine.AnimationModule.dll</HintPath>
<Private>false</Private>
</Reference>
<!-- AssetBundle.LoadFromFile for CustomBlockPaintPatch.cs (2026-09-10) - the mod ships its
own block paint textures in Resources/necroatlas, and Unity keeps bundle loading in its
own module rather than CoreModule. -->
<Reference Include="UnityEngine.AssetBundleModule">
<HintPath>..\..\..\7DaysToDie_Data\Managed\UnityEngine.AssetBundleModule.dll</HintPath>
<Private>false</Private>
</Reference>
<!-- PlayerActionsLocal.Secondary (PlayerAction) for PortalStonePatch.cs's power-attack
channel-cancel (2026-08-29) - the game's own input layer, not something this mod
previously needed to touch directly. -->
<Reference Include="InControl">
<HintPath>..\..\..\7DaysToDie_Data\Managed\InControl.dll</HintPath>
<Private>false</Private>
</Reference>
<!-- UnityEngine.Input (raw mouse polling) for the same channel-cancel fix - Unity split
Input into its own module, not part of CoreModule. -->
<Reference Include="UnityEngine.InputLegacyModule">
<HintPath>..\..\..\7DaysToDie_Data\Managed\UnityEngine.InputLegacyModule.dll</HintPath>
<Private>false</Private>
</Reference>
<!-- PyramidWardPatch.cs's TEFeaturePyramidWard.Write() calls into this instead of
PooledBinaryWriter.Write directly - see TEPersistenceSrc/NecromancerTEPersistence.csproj's
own comment for why that call can't compile in THIS project at all. Private=false: it's
built and deployed separately (its own dotnet build + copy to the mod root), same as
0Harmony above - not something this project's own build should try to copy/rebuild. -->
<!-- SnakeControl.cs (2026-09-28): the snake's crosshair is drawn with OnGUI (IMGUIModule)
from a sprite in the game's atlas (INGUIAtlas/UISpriteData live in NGUI.dll). -->
<Reference Include="NGUI">
<HintPath>..\..\..\7DaysToDie_Data\Managed\NGUI.dll</HintPath>
<Private>false</Private>
</Reference>
<Reference Include="UnityEngine.IMGUIModule">
<HintPath>..\..\..\7DaysToDie_Data\Managed\UnityEngine.IMGUIModule.dll</HintPath>
<Private>false</Private>
</Reference>
<!-- The radiation countdown text (TextAnchor/FontStyle for its GUIStyle). -->
<Reference Include="UnityEngine.TextRenderingModule">
<HintPath>..\..\..\7DaysToDie_Data\Managed\UnityEngine.TextRenderingModule.dll</HintPath>
<Private>false</Private>
</Reference>
<!-- SnakeCrosshair: the crosshair sprite exported to PNG / a custom PNG loaded (ImageConversion). -->
<Reference Include="UnityEngine.ImageConversionModule">
<HintPath>..\..\..\7DaysToDie_Data\Managed\UnityEngine.ImageConversionModule.dll</HintPath>
<Private>false</Private>
</Reference>
<!-- SnakeVision.cs: ScreenEffects.ScreenEffect derives from the post-processing stack's
PostProcessEffectSubRenderer. -->
<Reference Include="Unity.Postprocessing.Runtime">
<HintPath>..\..\..\7DaysToDie_Data\Managed\Unity.Postprocessing.Runtime.dll</HintPath>
<Private>false</Private>
</Reference>
<Reference Include="NecromancerTEPersistence">
<HintPath>..\TEPersistenceSrc\bin\NecromancerTEPersistence.dll</HintPath>
<Private>false</Private>
</Reference>
</ItemGroup>
</Project>