Skip to content

Commit

Permalink
Nearby Buckle (#752)
Browse files Browse the repository at this point in the history
<!-- Пишите **НИЖЕ** заголовков и **ВЫШЕ** комментариев, иначе что то
может пойти не так. -->
<!-- Вы можете прочитать Contributing.MD, если хотите узнать больше. -->

## Что этот PR делает
Позволяет баклиться в радиусе 1 тайла от цели.
Больше месяца висит ПР на оффах, конфликтов нет, думаю можно залить и
ждать пока у оффов дойдут руки.
ParadiseSS13#22828

<!-- Вкратце опишите изменения, которые вносите. -->
<!-- Опишите **все** изменения, так как противное может сказаться на
рассмотрении этого PR'а! -->
<!-- Если вы исправляете Issue, добавьте "Fixes #1234" (где 1234 - номер
Issue) где-нибудь в описании PR'а. Это автоматически закроет Issue после
принятия PR'а. -->

## Почему это хорошо для игры
Удобно

<!-- Опишите, почему, по вашему, следует добавить эти изменения в игру.
-->

## Changelog

:cl:
tweak: Можно снова удобно садиться на стулья, достаточно перетащить
куклу на него, стоя в упор к нему а не на нём.
/:cl:

<!-- Оба :cl:'а должны быть на месте, что-бы чейнджлог работал! Вы
можете написать свой ник справа от первого :cl:, если хотите. Иначе
будет использован ваш ник на ГитХабе. -->
<!-- Вы можете использовать несколько записей с одинаковым префиксом
(Они используются только для иконки в игре) и удалить ненужные. Помните,
что чейнджлог должен быть понятен обычным игроком. -->
<!-- Если чейнджлог не влияет на игроков(например, это рефактор), вы
можете исключить всю секцию. -->

---------

Co-authored-by: Gaxeer <[email protected]>
  • Loading branch information
AyIong and Gaxeer authored Nov 24, 2023
1 parent 2b940b3 commit 09ab49f
Showing 1 changed file with 8 additions and 2 deletions.
10 changes: 8 additions & 2 deletions code/game/objects/buckling.dm
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,10 @@
if(!istype(M))
return FALSE

if(check_loc && M.loc != loc)
if(check_loc && !M.Adjacent(src))
return FALSE

if(check_loc && M.loc != loc && !M.Move(loc))
return FALSE

if((!can_buckle && !force) || M.buckled || (length(buckled_mobs) >= max_buckled_mobs) || (buckle_requires_restraints && !M.restrained()) || M == src)
Expand All @@ -72,7 +75,7 @@
qdel(G)

if(!check_loc && M.loc != loc)
M.forceMove(loc)
M.Move(loc) || M.forceMove(loc)

if(!buckle_lying)
M.set_body_position(STANDING_UP)
Expand Down Expand Up @@ -139,6 +142,9 @@
if(M.loc == user.loc || user.alpha == 60) //Alpha is for detecting ranged guardians in scout mode
return //unmanifested guardians shouldn't be able to buckle mobs

if(M != user && (!in_range(M, src) || !do_after(user, 1 SECONDS, target = M)))
return FALSE

add_fingerprint(user)
. = buckle_mob(M, check_loc = check_loc)
if(.)
Expand Down

0 comments on commit 09ab49f

Please sign in to comment.