From e89099939196d87b5c41b1df532931c0bc58dada Mon Sep 17 00:00:00 2001 From: AlexCube Date: Wed, 16 Sep 2026 20:35:01 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9A=D1=80=D1=8F=D0=BA=20=D0=B1=D0=BE=D0=BB?= =?UTF-8?q?=D0=B8=20=D0=BF=D1=80=D0=B8=20=D1=81=D0=BE=D0=B7=D0=B4=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D0=B8=20=D0=9A=D1=80=D0=BE=D0=B2=D0=B8=20=D0=BD?= =?UTF-8?q?=D0=B5=D0=BA=D1=80=D0=BE=D0=BC=D0=B0=D0=BD=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Крафт крови и так снимает 90% текущего ХП, но делал это молча. Теперь на том же месте играет штатный звук боли игрока - тот, что слышно при накалывании на кол или на колючую проволоку. ИМЯ КЛИПА СПРАШИВАЕТСЯ У СУЩНОСТИ, А НЕ ВПИСАНО СТРОКОЙ. Звук боли зависит от пола персонажа (Data/Config/entityclasses.xml): playerMale SoundHurt="player1painlg" SoundHurtSmall="player1painsm" playerFemale SoundHurt="player2painlg" SoundHurtSmall="player2painsm" playerFemale extends playerMale и переопределяет обе строки, так что захардкоженный "player1painlg" выдал бы женскому персонажу мужской кряк. Вместо этого зовутся GetSoundHurt() и GetSoundHurtSmall() - публичные методы EntityAlive, каждый из которых целиком есть чтение поля (проверено по IL: "ldarg.0; ldfld soundHurt|soundHurtSmall; ret", токены разрешены через Module.ResolveField). ПОРОГ ВЗЯТ У САМОЙ ИГРЫ. EntityPlayer переопределяет GetSoundHurt(DamageSource, int) - тот самый метод, через который проходят колья и колючая проволока. Его IL разобран целиком, и правило такое: урон СТРОГО больше 15 -> большой кряк (soundHurt), 15 и меньше -> малый (soundHurtSmall), плюс фолбэк на большой, если малый не объявлен. Воспроизведено один в один, включая строгое "больше" и фолбэк; константа названа PainSoundBigDamage и несёт этот разбор в комментарии. Сам GetSoundHurt(DamageSource, int) не вызывается: ему нужен DamageSource, а здесь урона от источника нет - ХП снимается через AddHealth, осознанно (см. комментарий на месте вызова). Правило выбора - три строки, поэтому оно повторено, а не подделано синтетическим DamageSource. PLAYONESHOT ВЫЗВАН РОВНО КАК В ВАНИЛИ. Единственный вызывающий - EntityAlive.OnUpdateEntity, IL 348: там PlayOneShot получает sound_in_head:false, serverSignalOnly:false, isUnique:false, _animEvent:null, volumeScale:1f. Значения по умолчанию у Entity.PlayOneShot - те же самые (сверено через RawDefaultValue), так что вызов одним аргументом поведенчески идентичен ванильному: кряк идёт ОТ персонажа, а не "в голове". Оттуда же взят null-guard - ваниль пропускает вызов при пустом имени клипа, а не отдаёт его PlayOneShot. Вызов стоит ПОСЛЕ AddHealth(-amount), а не до: крафт, который свалился бы выше, не должен издавать звук, которому игрок не найдёт объяснения. При цене 90% это практически всегда большой кряк - малый включится только на остатке около 17 ХП, там же, где его сделала бы малым ваниль. ЗАОДНО: устаревшая шапка NecromancerBloodPatch.cs. Комментарий утверждал, что кровь живёт в item_modifiers.xml, "not in items.xml, since 2026-09-15". Откат 15.09 это отменил, но тогда правились только комментарии в items.xml, а .cs пропустили. Переписано: кровь в items.xml, и рядом коротко, почему её оттуда нельзя двигать. Сборка: 0 ошибок (4 прежних MSB3277 про версии System.Runtime, к правке отношения не имеют). Скомпилированный PlayPainSound проверен рефлексией по готовой DLL - вызовы идут в ожидаемом порядке. НЕ ПРОВЕРЕНО В ИГРЕ. Проверять обоими полами персонажа - ради этого имя клипа и спрашивается у сущности. Co-Authored-By: Claude Opus 5 --- HarmonySrc/NecromancerBloodPatch.cs | 95 ++++++++++++++++++++++++++-- NecromancerHarmony.dll | Bin 92672 -> 92672 bytes NecromancerHarmony.pdb | Bin 29272 -> 29356 bytes 3 files changed, 88 insertions(+), 7 deletions(-) diff --git a/HarmonySrc/NecromancerBloodPatch.cs b/HarmonySrc/NecromancerBloodPatch.cs index b9eb006..d0841ee 100644 --- a/HarmonySrc/NecromancerBloodPatch.cs +++ b/HarmonySrc/NecromancerBloodPatch.cs @@ -4,13 +4,20 @@ using UnityEngine; namespace NecromancerTome { /// - /// "Кровь некроманта" (Necromancer's Blood) - dictated 2026-08-30. See item_modifiers.xml - /// (resourceNecromancerBlood - it lives THERE, not in items.xml, since 2026-09-15: it had to - /// become an ItemClassModifier to be installable in the Spatial Bracelet, and that class is - /// only created from . Nothing here changed - the lookup is by name, and both - /// files register into the same ItemClass.nameToItem) for the item, recipes.xml for the base - /// recipe (an empty jar, - /// like any other resource conversion). Two rules the user asked for have NO vanilla XML + /// "Кровь некроманта" (Necromancer's Blood) - dictated 2026-08-30. See items.xml + /// (resourceNecromancerBlood) for the item and recipes.xml for the base recipe (an empty jar, + /// like any other resource conversion). + /// + /// IT LIVES IN items.xml, AND THAT IS NOT AN ACCIDENT. On 2026-09-15 it was moved into + /// item_modifiers.xml so it could be installed in the Spatial Bracelet, and that move + /// DESTROYED a character in a save: ItemValue.Read/Write gate the modification block on + /// !(itemClass is ItemClassModifier), so the item's CLASS decides the byte layout of every + /// stack of it in the save, and an existing save read one byte off from the first blood stack + /// onward. It was rolled back the same day, the bracelet's charge became a brand-new item + /// (resourceBloodSphere, and later resourceBloodStone) instead, and the rule stands: an item + /// that could already be in someone's inventory must not change class in either direction. + /// The full account is in BACKLOG.md; the earlier wording of this comment claimed the modifier + /// home as current and outlived the code by a day. Two rules the user asked for have NO vanilla XML /// equivalent at all, so both are enforced here instead: /// 1. "нужна... наличие любого ножа" - a knife must be present (in the toolbelt or /// backpack) to craft this, but is NOT consumed. recipes.xml has no "required but not @@ -54,6 +61,73 @@ namespace NecromancerTome public const string BloodItemName = "resourceNecromancerBlood"; public const float HealthCostFraction = 0.9f; + /// Damage above which the player's BIG pain grunt is used instead of the small + /// one. Not invented: it is vanilla's own threshold, read out of + /// EntityPlayer.GetSoundHurt(DamageSource, int) - the override that every spike and every + /// strand of barbed wire goes through. Its IL is + /// + /// ldarg.2 // _damageStrength + /// ldc.i4.s 15 + /// bgt.s -> GetSoundHurt() // strictly MORE than 15 -> soundHurt (…painlg) + /// call GetSoundHurtSmall() // 15 or less -> soundHurtSmall (…painsm) + /// + /// so the comparison is strictly greater-than, and 15 exactly still counts as small. The + /// same method has an earlier branch for damage type 16 that returns GetSoundDrownPain(); + /// that one is the drowning case and has nothing to do with us. + public const int PainSoundBigDamage = 15; + + /// Plays the player's own pain grunt, picking the big or the small one by the + /// same rule vanilla uses for spikes and barbed wire (user request 2026-09-16: "в игре + /// есть звук боли (когда персонаж напарывается на колья или на колючую проволоку). Пусть + /// этот звук воспроизводится при создании крови некроманта"). + /// + /// WHY THE SOUND NAME IS ASKED FOR AND NOT SPELLED OUT. The clip differs by gender - + /// playerMale carries SoundHurt="player1painlg"/SoundHurtSmall="player1painsm" and + /// playerFemale overrides both to player2pain* (Data/Config/entityclasses.xml). Hardcoding + /// "player1painlg" would have given every female character a male grunt. GetSoundHurt() and + /// GetSoundHurtSmall() are public on EntityAlive and are plain field reads (verified: each + /// one's whole body is "ldarg.0; ldfld soundHurt|soundHurtSmall; ret"), so they return + /// whatever this entity's own class declared and cost nothing. + /// + /// WHY NOT GetSoundHurt(DamageSource, int), which would pick for us: it needs a + /// DamageSource, and this is not damage from a source - the HP here is spent by AddHealth, + /// deliberately (see the comment at the call site). Its selection rule is three lines, so + /// it is reproduced instead of faked with a synthetic DamageSource. + /// + /// The null guard is vanilla's too: EntityAlive.OnUpdateEntity stores the result and skips + /// the call on null (brfalse right after the stloc) rather than handing PlayOneShot a null + /// clip name. The fallback to the big grunt covers an entity that declares SoundHurt but + /// not SoundHurtSmall - again exactly what vanilla's override does when + /// GetSoundHurtSmall() comes back empty. + /// + /// PlayOneShot(name) with no further arguments is byte-for-byte what vanilla passes here: + /// its optional parameters default to sound_in_head:false, serverSignalOnly:false, + /// isUnique:false, _animEvent:null, volumeScale:1f, and OnUpdateEntity's own call pushes + /// exactly those five constants. So the grunt comes out of the character, not "in the + /// head", same as being spiked. + public static void PlayPainSound(EntityPlayerLocal _player, int _damage) + { + if (_player == null) + { + return; + } + + string clip = _damage > PainSoundBigDamage + ? _player.GetSoundHurt() + : _player.GetSoundHurtSmall(); + + if (string.IsNullOrEmpty(clip)) + { + clip = _player.GetSoundHurt(); + } + if (string.IsNullOrEmpty(clip)) + { + return; + } + + _player.PlayOneShot(clip); + } + public static bool HasAnyKnife(EntityPlayerLocal player) { return ContainsKnife(player.inventory?.GetSlots()) || ContainsKnife(player.bag?.GetSlots()); @@ -135,6 +209,13 @@ namespace NecromancerTome return; } __state.AddHealth(-amount); + + // The grunt goes AFTER the HP is actually gone, so a craft that somehow bailed out + // above never makes a sound the player cannot account for. At the 90% cost this is the + // big pain clip in every normal case (amount > 15 unless the player is already down to + // about 17 HP), and drops to the small one exactly where vanilla would drop it too. + NecromancerBloodPatch.PlayPainSound(__state, amount); + Debug.Log("[NecromancerTome] NecromancerBloodPatch: crafted blood, deducted " + amount + " HP from owner=" + __state.entityId); } } diff --git a/NecromancerHarmony.dll b/NecromancerHarmony.dll index f0429eef73d140d797a30273a817520307d00eae..b92d04eef5c022a28a1f13d8d9a8dfdd42fa5987 100644 GIT binary patch delta 22767 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 delta 22768 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 delta 5868 zcmZ9P30zdw7st<=8D@q7WD^isTu>1N6cI#lLqL>8g%NWN)Y9C|HMhnEmr`RH71T5_ zA>7STv~o+6)bg*X{Zs5u<(lP^nVO~b|D8J*d^#U~@15^C=kE92_tsJGaZ1P%XUh3&m`Ran-g`+0CyWZVHj9h z@cE&bjkA*T^BnX4V?N}e8@c;VVL=103dE|QYRC~v&=7SgJecOlPEUm>+3K!bw-g5} zG^nM9MnaX)s1Pl!fqsRYLbcQ?R7Y*0Zcs01R;U9lhN?pK6x&Kq{$YCR4;_V`LQBK- zv?km@rO)!bp>$<%-DKV34PMRl}IEHxoIg=;=jSJ-ulO^eglf z3QqN=cT;_6Ep#wdOI~SO3WnN29id*(pfsLMJq;IkBNe3?=`-jA^lci}|B4LUgX5{N zxqy)z)A_FcxzLOkd~Q^h?nb+X&y7yPzFZggpr7k(uA@Hv_5!m{PtVeAf9SdzEK#6T z@}c>JhXlVY6+6L>htd#VAmg*a>EJxciQo(s_XYPNUs@>R2f@7&Uo3eanqhtqJVqf4 z#o>8mM?M^rU`I(V1Rr6R6%>IzQMk2aE4UkYAh-|8uLSe&ER;!pb=(4+rQ()ga~)fV zVqS0%MT7eyVU?^9CxhT(uoy~+32+(sTksgfPl5TzqZ+H?hTw53{!;Q+$oGJ~NAlNTF1rC5 zk9^B%S>aGLG69Zrl6eg$g3n7XMV$FNFfR}9kvGAYWIPe^N#GjEyy+%WKpppfiSZie zxP^W|0X?9TO!yJ(0y_+vf(m|;74oB1%luMbBKZp9?y#pxz6x#tn;*leD1S|s$F~G> zp7S}umH@hegdTteGT|neH_%jQIttv974V4OQt_3S_=x1&$Uh33_rwh3-;w42eTgqK zTaa)c3I78$fo6h#mj(L0#O);ifjA#p+`ug4Ka}}XUSdAVIsO>&zA}F{&VfH=KF_da zj>_>5_SV~AMX_(P^H@_0*dY13WD}U5nyHeVz}&gP;JL_mk@=i659}(L2Q**B^SJs2 zaCpjuO-Nw&2G51v6v_iPkntwqg(~JHS)}59;KigRKbb!S9a;izBzYp@?|>Ui-o+2* zyKpp@jw}>ds^Tq@LlEajj61~fQ1BVp{B~q+1-=NI&y8i^Ffjl4<-{Bg=EsmXIdcR! z7tQ4;$j?A9vm6S*HaCy*ovYLzl)s1 z$kvFmL~)`Ot^t4OKi-U@mC4A|(|+L}Ao|eXA_n$(oeNJOY@#+|iakWbe~Z)~;MEcr z)6qm+9mpFVgYXz>5i*HxLW<~wy?STA#O%P>v7f6 z6ZBL^b8xLqT_r}`0+~j+p7u&FiZ1fnYGnh>k?BCeq6ZVL?!G~txJmp2h%3G)#enA^ z2OpWD#Z6+scj3W_B64^v*kA0R5bJc`ka|bZ6BC6Y$BF*YT6g$*TaJrV`!exXtR44b z6vDxZsE#g*uFS_(Pu}ntsZ`YfKVKTUTj#NV4=PlG#x&GjbZCc&ej)5i_!U}=D`wOp zZUw@16Jh(>Yw0w)qNC9$=0J}{VSA2!H?T(|#-YVHIEO#t^%M!)K=vUOU_KPmh)ic( z?N1kpj~RvRZN=+QPD>XM*5PxDE4l((FV@u{8aC3a@R*1f&WTRKcBU@aRW8I2Q$6Ym z8>gOV%-*?!RxiIGi+v$R3I9c0H8d4vwX_(v165l}Zdq4p`8Ce}Yo^vX>Bu1j$tPL%u?v^oGyV((ip{v~zGS|7U z>`|Eg=w4;{J4=pl9y8Z`I5Oo#;TzuvwwvNQb$RN9VZZD>HhWxt2cN>eCqHd?^xq!? za&6}~tXq`-_D40N|1SNZs$NXf>R+;|r>45)ZoO3Y)1y&4S2&wTPrGozG0K1X7k?f8 z=-2$QjqaT5d^z~DUH7IrK04m`Q1$WAht|YDaT#AfDt2OGo4(C@^=Yub!3X8bZkqc< z%puz=5iyMnjg*Qwr6Sq7A|unZN~u_9N87!ORtj@%xLNOhO0sQM?^BAK@NT`MY<(^)#n3laJ)`$ zudH1tkw;f+!jRVbD7;!m475%k5)tQx9M?%YExo3}7ht4L)0h<9oDl5rCbM+TWYB38 z8c@&TNp2c!Y=M3{i;*lE>y07t2K1Q6Xlwau3(?VJTUO33gU2cbqc}nd<