Merge remote-tracking branch 'upstream/dev' into Service

This commit is contained in:
PsiOmega
2014-11-17 12:00:01 +01:00
29 changed files with 349 additions and 328 deletions
+3 -3
View File
@@ -450,7 +450,7 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee
containertype = /obj/structure/closet/crate
containername = "Wooden planks crate"
group = "Engineering"
/datum/supply_packs/plastic50
name = "50 plastic sheets"
contains = list(/obj/item/stack/sheet/mineral/plastic)
@@ -980,7 +980,7 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee
/obj/item/clothing/under/rank/mailman,
/obj/item/clothing/under/dress/dress_saloon,
/obj/item/clothing/suit/suspenders,
/obj/item/clothing/suit/storage/labcoat/mad,
/obj/item/clothing/suit/storage/toggle/labcoat/mad,
/obj/item/clothing/suit/bio_suit/plaguedoctorsuit,
/obj/item/clothing/under/schoolgirl,
/obj/item/clothing/under/owl,
@@ -1003,7 +1003,7 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee
/datum/supply_packs/formal_wear
contains = list(/obj/item/clothing/head/bowler,
/obj/item/clothing/head/that,
/obj/item/clothing/suit/storage/lawyer/bluejacket,
/obj/item/clothing/suit/storage/toggle/lawyer/bluejacket,
/obj/item/clothing/suit/storage/lawyer/purpjacket,
/obj/item/clothing/under/suit_jacket,
/obj/item/clothing/under/suit_jacket/female,
+1 -1
View File
@@ -34,7 +34,7 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1)
H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/ids(H), slot_r_hand)
else
H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/ids(H.back), slot_in_backpack)
var/sound/announce_sound = (ticker.current_state <= GAME_STATE_SETTING_UP)? null : sound('sound/misc/boatswain.ogg', volume=20)
captain_announcement.Announce("All hands, Captain [H.real_name] on deck!", new_sound=announce_sound)
+1 -1
View File
@@ -352,7 +352,7 @@
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_norm(H), slot_back)
if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/internalaffairs(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/internalaffairs(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/toggle/internalaffairs(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/brown(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/big(H), slot_glasses)
H.equip_to_slot_or_del(new /obj/item/device/pda/lawyer(H), slot_belt)
+10 -10
View File
@@ -27,7 +27,7 @@
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/chief_medical_officer(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/brown(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/device/pda/heads/cmo(H), slot_belt)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat/cmo(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/toggle/labcoat/cmo(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/weapon/storage/firstaid/adv(H), slot_l_hand)
H.equip_to_slot_or_del(new /obj/item/device/flashlight/pen(H), slot_s_store)
if(H.backbag == 1)
@@ -62,13 +62,13 @@
switch(H.mind.role_alt_title)
if("Emergency Physician")
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/fr_jacket(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/toggle/fr_jacket(H), slot_wear_suit)
if("Surgeon")
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical/blue(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/toggle/labcoat(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/clothing/head/surgery/blue(H), slot_head)
if("Virologist")
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat/virologist(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/toggle/labcoat/virologist(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/virologist(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(H), slot_wear_mask)
switch(H.backbag)
@@ -77,7 +77,7 @@
if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back)
if("Medical Doctor")
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/toggle/labcoat(H), slot_wear_suit)
if("Nurse")
if(H.gender == FEMALE)
if(prob(50))
@@ -89,7 +89,7 @@
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical/purple(H), slot_w_uniform)
else
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/toggle/labcoat(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/device/pda/medical(H), slot_belt)
H.equip_to_slot_or_del(new /obj/item/weapon/storage/firstaid/adv(H), slot_l_hand)
@@ -123,7 +123,7 @@
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/chemist(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/device/pda/chemist(H), slot_belt)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat/chemist(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/toggle/labcoat/chemist(H), slot_wear_suit)
switch(H.backbag)
if(1) H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H), slot_r_hand)
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/chemistry(H), slot_back)
@@ -153,7 +153,7 @@
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/geneticist(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/device/pda/geneticist(H), slot_belt)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat/genetics(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/toggle/labcoat/genetics(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/device/flashlight/pen(H), slot_s_store)
switch(H.backbag)
if(1) H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H), slot_r_hand)
@@ -188,7 +188,7 @@
H.equip_to_slot_or_del(new /obj/item/device/pda/viro(H), slot_belt)
H.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(H), slot_wear_mask)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat/virologist(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/toggle/labcoat/virologist(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/device/flashlight/pen(H), slot_s_store)
if(H.backbag == 1)
H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H), slot_r_hand)
@@ -224,7 +224,7 @@
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/psych/turtleneck(H), slot_w_uniform)
else
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/toggle/labcoat(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/device/pda/medical(H), slot_belt)
if(H.backbag == 1)
+4 -4
View File
@@ -25,7 +25,7 @@
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/brown(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/research_director(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/device/pda/heads/rd(H), slot_belt)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/toggle/labcoat(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/weapon/clipboard(H), slot_l_hand)
switch(H.backbag)
if(1) H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H), slot_r_hand)
@@ -58,7 +58,7 @@
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/scientist(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/device/pda/science(H), slot_belt)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat/science(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/toggle/labcoat/science(H), slot_wear_suit)
switch(H.backbag)
if(1) H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H), slot_r_hand)
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/toxins(H), slot_back)
@@ -89,7 +89,7 @@
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/scientist(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/device/pda/science(H), slot_belt)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat/science(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/toggle/labcoat/science(H), slot_wear_suit)
switch(H.backbag)
if(1) H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H), slot_r_hand)
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/toxins(H), slot_back)
@@ -122,7 +122,7 @@
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/roboticist(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/device/pda/roboticist(H), slot_belt)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat(H), slot_wear_suit)
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/toggle/labcoat(H), slot_wear_suit)
// H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(H), slot_gloves)
H.equip_to_slot_or_del(new /obj/item/weapon/storage/toolbox/mechanical(H), slot_l_hand)
if(H.backbag == 1)
+1 -1
View File
@@ -21,7 +21,7 @@
flag = CYBORG
department_flag = ENGSEC
faction = "Station"
total_positions = 0
total_positions = 2
spawn_positions = 2
supervisors = "your laws and the AI" //Nodrak
selection_color = "#ddffdd"
+3 -4
View File
@@ -348,7 +348,7 @@ var/global/datum/controller/occupations/job_master
proc/EquipRank(var/mob/living/carbon/human/H, var/rank, var/joined_late = 0)
if(!H) return 0
if(!H) return null
var/datum/job/job = GetJob(rank)
var/list/spawn_in_storage = list()
@@ -445,8 +445,7 @@ var/global/datum/controller/occupations/job_master
switch(rank)
if("Cyborg")
H.Robotize()
return 1
return H.Robotize()
if("AI","Clown") //don't need bag preference stuff!
else
switch(H.backbag) //BS12 EDIT
@@ -525,7 +524,7 @@ var/global/datum/controller/occupations/job_master
H.hud_updateflag |= (1 << ID_HUD)
H.hud_updateflag |= (1 << IMPLOYAL_HUD)
H.hud_updateflag |= (1 << SPECIALROLE_HUD)
return 1
return H
proc/spawnId(var/mob/living/carbon/human/H, rank, title)
+134 -35
View File
@@ -6,9 +6,6 @@
* ~ Zuhayr
*/
//Used for logging people entering cryosleep and important items they are carrying.
var/global/list/frozen_crew = list()
var/global/list/frozen_items = list()
//Main cryopod console.
@@ -20,6 +17,25 @@ var/global/list/frozen_items = list()
circuit = "/obj/item/weapon/circuitboard/cryopodcontrol"
var/mode = null
//Used for logging people entering cryosleep and important items they are carrying.
var/list/frozen_crew = list()
var/list/frozen_items = list()
var/storage_type = "crewmembers"
var/storage_name = "Cryogenic Oversight Control"
var/allow_items = 1
/obj/machinery/computer/cryopod/robot
name = "robotic storage console"
desc = "An interface between crew and the robotic storage systems"
icon = 'icons/obj/robot_storage.dmi'
icon_state = "console"
circuit = "/obj/item/weapon/circuitboard/robotstoragecontrol"
storage_type = "cyborgs"
storage_name = "Robotic Storage Control"
allow_items = 0
/obj/machinery/computer/cryopod/attack_ai()
src.attack_hand()
@@ -35,12 +51,13 @@ var/global/list/frozen_items = list()
if (!( ticker ))
return
dat += "<hr/><br/><b>Cryogenic Oversight Control</b><br/>"
dat += "<hr/><br/><b>[storage_name]</b><br/>"
dat += "<i>Welcome, [user.real_name].</i><br/><br/><hr/>"
dat += "<a href='?src=\ref[src];log=1'>View storage log</a>.<br>"
dat += "<a href='?src=\ref[src];view=1'>View objects</a>.<br>"
dat += "<a href='?src=\ref[src];item=1'>Recover object</a>.<br>"
dat += "<a href='?src=\ref[src];allitems=1'>Recover all objects</a>.<br>"
if(allow_items)
dat += "<a href='?src=\ref[src];view=1'>View objects</a>.<br>"
dat += "<a href='?src=\ref[src];item=1'>Recover object</a>.<br>"
dat += "<a href='?src=\ref[src];allitems=1'>Recover all objects</a>.<br>"
user << browse(dat, "window=cryopod_console")
onclose(user, "cryopod_console")
@@ -56,7 +73,7 @@ var/global/list/frozen_items = list()
if(href_list["log"])
var/dat = "<b>Recently stored crewmembers</b><br/><hr/><br/>"
var/dat = "<b>Recently stored [storage_type]</b><br/><hr/><br/>"
for(var/person in frozen_crew)
dat += "[person]<br/>"
dat += "<hr/>"
@@ -64,6 +81,7 @@ var/global/list/frozen_items = list()
user << browse(dat, "window=cryolog")
if(href_list["view"])
if(!allow_items) return
var/dat = "<b>Recently stored objects</b><br/><hr/><br/>"
for(var/obj/item/I in frozen_items)
@@ -73,6 +91,7 @@ var/global/list/frozen_items = list()
user << browse(dat, "window=cryoitems")
else if(href_list["item"])
if(!allow_items) return
if(frozen_items.len == 0)
user << "\blue There is nothing to recover from storage."
@@ -92,6 +111,7 @@ var/global/list/frozen_items = list()
frozen_items -= I
else if(href_list["allitems"])
if(!allow_items) return
if(frozen_items.len == 0)
user << "\blue There is nothing to recover from storage."
@@ -111,6 +131,11 @@ var/global/list/frozen_items = list()
build_path = "/obj/machinery/computer/cryopod"
origin_tech = "programming=3"
/obj/item/weapon/circuitboard/robotstoragecontrol
name = "Circuit board (Robotic Storage Console)"
build_path = "/obj/machinery/computer/cryopod/robot"
origin_tech = "programming=3"
//Decorative structures to go alongside cryopods.
/obj/structure/cryofeed
@@ -143,12 +168,23 @@ var/global/list/frozen_items = list()
density = 1
anchored = 1
var/base_icon_state = "body_scanner_0"
var/occupied_icon_state = "body_scanner_1"
var/on_store_message = "has entered long-term storage."
var/on_store_name = "Cryogenic Oversight"
var/on_enter_occupant_message = "You feel cool air surround you. You go numb as your senses turn inward."
var/allow_occupant_types = list(/mob/living/carbon/human, /mob/living/carbon/monkey)
var/disallow_occupant_types = list()
var/mob/occupant = null // Person waiting to be despawned.
var/orient_right = null // Flips the sprite.
var/time_till_despawn = 18000 // 30 minutes-ish safe period before being despawned.
var/time_entered = 0 // Used to keep track of the safe period.
var/obj/item/device/radio/intercom/announce //
var/obj/machinery/computer/cryopod/control_computer
var/last_no_computer_message = 0
// These items are preserved when the process() despawn proc occurs.
var/list/preserve_items = list(
/obj/item/weapon/hand_tele,
@@ -169,16 +205,64 @@ var/global/list/frozen_items = list()
orient_right = 1
icon_state = "body_scanner_0-r"
/obj/machinery/cryopod/New()
/obj/machinery/cryopod/robot
name = "robotic storage unit"
desc = "A storage unit for robots."
icon = 'icons/obj/robot_storage.dmi'
icon_state = "pod_0"
base_icon_state = "pod_0"
occupied_icon_state = "pod_1"
on_store_message = "has entered robotic storage."
on_store_name = "Robotic Storage Oversight"
on_enter_occupant_message = "The storage unit broadcasts a sleep signal to you. Your systems start to shut down, and you enter low-power mode."
allow_occupant_types = list(/mob/living/silicon/robot)
disallow_occupant_types = list(/mob/living/silicon/robot/drone)
/obj/machinery/cryopod/robot/right
orient_right = 1
icon_state = "pod_0-r"
/obj/machinery/cryopod/New()
announce = new /obj/item/device/radio/intercom(src)
if(orient_right)
icon_state = "body_scanner_0-r"
icon_state = "[base_icon_state]-r"
else
icon_state = "body_scanner_0"
icon_state = base_icon_state
..()
/obj/machinery/cryopod/initialize()
..()
find_control_computer()
/obj/machinery/cryopod/proc/find_control_computer(urgent=0)
control_computer = locate(/obj/machinery/computer/cryopod) in src.loc.loc
// Don't send messages unless we *need* the computer, and less than five minutes have passed since last time we messaged
if(!control_computer && urgent && last_no_computer_message + 5*60*10 < world.time)
log_admin("Cryopod in [src.loc.loc] could not find control computer!")
message_admins("Cryopod in [src.loc.loc] could not find control computer!")
last_no_computer_message = world.time
return control_computer != null
/obj/machinery/cryopod/proc/check_occupant_allowed(mob/M)
var/correct_type = 0
for(var/type in allow_occupant_types)
if(istype(M, type))
correct_type = 1
break
if(!correct_type) return 0
for(var/type in disallow_occupant_types)
if(istype(M, type))
return 0
return 1
//Lifted from Unity stasis.dm and refactored. ~Zuhayr
/obj/machinery/cryopod/process()
if(occupant)
@@ -187,9 +271,18 @@ var/global/list/frozen_items = list()
return
if(!occupant.client && occupant.stat<2) //Occupant is living and has no client.
if(!control_computer)
if(!find_control_computer(urgent=1))
return
//Drop all items into the pod.
for(var/obj/item/W in occupant)
if(istype(W, /obj/item/device/mmi))
if(istype(occupant, /mob/living/silicon/robot))
var/mob/living/silicon/robot/R = occupant
if(R.mmi == W)
del(W)
continue
occupant.drop_from_inventory(W)
W.loc = src
@@ -215,8 +308,11 @@ var/global/list/frozen_items = list()
if(!preserve)
del(W)
else
frozen_items += W
W.loc = null
if(control_computer && control_computer.allow_items)
control_computer.frozen_items += W
W.loc = null
else
W.loc = src.loc
//Update any existing objectives involving this mob.
for(var/datum/objective/O in all_objectives)
@@ -265,9 +361,9 @@ var/global/list/frozen_items = list()
del(G)
if(orient_right)
icon_state = "body_scanner_0-r"
icon_state = "[base_icon_state]-r"
else
icon_state = "body_scanner_0"
icon_state = base_icon_state
//TODO: Check objectives/mode, update new targets if this mob is the target, spawn new antags?
@@ -275,10 +371,10 @@ var/global/list/frozen_items = list()
occupant.ckey = null
//Make an announcement and log the person entering storage.
frozen_crew += "[occupant.real_name]"
control_computer.frozen_crew += "[occupant.real_name]"
announce.autosay("[occupant.real_name] has entered long-term storage.", "Cryogenic Oversight")
visible_message("\blue The crypod hums and hisses as it moves [occupant.real_name] into storage.", 3)
announce.autosay("[occupant.real_name] [on_store_message]", "[on_store_name]")
visible_message("\blue \The [src] hums and hisses as it moves [occupant.real_name] into storage.", 3)
// Delete the mob.
del(occupant)
@@ -293,17 +389,20 @@ var/global/list/frozen_items = list()
if(istype(G, /obj/item/weapon/grab))
if(occupant)
user << "\blue The cryo pod is in use."
user << "\blue \The [src] is in use."
return
if(!ismob(G:affecting))
return
if(!check_occupant_allowed(G:affecting))
return
var/willing = null //We don't want to allow people to be forced into despawning.
var/mob/M = G:affecting
if(M.client)
if(alert(M,"Would you like to enter cryosleep?",,"Yes","No") == "Yes")
if(alert(M,"Would you like to enter long-term storage?",,"Yes","No") == "Yes")
if(!M || !G || !G:affecting) return
willing = 1
else
@@ -311,7 +410,7 @@ var/global/list/frozen_items = list()
if(willing)
visible_message("[user] starts putting [G:affecting:name] into the cryo pod.", 3)
visible_message("[user] starts putting [G:affecting:name] into \the [src].", 3)
if(do_after(user, 20))
if(!M || !G || !G:affecting) return
@@ -323,11 +422,11 @@ var/global/list/frozen_items = list()
M.client.eye = src
if(orient_right)
icon_state = "body_scanner_1-r"
icon_state = "[occupied_icon_state]-r"
else
icon_state = "body_scanner_1"
icon_state = occupied_icon_state
M << "\blue You feel cool air surround you. You go numb as your senses turn inward."
M << "\blue [on_enter_occupant_message]"
M << "\blue <b>If you ghost, log out or close your client now, your character will shortly be permanently removed from the round.</b>"
occupant = M
time_entered = world.time
@@ -349,9 +448,9 @@ var/global/list/frozen_items = list()
return
if(orient_right)
icon_state = "body_scanner_0-r"
icon_state = "[base_icon_state]-r"
else
icon_state = "body_scanner_0"
icon_state = base_icon_state
//Eject any items that aren't meant to be in the pod.
var/list/items = src.contents
@@ -370,11 +469,11 @@ var/global/list/frozen_items = list()
set category = "Object"
set src in oview(1)
if(usr.stat != 0 || !(ishuman(usr) || ismonkey(usr)))
if(usr.stat != 0 || !check_occupant_allowed(usr))
return
if(src.occupant)
usr << "\blue <B>The cryo pod is in use.</B>"
usr << "\blue <B>\The [src] is in use.</B>"
return
for(var/mob/living/carbon/slime/M in range(1,usr))
@@ -382,7 +481,7 @@ var/global/list/frozen_items = list()
usr << "You're too busy getting your life sucked out of you."
return
visible_message("[usr] starts climbing into the cryo pod.", 3)
visible_message("[usr] starts climbing into \the [src].", 3)
if(do_after(usr, 20))
@@ -390,7 +489,7 @@ var/global/list/frozen_items = list()
return
if(src.occupant)
usr << "\blue <B>The cryo pod is in use.</B>"
usr << "\blue <B>\The [src] is in use.</B>"
return
usr.stop_pulling()
@@ -400,11 +499,11 @@ var/global/list/frozen_items = list()
src.occupant = usr
if(orient_right)
icon_state = "body_scanner_1-r"
icon_state = "[occupied_icon_state]-r"
else
icon_state = "body_scanner_1"
icon_state = occupied_icon_state
usr << "\blue You feel cool air surround you. You go numb as your senses turn inward."
usr << "\blue [on_enter_occupant_message]"
usr << "\blue <b>If you ghost, log out or close your client now, your character will shortly be permanently removed from the round.</b>"
occupant = usr
time_entered = world.time
@@ -426,9 +525,9 @@ var/global/list/frozen_items = list()
occupant = null
if(orient_right)
icon_state = "body_scanner_0-r"
icon_state = "[base_icon_state]-r"
else
icon_state = "body_scanner_0"
icon_state = base_icon_state
return
+5 -1
View File
@@ -48,6 +48,10 @@
latejoin_cryo += loc
del(src)
if("JoinLateCyborg")
latejoin_cyborg += loc
del(src)
//prisoners
if("prisonwarp")
prisonwarp += loc
@@ -133,7 +137,7 @@
/obj/effect/landmark/costume/madscientist/New()
new /obj/item/clothing/under/gimmick/rank/captain/suit(src.loc)
new /obj/item/clothing/head/flatcap(src.loc)
new /obj/item/clothing/suit/storage/labcoat/mad(src.loc)
new /obj/item/clothing/suit/storage/toggle/labcoat/mad(src.loc)
new /obj/item/clothing/glasses/gglasses(src.loc)
del(src)
+2 -2
View File
@@ -45,9 +45,9 @@
/obj/structure/coatrack/update_icon()
overlays.Cut()
if (istype(coat, /obj/item/clothing/suit/storage/labcoat))
if (istype(coat, /obj/item/clothing/suit/storage/toggle/labcoat))
overlays += image(icon, icon_state = "coat_lab")
if (istype(coat, /obj/item/clothing/suit/storage/labcoat/cmo))
if (istype(coat, /obj/item/clothing/suit/storage/toggle/labcoat/cmo))
overlays += image(icon, icon_state = "coat_cmo")
if (istype(coat, /obj/item/clothing/suit/storage/det_suit))
overlays += image(icon, icon_state = "coat_det")
@@ -93,7 +93,7 @@
new /obj/item/clothing/under/lawyer/black(src)
new /obj/item/clothing/under/lawyer/red(src)
new /obj/item/clothing/under/lawyer/bluesuit(src)
new /obj/item/clothing/suit/storage/lawyer/bluejacket(src)
new /obj/item/clothing/suit/storage/toggle/lawyer/bluejacket(src)
new /obj/item/clothing/under/lawyer/purpsuit(src)
new /obj/item/clothing/suit/storage/lawyer/purpjacket(src)
new /obj/item/clothing/shoes/brown(src)
@@ -91,8 +91,8 @@
new /obj/item/clothing/under/rank/medical(src)
new /obj/item/clothing/under/rank/nurse(src)
new /obj/item/clothing/under/rank/orderly(src)
new /obj/item/clothing/suit/storage/labcoat(src)
new /obj/item/clothing/suit/storage/fr_jacket(src)
new /obj/item/clothing/suit/storage/toggle/labcoat(src)
new /obj/item/clothing/suit/storage/toggle/fr_jacket(src)
new /obj/item/clothing/shoes/white(src)
// new /obj/item/weapon/cartridge/medical(src)
new /obj/item/device/radio/headset/headset_med(src)
@@ -130,8 +130,8 @@
new /obj/item/clothing/under/rank/medical/purple(src)
new /obj/item/clothing/head/surgery/purple(src)
new /obj/item/clothing/under/rank/chief_medical_officer(src)
new /obj/item/clothing/suit/storage/labcoat/cmo(src)
new /obj/item/clothing/suit/storage/labcoat/cmoalt(src)
new /obj/item/clothing/suit/storage/toggle/labcoat/cmo(src)
new /obj/item/clothing/suit/storage/toggle/labcoat/cmoalt(src)
new /obj/item/weapon/cartridge/cmo(src)
new /obj/item/clothing/gloves/latex(src)
new /obj/item/clothing/shoes/brown (src)
@@ -12,7 +12,7 @@
..()
new /obj/item/clothing/under/rank/scientist(src)
//new /obj/item/clothing/suit/labcoat/science(src)
new /obj/item/clothing/suit/storage/labcoat(src)
new /obj/item/clothing/suit/storage/toggle/labcoat(src)
new /obj/item/clothing/shoes/white(src)
// new /obj/item/weapon/cartridge/signal/science(src)
new /obj/item/device/radio/headset/headset_sci(src)
@@ -39,7 +39,7 @@
new /obj/item/clothing/under/rank/research_director(src)
new /obj/item/clothing/under/rank/research_director/rdalt(src)
new /obj/item/clothing/under/rank/research_director/dress_rd(src)
new /obj/item/clothing/suit/storage/labcoat(src)
new /obj/item/clothing/suit/storage/toggle/labcoat(src)
new /obj/item/weapon/cartridge/rd(src)
new /obj/item/clothing/shoes/white(src)
new /obj/item/clothing/shoes/leather(src)
@@ -240,9 +240,9 @@
new /obj/item/clothing/under/rank/scientist(src)
new /obj/item/clothing/under/rank/scientist(src)
new /obj/item/clothing/under/rank/scientist(src)
new /obj/item/clothing/suit/storage/labcoat(src)
new /obj/item/clothing/suit/storage/labcoat(src)
new /obj/item/clothing/suit/storage/labcoat(src)
new /obj/item/clothing/suit/storage/toggle/labcoat(src)
new /obj/item/clothing/suit/storage/toggle/labcoat(src)
new /obj/item/clothing/suit/storage/toggle/labcoat(src)
new /obj/item/clothing/shoes/white(src)
new /obj/item/clothing/shoes/white(src)
new /obj/item/clothing/shoes/white(src)
@@ -261,8 +261,8 @@
..()
new /obj/item/clothing/under/rank/roboticist(src)
new /obj/item/clothing/under/rank/roboticist(src)
new /obj/item/clothing/suit/storage/labcoat(src)
new /obj/item/clothing/suit/storage/labcoat(src)
new /obj/item/clothing/suit/storage/toggle/labcoat(src)
new /obj/item/clothing/suit/storage/toggle/labcoat(src)
new /obj/item/clothing/shoes/black(src)
new /obj/item/clothing/shoes/black(src)
new /obj/item/clothing/gloves/black(src)
@@ -281,8 +281,8 @@
new /obj/item/clothing/under/rank/chemist(src)
new /obj/item/clothing/shoes/white(src)
new /obj/item/clothing/shoes/white(src)
new /obj/item/clothing/suit/storage/labcoat/chemist(src)
new /obj/item/clothing/suit/storage/labcoat/chemist(src)
new /obj/item/clothing/suit/storage/toggle/labcoat/chemist(src)
new /obj/item/clothing/suit/storage/toggle/labcoat/chemist(src)
return
@@ -297,8 +297,8 @@
new /obj/item/clothing/under/rank/geneticist(src)
new /obj/item/clothing/shoes/white(src)
new /obj/item/clothing/shoes/white(src)
new /obj/item/clothing/suit/storage/labcoat/genetics(src)
new /obj/item/clothing/suit/storage/labcoat/genetics(src)
new /obj/item/clothing/suit/storage/toggle/labcoat/genetics(src)
new /obj/item/clothing/suit/storage/toggle/labcoat/genetics(src)
return
@@ -313,8 +313,8 @@
new /obj/item/clothing/under/rank/virologist(src)
new /obj/item/clothing/shoes/white(src)
new /obj/item/clothing/shoes/white(src)
new /obj/item/clothing/suit/storage/labcoat/virologist(src)
new /obj/item/clothing/suit/storage/labcoat/virologist(src)
new /obj/item/clothing/suit/storage/toggle/labcoat/virologist(src)
new /obj/item/clothing/suit/storage/toggle/labcoat/virologist(src)
new /obj/item/clothing/mask/surgical(src)
new /obj/item/clothing/mask/surgical(src)
return
@@ -334,8 +334,8 @@
new /obj/item/clothing/under/rank/medical/purple(src)
new /obj/item/clothing/shoes/white(src)
new /obj/item/clothing/shoes/white(src)
new /obj/item/clothing/suit/storage/labcoat(src)
new /obj/item/clothing/suit/storage/labcoat(src)
new /obj/item/clothing/suit/storage/toggle/labcoat(src)
new /obj/item/clothing/suit/storage/toggle/labcoat(src)
new /obj/item/clothing/mask/surgical(src)
new /obj/item/clothing/mask/surgical(src)
return
+1
View File
@@ -129,6 +129,7 @@ var/list/newplayer_start = list()
var/list/latejoin = list()
var/list/latejoin_gateway = list()
var/list/latejoin_cryo = list()
var/list/latejoin_cyborg = list()
var/list/prisonwarp = list() //prisoners go to these
var/list/holdingfacility = list() //captured people go here
+1 -1
View File
@@ -181,7 +181,7 @@
name = "Scientist"
corpseradio = /obj/item/device/radio/headset/headset_sci
corpseuniform = /obj/item/clothing/under/rank/scientist
corpsesuit = /obj/item/clothing/suit/storage/labcoat/science
corpsesuit = /obj/item/clothing/suit/storage/toggle/labcoat/science
corpseback = /obj/item/weapon/storage/backpack
corpseshoes = /obj/item/clothing/shoes/white
corpseid = 1
+5 -5
View File
@@ -18,13 +18,13 @@ var/global/list/gear_datums = list()
//create a list of gear datums to sort
for(var/type in typesof(/datum/gear)-/datum/gear)
var/datum/gear/G = new type()
var/category = (G.sort_category in sort_categories)? G.sort_category : "unknown"
sort_categories[category][G.display_name] = G
for (var/category in sort_categories)
gear_datums.Add(sortAssoc(sort_categories[category]))
return 1
/datum/gear
@@ -475,13 +475,13 @@ var/global/list/gear_datums = list()
/datum/gear/brown_jacket
display_name = "leather jacket, brown"
path = /obj/item/clothing/suit/storage/brown_jacket
path = /obj/item/clothing/suit/storage/toggle/brown_jacket
cost = 3
slot = slot_wear_suit
/datum/gear/brown_jacket_nt
display_name = "leather jacket, NanoTrasen, brown"
path = /obj/item/clothing/suit/storage/brown_jacket/nanotrasen
path = /obj/item/clothing/suit/storage/toggle/brown_jacket/nanotrasen
cost = 3
slot = slot_wear_suit
+22 -1
View File
@@ -10,6 +10,17 @@ var/list/spawntypes = list()
var/msg //Message to display on the arrivals computer.
var/list/turfs //List of turfs to spawn on.
var/display_name //Name used in preference setup.
var/list/restrict_job = null
var/list/disallow_job = null
proc/check_job_spawning(job)
if(restrict_job && !(job in restrict_job))
return 0
if(disallow_job && (job in disallow_job))
return 0
return 1
/datum/spawnpoint/arrivals
display_name = "Arrivals Shuttle"
@@ -30,7 +41,17 @@ var/list/spawntypes = list()
/datum/spawnpoint/cryo
display_name = "Cryogenic Storage"
msg = "has completed cryogenic revival"
disallow_job = list("Cyborg")
/datum/spawnpoint/cryo/New()
..()
turfs = latejoin_cryo
turfs = latejoin_cryo
/datum/spawnpoint/cyborg
display_name = "Cyborg Storage"
msg = "has been activated from storage"
restrict_job = list("Cyborg")
/datum/spawnpoint/cyborg/New()
..()
turfs = latejoin_cyborg
+9 -38
View File
@@ -141,11 +141,13 @@
sprite_sheets = list("Vox" = 'icons/mob/species/vox/suit.dmi')
//Lawyer
/obj/item/clothing/suit/storage/lawyer/bluejacket
/obj/item/clothing/suit/storage/toggle/lawyer/bluejacket
name = "Blue Suit Jacket"
desc = "A snappy dress jacket."
icon_state = "suitjacket_blue_open"
item_state = "suitjacket_blue_open"
icon_open = "suitjacket_blue_open"
icon_closed = "suitjacket_blue"
blood_overlay_type = "coat"
body_parts_covered = UPPER_TORSO|ARMS
@@ -158,62 +160,31 @@
body_parts_covered = UPPER_TORSO|ARMS
//Internal Affairs
/obj/item/clothing/suit/storage/internalaffairs
/obj/item/clothing/suit/storage/toggle/internalaffairs
name = "Internal Affairs Jacket"
desc = "A smooth black jacket."
icon_state = "ia_jacket_open"
item_state = "ia_jacket"
icon_open = "ia_jacket_open"
icon_closed = "ia_jacket"
blood_overlay_type = "coat"
body_parts_covered = UPPER_TORSO|ARMS
verb/toggle()
set name = "Toggle Coat Buttons"
set category = "Object"
set src in usr
if(!usr.canmove || usr.stat || usr.restrained())
return 0
switch(icon_state)
if("ia_jacket_open")
src.icon_state = "ia_jacket"
usr << "You button up the jacket."
if("ia_jacket")
src.icon_state = "ia_jacket_open"
usr << "You unbutton the jacket."
else
usr << "You attempt to button-up the velcro on your [src], before promptly realising how retarded you are."
return
update_clothing_icon() //so our overlays update
//Medical
/obj/item/clothing/suit/storage/fr_jacket
/obj/item/clothing/suit/storage/toggle/fr_jacket
name = "first responder jacket"
desc = "A high-visibility jacket worn by medical first responders."
icon_state = "fr_jacket_open"
item_state = "fr_jacket"
icon_open = "fr_jacket_open"
icon_closed = "fr_jacket"
blood_overlay_type = "armor"
allowed = list(/obj/item/stack/medical, /obj/item/weapon/reagent_containers/dropper, /obj/item/weapon/reagent_containers/hypospray, /obj/item/weapon/reagent_containers/syringe, \
/obj/item/device/healthanalyzer, /obj/item/device/flashlight, /obj/item/device/radio, /obj/item/weapon/tank/emergency_oxygen)
body_parts_covered = UPPER_TORSO|ARMS
verb/toggle()
set name = "Toggle Jacket Buttons"
set category = "Object"
set src in usr
if(!usr.canmove || usr.stat || usr.restrained())
return 0
switch(icon_state)
if("fr_jacket_open")
src.icon_state = "fr_jacket"
usr << "You button up the jacket."
if("fr_jacket")
src.icon_state = "fr_jacket_open"
usr << "You unbutton the jacket."
update_clothing_icon() //so our overlays update
//Mime
/obj/item/clothing/suit/suspenders
name = "suspenders"
+39 -112
View File
@@ -1,177 +1,104 @@
/obj/item/clothing/suit/storage/labcoat
/obj/item/clothing/suit/storage/toggle/labcoat
name = "labcoat"
desc = "A suit that protects against minor chemical spills."
icon_state = "labcoat_open"
item_state = "labcoat" //Is this even used for anything?
icon_open = "labcoat_open"
icon_closed = "labcoat"
blood_overlay_type = "coat"
body_parts_covered = UPPER_TORSO|ARMS
allowed = list(/obj/item/device/analyzer,/obj/item/stack/medical,/obj/item/weapon/dnainjector,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/hypospray,/obj/item/device/healthanalyzer,/obj/item/device/flashlight/pen,/obj/item/weapon/reagent_containers/glass/bottle,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/pill,/obj/item/weapon/storage/pill_bottle,/obj/item/weapon/paper)
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 50, rad = 0)
sprite_sheets = list("Vox" = 'icons/mob/species/vox/suit.dmi')
verb/toggle()
set name = "Toggle Labcoat Buttons"
set category = "Object"
set src in usr
if(!usr.canmove || usr.stat || usr.restrained())
return 0
//Why???
switch(icon_state)
if("labcoat_open")
src.icon_state = "labcoat"
usr << "You button up the labcoat."
if("labcoat")
src.icon_state = "labcoat_open"
usr << "You unbutton the labcoat."
if("red_labcoat_open")
src.icon_state = "red_labcoat"
usr << "You button up the labcoat."
if("red_labcoat")
src.icon_state = "red_labcoat_open"
usr << "You unbutton the labcoat."
if("blue_labcoat_open")
src.icon_state = "blue_labcoat"
usr << "You button up the labcoat."
if("blue_labcoat")
src.icon_state = "blue_labcoat_open"
usr << "You unbutton the labcoat."
if("purple_labcoat_open")
src.icon_state = "purple_labcoat"
usr << "You button up the labcoat."
if("purple_labcoat")
src.icon_state = "purple_labcoat_open"
usr << "You unbutton the labcoat."
if("green_labcoat_open")
src.icon_state = "green_labcoat"
usr << "You button up the labcoat."
if("green_labcoat")
src.icon_state = "green_labcoat_open"
usr << "You unbutton the labcoat."
if("orange_labcoat_open")
src.icon_state = "orange_labcoat"
usr << "You button up the labcoat."
if("orange_labcoat")
src.icon_state = "orange_labcoat_open"
usr << "You unbutton the labcoat."
if("labcoat_cmo_open")
src.icon_state = "labcoat_cmo"
usr << "You button up the labcoat."
if("labcoat_cmo")
src.icon_state = "labcoat_cmo_open"
usr << "You unbutton the labcoat."
if("labcoat_cmoalt_open")
src.icon_state = "labcoat_cmoalt"
usr << "You button up the labcoat."
if("labcoat_cmoalt")
src.icon_state = "labcoat_cmoalt_open"
usr << "You unbutton the labcoat."
if("labcoat_gen_open")
src.icon_state = "labcoat_gen"
usr << "You button up the labcoat."
if("labcoat_gen")
src.icon_state = "labcoat_gen_open"
usr << "You unbutton the labcoat."
if("labcoat_chem_open")
src.icon_state = "labcoat_chem"
usr << "You button up the labcoat."
if("labcoat_chem")
src.icon_state = "labcoat_chem_open"
usr << "You unbutton the labcoat."
if("labcoat_vir_open")
src.icon_state = "labcoat_vir"
usr << "You button up the labcoat."
if("labcoat_vir")
src.icon_state = "labcoat_vir_open"
usr << "You unbutton the labcoat."
if("labcoat_tox_open")
src.icon_state = "labcoat_tox"
usr << "You button up the labcoat."
if("labcoat_tox")
src.icon_state = "labcoat_tox_open"
usr << "You unbutton the labcoat."
if("labgreen_open")
src.icon_state = "labgreen"
usr << "You button up the labcoat."
if("labgreen")
src.icon_state = "labgreen_open"
usr << "You unbutton the labcoat."
if ("labcoat_black_open")
src.icon_state = "labcoat_black"
usr << "You button up the labcoat."
if ("labcoat_black")
src.icon_state = "labcoat_black_open"
usr << "You unbutton the labcoat."
else
usr << "You attempt to button-up the velcro on your [src], before promptly realising how silly you are."
return
update_clothing_icon() //so our overlays update
/obj/item/clothing/suit/storage/labcoat/red
/obj/item/clothing/suit/storage/toggle/labcoat/red
name = "red labcoat"
desc = "A suit that protects against minor chemical spills. This one is red."
icon_state = "red_labcoat_open"
item_state = "red_labcoat"
icon_open = "red_labcoat_open"
icon_closed = "red_labcoat"
/obj/item/clothing/suit/storage/labcoat/blue
/obj/item/clothing/suit/storage/toggle/labcoat/blue
name = "blue labcoat"
desc = "A suit that protects against minor chemical spills. This one is blue."
icon_state = "blue_labcoat_open"
item_state = "blue_labcoat"
icon_open = "blue_labcoat_open"
icon_closed = "blue_labcoat"
/obj/item/clothing/suit/storage/labcoat/purple
/obj/item/clothing/suit/storage/toggle/labcoat/purple
name = "purple labcoat"
desc = "A suit that protects against minor chemical spills. This one is purple."
icon_state = "purple_labcoat_open"
item_state = "purple_labcoat"
icon_open = "purple_labcoat_open"
icon_closed = "purple_labcoat"
/obj/item/clothing/suit/storage/labcoat/orange
/obj/item/clothing/suit/storage/toggle/labcoat/orange
name = "orange labcoat"
desc = "A suit that protects against minor chemical spills. This one is orange."
icon_state = "orange_labcoat_open"
item_state = "orange_labcoat"
icon_open = "orange_labcoat_open"
icon_closed = "orange_labcoat"
/obj/item/clothing/suit/storage/labcoat/green
/obj/item/clothing/suit/storage/toggle/labcoat/green
name = "green labcoat"
desc = "A suit that protects against minor chemical spills. This one is green."
icon_state = "green_labcoat_open"
item_state = "green_labcoat"
icon_open = "green_labcoat_open"
icon_closed = "green_labcoat"
/obj/item/clothing/suit/storage/labcoat/cmo
/obj/item/clothing/suit/storage/toggle/labcoat/cmo
name = "chief medical officer's labcoat"
desc = "Bluer than the standard model."
icon_state = "labcoat_cmo_open"
item_state = "labcoat_cmo"
icon_open = "labcoat_cmo_open"
icon_closed = "labcoat_cmo"
/obj/item/clothing/suit/storage/labcoat/cmoalt
/obj/item/clothing/suit/storage/toggle/labcoat/cmoalt
name = "chief medical officer labcoat"
desc = "A labcoat with command blue highlights."
icon_state = "labcoat_cmoalt_open"
icon_open = "labcoat_cmoalt_open"
icon_closed = "labcoat_cmoalt"
/obj/item/clothing/suit/storage/labcoat/mad
/obj/item/clothing/suit/storage/toggle/labcoat/mad
name = "The Mad's labcoat"
desc = "It makes you look capable of konking someone on the noggin and shooting them into space."
icon_state = "labgreen_open"
item_state = "labgreen"
icon_open = "labgreen_open"
icon_closed = "labgreen"
/obj/item/clothing/suit/storage/labcoat/genetics
/obj/item/clothing/suit/storage/toggle/labcoat/genetics
name = "Geneticist labcoat"
desc = "A suit that protects against minor chemical spills. Has a blue stripe on the shoulder."
icon_state = "labcoat_gen_open"
icon_open = "labcoat_gen_open"
icon_closed = "labcoat_gen"
/obj/item/clothing/suit/storage/labcoat/chemist
/obj/item/clothing/suit/storage/toggle/labcoat/chemist
name = "Chemist labcoat"
desc = "A suit that protects against minor chemical spills. Has an orange stripe on the shoulder."
icon_state = "labcoat_chem_open"
icon_open = "labcoat_chem_open"
icon_closed = "labcoat_chem"
/obj/item/clothing/suit/storage/labcoat/virologist
/obj/item/clothing/suit/storage/toggle/labcoat/virologist
name = "Virologist labcoat"
desc = "A suit that protects against minor chemical spills. Offers slightly more protection against biohazards than the standard model. Has a green stripe on the shoulder."
icon_state = "labcoat_vir_open"
icon_open = "labcoat_vir_open"
icon_closed = "labcoat_vir"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 0)
/obj/item/clothing/suit/storage/labcoat/science
/obj/item/clothing/suit/storage/toggle/labcoat/science
name = "Scientist labcoat"
desc = "A suit that protects against minor chemical spills. Has a purple stripe on the shoulder."
icon_state = "labcoat_tox_open"
icon_open = "labcoat_tox_open"
icon_closed = "labcoat_tox"
+6 -46
View File
@@ -199,28 +199,6 @@
item_state = "ianshirt"
body_parts_covered = UPPER_TORSO|ARMS
//Blue suit jacket toggle
/obj/item/clothing/suit/suit/verb/toggle()
set name = "Toggle Jacket Buttons"
set category = "Object"
set src in usr
if(!usr.canmove || usr.stat || usr.restrained())
return 0
if(src.icon_state == "suitjacket_blue_open")
src.icon_state = "suitjacket_blue"
src.item_state = "suitjacket_blue"
usr << "You button up the suit jacket."
else if(src.icon_state == "suitjacket_blue")
src.icon_state = "suitjacket_blue_open"
src.item_state = "suitjacket_blue_open"
usr << "You unbutton the suit jacket."
else
usr << "You button-up some imaginary buttons on your [src]."
return
update_clothing_icon()
//pyjamas
//originally intended to be pinstripes >.>
@@ -401,38 +379,20 @@
icon_state = "leather_jacket_nt"
//This one has buttons for some reason
/obj/item/clothing/suit/storage/brown_jacket
/obj/item/clothing/suit/storage/toggle/brown_jacket
name = "leather jacket"
desc = "A brown leather coat."
icon_state = "brown_jacket"
item_state = "brown_jacket"
var/open_state = "brown_jacket_open"
icon_open = "brown_jacket_open"
icon_closed = "brown_jacket"
body_parts_covered = UPPER_TORSO|ARMS
/obj/item/clothing/suit/storage/brown_jacket/nanotrasen
/obj/item/clothing/suit/storage/toggle/brown_jacket/nanotrasen
desc = "A brown leather coat. The letters NT are proudly displayed on the back."
icon_state = "brown_jacket_nt"
open_state = "brown_jacket_nt_open"
/obj/item/clothing/suit/storage/brown_jacket/verb/toggle()
set name = "Toggle Jacket Buttons"
set category = "Object"
set src in usr
if(!usr.canmove || usr.stat || usr.restrained())
return 0
//The inhand sprite (the mob sprite that appears when holding the item in your hand)
//is unchanged, so update only icon_state, not item_state.
if(icon_state == open_state)
usr << "You button up the jacket."
src.icon_state = initial(icon_state)
else if(icon_state == initial(icon_state))
usr << "You unbutton the jacket."
src.icon_state = open_state
update_clothing_icon() //so our overlays update
icon_open = "brown_jacket_nt_open"
icon_closed = "brown_jacket_nt"
/obj/item/clothing/suit/hoodie
name = "grey hoodie"
+23 -1
View File
@@ -26,4 +26,26 @@
/obj/item/clothing/suit/storage/hear_talk(mob/M, var/msg)
pockets.hear_talk(M, msg)
..()
..()
//Jackets with buttons, used for labcoats, IA jackets, First Responder jackets, and brown jackets.
/obj/item/clothing/suit/storage/toggle
var/icon_open
var/icon_closed
verb/toggle()
set name = "Toggle Coat Buttons"
set category = "Object"
set src in usr
if(!usr.canmove || usr.stat || usr.restrained())
return 0
if(icon_state == icon_open) //Will check whether icon state is currently set to the "open" or "closed" state and switch it around with a message to the user
icon_state = icon_closed
usr << "You button up the coat."
else if(icon_state == icon_closed)
icon_state = icon_open
usr << "You unbutton the coat."
else //in case some goofy admin switches icon states around without switching the icon_open or icon_closed
usr << "You attempt to button-up the velcro on your [src], before promptly realising how silly you are."
return
update_clothing_icon() //so our overlays update
+3 -3
View File
@@ -120,7 +120,7 @@
New()
..()
var/blocked = list(/obj/item/clothing/suit/chameleon, /obj/item/clothing/suit/space/space_ninja,
/obj/item/clothing/suit/golem, /obj/item/clothing/suit/suit, /obj/item/clothing/suit/cyborg_suit, /obj/item/clothing/suit/justice,
/obj/item/clothing/suit/golem, /obj/item/clothing/suit/cyborg_suit, /obj/item/clothing/suit/justice,
/obj/item/clothing/suit/greatcoat)//Prevent infinite loops and bad suits.
for(var/U in typesof(/obj/item/clothing/suit)-blocked)
var/obj/item/clothing/suit/V = new U
@@ -257,7 +257,7 @@
icon_state = A.icon_state
item_state = A.item_state
item_color = A.item_color
//so our overlays update.
if (ismob(src.loc))
var/mob/M = src.loc
@@ -464,7 +464,7 @@
icon_state = A.icon_state
item_state = A.item_state
flags_inv = A.flags_inv
//so our overlays update.
if (ismob(src.loc))
var/mob/M = src.loc
+3 -1
View File
@@ -865,11 +865,13 @@
icon_state = "mitlabcoat"
item_state = "mitlabcoat"
/obj/item/clothing/suit/storage/labcoat/fluff/epsilon //Devildabeast: Looping Song
/obj/item/clothing/suit/storage/toggle/labcoat/fluff/epsilon //Devildabeast: Looping Song
name = "e UMi labcoat"
desc = "A suit that protects against minor chemical spills. Has a black stripe on the shoulder. The abbreviation \"e UMi\" is written on the back in bold text."
icon = 'icons/obj/custom_items.dmi'
icon_state = "labcoat_black_open"
icon_open = "labcoat_black_open"
icon_closed = "labcoat_black"
item_state = "labcoat_black"
/obj/item/clothing/suit/storage/det_suit/fluff/leatherjack //atomicdog92: Seth Sealis
+20 -6
View File
@@ -302,8 +302,8 @@
job_master.AssignRole(src, rank, 1)
var/mob/living/carbon/human/character = create_character() //creates the human and transfers vars and mind
job_master.EquipRank(character, rank, 1) //equips the human
var/mob/living/character = create_character() //creates the human and transfers vars and mind
character = job_master.EquipRank(character, rank, 1) //equips the human
UpdateFactionList(character)
EquipCustomItems(character)
@@ -315,8 +315,13 @@
S = spawntypes[spawning_at]
if(S && istype(S))
character.loc = pick(S.turfs)
join_message = S.msg
if(S.check_job_spawning(rank))
character.loc = pick(S.turfs)
join_message = S.msg
else
character << "Your chosen spawnpoint ([S.display_name]) is unavailable for your chosen job. Spawning you at the Arrivals shuttle instead."
character.loc = pick(latejoin)
join_message = "has arrived on the station"
else
character.loc = pick(latejoin)
join_message = "has arrived on the station"
@@ -338,9 +343,9 @@
//Grab some data from the character prefs for use in random news procs.
AnnounceArrival(character, rank, join_message)
else
character.Robotize()
AnnounceCyborg(character, rank, join_message)
del(src)
proc/AnnounceArrival(var/mob/living/carbon/human/character, var/rank, var/join_message)
@@ -351,6 +356,15 @@
a.autosay("[character.real_name],[rank ? " [rank]," : " visitor," ] [join_message ? join_message : "has arrived on the station"].", "Arrivals Announcement Computer")
del(a)
proc/AnnounceCyborg(var/mob/living/character, var/rank, var/join_message)
if (ticker.current_state == GAME_STATE_PLAYING)
var/obj/item/device/radio/intercom/a = new /obj/item/device/radio/intercom(null)// BS12 EDIT Arrivals Announcement Computer, rather than the AI.
if(character.mind.role_alt_title)
rank = character.mind.role_alt_title
// can't use their name here, since cyborg namepicking is done post-spawn, so we'll just say "A new Cyborg has arrived"/"A new Android has arrived"/etc.
a.autosay("A new[rank ? " [rank]" : " visitor" ] [join_message ? join_message : "has arrived on the station"].", "Arrivals Announcement Computer")
del(a)
proc/LateChoices()
var/mills = world.time // 1/10 of a second, not real milliseconds but whatever
//var/secs = ((mills % 36000) % 600) / 10 //Not really needed, but I'll leave it here for refrence.. or something