mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-24 20:47:10 +01:00
Merge branch 'master' of https://github.com/ParadiseSS13/Paradise into HereWeGoAgain
This commit is contained in:
@@ -293,6 +293,10 @@
|
||||
update_icon()
|
||||
return unwield(user)
|
||||
|
||||
/obj/item/twohanded/shockpaddles/on_mob_move(dir, mob/user)
|
||||
if(defib && !(defib.Adjacent(user)))
|
||||
defib.remove_paddles(user)
|
||||
|
||||
/obj/item/twohanded/shockpaddles/proc/check_defib_exists(mainunit, var/mob/living/carbon/human/M, var/obj/O)
|
||||
if(!mainunit || !istype(mainunit, /obj/item/defibrillator)) //To avoid weird issues from admin spawns
|
||||
M.unEquip(O)
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
if(imp)
|
||||
icon_state = "implantcase-[imp.item_color]"
|
||||
origin_tech = imp.origin_tech
|
||||
flags = imp.flags
|
||||
flags = imp.flags & ~DROPDEL
|
||||
reagents = imp.reagents
|
||||
else
|
||||
icon_state = "implantcase-0"
|
||||
|
||||
@@ -160,7 +160,7 @@
|
||||
if(..() || !iscarbon(hit_atom))//if it gets caught or the target can't be cuffed,
|
||||
return//abort
|
||||
var/mob/living/carbon/C = hit_atom
|
||||
if(!C.legcuffed)
|
||||
if(!C.legcuffed && C.get_num_legs() >= 2)
|
||||
visible_message("<span class='danger'>[src] ensnares [C]!</span>")
|
||||
C.legcuffed = src
|
||||
forceMove(C)
|
||||
|
||||
@@ -192,7 +192,27 @@ var/list/pipemenu = list(
|
||||
return
|
||||
if(world.time < lastused + spawndelay)
|
||||
return
|
||||
target.rpd_act(user, src) //Handle RPD effects in separate procs
|
||||
|
||||
|
||||
var/turf/T = get_turf(target)
|
||||
if(target != T)
|
||||
// We only check the rpd_act of the target if it isn't the turf, because otherwise
|
||||
// (A) blocked turfs can be acted on, and (B) unblocked turfs get acted on twice.
|
||||
if(target.rpd_act(user, src) == TRUE)
|
||||
// If the object we are clicking on has a valid RPD interaction for just that specific object, do that and nothing else.
|
||||
// Example: clicking on a pipe with a RPD in rotate mode should rotate that pipe and ignore everything else on the tile.
|
||||
return
|
||||
|
||||
// If we get this far, we have to check every object in the tile, to make sure that none of them block RPD usage on this tile.
|
||||
// This is done by calling rpd_blocksusage on every /obj in the tile. If any block usage, fail at this point.
|
||||
|
||||
for(var/obj/O in T)
|
||||
if(O.rpd_blocksusage() == TRUE)
|
||||
to_chat(user, "<span class='warning'>[O] blocks the [src]!</span>")
|
||||
return
|
||||
|
||||
// If we get here, then we're effectively acting on the turf, probably placing a pipe.
|
||||
T.rpd_act(user, src)
|
||||
|
||||
#undef RPD_COOLDOWN_TIME
|
||||
#undef RPD_WALLBUILD_TIME
|
||||
|
||||
@@ -127,12 +127,48 @@
|
||||
/obj/item/flashlight/pen,
|
||||
/obj/item/clothing/mask/surgical,
|
||||
/obj/item/clothing/gloves/color/latex,
|
||||
/obj/item/reagent_containers/hypospray/autoinjector,
|
||||
/obj/item/rad_laser,
|
||||
/obj/item/reagent_containers/hypospray/autoinjector,
|
||||
/obj/item/reagent_containers/hypospray/CMO,
|
||||
/obj/item/reagent_containers/hypospray/safety,
|
||||
/obj/item/rad_laser,
|
||||
/obj/item/sensor_device,
|
||||
/obj/item/wrench/medical,
|
||||
)
|
||||
|
||||
/obj/item/storage/belt/medical/surgery
|
||||
max_w_class = WEIGHT_CLASS_NORMAL
|
||||
max_combined_w_class = 17
|
||||
use_to_pickup = 1
|
||||
name = "Surgical Belt"
|
||||
desc = "Can hold various surgical tools."
|
||||
storage_slots = 9
|
||||
use_item_overlays = 1
|
||||
can_hold = list(
|
||||
/obj/item/scalpel,
|
||||
/obj/item/hemostat,
|
||||
/obj/item/retractor,
|
||||
/obj/item/circular_saw,
|
||||
/obj/item/bonegel,
|
||||
/obj/item/bonesetter,
|
||||
/obj/item/FixOVein,
|
||||
/obj/item/surgicaldrill,
|
||||
/obj/item/cautery,
|
||||
)
|
||||
|
||||
/obj/item/storage/belt/medical/surgery/loaded
|
||||
|
||||
/obj/item/storage/belt/medical/surgery/loaded/New()
|
||||
..()
|
||||
new /obj/item/scalpel(src)
|
||||
new /obj/item/hemostat(src)
|
||||
new /obj/item/retractor(src)
|
||||
new /obj/item/circular_saw(src)
|
||||
new /obj/item/bonegel(src)
|
||||
new /obj/item/bonesetter(src)
|
||||
new /obj/item/FixOVein(src)
|
||||
new /obj/item/surgicaldrill(src)
|
||||
new /obj/item/cautery(src)
|
||||
|
||||
/obj/item/storage/belt/medical/response_team
|
||||
|
||||
/obj/item/storage/belt/medical/response_team/New()
|
||||
@@ -203,7 +239,7 @@
|
||||
|
||||
/obj/item/storage/belt/security/response_team/New()
|
||||
..()
|
||||
new /obj/item/kitchen/knife/combat(src)
|
||||
new /obj/item/reagent_containers/spray/pepper(src)
|
||||
new /obj/item/melee/baton/loaded(src)
|
||||
new /obj/item/flash(src)
|
||||
new /obj/item/melee/classic_baton/telescopic(src)
|
||||
|
||||
@@ -231,6 +231,15 @@
|
||||
..()
|
||||
base_name = name
|
||||
|
||||
/obj/item/storage/pill_bottle/ert/New()
|
||||
..()
|
||||
new /obj/item/reagent_containers/food/pill/salicylic(src)
|
||||
new /obj/item/reagent_containers/food/pill/salicylic(src)
|
||||
new /obj/item/reagent_containers/food/pill/salicylic(src)
|
||||
new /obj/item/reagent_containers/food/pill/charcoal(src)
|
||||
new /obj/item/reagent_containers/food/pill/charcoal(src)
|
||||
new /obj/item/reagent_containers/food/pill/charcoal(src)
|
||||
|
||||
/obj/item/storage/pill_bottle/MouseDrop(obj/over_object as obj) //Quick pillbottle fix. -Agouri
|
||||
if(ishuman(usr)) //Can monkeys even place items in the pocket slots? Leaving this in just in case~
|
||||
var/mob/M = usr
|
||||
|
||||
@@ -352,6 +352,10 @@
|
||||
W.fire_act()
|
||||
return 1
|
||||
|
||||
/obj/item/storage/Exited(atom/A, loc)
|
||||
remove_from_storage(A, loc) //worry not, comrade; this only gets called once
|
||||
..()
|
||||
|
||||
/obj/item/storage/empty_object_contents(burn, loc)
|
||||
for(var/obj/item/Item in contents)
|
||||
remove_from_storage(Item, loc, burn)
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
#define HEALPERWELD 15
|
||||
|
||||
/* Tools!
|
||||
* Note: Multitools are in devices
|
||||
*
|
||||
@@ -408,25 +410,47 @@
|
||||
to_chat(user, "<span class='warning'>Turn on [src] before attempting repairs!</span>")
|
||||
return 1
|
||||
|
||||
if(S.brute_dam)
|
||||
if(S.brute_dam < ROBOLIMB_SELF_REPAIR_CAP)
|
||||
if(get_fuel() >= 1)
|
||||
if(H == user)
|
||||
if(!do_mob(user, H, 10))
|
||||
return 1
|
||||
if(remove_fuel(1,null))
|
||||
playsound(src.loc, usesound, 50, 1)
|
||||
S.heal_damage(15,0,0,1)
|
||||
user.visible_message("<span class='alert'>\The [user] patches some dents on \the [M]'s [S.name] with \the [src].</span>")
|
||||
if(S.brute_dam > ROBOLIMB_SELF_REPAIR_CAP)
|
||||
to_chat(user, "<span class='danger'>The damage is far too severe to patch over externally.</span>")
|
||||
return
|
||||
|
||||
else if(S.open != 2)
|
||||
to_chat(user, "<span class='warning'>Need more welding fuel!</span>")
|
||||
return 1
|
||||
else
|
||||
to_chat(user, "<span class='danger'>The damage is far too severe to patch over externally.</span>")
|
||||
return 1
|
||||
else if(S.open != 2)
|
||||
if(!S.brute_dam)
|
||||
to_chat(user, "<span class='notice'>Nothing to fix!</span>")
|
||||
return
|
||||
|
||||
if(get_fuel() >= 1)
|
||||
if(H == user)
|
||||
if(!do_mob(user, H, 10))
|
||||
return 1
|
||||
if(!remove_fuel(1,null))
|
||||
to_chat(user, "<span class='warning'>Need more welding fuel!</span>")
|
||||
var/rembrute = HEALPERWELD
|
||||
var/nrembrute = 0
|
||||
var/childlist
|
||||
if(!isnull(S.children))
|
||||
childlist = S.children.Copy()
|
||||
var/parenthealed = FALSE
|
||||
while(rembrute > 0)
|
||||
var/obj/item/organ/external/E
|
||||
if(S.brute_dam)
|
||||
E = S
|
||||
else if(LAZYLEN(childlist))
|
||||
E = pick_n_take(childlist)
|
||||
if(!E.brute_dam || !E.is_robotic())
|
||||
continue
|
||||
else if(S.parent && !parenthealed)
|
||||
E = S.parent
|
||||
parenthealed = TRUE
|
||||
if(!E.brute_dam || !E.is_robotic())
|
||||
break
|
||||
else
|
||||
break
|
||||
playsound(src.loc, usesound, 50, 1)
|
||||
nrembrute = max(rembrute - E.brute_dam, 0)
|
||||
E.heal_damage(rembrute,0,0,1)
|
||||
rembrute = nrembrute
|
||||
user.visible_message("<span class='alert'>\The [user] patches some dents on \the [M]'s [E.name] with \the [src].</span>")
|
||||
return 1
|
||||
else
|
||||
return ..()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user