Merge pull request #497 from TheDZD/master

Misc. Fixes and Changes
This commit is contained in:
Fox-McCloud
2014-11-21 22:59:50 -05:00
8 changed files with 120 additions and 10 deletions
+28 -5
View File
@@ -75,13 +75,36 @@
return 0
/obj/machinery/optable/MouseDrop_T(obj/O as obj, mob/user as mob)
/obj/machinery/optable/MouseDrop_T(atom/movable/O as mob|obj, mob/user as mob)
if ((!( istype(O, /obj/item/weapon) ) || user.get_active_hand() != O))
if(O.loc == user) //no you can't pull things out of your ass
return
user.drop_item()
if (O.loc != src.loc)
step(O, get_dir(O, src))
if(user.restrained() || user.stat || user.weakened || user.stunned || user.paralysis || user.resting) //are you cuffed, dying, lying, stunned or other
return
if(O.anchored || get_dist(user, src) > 1 || get_dist(user, O) > 1 || user.contents.Find(src)) // is the mob anchored, too far away from you, or are you too far away from the source
return
if(!ismob(O)) //humans only
return
if(istype(O, /mob/living/simple_animal) || istype(O, /mob/living/silicon)) //animals and robutts dont fit
return
if(!ishuman(user) && !isrobot(user)) //No ghosts or mice putting people into the sleeper
return
if(user.loc==null) // just in case someone manages to get a closet into the blue light dimension, as unlikely as that seems
return
if(!istype(user.loc, /turf) || !istype(O.loc, /turf)) // are you in a container/closet/pod/etc?
return
var/mob/living/L = O
if(!istype(L) || L.buckled)
return
for(var/mob/living/carbon/slime/M in range(1,L))
if(M.Victim == L)
usr << "[L.name] cannot be operated on while they have \a [M] attached to their head!"
return
if(src.victim)
usr << "\blue <B>The table is already occupied!</B>"
return
take_victim(L, user)
return
/obj/machinery/optable/proc/check_victim()
+12
View File
@@ -50,6 +50,11 @@
icon_state = "grey"
_color = "grey"
can_label = 0
/obj/machinery/portable_atmospherics/canister/custom_mix
name = "Canister \[Custom\]"
icon_state = "whiters"
_color = "whiters"
can_label = 0
/obj/machinery/portable_atmospherics/canister/proc/check_change()
var/old_flag = update_flag
@@ -332,6 +337,7 @@ update_flag
"\[CO2\]" = "black", \
"\[Air\]" = "grey", \
"\[CAUTION\]" = "yellow", \
"\[Custom\]" = "whiters",\
)
var/label = input("Choose canister label", "Gas canister") as null|anything in colors
if (label)
@@ -421,6 +427,12 @@ update_flag
src.update_icon()
return 1
/obj/machinery/portable_atmospherics/canister/custom_mix/New()
..()
src.update_icon() // Otherwise new canisters do not have their icon updated with the pressure light, likely want to add this to the canister class constructor, avoiding at current time to refrain from screwing up code for other canisters. --DZD
return 1
/obj/machinery/portable_atmospherics/canister/proc/weld(var/obj/item/weapon/weldingtool/WT, var/mob/user)
if(busy)
+77 -1
View File
@@ -240,7 +240,7 @@ obj/machinery/computer/cryopod/Topic(href, href_list)
current_mode.possible_traitors.Remove(occupant)
// Delete them from datacore.
if(PDA_Manifest.len)
PDA_Manifest.Cut()
for(var/datum/data/record/R in data_core.medical)
@@ -328,6 +328,82 @@ obj/machinery/computer/cryopod/Topic(href, href_list)
//Despawning occurs when process() is called with an occupant without a client.
src.add_fingerprint(M)
/obj/machinery/cryopod/MouseDrop_T(atom/movable/O as mob|obj, mob/user as mob)
if(O.loc == user) //no you can't pull things out of your ass
return
if(user.restrained() || user.stat || user.weakened || user.stunned || user.paralysis || user.resting) //are you cuffed, dying, lying, stunned or other
return
if(O.anchored || get_dist(user, src) > 1 || get_dist(user, O) > 1 || user.contents.Find(src)) // is the mob anchored, too far away from you, or are you too far away from the source
return
if(!ismob(O)) //humans only
return
if(istype(O, /mob/living/simple_animal) || istype(O, /mob/living/silicon)) //animals and robutts dont fit
return
if(!ishuman(user) && !isrobot(user)) //No ghosts or mice putting people into the sleeper
return
if(user.loc==null) // just in case someone manages to get a closet into the blue light dimension, as unlikely as that seems
return
if(!istype(user.loc, /turf) || !istype(O.loc, /turf)) // are you in a container/closet/pod/etc?
return
if(occupant)
user << "\blue <B>The cryo pod is already occupied!</B>"
return
var/mob/living/L = O
if(!istype(L) || L.buckled)
return
for(var/mob/living/carbon/slime/M in range(1,L))
if(M.Victim == L)
usr << "[L.name] will not fit into the cryo pod because they have a slime latched onto their head."
return
var/willing = null //We don't want to allow people to be forced into despawning.
if(L.client)
if(alert(L,"Would you like to enter cryosleep?",,"Yes","No") == "Yes")
if(!L) return
willing = 1
else
willing = 1
if(willing)
if(L == user)
visible_message("[user] starts climbing into the cryo pod.", 3)
else
visible_message("[user] starts putting [L] into the cryo pod.", 3)
if(do_after(user, 20))
if(!L) return
L.loc = src
if(L.client)
L.client.perspective = EYE_PERSPECTIVE
L.client.eye = src
if(orient_right)
icon_state = "body_scanner_1-r"
else
icon_state = "body_scanner_1"
L << "\blue You feel cool air surround you. You go numb as your senses turn inward."
L << "\blue <b>If you ghost, log out or close your client now, your character will shortly be permanently removed from the round.</b>"
occupant = L
time_entered = world.time
// Book keeping!
log_admin("[key_name_admin(L)] has entered a stasis pod.")
message_admins("\blue [key_name_admin(L)] has entered a stasis pod.")
//Despawning occurs when process() is called with an occupant without a client.
src.add_fingerprint(L)
return
/obj/machinery/cryopod/verb/eject()
set name = "Eject Pod"
set category = "Object"
+2 -2
View File
@@ -52,11 +52,11 @@
for(var/obj/O in range(0, src))
if(O.density == 1 && O != src && !istype(O, /obj/machinery/door/window)) //Ignores windoors, as those already block climbing, otherwise a windoor on the opposite side of a table would prevent climbing.
user << "\red You cannot climb a [src] blocked by a solid object!"
user << "\red You cannot climb [src], as it is blocked by \a [O]!"
return
for(var/turf/T in range(0, src))
if(T.density == 1)
user << "\red You cannot climb a [src] blocked by a solid object!"
user << "\red You cannot climb [src], as it is blocked by \a [T]!"
return
var/turf/T = src.loc
if(!T || !istype(T)) return
+1 -1
View File
@@ -217,7 +217,7 @@ BLIND // can't see anything
min_cold_protection_temperature = SPACE_HELMET_MIN_COLD_PROTECITON_TEMPERATURE
siemens_coefficient = 0.9
species_restricted = list("exclude","Diona","Vox")
loose = 1 // very rarely falls off
loose = 0 // What kind of idiot designs a pressurized suit where the helmet can fall off?
/obj/item/clothing/suit/space
name = "Space suit"
@@ -6,7 +6,6 @@
allowed = list(/obj/item/weapon/cell)
armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 25)
siemens_coefficient = 0.2
loose = 0
/obj/item/clothing/suit/space/space_ninja
Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 58 KiB