Skip to content

Commit

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

## Что этот PR делает

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

ПКМ по лестнице спускается, ЛКМ по лестнице поднимается

## Changelog

:cl:
tweak: Теперь ПКМ по лестнице спускается, ЛКМ по лестнице поднимается
/:cl:

<!-- Оба :cl:'а должны быть на месте, что-бы чейнджлог работал! Вы
можете написать свой ник справа от первого :cl:, если хотите. Иначе
будет использован ваш ник на ГитХабе. -->
<!-- Вы можете использовать несколько записей с одинаковым префиксом
(Они используются только для иконки в игре) и удалить ненужные. Помните,
что чейнджлог должен быть понятен обычным игроком. -->
<!-- Если чейнджлог не влияет на игроков(например, это рефактор), вы
можете исключить всю секцию. -->
  • Loading branch information
larentoun authored Mar 16, 2024
1 parent 5ec1bca commit 6edc998
Showing 1 changed file with 32 additions and 7 deletions.
39 changes: 32 additions & 7 deletions code/modules/multiz/structures.dm
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,14 @@
landing.visible_message(SPAN_WARNING("\The [I] falls from the top of \the [target_down]!"))

/obj/structure/ladder/attack_hand(mob/M)
climb(M)
climb(M, direction = "up")

/obj/structure/ladder/attack_hand_secondary(mob/living/user, list/modifiers)
. = ..()
if(. == SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN)
return
. = SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN
climb(user, direction = "down")

/obj/structure/ladder/attack_ai(mob/M)
var/mob/living/silicon/ai/ai = M
Expand All @@ -103,19 +110,26 @@
instant_climb(AIeye)

/obj/structure/ladder/attack_robot(mob/M)
climb(M)
climb(M, direction = "up")

/obj/structure/ladder/attack_robot_secondary(mob/user, list/modifiers)
. = ..()
if(. == SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN)
return
. = SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN
climb(user, direction = "down")

/obj/structure/ladder/proc/instant_climb(mob/M)
var/atom/target_ladder = getTargetLadder(M)
if(target_ladder)
M.dropInto(target_ladder.loc)

/obj/structure/ladder/proc/climb(mob/M, obj/item/I = null)
/obj/structure/ladder/proc/climb(mob/M, obj/item/I = null, direction)
if(!M.may_climb_ladders(src))
return

add_fingerprint(M)
var/obj/structure/ladder/target_ladder = getTargetLadder(M)
var/obj/structure/ladder/target_ladder = getTargetLadder(M, direction)
if(!target_ladder)
return
if (bluespace_affected && prob(displacement_chance))
Expand All @@ -132,7 +146,7 @@
for (var/obj/item/grab/G in M)
G.adjust_position()

var/direction = target_ladder == target_up ? "up" : "down"
direction = target_ladder == target_up ? "up" : "down"

balloon_alert_to_viewers("[direction == "up" ? "поднимается" : "спускается"]")

Expand All @@ -149,13 +163,24 @@
/obj/structure/ladder/attack_ghost(mob/M)
instant_climb(M)

/obj/structure/ladder/proc/getTargetLadder(mob/M)
/obj/structure/ladder/proc/getTargetLadder(mob/M, direction)
if((!target_up && !target_down) || (target_up && !istype(target_up.loc, /turf/simulated/open) || (target_down && !istype(target_down.loc, /turf))))
to_chat(M, SPAN_NOTICE("\The [src] is incomplete and can't be climbed."))
return

if(direction == "up")
if(!target_up)
balloon_alert(M, "сверху пусто!")
return
return target_up
if(direction == "down")
if(!target_down)
balloon_alert(M, "внизу пусто!")
return
return target_down

if(target_down && target_up)
var/direction = alert(M,"Do you want to go up or down?", "Ladder", "Up", "Down", "Cancel")
direction = alert(M,"Do you want to go up or down?", "Ladder", "Up", "Down", "Cancel")

if(direction == "Cancel")
return
Expand Down

0 comments on commit 6edc998

Please sign in to comment.