mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-26 22:42:26 +01:00
Merge branch 'master' into development
This commit is contained in:
@@ -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>"
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user