reworking the shoving people action.

This commit is contained in:
Ghommie
2019-10-01 23:13:08 +02:00
parent 340f8498a3
commit cfcd325778
5 changed files with 49 additions and 42 deletions
+24 -9
View File
@@ -111,14 +111,7 @@
stuff_mob_in(target, user)
/obj/machinery/disposal/proc/stuff_mob_in(mob/living/target, mob/living/user)
if(!iscarbon(user) && !user.ventcrawler) //only carbon and ventcrawlers can climb into disposal by themselves.
return
if(!isturf(user.loc)) //No magically doing it from inside closets
return
if(target.buckled || target.has_buckled_mobs())
return
if(target.mob_size > MOB_SIZE_HUMAN)
to_chat(user, "<span class='warning'>[target] doesn't fit inside [src]!</span>")
if(!can_stuff_mob_in(target, user))
return
add_fingerprint(user)
if(user == target)
@@ -137,6 +130,28 @@
target.LAssailant = user
update_icon()
/obj/machinery/disposal/proc/can_stuff_mob_in(mob/living/target, mob/living/user, pushing = FALSE)
if(!pushing && !iscarbon(user) && !user.ventcrawler) //only carbon and ventcrawlers can climb into disposal by themselves.
return FALSE
if(!isturf(user.loc)) //No magically doing it from inside closets
return FALSE
if(target.buckled || target.has_buckled_mobs())
return FALSE
if(target.mob_size > MOB_SIZE_HUMAN)
if(!pushing)
to_chat(user, "<span class='warning'>[target] doesn't fit inside [src]!</span>")
return FALSE
/obj/machinery/disposal/bin/shove_act(mob/living/target, mob/living/user)
if(target.Adjacent(src) && can_stuff_mob_in(target, user, TRUE))
target.Knockdown(SHOVE_KNOCKDOWN_SOLID)
target.forceMove(src)
user.visible_message("<span class='danger'>[user.name] shoves [target.name] into \the [src]!</span>",
"<span class='danger'>You shove [target.name] into \the [src]!</span>", null, COMBAT_MESSAGE_RANGE)
log_combat(user, target, "shoved", "into [src] (disposal bin)")
return TRUE
return FALSE
/obj/machinery/disposal/relaymove(mob/user)
attempt_escape(user)
@@ -305,7 +320,7 @@
if(Adjacent(user))
return TRUE
return ..()
/obj/machinery/disposal/bin/oui_data(mob/user)
var/list/data = list()