Skip to content

Commit

Permalink
Фикс телепортирующихся трупов (#466)
Browse files Browse the repository at this point in the history
<!-- ЭТО ШАБЛОН ВАШЕГО PULL REQUEST. Текст между стрелками - это
комментарии - они не будут видны в PR. -->

## Описание PR
<!-- Ниже опишите ваш Pull Request. Что он изменяет? На что еще это
может повлиять? Постарайтесь описать все внесённые вами изменения! -->
Поправил сумеречников, которые продолжали копить свою энергию в крите и
мёртвом состоянии

**Ссылка на публикацию в Discord**
<!-- Укажите ссылки на соответствующие обсуждения, проблемы, баги,
заказы в разработку или предложения

Если ссылки отсутствуют или этот PR ваша личная инициатива, данный
раздел описания можно удалить. -->
- [Технические проблемы](ссылка)
- [Баги](ссылка)
- [Заказы-разработка](ссылка)
- [Предложения](ссылка)
- [Перенос контента](ссылка)

**Медиа**
<!-- Если приемлемо, добавьте скриншоты для демонстрации вашего PR. Если
ваш PR представляет собой визуальное изменение, добавьте
скриншоты, иначе он может быть закрыт. -->

**Проверки**
<!-- Выполнение всех следующих действий, если это приемлемо для вида
изменений сильно ускорит разбор вашего PR -->
- [ ] PR полностью завершён и мне не нужна помощь чтобы его закончить.
- [ ] Я внимательно просмотрел все свои изменения и багов в них не
нашёл.
- [ ] Я запускал локальный сервер со своими изменениями и всё
протестировал.
- [ ] Я добавил скриншот/видео демонстрации PR в игре, **или** этот PR
этого не требует.

**Изменения**
<!--
Здесь вы можете написать список изменений, который будет автоматически
добавлен в игру, когда ваш PR будет принят.

В журнал изменений следует помещать только то, что действительно важно
игрокам.

В списке изменений тип значка не является часть предложения, поэтому
явно указывайте - Добавлен, Удалён, Изменён.
плохо: - add: Новый инструмент для инженеров
хорошо: - add: Добавлен новый инструмент для инженеров

Вы можете указать своё имя после символа 🆑 именно оно будет
отображаться в журнале изменений (иначе будет использоваться ваше имя на
GitHub)
Например: 🆑 Ian

-->

🆑 Котя
- tweak: Сумеречники теперь чуть дольше могут не телепортироваться при
переполнении энергии. Самую малость.
- fix: Больше мёртвые и критованные сумеречники не копят энергию.

Co-authored-by: PyotrIgn <[email protected]>
  • Loading branch information
FaDeOkno and PyotrIgn authored Sep 20, 2024
1 parent d8856cb commit f551588
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 4 deletions.
2 changes: 1 addition & 1 deletion Content.Server/ADT/EntityEffects/Effects/RandomTeleport.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public override void Effect(EntityEffectBaseArgs ev)
var statusSys = args.EntityManager.EntitySysManager.GetEntitySystem<StatusEffectsSystem>();
var shadekin = args.EntityManager.EntitySysManager.GetEntitySystem<ShadekinSystem>();

shadekin.TeleportRandomly(args.TargetEntity, 2f);
shadekin.TeleportRandomlyNoComp(args.TargetEntity, 2f);
}
}
}
9 changes: 7 additions & 2 deletions Content.Server/ADT/Shadekin/ShadekinSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
using Robust.Shared.Prototypes;
using Content.Shared.Movement.Pulling.Systems;
using Content.Shared.Movement.Pulling.Components;
using Content.Shared.Mobs.Systems;
using Content.Server.Cuffs;
using Content.Shared.Cuffs.Components;

Expand All @@ -39,6 +40,7 @@ public sealed partial class ShadekinSystem : EntitySystem
[Dependency] private readonly AlertsSystem _alert = default!;
[Dependency] private readonly IPrototypeManager _proto = default!;
[Dependency] private readonly PullingSystem _pulling = default!;
[Dependency] private readonly MobStateSystem _mobState = default!;
[Dependency] private readonly CuffableSystem _cuffable = default!;

public override void Initialize()
Expand All @@ -64,6 +66,9 @@ public override void Update(float frameTime)
continue;
if (comp.Blackeye)
continue;
if (_mobState.IsIncapacitated(uid))
continue;

_alert.ShowAlert(uid, _proto.Index<AlertPrototype>("ShadekinPower"), (short) Math.Clamp(Math.Round(comp.PowerLevel / 50f), 0, 4));
comp.NextSecond = _timing.CurTime + TimeSpan.FromSeconds(1);

Expand All @@ -78,7 +83,7 @@ public override void Update(float frameTime)
if (comp.PowerLevel < comp.PowerLevelMin)
comp.MinPowerAccumulator += 1f;
else
comp.MinPowerAccumulator = 0f;
comp.MinPowerAccumulator = Math.Clamp(comp.MinPowerAccumulator - 1f, 0f, comp.MinPowerRoof);

if (comp.MinPowerAccumulator >= comp.MinPowerRoof)
BlackEye(uid);
Expand Down Expand Up @@ -186,7 +191,7 @@ public void TeleportRandomly(EntityUid uid, ShadekinComponent? comp)
}
}

public void TeleportRandomly(EntityUid uid, float range = 5f)
public void TeleportRandomlyNoComp(EntityUid uid, float range = 5f)
{
var coordsValid = false;
EntityCoordinates coords = Transform(uid).Coordinates;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ public sealed partial class ShadekinComponent : Component
/// Teleport randomly if MaxedPowerAccumulator is greater
/// </summary>
[ViewVariables(VVAccess.ReadWrite)]
public float MaxedPowerRoof = 45f;
public float MaxedPowerRoof = 60f;

/// <summary>
/// Accumulator that indicates how long shadekin were with min energy level
Expand Down

0 comments on commit f551588

Please sign in to comment.