mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-23 20:16:55 +01:00
Merge remote-tracking branch 'upstream/master' into remove-weapons
This commit is contained in:
@@ -57,6 +57,7 @@ Pipelines + Other Objects -> Pipe network
|
||||
/obj/machinery/atmospherics/Destroy()
|
||||
QDEL_NULL(stored)
|
||||
SSair.atmos_machinery -= src
|
||||
SSair.deferred_pipenet_rebuilds -= src
|
||||
for(var/mob/living/L in src) //ventcrawling is serious business
|
||||
L.remove_ventcrawl()
|
||||
L.forceMove(get_turf(src))
|
||||
@@ -143,12 +144,13 @@ Pipelines + Other Objects -> Pipe network
|
||||
/obj/machinery/atmospherics/proc/replacePipenet()
|
||||
return
|
||||
|
||||
/obj/machinery/atmospherics/proc/build_network()
|
||||
/obj/machinery/atmospherics/proc/build_network(remove_deferral = FALSE)
|
||||
// Called to build a network from this node
|
||||
return
|
||||
if(remove_deferral)
|
||||
SSair.deferred_pipenet_rebuilds -= src
|
||||
|
||||
/obj/machinery/atmospherics/proc/defer_build_network()
|
||||
deferred_pipenet_rebuilds += src
|
||||
SSair.deferred_pipenet_rebuilds += src
|
||||
|
||||
/obj/machinery/atmospherics/proc/disconnect(obj/machinery/atmospherics/reference)
|
||||
return
|
||||
|
||||
@@ -67,7 +67,7 @@
|
||||
update_icon()
|
||||
update_underlays()
|
||||
|
||||
/obj/machinery/atmospherics/binary/build_network()
|
||||
/obj/machinery/atmospherics/binary/build_network(remove_deferral = FALSE)
|
||||
if(!parent1)
|
||||
parent1 = new /datum/pipeline()
|
||||
parent1.build_pipeline(src)
|
||||
@@ -75,6 +75,7 @@
|
||||
if(!parent2)
|
||||
parent2 = new /datum/pipeline()
|
||||
parent2.build_pipeline(src)
|
||||
..()
|
||||
|
||||
/obj/machinery/atmospherics/binary/disconnect(obj/machinery/atmospherics/reference)
|
||||
if(reference == node1)
|
||||
|
||||
@@ -237,11 +237,12 @@
|
||||
return
|
||||
|
||||
// Pipenet procs
|
||||
/obj/machinery/atmospherics/omni/build_network()
|
||||
/obj/machinery/atmospherics/omni/build_network(remove_deferral = FALSE)
|
||||
for(var/datum/omni_port/P in ports)
|
||||
if(!P.parent)
|
||||
P.parent = new /datum/pipeline()
|
||||
P.parent.build_pipeline(src)
|
||||
..()
|
||||
|
||||
/obj/machinery/atmospherics/omni/disconnect(obj/machinery/atmospherics/reference)
|
||||
for(var/datum/omni_port/P in ports)
|
||||
|
||||
@@ -104,7 +104,7 @@
|
||||
update_icon()
|
||||
update_underlays()
|
||||
|
||||
/obj/machinery/atmospherics/trinary/build_network()
|
||||
/obj/machinery/atmospherics/trinary/build_network(remove_deferral = FALSE)
|
||||
if(!parent1)
|
||||
parent1 = new /datum/pipeline()
|
||||
parent1.build_pipeline(src)
|
||||
@@ -116,6 +116,7 @@
|
||||
if(!parent3)
|
||||
parent3 = new /datum/pipeline()
|
||||
parent3.build_pipeline(src)
|
||||
..()
|
||||
|
||||
/obj/machinery/atmospherics/trinary/disconnect(obj/machinery/atmospherics/reference)
|
||||
if(reference == node1)
|
||||
|
||||
@@ -50,10 +50,11 @@
|
||||
build_network()
|
||||
. = 1
|
||||
|
||||
/obj/machinery/atmospherics/unary/build_network()
|
||||
/obj/machinery/atmospherics/unary/build_network(remove_deferral = FALSE)
|
||||
if(!parent)
|
||||
parent = new /datum/pipeline()
|
||||
parent.build_pipeline(src)
|
||||
..()
|
||||
|
||||
/obj/machinery/atmospherics/unary/disconnect(obj/machinery/atmospherics/reference)
|
||||
if(reference == node)
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
var/global/list/deferred_pipenet_rebuilds = list()
|
||||
|
||||
/datum/pipeline
|
||||
var/datum/gas_mixture/air
|
||||
var/list/datum/gas_mixture/other_airs = list()
|
||||
|
||||
@@ -66,10 +66,11 @@
|
||||
return 0
|
||||
return parent.air
|
||||
|
||||
/obj/machinery/atmospherics/pipe/build_network()
|
||||
/obj/machinery/atmospherics/pipe/build_network(remove_deferral = FALSE)
|
||||
if(!parent)
|
||||
parent = new /datum/pipeline()
|
||||
parent.build_pipeline(src)
|
||||
..()
|
||||
|
||||
/obj/machinery/atmospherics/pipe/setPipenet(datum/pipeline/P)
|
||||
parent = P
|
||||
|
||||
@@ -27,6 +27,7 @@ SUBSYSTEM_DEF(air)
|
||||
var/list/excited_groups = list()
|
||||
var/list/active_turfs = list()
|
||||
var/list/hotspots = list()
|
||||
var/list/deferred_pipenet_rebuilds = list()
|
||||
var/list/networks = list()
|
||||
var/list/atmos_machinery = list()
|
||||
var/list/pipe_init_dirs_cache = list()
|
||||
@@ -39,7 +40,7 @@ SUBSYSTEM_DEF(air)
|
||||
|
||||
|
||||
var/list/currentrun = list()
|
||||
var/currentpart = SSAIR_PIPENETS
|
||||
var/currentpart = SSAIR_DEFERREDPIPENETS
|
||||
|
||||
/datum/controller/subsystem/air/stat_entry(msg)
|
||||
msg += "C:{"
|
||||
@@ -141,7 +142,7 @@ SUBSYSTEM_DEF(air)
|
||||
if(state != SS_RUNNING)
|
||||
return
|
||||
resumed = 0
|
||||
currentpart = SSAIR_PIPENETS
|
||||
currentpart = SSAIR_DEFERREDPIPENETS
|
||||
|
||||
/datum/controller/subsystem/air/proc/process_deferred_pipenets(resumed = 0)
|
||||
if(!resumed)
|
||||
@@ -152,7 +153,7 @@ SUBSYSTEM_DEF(air)
|
||||
var/obj/machinery/atmospherics/A = currentrun[currentrun.len]
|
||||
currentrun.len--
|
||||
if(A)
|
||||
A.build_network()
|
||||
A.build_network(remove_deferral = TRUE)
|
||||
else
|
||||
deferred_pipenet_rebuilds.Remove(A)
|
||||
if(MC_TICK_CHECK)
|
||||
|
||||
+136
-131
@@ -468,137 +468,142 @@ var/record_id_num = 1001
|
||||
|
||||
|
||||
var/icon/clothes_s = null
|
||||
switch(H.mind.assigned_role)
|
||||
if("Head of Personnel")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "hop_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
|
||||
if("Nanotrasen Representative")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "officer_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "laceups"), ICON_UNDERLAY)
|
||||
if("Blueshield")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "officer_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/hands.dmi', "swat_gl"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "blueshield"), ICON_OVERLAY)
|
||||
if("Magistrate")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "really_black_suit_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "laceups"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "judge"), ICON_OVERLAY)
|
||||
if("Bartender")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "ba_suit_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
if("Botanist")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "hydroponics_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
if("Chef")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "chef_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
if("Janitor")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "janitor_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
if("Librarian")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "red_suit_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
if("Quartermaster")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "qm_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
|
||||
if("Cargo Technician")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "cargotech_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
if("Shaft Miner")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "miner_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
if("Lawyer")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "internalaffairs_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
|
||||
if("Chaplain")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "chapblack_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
if("Research Director")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "director_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_OVERLAY)
|
||||
if("Scientist")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "toxinswhite_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_tox_open"), ICON_OVERLAY)
|
||||
if("Chemist")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "chemistrywhite_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_chem_open"), ICON_OVERLAY)
|
||||
if("Chief Medical Officer")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "cmo_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_cmo_open"), ICON_OVERLAY)
|
||||
if("Medical Doctor")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "medical_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_OVERLAY)
|
||||
if("Geneticist")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "geneticswhite_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_gen_open"), ICON_OVERLAY)
|
||||
if("Virologist")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "virologywhite_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_vir_open"), ICON_OVERLAY)
|
||||
if("Psychiatrist")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "psych_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "laceups"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_UNDERLAY)
|
||||
if("Paramedic")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "paramedic_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
if("Captain")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "captain_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
|
||||
if("Head of Security")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "hosred_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY)
|
||||
if("Warden")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "warden_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY)
|
||||
if("Detective")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "detective_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "detective"), ICON_OVERLAY)
|
||||
if("Security Pod Pilot")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "secred_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "bomber"), ICON_OVERLAY)
|
||||
if("Brig Physician")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "medical_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "fr_jacket_open"), ICON_OVERLAY)
|
||||
if("Security Officer")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "secred_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY)
|
||||
if("Chief Engineer")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "chief_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY)
|
||||
if("Station Engineer")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "engine_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "orange"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY)
|
||||
if("Life Support Specialist")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "atmos_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY)
|
||||
if("Mechanic")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "mechanic_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "orange"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY)
|
||||
if("Roboticist")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "robotics_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_OVERLAY)
|
||||
else if(H.mind.assigned_role in get_all_centcom_jobs())
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "officer_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "laceups"), ICON_UNDERLAY)
|
||||
else
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "grey_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
if(H.mind)
|
||||
switch(H.mind.assigned_role)
|
||||
if("Head of Personnel")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "hop_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
|
||||
if("Nanotrasen Representative")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "officer_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "laceups"), ICON_UNDERLAY)
|
||||
if("Blueshield")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "officer_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/hands.dmi', "swat_gl"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "blueshield"), ICON_OVERLAY)
|
||||
if("Magistrate")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "really_black_suit_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "laceups"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "judge"), ICON_OVERLAY)
|
||||
if("Bartender")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "ba_suit_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
if("Botanist")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "hydroponics_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
if("Chef")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "chef_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
if("Janitor")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "janitor_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
if("Librarian")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "red_suit_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
if("Quartermaster")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "qm_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
|
||||
if("Cargo Technician")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "cargotech_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
if("Shaft Miner")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "miner_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
if("Lawyer")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "internalaffairs_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
|
||||
if("Chaplain")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "chapblack_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
if("Research Director")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "director_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_OVERLAY)
|
||||
if("Scientist")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "toxinswhite_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_tox_open"), ICON_OVERLAY)
|
||||
if("Chemist")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "chemistrywhite_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_chem_open"), ICON_OVERLAY)
|
||||
if("Chief Medical Officer")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "cmo_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_cmo_open"), ICON_OVERLAY)
|
||||
if("Medical Doctor")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "medical_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_OVERLAY)
|
||||
if("Geneticist")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "geneticswhite_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_gen_open"), ICON_OVERLAY)
|
||||
if("Virologist")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "virologywhite_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_vir_open"), ICON_OVERLAY)
|
||||
if("Psychiatrist")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "psych_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "laceups"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_UNDERLAY)
|
||||
if("Paramedic")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "paramedic_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
if("Captain")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "captain_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
|
||||
if("Head of Security")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "hosred_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY)
|
||||
if("Warden")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "warden_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY)
|
||||
if("Detective")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "detective_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "detective"), ICON_OVERLAY)
|
||||
if("Security Pod Pilot")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "secred_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "bomber"), ICON_OVERLAY)
|
||||
if("Brig Physician")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "medical_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "fr_jacket_open"), ICON_OVERLAY)
|
||||
if("Security Officer")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "secred_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY)
|
||||
if("Chief Engineer")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "chief_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY)
|
||||
if("Station Engineer")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "engine_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "orange"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY)
|
||||
if("Life Support Specialist")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "atmos_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY)
|
||||
if("Mechanic")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "mechanic_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "orange"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY)
|
||||
if("Roboticist")
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "robotics_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_OVERLAY)
|
||||
else if(H.mind.assigned_role in get_all_centcom_jobs())
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "officer_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "laceups"), ICON_UNDERLAY)
|
||||
else
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "grey_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
else
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "grey_s")
|
||||
clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY)
|
||||
|
||||
|
||||
preview_icon.Blend(face_s, ICON_OVERLAY) // Why do we do this twice
|
||||
if(clothes_s)
|
||||
|
||||
@@ -22,6 +22,8 @@
|
||||
var/pda = null
|
||||
var/internals_slot = null //ID of slot containing a gas tank
|
||||
var/list/backpack_contents = list() // In the list(path=count,otherpath=count) format
|
||||
var/list/implants = null
|
||||
var/list/cybernetic_implants = null
|
||||
|
||||
|
||||
/datum/outfit/proc/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
@@ -89,6 +91,13 @@
|
||||
var/number = backpack_contents[path]
|
||||
for(var/i = 0, i < number, i++)
|
||||
equip_item(H, path, slot_in_backpack)
|
||||
if(implants)
|
||||
for(var/path in implants)
|
||||
var/obj/item/implant/I = new path(H)
|
||||
I.implant(H)
|
||||
for(var/path in cybernetic_implants)
|
||||
var/obj/item/organ/internal/O = new path(H)
|
||||
O.insert(H)
|
||||
|
||||
post_equip(H, visualsOnly)
|
||||
|
||||
|
||||
+132
-144
@@ -1,6 +1,13 @@
|
||||
// Used for 'select equipment'
|
||||
// code/modules/admin/verbs/debug.dm 566
|
||||
|
||||
/datum/outfit/admin/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
. = ..()
|
||||
if(!visualsOnly)
|
||||
H.mind.assigned_role = name
|
||||
H.job = name
|
||||
|
||||
|
||||
/proc/apply_to_card(obj/item/card/id/I, mob/living/carbon/human/H, list/access = list(), rank, special_icon)
|
||||
if(!istype(I) || !istype(H))
|
||||
return 0
|
||||
@@ -95,6 +102,7 @@
|
||||
mask = /obj/item/clothing/mask/gas/syndicate
|
||||
l_ear = /obj/item/device/radio/headset/syndicate/alt
|
||||
glasses = /obj/item/clothing/glasses/night
|
||||
shoes = /obj/item/clothing/shoes/magboots/syndie
|
||||
l_pocket = /obj/item/pinpointer/advpinpointer
|
||||
l_hand = /obj/item/tank/jetpack/oxygen/harness
|
||||
|
||||
@@ -107,6 +115,7 @@
|
||||
/obj/item/grenade/plastic/c4 = 1,
|
||||
/obj/item/reagent_containers/food/snacks/syndidonkpocket = 1,
|
||||
/obj/item/device/flashlight = 1,
|
||||
/obj/item/clothing/shoes/combat = 1
|
||||
)
|
||||
|
||||
/datum/outfit/admin/syndicate/operative/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
@@ -131,15 +140,21 @@
|
||||
/datum/outfit/admin/syndicate/officer
|
||||
name = "Syndicate Officer"
|
||||
|
||||
head = /obj/item/clothing/head/beret
|
||||
mask = /obj/item/clothing/mask/cigarette/cigar/havana
|
||||
belt = /obj/item/gun/projectile/automatic/pistol/deagle/camo
|
||||
l_ear = /obj/item/device/radio/headset/syndicate/alt
|
||||
l_pocket = /obj/item/pinpointer/advpinpointer
|
||||
|
||||
backpack_contents = list(
|
||||
/obj/item/storage/box/engineer = 1,
|
||||
/obj/item/device/flashlight = 1,
|
||||
/obj/item/reagent_containers/food/pill/initropidril = 1,
|
||||
/obj/item/reagent_containers/food/snacks/syndidonkpocket = 1,
|
||||
/obj/item/ammo_box/magazine/m50 = 2)
|
||||
/obj/item/ammo_box/magazine/m50 = 2,
|
||||
/obj/item/clothing/shoes/magboots/syndie/advance = 1,
|
||||
/obj/item/lighter/zippo/gonzofist = 1
|
||||
)
|
||||
|
||||
id_icon = "commander"
|
||||
id_access = "Syndicate Operative Leader"
|
||||
@@ -152,22 +167,11 @@
|
||||
|
||||
var/obj/item/implant/uplink/U = new /obj/item/implant/uplink(H)
|
||||
U.implant(H)
|
||||
U.hidden_uplink.uses = 500//a measly 1000 TC along with the uplink in the pocket
|
||||
U.hidden_uplink.uses = 500
|
||||
|
||||
var/obj/item/implant/dust/D = new(H)
|
||||
D.implant(H)
|
||||
|
||||
/datum/outfit/admin/syndicate/bomber
|
||||
name = "Syndicate Bomber"
|
||||
|
||||
backpack_contents = list(
|
||||
/obj/item/storage/box/engineer = 1,
|
||||
/obj/item/device/flashlight = 1,
|
||||
/obj/item/card/emag = 1,
|
||||
/obj/item/device/radio/beacon/syndicate/bomb = 2,
|
||||
/obj/item/device/syndicatedetonator = 1,
|
||||
/obj/item/reagent_containers/food/snacks/syndidonkpocket = 1
|
||||
)
|
||||
|
||||
/datum/outfit/admin/nt_vip
|
||||
name = "VIP Guest"
|
||||
@@ -193,114 +197,6 @@
|
||||
if(istype(I))
|
||||
apply_to_card(I, H, get_centcom_access("VIP Guest"), "VIP Guest")
|
||||
|
||||
/datum/outfit/admin/nt_navy_officer
|
||||
name = "NT Navy Officer"
|
||||
|
||||
uniform = /obj/item/clothing/under/rank/centcom/officer
|
||||
back = /obj/item/storage/backpack/satchel
|
||||
belt = /obj/item/gun/energy/pulse/pistol
|
||||
gloves = /obj/item/clothing/gloves/color/white
|
||||
shoes = /obj/item/clothing/shoes/centcom
|
||||
head = /obj/item/clothing/head/beret/centcom/officer
|
||||
l_ear = /obj/item/device/radio/headset/centcom
|
||||
glasses = /obj/item/clothing/glasses/hud/security/sunglasses
|
||||
id = /obj/item/card/id/centcom
|
||||
pda = /obj/item/device/pda/centcom
|
||||
backpack_contents = list(
|
||||
/obj/item/storage/box/engineer = 1,
|
||||
/obj/item/implanter/dust = 1,
|
||||
/obj/item/implanter/death_alarm = 1
|
||||
)
|
||||
|
||||
/datum/outfit/admin/nt_navy_officer/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
. = ..()
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
var/obj/item/card/id/I = H.wear_id
|
||||
if(istype(I))
|
||||
apply_to_card(I, H, get_centcom_access("Nanotrasen Navy Officer"), "Nanotrasen Navy Officer")
|
||||
|
||||
var/obj/item/implant/L = new /obj/item/implant/mindshield(H)
|
||||
L.implant(H)
|
||||
|
||||
|
||||
/datum/outfit/admin/nt_special_ops_officer
|
||||
name = "NT Special Ops Officer"
|
||||
|
||||
uniform = /obj/item/clothing/under/syndicate/combat
|
||||
suit = /obj/item/clothing/suit/space/deathsquad/officer
|
||||
back = /obj/item/storage/backpack/security
|
||||
belt = /obj/item/gun/energy/pulse/pistol/m1911
|
||||
gloves = /obj/item/clothing/gloves/combat
|
||||
shoes = /obj/item/clothing/shoes/combat
|
||||
head = /obj/item/clothing/head/helmet/space/deathsquad/beret
|
||||
mask = /obj/item/clothing/mask/cigarette/cigar/cohiba
|
||||
l_ear = /obj/item/device/radio/headset/centcom
|
||||
glasses = /obj/item/clothing/glasses/thermal/cyber
|
||||
id = /obj/item/card/id/centcom
|
||||
r_pocket = /obj/item/storage/box/matches
|
||||
pda = /obj/item/device/pda/centcom
|
||||
backpack_contents = list(
|
||||
/obj/item/storage/box/engineer = 1,
|
||||
/obj/item/tank/emergency_oxygen/double/full = 1,
|
||||
/obj/item/implanter/dust = 1,
|
||||
/obj/item/implanter/death_alarm = 1,
|
||||
/obj/item/twohanded/dualsaber/red = 1,
|
||||
/obj/item/pinpointer/advpinpointer = 1,
|
||||
/obj/item/reagent_containers/hypospray/combat/nanites = 1,
|
||||
/obj/item/storage/box/zipties = 1,
|
||||
/obj/item/clothing/shoes/magboots/advance = 1,
|
||||
/obj/item/implanter/mindshield = 1,
|
||||
)
|
||||
|
||||
/datum/outfit/admin/nt_special_ops_officer/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
. = ..()
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
var/obj/item/card/id/I = H.wear_id
|
||||
if(istype(I))
|
||||
apply_to_card(I, H, get_centcom_access("Special Operations Officer"), "Special Operations Officer")
|
||||
|
||||
/datum/outfit/admin/nt_special_ops_formal
|
||||
name = "NT Special Ops Formal"
|
||||
|
||||
uniform = /obj/item/clothing/under/rank/centcom/captain
|
||||
back = /obj/item/storage/backpack/satchel
|
||||
belt = /obj/item/gun/energy/pulse/pistol/m1911
|
||||
gloves = /obj/item/clothing/gloves/combat
|
||||
shoes = /obj/item/clothing/shoes/combat
|
||||
head = /obj/item/clothing/head/helmet/space/deathsquad/beret
|
||||
mask = /obj/item/clothing/mask/cigarette/cigar/cohiba
|
||||
l_ear = /obj/item/device/radio/headset/centcom
|
||||
glasses = /obj/item/clothing/glasses/thermal/cyber
|
||||
id = /obj/item/card/id/centcom
|
||||
r_pocket = /obj/item/storage/box/matches
|
||||
pda = /obj/item/device/pda/centcom
|
||||
backpack_contents = list(
|
||||
/obj/item/storage/box/engineer = 1,
|
||||
/obj/item/melee/classic_baton/telescopic = 1,
|
||||
/obj/item/implanter/dust = 1,
|
||||
/obj/item/implanter/death_alarm = 1
|
||||
)
|
||||
|
||||
/datum/outfit/admin/nt_special_ops_formal/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
. = ..()
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
var/obj/item/device/pda/PDA = H.wear_pda
|
||||
if(istype(PDA))
|
||||
PDA.owner = H.real_name
|
||||
PDA.ownjob = "Special Operations Officer"
|
||||
PDA.icon_state = "pda-syndi"
|
||||
PDA.name = "PDA-[H.real_name] ([PDA.ownjob])"
|
||||
PDA.desc = "A portable microcomputer by Thinktronic Systems, LTD. This is model is a special edition designed for military field work."
|
||||
|
||||
var/obj/item/card/id/I = H.wear_id
|
||||
if(istype(I))
|
||||
apply_to_card(I, H, get_centcom_access("Special Operations Officer"), "Special Operations Officer")
|
||||
|
||||
/datum/outfit/admin/nt_navy_captain
|
||||
name = "NT Navy Captain"
|
||||
@@ -316,10 +212,13 @@
|
||||
id = /obj/item/card/id/centcom
|
||||
pda = /obj/item/device/pda/centcom
|
||||
backpack_contents = list(
|
||||
/obj/item/storage/box/engineer = 1,
|
||||
/obj/item/implanter/dust = 1,
|
||||
/obj/item/storage/box/centcomofficer = 1,
|
||||
/obj/item/implanter/death_alarm = 1
|
||||
)
|
||||
implants = list(
|
||||
/obj/item/implant/mindshield,
|
||||
/obj/item/implant/dust
|
||||
)
|
||||
|
||||
/datum/outfit/admin/nt_navy_captain/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
. = ..()
|
||||
@@ -330,9 +229,6 @@
|
||||
if(istype(I))
|
||||
apply_to_card(I, H, get_centcom_access("Nanotrasen Navy Captain"), "Nanotrasen Navy Captain")
|
||||
|
||||
var/obj/item/implant/L = new /obj/item/implant/mindshield(H)
|
||||
L.implant(H)
|
||||
|
||||
/datum/outfit/admin/nt_diplomat
|
||||
name = "NT Diplomat"
|
||||
|
||||
@@ -347,9 +243,12 @@
|
||||
pda = /obj/item/device/pda/centcom
|
||||
backpack_contents = list(
|
||||
/obj/item/storage/box/survival = 1,
|
||||
/obj/item/implanter/dust = 1,
|
||||
/obj/item/implanter/death_alarm = 1,
|
||||
)
|
||||
implants = list(
|
||||
/obj/item/implant/mindshield,
|
||||
/obj/item/implant/dust
|
||||
)
|
||||
|
||||
/datum/outfit/admin/nt_diplomat/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
. = ..()
|
||||
@@ -360,6 +259,57 @@
|
||||
if(istype(I))
|
||||
apply_to_card(I, H, get_centcom_access("Nanotrasen Navy Representative"), "Nanotrasen Diplomat")
|
||||
|
||||
|
||||
/datum/outfit/admin/nt_undercover
|
||||
name = "NT Undercover Operative"
|
||||
// Disguised NT special forces, sent to quietly eliminate mutinous people in high positions (e.g: captain)
|
||||
|
||||
uniform = /obj/item/clothing/under/chameleon
|
||||
back = /obj/item/storage/backpack
|
||||
belt = /obj/item/storage/belt/utility/full/multitool
|
||||
gloves = /obj/item/clothing/gloves/combat
|
||||
shoes = /obj/item/clothing/shoes/syndigaloshes
|
||||
l_ear = /obj/item/device/radio/headset/heads/captain
|
||||
id = /obj/item/card/id/syndicate
|
||||
pda = /obj/item/device/pda
|
||||
backpack_contents = list(
|
||||
/obj/item/storage/box/engineer = 1,
|
||||
/obj/item/device/flashlight = 1,
|
||||
/obj/item/gun/projectile/automatic/proto = 1, // NT saber SMG
|
||||
/obj/item/suppressor = 1, // silencer for SMG
|
||||
/obj/item/ammo_box/magazine/smgm9mm = 3, // SMG ammo
|
||||
/obj/item/door_remote/omni = 1,
|
||||
/obj/item/implanter/mindshield = 1, // not implanted by default, as that would make them suspicious
|
||||
/obj/item/implanter/storage = 1 // do not auto-implant this, that causes a bug
|
||||
)
|
||||
implants = list(
|
||||
/obj/item/implant/dust
|
||||
)
|
||||
cybernetic_implants = list(
|
||||
/obj/item/organ/internal/cyberimp/eyes/hud/security,
|
||||
/obj/item/organ/internal/cyberimp/eyes/xray,
|
||||
/obj/item/organ/internal/cyberimp/brain/anti_drop,
|
||||
/obj/item/organ/internal/cyberimp/brain/anti_stun,
|
||||
/obj/item/organ/internal/cyberimp/chest/nutriment/plus
|
||||
)
|
||||
|
||||
/datum/outfit/admin/nt_undercover/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
. = ..()
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
var/obj/item/card/id/I = H.wear_id
|
||||
if(istype(I))
|
||||
apply_to_card(I, H, get_all_accesses(), "Civilian")
|
||||
I.icon_state = "deathsquad"
|
||||
|
||||
|
||||
var/obj/item/device/radio/R = H.l_ear
|
||||
if(istype(R))
|
||||
R.name = "radio headset"
|
||||
R.icon_state = "headset"
|
||||
|
||||
|
||||
/datum/outfit/admin/death_commando
|
||||
name = "NT Death Commando"
|
||||
|
||||
@@ -485,12 +435,10 @@
|
||||
backpack_contents = list(
|
||||
/obj/item/storage/box/survival = 1,
|
||||
/obj/item/reagent_containers/food/drinks/bottle/bottleofnothing = 1,
|
||||
/obj/item/storage/box/syndie_kit/caneshotgun = 1,
|
||||
/obj/item/toy/crayon/mime = 1,
|
||||
/obj/item/gun/projectile/automatic/pistol = 1,
|
||||
/obj/item/suppressor = 1,
|
||||
/obj/item/storage/box/syndie_kit/caneshotgun = 1,
|
||||
/obj/item/ammo_casing/shotgun/incendiary/dragonsbreath = 2,
|
||||
/obj/item/pen/sleepy = 1,
|
||||
/obj/item/device/radio/uplink = 1,
|
||||
/obj/item/reagent_containers/food/snacks/syndidonkpocket = 1,
|
||||
/obj/item/device/flashlight = 1
|
||||
)
|
||||
@@ -701,7 +649,9 @@
|
||||
backpack_contents = list(
|
||||
/obj/item/storage/box/survival = 1,
|
||||
/obj/item/kitchen/knife/combat = 1,
|
||||
/obj/item/ammo_box/magazine/m556 = 3)
|
||||
/obj/item/ammo_box/magazine/m556 = 3,
|
||||
/obj/item/clothing/shoes/magboots = 1
|
||||
)
|
||||
|
||||
|
||||
/datum/outfit/admin/solgov/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
@@ -725,7 +675,9 @@
|
||||
/obj/item/storage/box/survival = 1,
|
||||
/obj/item/kitchen/knife/combat = 1,
|
||||
/obj/item/melee/classic_baton/telescopic = 1,
|
||||
/obj/item/ammo_box/magazine/m50 = 2)
|
||||
/obj/item/ammo_box/magazine/m50 = 2,
|
||||
/obj/item/clothing/shoes/magboots/advance = 1
|
||||
)
|
||||
|
||||
/datum/outfit/admin/chrono
|
||||
name = "Chrono Legionnaire"
|
||||
@@ -734,7 +686,7 @@
|
||||
suit = /obj/item/clothing/suit/space/chronos
|
||||
back = /obj/item/chrono_eraser
|
||||
gloves = /obj/item/clothing/gloves/combat
|
||||
shoes = /obj/item/clothing/shoes/combat
|
||||
shoes = /obj/item/clothing/shoes/magboots/advance
|
||||
head = /obj/item/clothing/head/helmet/space/chronos
|
||||
mask = /obj/item/clothing/mask/gas/syndicate
|
||||
glasses = /obj/item/clothing/glasses/night
|
||||
@@ -756,7 +708,7 @@
|
||||
uniform = /obj/item/clothing/under/color/grey
|
||||
suit = /obj/item/clothing/suit/space
|
||||
back = /obj/item/tank/jetpack/oxygen
|
||||
shoes = /obj/item/clothing/shoes/black
|
||||
shoes = /obj/item/clothing/shoes/magboots
|
||||
head = /obj/item/clothing/head/helmet/space
|
||||
mask = /obj/item/clothing/mask/breath
|
||||
l_ear = /obj/item/device/radio/headset
|
||||
@@ -779,6 +731,7 @@
|
||||
/datum/outfit/admin/hardsuit
|
||||
back = /obj/item/tank/jetpack/oxygen
|
||||
mask = /obj/item/clothing/mask/breath
|
||||
shoes = /obj/item/clothing/shoes/magboots
|
||||
id = /obj/item/card/id
|
||||
|
||||
/datum/outfit/admin/hardsuit/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
@@ -804,6 +757,7 @@
|
||||
name = "CE Hardsuit"
|
||||
suit = /obj/item/clothing/suit/space/hardsuit/elite
|
||||
head = /obj/item/clothing/head/helmet/space/hardsuit/elite
|
||||
shoes = /obj/item/clothing/shoes/magboots/advance
|
||||
|
||||
/datum/outfit/admin/hardsuit/mining
|
||||
name = "Mining Hardsuit"
|
||||
@@ -814,11 +768,13 @@
|
||||
name = "Syndi Hardsuit"
|
||||
suit = /obj/item/clothing/suit/space/hardsuit/syndi
|
||||
head = /obj/item/clothing/head/helmet/space/hardsuit/syndi
|
||||
shoes = /obj/item/clothing/shoes/magboots/syndie
|
||||
|
||||
/datum/outfit/admin/hardsuit/wizard
|
||||
name = "Wizard Hardsuit"
|
||||
suit = /obj/item/clothing/suit/space/hardsuit/wizard
|
||||
head = /obj/item/clothing/head/helmet/space/hardsuit/wizard
|
||||
shoes = /obj/item/clothing/shoes/magboots
|
||||
|
||||
/datum/outfit/admin/hardsuit/medical
|
||||
name = "Medical Hardsuit"
|
||||
@@ -996,15 +952,15 @@
|
||||
/obj/item/storage/box/survival = 1,
|
||||
/obj/item/device/flashlight = 1
|
||||
)
|
||||
implants = list(
|
||||
/obj/item/implant/dust
|
||||
)
|
||||
|
||||
/datum/outfit/admin/assassin/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
. = ..()
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
var/obj/item/implant/dust/D = new /obj/item/implant/dust(H)
|
||||
D.implant(H)
|
||||
|
||||
var/obj/item/device/pda/PDA = H.wear_pda
|
||||
if(istype(PDA))
|
||||
PDA.owner = H.real_name
|
||||
@@ -1034,7 +990,10 @@
|
||||
/obj/item/suppressor = 1,
|
||||
/obj/item/card/emag = 1,
|
||||
/obj/item/device/flashlight = 1,
|
||||
/obj/item/implanter/storage = 1
|
||||
/obj/item/implanter/storage = 1 // do not auto-implant this, that causes a bug
|
||||
)
|
||||
implants = list(
|
||||
/obj/item/implant/dust
|
||||
)
|
||||
|
||||
/datum/outfit/admin/spy/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
@@ -1046,9 +1005,6 @@
|
||||
if(istype(G))
|
||||
G.name = "black gloves"
|
||||
|
||||
var/obj/item/implant/dust/D = new /obj/item/implant/dust(H)
|
||||
D.implant(H)
|
||||
|
||||
var/obj/item/device/pda/PDA = H.wear_pda
|
||||
if(istype(PDA))
|
||||
PDA.owner = H.real_name
|
||||
@@ -1089,6 +1045,7 @@
|
||||
if(istype(I))
|
||||
apply_to_card(I, H, get_all_accesses(), "Dark Lord", "syndie")
|
||||
|
||||
|
||||
/datum/outfit/admin/wizard
|
||||
uniform = /obj/item/clothing/under/color/lightpurple
|
||||
suit = /obj/item/clothing/suit/wizrobe
|
||||
@@ -1130,6 +1087,36 @@
|
||||
shoes = /obj/item/clothing/shoes/sandal/marisa
|
||||
head = /obj/item/clothing/head/wizard/marisa
|
||||
|
||||
/datum/outfit/admin/wizard/arch
|
||||
name = "Arch Wizard"
|
||||
|
||||
suit = /obj/item/clothing/suit/wizrobe/magusred
|
||||
head = /obj/item/clothing/head/wizard/magus
|
||||
belt = /obj/item/storage/belt/wands/full
|
||||
l_hand = null
|
||||
backpack_contents = list(
|
||||
/obj/item/storage/box/engineer = 1,
|
||||
/obj/item/clothing/suit/space/hardsuit/wizard = 1,
|
||||
/obj/item/clothing/head/helmet/space/hardsuit/wizard = 1,
|
||||
/obj/item/clothing/shoes/magboots = 1,
|
||||
/obj/item/kitchen/knife/ritual = 1,
|
||||
/obj/item/clothing/suit/wizrobe/red = 1,
|
||||
/obj/item/clothing/head/wizard/red = 1
|
||||
)
|
||||
|
||||
/datum/outfit/admin/wizard/arch/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
. = ..()
|
||||
if(visualsOnly)
|
||||
return
|
||||
var/obj/item/spellbook/B = H.r_hand
|
||||
if(istype(B))
|
||||
B.owner = H // force-bind it so it can never be stolen, no matter what.
|
||||
B.name = "Archwizard Spellbook"
|
||||
B.uses = 50
|
||||
var/obj/item/card/id/I = H.wear_id
|
||||
if(istype(I))
|
||||
apply_to_card(I, H, get_all_accesses(), "Arch Wizard")
|
||||
|
||||
|
||||
/datum/outfit/admin/dark_priest
|
||||
name = "Dark Priest"
|
||||
@@ -1147,6 +1134,9 @@
|
||||
/obj/item/storage/box/survival = 1,
|
||||
/obj/item/device/flashlight = 1,
|
||||
)
|
||||
implants = list(
|
||||
/obj/item/implant/dust
|
||||
)
|
||||
|
||||
/datum/outfit/admin/dark_priest/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
. = ..()
|
||||
@@ -1163,5 +1153,3 @@
|
||||
var/obj/item/device/radio/headset/R = H.l_ear
|
||||
if(istype(R))
|
||||
R.flags |= NODROP
|
||||
var/obj/item/implant/dust/D = new /obj/item/implant/dust(H)
|
||||
D.implant(H)
|
||||
@@ -349,6 +349,7 @@
|
||||
to_chat(user, "<span class='warning'>You have successfully Enthralled [H]. <i>If they refuse to do as you say just adminhelp.</i></span>")
|
||||
add_logs(user, H, "vampire-thralled")
|
||||
|
||||
|
||||
/obj/effect/proc_holder/spell/vampire/self/cloak
|
||||
name = "Cloak of Darkness"
|
||||
desc = "Toggles whether you are currently cloaking yourself in darkness."
|
||||
|
||||
@@ -28,16 +28,13 @@
|
||||
glasses = /obj/item/clothing/glasses/hud/security/sunglasses
|
||||
id = /obj/item/card/id/centcom
|
||||
pda = /obj/item/device/pda/centcom
|
||||
backpack_contents = list(
|
||||
/obj/item/gun/energy/pulse/pistol = 1,
|
||||
/obj/item/implanter/dust = 1,
|
||||
/obj/item/implanter/death_alarm = 1
|
||||
belt = /obj/item/gun/energy/pulse/pistol
|
||||
implants = list(
|
||||
/obj/item/implant/mindshield,
|
||||
/obj/item/implant/dust
|
||||
)
|
||||
|
||||
implants = list(/obj/item/implant/mindshield)
|
||||
|
||||
backpack = /obj/item/storage/backpack/satchel
|
||||
|
||||
box = /obj/item/storage/box/centcomofficer
|
||||
|
||||
|
||||
// CC Officials who lead ERTs, Death Squads, etc.
|
||||
@@ -61,22 +58,33 @@
|
||||
/datum/outfit/job/ntspecops
|
||||
name = "Special Operations Officer"
|
||||
jobtype = /datum/job/ntspecops
|
||||
|
||||
uniform = /obj/item/clothing/under/syndicate/combat
|
||||
uniform = /obj/item/clothing/under/rank/centcom_commander
|
||||
suit = /obj/item/clothing/suit/space/deathsquad/officer
|
||||
back = /obj/item/storage/backpack/security
|
||||
belt = /obj/item/gun/energy/pulse/pistol/m1911
|
||||
gloves = /obj/item/clothing/gloves/combat
|
||||
shoes = /obj/item/clothing/shoes/combat
|
||||
head = /obj/item/clothing/head/beret/centcom/officer/navy
|
||||
mask = /obj/item/clothing/mask/cigarette/cigar/cohiba
|
||||
head = /obj/item/clothing/head/helmet/space/deathsquad/beret
|
||||
l_ear = /obj/item/device/radio/headset/centcom
|
||||
glasses = /obj/item/clothing/glasses/hud/security/sunglasses
|
||||
id = /obj/item/card/id/centcom
|
||||
pda = /obj/item/device/pda/centcom
|
||||
r_pocket = /obj/item/storage/box/matches
|
||||
box = /obj/item/storage/box/centcomofficer
|
||||
backpack = /obj/item/storage/backpack/satchel
|
||||
backpack_contents = list(
|
||||
/obj/item/implanter/dust = 1,
|
||||
/obj/item/gun/energy/pulse/pistol/m1911 = 1,
|
||||
/obj/item/implanter/death_alarm = 1
|
||||
/obj/item/clothing/shoes/magboots/advance = 1,
|
||||
/obj/item/twohanded/dualsaber/red = 1,
|
||||
/obj/item/storage/box/zipties = 1
|
||||
)
|
||||
|
||||
implants = list(/obj/item/implant/mindshield)
|
||||
|
||||
backpack = /obj/item/storage/backpack/satchel
|
||||
implants = list(
|
||||
/obj/item/implant/mindshield,
|
||||
/obj/item/implant/dust
|
||||
)
|
||||
cybernetic_implants = list(
|
||||
/obj/item/organ/internal/cyberimp/eyes/xray,
|
||||
/obj/item/organ/internal/cyberimp/brain/anti_drop,
|
||||
/obj/item/organ/internal/cyberimp/brain/anti_stun,
|
||||
/obj/item/organ/internal/cyberimp/chest/nutriment/plus
|
||||
)
|
||||
@@ -142,8 +142,6 @@
|
||||
shoes = /obj/item/clothing/shoes/black
|
||||
pda = /obj/item/device/pda
|
||||
|
||||
var/list/implants = null
|
||||
|
||||
var/backpack = /obj/item/storage/backpack
|
||||
var/satchel = /obj/item/storage/backpack/satchel_norm
|
||||
var/dufflebag = /obj/item/storage/backpack/duffel
|
||||
@@ -210,11 +208,6 @@
|
||||
|
||||
imprint_pda(H)
|
||||
|
||||
if(implants)
|
||||
for(var/implant_type in implants)
|
||||
var/obj/item/implant/I = new implant_type(H)
|
||||
I.implant(H)
|
||||
|
||||
if(gear_leftovers.len)
|
||||
for(var/datum/gear/G in gear_leftovers)
|
||||
var/atom/placed_in = H.equip_or_collect(G.spawn_item(null, H.client.prefs.gear[G.display_name]))
|
||||
|
||||
@@ -429,7 +429,7 @@
|
||||
if(!use_cable(1))
|
||||
return reset()
|
||||
var/obj/structure/cable/NC = new(new_turf)
|
||||
NC.cableColor("red")
|
||||
NC.cable_color("red")
|
||||
NC.d1 = 0
|
||||
NC.d2 = fdirn
|
||||
NC.updateicon()
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
name = "control wand"
|
||||
desc = "Remotely controls airlocks."
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
flags = NOBLUDGEON
|
||||
var/mode = WAND_OPEN
|
||||
var/region_access = 1 //See access.dm
|
||||
var/obj/item/card/id/ID
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
var/list/recipes = list() // /datum/stack_recipe
|
||||
var/singular_name
|
||||
var/amount = 1
|
||||
var/to_transfer = 0
|
||||
var/max_amount //also see stack recipes initialisation, param "max_res_amount" must be equal to this max_amount
|
||||
var/merge_type = null // This path and its children should merge with this stack, defaults to src.type
|
||||
|
||||
@@ -231,6 +232,9 @@
|
||||
/obj/item/stack/proc/get_max_amount()
|
||||
return max_amount
|
||||
|
||||
/obj/item/stack/proc/get_amount_transferred()
|
||||
return to_transfer
|
||||
|
||||
/obj/item/stack/proc/split(mob/user, amt)
|
||||
var/obj/item/stack/F = new type(loc, amt)
|
||||
F.copy_evidences(src)
|
||||
@@ -257,7 +261,6 @@
|
||||
if(S.amount >= max_amount)
|
||||
return 1
|
||||
|
||||
var/to_transfer
|
||||
if(user.is_in_inactive_hand(src))
|
||||
var/desired = input("How much would you like to transfer from this stack?", "How much?", 1) as null|num
|
||||
if(!desired)
|
||||
|
||||
@@ -108,6 +108,18 @@
|
||||
color = pick(COLOR_RED, COLOR_BLUE, COLOR_GREEN, COLOR_WHITE, COLOR_PINK, COLOR_YELLOW, COLOR_CYAN)
|
||||
..()
|
||||
|
||||
/obj/item/restraints/handcuffs/cable/proc/cable_color(var/colorC)
|
||||
if(colorC)
|
||||
if(colorC == "rainbow")
|
||||
colorC = color_rainbow()
|
||||
color = colorC
|
||||
else
|
||||
color = COLOR_RED
|
||||
|
||||
/obj/item/restraints/handcuffs/cable/proc/color_rainbow()
|
||||
color = pick(COLOR_RED, COLOR_BLUE, COLOR_GREEN, COLOR_PINK, COLOR_YELLOW, COLOR_CYAN)
|
||||
return color
|
||||
|
||||
/obj/item/restraints/handcuffs/alien
|
||||
icon_state = "handcuffAlien"
|
||||
|
||||
@@ -143,6 +155,9 @@
|
||||
if(!remove_item_from_storage(user))
|
||||
user.unEquip(src)
|
||||
qdel(src)
|
||||
else if(istype(I, /obj/item/toy/crayon))
|
||||
var/obj/item/toy/crayon/C = I
|
||||
cable_color(C.colourName)
|
||||
|
||||
/obj/item/restraints/handcuffs/cable/zipties
|
||||
name = "zipties"
|
||||
|
||||
@@ -829,6 +829,26 @@
|
||||
return
|
||||
return ..()
|
||||
|
||||
|
||||
/obj/item/storage/box/centcomofficer
|
||||
name = "officer kit"
|
||||
|
||||
/obj/item/storage/box/centcomofficer/New()
|
||||
..()
|
||||
contents = list()
|
||||
new /obj/item/clothing/mask/breath(src)
|
||||
new /obj/item/tank/emergency_oxygen/double/full(src)
|
||||
new /obj/item/device/flashlight/seclite(src)
|
||||
new /obj/item/kitchen/knife/combat(src)
|
||||
|
||||
new /obj/item/device/radio/centcom(src)
|
||||
new /obj/item/door_remote/omni(src)
|
||||
new /obj/item/implanter/death_alarm(src)
|
||||
|
||||
new /obj/item/reagent_containers/hypospray/combat/nanites(src)
|
||||
new /obj/item/pinpointer/advpinpointer(src)
|
||||
|
||||
|
||||
#undef NODESIGN
|
||||
#undef NANOTRASEN
|
||||
#undef SYNDI
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
********************/
|
||||
|
||||
/obj/machinery/kitchen_machine/New()
|
||||
..()
|
||||
create_reagents(100)
|
||||
reagents.set_reacting(FALSE)
|
||||
if(!available_recipes)
|
||||
|
||||
+35
-22
@@ -184,6 +184,10 @@ By design, d1 is the smallest direction and d2 is the highest
|
||||
|
||||
shock(user, 5, 0.2)
|
||||
|
||||
else if(istype(W, /obj/item/toy/crayon))
|
||||
var/obj/item/toy/crayon/C = W
|
||||
cable_color(C.colourName)
|
||||
|
||||
else
|
||||
if(W.flags & CONDUCT)
|
||||
shock(user, 50, 0.7)
|
||||
@@ -218,11 +222,18 @@ By design, d1 is the smallest direction and d2 is the highest
|
||||
qdel(src) // qdel
|
||||
return
|
||||
|
||||
obj/structure/cable/proc/cableColor(var/colorC)
|
||||
var/color_n = "#DD0000"
|
||||
obj/structure/cable/proc/cable_color(var/colorC)
|
||||
if(colorC)
|
||||
color_n = colorC
|
||||
color = color_n
|
||||
if(colorC == "rainbow")
|
||||
color = color_rainbow()
|
||||
else
|
||||
color = colorC
|
||||
else
|
||||
color = "#DD0000"
|
||||
|
||||
/obj/structure/cable/proc/color_rainbow()
|
||||
color = pick(COLOR_RED, COLOR_BLUE, COLOR_GREEN, COLOR_PINK, COLOR_YELLOW, COLOR_CYAN)
|
||||
return color
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// Cable laying helpers
|
||||
@@ -588,30 +599,20 @@ var/global/list/datum/stack_recipe/cable_coil_recipes = list(
|
||||
..()
|
||||
if(istype(W, /obj/item/stack/cable_coil))
|
||||
var/obj/item/stack/cable_coil/C = W
|
||||
// Cable merging is handled by parent proc
|
||||
if(C.amount >= MAXCOIL)
|
||||
to_chat(user, "The coil is too long, you cannot add any more cable to it.")
|
||||
to_chat(user, "The coil is as long as it will get.")
|
||||
return
|
||||
|
||||
if( (C.amount + src.amount <= MAXCOIL) )
|
||||
to_chat(user, "You join the cable coils together.")
|
||||
C.give(src.amount) // give it cable
|
||||
src.use(src.amount) // make sure this one cleans up right
|
||||
return
|
||||
|
||||
else
|
||||
var/amt = MAXCOIL - C.amount
|
||||
to_chat(user, "You transfer [amt] length\s of cable from one coil to the other.")
|
||||
C.give(amt)
|
||||
src.use(amt)
|
||||
to_chat(user, "You transfer [get_amount_transferred()] length\s of cable from one coil to the other.")
|
||||
return
|
||||
|
||||
//add cables to the stack
|
||||
/obj/item/stack/cable_coil/proc/give(var/extra)
|
||||
if(amount + extra > MAXCOIL)
|
||||
amount = MAXCOIL
|
||||
else
|
||||
amount += extra
|
||||
update_icon()
|
||||
if(istype(W, /obj/item/toy/crayon))
|
||||
var/obj/item/toy/crayon/C = W
|
||||
cable_color(C.colourName)
|
||||
|
||||
///////////////////////////////////////////////
|
||||
// Cable laying procedures
|
||||
@@ -619,7 +620,7 @@ var/global/list/datum/stack_recipe/cable_coil_recipes = list(
|
||||
|
||||
/obj/item/stack/cable_coil/proc/get_new_cable(location)
|
||||
var/obj/structure/cable/C = new(location)
|
||||
C.cableColor(color)
|
||||
C.cable_color(color)
|
||||
|
||||
return C
|
||||
|
||||
@@ -736,7 +737,7 @@ var/global/list/datum/stack_recipe/cable_coil_recipes = list(
|
||||
return
|
||||
|
||||
|
||||
C.cableColor(color)
|
||||
C.cable_color(color)
|
||||
|
||||
C.d1 = nd1
|
||||
C.d2 = nd2
|
||||
@@ -806,6 +807,18 @@ var/global/list/datum/stack_recipe/cable_coil_recipes = list(
|
||||
color = pick(COLOR_RED, COLOR_BLUE, COLOR_GREEN, COLOR_WHITE, COLOR_PINK, COLOR_YELLOW, COLOR_CYAN)
|
||||
..()
|
||||
|
||||
/obj/item/stack/cable_coil/proc/cable_color(var/colorC)
|
||||
if(colorC)
|
||||
if(colorC == "rainbow")
|
||||
colorC = color_rainbow()
|
||||
color = colorC
|
||||
else
|
||||
color = COLOR_RED
|
||||
|
||||
/obj/item/stack/cable_coil/proc/color_rainbow()
|
||||
color = pick(COLOR_RED, COLOR_BLUE, COLOR_GREEN, COLOR_PINK, COLOR_YELLOW, COLOR_CYAN)
|
||||
return color
|
||||
|
||||
/obj/item/stack/cable_coil/cyborg
|
||||
name = "cyborg cable coil"
|
||||
|
||||
|
||||
@@ -24,5 +24,5 @@
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/structure/cable/heavyduty/cableColor(var/colorC)
|
||||
/obj/structure/cable/heavyduty/cable_color(var/colorC)
|
||||
return
|
||||
@@ -56,6 +56,21 @@
|
||||
-->
|
||||
<div class="commit sansserif">
|
||||
|
||||
<h2 class="date">17 April 2018</h2>
|
||||
<h3 class="author">Citinited updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="bugfix">Kitchen machinery no longer looks as if it is falling apart.</li>
|
||||
</ul>
|
||||
<h3 class="author">MINIMAN10000 updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="bugfix">Adds NOBLUDGEON to door_remote so the remote always triggers</li>
|
||||
<li class="tweak">Cable coils now allow you to transfer a part of the stack</li>
|
||||
<li class="rscdel">Stack handling from cable.dm is removed as stack.dm already handles it</li>
|
||||
<li class="tweak">Changed cable coil message</li>
|
||||
<li class="rscadd">The ability to change the color of cables</li>
|
||||
<li class="bugfix">cableColor now follows the new cable_color format</li>
|
||||
</ul>
|
||||
|
||||
<h2 class="date">14 April 2018</h2>
|
||||
<h3 class="author">Anticept updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
|
||||
@@ -6301,3 +6301,13 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
|
||||
MarsM0nd:
|
||||
- tweak: Single man up now looks and sounds the same as the global man up for that
|
||||
person.
|
||||
2018-04-17:
|
||||
Citinited:
|
||||
- bugfix: Kitchen machinery no longer looks as if it is falling apart.
|
||||
MINIMAN10000:
|
||||
- bugfix: Adds NOBLUDGEON to door_remote so the remote always triggers
|
||||
- tweak: Cable coils now allow you to transfer a part of the stack
|
||||
- rscdel: Stack handling from cable.dm is removed as stack.dm already handles it
|
||||
- tweak: Changed cable coil message
|
||||
- rscadd: The ability to change the color of cables
|
||||
- bugfix: cableColor now follows the new cable_color format
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 465 KiB After Width: | Height: | Size: 473 KiB |
Reference in New Issue
Block a user