Всякое (#213)
* - tweak: Shotgun firerate standartization.
* - tweak: Less storage clothing size.
* - tweak: No spears for nukies.
* - tweak: Slightly buff ling armor.
* - tweak: Nerf tranquilizers.
* Revert "Tranquilizer balance (#23979)"
This reverts commit 9e1342f3e4.
* - remove: Disable whisper aspect.
* - fix: Borer fix on transform person.
* - fix: Items no longer get dropped on transform.
* - tweak: Reduce ling tentacle stun time.
* - tweak: Update chitinous armor desc.
* - fix: Transform sting range check.
* - tweak: More explosion resistance.
* - tweak: Fuel tanks can't create vacuum.
* - fix: Fix transform while being carried.
* - fix: Monkey form.
* - fix: I have no brain but I must live.
* - tweak: Update ling desc.
* - tweak: Fleshmend heals airloss.
* - fix: New wiki rules.
* - fix: Fix missing polymorph.
* - tweak: Structural damage now works better.
* - tweak: Less reflect prob.
* - fix: Popup fix.
This commit is contained in:
@@ -4,6 +4,8 @@ using Content.Server.Administration.Systems;
|
||||
using Content.Server.Bible.Components;
|
||||
using Content.Server.Body.Components;
|
||||
using Content.Server.Body.Systems;
|
||||
using Content.Server.Borer;
|
||||
using Content.Server.Carrying;
|
||||
using Content.Server.Cuffs;
|
||||
using Content.Server.DoAfter;
|
||||
using Content.Server.Emp;
|
||||
@@ -23,6 +25,7 @@ using Content.Server.Temperature.Systems;
|
||||
using Content.Shared._White.Chaplain;
|
||||
using Content.Shared._White.Overlays;
|
||||
using Content.Shared.Actions;
|
||||
using Content.Shared.Borer;
|
||||
using Content.Shared.Changeling;
|
||||
using Content.Shared.Chemistry.EntitySystems;
|
||||
using Content.Shared.Cuffs.Components;
|
||||
@@ -35,6 +38,7 @@ using Content.Shared.Hands.EntitySystems;
|
||||
using Content.Shared.Humanoid;
|
||||
using Content.Shared.Humanoid.Markings;
|
||||
using Content.Shared.Implants.Components;
|
||||
using Content.Shared.Interaction;
|
||||
using Content.Shared.Inventory;
|
||||
using Content.Shared.Miracle.UI;
|
||||
using Content.Shared.Mobs;
|
||||
@@ -85,6 +89,8 @@ public sealed partial class ChangelingSystem
|
||||
[Dependency] private readonly EmpSystem _empSystem = default!;
|
||||
[Dependency] private readonly TransformSystem _transform = default!;
|
||||
[Dependency] private readonly ContainerSystem _container = default!;
|
||||
[Dependency] private readonly ServerBorerSystem _borer = default!;
|
||||
[Dependency] private readonly CarryingSystem _carrying = default!;
|
||||
|
||||
private void InitializeAbilities()
|
||||
{
|
||||
@@ -377,6 +383,13 @@ public sealed partial class ChangelingSystem
|
||||
var target = GetEntity(args.Target);
|
||||
var user = GetEntity(args.Entity);
|
||||
|
||||
if (!Transform(user).Coordinates.InRange(EntityManager, _transform, Transform(target).Coordinates,
|
||||
SharedInteractionSystem.InteractionRange))
|
||||
{
|
||||
_popup.PopupEntity(Loc.GetString("changeling-popup-transform-too-far"), user, user);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!TryComp<ActorComponent>(uid, out var actorComponent))
|
||||
return;
|
||||
|
||||
@@ -757,6 +770,8 @@ public sealed partial class ChangelingSystem
|
||||
if (!TakeChemicals(uid, component, 5))
|
||||
return;
|
||||
|
||||
BeforeTransform(args.User);
|
||||
|
||||
var polymorphEntity = _polymorph.PolymorphEntity(args.User, "MonkeyChangeling");
|
||||
|
||||
if (polymorphEntity == null)
|
||||
@@ -883,6 +898,8 @@ public sealed partial class ChangelingSystem
|
||||
if (!HasComp<HumanoidAppearanceComponent>(target) && !humanoidOverride)
|
||||
return null;
|
||||
|
||||
BeforeTransform(target);
|
||||
|
||||
var polymorphEntity = _polymorph.PolymorphEntity(target, transformData.EntityPrototype.ID);
|
||||
|
||||
if (polymorphEntity == null)
|
||||
@@ -927,6 +944,15 @@ public sealed partial class ChangelingSystem
|
||||
return polymorphEntity;
|
||||
}
|
||||
|
||||
private void BeforeTransform(EntityUid target)
|
||||
{
|
||||
if (TryComp(target, out BorerHostComponent? host) && host.BorerContainer.Count > 0)
|
||||
_borer.GetOut(host.BorerContainer.ContainedEntities[0]);
|
||||
|
||||
if (TryComp(target, out BeingCarriedComponent? beingCarried))
|
||||
_carrying.DropCarried(beingCarried.Carrier, target);
|
||||
}
|
||||
|
||||
private void TransferComponents(EntityUid from, EntityUid to)
|
||||
{
|
||||
if (HasComp<BibleUserComponent>(from))
|
||||
|
||||
@@ -46,11 +46,19 @@ namespace Content.Server.Inventory
|
||||
return;
|
||||
|
||||
var enumerator = new InventorySlotEnumerator(source.Comp);
|
||||
// WD EDIT START
|
||||
List<(EntityUid, string)> items = new();
|
||||
while (enumerator.NextItem(out var item, out var slot))
|
||||
{
|
||||
if (TryUnequip(source, slot.Name, true, true, inventory: source.Comp))
|
||||
TryEquip(target, item, slot.Name , true, true, inventory: target.Comp);
|
||||
items.Add((item, slot.Name));
|
||||
}
|
||||
|
||||
foreach (var (item, name) in items)
|
||||
{
|
||||
TryUnequip(source, name, true, true, inventory: source.Comp);
|
||||
TryEquip(target, item, name, true, true, inventory: target.Comp);
|
||||
}
|
||||
// WD EDIT END
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ using Content.Server.Body.Systems;
|
||||
using Content.Shared.Body.Organ;
|
||||
using Content.Shared.Construction;
|
||||
using Content.Shared._White.CheapSurgery;
|
||||
using Content.Shared.Changeling;
|
||||
|
||||
namespace Content.Server._White.Construction.Completions;
|
||||
|
||||
@@ -20,7 +21,8 @@ public sealed partial class Surgery : IGraphAction
|
||||
return;
|
||||
}
|
||||
|
||||
if (entityManager.TryGetComponent<OrganComponent>(surgeryComponent.OrganUid, out var organComponent))
|
||||
if (entityManager.TryGetComponent<OrganComponent>(surgeryComponent.OrganUid, out var organComponent) &&
|
||||
!entityManager.HasComponent<ChangelingComponent>(uid))
|
||||
bodySystem.RemoveOrgan(surgeryComponent.OrganUid, organComponent);
|
||||
|
||||
entityManager.RemoveComponent<ActiveSurgeryComponent>(uid);
|
||||
|
||||
@@ -67,7 +67,7 @@ public sealed class CritSystem : EntitySystem
|
||||
args.BonusDamage = new DamageSpecifier(_prototypeManager.Index<DamageTypePrototype>("Slash"),
|
||||
damage - args.BaseDamage.GetTotal());
|
||||
|
||||
_popup.PopupEntity($@"Crit! {damage}", args.User, PopupType.MediumCaution);
|
||||
_popup.PopupEntity($"Crit! {damage}", args.User, args.User, PopupType.MediumCaution);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -137,7 +137,7 @@ public abstract class SharedTentacleGun : EntitySystem
|
||||
|
||||
private bool PullMob(ProjectileEmbedEvent args)
|
||||
{
|
||||
var stunTime = _random.Next(TimeSpan.FromSeconds(2), TimeSpan.FromSeconds(5));
|
||||
var stunTime = _random.Next(TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(3));
|
||||
|
||||
if (!_stunSystem.TryParalyze(args.Embedded, stunTime, true))
|
||||
return false;
|
||||
|
||||
@@ -52,6 +52,6 @@ public sealed class BackstabSystem : EntitySystem
|
||||
return;
|
||||
|
||||
var message = Loc.GetString("backstab-damage-betrayal-dagger", ("damage", damage));
|
||||
_popup.PopupClient(message, args.User, args.User, PopupType.MediumCaution);
|
||||
_popup.PopupEntity(message, args.User, args.User, PopupType.MediumCaution);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ public sealed class WhiteCVars
|
||||
*/
|
||||
|
||||
public static readonly CVarDef<string> RulesWiki =
|
||||
CVarDef.Create("white.wiki_rules", "https://wiki.ss14.su/%D0%9F%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D0%B0",
|
||||
CVarDef.Create("white.wiki_rules", "https://js.ss14.su/rules",
|
||||
CVar.SERVER | CVar.REPLICATED);
|
||||
|
||||
/*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
chat-manager-changeling-channel-name = УЛЕЙ
|
||||
chat-manager-changeling-channel-name = УЛЕЙ
|
||||
hud-chatbox-select-channel-Changeling = Улей
|
||||
chat-manager-send-changeling-chat-wrap-message = [bold]\[УЛЕЙ\][/bold] [font size=13][italic][bold]{ $player }[/bold] шипит, "{ $message }"[/italic][/font]
|
||||
|
||||
@@ -21,6 +21,7 @@ changeling-popup-cant-sting = Мы не можем ужалить это!
|
||||
changeling-popup-transform-no-dna = У нас нет поглощенного ДНК!
|
||||
changeling-popup-cant-transform-someone = Мы не можем превратит это!
|
||||
changeling-popup-transform-not-effective = Вирус перевоплощения не сработал!
|
||||
changeling-popup-transform-too-far = Цель слишком далеко!
|
||||
|
||||
changeling-popup-already-lesser-form = Мы уже заняли примитивную форму жизни!
|
||||
|
||||
|
||||
@@ -1,53 +1,53 @@
|
||||
changeling-ability-fleshmend = Восстановление тканей
|
||||
changeling-ability-fleshmend-desc = Быстро вылечить большую часть повреждений
|
||||
changeling-ability-fleshmend-desc = Быстро вылечить большую часть повреждений. Стоит 20 химикатов.
|
||||
|
||||
changeling-ability-biodegrade = Биоразложение
|
||||
changeling-ability-biodegrade-desc = Растворяет наручники и прочие сдерживающие элементы.
|
||||
changeling-ability-biodegrade-desc = Растворяет наручники и прочие сдерживающие элементы. Стоит 30 химикатов.
|
||||
|
||||
changeling-ability-eyesight = Аугментация зрения
|
||||
changeling-ability-eyesight-desc = Развивает переключаемое ночное зрение. Когда способность неактивна, защищает вас от флешек и яркого света, например от сварки.
|
||||
|
||||
changeling-ability-dissonant-shriek = Диссонирующий вопль
|
||||
changeling-ability-dissonant-shriek-desc = Испускает заряд ЭМИ, который нарушает работу всего оборудования вокруг.
|
||||
changeling-ability-dissonant-shriek-desc = Испускает заряд ЭМИ, который нарушает работу всего оборудования вокруг. Стоит 20 химикатов.
|
||||
|
||||
changeling-ability-void-adaptation = Пустотная адаптация
|
||||
changeling-ability-void-adaptation-desc = Наделяет пассивной способностью, позволяющей сопротивляться холоду, низкому давлению и потребности в кислороде. При использовании замедляет регенерацию химикатов на 25%.
|
||||
|
||||
changeling-ability-adrenaline-sacks = Мешки с адреналином
|
||||
changeling-ability-adrenaline-sacks-desc = Дает кратковременный прилив адреналина в крови.
|
||||
changeling-ability-adrenaline-sacks-desc = Дает кратковременный прилив адреналина в крови. Стоит 30 химикатов.
|
||||
|
||||
changeling-ability-cryo-sting = Жало заморозки
|
||||
changeling-ability-cryo-sting-desc = Вводит в кровь цели химикаты, которые со временем превращают её кровь в лед.
|
||||
changeling-ability-cryo-sting-desc = Вводит в кровь цели химикаты, которые со временем превращают её кровь в лед. Стоит 15 химикатов.
|
||||
|
||||
changeling-ability-hallucination-sting = Жало галлюцинаций
|
||||
changeling-ability-hallucination-sting-desc = Вводит в кровь цели химикаты, вызывающие сильные галлюцинации.
|
||||
changeling-ability-hallucination-sting-desc = Вводит в кровь цели химикаты, вызывающие сильные галлюцинации. Стоит 5 химикатов.
|
||||
|
||||
changeling-ability-mute-sting = Жало безмолвия
|
||||
changeling-ability-mute-sting-desc = Вводит в кровь цели химикаты, заставляющие цель замолчать за короткий срок.
|
||||
changeling-ability-mute-sting-desc = Вводит в кровь цели химикаты, заставляющие цель замолчать за короткий срок. Стоит 20 химикатов.
|
||||
|
||||
changeling-ability-blind-sting = Жало слепоты
|
||||
changeling-ability-blind-sting-desc = Вводит в кровь цели химикаты, заставляющие цель временно ослепнуть.
|
||||
changeling-ability-blind-sting-desc = Вводит в кровь цели химикаты, заставляющие цель временно ослепнуть. Стоит 25 химикатов.
|
||||
|
||||
changeling-ability-transform-sting = Жало трансформации
|
||||
changeling-ability-transform-sting-desc = Вводит в кровь цели вирус, заставляющий её превратиться в другое существо.
|
||||
changeling-ability-transform-sting-desc = Вводит в кровь цели вирус, заставляющий её превратиться в другое существо. Стоит 50 химикатов.
|
||||
|
||||
changeling-ability-extraction-sting = Жало извлечения
|
||||
changeling-ability-extraction-sting-desc = Безшумно и безопасно извлекает ДНК из цели.
|
||||
changeling-ability-extraction-sting-desc = Безшумно и безопасно извлекает ДНК из цели. Стоит 25 химикатов.
|
||||
|
||||
changeling-ability-tentacle-arm = Рука-щупальце
|
||||
changeling-ability-tentacle-arm-desc = Превращает одну из рук в щупальце, способное притягивать людей или забирать вещи из их рук.
|
||||
changeling-ability-tentacle-arm-desc = Превращает одну из рук в щупальце, способное притягивать людей или забирать вещи из их рук. Стоит 10 химикатов.
|
||||
|
||||
changeling-ability-changeling-armor = Хитиновая броня
|
||||
changeling-ability-changeling-armor-desc = Надувает тело, превращая его в крепкую хитиновую броню.
|
||||
changeling-ability-changeling-armor-desc = Надувает тело, превращая его в крепкую хитиновую броню. При использовании замедляет регенерацию химикатов на 25%. Стоит 20 химикатов.
|
||||
|
||||
changeling-ability-changeling-shield = Органический щит
|
||||
changeling-ability-changeling-shield-desc = Превращает одну из рук в крепкий органический щит.
|
||||
changeling-ability-changeling-shield-desc = Превращает одну из рук в крепкий органический щит. Стоит 20 химикатов.
|
||||
|
||||
changeling-ability-changeling-armblade = Рука-клинок
|
||||
changeling-ability-changeling-armblade-desc = Превращает одну из рук в клинок, созданный из костей и плоти.
|
||||
changeling-ability-changeling-armblade-desc = Превращает одну из рук в клинок, созданный из костей и плоти. Стоит 20 химикатов.
|
||||
|
||||
changeling-ability-changeling-lesser-form = Примитивная форма
|
||||
changeling-ability-changeling-lesser-form-desc = Превращает в самую примитивную форму. Полезно для побега из наручников.
|
||||
changeling-ability-changeling-lesser-form-desc = Превращает в самую примитивную форму. Полезно для побега из наручников. Стоит 5 химикатов.
|
||||
|
||||
ent-ActionChangelingShop = Эволюции
|
||||
.desc = Эволюционируйте и развивайтесь.
|
||||
@@ -56,10 +56,10 @@ ent-ActionChangelingAbsorb = Поглотить
|
||||
.desc = Поглотить существо.
|
||||
|
||||
ent-ActionChangelingTransform = Превращение
|
||||
.desc = Превратиться в одну из поглощенных личностей.
|
||||
.desc = Превратиться в одну из поглощенных личностей. Стоит 5 химикатов.
|
||||
|
||||
ent-ActionChangelingRegenerate = Регенерация
|
||||
.desc = Войти в регенерирующий стазис.
|
||||
.desc = Войти в регенерирующий стазис. Стоит 15 химикатов.
|
||||
|
||||
ent-OrganicShield = органический щит
|
||||
.desc = Большой щит из плоти.
|
||||
|
||||
@@ -16,26 +16,23 @@
|
||||
Slash: 0.5
|
||||
Piercing: 0.5
|
||||
Shock: 1.2
|
||||
Structural: 0.25
|
||||
flatReductions:
|
||||
Blunt: 10
|
||||
Slash: 10
|
||||
Piercing: 10
|
||||
Heat: 10
|
||||
Structural: 10
|
||||
|
||||
- type: damageModifierSet
|
||||
id: StructuralMetallic
|
||||
coefficients:
|
||||
Shock: 1.2
|
||||
Heat: 1.2
|
||||
Structural: 0.5
|
||||
flatReductions:
|
||||
Blunt: 10
|
||||
Slash: 10
|
||||
Piercing: 10
|
||||
Heat: 10
|
||||
Structural: 10
|
||||
|
||||
- type: damageModifierSet
|
||||
id: StructuralMetallic
|
||||
coefficients:
|
||||
Shock: 1.2
|
||||
Heat: 1.2
|
||||
flatReductions:
|
||||
Blunt: 10
|
||||
Slash: 10
|
||||
Piercing: 10
|
||||
Heat: 10
|
||||
|
||||
- type: damageModifierSet
|
||||
id: Rock
|
||||
@@ -113,7 +110,6 @@
|
||||
Slash: 5
|
||||
Piercing: 5
|
||||
Heat: 5
|
||||
Structural: 5
|
||||
|
||||
- type: damageModifierSet
|
||||
id: RGlass
|
||||
@@ -123,13 +119,11 @@
|
||||
Piercing: 0.6
|
||||
Heat: 0.5
|
||||
Shock: 0
|
||||
Structural: 0.5
|
||||
flatReductions:
|
||||
Blunt: 5
|
||||
Slash: 5
|
||||
Piercing: 5
|
||||
Heat: 5
|
||||
Structural: 10
|
||||
|
||||
- type: damageModifierSet
|
||||
id: Wood
|
||||
|
||||
@@ -165,12 +165,12 @@
|
||||
- type: Armor
|
||||
modifiers:
|
||||
coefficients:
|
||||
Blunt: 0.5
|
||||
Slash: 0.5
|
||||
Piercing: 0.6
|
||||
Heat: 0.5
|
||||
Blunt: 0.4
|
||||
Slash: 0.4
|
||||
Piercing: 0.5
|
||||
Heat: 0.4
|
||||
- type: ExplosionResistance
|
||||
damageCoefficient: 0.9
|
||||
damageCoefficient: 0.5
|
||||
- type: GroupExamine
|
||||
- type: Unremoveable
|
||||
deleteOnDrop: true
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
id: ClothingOuterBaseLarge
|
||||
components:
|
||||
- type: Item
|
||||
size: Huge
|
||||
size: Large
|
||||
- type: Clothing
|
||||
slots:
|
||||
- outerClothing
|
||||
@@ -155,4 +155,4 @@
|
||||
id: ClothingOuterBaseMedium
|
||||
components:
|
||||
- type: Item
|
||||
size: Huge
|
||||
size: Large
|
||||
|
||||
@@ -125,7 +125,7 @@
|
||||
ammo:
|
||||
reagents:
|
||||
- ReagentId: ChloralHydrate
|
||||
Quantity: 7
|
||||
Quantity: 5
|
||||
- type: SolutionTransfer
|
||||
maxTransferAmount: 7
|
||||
- type: SpentAmmoVisuals
|
||||
|
||||
@@ -194,7 +194,7 @@
|
||||
sprite: Objects/Weapons/Guns/Shotguns/inhands_64x.rsi
|
||||
heldPrefix: sawn
|
||||
- type: Gun
|
||||
fireRate: 4
|
||||
fireRate: 2
|
||||
- type: BallisticAmmoProvider
|
||||
capacity: 2
|
||||
autoCycle: true
|
||||
|
||||
@@ -34,6 +34,7 @@
|
||||
- type: Explosive
|
||||
explosionType: Default
|
||||
totalIntensity: 120 # ~ 5 tile radius
|
||||
canCreateVacuum: false
|
||||
|
||||
- type: entity
|
||||
id: WeldingFuelTankFull
|
||||
@@ -76,6 +77,7 @@
|
||||
- type: Explosive
|
||||
explosionType: Default
|
||||
totalIntensity: 140
|
||||
canCreateVacuum: false
|
||||
|
||||
# Water
|
||||
|
||||
|
||||
@@ -340,6 +340,17 @@
|
||||
allowRepeatedMorphs: true
|
||||
inventory: Transfer
|
||||
|
||||
- type: polymorph
|
||||
id: MobHumanGhost
|
||||
configuration:
|
||||
entity: MobHuman
|
||||
forced: true
|
||||
revertOnCrit: false
|
||||
revertOnDeath: false
|
||||
transferDamage: true
|
||||
allowRepeatedMorphs: true
|
||||
inventory: Transfer
|
||||
|
||||
- type: polymorph
|
||||
id: MobGingerbread
|
||||
configuration:
|
||||
|
||||
@@ -145,6 +145,7 @@
|
||||
groups:
|
||||
Burn: -5
|
||||
Brute: -5
|
||||
Airloss: -5 # for lings
|
||||
Toxin: -2
|
||||
types:
|
||||
Bloodloss: -5
|
||||
|
||||
@@ -248,8 +248,6 @@
|
||||
Plastic: 15
|
||||
Steel: 10
|
||||
Glass: 5
|
||||
Plasma: 10
|
||||
Silver: 5
|
||||
|
||||
- type: latheRecipe
|
||||
id: TargetHuman
|
||||
|
||||
@@ -258,6 +258,7 @@
|
||||
weight: 3
|
||||
startAudio:
|
||||
path: /Audio/White/Aspects/accent.ogg
|
||||
forbidden: true
|
||||
- type: WhisperAspect
|
||||
|
||||
- type: entity
|
||||
|
||||
@@ -87,6 +87,11 @@
|
||||
Telecrystal: 12
|
||||
categories:
|
||||
- UplinkImplants
|
||||
conditions:
|
||||
- !type:StoreWhitelistCondition
|
||||
blacklist:
|
||||
tags:
|
||||
- NukeOpsUplink
|
||||
|
||||
# Night Vision
|
||||
- type: listing
|
||||
|
||||
@@ -202,7 +202,7 @@
|
||||
slots:
|
||||
- back
|
||||
- type: Reflect
|
||||
reflectProb: 0.4
|
||||
reflectProb: 0.33
|
||||
- type: Item
|
||||
sprite: White/Objects/Weapons/Chaplain/hfrequency.rsi
|
||||
|
||||
|
||||
Reference in New Issue
Block a user