mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-30 16:38:22 +01:00
crawl buffs (#7334)
This commit is contained in:
+34
-9
@@ -409,7 +409,7 @@ var/const/enterloopsanity = 100
|
||||
L.Add(t)
|
||||
return L
|
||||
|
||||
|
||||
// CRAWLING + MOVING STUFF
|
||||
/turf/MouseDrop_T(atom/movable/O as mob|obj, mob/user as mob)
|
||||
var/turf/T = get_turf(user)
|
||||
var/area/A = T.loc
|
||||
@@ -417,7 +417,7 @@ var/const/enterloopsanity = 100
|
||||
return
|
||||
if(istype(O, /obj/screen))
|
||||
return
|
||||
if(user.restrained() || user.stat || user.stunned || user.paralysis || !user.lying)
|
||||
if(user.restrained() || user.stat || user.incapacitated(INCAPACITATION_KNOCKOUT) || !user.lying)
|
||||
return
|
||||
if((!(istype(O, /atom/movable)) || O.anchored || !Adjacent(user) || !Adjacent(O) || !user.Adjacent(O)))
|
||||
return
|
||||
@@ -425,15 +425,40 @@ var/const/enterloopsanity = 100
|
||||
return
|
||||
if(isanimal(user) && O != user)
|
||||
return
|
||||
|
||||
var/tally = 0
|
||||
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
var/has_right_hand = TRUE
|
||||
|
||||
var/obj/item/organ/external/rhand = H.organs_by_name["r_hand"]
|
||||
if(!rhand || rhand.is_stump())
|
||||
has_right_hand = FALSE
|
||||
tally += limbCheck(rhand)
|
||||
|
||||
var/obj/item/organ/external/lhand = H.organs_by_name["l_hand"]
|
||||
if(!lhand || lhand.is_stump())
|
||||
if(!has_right_hand)
|
||||
return
|
||||
if (do_after(user, 25 + (5 * user.weakened)) && !(user.stat))
|
||||
tally += limbCheck(lhand)
|
||||
|
||||
var/obj/item/organ/external/rfoot = H.organs_by_name["r_foot"]
|
||||
tally += limbCheck(rfoot)
|
||||
|
||||
var/obj/item/organ/external/lfoot = H.organs_by_name["l_foot"]
|
||||
tally += limbCheck(lfoot)
|
||||
|
||||
if(tally >= 120)
|
||||
to_chat(user, span("notice", "You're too injured to do this!"))
|
||||
return
|
||||
|
||||
var/finaltime = 25 + (5 * (user.weakened * 1.5))
|
||||
if(tally >= 45) // If you have this much missing, you'll crawl slower.
|
||||
finaltime += tally
|
||||
|
||||
if(do_after(user, finaltime) && !user.stat)
|
||||
step_towards(O, src)
|
||||
|
||||
// Checks status of limb, returns an amount to
|
||||
/turf/proc/limbCheck(var/obj/item/organ/external/limb)
|
||||
if(!limb) // Limb is null, thus missing. Add 3 seconds.
|
||||
return 30
|
||||
else if(!limb.is_usable() || limb.is_broken()) // You can't use the limb, but it's still there to manoevre yourself
|
||||
return 15
|
||||
else
|
||||
return 0
|
||||
@@ -0,0 +1,6 @@
|
||||
author: Geeves
|
||||
|
||||
delete-after: True
|
||||
|
||||
changes:
|
||||
- rscadd: "You can now crawl under a lot more circumstances, if you click drag yourself while laying down."
|
||||
Reference in New Issue
Block a user