Merge branch 'master' into development

This commit is contained in:
skull132
2018-06-30 20:33:51 +03:00
57 changed files with 844 additions and 2449 deletions
+22 -14
View File
@@ -37,7 +37,8 @@
else
R = new /obj/structure/closet/airbubble(user.loc)
if(!used)
internal_tank = new /obj/item/weapon/tank/emergency_oxygen/double(src)
internal_tank = new /obj/item/weapon/tank/emergency_oxygen/engi(src)
internal_tank.air_contents.adjust_gas("oxygen", (42*ONE_ATMOSPHERE)/(R_IDEAL_GAS_EQUATION*T20C))
R.internal_tank = internal_tank
if(!isnull(internal_tank))
internal_tank.forceMove(R)
@@ -82,7 +83,7 @@
return 0
return 1
/obj/structure/closet/airbubble/can_close()
/obj/structure/closet/airbubble/can_close(mob/user as mob)
if(zipped)
return 0
var/turf/T = get_turf(src)
@@ -93,7 +94,7 @@
for(var/mob/living/M in T)
mob_num += 1
if(mob_num > 1)
user << "<span class='warning'>[src] can only fit one person.</span>"
to_chat(user, "<span class='warning'>[src] can only fit one person.</span>")
return 0
return 1
@@ -125,7 +126,7 @@
/obj/structure/closet/airbubble/toggle(mob/user as mob)
if(!(opened ? close(user) : open(user)))
user << "<span class='notice'>It won't budge!</span>"
to_chat(user, "<span class='notice'>It won't budge!</span>")
return
update_icon()
return 1
@@ -139,9 +140,6 @@
dump_contents()
if(!do_after(user, 0.35 SECONDS, act_target = src))
return
icon_state = icon_opened
opened = 1
playsound(loc, open_sound, 15, 1, -3)
@@ -151,14 +149,11 @@
/obj/structure/closet/airbubble/close(mob/user as mob)
if(!opened)
return 0
if(!can_close())
if(!can_close(user))
return 0
var/stored_units = 0
if(!do_after(user, 0.35 SECONDS, act_target = src))
return
if(store_misc)
stored_units += store_misc(stored_units)
if(store_items)
@@ -274,6 +269,12 @@
var/datum/gas_mixture/t_air = get_turf_air()
t_air.merge(inside_air)
// When we shoot bubble, make it rip.
/obj/structure/closet/airbubble/bullet_act(var/obj/item/projectile/Proj)
..()
ripped = TRUE
update_icon()
// Change valve on internal tank
/obj/structure/closet/airbubble/verb/set_internals()
set src in oview(1)
@@ -296,7 +297,7 @@
START_PROCESSING(SSfast_process, src)
use_internal_tank = !use_internal_tank
else
usr << "<span class='notice'>[src] has no internal tank.</span>"
to_chat(usr, "<span class='notice'>[src] has no internal tank.</span>")
// Remove tank from bubble
/obj/structure/closet/airbubble/verb/take_tank()
@@ -321,7 +322,7 @@
update_icon()
STOP_PROCESSING(SSfast_process, src)
else
usr << "<span class='warning'>[src] already has no tank.</span>"
to_chat(user, "<span class='warning'>[src] already has no tank.</span>")
// Handle most of things: restraining, cutting restrains, attaching tank.
/obj/structure/closet/airbubble/attackby(W as obj, mob/user as mob)
@@ -345,7 +346,7 @@
START_PROCESSING(SSfast_process, src)
return
else
user << "<span class='warning'>[src] already has a tank attached.</span>"
to_chat(user, "<span class='warning'>[src] already has a tank attached.</span>")
if(opened)
if(istype(W, /obj/item/weapon/grab))
var/obj/item/weapon/grab/G = W
@@ -357,6 +358,9 @@
return
user.drop_item()
else if(istype(W, /obj/item/weapon/handcuffs/cable))
if(zipped)
to_chat(user, "<span class='warning'>[src]'s zipper is already restrained.</span>")
return
user.visible_message(
"<span class='warning'>[user] begins putting cable restrains on zipper of [src].</span>",
"<span class='notice'>You begin putting cable restrains on zipper of [src].</span>"
@@ -374,6 +378,10 @@
qdel(W)
update_icon()
else if(istype(W, /obj/item/weapon/wirecutters))
if(!zipped)
to_chat(user, "<span class='warning'>[src] has no cables to cut.</span>")
attack_hand(user)
return
user.visible_message(
"<span class='warning'>[user] begins cutting cable restrains on zipper of [src].</span>",
"<span class='notice'>You begin cutting cable restrains on zipper of [src].</span>"
+3 -3
View File
@@ -412,7 +412,7 @@ BREATH ANALYZER
/obj/item/device/breath_analyzer/attack(mob/living/carbon/human/H, mob/living/user as mob)
if (!istype(H))
to_chat(user,"<span class='warning'>You can't find a way to use the [src] on [H]!</span>")
to_chat(user,"<span class='warning'>You can't find a way to use \the [src] on [H]!</span>")
return
if ( ((CLUMSY in user.mutations) || (DUMB in user.mutations)) && prob(20))
@@ -433,7 +433,7 @@ BREATH ANALYZER
user.setClickCooldown(DEFAULT_QUICK_COOLDOWN)
user.do_attack_animation(H)
user.visible_message("<span class='notice'>[user] is trying to take a breath sample from [H].</span>","<span class='notice'>You gently insert the [src] into [H]'s mouth.</span>")
user.visible_message("<span class='notice'>[user] is trying to take a breath sample from [H].</span>","<span class='notice'>You gently insert \the [src] into [H]'s mouth.</span>")
if (!LAZYLEN(src.other_DNA))
LAZYADD(src.other_DNA, H.dna.unique_enzymes)
@@ -443,7 +443,7 @@ BREATH ANALYZER
to_chat(user,"<span class='notice'>You and the target need to be standing still in order to take a breath sample.</span>")
return
user.visible_message("<span class='notice'>[user] takes a breath sample from [H].</span>","<span class='notice'>The [src] clicks as it finishes reading [H]'s breath sample.</span>")
user.visible_message("<span class='notice'>[user] takes a breath sample from [H].</span>","<span class='notice'>\The [src] clicks as it finishes reading [H]'s breath sample.</span>")
to_chat(user,"<b>Breath Sample Results:</b>")
@@ -161,7 +161,7 @@
return
var/mob/living/carbon/human/H = M
if (!H.species || !isipc(H) || !H.organs_by_name["groin"])
if (!H.species || !isipc(H) || !H.organs_by_name["head"])
user << "<span class = 'warning'>You cannot use this on a non-synthetic organism!</span>"
return
@@ -178,9 +178,9 @@
user.show_message("<span class = 'warning'>You implanted the implant into [M].</span>")
ipc_tag.replaced(H, H.organs_by_name["groin"])
qdel(ipc_tag)
ipc_tag.replaced(H, H.organs_by_name["head"])
ipc_tag = null
update()