* - add: Added Cortic Borer. * - fix: Removed unnecessary imports, unused fields, variables, methods. * - fix: Изменён принцип вселения: теперь не создаётся новый энтити с переходом разума, вместо этого хост хранит в себе контейнер для червя, в который последний и погружается * - fix: Убрано использование устаревших методов и полей, исправлена ошибка, из-за которой при вселении в носителя уровень сахара не проверялся * - fix: Изменено тестировочное значение добавления очков химикатов * - fix: Borer can't speak now * - fix: Some bug and shitcode fixes * - fix: Some bug and shitcode fixes * - fix: Added cooldown after releasing the humanoid's body * - fix: fix * - add: Added russian localization * - add: Убрал использование метода _chatManager.ChatMessageToOne в некоторых местах, т.к. popup включает в себя вывод сообщения в чат. * - fix: fix * - fix: fix
29 lines
825 B
C#
29 lines
825 B
C#
using Content.Shared.Borer;
|
|
using Content.Shared.Mobs;
|
|
using Robust.Server.Containers;
|
|
|
|
namespace Content.Server.Borer;
|
|
|
|
|
|
public sealed class ServerBorerHostSystem : EntitySystem
|
|
{
|
|
[Dependency] private ServerBorerSystem _borerSystem = default!;
|
|
/// <inheritdoc/>
|
|
public override void Initialize()
|
|
{
|
|
SubscribeLocalEvent<BorerHostComponent, MobStateChangedEvent>(OnDamageChanged);
|
|
}
|
|
|
|
private void OnDamageChanged(EntityUid uid, BorerHostComponent component, MobStateChangedEvent args)
|
|
{
|
|
if (args.NewMobState == MobState.Critical)
|
|
{
|
|
RaiseLocalEvent(uid, new BorerBrainReleaseEvent(), true);
|
|
}
|
|
else if (args.NewMobState == MobState.Dead)
|
|
{
|
|
_borerSystem.GetOut(component.BorerContainer.ContainedEntities[0]);
|
|
}
|
|
}
|
|
}
|