diff --git a/Config/Localization.csv b/Config/Localization.csv index 97cdf2d..13b20ec 100644 --- a/Config/Localization.csv +++ b/Config/Localization.csv @@ -229,6 +229,7 @@ necroPossessHintThrow,items,Item,,,,"E - lift a boulder, RMB - throw it",,"E - F necroPossessHintSwarm,items,Item,,,,RMB - spew Pharaoh's beetles,,RMT - Käfer des Pharao ausspeien,RMB: escupir escarabajos del faraón,Clic droit : cracher les scarabées du pharaon,RMB - sputa gli scarabei del faraone,右クリック: ファラオの甲虫を吐く,우클릭 - 파라오의 딱정벌레 뱉기,PPM - wypluj żuki faraona,RMB - cuspir besouros do faraó,ПКМ - изрыгнуть жуков фараона,Sağ tık - firavun böceklerini kus,右键 - 喷出法老甲虫,右鍵 - 噴出法老甲蟲 necroPossessHintInvis,items,Item,,,,E - invisibility (a strike breaks it),,E - Unsichtbarkeit (ein Schlag bricht sie),E: invisibilidad (un golpe la rompe),E : invisibilité (un coup la rompt),E - invisibilità (un colpo la spezza),E: 透明化(攻撃すると解ける),E - 투명화 (공격하면 풀림),E - niewidzialność (cios ją przerywa),E - invisibilidade (um golpe a quebra),E - невидимость (удар снимает),E - görünmezlik (vuruş bozar),E - 隐身(攻击会解除),E - 隱身(攻擊會解除) necroPossessKeyRmb,items,Item,,,,RMB,,RMT,RMB,Clic droit,RMB,右クリック,우클릭,PPM,RMB,ПКМ,Sağ tık,右键,右鍵 +necroPossessHintSpitE,items,Item,,,,E - spit around you,,E - um sich speien,E: escupir a tu alrededor,E : cracher autour de soi,E - sputa tutto intorno,E: 周囲に吐きかける,E - 주변에 침 뱉기,E - pluj wokół siebie,E - cuspir ao redor,E - плевок вокруг себя,E - etrafına tükür,E - 向四周喷吐,E - 向四周噴吐 necroPossessHintZoom,items,Item,,,,RMB (hold) - keen eye: zoom like a scope,,RMT (halten) - scharfes Auge: Zoom wie ein Zielfernrohr,"RMB (mantener): ojo avizor, zoom como una mira","Clic droit (maintenir) : œil perçant, zoom comme une lunette",RMB (tieni premuto) - occhio acuto: zoom come un mirino,右クリック(長押し): 鋭い目・スコープのようにズーム,우클릭(누르기) - 매의 눈: 조준경처럼 확대,PPM (przytrzymaj) - bystre oko: przybliżenie jak luneta,RMB (segurar) - olho aguçado: zoom como uma luneta,"ПКМ (удерживать) - зоркий глаз: приближение, как у прицела",Sağ tık (basılı tut) - keskin göz: dürbün gibi yakınlaştır,右键(按住)- 锐眼:像瞄准镜一样放大,右鍵(按住)- 銳眼:像瞄準鏡一樣放大 necroPossessHintLeap,items,Item,,,,Space - long leap,,Leertaste - weiter Sprung,Espacio: salto largo,Espace : grand bond,Spazio - balzo lungo,スペース: 大ジャンプ,스페이스 - 멀리뛰기,Spacja - daleki skok,Espaço - salto longo,Пробел - дальний прыжок,Boşluk - uzun sıçrayış,空格 - 远跳,空白鍵 - 遠跳 necroPetRecallHint,items,Item,,,,Recall pet - E,,Diener zurückrufen - E,Devolver al sirviente - E,Rappeler le serviteur - E,Richiama il servitore - E,僕を呼び戻す - E,종복 불러들이기 - E,Odwołaj sługę - E,Chamar o servo de volta - E,Отозвать питомца - E,Hizmetkârı geri çağır - E,召回仆从 - E,召回僕從 - E diff --git a/HarmonySrc/Possession.cs b/HarmonySrc/Possession.cs index 6e5f6d3..cb3bfcc 100644 --- a/HarmonySrc/Possession.cs +++ b/HarmonySrc/Possession.cs @@ -562,7 +562,8 @@ namespace NecromancerTome Crouching = input != null && !gui && (input.Crouch.IsPressed || _crouchToggled); // E у питомца больше не отзыв (указание 08.10: «R - всегда вернуться в тело у всех одержимых, // E - для других целей»). Отозвать питомца - E с книгой в руке, уже из тела. - if (detonate && z is EntityZombieCop cop && !cop.isPrimed) + // Мутант тоже EntityZombieCop, но в игре не взрывается (ExplodeHealthThreshold 0) - у него E плевок. + if (detonate && z is EntityZombieCop cop && !cop.isPrimed && PossessionPowers.Current != PossessionPowers.Kind.Mutant) { Debug.Log("[NecromancerTome] Possession: подрыв " + z.EntityName); cop.HandlePrimingDetonator(); @@ -590,6 +591,9 @@ namespace NecromancerTome PossessionPowers.Scream(_player, z); } break; + case PossessionPowers.Kind.Mutant: + Ranged(z, detonate, detonate); // E - плевок веером вокруг себя (указание 13.10) + break; default: Ranged(z, ranged, rangedHeld); break; @@ -1423,6 +1427,9 @@ namespace NecromancerTome case PossessionPowers.Kind.Screamer: text += ", " + Localization.Get("necroPossessHintScream"); break; + case PossessionPowers.Kind.Mutant: + text += ", " + Localization.Get("necroPossessHintSpitE"); + break; default: if (_hasRanged) { @@ -1465,7 +1472,7 @@ namespace NecromancerTome { text += ", " + Localization.Get("necroPossessHintLeap"); } - if (_z is EntityZombieCop) + if (_z is EntityZombieCop && PossessionPowers.Current != PossessionPowers.Kind.Mutant) { text += ", " + Localization.Get("necroPossessHintDetonate"); } @@ -1756,6 +1763,9 @@ namespace NecromancerTome case PossessionPowers.Kind.Screamer: _out[n++] = new Cooldown { Rmb = false, Left = PossessionPowers.HordeCooldownLeft, Total = PossessionPowers.HordeCooldown }; break; + case PossessionPowers.Kind.Mutant: + _out[n++] = new Cooldown { Rmb = false, Left = Mathf.Max(0f, _rNext - now), Total = _rCooldown }; + break; default: if (_hasRanged) { diff --git a/HarmonySrc/PossessionPowers.cs b/HarmonySrc/PossessionPowers.cs index 83b7dc0..5b36436 100644 --- a/HarmonySrc/PossessionPowers.cs +++ b/HarmonySrc/PossessionPowers.cs @@ -14,13 +14,15 @@ namespace NecromancerTome /// не видят и бросают погоню, модель полупрозрачна; удар или плевок её снимают. /// Крикунья: E - крик зовёт орду разведчиков по стадии игры (как в игре, ScoutGSList), и вся орда сразу под /// девиацией. Чужих зомби крик больше не стягивает (решение 13.10). + /// Мутант: E - его плевок веером вокруг себя (был на ПКМ). Подрыва у него нет: он EntityZombieCop, но в игре + /// не взрывается (ExplodeHealthThreshold 0), а E подрывал его по ошибке. /// Откаты видны в PossessionHud (там, где полоска выносливости игрока). /// /// ПАМЯТЬ. Только числа и очередь id классов орды; ссылок на сущности нет. Очередь чистится при выходе из мира. /// public static class PossessionPowers { - public enum Kind { None, Thrower, Rancher, Screamer } + public enum Kind { None, Thrower, Rancher, Screamer, Mutant } public static Kind Current; public const float InvisTime = 15f, InvisCooldown = 30f; @@ -68,6 +70,10 @@ namespace NecromancerTome { return Kind.Screamer; } + if (n.StartsWith("zombieMutated")) + { + return Kind.Mutant; + } return Kind.None; } diff --git a/NecromancerHarmony.dll b/NecromancerHarmony.dll index d5f64ac..7fd4b5c 100644 Binary files a/NecromancerHarmony.dll and b/NecromancerHarmony.dll differ diff --git a/NecromancerHarmony.pdb b/NecromancerHarmony.pdb index 6ff9d19..783b751 100644 Binary files a/NecromancerHarmony.pdb and b/NecromancerHarmony.pdb differ