mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-15 12:43:13 +00:00
Merge branch 'master' of https://github.com/PolarisSS13/Polaris into Slime_Rework_3
# Conflicts: # icons/mob/items/lefthand.dmi # icons/mob/items/righthand.dmi
This commit is contained in:
@@ -24,6 +24,10 @@
|
|||||||
/obj/machinery/atmospherics/unary/freezer/New()
|
/obj/machinery/atmospherics/unary/freezer/New()
|
||||||
..()
|
..()
|
||||||
initialize_directions = dir
|
initialize_directions = dir
|
||||||
|
|
||||||
|
/obj/machinery/atmospherics/unary/freezer/map/New()
|
||||||
|
..()
|
||||||
|
circuit = new circuit(src)
|
||||||
component_parts = list()
|
component_parts = list()
|
||||||
component_parts += new /obj/item/weapon/stock_parts/matter_bin(src)
|
component_parts += new /obj/item/weapon/stock_parts/matter_bin(src)
|
||||||
component_parts += new /obj/item/weapon/stock_parts/capacitor(src)
|
component_parts += new /obj/item/weapon/stock_parts/capacitor(src)
|
||||||
|
|||||||
@@ -25,6 +25,9 @@
|
|||||||
..()
|
..()
|
||||||
initialize_directions = dir
|
initialize_directions = dir
|
||||||
|
|
||||||
|
/obj/machinery/atmospherics/unary/heater/map/New()
|
||||||
|
..()
|
||||||
|
circuit = new circuit(src)
|
||||||
component_parts = list()
|
component_parts = list()
|
||||||
component_parts += new /obj/item/weapon/stock_parts/matter_bin(src)
|
component_parts += new /obj/item/weapon/stock_parts/matter_bin(src)
|
||||||
component_parts += new /obj/item/weapon/stock_parts/capacitor(src)
|
component_parts += new /obj/item/weapon/stock_parts/capacitor(src)
|
||||||
|
|||||||
@@ -24,6 +24,7 @@
|
|||||||
#define IS_TAJARA 5
|
#define IS_TAJARA 5
|
||||||
#define IS_XENOS 6
|
#define IS_XENOS 6
|
||||||
#define IS_TESHARI 7
|
#define IS_TESHARI 7
|
||||||
|
#define IS_SLIME 8
|
||||||
|
|
||||||
#define CE_STABLE "stable" // Inaprovaline
|
#define CE_STABLE "stable" // Inaprovaline
|
||||||
#define CE_ANTIBIOTIC "antibiotic" // Spaceacilin
|
#define CE_ANTIBIOTIC "antibiotic" // Spaceacilin
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
|
|
||||||
#define CUT "cut"
|
#define CUT "cut"
|
||||||
#define BRUISE "bruise"
|
#define BRUISE "bruise"
|
||||||
|
#define PIERCE "pierce"
|
||||||
|
|
||||||
#define STUN "stun"
|
#define STUN "stun"
|
||||||
#define WEAKEN "weaken"
|
#define WEAKEN "weaken"
|
||||||
|
|||||||
@@ -27,12 +27,12 @@ var/global/defer_powernet_rebuild = 0 // True if net rebuild will be called
|
|||||||
#define AI_CAMERA_LUMINOSITY 6
|
#define AI_CAMERA_LUMINOSITY 6
|
||||||
|
|
||||||
// Camera networks
|
// Camera networks
|
||||||
#define NETWORK_CRESCENT "Crescent"
|
#define NETWORK_CRESCENT "Spaceport"
|
||||||
#define NETWORK_CAFE_DOCK "Cafe Dock"
|
// #define NETWORK_CAFE_DOCK "Cafe Dock"
|
||||||
#define NETWORK_CARGO "Cargo"
|
#define NETWORK_CARGO "Cargo"
|
||||||
#define NETWORK_CIVILIAN "Civilian"
|
#define NETWORK_CIVILIAN "Civilian"
|
||||||
#define NETWORK_CIVILIAN_EAST "Civilian East"
|
// #define NETWORK_CIVILIAN_EAST "Civilian East"
|
||||||
#define NETWORK_CIVILIAN_WEST "Civilian West"
|
// #define NETWORK_CIVILIAN_WEST "Civilian West"
|
||||||
#define NETWORK_COMMAND "Command"
|
#define NETWORK_COMMAND "Command"
|
||||||
#define NETWORK_ENGINE "Engine"
|
#define NETWORK_ENGINE "Engine"
|
||||||
#define NETWORK_ENGINEERING "Engineering"
|
#define NETWORK_ENGINEERING "Engineering"
|
||||||
@@ -41,7 +41,7 @@ var/global/defer_powernet_rebuild = 0 // True if net rebuild will be called
|
|||||||
#define NETWORK_EXODUS "Northern Star"
|
#define NETWORK_EXODUS "Northern Star"
|
||||||
#define NETWORK_MEDICAL "Medical"
|
#define NETWORK_MEDICAL "Medical"
|
||||||
#define NETWORK_MERCENARY "MercurialNet"
|
#define NETWORK_MERCENARY "MercurialNet"
|
||||||
#define NETWORK_MINE "MINE"
|
#define NETWORK_MINE "Mining Outpost"
|
||||||
#define NETWORK_NORTHERN_STAR "Northern Star"
|
#define NETWORK_NORTHERN_STAR "Northern Star"
|
||||||
#define NETWORK_RESEARCH "Research"
|
#define NETWORK_RESEARCH "Research"
|
||||||
#define NETWORK_RESEARCH_OUTPOST "Research Outpost"
|
#define NETWORK_RESEARCH_OUTPOST "Research Outpost"
|
||||||
|
|||||||
@@ -78,10 +78,10 @@
|
|||||||
|
|
||||||
// Setting this much higher than 1024 could allow spammers to DOS the server easily.
|
// Setting this much higher than 1024 could allow spammers to DOS the server easily.
|
||||||
#define MAX_MESSAGE_LEN 1024
|
#define MAX_MESSAGE_LEN 1024
|
||||||
#define MAX_PAPER_MESSAGE_LEN 3072
|
#define MAX_PAPER_MESSAGE_LEN 6144
|
||||||
#define MAX_BOOK_MESSAGE_LEN 9216
|
#define MAX_BOOK_MESSAGE_LEN 12288
|
||||||
#define MAX_LNAME_LEN 64
|
#define MAX_LNAME_LEN 64
|
||||||
#define MAX_NAME_LEN 26
|
#define MAX_NAME_LEN 52
|
||||||
|
|
||||||
// Event defines.
|
// Event defines.
|
||||||
#define EVENT_LEVEL_MUNDANE 1
|
#define EVENT_LEVEL_MUNDANE 1
|
||||||
|
|||||||
@@ -136,9 +136,15 @@
|
|||||||
#define INCAPACITATION_RESTRAINED 1
|
#define INCAPACITATION_RESTRAINED 1
|
||||||
#define INCAPACITATION_BUCKLED_PARTIALLY 2
|
#define INCAPACITATION_BUCKLED_PARTIALLY 2
|
||||||
#define INCAPACITATION_BUCKLED_FULLY 4
|
#define INCAPACITATION_BUCKLED_FULLY 4
|
||||||
|
#define INCAPACITATION_STUNNED 8
|
||||||
|
#define INCAPACITATION_FORCELYING 16 //needs a better name - represents being knocked down BUT still conscious.
|
||||||
|
#define INCAPACITATION_KNOCKOUT 32
|
||||||
|
|
||||||
|
|
||||||
#define INCAPACITATION_DEFAULT (INCAPACITATION_RESTRAINED|INCAPACITATION_BUCKLED_FULLY)
|
#define INCAPACITATION_DEFAULT (INCAPACITATION_RESTRAINED|INCAPACITATION_BUCKLED_FULLY)
|
||||||
#define INCAPACITATION_ALL (INCAPACITATION_RESTRAINED|INCAPACITATION_BUCKLED_PARTIALLY|INCAPACITATION_BUCKLED_FULLY)
|
#define INCAPACITATION_KNOCKDOWN (INCAPACITATION_KNOCKOUT|INCAPACITATION_FORCELYING)
|
||||||
|
#define INCAPACITATION_DISABLED (INCAPACITATION_KNOCKDOWN|INCAPACITATION_STUNNED)
|
||||||
|
#define INCAPACITATION_ALL (~INCAPACITATION_NONE)
|
||||||
|
|
||||||
// Bodyparts and organs.
|
// Bodyparts and organs.
|
||||||
#define O_MOUTH "mouth"
|
#define O_MOUTH "mouth"
|
||||||
|
|||||||
@@ -8,9 +8,9 @@
|
|||||||
// unused: 0x8000 - higher than this will overflow
|
// unused: 0x8000 - higher than this will overflow
|
||||||
|
|
||||||
// Species spawn flags
|
// Species spawn flags
|
||||||
#define IS_WHITELISTED 0x1 // Must be whitelisted to play.
|
#define SPECIES_IS_WHITELISTED 0x1 // Must be whitelisted to play.
|
||||||
#define CAN_JOIN 0x2 // Species is selectable in chargen.
|
#define SPECIES_IS_RESTRICTED 0x2 // Is not a core/normally playable species. (castes, mutantraces)
|
||||||
#define IS_RESTRICTED 0x4 // Is not a core/normally playable species. (castes, mutantraces)
|
#define SPECIES_CAN_JOIN 0x4 // Species is selectable in chargen.
|
||||||
|
|
||||||
// Species appearance flags
|
// Species appearance flags
|
||||||
#define HAS_SKIN_TONE 0x1 // Skin tone selectable in chargen. (0-255)
|
#define HAS_SKIN_TONE 0x1 // Skin tone selectable in chargen. (0-255)
|
||||||
@@ -19,6 +19,7 @@
|
|||||||
#define HAS_UNDERWEAR 0x8 // Underwear is drawn onto the mob icon.
|
#define HAS_UNDERWEAR 0x8 // Underwear is drawn onto the mob icon.
|
||||||
#define HAS_EYE_COLOR 0x10 // Eye colour selectable in chargen. (RGB)
|
#define HAS_EYE_COLOR 0x10 // Eye colour selectable in chargen. (RGB)
|
||||||
#define HAS_HAIR_COLOR 0x20 // Hair colour selectable in chargen. (RGB)
|
#define HAS_HAIR_COLOR 0x20 // Hair colour selectable in chargen. (RGB)
|
||||||
|
#define RADIATION_GLOWS 0x40 // Radiation causes this character to glow.
|
||||||
|
|
||||||
// Languages.
|
// Languages.
|
||||||
#define LANGUAGE_SOL_COMMON "Sol Common"
|
#define LANGUAGE_SOL_COMMON "Sol Common"
|
||||||
@@ -29,6 +30,7 @@
|
|||||||
#define LANGUAGE_ROOTSPEAK "Rootspeak"
|
#define LANGUAGE_ROOTSPEAK "Rootspeak"
|
||||||
#define LANGUAGE_TRADEBAND "Tradeband"
|
#define LANGUAGE_TRADEBAND "Tradeband"
|
||||||
#define LANGUAGE_GUTTER "Gutter"
|
#define LANGUAGE_GUTTER "Gutter"
|
||||||
|
#define LANGUAGE_SCHECHI "Schechi"
|
||||||
|
|
||||||
// Language flags.
|
// Language flags.
|
||||||
#define WHITELISTED 1 // Language is available if the speaker is whitelisted.
|
#define WHITELISTED 1 // Language is available if the speaker is whitelisted.
|
||||||
|
|||||||
@@ -23,6 +23,9 @@ var/global/list/joblist = list() //list of all jobstypes, minus borg and AI
|
|||||||
|
|
||||||
var/global/list/turfs = list() //list of all turfs
|
var/global/list/turfs = list() //list of all turfs
|
||||||
|
|
||||||
|
#define all_genders_define_list list(MALE,FEMALE,PLURAL,NEUTER)
|
||||||
|
#define all_genders_text_list list("Male","Female","Plural","Neuter")
|
||||||
|
|
||||||
//Languages/species/whitelist.
|
//Languages/species/whitelist.
|
||||||
var/global/list/all_species[0]
|
var/global/list/all_species[0]
|
||||||
var/global/list/all_languages[0]
|
var/global/list/all_languages[0]
|
||||||
@@ -191,16 +194,22 @@ var/global/list/string_slot_flags = list(
|
|||||||
language_keys[lowertext(L.key)] = L
|
language_keys[lowertext(L.key)] = L
|
||||||
|
|
||||||
var/rkey = 0
|
var/rkey = 0
|
||||||
paths = typesof(/datum/species)-/datum/species
|
paths = typesof(/datum/species)
|
||||||
for(var/T in paths)
|
for(var/T in paths)
|
||||||
|
|
||||||
rkey++
|
rkey++
|
||||||
var/datum/species/S = new T
|
|
||||||
|
var/datum/species/S = T
|
||||||
|
if(!initial(S.name))
|
||||||
|
continue
|
||||||
|
|
||||||
|
S = new T
|
||||||
S.race_key = rkey //Used in mob icon caching.
|
S.race_key = rkey //Used in mob icon caching.
|
||||||
all_species[S.name] = S
|
all_species[S.name] = S
|
||||||
|
|
||||||
if(!(S.spawn_flags & IS_RESTRICTED))
|
if(!(S.spawn_flags & SPECIES_IS_RESTRICTED))
|
||||||
playable_species += S.name
|
playable_species += S.name
|
||||||
if(S.spawn_flags & IS_WHITELISTED)
|
if(S.spawn_flags & SPECIES_IS_WHITELISTED)
|
||||||
whitelisted_species += S.name
|
whitelisted_species += S.name
|
||||||
|
|
||||||
//Posters
|
//Posters
|
||||||
|
|||||||
@@ -323,3 +323,5 @@ proc/TextPreview(var/string,var/len=40)
|
|||||||
if(48 to 57) //Numbers
|
if(48 to 57) //Numbers
|
||||||
return 1
|
return 1
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
#define gender2text(gender) capitalize(gender)
|
||||||
@@ -137,7 +137,7 @@ Turf and target are seperate in case you want to teleport some distance from a t
|
|||||||
|
|
||||||
//Now to find a box from center location and make that our destination.
|
//Now to find a box from center location and make that our destination.
|
||||||
for(var/turf/T in block(locate(center.x+b1xerror,center.y+b1yerror,location.z), locate(center.x+b2xerror,center.y+b2yerror,location.z) ))
|
for(var/turf/T in block(locate(center.x+b1xerror,center.y+b1yerror,location.z), locate(center.x+b2xerror,center.y+b2yerror,location.z) ))
|
||||||
if(density&&T.density) continue//If density was specified.
|
if(density&&(T.density||T.contains_dense_objects())) continue//If density was specified.
|
||||||
if(T.x>world.maxx || T.x<1) continue//Don't want them to teleport off the map.
|
if(T.x>world.maxx || T.x<1) continue//Don't want them to teleport off the map.
|
||||||
if(T.y>world.maxy || T.y<1) continue
|
if(T.y>world.maxy || T.y<1) continue
|
||||||
destination_list += T
|
destination_list += T
|
||||||
@@ -146,7 +146,7 @@ Turf and target are seperate in case you want to teleport some distance from a t
|
|||||||
else return
|
else return
|
||||||
|
|
||||||
else//Same deal here.
|
else//Same deal here.
|
||||||
if(density&&destination.density) return
|
if(density&&(destination.density||destination.contains_dense_objects())) return
|
||||||
if(destination.x>world.maxx || destination.x<1) return
|
if(destination.x>world.maxx || destination.x<1) return
|
||||||
if(destination.y>world.maxy || destination.y<1) return
|
if(destination.y>world.maxy || destination.y<1) return
|
||||||
else return
|
else return
|
||||||
|
|||||||
@@ -121,9 +121,9 @@
|
|||||||
|
|
||||||
/obj/machinery/door/airlock/AIShiftClick() // Opens and closes doors!
|
/obj/machinery/door/airlock/AIShiftClick() // Opens and closes doors!
|
||||||
if(density)
|
if(density)
|
||||||
Topic(src, list("src"= "\ref[src]", "command"="open", "activate" = "1"), 1) // 1 meaning no window (consistency!)
|
Topic(src, list("command"="open", "activate" = "1"))
|
||||||
else
|
else
|
||||||
Topic(src, list("src"= "\ref[src]", "command"="open", "activate" = "0"), 1)
|
Topic(src, list("command"="open", "activate" = "0"))
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
/atom/proc/AICtrlClick()
|
/atom/proc/AICtrlClick()
|
||||||
@@ -131,17 +131,17 @@
|
|||||||
|
|
||||||
/obj/machinery/door/airlock/AICtrlClick() // Bolts doors
|
/obj/machinery/door/airlock/AICtrlClick() // Bolts doors
|
||||||
if(locked)
|
if(locked)
|
||||||
Topic(src, list("src"= "\ref[src]", "command"="bolts", "activate" = "0"), 1)// 1 meaning no window (consistency!)
|
Topic(src, list("command"="bolts", "activate" = "0"))
|
||||||
else
|
else
|
||||||
Topic(src, list("src"= "\ref[src]", "command"="bolts", "activate" = "1"), 1)
|
Topic(src, list("command"="bolts", "activate" = "1"))
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
/obj/machinery/power/apc/AICtrlClick() // turns off/on APCs.
|
/obj/machinery/power/apc/AICtrlClick() // turns off/on APCs.
|
||||||
Topic(src, list("src"= "\ref[src]", "breaker"="1"), 1) // 1 meaning no window (consistency!)
|
Topic(src, list("breaker"="1"))
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
/obj/machinery/turretid/AICtrlClick() //turns off/on Turrets
|
/obj/machinery/turretid/AICtrlClick() //turns off/on Turrets
|
||||||
Topic(src, list("src"= "\ref[src]", "command"="enable", "value"="[!enabled]"), 1) // 1 meaning no window (consistency!)
|
Topic(src, list("command"="enable", "value"="[!enabled]"))
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
/atom/proc/AIAltClick(var/atom/A)
|
/atom/proc/AIAltClick(var/atom/A)
|
||||||
@@ -150,14 +150,14 @@
|
|||||||
/obj/machinery/door/airlock/AIAltClick() // Electrifies doors.
|
/obj/machinery/door/airlock/AIAltClick() // Electrifies doors.
|
||||||
if(!electrified_until)
|
if(!electrified_until)
|
||||||
// permanent shock
|
// permanent shock
|
||||||
Topic(src, list("src"= "\ref[src]", "command"="electrify_permanently", "activate" = "1"), 1) // 1 meaning no window (consistency!)
|
Topic(src, list("command"="electrify_permanently", "activate" = "1"))
|
||||||
else
|
else
|
||||||
// disable/6 is not in Topic; disable/5 disables both temporary and permanent shock
|
// disable/6 is not in Topic; disable/5 disables both temporary and permanent shock
|
||||||
Topic(src, list("src"= "\ref[src]", "command"="electrify_permanently", "activate" = "0"), 1)
|
Topic(src, list("command"="electrify_permanently", "activate" = "0"))
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
/obj/machinery/turretid/AIAltClick() //toggles lethal on turrets
|
/obj/machinery/turretid/AIAltClick() //toggles lethal on turrets
|
||||||
Topic(src, list("src"= "\ref[src]", "command"="lethal", "value"="[!lethal]"), 1) // 1 meaning no window (consistency!)
|
Topic(src, list("command"="lethal", "value"="[!lethal]"))
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
/atom/proc/AIMiddleClick(var/mob/living/silicon/user)
|
/atom/proc/AIMiddleClick(var/mob/living/silicon/user)
|
||||||
@@ -169,9 +169,9 @@
|
|||||||
return
|
return
|
||||||
|
|
||||||
if(!src.lights)
|
if(!src.lights)
|
||||||
Topic(src, list("src"= "\ref[src]", "command"="lights", "activate" = "1"), 1) // 1 meaning no window (consistency!)
|
Topic(src, list("command"="lights", "activate" = "1"))
|
||||||
else
|
else
|
||||||
Topic(src, list("src"= "\ref[src]", "command"="lights", "activate" = "0"), 1)
|
Topic(src, list("command"="lights", "activate" = "0"))
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -103,10 +103,6 @@
|
|||||||
// A is your location but is not a turf; or is on you (backpack); or is on something on you (box in backpack); sdepth is needed here because contents depth does not equate inventory storage depth.
|
// A is your location but is not a turf; or is on you (backpack); or is on something on you (box in backpack); sdepth is needed here because contents depth does not equate inventory storage depth.
|
||||||
var/sdepth = A.storage_depth(src)
|
var/sdepth = A.storage_depth(src)
|
||||||
if((!isturf(A) && A == loc) || (sdepth != -1 && sdepth <= 1))
|
if((!isturf(A) && A == loc) || (sdepth != -1 && sdepth <= 1))
|
||||||
// faster access to objects already on you
|
|
||||||
if(A.loc != src)
|
|
||||||
setMoveCooldown(10) //getting something out of a backpack
|
|
||||||
|
|
||||||
if(W)
|
if(W)
|
||||||
var/resolved = W.resolve_attackby(A, src)
|
var/resolved = W.resolve_attackby(A, src)
|
||||||
if(!resolved && A && W)
|
if(!resolved && A && W)
|
||||||
@@ -127,8 +123,6 @@
|
|||||||
sdepth = A.storage_depth_turf()
|
sdepth = A.storage_depth_turf()
|
||||||
if(isturf(A) || isturf(A.loc) || (sdepth != -1 && sdepth <= 1))
|
if(isturf(A) || isturf(A.loc) || (sdepth != -1 && sdepth <= 1))
|
||||||
if(A.Adjacent(src)) // see adjacent.dm
|
if(A.Adjacent(src)) // see adjacent.dm
|
||||||
setMoveCooldown(5)
|
|
||||||
|
|
||||||
if(W)
|
if(W)
|
||||||
// Return 1 in attackby() to prevent afterattack() effects (when safely moving items for example)
|
// Return 1 in attackby() to prevent afterattack() effects (when safely moving items for example)
|
||||||
var/resolved = W.resolve_attackby(A,src)
|
var/resolved = W.resolve_attackby(A,src)
|
||||||
@@ -198,14 +192,7 @@
|
|||||||
if((LASER in mutations) && a_intent == I_HURT)
|
if((LASER in mutations) && a_intent == I_HURT)
|
||||||
LaserEyes(A) // moved into a proc below
|
LaserEyes(A) // moved into a proc below
|
||||||
else if(TK in mutations)
|
else if(TK in mutations)
|
||||||
switch(get_dist(src,A))
|
if(get_dist(src, A) > tk_maxrange)
|
||||||
if(1 to 5) // not adjacent may mean blocked by window
|
|
||||||
setMoveCooldown(2)
|
|
||||||
if(5 to 7)
|
|
||||||
setMoveCooldown(5)
|
|
||||||
if(8 to tk_maxrange)
|
|
||||||
setMoveCooldown(10)
|
|
||||||
else
|
|
||||||
return
|
return
|
||||||
A.attack_tk(src)
|
A.attack_tk(src)
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -256,7 +256,7 @@ datum/hud/New(mob/owner)
|
|||||||
if(ishuman(mymob))
|
if(ishuman(mymob))
|
||||||
human_hud(ui_style, ui_color, ui_alpha, mymob) // Pass the player the UI style chosen in preferences
|
human_hud(ui_style, ui_color, ui_alpha, mymob) // Pass the player the UI style chosen in preferences
|
||||||
else if(isrobot(mymob))
|
else if(isrobot(mymob))
|
||||||
robot_hud()
|
robot_hud(ui_style, ui_color, ui_alpha, mymob)
|
||||||
else if(isbrain(mymob))
|
else if(isbrain(mymob))
|
||||||
brain_hud(ui_style)
|
brain_hud(ui_style)
|
||||||
else if(isalien(mymob))
|
else if(isalien(mymob))
|
||||||
|
|||||||
@@ -1,7 +1,20 @@
|
|||||||
var/obj/screen/robot_inventory
|
var/obj/screen/robot_inventory
|
||||||
|
/*
|
||||||
|
/mob/living/silicon/robot/instantiate_hud(var/datum/hud/HUD, var/ui_style, var/ui_color, var/ui_alpha)
|
||||||
|
HUD.robot_hud(ui_style, ui_color, ui_alpha, src)*/
|
||||||
|
|
||||||
|
/datum/hud/proc/robot_hud(ui_style='icons/mob/screen1_robot.dmi', var/ui_color = "#ffffff", var/ui_alpha = 255, var/mob/living/silicon/robot/target)
|
||||||
|
/* var/datum/hud_data/hud_data
|
||||||
|
if(!istype(target))
|
||||||
|
hud_data = new()
|
||||||
|
|
||||||
/datum/hud/proc/robot_hud()
|
if(hud_data.icon)
|
||||||
|
ui_style = hud_data.icon*/
|
||||||
|
|
||||||
|
if(ui_style == 'icons/mob/screen/minimalist.dmi')
|
||||||
|
ui_style = 'icons/mob/screen1_robot_minimalist.dmi'
|
||||||
|
else
|
||||||
|
ui_style = 'icons/mob/screen1_robot.dmi'
|
||||||
|
|
||||||
src.adding = list()
|
src.adding = list()
|
||||||
src.other = list()
|
src.other = list()
|
||||||
@@ -12,7 +25,9 @@ var/obj/screen/robot_inventory
|
|||||||
using = new /obj/screen()
|
using = new /obj/screen()
|
||||||
using.name = "radio"
|
using.name = "radio"
|
||||||
using.set_dir(SOUTHWEST)
|
using.set_dir(SOUTHWEST)
|
||||||
using.icon = 'icons/mob/screen1_robot.dmi'
|
using.icon = ui_style
|
||||||
|
using.color = ui_color
|
||||||
|
using.alpha = ui_alpha
|
||||||
using.icon_state = "radio"
|
using.icon_state = "radio"
|
||||||
using.screen_loc = ui_movi
|
using.screen_loc = ui_movi
|
||||||
using.layer = 20
|
using.layer = 20
|
||||||
@@ -23,7 +38,9 @@ var/obj/screen/robot_inventory
|
|||||||
using = new /obj/screen()
|
using = new /obj/screen()
|
||||||
using.name = "module1"
|
using.name = "module1"
|
||||||
using.set_dir(SOUTHWEST)
|
using.set_dir(SOUTHWEST)
|
||||||
using.icon = 'icons/mob/screen1_robot.dmi'
|
using.icon = ui_style
|
||||||
|
using.color = ui_color
|
||||||
|
using.alpha = ui_alpha
|
||||||
using.icon_state = "inv1"
|
using.icon_state = "inv1"
|
||||||
using.screen_loc = ui_inv1
|
using.screen_loc = ui_inv1
|
||||||
using.layer = 20
|
using.layer = 20
|
||||||
@@ -33,7 +50,9 @@ var/obj/screen/robot_inventory
|
|||||||
using = new /obj/screen()
|
using = new /obj/screen()
|
||||||
using.name = "module2"
|
using.name = "module2"
|
||||||
using.set_dir(SOUTHWEST)
|
using.set_dir(SOUTHWEST)
|
||||||
using.icon = 'icons/mob/screen1_robot.dmi'
|
using.icon = ui_style
|
||||||
|
using.color = ui_color
|
||||||
|
using.alpha = ui_alpha
|
||||||
using.icon_state = "inv2"
|
using.icon_state = "inv2"
|
||||||
using.screen_loc = ui_inv2
|
using.screen_loc = ui_inv2
|
||||||
using.layer = 20
|
using.layer = 20
|
||||||
@@ -43,7 +62,9 @@ var/obj/screen/robot_inventory
|
|||||||
using = new /obj/screen()
|
using = new /obj/screen()
|
||||||
using.name = "module3"
|
using.name = "module3"
|
||||||
using.set_dir(SOUTHWEST)
|
using.set_dir(SOUTHWEST)
|
||||||
using.icon = 'icons/mob/screen1_robot.dmi'
|
using.icon = ui_style
|
||||||
|
using.color = ui_color
|
||||||
|
using.alpha = ui_alpha
|
||||||
using.icon_state = "inv3"
|
using.icon_state = "inv3"
|
||||||
using.screen_loc = ui_inv3
|
using.screen_loc = ui_inv3
|
||||||
using.layer = 20
|
using.layer = 20
|
||||||
@@ -56,7 +77,8 @@ var/obj/screen/robot_inventory
|
|||||||
using = new /obj/screen()
|
using = new /obj/screen()
|
||||||
using.name = "act_intent"
|
using.name = "act_intent"
|
||||||
using.set_dir(SOUTHWEST)
|
using.set_dir(SOUTHWEST)
|
||||||
using.icon = 'icons/mob/screen1_robot.dmi'
|
using.icon = ui_style
|
||||||
|
using.alpha = ui_alpha
|
||||||
using.icon_state = mymob.a_intent
|
using.icon_state = mymob.a_intent
|
||||||
using.screen_loc = ui_acti
|
using.screen_loc = ui_acti
|
||||||
using.layer = 20
|
using.layer = 20
|
||||||
@@ -65,47 +87,60 @@ var/obj/screen/robot_inventory
|
|||||||
|
|
||||||
//Cell
|
//Cell
|
||||||
mymob:cells = new /obj/screen()
|
mymob:cells = new /obj/screen()
|
||||||
mymob:cells.icon = 'icons/mob/screen1_robot.dmi'
|
mymob:cells.icon = ui_style
|
||||||
mymob:cells.icon_state = "charge-empty"
|
mymob:cells.icon_state = "charge-empty"
|
||||||
|
mymob:cells.alpha = ui_alpha
|
||||||
mymob:cells.name = "cell"
|
mymob:cells.name = "cell"
|
||||||
mymob:cells.screen_loc = ui_toxin
|
mymob:cells.screen_loc = ui_toxin
|
||||||
|
src.other += mymob:cells
|
||||||
|
|
||||||
//Health
|
//Health
|
||||||
mymob.healths = new /obj/screen()
|
mymob.healths = new /obj/screen()
|
||||||
mymob.healths.icon = 'icons/mob/screen1_robot.dmi'
|
mymob.healths.icon = ui_style
|
||||||
mymob.healths.icon_state = "health0"
|
mymob.healths.icon_state = "health0"
|
||||||
|
mymob.healths.alpha = ui_alpha
|
||||||
mymob.healths.name = "health"
|
mymob.healths.name = "health"
|
||||||
mymob.healths.screen_loc = ui_borg_health
|
mymob.healths.screen_loc = ui_borg_health
|
||||||
|
src.other += mymob.healths
|
||||||
|
|
||||||
//Installed Module
|
//Installed Module
|
||||||
mymob.hands = new /obj/screen()
|
mymob.hands = new /obj/screen()
|
||||||
mymob.hands.icon = 'icons/mob/screen1_robot.dmi'
|
mymob.hands.icon = ui_style
|
||||||
mymob.hands.icon_state = "nomod"
|
mymob.hands.icon_state = "nomod"
|
||||||
|
mymob.hands.alpha = ui_alpha
|
||||||
mymob.hands.name = "module"
|
mymob.hands.name = "module"
|
||||||
mymob.hands.screen_loc = ui_borg_module
|
mymob.hands.screen_loc = ui_borg_module
|
||||||
|
src.other += mymob.hands
|
||||||
|
|
||||||
//Module Panel
|
//Module Panel
|
||||||
using = new /obj/screen()
|
using = new /obj/screen()
|
||||||
using.name = "panel"
|
using.name = "panel"
|
||||||
using.icon = 'icons/mob/screen1_robot.dmi'
|
using.icon = ui_style
|
||||||
using.icon_state = "panel"
|
using.icon_state = "panel"
|
||||||
|
using.alpha = ui_alpha
|
||||||
using.screen_loc = ui_borg_panel
|
using.screen_loc = ui_borg_panel
|
||||||
using.layer = 19
|
using.layer = 19
|
||||||
src.adding += using
|
src.adding += using
|
||||||
|
|
||||||
//Store
|
//Store
|
||||||
mymob.throw_icon = new /obj/screen()
|
mymob.throw_icon = new /obj/screen()
|
||||||
mymob.throw_icon.icon = 'icons/mob/screen1_robot.dmi'
|
mymob.throw_icon.icon = ui_style
|
||||||
mymob.throw_icon.icon_state = "store"
|
mymob.throw_icon.icon_state = "store"
|
||||||
|
mymob.throw_icon.alpha = ui_alpha
|
||||||
|
mymob.throw_icon.color = ui_color
|
||||||
mymob.throw_icon.name = "store"
|
mymob.throw_icon.name = "store"
|
||||||
mymob.throw_icon.screen_loc = ui_borg_store
|
mymob.throw_icon.screen_loc = ui_borg_store
|
||||||
|
src.other += mymob.throw_icon
|
||||||
|
|
||||||
//Inventory
|
//Inventory
|
||||||
robot_inventory = new /obj/screen()
|
robot_inventory = new /obj/screen()
|
||||||
robot_inventory.name = "inventory"
|
robot_inventory.name = "inventory"
|
||||||
robot_inventory.icon = 'icons/mob/screen1_robot.dmi'
|
robot_inventory.icon = ui_style
|
||||||
robot_inventory.icon_state = "inventory"
|
robot_inventory.icon_state = "inventory"
|
||||||
|
robot_inventory.alpha = ui_alpha
|
||||||
|
robot_inventory.color = ui_color
|
||||||
robot_inventory.screen_loc = ui_borg_inventory
|
robot_inventory.screen_loc = ui_borg_inventory
|
||||||
|
src.other += robot_inventory
|
||||||
|
|
||||||
//Temp
|
//Temp
|
||||||
mymob.bodytemp = new /obj/screen()
|
mymob.bodytemp = new /obj/screen()
|
||||||
@@ -113,24 +148,30 @@ var/obj/screen/robot_inventory
|
|||||||
mymob.bodytemp.name = "body temperature"
|
mymob.bodytemp.name = "body temperature"
|
||||||
mymob.bodytemp.screen_loc = ui_temp
|
mymob.bodytemp.screen_loc = ui_temp
|
||||||
|
|
||||||
|
|
||||||
mymob.oxygen = new /obj/screen()
|
mymob.oxygen = new /obj/screen()
|
||||||
mymob.oxygen.icon = 'icons/mob/screen1_robot.dmi'
|
mymob.oxygen.icon = ui_style
|
||||||
mymob.oxygen.icon_state = "oxy0"
|
mymob.oxygen.icon_state = "oxy0"
|
||||||
|
mymob.oxygen.alpha = ui_alpha
|
||||||
mymob.oxygen.name = "oxygen"
|
mymob.oxygen.name = "oxygen"
|
||||||
mymob.oxygen.screen_loc = ui_oxygen
|
mymob.oxygen.screen_loc = ui_oxygen
|
||||||
|
src.other += mymob.oxygen
|
||||||
|
|
||||||
mymob.fire = new /obj/screen()
|
mymob.fire = new /obj/screen()
|
||||||
mymob.fire.icon = 'icons/mob/screen1_robot.dmi'
|
mymob.fire.icon = ui_style
|
||||||
mymob.fire.icon_state = "fire0"
|
mymob.fire.icon_state = "fire0"
|
||||||
|
mymob.fire.alpha = ui_alpha
|
||||||
mymob.fire.name = "fire"
|
mymob.fire.name = "fire"
|
||||||
mymob.fire.screen_loc = ui_fire
|
mymob.fire.screen_loc = ui_fire
|
||||||
|
src.other += mymob.fire
|
||||||
|
|
||||||
mymob.pullin = new /obj/screen()
|
mymob.pullin = new /obj/screen()
|
||||||
mymob.pullin.icon = 'icons/mob/screen1_robot.dmi'
|
mymob.pullin.icon = ui_style
|
||||||
mymob.pullin.icon_state = "pull0"
|
mymob.pullin.icon_state = "pull0"
|
||||||
|
mymob.pullin.alpha = ui_alpha
|
||||||
|
mymob.pullin.color = ui_color
|
||||||
mymob.pullin.name = "pull"
|
mymob.pullin.name = "pull"
|
||||||
mymob.pullin.screen_loc = ui_borg_pull
|
mymob.pullin.screen_loc = ui_borg_pull
|
||||||
|
src.other += mymob.pullin
|
||||||
|
|
||||||
mymob.blind = new /obj/screen()
|
mymob.blind = new /obj/screen()
|
||||||
mymob.blind.icon = 'icons/mob/screen1_full.dmi'
|
mymob.blind.icon = 'icons/mob/screen1_full.dmi'
|
||||||
@@ -140,22 +181,32 @@ var/obj/screen/robot_inventory
|
|||||||
mymob.blind.layer = 0
|
mymob.blind.layer = 0
|
||||||
|
|
||||||
mymob.flash = new /obj/screen()
|
mymob.flash = new /obj/screen()
|
||||||
mymob.flash.icon = 'icons/mob/screen1_robot.dmi'
|
mymob.flash.icon = ui_style
|
||||||
mymob.flash.icon_state = "blank"
|
mymob.flash.icon_state = "blank"
|
||||||
mymob.flash.name = "flash"
|
mymob.flash.name = "flash"
|
||||||
mymob.flash.screen_loc = ui_entire_screen
|
mymob.flash.screen_loc = ui_entire_screen
|
||||||
mymob.flash.layer = 17
|
mymob.flash.layer = 17
|
||||||
|
src.other += mymob.flash
|
||||||
|
|
||||||
mymob.zone_sel = new /obj/screen/zone_sel()
|
mymob.zone_sel = new /obj/screen/zone_sel()
|
||||||
mymob.zone_sel.icon = 'icons/mob/screen1_robot.dmi'
|
mymob.zone_sel.icon = ui_style
|
||||||
|
mymob.zone_sel.alpha = ui_alpha
|
||||||
mymob.zone_sel.overlays.Cut()
|
mymob.zone_sel.overlays.Cut()
|
||||||
mymob.zone_sel.overlays += image('icons/mob/zone_sel.dmi', "[mymob.zone_sel.selecting]")
|
mymob.zone_sel.overlays += image('icons/mob/zone_sel.dmi', "[mymob.zone_sel.selecting]")
|
||||||
|
|
||||||
//Handle the gun settings buttons
|
//Handle the gun settings buttons
|
||||||
mymob.gun_setting_icon = new /obj/screen/gun/mode(null)
|
mymob.gun_setting_icon = new /obj/screen/gun/mode(null)
|
||||||
|
mymob.gun_setting_icon.icon = ui_style
|
||||||
|
mymob.gun_setting_icon.alpha = ui_alpha
|
||||||
mymob.item_use_icon = new /obj/screen/gun/item(null)
|
mymob.item_use_icon = new /obj/screen/gun/item(null)
|
||||||
|
mymob.item_use_icon.icon = ui_style
|
||||||
|
mymob.item_use_icon.alpha = ui_alpha
|
||||||
mymob.gun_move_icon = new /obj/screen/gun/move(null)
|
mymob.gun_move_icon = new /obj/screen/gun/move(null)
|
||||||
|
mymob.gun_move_icon.icon = ui_style
|
||||||
|
mymob.gun_move_icon.alpha = ui_alpha
|
||||||
mymob.radio_use_icon = new /obj/screen/gun/radio(null)
|
mymob.radio_use_icon = new /obj/screen/gun/radio(null)
|
||||||
|
mymob.radio_use_icon.icon = ui_style
|
||||||
|
mymob.radio_use_icon.alpha = ui_alpha
|
||||||
|
|
||||||
mymob.client.screen = list()
|
mymob.client.screen = list()
|
||||||
|
|
||||||
|
|||||||
@@ -92,7 +92,7 @@
|
|||||||
if (powerlevel > 0 && !istype(A, /mob/living/carbon/slime))
|
if (powerlevel > 0 && !istype(A, /mob/living/carbon/slime))
|
||||||
if(ishuman(M))
|
if(ishuman(M))
|
||||||
var/mob/living/carbon/human/H = M
|
var/mob/living/carbon/human/H = M
|
||||||
stunprob *= H.species.siemens_coefficient
|
stunprob *= max(H.species.siemens_coefficient,0)
|
||||||
|
|
||||||
|
|
||||||
switch(power * 10)
|
switch(power * 10)
|
||||||
|
|||||||
@@ -107,18 +107,9 @@ var/const/tk_maxrange = 15
|
|||||||
return
|
return
|
||||||
|
|
||||||
var/d = get_dist(user, target)
|
var/d = get_dist(user, target)
|
||||||
if(focus) d = max(d,get_dist(user,focus)) // whichever is further
|
if(focus)
|
||||||
switch(d)
|
d = max(d, get_dist(user, focus)) // whichever is further
|
||||||
if(0)
|
if(d > tk_maxrange)
|
||||||
;
|
|
||||||
if(1 to 5) // not adjacent may mean blocked by window
|
|
||||||
if(!proximity)
|
|
||||||
user.setMoveCooldown(2)
|
|
||||||
if(5 to 7)
|
|
||||||
user.setMoveCooldown(5)
|
|
||||||
if(8 to tk_maxrange)
|
|
||||||
user.setMoveCooldown(10)
|
|
||||||
else
|
|
||||||
user << "<span class='notice'>Your mind won't reach that far.</span>"
|
user << "<span class='notice'>Your mind won't reach that far.</span>"
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
|
||||||
/hook/startup/proc/createDatacore()
|
/hook/startup/proc/createDatacore()
|
||||||
data_core = new /datum/datacore()
|
data_core = new /datum/datacore()
|
||||||
return 1
|
return 1
|
||||||
@@ -25,11 +26,11 @@
|
|||||||
var/dat = {"
|
var/dat = {"
|
||||||
<head><style>
|
<head><style>
|
||||||
.manifest {border-collapse:collapse;}
|
.manifest {border-collapse:collapse;}
|
||||||
.manifest td, th {border:1px solid [monochrome?"black":"#DEF; background-color:white; color:black"]; padding:.25em}
|
.manifest td, th {border:1px solid [monochrome?"black":"[OOC?"black; background-color:#272727; color:white":"#DEF; background-color:white; color:black"]"]; padding:.25em}
|
||||||
.manifest th {height: 2em; [monochrome?"border-top-width: 3px":"background-color: #48C; color:white"]}
|
.manifest th {height: 2em; [monochrome?"border-top-width: 3px":"background-color: [OOC?"#40628A":"#48C"]; color:white"]}
|
||||||
.manifest tr.head th { [monochrome?"border-top-width: 1px":"background-color: #488;"] }
|
.manifest tr.head th { [monochrome?"border-top-width: 1px":"background-color: [OOC?"#013D3B;":"#488;"]"] }
|
||||||
.manifest td:first-child {text-align:right}
|
.manifest td:first-child {text-align:right}
|
||||||
.manifest tr.alt td {[monochrome?"border-top-width: 2px":"background-color: #DEF"]}
|
.manifest tr.alt td {[monochrome?"border-top-width: 2px":"background-color: [OOC?"#373737; color:white":"#DEF"]"]}
|
||||||
</style></head>
|
</style></head>
|
||||||
<table class="manifest" width='350px'>
|
<table class="manifest" width='350px'>
|
||||||
<tr class='head'><th>Name</th><th>Rank</th><th>Activity</th></tr>
|
<tr class='head'><th>Name</th><th>Rank</th><th>Activity</th></tr>
|
||||||
@@ -186,7 +187,7 @@
|
|||||||
G.fields["fingerprint"] = md5(H.dna.uni_identity)
|
G.fields["fingerprint"] = md5(H.dna.uni_identity)
|
||||||
G.fields["p_stat"] = "Active"
|
G.fields["p_stat"] = "Active"
|
||||||
G.fields["m_stat"] = "Stable"
|
G.fields["m_stat"] = "Stable"
|
||||||
G.fields["sex"] = H.gender
|
G.fields["sex"] = gender2text(H.gender)
|
||||||
G.fields["species"] = H.get_species()
|
G.fields["species"] = H.get_species()
|
||||||
G.fields["home_system"] = H.home_system
|
G.fields["home_system"] = H.home_system
|
||||||
G.fields["citizenship"] = H.citizenship
|
G.fields["citizenship"] = H.citizenship
|
||||||
@@ -199,6 +200,7 @@
|
|||||||
var/datum/data/record/M = CreateMedicalRecord(H.real_name, id)
|
var/datum/data/record/M = CreateMedicalRecord(H.real_name, id)
|
||||||
M.fields["b_type"] = H.b_type
|
M.fields["b_type"] = H.b_type
|
||||||
M.fields["b_dna"] = H.dna.unique_enzymes
|
M.fields["b_dna"] = H.dna.unique_enzymes
|
||||||
|
M.fields["id_gender"] = gender2text(H.identifying_gender)
|
||||||
if(H.med_record && !jobban_isbanned(H, "Records"))
|
if(H.med_record && !jobban_isbanned(H, "Records"))
|
||||||
M.fields["notes"] = H.med_record
|
M.fields["notes"] = H.med_record
|
||||||
|
|
||||||
@@ -214,7 +216,8 @@
|
|||||||
L.fields["rank"] = H.mind.assigned_role
|
L.fields["rank"] = H.mind.assigned_role
|
||||||
L.fields["age"] = H.age
|
L.fields["age"] = H.age
|
||||||
L.fields["fingerprint"] = md5(H.dna.uni_identity)
|
L.fields["fingerprint"] = md5(H.dna.uni_identity)
|
||||||
L.fields["sex"] = H.gender
|
L.fields["sex"] = gender2text(H.gender)
|
||||||
|
L.fields["id_gender"] = gender2text(H.identifying_gender)
|
||||||
L.fields["b_type"] = H.b_type
|
L.fields["b_type"] = H.b_type
|
||||||
L.fields["b_dna"] = H.dna.unique_enzymes
|
L.fields["b_dna"] = H.dna.unique_enzymes
|
||||||
L.fields["enzymes"] = H.dna.SE // Used in respawning
|
L.fields["enzymes"] = H.dna.SE // Used in respawning
|
||||||
@@ -255,8 +258,9 @@
|
|||||||
preview_icon.Blend(E.get_icon(), ICON_OVERLAY)
|
preview_icon.Blend(E.get_icon(), ICON_OVERLAY)
|
||||||
|
|
||||||
//Tail
|
//Tail
|
||||||
if(H.species.tail)
|
var/use_species_tail = H.species.get_tail(H)
|
||||||
temp = new/icon("icon" = 'icons/effects/species.dmi', "icon_state" = "[H.species.tail]_s")
|
if(use_species_tail)
|
||||||
|
temp = new/icon("icon" = 'icons/effects/species.dmi', "icon_state" = "[use_species_tail]_s")
|
||||||
preview_icon.Blend(temp, ICON_OVERLAY)
|
preview_icon.Blend(temp, ICON_OVERLAY)
|
||||||
|
|
||||||
// Skin tone
|
// Skin tone
|
||||||
@@ -418,7 +422,7 @@
|
|||||||
G.fields["id"] = id
|
G.fields["id"] = id
|
||||||
G.fields["rank"] = "Unassigned"
|
G.fields["rank"] = "Unassigned"
|
||||||
G.fields["real_rank"] = "Unassigned"
|
G.fields["real_rank"] = "Unassigned"
|
||||||
G.fields["sex"] = "Male"
|
G.fields["sex"] = "Unknown"
|
||||||
G.fields["age"] = "Unknown"
|
G.fields["age"] = "Unknown"
|
||||||
G.fields["fingerprint"] = "Unknown"
|
G.fields["fingerprint"] = "Unknown"
|
||||||
G.fields["p_stat"] = "Active"
|
G.fields["p_stat"] = "Active"
|
||||||
@@ -460,6 +464,7 @@
|
|||||||
M.fields["name"] = name
|
M.fields["name"] = name
|
||||||
M.fields["b_type"] = "AB+"
|
M.fields["b_type"] = "AB+"
|
||||||
M.fields["b_dna"] = md5(name)
|
M.fields["b_dna"] = md5(name)
|
||||||
|
M.fields["id_gender"] = "Unknown"
|
||||||
M.fields["mi_dis"] = "None"
|
M.fields["mi_dis"] = "None"
|
||||||
M.fields["mi_dis_d"] = "No minor disabilities have been declared."
|
M.fields["mi_dis_d"] = "No minor disabilities have been declared."
|
||||||
M.fields["ma_dis"] = "None"
|
M.fields["ma_dis"] = "None"
|
||||||
|
|||||||
@@ -76,7 +76,7 @@
|
|||||||
checklist = items.Copy() // You should really trust Copy
|
checklist = items.Copy() // You should really trust Copy
|
||||||
if(istype(container, /obj/machinery))
|
if(istype(container, /obj/machinery))
|
||||||
var/obj/machinery/machine = container
|
var/obj/machinery/machine = container
|
||||||
for(var/obj/O in (machine.contents - machine.component_parts))
|
for(var/obj/O in ((machine.contents - machine.component_parts) - machine.circuit))
|
||||||
if(istype(O,/obj/item/weapon/reagent_containers/food/snacks/grown))
|
if(istype(O,/obj/item/weapon/reagent_containers/food/snacks/grown))
|
||||||
continue // Fruit is handled in check_fruit().
|
continue // Fruit is handled in check_fruit().
|
||||||
var/found = 0
|
var/found = 0
|
||||||
@@ -110,7 +110,7 @@
|
|||||||
var/obj/result_obj = new result(container)
|
var/obj/result_obj = new result(container)
|
||||||
if(istype(container, /obj/machinery))
|
if(istype(container, /obj/machinery))
|
||||||
var/obj/machinery/machine = container
|
var/obj/machinery/machine = container
|
||||||
for (var/obj/O in ((machine.contents-result_obj)-machine.component_parts))
|
for (var/obj/O in ((machine.contents-result_obj - machine.component_parts) - machine.circuit))
|
||||||
O.reagents.trans_to_obj(result_obj, O.reagents.total_volume)
|
O.reagents.trans_to_obj(result_obj, O.reagents.total_volume)
|
||||||
qdel(O)
|
qdel(O)
|
||||||
else
|
else
|
||||||
@@ -128,7 +128,7 @@
|
|||||||
var/obj/result_obj = new result(container)
|
var/obj/result_obj = new result(container)
|
||||||
if(istype(container, /obj/machinery))
|
if(istype(container, /obj/machinery))
|
||||||
var/obj/machinery/machine = container
|
var/obj/machinery/machine = container
|
||||||
for (var/obj/O in ((machine.contents-result_obj)-machine.component_parts))
|
for (var/obj/O in ((machine.contents-result_obj - machine.component_parts) - machine.circuit))
|
||||||
if (O.reagents)
|
if (O.reagents)
|
||||||
O.reagents.del_reagent("nutriment")
|
O.reagents.del_reagent("nutriment")
|
||||||
O.reagents.update_total()
|
O.reagents.update_total()
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -70,6 +70,12 @@
|
|||||||
var/default_access = list()
|
var/default_access = list()
|
||||||
var/id_type = /obj/item/weapon/card/id
|
var/id_type = /obj/item/weapon/card/id
|
||||||
|
|
||||||
|
var/antag_text = "You are an antagonist! Within the rules, \
|
||||||
|
try to act as an opposing force to the crew. Further RP and try to make sure \
|
||||||
|
other players have <i>fun</i>! If you are confused or at a loss, always adminhelp, \
|
||||||
|
and before taking extreme actions, please try to also contact the administration! \
|
||||||
|
Think through your actions and make the roleplay immersive! <b>Please remember all \
|
||||||
|
rules aside from those without explicit exceptions apply to antagonists.</b>"
|
||||||
|
|
||||||
/datum/antagonist/New()
|
/datum/antagonist/New()
|
||||||
..()
|
..()
|
||||||
|
|||||||
@@ -99,10 +99,13 @@
|
|||||||
player.current << "<span class='notice'>[leader_welcome_text]</span>"
|
player.current << "<span class='notice'>[leader_welcome_text]</span>"
|
||||||
else
|
else
|
||||||
player.current << "<span class='notice'>[welcome_text]</span>"
|
player.current << "<span class='notice'>[welcome_text]</span>"
|
||||||
|
if (config.objectives_disabled)
|
||||||
|
player.current << "<span class='notice'>[antag_text]</span>"
|
||||||
|
|
||||||
if((flags & ANTAG_HAS_NUKE) && !spawned_nuke)
|
if((flags & ANTAG_HAS_NUKE) && !spawned_nuke)
|
||||||
create_nuke()
|
create_nuke()
|
||||||
|
|
||||||
|
if (!config.objectives_disabled)
|
||||||
show_objectives(player)
|
show_objectives(player)
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
|
|||||||
@@ -46,8 +46,8 @@
|
|||||||
round for everybody else.", "Ambitions", mind.ambitions) as null|message
|
round for everybody else.", "Ambitions", mind.ambitions) as null|message
|
||||||
if(isnull(new_ambitions))
|
if(isnull(new_ambitions))
|
||||||
return
|
return
|
||||||
mind.ambitions = new_ambitions
|
|
||||||
new_ambitions = sanitize(new_ambitions)
|
new_ambitions = sanitize(new_ambitions)
|
||||||
|
mind.ambitions = new_ambitions
|
||||||
if(new_ambitions)
|
if(new_ambitions)
|
||||||
src << "<span class='notice'>You've set your goal to be '[new_ambitions]'.</span>"
|
src << "<span class='notice'>You've set your goal to be '[new_ambitions]'.</span>"
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -7,6 +7,12 @@ var/datum/antagonist/ert/ert
|
|||||||
role_text = "Emergency Responder"
|
role_text = "Emergency Responder"
|
||||||
role_text_plural = "Emergency Responders"
|
role_text_plural = "Emergency Responders"
|
||||||
welcome_text = "As member of the Emergency Response Team, you answer only to your leader and company officials."
|
welcome_text = "As member of the Emergency Response Team, you answer only to your leader and company officials."
|
||||||
|
antag_text = "You are an <b>anti</b> antagonist! Within the rules, \
|
||||||
|
try to save the station and its inhabitants from the ongoing crisis. \
|
||||||
|
Try to make sure other players have <i>fun</i>! If you are confused or at a loss, always adminhelp, \
|
||||||
|
and before taking extreme actions, please try to also contact the administration! \
|
||||||
|
Think through your actions and make the roleplay immersive! <b>Please remember all \
|
||||||
|
rules aside from those without explicit exceptions apply to the ERT.</b>"
|
||||||
leader_welcome_text = "As leader of the Emergency Response Team, you answer only to the Company, and have authority to override the Captain where it is necessary to achieve your mission goals. It is recommended that you attempt to cooperate with the captain where possible, however."
|
leader_welcome_text = "As leader of the Emergency Response Team, you answer only to the Company, and have authority to override the Captain where it is necessary to achieve your mission goals. It is recommended that you attempt to cooperate with the captain where possible, however."
|
||||||
landmark_id = "Response Team"
|
landmark_id = "Response Team"
|
||||||
id_type = /obj/item/weapon/card/id/centcom/ERT
|
id_type = /obj/item/weapon/card/id/centcom/ERT
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ var/datum/antagonist/mercenary/mercs
|
|||||||
player.equip_to_slot_or_del(new /obj/item/clothing/shoes/swat(player), slot_shoes)
|
player.equip_to_slot_or_del(new /obj/item/clothing/shoes/swat(player), slot_shoes)
|
||||||
player.equip_to_slot_or_del(new /obj/item/clothing/gloves/swat(player), slot_gloves)
|
player.equip_to_slot_or_del(new /obj/item/clothing/gloves/swat(player), slot_gloves)
|
||||||
if(player.backbag == 2) player.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(player), slot_back)
|
if(player.backbag == 2) player.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(player), slot_back)
|
||||||
if(player.backbag == 3) player.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_norm(player), slot_back)
|
if(player.backbag == 3) player.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/norm(player), slot_back)
|
||||||
if(player.backbag == 4) player.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(player), slot_back)
|
if(player.backbag == 4) player.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(player), slot_back)
|
||||||
player.equip_to_slot_or_del(new /obj/item/weapon/storage/box/engineer(player.back), slot_in_backpack)
|
player.equip_to_slot_or_del(new /obj/item/weapon/storage/box/engineer(player.back), slot_in_backpack)
|
||||||
player.equip_to_slot_or_del(new /obj/item/weapon/reagent_containers/pill/cyanide(player), slot_in_backpack)
|
player.equip_to_slot_or_del(new /obj/item/weapon/reagent_containers/pill/cyanide(player), slot_in_backpack)
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ var/datum/antagonist/wizard/wizards
|
|||||||
wizard_mob.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe(wizard_mob), slot_wear_suit)
|
wizard_mob.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe(wizard_mob), slot_wear_suit)
|
||||||
wizard_mob.equip_to_slot_or_del(new /obj/item/clothing/head/wizard(wizard_mob), slot_head)
|
wizard_mob.equip_to_slot_or_del(new /obj/item/clothing/head/wizard(wizard_mob), slot_head)
|
||||||
if(wizard_mob.backbag == 2) wizard_mob.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(wizard_mob), slot_back)
|
if(wizard_mob.backbag == 2) wizard_mob.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(wizard_mob), slot_back)
|
||||||
if(wizard_mob.backbag == 3) wizard_mob.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_norm(wizard_mob), slot_back)
|
if(wizard_mob.backbag == 3) wizard_mob.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/norm(wizard_mob), slot_back)
|
||||||
if(wizard_mob.backbag == 4) wizard_mob.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(wizard_mob), slot_back)
|
if(wizard_mob.backbag == 4) wizard_mob.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(wizard_mob), slot_back)
|
||||||
wizard_mob.equip_to_slot_or_del(new /obj/item/weapon/storage/box(wizard_mob), slot_in_backpack)
|
wizard_mob.equip_to_slot_or_del(new /obj/item/weapon/storage/box(wizard_mob), slot_in_backpack)
|
||||||
wizard_mob.equip_to_slot_or_del(new /obj/item/weapon/teleportation_scroll(wizard_mob), slot_r_store)
|
wizard_mob.equip_to_slot_or_del(new /obj/item/weapon/teleportation_scroll(wizard_mob), slot_r_store)
|
||||||
@@ -98,7 +98,7 @@ var/datum/antagonist/wizard/wizards
|
|||||||
break
|
break
|
||||||
if(!survivor)
|
if(!survivor)
|
||||||
feedback_set_details("round_end_result","loss - wizard killed")
|
feedback_set_details("round_end_result","loss - wizard killed")
|
||||||
world << "<span class='danger'><font size = 3>The [(current_antagonists.len>1)?"[role_text_plural] have":"[role_text] has"] been killed by the crew! The Space Wizards Federation has been taught a lesson they will not soon forget!</font></span>"
|
world << "<span class='danger'><font size = 3>The [(current_antagonists.len>1)?"[role_text_plural] have":"[role_text] has"] been killed by the crew!</font></span>"
|
||||||
|
|
||||||
//To batch-remove wizard spells. Linked to mind.dm.
|
//To batch-remove wizard spells. Linked to mind.dm.
|
||||||
/mob/proc/spellremove()
|
/mob/proc/spellremove()
|
||||||
|
|||||||
@@ -3,31 +3,51 @@ var/datum/antagonist/renegade/renegades
|
|||||||
/datum/antagonist/renegade
|
/datum/antagonist/renegade
|
||||||
role_text = "Renegade"
|
role_text = "Renegade"
|
||||||
role_text_plural = "Renegades"
|
role_text_plural = "Renegades"
|
||||||
welcome_text = "Your own safety matters above all else, trust no one and kill anyone who gets in your way. However, armed as you are, now would be the perfect time to settle that score or grab that pair of yellow gloves you've been eyeing..."
|
welcome_text = "Something's going to go wrong today, you can just feel it. You're paranoid, you've got a gun, and you're going to survive."
|
||||||
|
antag_text = "You are a <b>minor</b> antagonist! Within the rules, \
|
||||||
|
try to protect yourself and what's important to you. You aren't here to cause trouble, \
|
||||||
|
you're just more willing (and equipped) to go to extremes to stop it than others are. \
|
||||||
|
Your job is to somewhat oppose the other antagonists, should they threaten you, in ways that aren't quite legal themselves. \
|
||||||
|
Try to make sure other players have <i>fun</i>! If you are confused or at a loss, always adminhelp, \
|
||||||
|
and before taking extreme actions, please try to also contact the administration! \
|
||||||
|
Think through your actions and make the roleplay immersive! <b>Please remember all \
|
||||||
|
rules aside from those without explicit exceptions apply to antagonists.</b>"
|
||||||
|
|
||||||
id = MODE_RENEGADE
|
id = MODE_RENEGADE
|
||||||
flags = ANTAG_SUSPICIOUS | ANTAG_IMPLANT_IMMUNE | ANTAG_RANDSPAWN | ANTAG_VOTABLE
|
flags = ANTAG_SUSPICIOUS | ANTAG_IMPLANT_IMMUNE | ANTAG_RANDSPAWN | ANTAG_VOTABLE
|
||||||
hard_cap = 5
|
|
||||||
hard_cap_round = 7
|
|
||||||
|
|
||||||
hard_cap = 8
|
hard_cap = 8
|
||||||
hard_cap_round = 12
|
hard_cap_round = 12
|
||||||
initial_spawn_req = 3
|
initial_spawn_req = 2
|
||||||
initial_spawn_target = 6
|
initial_spawn_target = 4
|
||||||
|
|
||||||
var/list/spawn_guns = list(
|
var/list/spawn_guns = list(
|
||||||
/obj/item/weapon/gun/energy/gun,
|
|
||||||
/obj/item/weapon/gun/energy/laser,
|
/obj/item/weapon/gun/energy/laser,
|
||||||
/obj/item/weapon/gun/projectile,
|
/obj/item/weapon/gun/energy/captain,
|
||||||
/obj/item/weapon/gun/projectile/revolver/detective,
|
/obj/item/weapon/gun/energy/lasercannon,
|
||||||
/obj/item/weapon/gun/projectile/automatic/c20r,
|
/obj/item/weapon/gun/energy/xray,
|
||||||
/obj/item/weapon/gun/projectile/deagle/camo,
|
/obj/item/weapon/gun/energy/gun,
|
||||||
/obj/item/weapon/gun/projectile/pistol,
|
/obj/item/weapon/gun/energy/gun/burst,
|
||||||
/obj/item/weapon/silencer,
|
/obj/item/weapon/gun/energy/gun/nuclear,
|
||||||
/obj/item/weapon/gun/projectile/shotgun/pump,
|
/obj/item/weapon/gun/energy/crossbow,
|
||||||
/obj/item/weapon/gun/projectile/shotgun/pump/combat,
|
/obj/item/weapon/gun/energy/crossbow/largecrossbow,
|
||||||
/obj/item/weapon/gun/projectile/automatic,
|
/obj/item/weapon/gun/projectile/automatic,
|
||||||
/obj/item/weapon/gun/projectile/automatic/mini_uzi,
|
/obj/item/weapon/gun/projectile/automatic/mini_uzi,
|
||||||
/obj/item/weapon/gun/energy/crossbow
|
/obj/item/weapon/gun/projectile/automatic/c20r,
|
||||||
|
/obj/item/weapon/gun/projectile/automatic/sts35,
|
||||||
|
/obj/item/weapon/gun/projectile/automatic/wt550,
|
||||||
|
/obj/item/weapon/gun/projectile/automatic/z8,
|
||||||
|
/obj/item/weapon/gun/projectile/colt/detective,
|
||||||
|
/obj/item/weapon/gun/projectile/sec/wood,
|
||||||
|
/obj/item/weapon/gun/projectile/silenced,
|
||||||
|
/obj/item/weapon/gun/projectile/pistol,
|
||||||
|
/obj/item/weapon/gun/projectile/revolver,
|
||||||
|
/obj/item/weapon/gun/projectile/shotgun/pump,
|
||||||
|
/obj/item/weapon/gun/projectile/shotgun/pump/combat,
|
||||||
|
/obj/item/weapon/gun/projectile/shotgun/doublebarrel,
|
||||||
|
list(/obj/item/weapon/gun/projectile/shotgun/doublebarrel/pellet, /obj/item/weapon/gun/projectile/shotgun/doublebarrel/sawn),
|
||||||
|
list(/obj/item/weapon/gun/projectile/deagle, /obj/item/weapon/gun/projectile/deagle/gold, /obj/item/weapon/gun/projectile/deagle/camo),
|
||||||
|
list(/obj/item/weapon/gun/projectile/revolver/detective, /obj/item/weapon/gun/projectile/revolver/deckard)
|
||||||
)
|
)
|
||||||
|
|
||||||
/datum/antagonist/renegade/New()
|
/datum/antagonist/renegade/New()
|
||||||
@@ -49,7 +69,19 @@ var/datum/antagonist/renegade/renegades
|
|||||||
return
|
return
|
||||||
|
|
||||||
var/gun_type = pick(spawn_guns)
|
var/gun_type = pick(spawn_guns)
|
||||||
|
if(islist(gun_type))
|
||||||
|
gun_type = pick(gun_type)
|
||||||
var/obj/item/gun = new gun_type(get_turf(player))
|
var/obj/item/gun = new gun_type(get_turf(player))
|
||||||
|
|
||||||
|
// Attempt to put into a container.
|
||||||
|
if(player.equip_to_storage(gun))
|
||||||
|
return
|
||||||
|
|
||||||
|
// If that failed, attempt to put into any valid non-handslot
|
||||||
|
if(player.equip_to_appropriate_slot(gun))
|
||||||
|
return
|
||||||
|
|
||||||
|
// If that failed, then finally attempt to at least let the player carry the weapon
|
||||||
player.put_in_hands(gun)
|
player.put_in_hands(gun)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -3,10 +3,12 @@
|
|||||||
var/datum/dna/dna
|
var/datum/dna/dna
|
||||||
var/speciesName
|
var/speciesName
|
||||||
var/list/languages
|
var/list/languages
|
||||||
|
var/identifying_gender
|
||||||
|
|
||||||
/datum/absorbed_dna/New(var/newName, var/newDNA, var/newSpecies, var/newLanguages)
|
/datum/absorbed_dna/New(var/newName, var/newDNA, var/newSpecies, var/newLanguages, var/newIdentifying_Gender)
|
||||||
..()
|
..()
|
||||||
name = newName
|
name = newName
|
||||||
dna = newDNA
|
dna = newDNA
|
||||||
speciesName = newSpecies
|
speciesName = newSpecies
|
||||||
languages = newLanguages
|
languages = newLanguages
|
||||||
|
identifying_gender = newIdentifying_Gender
|
||||||
@@ -85,7 +85,7 @@ var/global/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","E
|
|||||||
|
|
||||||
var/mob/living/carbon/human/H = src
|
var/mob/living/carbon/human/H = src
|
||||||
if(istype(H))
|
if(istype(H))
|
||||||
var/datum/absorbed_dna/newDNA = new(H.real_name, H.dna, H.species.name, H.languages)
|
var/datum/absorbed_dna/newDNA = new(H.real_name, H.dna, H.species.name, H.languages, H.identifying_gender)
|
||||||
absorbDNA(newDNA)
|
absorbDNA(newDNA)
|
||||||
|
|
||||||
return 1
|
return 1
|
||||||
|
|||||||
@@ -39,6 +39,7 @@
|
|||||||
H.b_type = "AB+" //For some reason we have two blood types on the mob.
|
H.b_type = "AB+" //For some reason we have two blood types on the mob.
|
||||||
for(var/flavor in H.flavor_texts) //Nulls out flavor text, so we don't keep our previous mob's flavor.
|
for(var/flavor in H.flavor_texts) //Nulls out flavor text, so we don't keep our previous mob's flavor.
|
||||||
flavor = null
|
flavor = null
|
||||||
|
H.identifying_gender = chosen_dna.identifying_gender
|
||||||
src.real_name = chosen_dna.name
|
src.real_name = chosen_dna.name
|
||||||
src.flavor_text = ""
|
src.flavor_text = ""
|
||||||
src.UpdateAppearance()
|
src.UpdateAppearance()
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/obj/item/weapon/melee/cultblade
|
/obj/item/weapon/melee/cultblade
|
||||||
name = "cult blade"
|
name = "cult blade"
|
||||||
desc = "An arcane weapon wielded by the followers of Nar-Sie"
|
desc = "An arcane weapon wielded by the followers of Nar-Sie."
|
||||||
icon_state = "cultblade"
|
icon_state = "cultblade"
|
||||||
item_state = "cultblade"
|
item_state = "cultblade"
|
||||||
w_class = 4
|
w_class = 4
|
||||||
@@ -56,7 +56,7 @@
|
|||||||
|
|
||||||
/obj/item/clothing/suit/cultrobes
|
/obj/item/clothing/suit/cultrobes
|
||||||
name = "cult robes"
|
name = "cult robes"
|
||||||
desc = "A set of armored robes worn by the followers of Nar-Sie"
|
desc = "A set of armored robes worn by the followers of Nar-Sie."
|
||||||
icon_state = "cultrobes"
|
icon_state = "cultrobes"
|
||||||
item_state = "cultrobes"
|
item_state = "cultrobes"
|
||||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
|
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
|
||||||
@@ -74,7 +74,7 @@
|
|||||||
|
|
||||||
/obj/item/clothing/suit/cultrobes/magusred
|
/obj/item/clothing/suit/cultrobes/magusred
|
||||||
name = "magus robes"
|
name = "magus robes"
|
||||||
desc = "A set of armored robes worn by the followers of Nar-Sie"
|
desc = "A set of armored robes worn by the followers of Nar-Sie."
|
||||||
icon_state = "magusred"
|
icon_state = "magusred"
|
||||||
item_state = "magusred"
|
item_state = "magusred"
|
||||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
|
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
|
||||||
@@ -82,7 +82,7 @@
|
|||||||
|
|
||||||
/obj/item/clothing/head/helmet/space/cult
|
/obj/item/clothing/head/helmet/space/cult
|
||||||
name = "cult helmet"
|
name = "cult helmet"
|
||||||
desc = "A space worthy helmet used by the followers of Nar-Sie"
|
desc = "A space worthy helmet used by the followers of Nar-Sie."
|
||||||
icon_state = "cult_helmet"
|
icon_state = "cult_helmet"
|
||||||
armor = list(melee = 60, bullet = 50, laser = 30, energy = 15, bomb = 30, bio = 30, rad = 30)
|
armor = list(melee = 60, bullet = 50, laser = 30, energy = 15, bomb = 30, bio = 30, rad = 30)
|
||||||
siemens_coefficient = 0
|
siemens_coefficient = 0
|
||||||
@@ -94,7 +94,7 @@
|
|||||||
name = "cult armour"
|
name = "cult armour"
|
||||||
icon_state = "cult_armour"
|
icon_state = "cult_armour"
|
||||||
item_state = "cult_armour"
|
item_state = "cult_armour"
|
||||||
desc = "A bulky suit of armour, bristling with spikes. It looks space proof."
|
desc = "A bulky suit of armour, bristling with spikes. It looks space-worthy."
|
||||||
w_class = 3
|
w_class = 3
|
||||||
allowed = list(/obj/item/weapon/book/tome,/obj/item/weapon/melee/cultblade,/obj/item/weapon/tank/emergency_oxygen,/obj/item/device/suit_cooling_unit)
|
allowed = list(/obj/item/weapon/book/tome,/obj/item/weapon/melee/cultblade,/obj/item/weapon/tank/emergency_oxygen,/obj/item/device/suit_cooling_unit)
|
||||||
slowdown = 1
|
slowdown = 1
|
||||||
|
|||||||
@@ -8,18 +8,18 @@
|
|||||||
|
|
||||||
/obj/structure/cult/talisman
|
/obj/structure/cult/talisman
|
||||||
name = "Altar"
|
name = "Altar"
|
||||||
desc = "A bloodstained altar dedicated to Nar-Sie"
|
desc = "A bloodstained altar dedicated to Nar-Sie."
|
||||||
icon_state = "talismanaltar"
|
icon_state = "talismanaltar"
|
||||||
|
|
||||||
|
|
||||||
/obj/structure/cult/forge
|
/obj/structure/cult/forge
|
||||||
name = "Daemon forge"
|
name = "Daemon forge"
|
||||||
desc = "A forge used in crafting the unholy weapons used by the armies of Nar-Sie"
|
desc = "A forge used in crafting the unholy weapons used by the armies of Nar-Sie."
|
||||||
icon_state = "forge"
|
icon_state = "forge"
|
||||||
|
|
||||||
/obj/structure/cult/pylon
|
/obj/structure/cult/pylon
|
||||||
name = "Pylon"
|
name = "Pylon"
|
||||||
desc = "A floating crystal that hums with an unearthly energy"
|
desc = "A floating crystal that hums with an unearthly energy."
|
||||||
icon_state = "pylon"
|
icon_state = "pylon"
|
||||||
var/isbroken = 0
|
var/isbroken = 0
|
||||||
light_range = 5
|
light_range = 5
|
||||||
@@ -71,7 +71,7 @@
|
|||||||
|
|
||||||
/obj/structure/cult/tome
|
/obj/structure/cult/tome
|
||||||
name = "Desk"
|
name = "Desk"
|
||||||
desc = "A desk covered in arcane manuscripts and tomes in unknown languages. Looking at the text makes your skin crawl"
|
desc = "A desk covered in arcane manuscripts and tomes in unknown languages. Looking at the text makes your skin crawl."
|
||||||
icon_state = "tomealtar"
|
icon_state = "tomealtar"
|
||||||
|
|
||||||
//sprites for this no longer exist -Pete
|
//sprites for this no longer exist -Pete
|
||||||
@@ -86,7 +86,7 @@
|
|||||||
|
|
||||||
/obj/effect/gateway
|
/obj/effect/gateway
|
||||||
name = "gateway"
|
name = "gateway"
|
||||||
desc = "You're pretty sure that abyss is staring back"
|
desc = "You're pretty sure that abyss is staring back."
|
||||||
icon = 'icons/obj/cult.dmi'
|
icon = 'icons/obj/cult.dmi'
|
||||||
icon_state = "hole"
|
icon_state = "hole"
|
||||||
density = 1
|
density = 1
|
||||||
|
|||||||
@@ -143,7 +143,7 @@ var/global/list/narsie_list = list()
|
|||||||
/obj/singularity/narsie/proc/narsiefloor(var/turf/T)//leaving "footprints"
|
/obj/singularity/narsie/proc/narsiefloor(var/turf/T)//leaving "footprints"
|
||||||
if(!(istype(T, /turf/simulated/wall/cult)||istype(T, /turf/space)))
|
if(!(istype(T, /turf/simulated/wall/cult)||istype(T, /turf/space)))
|
||||||
if(T.icon_state != "cult-narsie")
|
if(T.icon_state != "cult-narsie")
|
||||||
T.desc = "something that goes beyond your understanding went this way"
|
T.desc = "something that goes beyond your understanding went this way."
|
||||||
T.icon = 'icons/turf/flooring/cult.dmi'
|
T.icon = 'icons/turf/flooring/cult.dmi'
|
||||||
T.icon_state = "cult-narsie"
|
T.icon_state = "cult-narsie"
|
||||||
T.set_light(1)
|
T.set_light(1)
|
||||||
|
|||||||
@@ -346,6 +346,7 @@ var/list/sacrificed = list()
|
|||||||
for(var/mob/observer/dead/O in loc)
|
for(var/mob/observer/dead/O in loc)
|
||||||
if(!O.client) continue
|
if(!O.client) continue
|
||||||
if(O.mind && O.mind.current && O.mind.current.stat != DEAD) continue
|
if(O.mind && O.mind.current && O.mind.current.stat != DEAD) continue
|
||||||
|
if(!(O.client.prefs.be_special & BE_CULTIST)) continue
|
||||||
ghost = O
|
ghost = O
|
||||||
break
|
break
|
||||||
|
|
||||||
@@ -442,6 +443,7 @@ var/list/sacrificed = list()
|
|||||||
if(!O.client) continue
|
if(!O.client) continue
|
||||||
if(!O.MayRespawn()) continue
|
if(!O.MayRespawn()) continue
|
||||||
if(O.mind && O.mind.current && O.mind.current.stat != DEAD) continue
|
if(O.mind && O.mind.current && O.mind.current.stat != DEAD) continue
|
||||||
|
if(!(O.client.prefs.be_special & BE_CULTIST)) continue
|
||||||
ghost = O
|
ghost = O
|
||||||
break
|
break
|
||||||
if(!ghost)
|
if(!ghost)
|
||||||
|
|||||||
@@ -201,7 +201,6 @@ var/global/list/additional_antag_types = list()
|
|||||||
display_roundstart_logout_report()
|
display_roundstart_logout_report()
|
||||||
|
|
||||||
spawn (rand(waittime_l, waittime_h))
|
spawn (rand(waittime_l, waittime_h))
|
||||||
send_intercept()
|
|
||||||
spawn(rand(100,150))
|
spawn(rand(100,150))
|
||||||
announce_ert_disabled()
|
announce_ert_disabled()
|
||||||
|
|
||||||
@@ -373,56 +372,6 @@ var/global/list/additional_antag_types = list()
|
|||||||
/datum/game_mode/proc/check_win() //universal trigger to be called at mob death, nuke explosion, etc. To be called from everywhere.
|
/datum/game_mode/proc/check_win() //universal trigger to be called at mob death, nuke explosion, etc. To be called from everywhere.
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
/datum/game_mode/proc/send_intercept()
|
|
||||||
|
|
||||||
var/intercepttext = "<FONT size = 3><B>Cent. Com. Update</B> Requested status information:</FONT><HR>"
|
|
||||||
intercepttext += "<B> In case you have misplaced your copy, attached is a list of personnel whom reliable sources™ suspect may be affiliated with subversive elements:</B><br>"
|
|
||||||
|
|
||||||
var/list/disregard_roles = list()
|
|
||||||
for(var/antag_type in all_antag_types)
|
|
||||||
var/datum/antagonist/antag = all_antag_types[antag_type]
|
|
||||||
if(antag.flags & ANTAG_SUSPICIOUS)
|
|
||||||
disregard_roles |= antag.role_text
|
|
||||||
|
|
||||||
var/list/suspects = list()
|
|
||||||
for(var/mob/living/carbon/human/man in player_list) if(man.client && man.mind)
|
|
||||||
|
|
||||||
// NT relation option
|
|
||||||
var/special_role = man.mind.special_role
|
|
||||||
var/datum/antagonist/special_role_data = get_antag_data(special_role)
|
|
||||||
|
|
||||||
if (special_role in disregard_roles)
|
|
||||||
continue
|
|
||||||
else if(man.client.prefs.nanotrasen_relation == COMPANY_OPPOSED && prob(50) || \
|
|
||||||
man.client.prefs.nanotrasen_relation == COMPANY_SKEPTICAL && prob(20))
|
|
||||||
suspects += man
|
|
||||||
// Antags
|
|
||||||
else if(special_role_data && prob(special_role_data.suspicion_chance))
|
|
||||||
suspects += man
|
|
||||||
|
|
||||||
// Some poor people who were just in the wrong place at the wrong time..
|
|
||||||
else if(prob(10))
|
|
||||||
suspects += man
|
|
||||||
|
|
||||||
for(var/mob/M in suspects)
|
|
||||||
if(player_is_antag(M.mind, only_offstation_roles = 1))
|
|
||||||
continue
|
|
||||||
switch(rand(1, 100))
|
|
||||||
if(1 to 50)
|
|
||||||
intercepttext += "Someone with the job of <b>[M.mind.assigned_role]</b> <br>"
|
|
||||||
else
|
|
||||||
intercepttext += "<b>[M.name]</b>, the <b>[M.mind.assigned_role]</b> <br>"
|
|
||||||
|
|
||||||
for (var/obj/machinery/computer/communications/comm in machines)
|
|
||||||
if (!(comm.stat & (BROKEN | NOPOWER)) && comm.prints_intercept)
|
|
||||||
var/obj/item/weapon/paper/intercept = new /obj/item/weapon/paper( comm.loc )
|
|
||||||
intercept.name = "Cent. Com. Status Summary"
|
|
||||||
intercept.info = intercepttext
|
|
||||||
|
|
||||||
comm.messagetitle.Add("Cent. Com. Status Summary")
|
|
||||||
comm.messagetext.Add(intercepttext)
|
|
||||||
world << sound('sound/AI/commandreport.ogg')
|
|
||||||
|
|
||||||
/datum/game_mode/proc/get_players_for_role(var/role, var/antag_id)
|
/datum/game_mode/proc/get_players_for_role(var/role, var/antag_id)
|
||||||
var/list/players = list()
|
var/list/players = list()
|
||||||
var/list/candidates = list()
|
var/list/candidates = list()
|
||||||
@@ -567,25 +516,10 @@ proc/get_nt_opposed()
|
|||||||
if(dudes.len == 0) return null
|
if(dudes.len == 0) return null
|
||||||
return pick(dudes)
|
return pick(dudes)
|
||||||
|
|
||||||
//Announces objectives/generic antag text.
|
|
||||||
/proc/show_generic_antag_text(var/datum/mind/player)
|
|
||||||
if(player.current)
|
|
||||||
player.current << \
|
|
||||||
"You are an antagonist! <font color=blue>Within the rules,</font> \
|
|
||||||
try to act as an opposing force to the crew. Further RP and try to make sure \
|
|
||||||
other players have <i>fun</i>! If you are confused or at a loss, always adminhelp, \
|
|
||||||
and before taking extreme actions, please try to also contact the administration! \
|
|
||||||
Think through your actions and make the roleplay immersive! <b>Please remember all \
|
|
||||||
rules aside from those without explicit exceptions apply to antagonists.</b>"
|
|
||||||
|
|
||||||
/proc/show_objectives(var/datum/mind/player)
|
/proc/show_objectives(var/datum/mind/player)
|
||||||
|
|
||||||
if(!player || !player.current) return
|
if(!player || !player.current) return
|
||||||
|
|
||||||
if(config.objectives_disabled)
|
|
||||||
show_generic_antag_text(player)
|
|
||||||
return
|
|
||||||
|
|
||||||
var/obj_count = 1
|
var/obj_count = 1
|
||||||
player.current << "<span class='notice'>Your current objectives:</span>"
|
player.current << "<span class='notice'>Your current objectives:</span>"
|
||||||
for(var/datum/objective/objective in player.objectives)
|
for(var/datum/objective/objective in player.objectives)
|
||||||
|
|||||||
@@ -3,9 +3,9 @@
|
|||||||
round_description = "Subversive elements have invaded the station, and certain individuals are feeling uncertain about their safety."
|
round_description = "Subversive elements have invaded the station, and certain individuals are feeling uncertain about their safety."
|
||||||
extended_round_description = "Traitors and renegades spawn during this round."
|
extended_round_description = "Traitors and renegades spawn during this round."
|
||||||
config_tag = "traitorren"
|
config_tag = "traitorren"
|
||||||
required_players = 10 //I don't think we can have it lower and not need an ERT every round.
|
required_players = 11 //I don't think we can have it lower and not need an ERT every round.
|
||||||
required_players_secret = 11 //I don't think we can have it lower and not need an ERT every round.
|
required_players_secret = 11 //I don't think we can have it lower and not need an ERT every round.
|
||||||
required_enemies = 4
|
required_enemies = 4
|
||||||
end_on_antag_death = 0
|
end_on_antag_death = 0
|
||||||
antag_tags = list(MODE_TRAITOR, MODE_RENEGADE)
|
antag_tags = list(MODE_AUTOTRAITOR, MODE_RENEGADE)
|
||||||
require_all_templates = 1
|
require_all_templates = 1
|
||||||
@@ -3,8 +3,8 @@
|
|||||||
round_description = "A space wizard and a ninja have invaded the station!"
|
round_description = "A space wizard and a ninja have invaded the station!"
|
||||||
extended_round_description = "A ninja and wizard spawn during this round."
|
extended_round_description = "A ninja and wizard spawn during this round."
|
||||||
config_tag = "visitors"
|
config_tag = "visitors"
|
||||||
required_players = 6
|
required_players = 8
|
||||||
required_players_secret = 6
|
required_players_secret = 8
|
||||||
required_enemies = 2
|
required_enemies = 2
|
||||||
end_on_antag_death = 0
|
end_on_antag_death = 0
|
||||||
antag_tags = list(MODE_WIZARD, MODE_NINJA)
|
antag_tags = list(MODE_WIZARD, MODE_NINJA)
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
only hope this unknown assassin isn't here for you."
|
only hope this unknown assassin isn't here for you."
|
||||||
config_tag = "ninja"
|
config_tag = "ninja"
|
||||||
required_players = 1
|
required_players = 1
|
||||||
required_players_secret = 8
|
required_players_secret = 6
|
||||||
required_enemies = 1
|
required_enemies = 1
|
||||||
end_on_antag_death = 0
|
end_on_antag_death = 0
|
||||||
antag_tags = list(MODE_NINJA)
|
antag_tags = list(MODE_NINJA)
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
extended_round_description = "A powerful entity capable of manipulating the elements around him, most commonly referred to as a 'wizard', has infiltrated the station. They have a wide variety of powers and spells available to them that makes your own simple moral self tremble with fear and excitement. Ultimately, their purpose is unknown. However, it is up to you and your crew to decide if their powers can be used for good or if their arrival foreshadows the destruction of the entire station."
|
extended_round_description = "A powerful entity capable of manipulating the elements around him, most commonly referred to as a 'wizard', has infiltrated the station. They have a wide variety of powers and spells available to them that makes your own simple moral self tremble with fear and excitement. Ultimately, their purpose is unknown. However, it is up to you and your crew to decide if their powers can be used for good or if their arrival foreshadows the destruction of the entire station."
|
||||||
config_tag = "wizard"
|
config_tag = "wizard"
|
||||||
required_players = 1
|
required_players = 1
|
||||||
required_players_secret = 8
|
required_players_secret = 6
|
||||||
required_enemies = 1
|
required_enemies = 1
|
||||||
end_on_antag_death = 0
|
end_on_antag_death = 0
|
||||||
antag_tags = list(MODE_WIZARD)
|
antag_tags = list(MODE_WIZARD)
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
total_positions = -1
|
total_positions = -1
|
||||||
spawn_positions = -1
|
spawn_positions = -1
|
||||||
supervisors = "absolutely everyone"
|
supervisors = "absolutely everyone"
|
||||||
selection_color = "#dddddd"
|
selection_color = "#515151"
|
||||||
economic_modifier = 1
|
economic_modifier = 1
|
||||||
access = list() //See /datum/job/assistant/get_access()
|
access = list() //See /datum/job/assistant/get_access()
|
||||||
minimal_access = list() //See /datum/job/assistant/get_access()
|
minimal_access = list() //See /datum/job/assistant/get_access()
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
if(!H) return 0
|
if(!H) return 0
|
||||||
switch(H.backbag)
|
switch(H.backbag)
|
||||||
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back)
|
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back)
|
||||||
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_norm(H), slot_back)
|
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)
|
if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back)
|
||||||
if (H.mind.role_alt_title)
|
if (H.mind.role_alt_title)
|
||||||
switch(H.mind.role_alt_title)
|
switch(H.mind.role_alt_title)
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1)
|
|||||||
total_positions = 1
|
total_positions = 1
|
||||||
spawn_positions = 1
|
spawn_positions = 1
|
||||||
supervisors = "company officials and Corporate Regulations"
|
supervisors = "company officials and Corporate Regulations"
|
||||||
selection_color = "#ccccff"
|
selection_color = "#1D1D4F"
|
||||||
alt_titles = list("Station Administrator")
|
alt_titles = list("Station Administrator")
|
||||||
idtype = /obj/item/weapon/card/id/gold
|
idtype = /obj/item/weapon/card/id/gold
|
||||||
req_admin_notify = 1
|
req_admin_notify = 1
|
||||||
@@ -28,7 +28,7 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1)
|
|||||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain(H), slot_l_ear)
|
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain(H), slot_l_ear)
|
||||||
switch(H.backbag)
|
switch(H.backbag)
|
||||||
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/captain(H), slot_back)
|
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/captain(H), slot_back)
|
||||||
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_cap(H), slot_back)
|
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/cap(H), slot_back)
|
||||||
if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back)
|
if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back)
|
||||||
var/obj/item/clothing/under/U = new /obj/item/clothing/under/rank/captain(H)
|
var/obj/item/clothing/under/U = new /obj/item/clothing/under/rank/captain(H)
|
||||||
if(H.age>49)
|
if(H.age>49)
|
||||||
@@ -63,7 +63,7 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1)
|
|||||||
total_positions = 1
|
total_positions = 1
|
||||||
spawn_positions = 1
|
spawn_positions = 1
|
||||||
supervisors = "the captain"
|
supervisors = "the captain"
|
||||||
selection_color = "#ddddff"
|
selection_color = "#2F2F7F"
|
||||||
idtype = /obj/item/weapon/card/id/silver
|
idtype = /obj/item/weapon/card/id/silver
|
||||||
req_admin_notify = 1
|
req_admin_notify = 1
|
||||||
minimal_player_age = 10
|
minimal_player_age = 10
|
||||||
@@ -91,7 +91,7 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1)
|
|||||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/hop(H), slot_l_ear)
|
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/hop(H), slot_l_ear)
|
||||||
switch(H.backbag)
|
switch(H.backbag)
|
||||||
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back)
|
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back)
|
||||||
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_norm(H), slot_back)
|
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)
|
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/head_of_personnel(H), slot_w_uniform)
|
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/head_of_personnel(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/clothing/shoes/brown(H), slot_shoes)
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
total_positions = 2
|
total_positions = 2
|
||||||
spawn_positions = 2
|
spawn_positions = 2
|
||||||
supervisors = "the head of personnel"
|
supervisors = "the head of personnel"
|
||||||
selection_color = "#dddddd"
|
selection_color = "#515151"
|
||||||
access = list(access_hydroponics, access_bar, access_kitchen)
|
access = list(access_hydroponics, access_bar, access_kitchen)
|
||||||
minimal_access = list(access_bar)
|
minimal_access = list(access_bar)
|
||||||
alt_titles = list("Barista")
|
alt_titles = list("Barista")
|
||||||
@@ -18,7 +18,7 @@
|
|||||||
if(!H) return 0
|
if(!H) return 0
|
||||||
switch(H.backbag)
|
switch(H.backbag)
|
||||||
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back)
|
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back)
|
||||||
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_norm(H), slot_back)
|
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)
|
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/device/radio/headset/headset_service(H), slot_l_ear)
|
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_service(H), slot_l_ear)
|
||||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(H), slot_shoes)
|
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(H), slot_shoes)
|
||||||
@@ -37,7 +37,7 @@
|
|||||||
total_positions = 2
|
total_positions = 2
|
||||||
spawn_positions = 2
|
spawn_positions = 2
|
||||||
supervisors = "the head of personnel"
|
supervisors = "the head of personnel"
|
||||||
selection_color = "#dddddd"
|
selection_color = "#515151"
|
||||||
access = list(access_hydroponics, access_bar, access_kitchen)
|
access = list(access_hydroponics, access_bar, access_kitchen)
|
||||||
minimal_access = list(access_kitchen)
|
minimal_access = list(access_kitchen)
|
||||||
alt_titles = list("Cook")
|
alt_titles = list("Cook")
|
||||||
@@ -64,7 +64,7 @@
|
|||||||
total_positions = 2
|
total_positions = 2
|
||||||
spawn_positions = 1
|
spawn_positions = 1
|
||||||
supervisors = "the head of personnel"
|
supervisors = "the head of personnel"
|
||||||
selection_color = "#dddddd"
|
selection_color = "#515151"
|
||||||
access = list(access_hydroponics, access_bar, access_kitchen)
|
access = list(access_hydroponics, access_bar, access_kitchen)
|
||||||
minimal_access = list(access_hydroponics)
|
minimal_access = list(access_hydroponics)
|
||||||
alt_titles = list("Hydroponicist")
|
alt_titles = list("Hydroponicist")
|
||||||
@@ -81,7 +81,7 @@
|
|||||||
H.equip_to_slot_or_del(new /obj/item/device/pda/botanist(H), slot_belt)
|
H.equip_to_slot_or_del(new /obj/item/device/pda/botanist(H), slot_belt)
|
||||||
switch(H.backbag)
|
switch(H.backbag)
|
||||||
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/hydroponics(H), slot_back)
|
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/hydroponics(H), slot_back)
|
||||||
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_hyd(H), slot_back)
|
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/hyd(H), slot_back)
|
||||||
if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back)
|
if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back)
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
@@ -97,7 +97,7 @@
|
|||||||
total_positions = 1
|
total_positions = 1
|
||||||
spawn_positions = 1
|
spawn_positions = 1
|
||||||
supervisors = "the head of personnel"
|
supervisors = "the head of personnel"
|
||||||
selection_color = "#dddddd"
|
selection_color = "#515151"
|
||||||
economic_modifier = 5
|
economic_modifier = 5
|
||||||
access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station)
|
access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station)
|
||||||
minimal_access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station)
|
minimal_access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station)
|
||||||
@@ -127,7 +127,7 @@
|
|||||||
total_positions = 2
|
total_positions = 2
|
||||||
spawn_positions = 2
|
spawn_positions = 2
|
||||||
supervisors = "the quartermaster and the head of personnel"
|
supervisors = "the quartermaster and the head of personnel"
|
||||||
selection_color = "#dddddd"
|
selection_color = "#515151"
|
||||||
access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station)
|
access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station)
|
||||||
minimal_access = list(access_maint_tunnels, access_cargo, access_cargo_bot, access_mailsorting)
|
minimal_access = list(access_maint_tunnels, access_cargo, access_cargo_bot, access_mailsorting)
|
||||||
|
|
||||||
@@ -152,7 +152,7 @@
|
|||||||
total_positions = 3
|
total_positions = 3
|
||||||
spawn_positions = 3
|
spawn_positions = 3
|
||||||
supervisors = "the quartermaster and the head of personnel"
|
supervisors = "the quartermaster and the head of personnel"
|
||||||
selection_color = "#dddddd"
|
selection_color = "#515151"
|
||||||
economic_modifier = 5
|
economic_modifier = 5
|
||||||
access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station)
|
access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station)
|
||||||
minimal_access = list(access_mining, access_mining_station, access_mailsorting)
|
minimal_access = list(access_mining, access_mining_station, access_mailsorting)
|
||||||
@@ -163,7 +163,7 @@
|
|||||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_cargo (H), slot_l_ear)
|
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_cargo (H), slot_l_ear)
|
||||||
switch(H.backbag)
|
switch(H.backbag)
|
||||||
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/industrial(H), slot_back)
|
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/industrial(H), slot_back)
|
||||||
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_eng(H), slot_back)
|
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/eng(H), slot_back)
|
||||||
if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(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/miner(H), slot_w_uniform)
|
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/miner(H), slot_w_uniform)
|
||||||
H.equip_to_slot_or_del(new /obj/item/device/pda/shaftminer(H), slot_belt)
|
H.equip_to_slot_or_del(new /obj/item/device/pda/shaftminer(H), slot_belt)
|
||||||
@@ -191,7 +191,7 @@
|
|||||||
total_positions = 2
|
total_positions = 2
|
||||||
spawn_positions = 2
|
spawn_positions = 2
|
||||||
supervisors = "the head of personnel"
|
supervisors = "the head of personnel"
|
||||||
selection_color = "#dddddd"
|
selection_color = "#515151"
|
||||||
access = list(access_janitor, access_maint_tunnels)
|
access = list(access_janitor, access_maint_tunnels)
|
||||||
minimal_access = list(access_janitor, access_maint_tunnels)
|
minimal_access = list(access_janitor, access_maint_tunnels)
|
||||||
alt_titles = list("Custodian")
|
alt_titles = list("Custodian")
|
||||||
@@ -217,7 +217,7 @@
|
|||||||
total_positions = 1
|
total_positions = 1
|
||||||
spawn_positions = 1
|
spawn_positions = 1
|
||||||
supervisors = "the head of personnel"
|
supervisors = "the head of personnel"
|
||||||
selection_color = "#dddddd"
|
selection_color = "#515151"
|
||||||
access = list(access_library, access_maint_tunnels)
|
access = list(access_library, access_maint_tunnels)
|
||||||
minimal_access = list(access_library)
|
minimal_access = list(access_library)
|
||||||
alt_titles = list("Journalist")
|
alt_titles = list("Journalist")
|
||||||
@@ -243,7 +243,7 @@
|
|||||||
total_positions = 2
|
total_positions = 2
|
||||||
spawn_positions = 2
|
spawn_positions = 2
|
||||||
supervisors = "company officials and Corporate Regulations"
|
supervisors = "company officials and Corporate Regulations"
|
||||||
selection_color = "#dddddd"
|
selection_color = "#515151"
|
||||||
economic_modifier = 7
|
economic_modifier = 7
|
||||||
access = list(access_lawyer, access_sec_doors, access_maint_tunnels, access_heads)
|
access = list(access_lawyer, access_sec_doors, access_maint_tunnels, access_heads)
|
||||||
minimal_access = list(access_lawyer, access_sec_doors, access_heads)
|
minimal_access = list(access_lawyer, access_sec_doors, access_heads)
|
||||||
@@ -254,7 +254,7 @@
|
|||||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/ia(H), slot_l_ear)
|
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/ia(H), slot_l_ear)
|
||||||
switch(H.backbag)
|
switch(H.backbag)
|
||||||
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back)
|
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back)
|
||||||
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_norm(H), slot_back)
|
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)
|
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/under/rank/internalaffairs(H), slot_w_uniform)
|
||||||
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/suit/storage/toggle/internalaffairs(H), slot_wear_suit)
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
total_positions = 1
|
total_positions = 1
|
||||||
spawn_positions = 1
|
spawn_positions = 1
|
||||||
supervisors = "the head of personnel"
|
supervisors = "the head of personnel"
|
||||||
selection_color = "#dddddd"
|
selection_color = "#515151"
|
||||||
access = list(access_morgue, access_chapel_office, access_crematorium, access_maint_tunnels)
|
access = list(access_morgue, access_chapel_office, access_crematorium, access_maint_tunnels)
|
||||||
minimal_access = list(access_morgue, access_chapel_office, access_crematorium)
|
minimal_access = list(access_morgue, access_chapel_office, access_crematorium)
|
||||||
alt_titles = list("Counselor")
|
alt_titles = list("Counselor")
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
total_positions = 1
|
total_positions = 1
|
||||||
spawn_positions = 1
|
spawn_positions = 1
|
||||||
supervisors = "the captain"
|
supervisors = "the captain"
|
||||||
selection_color = "#ffeeaa"
|
selection_color = "#7F6E2C"
|
||||||
idtype = /obj/item/weapon/card/id/silver
|
idtype = /obj/item/weapon/card/id/silver
|
||||||
req_admin_notify = 1
|
req_admin_notify = 1
|
||||||
economic_modifier = 10
|
economic_modifier = 10
|
||||||
@@ -33,7 +33,7 @@
|
|||||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/ce(H), slot_l_ear)
|
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/ce(H), slot_l_ear)
|
||||||
switch(H.backbag)
|
switch(H.backbag)
|
||||||
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/industrial(H), slot_back)
|
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/industrial(H), slot_back)
|
||||||
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_eng(H), slot_back)
|
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/eng(H), slot_back)
|
||||||
if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(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/chief_engineer(H), slot_w_uniform)
|
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/chief_engineer(H), slot_w_uniform)
|
||||||
H.equip_to_slot_or_del(new /obj/item/device/pda/heads/ce(H), slot_l_store)
|
H.equip_to_slot_or_del(new /obj/item/device/pda/heads/ce(H), slot_l_store)
|
||||||
@@ -58,7 +58,7 @@
|
|||||||
total_positions = 5
|
total_positions = 5
|
||||||
spawn_positions = 5
|
spawn_positions = 5
|
||||||
supervisors = "the chief engineer"
|
supervisors = "the chief engineer"
|
||||||
selection_color = "#fff5cc"
|
selection_color = "#5B4D20"
|
||||||
economic_modifier = 5
|
economic_modifier = 5
|
||||||
access = list(access_eva, access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, access_external_airlocks, access_construction, access_atmospherics)
|
access = list(access_eva, access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, access_external_airlocks, access_construction, access_atmospherics)
|
||||||
minimal_access = list(access_eva, access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, access_external_airlocks, access_construction)
|
minimal_access = list(access_eva, access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, access_external_airlocks, access_construction)
|
||||||
@@ -70,7 +70,7 @@
|
|||||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_eng(H), slot_l_ear)
|
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_eng(H), slot_l_ear)
|
||||||
switch(H.backbag)
|
switch(H.backbag)
|
||||||
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/industrial(H), slot_back)
|
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/industrial(H), slot_back)
|
||||||
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_eng(H), slot_back)
|
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/eng(H), slot_back)
|
||||||
if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(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/engineer(H), slot_w_uniform)
|
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/engineer(H), slot_w_uniform)
|
||||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/workboots(H), slot_shoes)
|
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/workboots(H), slot_shoes)
|
||||||
@@ -95,7 +95,7 @@
|
|||||||
total_positions = 3
|
total_positions = 3
|
||||||
spawn_positions = 2
|
spawn_positions = 2
|
||||||
supervisors = "the chief engineer"
|
supervisors = "the chief engineer"
|
||||||
selection_color = "#fff5cc"
|
selection_color = "#5B4D20"
|
||||||
economic_modifier = 5
|
economic_modifier = 5
|
||||||
access = list(access_eva, access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, access_external_airlocks, access_construction, access_atmospherics, access_external_airlocks)
|
access = list(access_eva, access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, access_external_airlocks, access_construction, access_atmospherics, access_external_airlocks)
|
||||||
minimal_access = list(access_eva, access_engine, access_atmospherics, access_maint_tunnels, access_emergency_storage, access_construction, access_external_airlocks)
|
minimal_access = list(access_eva, access_engine, access_atmospherics, access_maint_tunnels, access_emergency_storage, access_construction, access_external_airlocks)
|
||||||
@@ -106,7 +106,7 @@
|
|||||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_eng(H), slot_l_ear)
|
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_eng(H), slot_l_ear)
|
||||||
switch(H.backbag)
|
switch(H.backbag)
|
||||||
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back)
|
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back)
|
||||||
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_norm(H), slot_back)
|
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)
|
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/atmospheric_technician(H), slot_w_uniform)
|
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/atmospheric_technician(H), slot_w_uniform)
|
||||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/workboots(H), slot_shoes)
|
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/workboots(H), slot_shoes)
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
/datum/job/proc/equip_backpack(var/mob/living/carbon/human/H)
|
/datum/job/proc/equip_backpack(var/mob/living/carbon/human/H)
|
||||||
switch(H.backbag)
|
switch(H.backbag)
|
||||||
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back)
|
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back)
|
||||||
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_norm(H), slot_back)
|
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)
|
if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back)
|
||||||
|
|
||||||
/datum/job/proc/equip_survival(var/mob/living/carbon/human/H)
|
/datum/job/proc/equip_survival(var/mob/living/carbon/human/H)
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
total_positions = 1
|
total_positions = 1
|
||||||
spawn_positions = 1
|
spawn_positions = 1
|
||||||
supervisors = "the captain"
|
supervisors = "the captain"
|
||||||
selection_color = "#ffddf0"
|
selection_color = "#026865"
|
||||||
idtype = /obj/item/weapon/card/id/silver
|
idtype = /obj/item/weapon/card/id/silver
|
||||||
req_admin_notify = 1
|
req_admin_notify = 1
|
||||||
economic_modifier = 10
|
economic_modifier = 10
|
||||||
@@ -28,7 +28,7 @@
|
|||||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/cmo(H), slot_l_ear)
|
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/cmo(H), slot_l_ear)
|
||||||
switch(H.backbag)
|
switch(H.backbag)
|
||||||
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/medic(H), slot_back)
|
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/medic(H), slot_back)
|
||||||
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_med(H), slot_back)
|
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/med(H), slot_back)
|
||||||
if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(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/chief_medical_officer(H), slot_w_uniform)
|
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/clothing/shoes/brown(H), slot_shoes)
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
total_positions = 5
|
total_positions = 5
|
||||||
spawn_positions = 3
|
spawn_positions = 3
|
||||||
supervisors = "the chief medical officer"
|
supervisors = "the chief medical officer"
|
||||||
selection_color = "#ffeef0"
|
selection_color = "#013D3B"
|
||||||
economic_modifier = 7
|
economic_modifier = 7
|
||||||
access = list(access_medical, access_medical_equip, access_morgue, access_surgery, access_chemistry, access_virology, access_genetics, access_eva)
|
access = list(access_medical, access_medical_equip, access_morgue, access_surgery, access_chemistry, access_virology, access_genetics, access_eva)
|
||||||
minimal_access = list(access_medical, access_medical_equip, access_morgue, access_surgery, access_virology, access_eva)
|
minimal_access = list(access_medical, access_medical_equip, access_morgue, access_surgery, access_virology, access_eva)
|
||||||
@@ -60,7 +60,7 @@
|
|||||||
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/weapon/storage/firstaid/adv(H), slot_l_hand)
|
||||||
switch(H.backbag)
|
switch(H.backbag)
|
||||||
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/medic(H), slot_back)
|
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/medic(H), slot_back)
|
||||||
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_med(H), slot_back)
|
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/med(H), slot_back)
|
||||||
if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back)
|
if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back)
|
||||||
if (H.mind.role_alt_title)
|
if (H.mind.role_alt_title)
|
||||||
switch(H.mind.role_alt_title)
|
switch(H.mind.role_alt_title)
|
||||||
@@ -77,7 +77,7 @@
|
|||||||
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/mask/surgical(H), slot_wear_mask)
|
||||||
switch(H.backbag)
|
switch(H.backbag)
|
||||||
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/virology(H), slot_back)
|
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/virology(H), slot_back)
|
||||||
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_vir(H), slot_back)
|
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/vir(H), slot_back)
|
||||||
if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back)
|
if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back)
|
||||||
if("Medical Doctor")
|
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/under/rank/medical(H), slot_w_uniform)
|
||||||
@@ -110,7 +110,7 @@
|
|||||||
total_positions = 2
|
total_positions = 2
|
||||||
spawn_positions = 2
|
spawn_positions = 2
|
||||||
supervisors = "the chief medical officer"
|
supervisors = "the chief medical officer"
|
||||||
selection_color = "#ffeef0"
|
selection_color = "#013D3B"
|
||||||
economic_modifier = 5
|
economic_modifier = 5
|
||||||
access = list(access_medical, access_medical_equip, access_morgue, access_surgery, access_chemistry, access_virology, access_genetics)
|
access = list(access_medical, access_medical_equip, access_morgue, access_surgery, access_chemistry, access_virology, access_genetics)
|
||||||
minimal_access = list(access_medical, access_medical_equip, access_chemistry)
|
minimal_access = list(access_medical, access_medical_equip, access_chemistry)
|
||||||
@@ -125,7 +125,7 @@
|
|||||||
H.equip_to_slot_or_del(new /obj/item/device/pda/chemist(H), slot_belt)
|
H.equip_to_slot_or_del(new /obj/item/device/pda/chemist(H), slot_belt)
|
||||||
switch(H.backbag)
|
switch(H.backbag)
|
||||||
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/chemistry(H), slot_back)
|
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/chemistry(H), slot_back)
|
||||||
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_chem(H), slot_back)
|
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/chem(H), slot_back)
|
||||||
if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(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/suit/storage/toggle/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)
|
||||||
return 1
|
return 1
|
||||||
@@ -141,7 +141,7 @@
|
|||||||
total_positions = 0
|
total_positions = 0
|
||||||
spawn_positions = 0
|
spawn_positions = 0
|
||||||
supervisors = "the chief medical officer and research director"
|
supervisors = "the chief medical officer and research director"
|
||||||
selection_color = "#ffeef0"
|
selection_color = "#013D3B"
|
||||||
economic_modifier = 7
|
economic_modifier = 7
|
||||||
access = list(access_medical, access_morgue, access_surgery, access_chemistry, access_virology, access_genetics, access_research)
|
access = list(access_medical, access_morgue, access_surgery, access_chemistry, access_virology, access_genetics, access_research)
|
||||||
minimal_access = list(access_medical, access_morgue, access_genetics, access_research)
|
minimal_access = list(access_medical, access_morgue, access_genetics, access_research)
|
||||||
@@ -154,7 +154,7 @@
|
|||||||
H.equip_to_slot_or_del(new /obj/item/device/pda/geneticist(H), slot_belt)
|
H.equip_to_slot_or_del(new /obj/item/device/pda/geneticist(H), slot_belt)
|
||||||
switch(H.backbag)
|
switch(H.backbag)
|
||||||
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/genetics(H), slot_back)
|
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/genetics(H), slot_back)
|
||||||
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_gen(H), slot_back)
|
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/gen(H), slot_back)
|
||||||
if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(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/suit/storage/toggle/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)
|
H.equip_to_slot_or_del(new /obj/item/device/flashlight/pen(H), slot_s_store)
|
||||||
@@ -171,7 +171,7 @@
|
|||||||
spawn_positions = 1
|
spawn_positions = 1
|
||||||
economic_modifier = 5
|
economic_modifier = 5
|
||||||
supervisors = "the chief medical officer"
|
supervisors = "the chief medical officer"
|
||||||
selection_color = "#ffeef0"
|
selection_color = "#013D3B"
|
||||||
access = list(access_medical, access_medical_equip, access_morgue, access_psychiatrist)
|
access = list(access_medical, access_medical_equip, access_morgue, access_psychiatrist)
|
||||||
minimal_access = list(access_medical, access_medical_equip, access_psychiatrist)
|
minimal_access = list(access_medical, access_medical_equip, access_psychiatrist)
|
||||||
alt_titles = list("Psychologist")
|
alt_titles = list("Psychologist")
|
||||||
@@ -181,7 +181,7 @@
|
|||||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_med(H), slot_l_ear)
|
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_med(H), slot_l_ear)
|
||||||
switch(H.backbag)
|
switch(H.backbag)
|
||||||
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back)
|
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back)
|
||||||
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_norm(H), slot_back)
|
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)
|
if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back)
|
||||||
if (H.mind.role_alt_title)
|
if (H.mind.role_alt_title)
|
||||||
switch(H.mind.role_alt_title)
|
switch(H.mind.role_alt_title)
|
||||||
@@ -205,7 +205,7 @@
|
|||||||
total_positions = 2
|
total_positions = 2
|
||||||
spawn_positions = 2
|
spawn_positions = 2
|
||||||
supervisors = "the chief medical officer"
|
supervisors = "the chief medical officer"
|
||||||
selection_color = "#ffeef0"
|
selection_color = "#013D3B"
|
||||||
economic_modifier = 4
|
economic_modifier = 4
|
||||||
access = list(access_medical, access_medical_equip, access_morgue, access_surgery, access_chemistry, access_virology, access_eva, access_maint_tunnels, access_external_airlocks, access_psychiatrist)
|
access = list(access_medical, access_medical_equip, access_morgue, access_surgery, access_chemistry, access_virology, access_eva, access_maint_tunnels, access_external_airlocks, access_psychiatrist)
|
||||||
minimal_access = list(access_medical, access_medical_equip, access_morgue, access_eva, access_maint_tunnels, access_external_airlocks)
|
minimal_access = list(access_medical, access_medical_equip, access_morgue, access_eva, access_maint_tunnels, access_external_airlocks)
|
||||||
@@ -218,7 +218,7 @@
|
|||||||
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/weapon/storage/firstaid/adv(H), slot_l_hand)
|
||||||
switch(H.backbag)
|
switch(H.backbag)
|
||||||
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/medic(H), slot_back)
|
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/medic(H), slot_back)
|
||||||
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_med(H), slot_back)
|
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/med(H), slot_back)
|
||||||
if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back)
|
if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back)
|
||||||
if (H.mind.role_alt_title)
|
if (H.mind.role_alt_title)
|
||||||
switch(H.mind.role_alt_title)
|
switch(H.mind.role_alt_title)
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
total_positions = 1
|
total_positions = 1
|
||||||
spawn_positions = 1
|
spawn_positions = 1
|
||||||
supervisors = "the captain"
|
supervisors = "the captain"
|
||||||
selection_color = "#ffddff"
|
selection_color = "#AD6BAD"
|
||||||
idtype = /obj/item/weapon/card/id/silver
|
idtype = /obj/item/weapon/card/id/silver
|
||||||
req_admin_notify = 1
|
req_admin_notify = 1
|
||||||
economic_modifier = 15
|
economic_modifier = 15
|
||||||
@@ -34,7 +34,7 @@
|
|||||||
H.equip_to_slot_or_del(new /obj/item/weapon/clipboard(H), slot_l_hand)
|
H.equip_to_slot_or_del(new /obj/item/weapon/clipboard(H), slot_l_hand)
|
||||||
switch(H.backbag)
|
switch(H.backbag)
|
||||||
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/toxins(H), slot_back)
|
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/toxins(H), slot_back)
|
||||||
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_tox(H), slot_back)
|
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/tox(H), slot_back)
|
||||||
if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(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/suit/storage/toggle/labcoat(H), slot_wear_suit)
|
H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/toggle/labcoat(H), slot_wear_suit)
|
||||||
return 1
|
return 1
|
||||||
@@ -50,7 +50,7 @@
|
|||||||
total_positions = 5
|
total_positions = 5
|
||||||
spawn_positions = 3
|
spawn_positions = 3
|
||||||
supervisors = "the research director"
|
supervisors = "the research director"
|
||||||
selection_color = "#ffeeff"
|
selection_color = "#633D63"
|
||||||
economic_modifier = 7
|
economic_modifier = 7
|
||||||
access = list(access_robotics, access_tox, access_tox_storage, access_research, access_xenobiology, access_xenoarch)
|
access = list(access_robotics, access_tox, access_tox_storage, access_research, access_xenobiology, access_xenoarch)
|
||||||
minimal_access = list(access_tox, access_tox_storage, access_research, access_xenoarch)
|
minimal_access = list(access_tox, access_tox_storage, access_research, access_xenoarch)
|
||||||
@@ -66,7 +66,7 @@
|
|||||||
H.equip_to_slot_or_del(new /obj/item/device/pda/science(H), slot_belt)
|
H.equip_to_slot_or_del(new /obj/item/device/pda/science(H), slot_belt)
|
||||||
switch(H.backbag)
|
switch(H.backbag)
|
||||||
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/toxins(H), slot_back)
|
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/toxins(H), slot_back)
|
||||||
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_tox(H), slot_back)
|
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/tox(H), slot_back)
|
||||||
if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(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/suit/storage/toggle/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)
|
||||||
return 1
|
return 1
|
||||||
@@ -80,7 +80,7 @@
|
|||||||
total_positions = 3
|
total_positions = 3
|
||||||
spawn_positions = 2
|
spawn_positions = 2
|
||||||
supervisors = "the research director"
|
supervisors = "the research director"
|
||||||
selection_color = "#ffeeff"
|
selection_color = "#633D63"
|
||||||
economic_modifier = 7
|
economic_modifier = 7
|
||||||
access = list(access_robotics, access_tox, access_tox_storage, access_research, access_xenobiology, access_hydroponics)
|
access = list(access_robotics, access_tox, access_tox_storage, access_research, access_xenobiology, access_hydroponics)
|
||||||
minimal_access = list(access_research, access_xenobiology, access_hydroponics, access_tox_storage)
|
minimal_access = list(access_research, access_xenobiology, access_hydroponics, access_tox_storage)
|
||||||
@@ -96,7 +96,7 @@
|
|||||||
H.equip_to_slot_or_del(new /obj/item/device/pda/science(H), slot_belt)
|
H.equip_to_slot_or_del(new /obj/item/device/pda/science(H), slot_belt)
|
||||||
switch(H.backbag)
|
switch(H.backbag)
|
||||||
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/toxins(H), slot_back)
|
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/toxins(H), slot_back)
|
||||||
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_tox(H), slot_back)
|
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/tox(H), slot_back)
|
||||||
if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(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/suit/storage/toggle/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)
|
||||||
return 1
|
return 1
|
||||||
@@ -110,7 +110,7 @@
|
|||||||
total_positions = 2
|
total_positions = 2
|
||||||
spawn_positions = 2
|
spawn_positions = 2
|
||||||
supervisors = "research director"
|
supervisors = "research director"
|
||||||
selection_color = "#ffeeff"
|
selection_color = "#633D63"
|
||||||
economic_modifier = 5
|
economic_modifier = 5
|
||||||
access = list(access_robotics, access_tox, access_tox_storage, access_tech_storage, access_morgue, access_research) //As a job that handles so many corpses, it makes sense for them to have morgue access.
|
access = list(access_robotics, access_tox, access_tox_storage, access_tech_storage, access_morgue, access_research) //As a job that handles so many corpses, it makes sense for them to have morgue access.
|
||||||
minimal_access = list(access_robotics, access_tech_storage, access_morgue, access_research) //As a job that handles so many corpses, it makes sense for them to have morgue access.
|
minimal_access = list(access_robotics, access_tech_storage, access_morgue, access_research) //As a job that handles so many corpses, it makes sense for them to have morgue access.
|
||||||
@@ -122,7 +122,7 @@
|
|||||||
if(!H) return 0
|
if(!H) return 0
|
||||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sci(H), slot_l_ear)
|
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sci(H), slot_l_ear)
|
||||||
if(H.backbag == 2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back)
|
if(H.backbag == 2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back)
|
||||||
if(H.backbag == 3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_norm(H), slot_back)
|
if(H.backbag == 3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/norm(H), slot_back)
|
||||||
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/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/clothing/shoes/black(H), slot_shoes)
|
||||||
H.equip_to_slot_or_del(new /obj/item/device/pda/roboticist(H), slot_r_store)
|
H.equip_to_slot_or_del(new /obj/item/device/pda/roboticist(H), slot_r_store)
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
total_positions = 1
|
total_positions = 1
|
||||||
spawn_positions = 1
|
spawn_positions = 1
|
||||||
supervisors = "the captain"
|
supervisors = "the captain"
|
||||||
selection_color = "#ffdddd"
|
selection_color = "#8E2929"
|
||||||
idtype = /obj/item/weapon/card/id/silver
|
idtype = /obj/item/weapon/card/id/silver
|
||||||
req_admin_notify = 1
|
req_admin_notify = 1
|
||||||
economic_modifier = 10
|
economic_modifier = 10
|
||||||
@@ -27,7 +27,7 @@
|
|||||||
if(!H) return 0
|
if(!H) return 0
|
||||||
switch(H.backbag)
|
switch(H.backbag)
|
||||||
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/security(H), slot_back)
|
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/security(H), slot_back)
|
||||||
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_sec(H), slot_back)
|
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/sec(H), slot_back)
|
||||||
if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(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/device/radio/headset/heads/hos(H), slot_l_ear)
|
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/hos(H), slot_l_ear)
|
||||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/head_of_security(H), slot_w_uniform)
|
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/head_of_security(H), slot_w_uniform)
|
||||||
@@ -55,7 +55,7 @@
|
|||||||
total_positions = 1
|
total_positions = 1
|
||||||
spawn_positions = 1
|
spawn_positions = 1
|
||||||
supervisors = "the head of security"
|
supervisors = "the head of security"
|
||||||
selection_color = "#ffeeee"
|
selection_color = "#601C1C"
|
||||||
economic_modifier = 5
|
economic_modifier = 5
|
||||||
access = list(access_security, access_eva, access_sec_doors, access_brig, access_armory, access_maint_tunnels, access_morgue, access_external_airlocks)
|
access = list(access_security, access_eva, access_sec_doors, access_brig, access_armory, access_maint_tunnels, access_morgue, access_external_airlocks)
|
||||||
minimal_access = list(access_security, access_eva, access_sec_doors, access_brig, access_armory, access_maint_tunnels, access_external_airlocks)
|
minimal_access = list(access_security, access_eva, access_sec_doors, access_brig, access_armory, access_maint_tunnels, access_external_airlocks)
|
||||||
@@ -66,7 +66,7 @@
|
|||||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sec(H), slot_l_ear)
|
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sec(H), slot_l_ear)
|
||||||
switch(H.backbag)
|
switch(H.backbag)
|
||||||
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/security(H), slot_back)
|
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/security(H), slot_back)
|
||||||
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_sec(H), slot_back)
|
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/sec(H), slot_back)
|
||||||
if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(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/warden(H), slot_w_uniform)
|
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/warden(H), slot_w_uniform)
|
||||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(H), slot_shoes)
|
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(H), slot_shoes)
|
||||||
@@ -92,7 +92,7 @@
|
|||||||
total_positions = 2
|
total_positions = 2
|
||||||
spawn_positions = 2
|
spawn_positions = 2
|
||||||
supervisors = "the head of security"
|
supervisors = "the head of security"
|
||||||
selection_color = "#ffeeee"
|
selection_color = "#601C1C"
|
||||||
alt_titles = list("Forensic Technician","Investigator")
|
alt_titles = list("Forensic Technician","Investigator")
|
||||||
access = list(access_security, access_sec_doors, access_forensics_lockers, access_morgue, access_maint_tunnels, access_eva, access_external_airlocks)
|
access = list(access_security, access_sec_doors, access_forensics_lockers, access_morgue, access_maint_tunnels, access_eva, access_external_airlocks)
|
||||||
minimal_access = list(access_security, access_sec_doors, access_forensics_lockers, access_morgue, access_maint_tunnels, access_eva, access_external_airlocks)
|
minimal_access = list(access_security, access_sec_doors, access_forensics_lockers, access_morgue, access_maint_tunnels, access_eva, access_external_airlocks)
|
||||||
@@ -103,7 +103,7 @@
|
|||||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sec(H), slot_l_ear)
|
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sec(H), slot_l_ear)
|
||||||
switch(H.backbag)
|
switch(H.backbag)
|
||||||
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back)
|
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back)
|
||||||
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_norm(H), slot_back)
|
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)
|
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/det(H), slot_w_uniform)
|
H.equip_to_slot_or_del(new /obj/item/clothing/under/det(H), slot_w_uniform)
|
||||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(H), slot_shoes)
|
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(H), slot_shoes)
|
||||||
@@ -134,7 +134,7 @@
|
|||||||
total_positions = 4
|
total_positions = 4
|
||||||
spawn_positions = 4
|
spawn_positions = 4
|
||||||
supervisors = "the head of security"
|
supervisors = "the head of security"
|
||||||
selection_color = "#ffeeee"
|
selection_color = "#601C1C"
|
||||||
alt_titles = list("Junior Officer")
|
alt_titles = list("Junior Officer")
|
||||||
economic_modifier = 4
|
economic_modifier = 4
|
||||||
access = list(access_security, access_eva, access_sec_doors, access_brig, access_maint_tunnels, access_morgue, access_external_airlocks)
|
access = list(access_security, access_eva, access_sec_doors, access_brig, access_maint_tunnels, access_morgue, access_external_airlocks)
|
||||||
@@ -145,7 +145,7 @@
|
|||||||
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sec(H), slot_l_ear)
|
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sec(H), slot_l_ear)
|
||||||
switch(H.backbag)
|
switch(H.backbag)
|
||||||
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/security(H), slot_back)
|
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/security(H), slot_back)
|
||||||
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_sec(H), slot_back)
|
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/sec(H), slot_back)
|
||||||
if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(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/security(H), slot_w_uniform)
|
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/security(H), slot_w_uniform)
|
||||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(H), slot_shoes)
|
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(H), slot_shoes)
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
faction = "Station"
|
faction = "Station"
|
||||||
total_positions = 0 // Not used for AI, see is_position_available below and modules/mob/living/silicon/ai/latejoin.dm
|
total_positions = 0 // Not used for AI, see is_position_available below and modules/mob/living/silicon/ai/latejoin.dm
|
||||||
spawn_positions = 1
|
spawn_positions = 1
|
||||||
selection_color = "#ccffcc"
|
selection_color = "#3F823F"
|
||||||
supervisors = "your laws"
|
supervisors = "your laws"
|
||||||
req_admin_notify = 1
|
req_admin_notify = 1
|
||||||
minimal_player_age = 7
|
minimal_player_age = 7
|
||||||
@@ -38,7 +38,7 @@
|
|||||||
total_positions = 2
|
total_positions = 2
|
||||||
spawn_positions = 2
|
spawn_positions = 2
|
||||||
supervisors = "your laws and the AI" //Nodrak
|
supervisors = "your laws and the AI" //Nodrak
|
||||||
selection_color = "#ddffdd"
|
selection_color = "#254C25"
|
||||||
minimal_player_age = 1
|
minimal_player_age = 1
|
||||||
alt_titles = list("Robot", "Drone")
|
alt_titles = list("Robot", "Drone")
|
||||||
account_allowed = 0
|
account_allowed = 0
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
use_power = 1
|
use_power = 1
|
||||||
idle_power_usage = 40
|
idle_power_usage = 40
|
||||||
interact_offline = 1
|
interact_offline = 1
|
||||||
|
circuit = /obj/item/weapon/circuitboard/sleeper_console
|
||||||
|
|
||||||
//obj/machinery/sleep_console/New()
|
//obj/machinery/sleep_console/New()
|
||||||
//..()
|
//..()
|
||||||
@@ -32,9 +33,40 @@
|
|||||||
/obj/machinery/sleep_console/attack_hand(var/mob/user)
|
/obj/machinery/sleep_console/attack_hand(var/mob/user)
|
||||||
if(..())
|
if(..())
|
||||||
return 1
|
return 1
|
||||||
|
if(connected)
|
||||||
connected.ui_interact(user)
|
connected.ui_interact(user)
|
||||||
|
|
||||||
|
/obj/machinery/sleep_console/attackby(var/obj/item/I, var/mob/user)
|
||||||
|
if(istype(I, /obj/item/weapon/screwdriver) && circuit)
|
||||||
|
user << "<span class='notice'>You start disconnecting the monitor.</span>"
|
||||||
|
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
||||||
|
if(do_after(user, 20))
|
||||||
|
var/obj/structure/frame/A = new /obj/structure/frame( src.loc )
|
||||||
|
var/obj/item/weapon/circuitboard/M = new circuit( A )
|
||||||
|
A.circuit = M
|
||||||
|
A.anchored = 1
|
||||||
|
A.density = 1
|
||||||
|
A.frame_type = M.board_type
|
||||||
|
for (var/obj/C in src)
|
||||||
|
C.forceMove(loc)
|
||||||
|
if (src.stat & BROKEN)
|
||||||
|
user << "<span class='notice'>The broken glass falls out.</span>"
|
||||||
|
new /obj/item/weapon/material/shard( src.loc )
|
||||||
|
A.state = 3
|
||||||
|
A.icon_state = "[A.frame_type]_3"
|
||||||
|
else
|
||||||
|
user << "<span class='notice'>You disconnect the monitor.</span>"
|
||||||
|
A.state = 4
|
||||||
|
A.icon_state = "[A.frame_type]_4"
|
||||||
|
A.pixel_x = pixel_x
|
||||||
|
A.pixel_y = pixel_y
|
||||||
|
A.dir = dir
|
||||||
|
M.deconstruct(src)
|
||||||
|
qdel(src)
|
||||||
|
else
|
||||||
|
src.attack_hand(user)
|
||||||
|
return
|
||||||
|
|
||||||
/obj/machinery/sleep_console/power_change()
|
/obj/machinery/sleep_console/power_change()
|
||||||
..()
|
..()
|
||||||
if(stat & (NOPOWER|BROKEN))
|
if(stat & (NOPOWER|BROKEN))
|
||||||
@@ -49,6 +81,7 @@
|
|||||||
icon_state = "sleeper_0"
|
icon_state = "sleeper_0"
|
||||||
density = 1
|
density = 1
|
||||||
anchored = 1
|
anchored = 1
|
||||||
|
circuit = /obj/item/weapon/circuitboard/sleeper
|
||||||
var/mob/living/carbon/human/occupant = null
|
var/mob/living/carbon/human/occupant = null
|
||||||
var/list/available_chemicals = list("inaprovaline" = "Inaprovaline", "stoxin" = "Soporific", "paracetamol" = "Paracetamol", "anti_toxin" = "Dylovene", "dexalin" = "Dexalin")
|
var/list/available_chemicals = list("inaprovaline" = "Inaprovaline", "stoxin" = "Soporific", "paracetamol" = "Paracetamol", "anti_toxin" = "Dylovene", "dexalin" = "Dexalin")
|
||||||
var/obj/item/weapon/reagent_containers/glass/beaker = null
|
var/obj/item/weapon/reagent_containers/glass/beaker = null
|
||||||
@@ -59,8 +92,29 @@
|
|||||||
active_power_usage = 200 //builtin health analyzer, dialysis machine, injectors.
|
active_power_usage = 200 //builtin health analyzer, dialysis machine, injectors.
|
||||||
|
|
||||||
/obj/machinery/sleeper/New()
|
/obj/machinery/sleeper/New()
|
||||||
|
..()
|
||||||
|
spawn(5)
|
||||||
|
//src.machine = locate(/obj/machinery/mineral/processing_unit, get_step(src, machinedir))
|
||||||
|
var/obj/machinery/sleep_console/C = locate(/obj/machinery/sleep_console) in range(2,src)
|
||||||
|
if(C)
|
||||||
|
C.connected = src
|
||||||
|
return
|
||||||
|
return
|
||||||
|
|
||||||
|
/obj/machinery/sleeper/map/New()
|
||||||
..()
|
..()
|
||||||
beaker = new /obj/item/weapon/reagent_containers/glass/beaker/large(src)
|
beaker = new /obj/item/weapon/reagent_containers/glass/beaker/large(src)
|
||||||
|
circuit = new circuit(src)
|
||||||
|
component_parts = list()
|
||||||
|
component_parts += new /obj/item/weapon/stock_parts/scanning_module(src)
|
||||||
|
component_parts += new /obj/item/weapon/reagent_containers/glass/beaker(src)
|
||||||
|
component_parts += new /obj/item/weapon/reagent_containers/glass/beaker(src)
|
||||||
|
component_parts += new /obj/item/weapon/reagent_containers/glass/beaker(src)
|
||||||
|
component_parts += new /obj/item/weapon/reagent_containers/syringe(src)
|
||||||
|
component_parts += new /obj/item/weapon/reagent_containers/syringe(src)
|
||||||
|
component_parts += new /obj/item/weapon/reagent_containers/syringe(src)
|
||||||
|
component_parts += new /obj/item/stack/material/glass/reinforced(src, 2)
|
||||||
|
RefreshParts()
|
||||||
|
|
||||||
/obj/machinery/sleeper/initialize()
|
/obj/machinery/sleeper/initialize()
|
||||||
update_icon()
|
update_icon()
|
||||||
@@ -156,6 +210,10 @@
|
|||||||
return 1
|
return 1
|
||||||
|
|
||||||
/obj/machinery/sleeper/attackby(var/obj/item/I, var/mob/user)
|
/obj/machinery/sleeper/attackby(var/obj/item/I, var/mob/user)
|
||||||
|
if(default_deconstruction_screwdriver(user, I))
|
||||||
|
return
|
||||||
|
if(default_deconstruction_crowbar(user, I))
|
||||||
|
return
|
||||||
add_fingerprint(user)
|
add_fingerprint(user)
|
||||||
if(istype(I, /obj/item/weapon/reagent_containers/glass))
|
if(istype(I, /obj/item/weapon/reagent_containers/glass))
|
||||||
if(!beaker)
|
if(!beaker)
|
||||||
@@ -230,7 +288,9 @@
|
|||||||
occupant.loc = loc
|
occupant.loc = loc
|
||||||
occupant = null
|
occupant = null
|
||||||
for(var/atom/movable/A in src) // In case an object was dropped inside or something
|
for(var/atom/movable/A in src) // In case an object was dropped inside or something
|
||||||
if(A == beaker)
|
if(A == beaker || A == circuit)
|
||||||
|
continue
|
||||||
|
if(A in component_parts)
|
||||||
continue
|
continue
|
||||||
A.loc = loc
|
A.loc = loc
|
||||||
update_use_power(1)
|
update_use_power(1)
|
||||||
|
|||||||
@@ -9,11 +9,31 @@
|
|||||||
icon_state = "body_scanner_0"
|
icon_state = "body_scanner_0"
|
||||||
density = 1
|
density = 1
|
||||||
anchored = 1
|
anchored = 1
|
||||||
|
circuit = /obj/item/weapon/circuitboard/body_scanner
|
||||||
|
|
||||||
use_power = 1
|
use_power = 1
|
||||||
idle_power_usage = 60
|
idle_power_usage = 60
|
||||||
active_power_usage = 10000 //10 kW. It's a big all-body scanner.
|
active_power_usage = 10000 //10 kW. It's a big all-body scanner.
|
||||||
|
|
||||||
|
/obj/machinery/bodyscanner/New()
|
||||||
|
..()
|
||||||
|
spawn( 5 )
|
||||||
|
var/obj/machinery/body_scanconsole/C = locate(/obj/machinery/body_scanconsole) in range(2,src)
|
||||||
|
if(C)
|
||||||
|
C.connected = src
|
||||||
|
return
|
||||||
|
return
|
||||||
|
|
||||||
|
/obj/machinery/bodyscanner/map/New()
|
||||||
|
..()
|
||||||
|
circuit = new circuit(src)
|
||||||
|
component_parts = list()
|
||||||
|
component_parts += new /obj/item/weapon/stock_parts/scanning_module(src)
|
||||||
|
component_parts += new /obj/item/weapon/stock_parts/scanning_module(src)
|
||||||
|
component_parts += new /obj/item/weapon/stock_parts/scanning_module(src)
|
||||||
|
component_parts += new /obj/item/stack/material/glass/reinforced(src, 2)
|
||||||
|
RefreshParts()
|
||||||
|
|
||||||
/obj/machinery/bodyscanner/relaymove(mob/user as mob)
|
/obj/machinery/bodyscanner/relaymove(mob/user as mob)
|
||||||
if (user.stat)
|
if (user.stat)
|
||||||
return
|
return
|
||||||
@@ -53,6 +73,10 @@
|
|||||||
src.icon_state = "body_scanner_1"
|
src.icon_state = "body_scanner_1"
|
||||||
for(var/obj/O in src)
|
for(var/obj/O in src)
|
||||||
//O = null
|
//O = null
|
||||||
|
if(O in component_parts)
|
||||||
|
continue
|
||||||
|
if(O == circuit)
|
||||||
|
continue
|
||||||
qdel(O)
|
qdel(O)
|
||||||
//Foreach goto(124)
|
//Foreach goto(124)
|
||||||
src.add_fingerprint(usr)
|
src.add_fingerprint(usr)
|
||||||
@@ -62,6 +86,10 @@
|
|||||||
if ((!( src.occupant ) || src.locked))
|
if ((!( src.occupant ) || src.locked))
|
||||||
return
|
return
|
||||||
for(var/obj/O in src)
|
for(var/obj/O in src)
|
||||||
|
if(O in component_parts)
|
||||||
|
continue
|
||||||
|
if(O == circuit)
|
||||||
|
continue
|
||||||
O.loc = src.loc
|
O.loc = src.loc
|
||||||
//Foreach goto(30)
|
//Foreach goto(30)
|
||||||
if (src.occupant.client)
|
if (src.occupant.client)
|
||||||
@@ -73,16 +101,23 @@
|
|||||||
src.icon_state = "body_scanner_0"
|
src.icon_state = "body_scanner_0"
|
||||||
return
|
return
|
||||||
|
|
||||||
/obj/machinery/bodyscanner/attackby(obj/item/weapon/grab/G as obj, user as mob)
|
/obj/machinery/bodyscanner/attackby(var/obj/item/G, user as mob)
|
||||||
if ((!( istype(G, /obj/item/weapon/grab) ) || !( ismob(G.affecting) )))
|
if(default_deconstruction_screwdriver(user, G))
|
||||||
|
return
|
||||||
|
if(default_deconstruction_crowbar(user, G))
|
||||||
|
return
|
||||||
|
|
||||||
|
if(istype(G, /obj/item/weapon/grab))
|
||||||
|
var/obj/item/weapon/grab/H = G
|
||||||
|
if(!(ismob(H.affecting)))
|
||||||
return
|
return
|
||||||
if (src.occupant)
|
if (src.occupant)
|
||||||
user << "<span class='warning'>The scanner is already occupied!</span>"
|
user << "<span class='warning'>The scanner is already occupied!</span>"
|
||||||
return
|
return
|
||||||
if (G.affecting.abiotic())
|
if (H.affecting.abiotic())
|
||||||
user << "<span class='warning'>Subject cannot have abiotic items on.</span>"
|
user << "<span class='warning'>Subject cannot have abiotic items on.</span>"
|
||||||
return
|
return
|
||||||
var/mob/M = G.affecting
|
var/mob/M = H.affecting
|
||||||
if (M.client)
|
if (M.client)
|
||||||
M.client.perspective = EYE_PERSPECTIVE
|
M.client.perspective = EYE_PERSPECTIVE
|
||||||
M.client.eye = src
|
M.client.eye = src
|
||||||
@@ -91,6 +126,10 @@
|
|||||||
update_use_power(2)
|
update_use_power(2)
|
||||||
src.icon_state = "body_scanner_1"
|
src.icon_state = "body_scanner_1"
|
||||||
for(var/obj/O in src)
|
for(var/obj/O in src)
|
||||||
|
if(O in component_parts)
|
||||||
|
continue
|
||||||
|
if(O == circuit)
|
||||||
|
continue
|
||||||
O.loc = src.loc
|
O.loc = src.loc
|
||||||
//Foreach goto(154)
|
//Foreach goto(154)
|
||||||
src.add_fingerprint(user)
|
src.add_fingerprint(user)
|
||||||
@@ -102,6 +141,10 @@
|
|||||||
switch(severity)
|
switch(severity)
|
||||||
if(1.0)
|
if(1.0)
|
||||||
for(var/atom/movable/A as mob|obj in src)
|
for(var/atom/movable/A as mob|obj in src)
|
||||||
|
if(A in component_parts)
|
||||||
|
continue
|
||||||
|
if(A == circuit)
|
||||||
|
continue
|
||||||
A.loc = src.loc
|
A.loc = src.loc
|
||||||
ex_act(severity)
|
ex_act(severity)
|
||||||
//Foreach goto(35)
|
//Foreach goto(35)
|
||||||
@@ -111,6 +154,10 @@
|
|||||||
if(2.0)
|
if(2.0)
|
||||||
if (prob(50))
|
if (prob(50))
|
||||||
for(var/atom/movable/A as mob|obj in src)
|
for(var/atom/movable/A as mob|obj in src)
|
||||||
|
if(A in component_parts)
|
||||||
|
continue
|
||||||
|
if(A == circuit)
|
||||||
|
continue
|
||||||
A.loc = src.loc
|
A.loc = src.loc
|
||||||
ex_act(severity)
|
ex_act(severity)
|
||||||
//Foreach goto(108)
|
//Foreach goto(108)
|
||||||
@@ -120,6 +167,10 @@
|
|||||||
if(3.0)
|
if(3.0)
|
||||||
if (prob(25))
|
if (prob(25))
|
||||||
for(var/atom/movable/A as mob|obj in src)
|
for(var/atom/movable/A as mob|obj in src)
|
||||||
|
if(A in component_parts)
|
||||||
|
continue
|
||||||
|
if(A == circuit)
|
||||||
|
continue
|
||||||
A.loc = src.loc
|
A.loc = src.loc
|
||||||
ex_act(severity)
|
ex_act(severity)
|
||||||
//Foreach goto(181)
|
//Foreach goto(181)
|
||||||
@@ -166,11 +217,12 @@
|
|||||||
dir = 8
|
dir = 8
|
||||||
density = 0
|
density = 0
|
||||||
anchored = 1
|
anchored = 1
|
||||||
|
circuit = /obj/item/weapon/circuitboard/scanner_console
|
||||||
|
|
||||||
/obj/machinery/body_scanconsole/New()
|
/obj/machinery/body_scanconsole/New()
|
||||||
..()
|
..()
|
||||||
spawn( 5 )
|
spawn( 5 )
|
||||||
src.connected = locate(/obj/machinery/bodyscanner, get_step(src, WEST)) //We assume dir = 8 so scanner is WEST. Other sprites do exist.
|
src.connected = locate(/obj/machinery/bodyscanner) in range(2,src)
|
||||||
return
|
return
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -228,6 +280,36 @@
|
|||||||
user << browse(dat, "window=scanconsole;size=430x600")
|
user << browse(dat, "window=scanconsole;size=430x600")
|
||||||
return
|
return
|
||||||
|
|
||||||
|
/obj/machinery/body_scanconsole/attackby(var/obj/item/I, var/mob/user)
|
||||||
|
if(istype(I, /obj/item/weapon/screwdriver) && circuit)
|
||||||
|
user << "<span class='notice'>You start disconnecting the monitor.</span>"
|
||||||
|
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
||||||
|
if(do_after(user, 20))
|
||||||
|
var/obj/structure/frame/A = new /obj/structure/frame( src.loc )
|
||||||
|
var/obj/item/weapon/circuitboard/M = new circuit( A )
|
||||||
|
A.circuit = M
|
||||||
|
A.anchored = 1
|
||||||
|
A.density = 1
|
||||||
|
A.frame_type = M.board_type
|
||||||
|
for (var/obj/C in src)
|
||||||
|
C.forceMove(loc)
|
||||||
|
if (src.stat & BROKEN)
|
||||||
|
user << "<span class='notice'>The broken glass falls out.</span>"
|
||||||
|
new /obj/item/weapon/material/shard( src.loc )
|
||||||
|
A.state = 3
|
||||||
|
A.icon_state = "[A.frame_type]_3"
|
||||||
|
else
|
||||||
|
user << "<span class='notice'>You disconnect the monitor.</span>"
|
||||||
|
A.state = 4
|
||||||
|
A.icon_state = "[A.frame_type]_4"
|
||||||
|
A.pixel_x = pixel_x
|
||||||
|
A.pixel_y = pixel_y
|
||||||
|
A.dir = dir
|
||||||
|
M.deconstruct(src)
|
||||||
|
qdel(src)
|
||||||
|
else
|
||||||
|
src.attack_hand(user)
|
||||||
|
return
|
||||||
|
|
||||||
/obj/machinery/body_scanconsole/Topic(href, href_list)
|
/obj/machinery/body_scanconsole/Topic(href, href_list)
|
||||||
if (..())
|
if (..())
|
||||||
|
|||||||
@@ -23,12 +23,14 @@
|
|||||||
|
|
||||||
var/datum/wires/autolathe/wires = null
|
var/datum/wires/autolathe/wires = null
|
||||||
|
|
||||||
|
|
||||||
/obj/machinery/autolathe/New()
|
/obj/machinery/autolathe/New()
|
||||||
|
|
||||||
..()
|
..()
|
||||||
wires = new(src)
|
wires = new(src)
|
||||||
|
|
||||||
|
/obj/machinery/autolathe/map/New()
|
||||||
|
..()
|
||||||
//Create parts for lathe.
|
//Create parts for lathe.
|
||||||
|
circuit = new circuit(src)
|
||||||
component_parts = list()
|
component_parts = list()
|
||||||
component_parts += new /obj/item/weapon/stock_parts/matter_bin(src)
|
component_parts += new /obj/item/weapon/stock_parts/matter_bin(src)
|
||||||
component_parts += new /obj/item/weapon/stock_parts/matter_bin(src)
|
component_parts += new /obj/item/weapon/stock_parts/matter_bin(src)
|
||||||
|
|||||||
@@ -32,6 +32,11 @@
|
|||||||
path = /obj/item/weapon/reagent_containers/glass/bucket
|
path = /obj/item/weapon/reagent_containers/glass/bucket
|
||||||
category = "General"
|
category = "General"
|
||||||
|
|
||||||
|
/datum/autolathe/recipe/bucket/drinkingglass
|
||||||
|
name = "drinking glass"
|
||||||
|
path = /obj/item/weapon/reagent_containers/food/drinks/drinkingglass
|
||||||
|
category = "General"
|
||||||
|
|
||||||
/datum/autolathe/recipe/flashlight
|
/datum/autolathe/recipe/flashlight
|
||||||
name = "flashlight"
|
name = "flashlight"
|
||||||
path = /obj/item/device/flashlight
|
path = /obj/item/device/flashlight
|
||||||
@@ -226,26 +231,21 @@
|
|||||||
path = /obj/item/weapon/circuitboard/fax
|
path = /obj/item/weapon/circuitboard/fax
|
||||||
category = "Engineering"
|
category = "Engineering"
|
||||||
|
|
||||||
/datum/autolathe/recipe/conveyor
|
|
||||||
name = "conveyor electronics"
|
|
||||||
path = /obj/item/weapon/circuitboard/conveyor
|
|
||||||
category = "Engineering"
|
|
||||||
|
|
||||||
/datum/autolathe/recipe/microwave
|
/datum/autolathe/recipe/microwave
|
||||||
name = "microwave electronics"
|
name = "microwave electronics"
|
||||||
path = /obj/item/weapon/circuitboard/microwave
|
path = /obj/item/weapon/circuitboard/microwave
|
||||||
category = "Engineering"
|
category = "Engineering"
|
||||||
|
|
||||||
/datum/autolathe/recipe/vending
|
|
||||||
name = "vending machine electronics"
|
|
||||||
path = /obj/item/weapon/circuitboard/vending
|
|
||||||
category = "Engineering"
|
|
||||||
|
|
||||||
/datum/autolathe/recipe/washing
|
/datum/autolathe/recipe/washing
|
||||||
name = "washing machine electronics"
|
name = "washing machine electronics"
|
||||||
path = /obj/item/weapon/circuitboard/washing
|
path = /obj/item/weapon/circuitboard/washing
|
||||||
category = "Engineering"
|
category = "Engineering"
|
||||||
|
|
||||||
|
/datum/autolathe/recipe/request
|
||||||
|
name = "request console electronics"
|
||||||
|
path = /obj/item/weapon/circuitboard/request
|
||||||
|
category = "Engineering"
|
||||||
|
|
||||||
/datum/autolathe/recipe/motor
|
/datum/autolathe/recipe/motor
|
||||||
name = "motor"
|
name = "motor"
|
||||||
path = /obj/item/weapon/stock_parts/motor
|
path = /obj/item/weapon/stock_parts/motor
|
||||||
|
|||||||
@@ -21,8 +21,11 @@
|
|||||||
var/datum/reagents/R = new/datum/reagents(1000)
|
var/datum/reagents/R = new/datum/reagents(1000)
|
||||||
reagents = R
|
reagents = R
|
||||||
R.my_atom = src
|
R.my_atom = src
|
||||||
beaker = new /obj/item/weapon/reagent_containers/glass/bottle(src)
|
|
||||||
|
|
||||||
|
/obj/machinery/biogenerator/map/New()
|
||||||
|
..()
|
||||||
|
beaker = new /obj/item/weapon/reagent_containers/glass/bottle(src)
|
||||||
|
circuit = new circuit(src)
|
||||||
component_parts = list()
|
component_parts = list()
|
||||||
component_parts += new /obj/item/weapon/stock_parts/matter_bin(src)
|
component_parts += new /obj/item/weapon/stock_parts/matter_bin(src)
|
||||||
component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
|
component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
// PRESETS
|
// PRESETS
|
||||||
var/global/list/station_networks = list(
|
var/global/list/station_networks = list(
|
||||||
NETWORK_CAFE_DOCK,
|
// NETWORK_CAFE_DOCK,
|
||||||
NETWORK_CARGO,
|
NETWORK_CARGO,
|
||||||
NETWORK_CIVILIAN,
|
NETWORK_CIVILIAN,
|
||||||
NETWORK_CIVILIAN_EAST,
|
// NETWORK_CIVILIAN_EAST,
|
||||||
NETWORK_CIVILIAN_WEST,
|
// NETWORK_CIVILIAN_WEST,
|
||||||
NETWORK_COMMAND,
|
NETWORK_COMMAND,
|
||||||
NETWORK_ENGINE,
|
NETWORK_ENGINE,
|
||||||
NETWORK_ENGINEERING,
|
NETWORK_ENGINEERING,
|
||||||
@@ -29,8 +29,10 @@ var/global/list/engineering_networks = list(
|
|||||||
/obj/machinery/camera/network/crescent
|
/obj/machinery/camera/network/crescent
|
||||||
network = list(NETWORK_CRESCENT)
|
network = list(NETWORK_CRESCENT)
|
||||||
|
|
||||||
|
/*
|
||||||
/obj/machinery/camera/network/cafe_dock
|
/obj/machinery/camera/network/cafe_dock
|
||||||
network = list(NETWORK_CAFE_DOCK)
|
network = list(NETWORK_CAFE_DOCK)
|
||||||
|
*/
|
||||||
|
|
||||||
/obj/machinery/camera/network/cargo
|
/obj/machinery/camera/network/cargo
|
||||||
network = list(NETWORK_CARGO)
|
network = list(NETWORK_CARGO)
|
||||||
@@ -38,11 +40,13 @@ var/global/list/engineering_networks = list(
|
|||||||
/obj/machinery/camera/network/civilian
|
/obj/machinery/camera/network/civilian
|
||||||
network = list(NETWORK_CIVILIAN)
|
network = list(NETWORK_CIVILIAN)
|
||||||
|
|
||||||
|
/*
|
||||||
/obj/machinery/camera/network/civilian_east
|
/obj/machinery/camera/network/civilian_east
|
||||||
network = list(NETWORK_CIVILIAN_EAST)
|
network = list(NETWORK_CIVILIAN_EAST)
|
||||||
|
|
||||||
/obj/machinery/camera/network/civilian_west
|
/obj/machinery/camera/network/civilian_west
|
||||||
network = list(NETWORK_CIVILIAN_WEST)
|
network = list(NETWORK_CIVILIAN_WEST)
|
||||||
|
*/
|
||||||
|
|
||||||
/obj/machinery/camera/network/command
|
/obj/machinery/camera/network/command
|
||||||
network = list(NETWORK_COMMAND)
|
network = list(NETWORK_COMMAND)
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
anchored = 1
|
anchored = 1
|
||||||
use_power = 1
|
use_power = 1
|
||||||
idle_power_usage = 5
|
idle_power_usage = 5
|
||||||
active_power_usage = 40000 //40 kW. (this the power drawn when charging)
|
active_power_usage = 60000 //60 kW. (this the power drawn when charging)
|
||||||
power_channel = EQUIP
|
power_channel = EQUIP
|
||||||
var/obj/item/weapon/cell/charging = null
|
var/obj/item/weapon/cell/charging = null
|
||||||
var/chargelevel = -1
|
var/chargelevel = -1
|
||||||
|
|||||||
@@ -45,8 +45,9 @@
|
|||||||
var/eject_wait = 0 //Don't eject them as soon as they are created fuckkk
|
var/eject_wait = 0 //Don't eject them as soon as they are created fuckkk
|
||||||
var/biomass = CLONE_BIOMASS * 3
|
var/biomass = CLONE_BIOMASS * 3
|
||||||
|
|
||||||
/obj/machinery/clonepod/New()
|
/obj/machinery/clonepod/map/New()
|
||||||
..()
|
..()
|
||||||
|
circuit = new circuit(src)
|
||||||
component_parts = list()
|
component_parts = list()
|
||||||
component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
|
component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
|
||||||
component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
|
component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
|
||||||
|
|||||||
@@ -61,6 +61,7 @@
|
|||||||
..()
|
..()
|
||||||
uid = "[rand(100,999)]-G[rand(10,99)]"
|
uid = "[rand(100,999)]-G[rand(10,99)]"
|
||||||
|
|
||||||
|
|
||||||
/obj/machinery/computer/guestpass/attackby(obj/I, mob/user)
|
/obj/machinery/computer/guestpass/attackby(obj/I, mob/user)
|
||||||
if(istype(I, /obj/item/weapon/screwdriver) && circuit)
|
if(istype(I, /obj/item/weapon/screwdriver) && circuit)
|
||||||
user << "<span class='notice'>You start disconnecting the monitor.</span>"
|
user << "<span class='notice'>You start disconnecting the monitor.</span>"
|
||||||
@@ -83,7 +84,7 @@
|
|||||||
return
|
return
|
||||||
if(istype(I, /obj/item/weapon/card/id))
|
if(istype(I, /obj/item/weapon/card/id))
|
||||||
if(!giver && user.unEquip(I))
|
if(!giver && user.unEquip(I))
|
||||||
I.loc = src
|
I.forceMove(src)
|
||||||
giver = I
|
giver = I
|
||||||
updateUsrDialog()
|
updateUsrDialog()
|
||||||
else if(giver)
|
else if(giver)
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
icon_keyboard = "med_key"
|
icon_keyboard = "med_key"
|
||||||
icon_screen = "medcomp"
|
icon_screen = "medcomp"
|
||||||
light_color = "#315ab4"
|
light_color = "#315ab4"
|
||||||
req_one_access = list(access_medical, access_forensics_lockers)
|
req_one_access = list(access_medical, access_forensics_lockers, access_robotics)
|
||||||
circuit = /obj/item/weapon/circuitboard/med_data
|
circuit = /obj/item/weapon/circuitboard/med_data
|
||||||
var/obj/item/weapon/card/id/scan = null
|
var/obj/item/weapon/card/id/scan = null
|
||||||
var/authenticated = null
|
var/authenticated = null
|
||||||
@@ -49,11 +49,11 @@
|
|||||||
/obj/machinery/computer/med_data/attack_hand(mob/user as mob)
|
/obj/machinery/computer/med_data/attack_hand(mob/user as mob)
|
||||||
if(..())
|
if(..())
|
||||||
return
|
return
|
||||||
var/dat
|
var/dat = list()
|
||||||
if (src.temp)
|
if (src.temp)
|
||||||
dat = text("<TT>[src.temp]</TT><BR><BR><A href='?src=\ref[src];temp=1'>Clear Screen</A>")
|
dat += text("<TT>[src.temp]</TT><BR><BR><A href='?src=\ref[src];temp=1'>Clear Screen</A>")
|
||||||
else
|
else
|
||||||
dat = text("Confirm Identity: <A href='?src=\ref[];scan=1'>[]</A><HR>", src, (src.scan ? text("[]", src.scan.name) : "----------"))
|
dat += text("Confirm Identity: <A href='?src=\ref[];scan=1'>[]</A><HR>", src, (src.scan ? text("[]", src.scan.name) : "----------"))
|
||||||
if (src.authenticated)
|
if (src.authenticated)
|
||||||
switch(src.screen)
|
switch(src.screen)
|
||||||
if(1.0)
|
if(1.0)
|
||||||
@@ -85,8 +85,12 @@
|
|||||||
if ((istype(src.active1, /datum/data/record) && data_core.general.Find(src.active1)))
|
if ((istype(src.active1, /datum/data/record) && data_core.general.Find(src.active1)))
|
||||||
dat += "<table><tr><td>Name: [active1.fields["name"]] \
|
dat += "<table><tr><td>Name: [active1.fields["name"]] \
|
||||||
ID: [active1.fields["id"]]<BR>\n \
|
ID: [active1.fields["id"]]<BR>\n \
|
||||||
Sex: <A href='?src=\ref[src];field=sex'>[active1.fields["sex"]]</A><BR>\n \
|
Sex: <A href='?src=\ref[src];field=sex'>[active1.fields["sex"]]</A><BR>\n"
|
||||||
Age: <A href='?src=\ref[src];field=age'>[active1.fields["age"]]</A><BR>\n \
|
if ((istype(src.active2, /datum/data/record) && data_core.medical.Find(src.active2)))
|
||||||
|
dat += "Gender identity: <A href='?src=\ref[src];field=id_gender'>[active2.fields["id_gender"]]</A><BR>"
|
||||||
|
else
|
||||||
|
dat += "Gender identity: <A href='?src=\ref[src];field=id_gender'>Unknown</A><BR>"
|
||||||
|
dat += "Age: <A href='?src=\ref[src];field=age'>[active1.fields["age"]]</A><BR>\n \
|
||||||
Fingerprint: <A href='?src=\ref[src];field=fingerprint'>[active1.fields["fingerprint"]]</A><BR>\n \
|
Fingerprint: <A href='?src=\ref[src];field=fingerprint'>[active1.fields["fingerprint"]]</A><BR>\n \
|
||||||
Physical Status: <A href='?src=\ref[src];field=p_stat'>[active1.fields["p_stat"]]</A><BR>\n \
|
Physical Status: <A href='?src=\ref[src];field=p_stat'>[active1.fields["p_stat"]]</A><BR>\n \
|
||||||
Mental Status: <A href='?src=\ref[src];field=m_stat'>[active1.fields["m_stat"]]</A><BR></td><td align = center valign = top> \
|
Mental Status: <A href='?src=\ref[src];field=m_stat'>[active1.fields["m_stat"]]</A><BR></td><td align = center valign = top> \
|
||||||
@@ -135,6 +139,7 @@
|
|||||||
else
|
else
|
||||||
else
|
else
|
||||||
dat += text("<A href='?src=\ref[];login=1'>{Log In}</A>", src)
|
dat += text("<A href='?src=\ref[];login=1'>{Log In}</A>", src)
|
||||||
|
dat = jointext(dat,null)
|
||||||
user << browse(text("<HEAD><TITLE>Medical Records</TITLE></HEAD><TT>[]</TT>", dat), "window=med_rec")
|
user << browse(text("<HEAD><TITLE>Medical Records</TITLE></HEAD><TT>[]</TT>", dat), "window=med_rec")
|
||||||
onclose(user, "med_rec")
|
onclose(user, "med_rec")
|
||||||
return
|
return
|
||||||
@@ -249,10 +254,10 @@
|
|||||||
src.active1.fields["fingerprint"] = t1
|
src.active1.fields["fingerprint"] = t1
|
||||||
if("sex")
|
if("sex")
|
||||||
if (istype(src.active1, /datum/data/record))
|
if (istype(src.active1, /datum/data/record))
|
||||||
if (src.active1.fields["sex"] == "Male")
|
src.active1.fields["sex"] = next_in_list(src.active1.fields["sex"], all_genders_text_list)
|
||||||
src.active1.fields["sex"] = "Female"
|
if("id_gender")
|
||||||
else
|
if (istype(src.active2, /datum/data/record))
|
||||||
src.active1.fields["sex"] = "Male"
|
src.active2.fields["id_gender"] = next_in_list(src.active2.fields["id_gender"], all_genders_text_list)
|
||||||
if("age")
|
if("age")
|
||||||
if (istype(src.active1, /datum/data/record))
|
if (istype(src.active1, /datum/data/record))
|
||||||
var/t1 = input("Please input age:", "Med. records", src.active1.fields["age"], null) as num
|
var/t1 = input("Please input age:", "Med. records", src.active1.fields["age"], null) as num
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
// Proc: New()
|
// Proc: New()
|
||||||
// Parameters: None
|
// Parameters: None
|
||||||
// Description: Adds components to the machine for deconstruction.
|
// Description: Adds components to the machine for deconstruction.
|
||||||
/obj/machinery/exonet_node/New()
|
/obj/machinery/exonet_node/map/New()
|
||||||
..()
|
..()
|
||||||
|
|
||||||
component_parts = list()
|
component_parts = list()
|
||||||
|
|||||||
@@ -13,10 +13,13 @@
|
|||||||
var/list/req_component_names = null
|
var/list/req_component_names = null
|
||||||
|
|
||||||
var/list/alarms = list("firealarm", "airalarm", "intercom", "keycard")
|
var/list/alarms = list("firealarm", "airalarm", "intercom", "keycard")
|
||||||
var/list/machines = list("machine", "photocopier", "fax", "microwave", "conveyor", "vending", "recharger", "wrecharger", "washing", "grinder")
|
var/list/machines = list(
|
||||||
var/list/computers = list("computer", "holopad")
|
"machine", "photocopier", "fax", "microwave", "conveyor", "recharger", "wrecharger",
|
||||||
var/list/displays = list("display", "guestpass", "newscaster", "atm")
|
"washing", "grinder", "teleporter_hub", "teleporter_station", "medpod", "dna_analyzer",
|
||||||
var/list/no_circuit = list("wrecharger", "recharger", "grinder","conveyor")
|
"massdriver")
|
||||||
|
var/list/computers = list("computer", "holopad", "console")
|
||||||
|
var/list/displays = list("display", "guestpass", "newscaster", "atm", "request")
|
||||||
|
var/list/no_circuit = list("wrecharger", "recharger", "grinder", "conveyor", "massdriver")
|
||||||
|
|
||||||
/obj/structure/frame/proc/update_desc()
|
/obj/structure/frame/proc/update_desc()
|
||||||
var/D
|
var/D
|
||||||
@@ -35,15 +38,16 @@
|
|||||||
req_components[A] = circuit.req_components[A]
|
req_components[A] = circuit.req_components[A]
|
||||||
req_component_names = circuit.req_components.Copy()
|
req_component_names = circuit.req_components.Copy()
|
||||||
for(var/A in req_components)
|
for(var/A in req_components)
|
||||||
var/cp = text2path(A)
|
var/obj/ct = A
|
||||||
var/obj/ct = new cp() // have to quickly instantiate it get name
|
req_component_names[A] = initial(ct.name)
|
||||||
req_component_names[A] = ct.name
|
|
||||||
|
|
||||||
/obj/structure/frame/New(var/loc, var/dir, var/building = 0, var/obj/item/frame/frame_type, mob/user as mob)
|
/obj/structure/frame/New(var/loc, var/dir, var/building = 0, var/obj/item/frame/frame_type, mob/user as mob)
|
||||||
..()
|
..()
|
||||||
if(building)
|
if(building)
|
||||||
src.frame_type = frame_type
|
src.frame_type = frame_type
|
||||||
icon_state = "[frame_type]_0"
|
icon_state = "[frame_type]_0"
|
||||||
|
if(dir)
|
||||||
|
src.set_dir(dir)
|
||||||
|
|
||||||
if(frame_type in alarms)
|
if(frame_type in alarms)
|
||||||
if(loc)
|
if(loc)
|
||||||
@@ -69,7 +73,7 @@
|
|||||||
if(loc)
|
if(loc)
|
||||||
src.loc = loc
|
src.loc = loc
|
||||||
|
|
||||||
if(frame_type == "display" || frame_type == "atm")
|
if(frame_type == "display" || frame_type == "atm" || frame_type == "request")
|
||||||
pixel_x = (dir & 3)? 0 : (dir == 4 ? -32 : 32)
|
pixel_x = (dir & 3)? 0 : (dir == 4 ? -32 : 32)
|
||||||
pixel_y = (dir & 3)? (dir == 1 ? -32 : 32) : 0
|
pixel_y = (dir & 3)? (dir == 1 ? -32 : 32) : 0
|
||||||
|
|
||||||
@@ -104,8 +108,8 @@
|
|||||||
circuit = new /obj/item/weapon/circuitboard/grinder(src)
|
circuit = new /obj/item/weapon/circuitboard/grinder(src)
|
||||||
if(frame_type == "conveyor")
|
if(frame_type == "conveyor")
|
||||||
circuit = new /obj/item/weapon/circuitboard/conveyor(src)
|
circuit = new /obj/item/weapon/circuitboard/conveyor(src)
|
||||||
if(dir)
|
if(frame_type == "massdriver")
|
||||||
src.set_dir(dir)
|
circuit = new /obj/item/weapon/circuitboard/mass_driver(src)
|
||||||
|
|
||||||
if(frame_type == "computer")
|
if(frame_type == "computer")
|
||||||
density = 1
|
density = 1
|
||||||
@@ -214,12 +218,25 @@
|
|||||||
if(component_check)
|
if(component_check)
|
||||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
||||||
var/obj/machinery/new_machine = new src.circuit.build_path(src.loc, src.dir)
|
var/obj/machinery/new_machine = new src.circuit.build_path(src.loc, src.dir)
|
||||||
if(!new_machine.component_parts)
|
if(new_machine.component_parts)
|
||||||
for(var/obj/O in src.components)
|
new_machine.component_parts.Cut()
|
||||||
O.forceMove(null)
|
else
|
||||||
new_machine.RefreshParts()
|
new_machine.component_parts = list()
|
||||||
|
|
||||||
src.circuit.construct(new_machine)
|
src.circuit.construct(new_machine)
|
||||||
|
|
||||||
|
for(var/obj/O in src.components)
|
||||||
|
if(circuit.contain_parts)
|
||||||
|
O.loc = new_machine
|
||||||
|
else
|
||||||
|
O.loc = null
|
||||||
|
new_machine.component_parts += O
|
||||||
|
|
||||||
|
circuit.loc = null
|
||||||
|
new_machine.circuit = circuit
|
||||||
|
|
||||||
|
new_machine.RefreshParts()
|
||||||
|
|
||||||
new_machine.pixel_x = src.pixel_x
|
new_machine.pixel_x = src.pixel_x
|
||||||
new_machine.pixel_y = src.pixel_y
|
new_machine.pixel_y = src.pixel_y
|
||||||
qdel(src)
|
qdel(src)
|
||||||
@@ -243,6 +260,7 @@
|
|||||||
var/obj/machinery/B = new src.circuit.build_path ( src.loc )
|
var/obj/machinery/B = new src.circuit.build_path ( src.loc )
|
||||||
B.pixel_x = src.pixel_x
|
B.pixel_x = src.pixel_x
|
||||||
B.pixel_y = src.pixel_y
|
B.pixel_y = src.pixel_y
|
||||||
|
B.set_dir(dir)
|
||||||
src.circuit.construct(B)
|
src.circuit.construct(B)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
return
|
return
|
||||||
@@ -253,6 +271,7 @@
|
|||||||
var/obj/machinery/B = new src.circuit.build_path ( src.loc )
|
var/obj/machinery/B = new src.circuit.build_path ( src.loc )
|
||||||
B.pixel_x = src.pixel_x
|
B.pixel_x = src.pixel_x
|
||||||
B.pixel_y = src.pixel_y
|
B.pixel_y = src.pixel_y
|
||||||
|
B.set_dir(dir)
|
||||||
src.circuit.construct(B)
|
src.circuit.construct(B)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
return
|
return
|
||||||
@@ -386,13 +405,13 @@
|
|||||||
if(state == 3)
|
if(state == 3)
|
||||||
if(frame_type in machines)
|
if(frame_type in machines)
|
||||||
for(var/I in req_components)
|
for(var/I in req_components)
|
||||||
if(istype(P, text2path(I)) && (req_components[I] > 0))
|
if(istype(P, I) && (req_components[I] > 0))
|
||||||
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
|
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
|
||||||
if(istype(P, /obj/item/stack))
|
if(istype(P, /obj/item/stack/cable_coil))
|
||||||
var/obj/item/stack/CP = P
|
var/obj/item/stack/cable_coil/CP = P
|
||||||
if(CP.get_amount() > 1)
|
if(CP.get_amount() > 1)
|
||||||
var/camt = min(CP.amount, req_components[I]) // amount of cable to take, idealy amount required, but limited by amount provided
|
var/camt = min(CP.amount, req_components[I]) // amount of cable to take, idealy amount required, but limited by amount provided
|
||||||
var/obj/item/stack/CC = new /obj/item/stack(src)
|
var/obj/item/stack/cable_coil/CC = new /obj/item/stack/cable_coil(src)
|
||||||
CC.amount = camt
|
CC.amount = camt
|
||||||
CC.update_icon()
|
CC.update_icon()
|
||||||
CP.use(camt)
|
CP.use(camt)
|
||||||
@@ -400,6 +419,20 @@
|
|||||||
req_components[I] -= camt
|
req_components[I] -= camt
|
||||||
update_desc()
|
update_desc()
|
||||||
break
|
break
|
||||||
|
|
||||||
|
if(istype(P, /obj/item/stack/material/glass/reinforced))
|
||||||
|
var/obj/item/stack/material/glass/reinforced/CP = P
|
||||||
|
if(CP.get_amount() > 1)
|
||||||
|
var/camt = min(CP.amount, req_components[I]) // amount of cable to take, idealy amount required, but limited by amount provided
|
||||||
|
var/obj/item/stack/material/glass/reinforced/CC = new /obj/item/stack/material/glass/reinforced(src)
|
||||||
|
CC.amount = camt
|
||||||
|
CC.update_icon()
|
||||||
|
CP.use(camt)
|
||||||
|
components += CC
|
||||||
|
req_components[I] -= camt
|
||||||
|
update_desc()
|
||||||
|
break
|
||||||
|
|
||||||
user.drop_item()
|
user.drop_item()
|
||||||
P.forceMove(src)
|
P.forceMove(src)
|
||||||
components += P
|
components += P
|
||||||
|
|||||||
@@ -37,6 +37,8 @@
|
|||||||
|
|
||||||
/obj/machinery/iv_drip/MouseDrop(over_object, src_location, over_location)
|
/obj/machinery/iv_drip/MouseDrop(over_object, src_location, over_location)
|
||||||
..()
|
..()
|
||||||
|
if(!isliving(usr))
|
||||||
|
return
|
||||||
|
|
||||||
if(attached)
|
if(attached)
|
||||||
visible_message("[src.attached] is detached from \the [src]")
|
visible_message("[src.attached] is detached from \the [src]")
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
/obj/machinery/microwave
|
/obj/machinery/microwave
|
||||||
name = "Microwave"
|
name = "Microwave"
|
||||||
icon = 'icons/obj/kitchen.dmi'
|
icon = 'icons/obj/kitchen.dmi'
|
||||||
@@ -31,6 +30,9 @@
|
|||||||
reagents = new/datum/reagents(100)
|
reagents = new/datum/reagents(100)
|
||||||
reagents.my_atom = src
|
reagents.my_atom = src
|
||||||
|
|
||||||
|
/obj/machinery/microwave/map/New()
|
||||||
|
..()
|
||||||
|
circuit = new circuit(src)
|
||||||
component_parts = list()
|
component_parts = list()
|
||||||
component_parts += new /obj/item/weapon/stock_parts/console_screen(src)
|
component_parts += new /obj/item/weapon/stock_parts/console_screen(src)
|
||||||
component_parts += new /obj/item/weapon/stock_parts/motor(src)
|
component_parts += new /obj/item/weapon/stock_parts/motor(src)
|
||||||
@@ -114,7 +116,7 @@
|
|||||||
user << "<span class='warning'>It's dirty!</span>"
|
user << "<span class='warning'>It's dirty!</span>"
|
||||||
return 1
|
return 1
|
||||||
else if(is_type_in_list(O,acceptable_items))
|
else if(is_type_in_list(O,acceptable_items))
|
||||||
if (contents.len>=(max_n_of_items + component_parts.len)) //Adds component_parts to the maximum number of items.
|
if (contents.len>=(max_n_of_items + component_parts.len + 1)) //Adds component_parts to the maximum number of items. The 1 is from the circuit
|
||||||
user << "<span class='warning'>This [src] is full of ingredients, you cannot put more.</span>"
|
user << "<span class='warning'>This [src] is full of ingredients, you cannot put more.</span>"
|
||||||
return 1
|
return 1
|
||||||
if(istype(O, /obj/item/stack) && O:get_amount() > 1) // This is bad, but I can't think of how to change it
|
if(istype(O, /obj/item/stack) && O:get_amount() > 1) // This is bad, but I can't think of how to change it
|
||||||
@@ -177,7 +179,7 @@
|
|||||||
var/list/items_counts = new
|
var/list/items_counts = new
|
||||||
var/list/items_measures = new
|
var/list/items_measures = new
|
||||||
var/list/items_measures_p = new
|
var/list/items_measures_p = new
|
||||||
for (var/obj/O in (contents-component_parts))
|
for (var/obj/O in ((contents - component_parts) - circuit))
|
||||||
var/display_name = O.name
|
var/display_name = O.name
|
||||||
if (istype(O,/obj/item/weapon/reagent_containers/food/snacks/egg))
|
if (istype(O,/obj/item/weapon/reagent_containers/food/snacks/egg))
|
||||||
items_measures[display_name] = "egg"
|
items_measures[display_name] = "egg"
|
||||||
@@ -237,7 +239,7 @@
|
|||||||
if(stat & (NOPOWER|BROKEN))
|
if(stat & (NOPOWER|BROKEN))
|
||||||
return
|
return
|
||||||
start()
|
start()
|
||||||
if (reagents.total_volume==0 && !(locate(/obj) in (contents-component_parts))) //dry run
|
if (reagents.total_volume==0 && !(locate(/obj) in ((contents - component_parts) - circuit))) //dry run
|
||||||
if (!wzhzhzh(10))
|
if (!wzhzhzh(10))
|
||||||
abort()
|
abort()
|
||||||
return
|
return
|
||||||
@@ -299,7 +301,7 @@
|
|||||||
return 1
|
return 1
|
||||||
|
|
||||||
/obj/machinery/microwave/proc/has_extra_item()
|
/obj/machinery/microwave/proc/has_extra_item()
|
||||||
for (var/obj/O in (contents-component_parts))
|
for (var/obj/O in ((contents - component_parts) - circuit))
|
||||||
if ( \
|
if ( \
|
||||||
!istype(O,/obj/item/weapon/reagent_containers/food) && \
|
!istype(O,/obj/item/weapon/reagent_containers/food) && \
|
||||||
!istype(O, /obj/item/weapon/grown) \
|
!istype(O, /obj/item/weapon/grown) \
|
||||||
@@ -360,7 +362,7 @@
|
|||||||
/obj/machinery/microwave/proc/fail()
|
/obj/machinery/microwave/proc/fail()
|
||||||
var/obj/item/weapon/reagent_containers/food/snacks/badrecipe/ffuu = new(src)
|
var/obj/item/weapon/reagent_containers/food/snacks/badrecipe/ffuu = new(src)
|
||||||
var/amount = 0
|
var/amount = 0
|
||||||
for (var/obj/O in (contents-ffuu)-component_parts)
|
for (var/obj/O in (((contents - ffuu) - component_parts) - circuit))
|
||||||
amount++
|
amount++
|
||||||
if (O.reagents)
|
if (O.reagents)
|
||||||
var/id = O.reagents.get_master_reagent_id()
|
var/id = O.reagents.get_master_reagent_id()
|
||||||
|
|||||||
@@ -286,8 +286,7 @@ Class Procs:
|
|||||||
var/obj/item/weapon/circuitboard/CB = circuit
|
var/obj/item/weapon/circuitboard/CB = circuit
|
||||||
var/P
|
var/P
|
||||||
for(var/obj/item/weapon/stock_parts/A in component_parts)
|
for(var/obj/item/weapon/stock_parts/A in component_parts)
|
||||||
for(var/D in CB.req_components)
|
for(var/T in CB.req_components)
|
||||||
var/T = text2path(D)
|
|
||||||
if(ispath(A.type, T))
|
if(ispath(A.type, T))
|
||||||
P = T
|
P = T
|
||||||
break
|
break
|
||||||
@@ -328,14 +327,14 @@ Class Procs:
|
|||||||
/obj/machinery/proc/dismantle()
|
/obj/machinery/proc/dismantle()
|
||||||
playsound(loc, 'sound/items/Crowbar.ogg', 50, 1)
|
playsound(loc, 'sound/items/Crowbar.ogg', 50, 1)
|
||||||
var/obj/structure/frame/A = new /obj/structure/frame( src.loc )
|
var/obj/structure/frame/A = new /obj/structure/frame( src.loc )
|
||||||
var/obj/item/weapon/circuitboard/M = new circuit( A )
|
var/obj/item/weapon/circuitboard/M = circuit
|
||||||
A.circuit = M
|
A.circuit = M
|
||||||
A.anchored = 1
|
A.anchored = 1
|
||||||
A.density = 1
|
A.density = 1
|
||||||
A.frame_type = M.board_type
|
A.frame_type = M.board_type
|
||||||
if(A.frame_type in A.no_circuit)
|
if(A.frame_type in A.no_circuit)
|
||||||
A.need_circuit = 0
|
A.need_circuit = 0
|
||||||
for (var/obj/D in src)
|
for (var/obj/D in src.component_parts)
|
||||||
D.forceMove(loc)
|
D.forceMove(loc)
|
||||||
if(A.components)
|
if(A.components)
|
||||||
A.components.Cut()
|
A.components.Cut()
|
||||||
@@ -344,10 +343,12 @@ Class Procs:
|
|||||||
component_parts = list()
|
component_parts = list()
|
||||||
A.icon_state = "[A.frame_type]_3"
|
A.icon_state = "[A.frame_type]_3"
|
||||||
A.state = 3
|
A.state = 3
|
||||||
|
A.dir = dir
|
||||||
A.pixel_x = pixel_x
|
A.pixel_x = pixel_x
|
||||||
A.pixel_y = pixel_y
|
A.pixel_y = pixel_y
|
||||||
A.check_components()
|
A.check_components()
|
||||||
A.update_desc()
|
A.update_desc()
|
||||||
|
M.loc = null
|
||||||
M.deconstruct(src)
|
M.deconstruct(src)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
return 1
|
return 1
|
||||||
|
|||||||
@@ -9,12 +9,41 @@
|
|||||||
use_power = 1
|
use_power = 1
|
||||||
idle_power_usage = 2
|
idle_power_usage = 2
|
||||||
active_power_usage = 50
|
active_power_usage = 50
|
||||||
|
circuit = /obj/item/weapon/circuitboard/mass_driver
|
||||||
|
|
||||||
var/power = 1.0
|
var/power = 1.0
|
||||||
var/code = 1.0
|
var/code = 1.0
|
||||||
var/id = 1.0
|
var/id = 1.0
|
||||||
var/drive_range = 50 //this is mostly irrelevant since current mass drivers throw into space, but you could make a lower-range mass driver for interstation transport or something I guess.
|
var/drive_range = 50 //this is mostly irrelevant since current mass drivers throw into space, but you could make a lower-range mass driver for interstation transport or something I guess.
|
||||||
|
|
||||||
|
/obj/machinery/mass_driver/map/New()
|
||||||
|
..()
|
||||||
|
circuit = new circuit(src)
|
||||||
|
component_parts = list()
|
||||||
|
component_parts += new /obj/item/weapon/stock_parts/motor(src)
|
||||||
|
component_parts += new /obj/item/weapon/stock_parts/motor(src)
|
||||||
|
component_parts += new /obj/item/weapon/stock_parts/gear(src)
|
||||||
|
component_parts += new /obj/item/weapon/stock_parts/gear(src)
|
||||||
|
component_parts += new /obj/item/weapon/stock_parts/spring(src)
|
||||||
|
component_parts += new /obj/item/weapon/stock_parts/capacitor(src)
|
||||||
|
component_parts += new /obj/item/stack/cable_coil(src, 5)
|
||||||
|
RefreshParts()
|
||||||
|
|
||||||
|
/obj/machinery/mass_driver/attackby(var/obj/item/I, mob/user)
|
||||||
|
if(default_deconstruction_screwdriver(user, I))
|
||||||
|
return
|
||||||
|
if(default_deconstruction_crowbar(user, I))
|
||||||
|
return
|
||||||
|
|
||||||
|
if(istype(I, /obj/item/device/multitool))
|
||||||
|
if(panel_open)
|
||||||
|
var/input = sanitize(input(usr, "What id would you like to give this conveyor?", "Multitool-Conveyor interface", id))
|
||||||
|
if(!input)
|
||||||
|
usr << "No input found please hang up and try your call again."
|
||||||
|
return
|
||||||
|
id = input
|
||||||
|
return
|
||||||
|
return
|
||||||
|
|
||||||
/obj/machinery/mass_driver/proc/drive(amount)
|
/obj/machinery/mass_driver/proc/drive(amount)
|
||||||
if(stat & (BROKEN|NOPOWER))
|
if(stat & (BROKEN|NOPOWER))
|
||||||
|
|||||||
@@ -15,9 +15,9 @@ obj/machinery/recharger
|
|||||||
var/icon_state_idle = "recharger0" //also when unpowered
|
var/icon_state_idle = "recharger0" //also when unpowered
|
||||||
var/portable = 1
|
var/portable = 1
|
||||||
circuit = /obj/item/weapon/circuitboard/recharger
|
circuit = /obj/item/weapon/circuitboard/recharger
|
||||||
frame_type = "recharger"
|
|
||||||
|
|
||||||
obj/machinery/recharger/New()
|
obj/machinery/recharger/map/New()
|
||||||
|
circuit = new circuit(src)
|
||||||
component_parts = list()
|
component_parts = list()
|
||||||
component_parts += new /obj/item/weapon/stock_parts/capacitor(src)
|
component_parts += new /obj/item/weapon/stock_parts/capacitor(src)
|
||||||
component_parts += new /obj/item/stack/cable_coil(src, 5)
|
component_parts += new /obj/item/stack/cable_coil(src, 5)
|
||||||
@@ -172,3 +172,12 @@ obj/machinery/recharger/wallcharger
|
|||||||
portable = 0
|
portable = 0
|
||||||
circuit = /obj/item/weapon/circuitboard/recharger/wrecharger
|
circuit = /obj/item/weapon/circuitboard/recharger/wrecharger
|
||||||
frame_type = "wrecharger"
|
frame_type = "wrecharger"
|
||||||
|
|
||||||
|
obj/machinery/recharger/wallcharger/map/New()
|
||||||
|
circuit = new circuit(src)
|
||||||
|
component_parts = list()
|
||||||
|
component_parts += new /obj/item/weapon/stock_parts/capacitor(src)
|
||||||
|
component_parts += new /obj/item/stack/cable_coil(src, 5)
|
||||||
|
RefreshParts()
|
||||||
|
..()
|
||||||
|
return
|
||||||
@@ -22,9 +22,9 @@
|
|||||||
var/weld_power_use = 2300 // power used per point of brute damage repaired. 2.3 kW ~ about the same power usage of a handheld arc welder
|
var/weld_power_use = 2300 // power used per point of brute damage repaired. 2.3 kW ~ about the same power usage of a handheld arc welder
|
||||||
var/wire_power_use = 500 // power used per point of burn damage repaired.
|
var/wire_power_use = 500 // power used per point of burn damage repaired.
|
||||||
|
|
||||||
/obj/machinery/recharge_station/New()
|
/obj/machinery/recharge_station/map/New()
|
||||||
..()
|
..()
|
||||||
|
circuit = new circuit(src)
|
||||||
component_parts = list()
|
component_parts = list()
|
||||||
component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
|
component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
|
||||||
component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
|
component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ var/list/obj/machinery/requests_console/allConsoles = list()
|
|||||||
anchored = 1
|
anchored = 1
|
||||||
icon = 'icons/obj/terminals.dmi'
|
icon = 'icons/obj/terminals.dmi'
|
||||||
icon_state = "req_comp0"
|
icon_state = "req_comp0"
|
||||||
|
circuit = /obj/item/weapon/circuitboard/request
|
||||||
var/department = "Unknown" //The list of all departments on the station (Determined from this variable on each unit) Set this to the same thing if you want several consoles in one department
|
var/department = "Unknown" //The list of all departments on the station (Determined from this variable on each unit) Set this to the same thing if you want several consoles in one department
|
||||||
var/list/message_log = list() //List of all messages
|
var/list/message_log = list() //List of all messages
|
||||||
var/departmentType = 0 //Bitflag. Zero is reply-only. Map currently uses raw numbers instead of defines.
|
var/departmentType = 0 //Bitflag. Zero is reply-only. Map currently uses raw numbers instead of defines.
|
||||||
@@ -199,27 +200,29 @@ var/list/obj/machinery/requests_console/allConsoles = list()
|
|||||||
|
|
||||||
//err... hacking code, which has no reason for existing... but anyway... it was once supposed to unlock priority 3 messanging on that console (EXTREME priority...), but the code for that was removed.
|
//err... hacking code, which has no reason for existing... but anyway... it was once supposed to unlock priority 3 messanging on that console (EXTREME priority...), but the code for that was removed.
|
||||||
/obj/machinery/requests_console/attackby(var/obj/item/weapon/O as obj, var/mob/user as mob)
|
/obj/machinery/requests_console/attackby(var/obj/item/weapon/O as obj, var/mob/user as mob)
|
||||||
/*
|
if(default_deconstruction_screwdriver(user, O))
|
||||||
if (istype(O, /obj/item/weapon/crowbar))
|
return
|
||||||
if(open)
|
if(default_deconstruction_crowbar(user, O))
|
||||||
open = 0
|
return
|
||||||
icon_state="req_comp0"
|
if(istype(O, /obj/item/device/multitool))
|
||||||
else
|
if(panel_open)
|
||||||
open = 1
|
var/input = sanitize(input(usr, "What Department id would you like to give this Request Console?", "Multitool-Request Console interface", department))
|
||||||
if(hackState == 0)
|
if(!input)
|
||||||
icon_state="req_comp_open"
|
usr << "No input found please hang up and try your call again."
|
||||||
else if(hackState == 1)
|
return
|
||||||
icon_state="req_comp_rewired"
|
department = input
|
||||||
if (istype(O, /obj/item/weapon/screwdriver))
|
announcement.title = "[department] announcement"
|
||||||
if(open)
|
announcement.newscast = 1
|
||||||
if(hackState == 0)
|
|
||||||
hackState = 1
|
name = "[department] Requests Console"
|
||||||
icon_state="req_comp_rewired"
|
allConsoles += src
|
||||||
else if(hackState == 1)
|
if (departmentType & RC_ASSIST)
|
||||||
hackState = 0
|
req_console_assistance |= department
|
||||||
icon_state="req_comp_open"
|
if (departmentType & RC_SUPPLY)
|
||||||
else
|
req_console_supplies |= department
|
||||||
user << "You can't do much with that."*/
|
if (departmentType & RC_INFO)
|
||||||
|
req_console_information |= department
|
||||||
|
return
|
||||||
|
|
||||||
if (istype(O, /obj/item/weapon/card/id))
|
if (istype(O, /obj/item/weapon/card/id))
|
||||||
if(inoperable(MAINT)) return
|
if(inoperable(MAINT)) return
|
||||||
|
|||||||
@@ -170,6 +170,7 @@
|
|||||||
use_power = 1
|
use_power = 1
|
||||||
idle_power_usage = 10
|
idle_power_usage = 10
|
||||||
active_power_usage = 2000
|
active_power_usage = 2000
|
||||||
|
circuit = /obj/item/weapon/circuitboard/teleporter_hub
|
||||||
var/obj/machinery/computer/teleporter/com
|
var/obj/machinery/computer/teleporter/com
|
||||||
|
|
||||||
|
|
||||||
@@ -178,6 +179,21 @@
|
|||||||
underlays.Cut()
|
underlays.Cut()
|
||||||
underlays += image('icons/obj/stationobjs.dmi', icon_state = "tele-wires")
|
underlays += image('icons/obj/stationobjs.dmi', icon_state = "tele-wires")
|
||||||
|
|
||||||
|
/obj/machinery/teleport/hub/map/New()
|
||||||
|
..()
|
||||||
|
circuit = new circuit(src)
|
||||||
|
component_parts = list()
|
||||||
|
component_parts += new /obj/item/weapon/stock_parts/scanning_module(src)
|
||||||
|
component_parts += new /obj/item/weapon/stock_parts/scanning_module(src)
|
||||||
|
component_parts += new /obj/item/weapon/stock_parts/scanning_module(src)
|
||||||
|
component_parts += new /obj/item/weapon/stock_parts/scanning_module(src)
|
||||||
|
component_parts += new /obj/item/weapon/stock_parts/micro_laser(src)
|
||||||
|
component_parts += new /obj/item/weapon/stock_parts/micro_laser(src)
|
||||||
|
component_parts += new /obj/item/weapon/stock_parts/micro_laser(src)
|
||||||
|
component_parts += new /obj/item/weapon/stock_parts/micro_laser(src)
|
||||||
|
component_parts += new /obj/item/stack/cable_coil(src, 10)
|
||||||
|
RefreshParts()
|
||||||
|
|
||||||
/obj/machinery/teleport/hub/Bumped(M as mob|obj)
|
/obj/machinery/teleport/hub/Bumped(M as mob|obj)
|
||||||
spawn()
|
spawn()
|
||||||
if (src.icon_state == "tele1")
|
if (src.icon_state == "tele1")
|
||||||
@@ -307,6 +323,7 @@
|
|||||||
use_power = 1
|
use_power = 1
|
||||||
idle_power_usage = 10
|
idle_power_usage = 10
|
||||||
active_power_usage = 2000
|
active_power_usage = 2000
|
||||||
|
circuit = /obj/item/weapon/circuitboard/teleporter_station
|
||||||
var/obj/machinery/teleport/hub/com
|
var/obj/machinery/teleport/hub/com
|
||||||
|
|
||||||
/obj/machinery/teleport/station/New()
|
/obj/machinery/teleport/station/New()
|
||||||
@@ -314,6 +331,16 @@
|
|||||||
overlays.Cut()
|
overlays.Cut()
|
||||||
overlays += image('icons/obj/stationobjs.dmi', icon_state = "controller-wires")
|
overlays += image('icons/obj/stationobjs.dmi', icon_state = "controller-wires")
|
||||||
|
|
||||||
|
/obj/machinery/teleport/station/map/New()
|
||||||
|
..()
|
||||||
|
circuit = new circuit(src)
|
||||||
|
component_parts = list()
|
||||||
|
component_parts += new /obj/item/weapon/stock_parts/console_screen(src)
|
||||||
|
component_parts += new /obj/item/weapon/stock_parts/capacitor(src)
|
||||||
|
component_parts += new /obj/item/weapon/stock_parts/capacitor(src)
|
||||||
|
component_parts += new /obj/item/stack/cable_coil(src, 10)
|
||||||
|
RefreshParts()
|
||||||
|
|
||||||
/obj/machinery/teleport/station/attackby(var/obj/item/weapon/W)
|
/obj/machinery/teleport/station/attackby(var/obj/item/weapon/W)
|
||||||
src.attack_hand()
|
src.attack_hand()
|
||||||
|
|
||||||
|
|||||||
@@ -4,12 +4,14 @@
|
|||||||
/datum/data/vending_product
|
/datum/data/vending_product
|
||||||
var/product_name = "generic" // Display name for the product
|
var/product_name = "generic" // Display name for the product
|
||||||
var/product_path = null
|
var/product_path = null
|
||||||
var/amount = 0 // Amount held in the vending machine
|
var/amount = 0 // The original amount held in the vending machine
|
||||||
|
var/list/instances
|
||||||
var/price = 0 // Price to buy one
|
var/price = 0 // Price to buy one
|
||||||
var/display_color = null // Display color for vending machine listing
|
var/display_color = null // Display color for vending machine listing
|
||||||
var/category = CAT_NORMAL // CAT_HIDDEN for contraband, CAT_COIN for premium
|
var/category = CAT_NORMAL // CAT_HIDDEN for contraband, CAT_COIN for premium
|
||||||
|
var/vending_machine // The vending machine we belong to
|
||||||
|
|
||||||
/datum/data/vending_product/New(var/path, var/name = null, var/amount = 1, var/price = 0, var/color = null, var/category = CAT_NORMAL)
|
/datum/data/vending_product/New(var/vending_machine, var/path, var/name = null, var/amount = 1, var/price = 0, var/color = null, var/category = CAT_NORMAL)
|
||||||
..()
|
..()
|
||||||
|
|
||||||
src.product_path = path
|
src.product_path = path
|
||||||
@@ -24,6 +26,43 @@
|
|||||||
src.price = price
|
src.price = price
|
||||||
src.display_color = color
|
src.display_color = color
|
||||||
src.category = category
|
src.category = category
|
||||||
|
src.vending_machine = vending_machine
|
||||||
|
|
||||||
|
/datum/data/vending_product/Destroy()
|
||||||
|
vending_machine = null
|
||||||
|
if(instances)
|
||||||
|
for(var/product in instances)
|
||||||
|
qdel(product)
|
||||||
|
instances.Cut()
|
||||||
|
. = ..()
|
||||||
|
|
||||||
|
/datum/data/vending_product/proc/get_amount()
|
||||||
|
return instances ? instances.len : amount
|
||||||
|
|
||||||
|
/datum/data/vending_product/proc/add_product(var/atom/movable/product)
|
||||||
|
if(product.type != product_path)
|
||||||
|
return 0
|
||||||
|
init_products()
|
||||||
|
product.forceMove(vending_machine)
|
||||||
|
instances += product
|
||||||
|
|
||||||
|
/datum/data/vending_product/proc/get_product(var/product_location)
|
||||||
|
if(!get_amount() || !product_location)
|
||||||
|
return
|
||||||
|
init_products()
|
||||||
|
|
||||||
|
var/atom/movable/product = instances[instances.len] // Remove the last added product
|
||||||
|
instances -= product
|
||||||
|
product.forceMove(product_location)
|
||||||
|
return product
|
||||||
|
|
||||||
|
/datum/data/vending_product/proc/init_products()
|
||||||
|
if(instances)
|
||||||
|
return
|
||||||
|
instances = list()
|
||||||
|
for(var/i = 1 to amount)
|
||||||
|
var/new_product = new product_path(vending_machine)
|
||||||
|
instances += new_product
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A vending machine
|
* A vending machine
|
||||||
@@ -36,8 +75,6 @@
|
|||||||
layer = 2.9
|
layer = 2.9
|
||||||
anchored = 1
|
anchored = 1
|
||||||
density = 1
|
density = 1
|
||||||
circuit = /obj/item/weapon/circuitboard/vending
|
|
||||||
frame_type = "vending"
|
|
||||||
|
|
||||||
var/icon_vend //Icon_state when vending
|
var/icon_vend //Icon_state when vending
|
||||||
var/icon_deny //Icon_state when denying access
|
var/icon_deny //Icon_state when denying access
|
||||||
@@ -96,14 +133,6 @@
|
|||||||
/obj/machinery/vending/New()
|
/obj/machinery/vending/New()
|
||||||
..()
|
..()
|
||||||
wires = new(src)
|
wires = new(src)
|
||||||
component_parts = list()
|
|
||||||
component_parts += new /obj/item/weapon/stock_parts/spring(src)
|
|
||||||
component_parts += new /obj/item/weapon/stock_parts/spring(src)
|
|
||||||
component_parts += new /obj/item/weapon/stock_parts/motor(src)
|
|
||||||
component_parts += new /obj/item/weapon/stock_parts/motor(src)
|
|
||||||
component_parts += new /obj/item/weapon/stock_parts/console_screen(src)
|
|
||||||
component_parts += new /obj/item/stack/material/glass/reinforced(src, 2)
|
|
||||||
RefreshParts()
|
|
||||||
spawn(4)
|
spawn(4)
|
||||||
if(src.product_slogans)
|
if(src.product_slogans)
|
||||||
src.slogan_list += splittext(src.product_slogans, ";")
|
src.slogan_list += splittext(src.product_slogans, ";")
|
||||||
@@ -140,7 +169,7 @@
|
|||||||
var/category = current_list[2]
|
var/category = current_list[2]
|
||||||
|
|
||||||
for(var/entry in current_list[1])
|
for(var/entry in current_list[1])
|
||||||
var/datum/data/vending_product/product = new/datum/data/vending_product(entry)
|
var/datum/data/vending_product/product = new/datum/data/vending_product(src, entry)
|
||||||
|
|
||||||
product.price = (entry in src.prices) ? src.prices[entry] : 0
|
product.price = (entry in src.prices) ? src.prices[entry] : 0
|
||||||
product.amount = (current_list[1][entry]) ? current_list[1][entry] : 1
|
product.amount = (current_list[1][entry]) ? current_list[1][entry] : 1
|
||||||
@@ -153,6 +182,9 @@
|
|||||||
wires = null
|
wires = null
|
||||||
qdel(coin)
|
qdel(coin)
|
||||||
coin = null
|
coin = null
|
||||||
|
for(var/datum/data/vending_product/R in product_records)
|
||||||
|
qdel(R)
|
||||||
|
product_records = null
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
/obj/machinery/vending/ex_act(severity)
|
/obj/machinery/vending/ex_act(severity)
|
||||||
@@ -224,7 +256,7 @@
|
|||||||
return
|
return
|
||||||
else if(istype(W, /obj/item/weapon/coin) && premium.len > 0)
|
else if(istype(W, /obj/item/weapon/coin) && premium.len > 0)
|
||||||
user.drop_item()
|
user.drop_item()
|
||||||
W.loc = src
|
W.forceMove(src)
|
||||||
coin = W
|
coin = W
|
||||||
categories |= CAT_COIN
|
categories |= CAT_COIN
|
||||||
user << "<span class='notice'>You insert \the [W] into \the [src].</span>"
|
user << "<span class='notice'>You insert \the [W] into \the [src].</span>"
|
||||||
@@ -242,9 +274,6 @@
|
|||||||
user << "<span class='notice'>You [anchored? "un" : ""]secured \the [src]!</span>"
|
user << "<span class='notice'>You [anchored? "un" : ""]secured \the [src]!</span>"
|
||||||
anchored = !anchored
|
anchored = !anchored
|
||||||
return
|
return
|
||||||
else if(default_deconstruction_crowbar(user, W))
|
|
||||||
return
|
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|
||||||
for(var/datum/data/vending_product/R in product_records)
|
for(var/datum/data/vending_product/R in product_records)
|
||||||
@@ -423,7 +452,7 @@
|
|||||||
"name" = I.product_name,
|
"name" = I.product_name,
|
||||||
"price" = I.price,
|
"price" = I.price,
|
||||||
"color" = I.display_color,
|
"color" = I.display_color,
|
||||||
"amount" = I.amount)))
|
"amount" = I.get_amount())))
|
||||||
|
|
||||||
data["products"] = listed_products
|
data["products"] = listed_products
|
||||||
|
|
||||||
@@ -453,10 +482,10 @@
|
|||||||
usr << "There is no coin in this machine."
|
usr << "There is no coin in this machine."
|
||||||
return
|
return
|
||||||
|
|
||||||
coin.loc = src.loc
|
coin.forceMove(src.loc)
|
||||||
if(!usr.get_active_hand())
|
if(!usr.get_active_hand())
|
||||||
usr.put_in_hands(coin)
|
usr.put_in_hands(coin)
|
||||||
usr << "<span class='notice'>You remove the [coin] from the [src]</span>"
|
usr << "<span class='notice'>You remove \the [coin] from \the [src]</span>"
|
||||||
coin = null
|
coin = null
|
||||||
categories &= ~CAT_COIN
|
categories &= ~CAT_COIN
|
||||||
|
|
||||||
@@ -517,13 +546,13 @@
|
|||||||
else
|
else
|
||||||
user << "<span class='notice'>You weren't able to pull the coin out fast enough, the machine ate it, string and all.</span>"
|
user << "<span class='notice'>You weren't able to pull the coin out fast enough, the machine ate it, string and all.</span>"
|
||||||
qdel(coin)
|
qdel(coin)
|
||||||
|
coin = null
|
||||||
categories &= ~CAT_COIN
|
categories &= ~CAT_COIN
|
||||||
else
|
else
|
||||||
qdel(coin)
|
qdel(coin)
|
||||||
|
coin = null
|
||||||
categories &= ~CAT_COIN
|
categories &= ~CAT_COIN
|
||||||
|
|
||||||
R.amount--
|
|
||||||
|
|
||||||
if(((src.last_reply + (src.vend_delay + 200)) <= world.time) && src.vend_reply)
|
if(((src.last_reply + (src.vend_delay + 200)) <= world.time) && src.vend_reply)
|
||||||
spawn(0)
|
spawn(0)
|
||||||
src.speak(src.vend_reply)
|
src.speak(src.vend_reply)
|
||||||
@@ -533,16 +562,31 @@
|
|||||||
if (src.icon_vend) //Show the vending animation if needed
|
if (src.icon_vend) //Show the vending animation if needed
|
||||||
flick(src.icon_vend,src)
|
flick(src.icon_vend,src)
|
||||||
spawn(src.vend_delay)
|
spawn(src.vend_delay)
|
||||||
new R.product_path(get_turf(src))
|
R.get_product(get_turf(src))
|
||||||
|
if(prob(1))
|
||||||
|
sleep(3)
|
||||||
|
if(R.get_product(get_turf(src)))
|
||||||
|
src.visible_message("<span class='notice'>\The [src] clunks as it vends an additional item.</span>")
|
||||||
|
|
||||||
src.status_message = ""
|
src.status_message = ""
|
||||||
src.status_error = 0
|
src.status_error = 0
|
||||||
src.vend_ready = 1
|
src.vend_ready = 1
|
||||||
currently_vending = null
|
currently_vending = null
|
||||||
nanomanager.update_uis(src)
|
nanomanager.update_uis(src)
|
||||||
|
|
||||||
/obj/machinery/vending/proc/stock(var/datum/data/vending_product/R, var/mob/user)
|
|
||||||
user << "<span class='notice'>You insert \the [src] in the product receptor.</span>"
|
/**
|
||||||
R.amount++
|
* Add item to the machine
|
||||||
|
*
|
||||||
|
* Checks if item is vendable in this machine should be performed before
|
||||||
|
* calling. W is the item being inserted, R is the associated vending_product entry.
|
||||||
|
*/
|
||||||
|
/obj/machinery/vending/proc/stock(obj/item/weapon/W, var/datum/data/vending_product/R, var/mob/user)
|
||||||
|
if(!user.unEquip(W))
|
||||||
|
return
|
||||||
|
|
||||||
|
user << "<span class='notice'>You insert \the [W] in the product receptor.</span>"
|
||||||
|
R.add_product(W)
|
||||||
|
|
||||||
nanomanager.update_uis(src)
|
nanomanager.update_uis(src)
|
||||||
|
|
||||||
@@ -592,15 +636,8 @@
|
|||||||
//Oh no we're malfunctioning! Dump out some product and break.
|
//Oh no we're malfunctioning! Dump out some product and break.
|
||||||
/obj/machinery/vending/proc/malfunction()
|
/obj/machinery/vending/proc/malfunction()
|
||||||
for(var/datum/data/vending_product/R in src.product_records)
|
for(var/datum/data/vending_product/R in src.product_records)
|
||||||
if (R.amount <= 0) //Try to use a record that actually has something to dump.
|
while(R.get_amount()>0)
|
||||||
continue
|
R.get_product(loc)
|
||||||
var/dump_path = R.product_path
|
|
||||||
if (!dump_path)
|
|
||||||
continue
|
|
||||||
|
|
||||||
while(R.amount>0)
|
|
||||||
new dump_path(src.loc)
|
|
||||||
R.amount--
|
|
||||||
break
|
break
|
||||||
|
|
||||||
stat |= BROKEN
|
stat |= BROKEN
|
||||||
@@ -615,20 +652,15 @@
|
|||||||
return 0
|
return 0
|
||||||
|
|
||||||
for(var/datum/data/vending_product/R in src.product_records)
|
for(var/datum/data/vending_product/R in src.product_records)
|
||||||
if (R.amount <= 0) //Try to use a record that actually has something to dump.
|
throw_item = R.get_product(loc)
|
||||||
|
if (!throw_item)
|
||||||
continue
|
continue
|
||||||
var/dump_path = R.product_path
|
|
||||||
if (!dump_path)
|
|
||||||
continue
|
|
||||||
|
|
||||||
R.amount--
|
|
||||||
throw_item = new dump_path(src.loc)
|
|
||||||
break
|
break
|
||||||
if (!throw_item)
|
if (!throw_item)
|
||||||
return 0
|
return 0
|
||||||
spawn(0)
|
spawn(0)
|
||||||
throw_item.throw_at(target, 16, 3, src)
|
throw_item.throw_at(target, 16, 3, src)
|
||||||
src.visible_message("<span class='warning'>[src] launches [throw_item.name] at [target.name]!</span>")
|
src.visible_message("<span class='warning'>\The [src] launches \a [throw_item] at \the [target]!</span>")
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -656,7 +688,7 @@
|
|||||||
icon = 'icons/obj/objects.dmi'
|
icon = 'icons/obj/objects.dmi'
|
||||||
icon_state = "dispenser"
|
icon_state = "dispenser"
|
||||||
product_paths = "/obj/item/weapon/tank/oxygen;/obj/item/weapon/tank/phoron;/obj/item/weapon/tank/emergency_oxygen;/obj/item/weapon/tank/emergency_oxygen/engi;/obj/item/clothing/mask/breath"
|
product_paths = "/obj/item/weapon/tank/oxygen;/obj/item/weapon/tank/phoron;/obj/item/weapon/tank/emergency_oxygen;/obj/item/weapon/tank/emergency_oxygen/engi;/obj/item/clothing/mask/breath"
|
||||||
product_amounts = "10;10;10;5;25"
|
productamounts = "10;10;10;5;25"
|
||||||
vend_delay = 0
|
vend_delay = 0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -882,7 +914,7 @@
|
|||||||
for(var/entry in current_list[1])
|
for(var/entry in current_list[1])
|
||||||
var/obj/item/seeds/S = new entry(src)
|
var/obj/item/seeds/S = new entry(src)
|
||||||
var/name = S.name
|
var/name = S.name
|
||||||
var/datum/data/vending_product/product = new/datum/data/vending_product(entry, name)
|
var/datum/data/vending_product/product = new/datum/data/vending_product(src, entry, name)
|
||||||
|
|
||||||
product.price = (entry in src.prices) ? src.prices[entry] : 0
|
product.price = (entry in src.prices) ? src.prices[entry] : 0
|
||||||
product.amount = (current_list[1][entry]) ? current_list[1][entry] : 1
|
product.amount = (current_list[1][entry]) ? current_list[1][entry] : 1
|
||||||
@@ -905,8 +937,26 @@
|
|||||||
desc = "A kitchen and restaurant equipment vendor."
|
desc = "A kitchen and restaurant equipment vendor."
|
||||||
product_ads = "Mm, food stuffs!;Food and food accessories.;Get your plates!;You like forks?;I like forks.;Woo, utensils.;You don't really need these..."
|
product_ads = "Mm, food stuffs!;Food and food accessories.;Get your plates!;You like forks?;I like forks.;Woo, utensils.;You don't really need these..."
|
||||||
icon_state = "dinnerware"
|
icon_state = "dinnerware"
|
||||||
products = list(/obj/item/weapon/tray = 8,/obj/item/weapon/material/kitchen/utensil/fork = 6, /obj/item/weapon/material/kitchen/utensil/knife = 6, /obj/item/weapon/material/kitchen/utensil/spoon = 6, /obj/item/weapon/material/knife = 3,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass = 8,/obj/item/clothing/suit/chef/classic = 2)
|
products = list(
|
||||||
contraband = list(/obj/item/weapon/material/kitchen/rollingpin = 2, /obj/item/weapon/material/knife/butch = 2)
|
/obj/item/weapon/tray = 8,
|
||||||
|
/obj/item/weapon/material/kitchen/utensil/fork = 6,
|
||||||
|
/obj/item/weapon/material/kitchen/utensil/knife = 6,
|
||||||
|
/obj/item/weapon/material/kitchen/utensil/spoon = 6,
|
||||||
|
/obj/item/weapon/material/knife = 3,
|
||||||
|
/obj/item/weapon/reagent_containers/food/drinks/drinkingglass = 8,
|
||||||
|
/obj/item/clothing/suit/chef/classic = 2,
|
||||||
|
/obj/item/weapon/storage/toolbox/lunchbox = 3,
|
||||||
|
/obj/item/weapon/storage/toolbox/lunchbox/heart = 3,
|
||||||
|
/obj/item/weapon/storage/toolbox/lunchbox/cat = 3,
|
||||||
|
/obj/item/weapon/storage/toolbox/lunchbox/nt = 3,
|
||||||
|
/obj/item/weapon/storage/toolbox/lunchbox/mars = 3,
|
||||||
|
/obj/item/weapon/storage/toolbox/lunchbox/cti = 3,
|
||||||
|
/obj/item/weapon/storage/toolbox/lunchbox/nymph = 3,
|
||||||
|
/obj/item/weapon/storage/toolbox/lunchbox/syndicate = 3)
|
||||||
|
|
||||||
|
|
||||||
|
contraband = list(/obj/item/weapon/material/kitchen/rollingpin = 2,
|
||||||
|
/obj/item/weapon/material/knife/butch = 2)
|
||||||
|
|
||||||
/obj/machinery/vending/sovietsoda
|
/obj/machinery/vending/sovietsoda
|
||||||
name = "BODA"
|
name = "BODA"
|
||||||
@@ -924,8 +974,10 @@
|
|||||||
icon_deny = "tool-deny"
|
icon_deny = "tool-deny"
|
||||||
//req_access = list(access_maint_tunnels) //Maintenance access
|
//req_access = list(access_maint_tunnels) //Maintenance access
|
||||||
products = list(/obj/item/stack/cable_coil/random = 10,/obj/item/weapon/crowbar = 5,/obj/item/weapon/weldingtool = 3,/obj/item/weapon/wirecutters = 5,
|
products = list(/obj/item/stack/cable_coil/random = 10,/obj/item/weapon/crowbar = 5,/obj/item/weapon/weldingtool = 3,/obj/item/weapon/wirecutters = 5,
|
||||||
/obj/item/weapon/wrench = 5,/obj/item/device/analyzer = 5,/obj/item/device/t_scanner = 5,/obj/item/weapon/screwdriver = 5)
|
/obj/item/weapon/wrench = 5,/obj/item/device/analyzer = 5,/obj/item/device/t_scanner = 5,/obj/item/weapon/screwdriver = 5,
|
||||||
contraband = list(/obj/item/weapon/weldingtool/hugetank = 2,/obj/item/clothing/gloves/fyellow = 2)
|
/obj/item/device/flashlight/glowstick = 3, /obj/item/device/flashlight/glowstick/red = 3, /obj/item/device/flashlight/glowstick/blue = 3,
|
||||||
|
/obj/item/device/flashlight/glowstick/orange =3, /obj/item/device/flashlight/glowstick/yellow = 3)
|
||||||
|
contraband = list(/obj/item/weapon/weldingtool/hugetank = 2,/obj/item/clothing/gloves/fyellow = 2, )
|
||||||
premium = list(/obj/item/clothing/gloves/yellow = 1)
|
premium = list(/obj/item/clothing/gloves/yellow = 1)
|
||||||
|
|
||||||
/obj/machinery/vending/engivend
|
/obj/machinery/vending/engivend
|
||||||
@@ -939,12 +991,15 @@
|
|||||||
/obj/item/weapon/circuitboard/airalarm = 10,/obj/item/weapon/circuitboard/firealarm = 10,/obj/item/weapon/circuitboard/status_display = 2,
|
/obj/item/weapon/circuitboard/airalarm = 10,/obj/item/weapon/circuitboard/firealarm = 10,/obj/item/weapon/circuitboard/status_display = 2,
|
||||||
/obj/item/weapon/circuitboard/ai_status_display = 2,/obj/item/weapon/circuitboard/newscaster = 2,/obj/item/weapon/circuitboard/holopad = 2,
|
/obj/item/weapon/circuitboard/ai_status_display = 2,/obj/item/weapon/circuitboard/newscaster = 2,/obj/item/weapon/circuitboard/holopad = 2,
|
||||||
/obj/item/weapon/circuitboard/intercom = 4,/obj/item/weapon/circuitboard/security/telescreen/entertainment = 4,
|
/obj/item/weapon/circuitboard/intercom = 4,/obj/item/weapon/circuitboard/security/telescreen/entertainment = 4,
|
||||||
/obj/item/weapon/circuitboard/atm = 0,/obj/item/weapon/circuitboard/guestpass = 0,/obj/item/weapon/circuitboard/keycard_auth = 0,
|
/obj/item/weapon/stock_parts/motor = 2,/obj/item/weapon/stock_parts/spring = 2,/obj/item/weapon/stock_parts/gear = 2,
|
||||||
/obj/item/weapon/circuitboard/photocopier = 0,/obj/item/weapon/circuitboard/fax = 0,/obj/item/weapon/circuitboard/conveyor = 0,
|
/obj/item/weapon/circuitboard/atm,/obj/item/weapon/circuitboard/guestpass,/obj/item/weapon/circuitboard/keycard_auth,
|
||||||
/obj/item/weapon/circuitboard/microwave = 0,/obj/item/weapon/circuitboard/vending = 0,/obj/item/weapon/circuitboard/washing = 0,
|
/obj/item/weapon/circuitboard/photocopier,/obj/item/weapon/circuitboard/fax,/obj/item/weapon/circuitboard/request,
|
||||||
/obj/item/weapon/stock_parts/motor = 0,/obj/item/weapon/stock_parts/spring = 0,/obj/item/weapon/stock_parts/gear = 0)
|
/obj/item/weapon/circuitboard/microwave,/obj/item/weapon/circuitboard/washing,/obj/item/weapon/circuitboard/scanner_console,
|
||||||
|
/obj/item/weapon/circuitboard/sleeper_console,/obj/item/weapon/circuitboard/body_scanner,/obj/item/weapon/circuitboard/sleeper,
|
||||||
|
/obj/item/weapon/circuitboard/dna_analyzer)
|
||||||
contraband = list(/obj/item/weapon/cell/potato = 3)
|
contraband = list(/obj/item/weapon/cell/potato = 3)
|
||||||
premium = list(/obj/item/weapon/storage/belt/utility = 3)
|
premium = list(/obj/item/weapon/storage/belt/utility = 3)
|
||||||
|
product_records = list()
|
||||||
|
|
||||||
//This one's from bay12
|
//This one's from bay12
|
||||||
/obj/machinery/vending/engineering
|
/obj/machinery/vending/engineering
|
||||||
|
|||||||
@@ -22,11 +22,12 @@
|
|||||||
if(!build_machine_type)
|
if(!build_machine_type)
|
||||||
return
|
return
|
||||||
|
|
||||||
var/ndir
|
|
||||||
if(!frame_type)
|
if(!frame_type)
|
||||||
var/response = input(usr, "What kind of frame would you like to make?", "Frame type request", null) in list("Computer", "Machine", "Holopad", "Conveyor",
|
var/response = input(usr, "What kind of frame would you like to make?", "Frame type request", null) in list("Computer", "Machine", "Holopad", "Conveyor",
|
||||||
"Photocopier", "Fax", "Microwave", "Vending Machine",
|
"Photocopier", "Fax", "Microwave",
|
||||||
"Recharger", "Washing Machine", "Grinder",
|
"Recharger", "Washing Machine", "Grinder",
|
||||||
|
"Medical Console", "Medical Pod", "DNA Analyzer",
|
||||||
|
"Mass Driver",
|
||||||
"Cancel")
|
"Cancel")
|
||||||
|
|
||||||
if(response == "Cancel")
|
if(response == "Cancel")
|
||||||
@@ -37,22 +38,29 @@
|
|||||||
switch(response)
|
switch(response)
|
||||||
if("Holopad")
|
if("Holopad")
|
||||||
new /obj/item/stack/material/steel( usr.loc, 1 ) //holopads are smaller, they only need 4 sheets
|
new /obj/item/stack/material/steel( usr.loc, 1 ) //holopads are smaller, they only need 4 sheets
|
||||||
if("Conveyor")
|
|
||||||
ndir = get_dir(src,usr)
|
|
||||||
if (!(ndir in cardinal))
|
|
||||||
return
|
|
||||||
if("Fax")
|
if("Fax")
|
||||||
new /obj/item/stack/material/steel( usr.loc, 2 ) //faxes are smaller, they only need 3 sheets
|
new /obj/item/stack/material/steel( usr.loc, 2 ) //faxes are smaller, they only need 3 sheets
|
||||||
if("Microwave")
|
if("Microwave")
|
||||||
new /obj/item/stack/material/steel( usr.loc, 1 ) //microwaves are smaller, they only need 4 sheets
|
new /obj/item/stack/material/steel( usr.loc, 1 ) //microwaves are smaller, they only need 4 sheets
|
||||||
if("Vending Machine")
|
|
||||||
frame_type = "vending"
|
|
||||||
if("Recharger")
|
if("Recharger")
|
||||||
new /obj/item/stack/material/steel( usr.loc, 2 ) //rechargers are smaller, they only need 3 sheets
|
new /obj/item/stack/material/steel( usr.loc, 2 ) //rechargers are smaller, they only need 3 sheets
|
||||||
if("Washing Machine")
|
if("Washing Machine")
|
||||||
frame_type = "washing"
|
frame_type = "washing"
|
||||||
if("Grinder")
|
if("Grinder")
|
||||||
new /obj/item/stack/material/steel( usr.loc, 2 ) //grinders are smaller, they only need 3 sheets
|
new /obj/item/stack/material/steel( usr.loc, 2 ) //grinders are smaller, they only need 3 sheets
|
||||||
|
if("Medical Console")
|
||||||
|
frame_type = "console"
|
||||||
|
if("Medical Pod")
|
||||||
|
frame_type = "medpod"
|
||||||
|
if("DNA Analyzer")
|
||||||
|
frame_type = "dna_analyzer"
|
||||||
|
if("Mass Driver")
|
||||||
|
frame_type = "massdriver"
|
||||||
|
|
||||||
|
var/ndir
|
||||||
|
ndir = usr.dir
|
||||||
|
if (!(ndir in cardinal))
|
||||||
|
return
|
||||||
|
|
||||||
var/obj/machinery/M = new build_machine_type(get_turf(src.loc), ndir, 1, frame_type)
|
var/obj/machinery/M = new build_machine_type(get_turf(src.loc), ndir, 1, frame_type)
|
||||||
M.fingerprints = src.fingerprints
|
M.fingerprints = src.fingerprints
|
||||||
@@ -64,7 +72,7 @@
|
|||||||
if(!frame_type)
|
if(!frame_type)
|
||||||
var/response = input(usr, "What kind of frame would you like to make?", "Frame type request", null) in list("Fire Alarm", "Air Alarm", "Display", "Newscaster",
|
var/response = input(usr, "What kind of frame would you like to make?", "Frame type request", null) in list("Fire Alarm", "Air Alarm", "Display", "Newscaster",
|
||||||
"ATM", "Guest Pass Console", "Intercom", "Keycard Authenticator",
|
"ATM", "Guest Pass Console", "Intercom", "Keycard Authenticator",
|
||||||
"Wall Charger",
|
"Wall Charger", "Supply Request Console",
|
||||||
"Cancel")
|
"Cancel")
|
||||||
|
|
||||||
if(response == "Cancel")
|
if(response == "Cancel")
|
||||||
@@ -92,6 +100,8 @@
|
|||||||
if("Wall Charger")
|
if("Wall Charger")
|
||||||
frame_type = "wrecharger"
|
frame_type = "wrecharger"
|
||||||
new /obj/item/stack/material/steel( usr.loc, 2 ) //wall rechargers are smaller, they only need 3 sheets
|
new /obj/item/stack/material/steel( usr.loc, 2 ) //wall rechargers are smaller, they only need 3 sheets
|
||||||
|
if("Supply Request Console")
|
||||||
|
frame_type = "request"
|
||||||
|
|
||||||
if(!build_machine_type)
|
if(!build_machine_type)
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -21,7 +21,8 @@
|
|||||||
var/obj/crayon
|
var/obj/crayon
|
||||||
var/list/washing = list()
|
var/list/washing = list()
|
||||||
|
|
||||||
/obj/machinery/washing_machine/New()
|
/obj/machinery/washing_machine/map/New()
|
||||||
|
circuit = new circuit(src)
|
||||||
component_parts = list()
|
component_parts = list()
|
||||||
component_parts += new /obj/item/weapon/stock_parts/motor(src)
|
component_parts += new /obj/item/weapon/stock_parts/motor(src)
|
||||||
component_parts += new /obj/item/weapon/stock_parts/gear(src)
|
component_parts += new /obj/item/weapon/stock_parts/gear(src)
|
||||||
|
|||||||
@@ -193,16 +193,14 @@ steam.start() -- spawns the effect
|
|||||||
affect(M)
|
affect(M)
|
||||||
|
|
||||||
/obj/effect/effect/smoke/proc/affect(var/mob/living/carbon/M)
|
/obj/effect/effect/smoke/proc/affect(var/mob/living/carbon/M)
|
||||||
if (istype(M))
|
if (!istype(M))
|
||||||
return 0
|
return 0
|
||||||
if (M.internal != null)
|
|
||||||
if(M.wear_mask && (M.wear_mask.item_flags & AIRTIGHT))
|
if(M.wear_mask && (M.wear_mask.item_flags & AIRTIGHT))
|
||||||
return 0
|
return 0
|
||||||
if(istype(M,/mob/living/carbon/human))
|
if(istype(M,/mob/living/carbon/human))
|
||||||
var/mob/living/carbon/human/H = M
|
var/mob/living/carbon/human/H = M
|
||||||
if(H.head && (H.head.item_flags & AIRTIGHT))
|
if(H.head && (H.head.item_flags & AIRTIGHT))
|
||||||
return 0
|
return 0
|
||||||
return 0
|
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
/////////////////////////////////////////////
|
/////////////////////////////////////////////
|
||||||
@@ -225,7 +223,8 @@ steam.start() -- spawns the effect
|
|||||||
/////////////////////////////////////////////
|
/////////////////////////////////////////////
|
||||||
|
|
||||||
/obj/effect/effect/smoke/bad
|
/obj/effect/effect/smoke/bad
|
||||||
time_to_live = 200
|
time_to_live = 600
|
||||||
|
//var/list/projectiles
|
||||||
|
|
||||||
/obj/effect/effect/smoke/bad/Move()
|
/obj/effect/effect/smoke/bad/Move()
|
||||||
..()
|
..()
|
||||||
@@ -235,70 +234,25 @@ steam.start() -- spawns the effect
|
|||||||
/obj/effect/effect/smoke/bad/affect(var/mob/living/carbon/M)
|
/obj/effect/effect/smoke/bad/affect(var/mob/living/carbon/M)
|
||||||
if (!..())
|
if (!..())
|
||||||
return 0
|
return 0
|
||||||
M.drop_item()
|
|
||||||
M.adjustOxyLoss(1)
|
M.adjustOxyLoss(1)
|
||||||
if (M.coughedtime != 1)
|
if(prob(25))
|
||||||
M.coughedtime = 1
|
|
||||||
M.emote("cough")
|
M.emote("cough")
|
||||||
spawn ( 20 )
|
|
||||||
M.coughedtime = 0
|
|
||||||
|
|
||||||
/obj/effect/effect/smoke/bad/CanPass(atom/movable/mover, turf/target, height=0, air_group=0)
|
/* Not feasile until a later date
|
||||||
if(air_group || (height==0)) return 1
|
/obj/effect/effect/smoke/bad/Crossed(atom/movable/M as mob|obj)
|
||||||
if(istype(mover, /obj/item/projectile/beam))
|
..()
|
||||||
var/obj/item/projectile/beam/B = mover
|
if(istype(M, /obj/item/projectile/beam))
|
||||||
|
var/obj/item/projectile/beam/B = M
|
||||||
|
if(!(B in projectiles))
|
||||||
B.damage = (B.damage/2)
|
B.damage = (B.damage/2)
|
||||||
|
projectiles += B
|
||||||
|
destroyed_event.register(B, src, /obj/effect/effect/smoke/bad/proc/on_projectile_delete)
|
||||||
|
world << "Damage is: [B.damage]"
|
||||||
return 1
|
return 1
|
||||||
/////////////////////////////////////////////
|
|
||||||
// Sleep smoke
|
|
||||||
/////////////////////////////////////////////
|
|
||||||
|
|
||||||
/obj/effect/effect/smoke/sleepy
|
/obj/effect/effect/smoke/bad/proc/on_projectile_delete(obj/item/projectile/beam/proj)
|
||||||
|
projectiles -= proj
|
||||||
/obj/effect/effect/smoke/sleepy/Move()
|
*/
|
||||||
..()
|
|
||||||
for(var/mob/living/carbon/M in get_turf(src))
|
|
||||||
affect(M)
|
|
||||||
|
|
||||||
/obj/effect/effect/smoke/sleepy/affect(mob/living/carbon/M as mob )
|
|
||||||
if (!..())
|
|
||||||
return 0
|
|
||||||
|
|
||||||
M.drop_item()
|
|
||||||
M:sleeping += 1
|
|
||||||
if (M.coughedtime != 1)
|
|
||||||
M.coughedtime = 1
|
|
||||||
M.emote("cough")
|
|
||||||
spawn ( 20 )
|
|
||||||
M.coughedtime = 0
|
|
||||||
/////////////////////////////////////////////
|
|
||||||
// Mustard Gas
|
|
||||||
/////////////////////////////////////////////
|
|
||||||
|
|
||||||
|
|
||||||
/obj/effect/effect/smoke/mustard
|
|
||||||
name = "mustard gas"
|
|
||||||
icon_state = "mustard"
|
|
||||||
|
|
||||||
/obj/effect/effect/smoke/mustard/Move()
|
|
||||||
..()
|
|
||||||
for(var/mob/living/carbon/human/R in get_turf(src))
|
|
||||||
affect(R)
|
|
||||||
|
|
||||||
/obj/effect/effect/smoke/mustard/affect(var/mob/living/carbon/human/R)
|
|
||||||
if (!..())
|
|
||||||
return 0
|
|
||||||
if (R.wear_suit != null)
|
|
||||||
return 0
|
|
||||||
|
|
||||||
R.burn_skin(0.75)
|
|
||||||
if (R.coughedtime != 1)
|
|
||||||
R.coughedtime = 1
|
|
||||||
R.emote("gasp")
|
|
||||||
spawn (20)
|
|
||||||
R.coughedtime = 0
|
|
||||||
R.updatehealth()
|
|
||||||
return
|
|
||||||
|
|
||||||
/////////////////////////////////////////////
|
/////////////////////////////////////////////
|
||||||
// Smoke spread
|
// Smoke spread
|
||||||
@@ -321,7 +275,7 @@ steam.start() -- spawns the effect
|
|||||||
if(direct)
|
if(direct)
|
||||||
direction = direct
|
direction = direct
|
||||||
|
|
||||||
/datum/effect/effect/system/smoke_spread/start()
|
/datum/effect/effect/system/smoke_spread/start(var/I)
|
||||||
var/i = 0
|
var/i = 0
|
||||||
for(i=0, i<src.number, i++)
|
for(i=0, i<src.number, i++)
|
||||||
if(src.total_smoke > 20)
|
if(src.total_smoke > 20)
|
||||||
@@ -331,6 +285,7 @@ steam.start() -- spawns the effect
|
|||||||
src.location = get_turf(holder)
|
src.location = get_turf(holder)
|
||||||
var/obj/effect/effect/smoke/smoke = PoolOrNew(smoke_type, src.location)
|
var/obj/effect/effect/smoke/smoke = PoolOrNew(smoke_type, src.location)
|
||||||
src.total_smoke++
|
src.total_smoke++
|
||||||
|
smoke.color = I
|
||||||
var/direction = src.direction
|
var/direction = src.direction
|
||||||
if(!direction)
|
if(!direction)
|
||||||
if(src.cardinals)
|
if(src.cardinals)
|
||||||
@@ -348,14 +303,6 @@ steam.start() -- spawns the effect
|
|||||||
/datum/effect/effect/system/smoke_spread/bad
|
/datum/effect/effect/system/smoke_spread/bad
|
||||||
smoke_type = /obj/effect/effect/smoke/bad
|
smoke_type = /obj/effect/effect/smoke/bad
|
||||||
|
|
||||||
/datum/effect/effect/system/smoke_spread/sleepy
|
|
||||||
smoke_type = /obj/effect/effect/smoke/sleepy
|
|
||||||
|
|
||||||
|
|
||||||
/datum/effect/effect/system/smoke_spread/mustard
|
|
||||||
smoke_type = /obj/effect/effect/smoke/mustard
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////
|
/////////////////////////////////////////////
|
||||||
//////// Attach an Ion trail to any object, that spawns when it moves (like for the jetpack)
|
//////// Attach an Ion trail to any object, that spawns when it moves (like for the jetpack)
|
||||||
/// just pass in the object to attach it to in set_up
|
/// just pass in the object to attach it to in set_up
|
||||||
|
|||||||
@@ -86,6 +86,17 @@
|
|||||||
qdel(src)
|
qdel(src)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
/obj/structure/closet/body_bag/proc/get_occupants()
|
||||||
|
var/list/occupants = list()
|
||||||
|
for(var/mob/living/carbon/human/H in contents)
|
||||||
|
occupants += H
|
||||||
|
return occupants
|
||||||
|
|
||||||
|
/obj/structure/closet/body_bag/proc/update(var/broadcast=0)
|
||||||
|
if(istype(loc, /obj/structure/morgue))
|
||||||
|
var/obj/structure/morgue/M = loc
|
||||||
|
M.update(broadcast)
|
||||||
|
|
||||||
/obj/structure/closet/body_bag/update_icon()
|
/obj/structure/closet/body_bag/update_icon()
|
||||||
if(opened)
|
if(opened)
|
||||||
icon_state = icon_opened
|
icon_state = icon_opened
|
||||||
|
|||||||
@@ -208,6 +208,76 @@
|
|||||||
processing_objects += src
|
processing_objects += src
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
|
//Glowsticks
|
||||||
|
|
||||||
|
/obj/item/device/flashlight/glowstick
|
||||||
|
name = "green glowstick"
|
||||||
|
desc = "A green military-grade glowstick."
|
||||||
|
w_class = 2.0
|
||||||
|
brightness_on = 4
|
||||||
|
light_power = 2
|
||||||
|
light_color = "#49F37C"
|
||||||
|
icon_state = "glowstick"
|
||||||
|
item_state = "glowstick"
|
||||||
|
var/fuel = 0
|
||||||
|
|
||||||
|
/obj/item/device/flashlight/glowstick/New()
|
||||||
|
fuel = rand(1600, 2000)
|
||||||
|
..()
|
||||||
|
|
||||||
|
/obj/item/device/flashlight/glowstick/process()
|
||||||
|
fuel = max(fuel - 1, 0)
|
||||||
|
if(!fuel || !on)
|
||||||
|
turn_off()
|
||||||
|
if(!fuel)
|
||||||
|
src.icon_state = "[initial(icon_state)]-empty"
|
||||||
|
processing_objects -= src
|
||||||
|
|
||||||
|
/obj/item/device/flashlight/glowstick/proc/turn_off()
|
||||||
|
on = 0
|
||||||
|
update_icon()
|
||||||
|
|
||||||
|
/obj/item/device/flashlight/glowstick/attack_self(mob/user)
|
||||||
|
|
||||||
|
if(!fuel)
|
||||||
|
user << "<span class='notice'>The glowstick has already been turned on.</span>"
|
||||||
|
return
|
||||||
|
if(on)
|
||||||
|
return
|
||||||
|
|
||||||
|
. = ..()
|
||||||
|
if(.)
|
||||||
|
user.visible_message("<span class='notice'>[user] cracks and shakes the glowstick.</span>", "<span class='notice'>You crack and shake the glowstick, turning it on!</span>")
|
||||||
|
processing_objects += src
|
||||||
|
|
||||||
|
/obj/item/device/flashlight/glowstick/red
|
||||||
|
name = "red glowstick"
|
||||||
|
desc = "A red military-grade glowstick."
|
||||||
|
light_color = "#FC0F29"
|
||||||
|
icon_state = "glowstick_red"
|
||||||
|
item_state = "glowstick_red"
|
||||||
|
|
||||||
|
/obj/item/device/flashlight/glowstick/blue
|
||||||
|
name = "blue glowstick"
|
||||||
|
desc = "A blue military-grade glowstick."
|
||||||
|
light_color = "#599DFF"
|
||||||
|
icon_state = "glowstick_blue"
|
||||||
|
item_state = "glowstick_blue"
|
||||||
|
|
||||||
|
/obj/item/device/flashlight/glowstick/orange
|
||||||
|
name = "orange glowstick"
|
||||||
|
desc = "A orange military-grade glowstick."
|
||||||
|
light_color = "#FA7C0B"
|
||||||
|
icon_state = "glowstick_orange"
|
||||||
|
item_state = "glowstick_orange"
|
||||||
|
|
||||||
|
/obj/item/device/flashlight/glowstick/yellow
|
||||||
|
name = "yellow glowstick"
|
||||||
|
desc = "A yellow military-grade glowstick."
|
||||||
|
light_color = "#FEF923"
|
||||||
|
icon_state = "glowstick_yellow"
|
||||||
|
item_state = "glowstick_yellow"
|
||||||
|
|
||||||
/obj/item/device/flashlight/slime
|
/obj/item/device/flashlight/slime
|
||||||
gender = PLURAL
|
gender = PLURAL
|
||||||
name = "glowing slime extract"
|
name = "glowing slime extract"
|
||||||
|
|||||||
140
code/game/objects/items/devices/locker_painter.dm
Normal file
140
code/game/objects/items/devices/locker_painter.dm
Normal file
@@ -0,0 +1,140 @@
|
|||||||
|
/obj/item/device/closet_painter
|
||||||
|
name = "closet painter"
|
||||||
|
icon = 'icons/obj/bureaucracy.dmi'
|
||||||
|
icon_state = "labeler1"
|
||||||
|
item_state = "flight"
|
||||||
|
|
||||||
|
var/colour = "plain"
|
||||||
|
var/colour_secure = "plain"
|
||||||
|
|
||||||
|
var/list/colours = list(
|
||||||
|
"plain" = list("open" = "open", "closed" = "closed"),
|
||||||
|
"blue" = list("open" = "open", "closed" = "blue"),
|
||||||
|
"mixed" = list("open" = "open", "closed" = "mixed"),
|
||||||
|
"grey" = list("open" = "open", "closed" = "grey"),
|
||||||
|
"green" = list("open" = "open", "closed" = "green"),
|
||||||
|
"orange" = list("open" = "open", "closed" = "orange"),
|
||||||
|
"pink" = list("open" = "open", "closed" = "pink"),
|
||||||
|
"red" = list("open" = "open", "closed" = "red"),
|
||||||
|
"white" = list("open" = "open", "closed" = "white"),
|
||||||
|
"yellow" = list("open" = "open", "closed" = "yellow"),
|
||||||
|
"black" = list("open" = "open", "closed" = "black"),
|
||||||
|
"bio" = list("open" = "bioopen", "closed" = "bio"),
|
||||||
|
"bio-virology" = list("open" = "bio_virologyopen", "closed" = "bio_virology"),
|
||||||
|
"bio-security" = list("open" = "bio_securityopen", "closed" = "bio_security"),
|
||||||
|
"bio-janitor" = list("open" = "bio_janitoropen", "closed" = "bio_janitor"),
|
||||||
|
"bio-scientist" = list("open" = "bio_scientistopen", "closed" = "bio_scientist"),
|
||||||
|
"bombsuit" = list("open" = "bombsuitopen", "closed" = "bombsuit"),
|
||||||
|
"bombsuit-security" = list("open" = "bombsuitsecopen", "closed" = "bombsuitsec"),
|
||||||
|
"full-red" = list("open" = "syndicateopen", "closed" = "syndicate"),
|
||||||
|
"full-green" = list("open" = "syndicate1open", "closed" = "syndicate1"),
|
||||||
|
"full-purple" = list("open" = "aclosetopen", "closed" = "acloset"),
|
||||||
|
"mining" = list("open" = "miningopen", "closed" = "mining"),
|
||||||
|
"emergency" = list("open" = "emergencyopen", "closed" = "emergency"),
|
||||||
|
"fire" = list("open" = "fireclosetopen", "closed" = "firecloset"),
|
||||||
|
"tool" = list("open" = "toolclosetopen", "closed" = "toolcloset"),
|
||||||
|
"radiation" = list("open" = "toolclosetopen", "closed" = "radsuitcloset")
|
||||||
|
)
|
||||||
|
|
||||||
|
var/list/colours_secure = list(
|
||||||
|
"plain" = list("open" = "open", "closed" = "secure", "locked" = "secure1", "broken" = "securebroken", "off" = "secureoff"),
|
||||||
|
"medical-red" = list("open" = "medicalopen", "closed" = "medical", "locked" = "medical1", "broken" = "medicalbroken", "off" = "medicaloff"),
|
||||||
|
"medical-green" = list("open" = "securemedopen", "closed" = "securemed", "locked" = "securemed1", "broken" = "securemedbroken", "off" = "securemedoff"),
|
||||||
|
"CMO" = list("open" = "cmosecureopen", "closed" = "cmosecure", "locked" = "cmosecure1", "broken" = "cmosecurebroken", "off" = "cmosecureoff"),
|
||||||
|
"cargo" = list("open" = "securecargoopen", "closed" = "securecargo", "locked" = "securecargo1", "broken" = "securecargobroken", "off" = "securecargooff"),
|
||||||
|
"mining" = list("open" = "miningsecopen", "closed" = "miningsec", "locked" = "miningsec1", "broken" = "miningsecbroken", "off" = "miningsecoff"),
|
||||||
|
"QM" = list("open" = "secureqmopen", "closed" = "secureqm", "locked" = "secureqm1", "broken" = "secureqmbroken", "off" = "secureqmoff"),
|
||||||
|
"hydroponics" = list("open" = "hydrosecureopen", "closed" = "hydrosecure", "locked" = "hydrosecure1", "broken" = "hydrosecurebroken", "off" = "hydrosecureoff"),
|
||||||
|
"atmospherics" = list("open" = "secureatmopen", "closed" = "secureatm", "locked" = "secureatm1", "broken" = "secureatmbroken", "off" = "secureatmoff"),
|
||||||
|
"engineer" = list("open" = "secureengopen", "closed" = "secureeng", "locked" = "secureeng1", "broken" = "secureengbroken", "off" = "secureengoff"),
|
||||||
|
"CE" = list("open" = "secureceopen", "closed" = "securece", "locked" = "securece1", "broken" = "securecebroken", "off" = "secureceoff"),
|
||||||
|
"electrical" = list("open" = "toolclosetopen", "closed" = "secureengelec", "locked" = "secureengelec1", "broken" = "secureengelecbroken", "off" = "secureengelecoff"),
|
||||||
|
"welding" = list("open" = "toolclosetopen", "closed" = "secureengweld", "locked" = "secureengweld1", "broken" = "secureengweldbroken", "off" = "secureengweldoff"),
|
||||||
|
"research" = list("open" = "secureresopen", "closed" = "secureres", "locked" = "secureres1", "broken" = "secureresbroken", "off" = "secureresoff"),
|
||||||
|
"RD" = list("open" = "rdsecureopen", "closed" = "rdsecure", "locked" = "rdsecure1", "broken" = "rdsecurebroken", "off" = "rdsecureoff"),
|
||||||
|
"security" = list("open" = "secopen", "closed" = "sec", "locked" = "sec1", "broken" = "secbroken", "off" = "secoff"),
|
||||||
|
"warden" = list("open" = "wardensecureopen", "closed" = "wardensecure", "locked" = "wardensecure1", "broken" = "wardensecurebroken", "off" = "wardensecureoff"),
|
||||||
|
"HoS" = list("open" = "hossecureopen", "closed" = "hossecure", "locked" = "hossecure1", "broken" = "hossecurebroken", "off" = "hossecureoff"),
|
||||||
|
"HoP" = list("open" = "hopsecureopen", "closed" = "hopsecure", "locked" = "hopsecure1", "broken" = "hopsecurebroken", "off" = "hopsecureoff"),
|
||||||
|
"Captain" = list("open" = "capsecureopen", "closed" = "capsecure", "locked" = "capsecure1", "broken" = "capsecurebroken", "off" = "capsecureoff")
|
||||||
|
)
|
||||||
|
|
||||||
|
/obj/item/device/closet_painter/afterattack(atom/A, var/mob/user, proximity)
|
||||||
|
if(!proximity)
|
||||||
|
return
|
||||||
|
|
||||||
|
if(!istype(A,/obj/structure/closet))
|
||||||
|
user << "<span class='warning'>\The [src] can only be used on closets.</span>"
|
||||||
|
return
|
||||||
|
|
||||||
|
var/config_error
|
||||||
|
|
||||||
|
if(istype(A,/obj/structure/closet/secure_closet))
|
||||||
|
var/obj/structure/closet/secure_closet/F = A
|
||||||
|
if(F.broken)
|
||||||
|
user << "<span class='warning'>\The [src] cannot paint broken closets.</span>"
|
||||||
|
return
|
||||||
|
|
||||||
|
var/list/colour_data = colours_secure[colour_secure]
|
||||||
|
if(!islist(colour_data))
|
||||||
|
config_error = 1
|
||||||
|
if(!config_error)
|
||||||
|
F.icon_opened = colour_data["open"]
|
||||||
|
F.icon_closed = colour_data["closed"]
|
||||||
|
F.icon_locked = colour_data["locked"]
|
||||||
|
F.icon_broken = colour_data["broken"]
|
||||||
|
F.icon_off = colour_data["off"]
|
||||||
|
F.update_icon()
|
||||||
|
|
||||||
|
else
|
||||||
|
var/obj/structure/closet/F = A
|
||||||
|
var/list/colour_data = colours[colour]
|
||||||
|
if(!islist(colour_data))
|
||||||
|
config_error = 1
|
||||||
|
if(!config_error)
|
||||||
|
F.icon_opened = colour_data["open"]
|
||||||
|
F.icon_closed = colour_data["closed"]
|
||||||
|
F.update_icon()
|
||||||
|
|
||||||
|
if(config_error)
|
||||||
|
user << "<span class='warning'>\The [src] flashes an error light. You might need to reconfigure it.</span>"
|
||||||
|
return
|
||||||
|
|
||||||
|
/obj/item/device/closet_painter/attack_self(var/mob/user)
|
||||||
|
var/choice = input("Do you wish to change the regular closet colour or the secure closet colour?") as null|anything in list("Regular Closet Colour","Secure Closet Colour")
|
||||||
|
if(choice == "Regular Closet Colour")
|
||||||
|
choose_colour()
|
||||||
|
else if(choice == "Secure Closet Colour")
|
||||||
|
choose_colour_secure()
|
||||||
|
|
||||||
|
/obj/item/device/closet_painter/examine(mob/user)
|
||||||
|
..(user)
|
||||||
|
user << "It is configured to produce the '[colour]' paint scheme or the '[colour_secure]' secure closet paint scheme."
|
||||||
|
|
||||||
|
/obj/item/device/closet_painter/verb/choose_colour()
|
||||||
|
set name = "Choose Colour"
|
||||||
|
set desc = "Choose a regular closet painter colour."
|
||||||
|
set category = "Object"
|
||||||
|
set src in usr
|
||||||
|
|
||||||
|
if(usr.incapacitated())
|
||||||
|
return
|
||||||
|
|
||||||
|
var/new_colour = input("Select a colour.") as null|anything in colours
|
||||||
|
if(new_colour && !isnull(colours[new_colour]))
|
||||||
|
colour = new_colour
|
||||||
|
usr << "<span class='notice'>You set \the [src] regular closet colour to '[colour]'.</span>"
|
||||||
|
|
||||||
|
/obj/item/device/closet_painter/verb/choose_colour_secure()
|
||||||
|
set name = "Choose Secure Colour"
|
||||||
|
set desc = "Choose a secure closet painter colour."
|
||||||
|
set category = "Object"
|
||||||
|
set src in usr
|
||||||
|
|
||||||
|
if(usr.incapacitated())
|
||||||
|
return
|
||||||
|
|
||||||
|
var/new_colour_secure = input("Select a colour.") as null|anything in colours_secure
|
||||||
|
if(new_colour_secure && !isnull(colours_secure[new_colour_secure]))
|
||||||
|
colour_secure = new_colour_secure
|
||||||
|
usr << "<span class='notice'>You set \the [src] secure closet colour to '[colour_secure]'.</span>"
|
||||||
@@ -31,7 +31,7 @@
|
|||||||
|
|
||||||
/obj/item/device/suit_cooling_unit/New()
|
/obj/item/device/suit_cooling_unit/New()
|
||||||
processing_objects |= src
|
processing_objects |= src
|
||||||
cell = new/obj/item/weapon/cell() //comes with the crappy default power cell - high-capacity ones shouldn't be hard to find
|
cell = new/obj/item/weapon/cell/high() //comes not with the crappy default power cell - because this is dedicated EVA equipment
|
||||||
cell.loc = src
|
cell.loc = src
|
||||||
|
|
||||||
/obj/item/device/suit_cooling_unit/process()
|
/obj/item/device/suit_cooling_unit/process()
|
||||||
|
|||||||
@@ -155,6 +155,10 @@ datum/uplink_item/dd_SortValue()
|
|||||||
name = "9mm"
|
name = "9mm"
|
||||||
path = /obj/item/ammo_magazine/mc9mm
|
path = /obj/item/ammo_magazine/mc9mm
|
||||||
|
|
||||||
|
/datum/uplink_item/item/ammo/c45m
|
||||||
|
name = ".45"
|
||||||
|
path = /obj/item/ammo_magazine/c45m
|
||||||
|
|
||||||
/datum/uplink_item/item/ammo/darts
|
/datum/uplink_item/item/ammo/darts
|
||||||
name = "Darts"
|
name = "Darts"
|
||||||
path = /obj/item/ammo_magazine/chemdart
|
path = /obj/item/ammo_magazine/chemdart
|
||||||
@@ -163,6 +167,14 @@ datum/uplink_item/dd_SortValue()
|
|||||||
name = "14.5mm"
|
name = "14.5mm"
|
||||||
path = /obj/item/weapon/storage/box/sniperammo
|
path = /obj/item/weapon/storage/box/sniperammo
|
||||||
|
|
||||||
|
/datum/uplink_item/item/ammo/a556
|
||||||
|
name = "5.56mm"
|
||||||
|
path = /obj/item/ammo_magazine/a556
|
||||||
|
|
||||||
|
/datum/uplink_item/item/ammo/a556/ap
|
||||||
|
name = "5.56mm AP"
|
||||||
|
path = /obj/item/ammo_magazine/a556/ap
|
||||||
|
|
||||||
/datum/uplink_item/item/ammo/a10mm
|
/datum/uplink_item/item/ammo/a10mm
|
||||||
name = "10mm"
|
name = "10mm"
|
||||||
path = /obj/item/ammo_magazine/a10mm
|
path = /obj/item/ammo_magazine/a10mm
|
||||||
@@ -171,6 +183,23 @@ datum/uplink_item/dd_SortValue()
|
|||||||
name = "7.62mm"
|
name = "7.62mm"
|
||||||
path = /obj/item/ammo_magazine/a762
|
path = /obj/item/ammo_magazine/a762
|
||||||
|
|
||||||
|
/datum/uplink_item/item/ammo/a762/ap
|
||||||
|
name = "7.62mm AP"
|
||||||
|
path = /obj/item/ammo_magazine/a762/ap
|
||||||
|
|
||||||
|
/datum/uplink_item/item/ammo/g12
|
||||||
|
name = "12 gauge"
|
||||||
|
path = /obj/item/ammo_magazine/g12
|
||||||
|
|
||||||
|
/datum/uplink_item/item/ammo/g12/beanbag
|
||||||
|
name = "12 gauge beanbag"
|
||||||
|
path = /obj/item/ammo_magazine/g12/beanbag
|
||||||
|
item_cost = 1 // Discount due to it being LTL.
|
||||||
|
|
||||||
|
/datum/uplink_item/item/ammo/g12/pellet
|
||||||
|
name = "12 gauge pellet"
|
||||||
|
path = /obj/item/ammo_magazine/g12/pellet
|
||||||
|
|
||||||
/***************************************
|
/***************************************
|
||||||
* Highly Visible and Dangerous Weapons *
|
* Highly Visible and Dangerous Weapons *
|
||||||
***************************************/
|
***************************************/
|
||||||
@@ -192,10 +221,10 @@ datum/uplink_item/dd_SortValue()
|
|||||||
item_cost = 5
|
item_cost = 5
|
||||||
path = /obj/item/weapon/gun/energy/crossbow
|
path = /obj/item/weapon/gun/energy/crossbow
|
||||||
|
|
||||||
/datum/uplink_item/item/visible_weapons/g9mm
|
/datum/uplink_item/item/visible_weapons/silenced_45
|
||||||
name = "Silenced 9mm"
|
name = "Silenced .45"
|
||||||
item_cost = 5
|
item_cost = 5
|
||||||
path = /obj/item/weapon/storage/box/syndie_kit/g9mm
|
path = /obj/item/weapon/gun/projectile/silenced
|
||||||
|
|
||||||
/datum/uplink_item/item/visible_weapons/riggedlaser
|
/datum/uplink_item/item/visible_weapons/riggedlaser
|
||||||
name = "Exosuit Rigged Laser"
|
name = "Exosuit Rigged Laser"
|
||||||
@@ -223,6 +252,36 @@ datum/uplink_item/dd_SortValue()
|
|||||||
item_cost = 7
|
item_cost = 7
|
||||||
path = /obj/item/weapon/gun/projectile/automatic/sts35
|
path = /obj/item/weapon/gun/projectile/automatic/sts35
|
||||||
|
|
||||||
|
/datum/uplink_item/item/visible_weapons/combatshotgun
|
||||||
|
name = "Combat Shotgun"
|
||||||
|
item_cost = 7
|
||||||
|
path = /obj/item/weapon/gun/projectile/shotgun/pump/combat
|
||||||
|
|
||||||
|
/datum/uplink_item/item/visible_weapons/egun
|
||||||
|
name = "Energy Gun"
|
||||||
|
item_cost = 5
|
||||||
|
path = /obj/item/weapon/gun/energy/gun
|
||||||
|
|
||||||
|
/datum/uplink_item/item/visible_weapons/lasercannon
|
||||||
|
name = "Laser Cannon"
|
||||||
|
item_cost = 6
|
||||||
|
path = /obj/item/weapon/gun/energy/lasercannon
|
||||||
|
|
||||||
|
/datum/uplink_item/item/visible_weapons/lasercarbine
|
||||||
|
name = "Laser Carbine"
|
||||||
|
item_cost = 7
|
||||||
|
path = /obj/item/weapon/gun/energy/laser
|
||||||
|
|
||||||
|
/datum/uplink_item/item/visible_weapons/ionrifle
|
||||||
|
name = "Ion Rifle"
|
||||||
|
item_cost = 5
|
||||||
|
path = /obj/item/weapon/gun/energy/ionrifle
|
||||||
|
|
||||||
|
/datum/uplink_item/item/visible_weapons/xray
|
||||||
|
name = "Xray Gun"
|
||||||
|
item_cost = 7
|
||||||
|
path = /obj/item/weapon/gun/energy/xray
|
||||||
|
|
||||||
/*************************************
|
/*************************************
|
||||||
* Stealthy and Inconspicuous Weapons *
|
* Stealthy and Inconspicuous Weapons *
|
||||||
*************************************/
|
*************************************/
|
||||||
@@ -387,10 +446,6 @@ datum/uplink_item/dd_SortValue()
|
|||||||
item_cost = 20
|
item_cost = 20
|
||||||
path = /obj/item/weapon/circuitboard/teleporter
|
path = /obj/item/weapon/circuitboard/teleporter
|
||||||
|
|
||||||
/datum/uplink_item/item/tools/teleporter/New()
|
|
||||||
..()
|
|
||||||
antag_roles = list(MODE_MERCENARY)
|
|
||||||
|
|
||||||
/datum/uplink_item/item/tools/money
|
/datum/uplink_item/item/tools/money
|
||||||
name = "Operations Funding"
|
name = "Operations Funding"
|
||||||
item_cost = 3
|
item_cost = 3
|
||||||
@@ -573,7 +628,6 @@ datum/uplink_item/dd_SortValue()
|
|||||||
|
|
||||||
/datum/uplink_item/item/badassery/surplus/New()
|
/datum/uplink_item/item/badassery/surplus/New()
|
||||||
..()
|
..()
|
||||||
antag_roles = list(MODE_MERCENARY)
|
|
||||||
desc = "A crate containing [item_worth] telecrystal\s worth of surplus leftovers."
|
desc = "A crate containing [item_worth] telecrystal\s worth of surplus leftovers."
|
||||||
|
|
||||||
/datum/uplink_item/item/badassery/surplus/get_goods(var/obj/item/device/uplink/U, var/loc)
|
/datum/uplink_item/item/badassery/surplus/get_goods(var/obj/item/device/uplink/U, var/loc)
|
||||||
@@ -622,7 +676,6 @@ var/image/default_abstract_uplink_icon
|
|||||||
..()
|
..()
|
||||||
name = "[command_name()] Update Announcement"
|
name = "[command_name()] Update Announcement"
|
||||||
desc = "Causes a falsified [command_name()] Update. Triggers immediately after supplying additional data."
|
desc = "Causes a falsified [command_name()] Update. Triggers immediately after supplying additional data."
|
||||||
antag_roles = list(MODE_MERCENARY)
|
|
||||||
|
|
||||||
/datum/uplink_item/abstract/announcements/fake_centcom/get_goods(var/obj/item/device/uplink/U, var/loc, var/mob/user, var/list/args)
|
/datum/uplink_item/abstract/announcements/fake_centcom/get_goods(var/obj/item/device/uplink/U, var/loc, var/mob/user, var/list/args)
|
||||||
command_announcement.Announce(args.["message"], args.["title"])
|
command_announcement.Announce(args.["message"], args.["title"])
|
||||||
@@ -633,10 +686,6 @@ var/image/default_abstract_uplink_icon
|
|||||||
desc = "Creates a fake crew arrival announcement as well as fake crew records, using your current appearance (including held items!) and worn id card. Trigger with care!"
|
desc = "Creates a fake crew arrival announcement as well as fake crew records, using your current appearance (including held items!) and worn id card. Trigger with care!"
|
||||||
item_cost = 4
|
item_cost = 4
|
||||||
|
|
||||||
/datum/uplink_item/abstract/announcements/fake_crew_arrival/New()
|
|
||||||
..()
|
|
||||||
antag_roles = list(MODE_MERCENARY)
|
|
||||||
|
|
||||||
/datum/uplink_item/abstract/announcements/fake_crew_arrival/get_goods(var/obj/item/device/uplink/U, var/loc, var/mob/user, var/list/args)
|
/datum/uplink_item/abstract/announcements/fake_crew_arrival/get_goods(var/obj/item/device/uplink/U, var/loc, var/mob/user, var/list/args)
|
||||||
if(!user)
|
if(!user)
|
||||||
return 0
|
return 0
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ var/datum/uplink_random_selection/default_uplink_selection = new/datum/uplink_ra
|
|||||||
/datum/uplink_random_selection/default/New()
|
/datum/uplink_random_selection/default/New()
|
||||||
..()
|
..()
|
||||||
|
|
||||||
items += new/datum/uplink_random_item(/datum/uplink_item/item/visible_weapons/g9mm)
|
items += new/datum/uplink_random_item(/datum/uplink_item/item/visible_weapons/silenced_45)
|
||||||
items += new/datum/uplink_random_item(/datum/uplink_item/item/ammo/mc9mm)
|
items += new/datum/uplink_random_item(/datum/uplink_item/item/ammo/mc9mm)
|
||||||
items += new/datum/uplink_random_item(/datum/uplink_item/item/visible_weapons/revolver)
|
items += new/datum/uplink_random_item(/datum/uplink_item/item/visible_weapons/revolver)
|
||||||
items += new/datum/uplink_random_item(/datum/uplink_item/item/ammo/a357)
|
items += new/datum/uplink_random_item(/datum/uplink_item/item/ammo/a357)
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
name = "medical pack"
|
name = "medical pack"
|
||||||
singular_name = "medical pack"
|
singular_name = "medical pack"
|
||||||
icon = 'icons/obj/items.dmi'
|
icon = 'icons/obj/items.dmi'
|
||||||
amount = 5
|
amount = 10
|
||||||
max_amount = 5
|
max_amount = 10
|
||||||
w_class = 2
|
w_class = 2
|
||||||
throw_speed = 4
|
throw_speed = 4
|
||||||
throw_range = 20
|
throw_range = 20
|
||||||
@@ -65,24 +65,43 @@
|
|||||||
var/obj/item/organ/external/affecting = H.get_organ(user.zone_sel.selecting)
|
var/obj/item/organ/external/affecting = H.get_organ(user.zone_sel.selecting)
|
||||||
|
|
||||||
if(affecting.open == 0)
|
if(affecting.open == 0)
|
||||||
if(!affecting.bandage())
|
if(affecting.is_bandaged())
|
||||||
user << "<span class='warning'>The wounds on [M]'s [affecting.name] have already been bandaged.</span>"
|
user << "<span class='warning'>The wounds on [M]'s [affecting.name] have already been bandaged.</span>"
|
||||||
return 1
|
return 1
|
||||||
else
|
else
|
||||||
|
user.visible_message("<span class='notice'>\The [user] starts treating [M]'s [affecting.name].</span>", \
|
||||||
|
"<span class='notice'>You start treating [M]'s [affecting.name].</span>" )
|
||||||
|
var/used = 0
|
||||||
for (var/datum/wound/W in affecting.wounds)
|
for (var/datum/wound/W in affecting.wounds)
|
||||||
if (W.internal)
|
if (W.internal)
|
||||||
continue
|
continue
|
||||||
|
if(W.bandaged)
|
||||||
|
continue
|
||||||
|
if(used == amount)
|
||||||
|
break
|
||||||
|
if(!do_mob(user, M, W.damage/5))
|
||||||
|
user << "<span class='notice'>You must stand still to bandage wounds.</span>"
|
||||||
|
break
|
||||||
|
|
||||||
if (W.current_stage <= W.max_bleeding_stage)
|
if (W.current_stage <= W.max_bleeding_stage)
|
||||||
user.visible_message("<span class='notice'>\The [user] bandages [W.desc] on [M]'s [affecting.name].</span>", \
|
user.visible_message("<span class='notice'>\The [user] bandages \a [W.desc] on [M]'s [affecting.name].</span>", \
|
||||||
"<span class='notice'>You bandage [W.desc] on [M]'s [affecting.name].</span>" )
|
"<span class='notice'>You bandage \a [W.desc] on [M]'s [affecting.name].</span>" )
|
||||||
//H.add_side_effect("Itch")
|
//H.add_side_effect("Itch")
|
||||||
else if (istype(W,/datum/wound/bruise))
|
else if (W.damage_type == BRUISE)
|
||||||
user.visible_message("<span class='notice'>\The [user] places a bruise patch over [W.desc] on [M]'s [affecting.name].</span>", \
|
user.visible_message("<span class='notice'>\The [user] places a bruise patch over \a [W.desc] on [M]'s [affecting.name].</span>", \
|
||||||
"<span class='notice'>You place a bruise patch over [W.desc] on [M]'s [affecting.name].</span>" )
|
"<span class='notice'>You place a bruise patch over \a [W.desc] on [M]'s [affecting.name].</span>" )
|
||||||
else
|
else
|
||||||
user.visible_message("<span class='notice'>\The [user] places a bandaid over [W.desc] on [M]'s [affecting.name].</span>", \
|
user.visible_message("<span class='notice'>\The [user] places a bandaid over \a [W.desc] on [M]'s [affecting.name].</span>", \
|
||||||
"<span class='notice'>You place a bandaid over [W.desc] on [M]'s [affecting.name].</span>" )
|
"<span class='notice'>You place a bandaid over \a [W.desc] on [M]'s [affecting.name].</span>" )
|
||||||
use(1)
|
W.bandage()
|
||||||
|
used++
|
||||||
|
affecting.update_damages()
|
||||||
|
if(used == amount)
|
||||||
|
if(affecting.is_bandaged())
|
||||||
|
user << "<span class='warning'>\The [src] is used up.</span>"
|
||||||
|
else
|
||||||
|
user << "<span class='warning'>\The [src] is used up, but there are more wounds to treat on \the [affecting.name].</span>"
|
||||||
|
use(used)
|
||||||
else
|
else
|
||||||
if (can_operate(H)) //Checks if mob is lying down on table for surgery
|
if (can_operate(H)) //Checks if mob is lying down on table for surgery
|
||||||
if (do_surgery(H,user,src))
|
if (do_surgery(H,user,src))
|
||||||
@@ -108,13 +127,19 @@
|
|||||||
var/obj/item/organ/external/affecting = H.get_organ(user.zone_sel.selecting)
|
var/obj/item/organ/external/affecting = H.get_organ(user.zone_sel.selecting)
|
||||||
|
|
||||||
if(affecting.open == 0)
|
if(affecting.open == 0)
|
||||||
if(!affecting.salve())
|
if(affecting.is_salved())
|
||||||
user << "<span class='warning'>The wounds on [M]'s [affecting.name] have already been salved.</span>"
|
user << "<span class='warning'>The wounds on [M]'s [affecting.name] have already been salved.</span>"
|
||||||
return 1
|
return 1
|
||||||
else
|
else
|
||||||
user.visible_message("<span class='notice'>[user] salves wounds on [M]'s [affecting.name].</span>", \
|
user.visible_message("<span class='notice'>\The [user] starts salving wounds on [M]'s [affecting.name].</span>", \
|
||||||
"<span class='notice'>You salve wounds on [M]'s [affecting.name].</span>" )
|
"<span class='notice'>You start salving the wounds on [M]'s [affecting.name].</span>" )
|
||||||
|
if(!do_mob(user, M, 10))
|
||||||
|
user << "<span class='notice'>You must stand still to salve wounds.</span>"
|
||||||
|
return 1
|
||||||
|
user.visible_message("<span class='notice'>[user] salved wounds on [M]'s [affecting.name].</span>", \
|
||||||
|
"<span class='notice'>You salved wounds on [M]'s [affecting.name].</span>" )
|
||||||
use(1)
|
use(1)
|
||||||
|
affecting.salve()
|
||||||
else
|
else
|
||||||
if (can_operate(H)) //Checks if mob is lying down on table for surgery
|
if (can_operate(H)) //Checks if mob is lying down on table for surgery
|
||||||
if (do_surgery(H,user,src))
|
if (do_surgery(H,user,src))
|
||||||
@@ -127,7 +152,7 @@
|
|||||||
singular_name = "advanced trauma kit"
|
singular_name = "advanced trauma kit"
|
||||||
desc = "An advanced trauma kit for severe injuries."
|
desc = "An advanced trauma kit for severe injuries."
|
||||||
icon_state = "traumakit"
|
icon_state = "traumakit"
|
||||||
heal_brute = 12
|
heal_brute = 0
|
||||||
origin_tech = list(TECH_BIO = 1)
|
origin_tech = list(TECH_BIO = 1)
|
||||||
|
|
||||||
/obj/item/stack/medical/advanced/bruise_pack/attack(mob/living/carbon/M as mob, mob/user as mob)
|
/obj/item/stack/medical/advanced/bruise_pack/attack(mob/living/carbon/M as mob, mob/user as mob)
|
||||||
@@ -139,29 +164,43 @@
|
|||||||
var/obj/item/organ/external/affecting = H.get_organ(user.zone_sel.selecting)
|
var/obj/item/organ/external/affecting = H.get_organ(user.zone_sel.selecting)
|
||||||
|
|
||||||
if(affecting.open == 0)
|
if(affecting.open == 0)
|
||||||
var/bandaged = affecting.bandage()
|
if(affecting.is_bandaged() && affecting.is_disinfected())
|
||||||
var/disinfected = affecting.disinfect()
|
|
||||||
|
|
||||||
if(!(bandaged || disinfected))
|
|
||||||
user << "<span class='warning'>The wounds on [M]'s [affecting.name] have already been treated.</span>"
|
user << "<span class='warning'>The wounds on [M]'s [affecting.name] have already been treated.</span>"
|
||||||
return 1
|
return 1
|
||||||
else
|
else
|
||||||
|
user.visible_message("<span class='notice'>\The [user] starts treating [M]'s [affecting.name].</span>", \
|
||||||
|
"<span class='notice'>You start treating [M]'s [affecting.name].</span>" )
|
||||||
|
var/used = 0
|
||||||
for (var/datum/wound/W in affecting.wounds)
|
for (var/datum/wound/W in affecting.wounds)
|
||||||
if (W.internal)
|
if (W.internal)
|
||||||
continue
|
continue
|
||||||
|
if (W.bandaged && W.disinfected)
|
||||||
|
continue
|
||||||
|
if(used == amount)
|
||||||
|
break
|
||||||
|
if(!do_mob(user, M, W.damage/5))
|
||||||
|
user << "<span class='notice'>You must stand still to bandage wounds.</span>"
|
||||||
|
break
|
||||||
if (W.current_stage <= W.max_bleeding_stage)
|
if (W.current_stage <= W.max_bleeding_stage)
|
||||||
user.visible_message("<span class='notice'>\The [user] cleans [W.desc] on [M]'s [affecting.name] and seals the edges with bioglue.</span>", \
|
user.visible_message("<span class='notice'>\The [user] cleans \a [W.desc] on [M]'s [affecting.name] and seals the edges with bioglue.</span>", \
|
||||||
"<span class='notice'>You clean and seal [W.desc] on [M]'s [affecting.name].</span>" )
|
"<span class='notice'>You clean and seal \a [W.desc] on [M]'s [affecting.name].</span>" )
|
||||||
//H.add_side_effect("Itch")
|
else if (W.damage_type == BRUISE)
|
||||||
else if (istype(W,/datum/wound/bruise))
|
user.visible_message("<span class='notice'>\The [user] places a medical patch over \a [W.desc] on [M]'s [affecting.name].</span>", \
|
||||||
user.visible_message("<span class='notice'>\The [user] places a medical patch over [W.desc] on [M]'s [affecting.name].</span>", \
|
"<span class='notice'>You place a medical patch over \a [W.desc] on [M]'s [affecting.name].</span>" )
|
||||||
"<span class='notice'>You place a medical patch over [W.desc] on [M]'s [affecting.name].</span>" )
|
|
||||||
else
|
else
|
||||||
user.visible_message("<span class='notice'>\The [user] smears some bioglue over [W.desc] on [M]'s [affecting.name].</span>", \
|
user.visible_message("<span class='notice'>\The [user] smears some bioglue over \a [W.desc] on [M]'s [affecting.name].</span>", \
|
||||||
"<span class='notice'>You smear some bioglue over [W.desc] on [M]'s [affecting.name].</span>" )
|
"<span class='notice'>You smear some bioglue over \a [W.desc] on [M]'s [affecting.name].</span>" )
|
||||||
if (bandaged)
|
W.bandage()
|
||||||
affecting.heal_damage(heal_brute,0)
|
W.disinfect()
|
||||||
use(1)
|
W.heal_damage(heal_brute)
|
||||||
|
used++
|
||||||
|
affecting.update_damages()
|
||||||
|
if(used == amount)
|
||||||
|
if(affecting.is_bandaged())
|
||||||
|
user << "<span class='warning'>\The [src] is used up.</span>"
|
||||||
|
else
|
||||||
|
user << "<span class='warning'>\The [src] is used up, but there are more wounds to treat on \the [affecting.name].</span>"
|
||||||
|
use(used)
|
||||||
else
|
else
|
||||||
if (can_operate(H)) //Checks if mob is lying down on table for surgery
|
if (can_operate(H)) //Checks if mob is lying down on table for surgery
|
||||||
if (do_surgery(H,user,src))
|
if (do_surgery(H,user,src))
|
||||||
@@ -174,7 +213,7 @@
|
|||||||
singular_name = "advanced burn kit"
|
singular_name = "advanced burn kit"
|
||||||
desc = "An advanced treatment kit for severe burns."
|
desc = "An advanced treatment kit for severe burns."
|
||||||
icon_state = "burnkit"
|
icon_state = "burnkit"
|
||||||
heal_burn = 12
|
heal_burn = 0
|
||||||
origin_tech = list(TECH_BIO = 1)
|
origin_tech = list(TECH_BIO = 1)
|
||||||
|
|
||||||
|
|
||||||
@@ -187,14 +226,20 @@
|
|||||||
var/obj/item/organ/external/affecting = H.get_organ(user.zone_sel.selecting)
|
var/obj/item/organ/external/affecting = H.get_organ(user.zone_sel.selecting)
|
||||||
|
|
||||||
if(affecting.open == 0)
|
if(affecting.open == 0)
|
||||||
if(!affecting.salve())
|
if(affecting.is_salved())
|
||||||
user << "<span class='warning'>The wounds on [M]'s [affecting.name] have already been salved.</span>"
|
user << "<span class='warning'>The wounds on [M]'s [affecting.name] have already been salved.</span>"
|
||||||
return 1
|
return 1
|
||||||
else
|
else
|
||||||
|
user.visible_message("<span class='notice'>\The [user] starts salving wounds on [M]'s [affecting.name].</span>", \
|
||||||
|
"<span class='notice'>You start salving the wounds on [M]'s [affecting.name].</span>" )
|
||||||
|
if(!do_mob(user, M, 10))
|
||||||
|
user << "<span class='notice'>You must stand still to salve wounds.</span>"
|
||||||
|
return 1
|
||||||
user.visible_message( "<span class='notice'>[user] covers wounds on [M]'s [affecting.name] with regenerative membrane.</span>", \
|
user.visible_message( "<span class='notice'>[user] covers wounds on [M]'s [affecting.name] with regenerative membrane.</span>", \
|
||||||
"<span class='notice'>You cover wounds on [M]'s [affecting.name] with regenerative membrane.</span>" )
|
"<span class='notice'>You cover wounds on [M]'s [affecting.name] with regenerative membrane.</span>" )
|
||||||
affecting.heal_damage(0,heal_burn)
|
affecting.heal_damage(0,heal_burn)
|
||||||
use(1)
|
use(1)
|
||||||
|
affecting.salve()
|
||||||
else
|
else
|
||||||
if (can_operate(H)) //Checks if mob is lying down on table for surgery
|
if (can_operate(H)) //Checks if mob is lying down on table for surgery
|
||||||
if (do_surgery(H,user,src))
|
if (do_surgery(H,user,src))
|
||||||
|
|||||||
@@ -68,6 +68,7 @@
|
|||||||
icon_state = "emag"
|
icon_state = "emag"
|
||||||
item_state = "card-id"
|
item_state = "card-id"
|
||||||
origin_tech = list(TECH_MAGNET = 2, TECH_ILLEGAL = 2)
|
origin_tech = list(TECH_MAGNET = 2, TECH_ILLEGAL = 2)
|
||||||
|
var/default_uses = 10
|
||||||
var/uses = 10
|
var/uses = 10
|
||||||
|
|
||||||
/obj/item/weapon/card/emag/resolve_attackby(atom/A, mob/user)
|
/obj/item/weapon/card/emag/resolve_attackby(atom/A, mob/user)
|
||||||
@@ -87,6 +88,12 @@
|
|||||||
qdel(src)
|
qdel(src)
|
||||||
|
|
||||||
return 1
|
return 1
|
||||||
|
/obj/item/weapon/card/emag/attackby(obj/item/O as obj, mob/user as mob)
|
||||||
|
if(istype(O, /obj/item/device/telecrystal))
|
||||||
|
src.uses += default_uses/2 //Adds half the default amount of uses which is more than you get per TC when buying, as to balance the utility of having multiple emags vs one heavily usable one
|
||||||
|
usr << "<span class='notice'>You add \the [O] to \the [src]. Increasing the uses of \the [src] to [uses].</span>"
|
||||||
|
qdel(O)
|
||||||
|
|
||||||
|
|
||||||
/obj/item/weapon/card/id
|
/obj/item/weapon/card/id
|
||||||
name = "identification card"
|
name = "identification card"
|
||||||
|
|||||||
@@ -36,6 +36,12 @@
|
|||||||
board_type = "atm"
|
board_type = "atm"
|
||||||
matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
|
matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
|
||||||
|
|
||||||
|
/obj/item/weapon/circuitboard/request
|
||||||
|
name = T_BOARD("reques console")
|
||||||
|
build_path = /obj/machinery/requests_console
|
||||||
|
board_type = "request"
|
||||||
|
matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
|
||||||
|
|
||||||
//Alarm
|
//Alarm
|
||||||
|
|
||||||
/obj/item/weapon/circuitboard/firealarm
|
/obj/item/weapon/circuitboard/firealarm
|
||||||
@@ -70,6 +76,18 @@
|
|||||||
board_type = "holopad"
|
board_type = "holopad"
|
||||||
matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
|
matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
|
||||||
|
|
||||||
|
/obj/item/weapon/circuitboard/scanner_console
|
||||||
|
name = T_BOARD("body scanner console")
|
||||||
|
build_path = /obj/machinery/body_scanconsole
|
||||||
|
board_type = "console"
|
||||||
|
origin_tech = list(TECH_MAGNET = 2, TECH_BIO = 2)
|
||||||
|
|
||||||
|
/obj/item/weapon/circuitboard/sleeper_console
|
||||||
|
name = T_BOARD("sleeper console")
|
||||||
|
build_path = /obj/machinery/sleep_console
|
||||||
|
board_type = "console"
|
||||||
|
origin_tech = list(TECH_MAGNET = 2, TECH_BIO = 2)
|
||||||
|
|
||||||
//Machine
|
//Machine
|
||||||
|
|
||||||
/obj/item/weapon/circuitboard/photocopier
|
/obj/item/weapon/circuitboard/photocopier
|
||||||
@@ -78,10 +96,10 @@
|
|||||||
board_type = "photocopier"
|
board_type = "photocopier"
|
||||||
matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
|
matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
|
||||||
req_components = list(
|
req_components = list(
|
||||||
"/obj/item/weapon/stock_parts/scanning_module" = 1,
|
/obj/item/weapon/stock_parts/scanning_module = 1,
|
||||||
"/obj/item/weapon/stock_parts/motor" = 1,
|
/obj/item/weapon/stock_parts/motor = 1,
|
||||||
"/obj/item/weapon/stock_parts/micro_laser" = 1,
|
/obj/item/weapon/stock_parts/micro_laser = 1,
|
||||||
"/obj/item/weapon/stock_parts/matter_bin" = 1)
|
/obj/item/weapon/stock_parts/matter_bin = 1)
|
||||||
|
|
||||||
/obj/item/weapon/circuitboard/fax
|
/obj/item/weapon/circuitboard/fax
|
||||||
name = T_BOARD("fax")
|
name = T_BOARD("fax")
|
||||||
@@ -89,19 +107,19 @@
|
|||||||
board_type = "fax"
|
board_type = "fax"
|
||||||
matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
|
matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
|
||||||
req_components = list(
|
req_components = list(
|
||||||
"/obj/item/weapon/stock_parts/scanning_module" = 1,
|
/obj/item/weapon/stock_parts/scanning_module = 1,
|
||||||
"/obj/item/weapon/stock_parts/motor" = 1,
|
/obj/item/weapon/stock_parts/motor = 1,
|
||||||
"/obj/item/weapon/stock_parts/micro_laser" = 1,
|
/obj/item/weapon/stock_parts/micro_laser = 1,
|
||||||
"/obj/item/weapon/stock_parts/matter_bin" = 1)
|
/obj/item/weapon/stock_parts/matter_bin = 1)
|
||||||
|
|
||||||
/obj/item/weapon/circuitboard/conveyor
|
/obj/item/weapon/circuitboard/conveyor
|
||||||
name = T_BOARD("conveyor")
|
name = T_BOARD("conveyor")
|
||||||
build_path = /obj/machinery/conveyor
|
build_path = /obj/machinery/conveyor
|
||||||
board_type = "conveyor"
|
board_type = "conveyor"
|
||||||
req_components = list(
|
req_components = list(
|
||||||
"/obj/item/weapon/stock_parts/gear" = 2,
|
/obj/item/weapon/stock_parts/gear = 2,
|
||||||
"/obj/item/weapon/stock_parts/motor" = 2,
|
/obj/item/weapon/stock_parts/motor = 2,
|
||||||
"/obj/item/stack/cable_coil" = 5)
|
/obj/item/stack/cable_coil = 5)
|
||||||
|
|
||||||
/obj/item/weapon/circuitboard/microwave
|
/obj/item/weapon/circuitboard/microwave
|
||||||
name = T_BOARD("microwave")
|
name = T_BOARD("microwave")
|
||||||
@@ -109,29 +127,17 @@
|
|||||||
board_type = "microwave"
|
board_type = "microwave"
|
||||||
matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
|
matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
|
||||||
req_components = list(
|
req_components = list(
|
||||||
"/obj/item/weapon/stock_parts/console_screen" = 1,
|
/obj/item/weapon/stock_parts/console_screen = 1,
|
||||||
"/obj/item/weapon/stock_parts/motor" = 1,
|
/obj/item/weapon/stock_parts/motor = 1,
|
||||||
"/obj/item/weapon/stock_parts/capacitor" = 1)
|
/obj/item/weapon/stock_parts/capacitor = 1)
|
||||||
|
|
||||||
/obj/item/weapon/circuitboard/vending
|
|
||||||
name = T_BOARD("vending")
|
|
||||||
build_path = /obj/machinery/vending
|
|
||||||
board_type = "vending"
|
|
||||||
matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
|
|
||||||
req_components = list(
|
|
||||||
"/obj/item/weapon/stock_parts/console_screen" = 1,
|
|
||||||
"/obj/item/weapon/stock_parts/motor" = 2,
|
|
||||||
"/obj/item/weapon/stock_parts/spring" = 2,
|
|
||||||
"/obj/item/stack/material/glass/reinforced" = 2)
|
|
||||||
|
|
||||||
/obj/item/weapon/circuitboard/recharger
|
/obj/item/weapon/circuitboard/recharger
|
||||||
name = T_BOARD("recharger")
|
name = T_BOARD("recharger")
|
||||||
build_path = /obj/machinery/recharger
|
build_path = /obj/machinery/recharger
|
||||||
board_type = "recharger"
|
board_type = "recharger"
|
||||||
matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
|
|
||||||
req_components = list(
|
req_components = list(
|
||||||
"/obj/item/weapon/stock_parts/capacitor" = 1,
|
/obj/item/weapon/stock_parts/capacitor = 1,
|
||||||
"/obj/item/stack/cable_coil" = 5)
|
/obj/item/stack/cable_coil = 5)
|
||||||
|
|
||||||
/obj/item/weapon/circuitboard/recharger/wrecharger
|
/obj/item/weapon/circuitboard/recharger/wrecharger
|
||||||
name = T_BOARD("wall recharger")
|
name = T_BOARD("wall recharger")
|
||||||
@@ -144,18 +150,78 @@
|
|||||||
board_type = "washing"
|
board_type = "washing"
|
||||||
matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
|
matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
|
||||||
req_components = list(
|
req_components = list(
|
||||||
"/obj/item/weapon/stock_parts/motor" = 1,
|
/obj/item/weapon/stock_parts/motor = 1,
|
||||||
"/obj/item/weapon/stock_parts/gear" = 2)
|
/obj/item/weapon/stock_parts/gear = 2)
|
||||||
|
|
||||||
/obj/item/weapon/circuitboard/grinder
|
/obj/item/weapon/circuitboard/grinder
|
||||||
name = T_BOARD("reagent grinder")
|
name = T_BOARD("reagent grinder")
|
||||||
build_path = /obj/machinery/reagentgrinder
|
build_path = /obj/machinery/reagentgrinder
|
||||||
board_type = "grinder"
|
board_type = "grinder"
|
||||||
matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
|
|
||||||
req_components = list(
|
req_components = list(
|
||||||
"/obj/item/weapon/stock_parts/motor" = 1,
|
/obj/item/weapon/stock_parts/motor = 1,
|
||||||
"/obj/item/weapon/stock_parts/gear" = 1,
|
/obj/item/weapon/stock_parts/gear = 1,
|
||||||
"/obj/item/weapon/reagent_containers/glass/beaker/large" = 1)
|
/obj/item/weapon/reagent_containers/glass/beaker/large = 1)
|
||||||
|
|
||||||
|
/obj/item/weapon/circuitboard/teleporter_hub
|
||||||
|
name = T_BOARD("teleporter hub")
|
||||||
|
build_path = /obj/machinery/teleport/hub
|
||||||
|
board_type = "teleporter_hub"
|
||||||
|
// origin_tech = list(TECH_DATA = 2, TECH_BLUESPACE = 4)
|
||||||
|
req_components = list(
|
||||||
|
/obj/item/weapon/stock_parts/scanning_module = 4,
|
||||||
|
/obj/item/weapon/stock_parts/micro_laser = 4,
|
||||||
|
/obj/item/stack/cable_coil = 10)
|
||||||
|
|
||||||
|
/obj/item/weapon/circuitboard/teleporter_station
|
||||||
|
name = T_BOARD("teleporter station")
|
||||||
|
build_path = /obj/machinery/teleport/station
|
||||||
|
board_type = "teleporter_station"
|
||||||
|
// origin_tech = list(TECH_DATA = 2, TECH_BLUESPACE = 3)
|
||||||
|
req_components = list(
|
||||||
|
/obj/item/weapon/stock_parts/console_screen = 1,
|
||||||
|
/obj/item/weapon/stock_parts/capacitor = 2,
|
||||||
|
/obj/item/stack/cable_coil = 10)
|
||||||
|
|
||||||
|
/obj/item/weapon/circuitboard/body_scanner
|
||||||
|
name = T_BOARD("body scanner")
|
||||||
|
build_path = /obj/machinery/bodyscanner
|
||||||
|
board_type = "medpod"
|
||||||
|
origin_tech = list(TECH_MAGNET = 2, TECH_BIO = 2)
|
||||||
|
req_components = list(
|
||||||
|
/obj/item/weapon/stock_parts/scanning_module = 3,
|
||||||
|
/obj/item/stack/material/glass/reinforced = 2)
|
||||||
|
|
||||||
|
/obj/item/weapon/circuitboard/sleeper
|
||||||
|
name = T_BOARD("sleeper")
|
||||||
|
build_path = /obj/machinery/sleeper
|
||||||
|
board_type = "medpod"
|
||||||
|
origin_tech = list(TECH_MAGNET = 2, TECH_BIO = 2)
|
||||||
|
req_components = list(
|
||||||
|
/obj/item/weapon/stock_parts/scanning_module = 1,
|
||||||
|
/obj/item/weapon/reagent_containers/glass/beaker = 3,
|
||||||
|
/obj/item/weapon/reagent_containers/syringe = 3,
|
||||||
|
/obj/item/stack/material/glass/reinforced = 2)
|
||||||
|
|
||||||
|
/obj/item/weapon/circuitboard/dna_analyzer
|
||||||
|
name = T_BOARD("dna analyzer")
|
||||||
|
build_path = /obj/machinery/dnaforensics
|
||||||
|
board_type = "dna_analyzer"
|
||||||
|
origin_tech = list(TECH_MAGNET = 4, TECH_BIO = 2, TECH_DATA = 2)
|
||||||
|
req_components = list(
|
||||||
|
/obj/item/weapon/stock_parts/scanning_module = 2,
|
||||||
|
/obj/item/weapon/stock_parts/micro_laser = 1,
|
||||||
|
/obj/item/weapon/stock_parts/console_screen = 1)
|
||||||
|
|
||||||
|
/obj/item/weapon/circuitboard/mass_driver
|
||||||
|
name = T_BOARD("mass driver")
|
||||||
|
build_path = /obj/machinery/mass_driver
|
||||||
|
board_type = "massdriver"
|
||||||
|
req_components = list(
|
||||||
|
/obj/item/weapon/stock_parts/gear = 2,
|
||||||
|
/obj/item/weapon/stock_parts/motor = 2,
|
||||||
|
/obj/item/weapon/stock_parts/capacitor = 1,
|
||||||
|
/obj/item/weapon/stock_parts/spring = 1,
|
||||||
|
/obj/item/stack/cable_coil = 5)
|
||||||
|
|
||||||
//for testing - If this is still in when I commit, someone shoot me. --leaving in for now, shouldn't be able to get these on station anyways.
|
//for testing - If this is still in when I commit, someone shoot me. --leaving in for now, shouldn't be able to get these on station anyways.
|
||||||
/obj/item/weapon/storage/box/frame_parts
|
/obj/item/weapon/storage/box/frame_parts
|
||||||
@@ -175,7 +241,6 @@
|
|||||||
new /obj/item/weapon/circuitboard/photocopier( src )
|
new /obj/item/weapon/circuitboard/photocopier( src )
|
||||||
new /obj/item/weapon/circuitboard/fax( src )
|
new /obj/item/weapon/circuitboard/fax( src )
|
||||||
new /obj/item/weapon/circuitboard/microwave( src )
|
new /obj/item/weapon/circuitboard/microwave( src )
|
||||||
new /obj/item/weapon/circuitboard/vending( src )
|
|
||||||
new /obj/item/weapon/circuitboard/washing( src )
|
new /obj/item/weapon/circuitboard/washing( src )
|
||||||
new /obj/item/weapon/stock_parts/scanning_module( src )
|
new /obj/item/weapon/stock_parts/scanning_module( src )
|
||||||
new /obj/item/weapon/stock_parts/motor( src )
|
new /obj/item/weapon/stock_parts/motor( src )
|
||||||
|
|||||||
@@ -8,5 +8,5 @@
|
|||||||
board_type = "machine"
|
board_type = "machine"
|
||||||
origin_tech = list(TECH_DATA = 2)
|
origin_tech = list(TECH_DATA = 2)
|
||||||
req_components = list(
|
req_components = list(
|
||||||
"/obj/item/weapon/stock_parts/matter_bin" = 1,
|
/obj/item/weapon/stock_parts/matter_bin = 1,
|
||||||
"/obj/item/weapon/stock_parts/manipulator" = 1)
|
/obj/item/weapon/stock_parts/manipulator = 1)
|
||||||
@@ -8,10 +8,10 @@
|
|||||||
board_type = "machine"
|
board_type = "machine"
|
||||||
origin_tech = list(TECH_DATA = 3, TECH_BIO = 3)
|
origin_tech = list(TECH_DATA = 3, TECH_BIO = 3)
|
||||||
req_components = list(
|
req_components = list(
|
||||||
"/obj/item/stack/cable_coil" = 2,
|
/obj/item/stack/cable_coil = 2,
|
||||||
"/obj/item/weapon/stock_parts/scanning_module" = 2,
|
/obj/item/weapon/stock_parts/scanning_module = 2,
|
||||||
"/obj/item/weapon/stock_parts/manipulator" = 2,
|
/obj/item/weapon/stock_parts/manipulator = 2,
|
||||||
"/obj/item/weapon/stock_parts/console_screen" = 1)
|
/obj/item/weapon/stock_parts/console_screen = 1)
|
||||||
|
|
||||||
/obj/item/weapon/circuitboard/clonescanner
|
/obj/item/weapon/circuitboard/clonescanner
|
||||||
name = T_BOARD("cloning scanner")
|
name = T_BOARD("cloning scanner")
|
||||||
@@ -19,8 +19,8 @@
|
|||||||
board_type = "machine"
|
board_type = "machine"
|
||||||
origin_tech = list(TECH_DATA = 2, TECH_BIO = 2)
|
origin_tech = list(TECH_DATA = 2, TECH_BIO = 2)
|
||||||
req_components = list(
|
req_components = list(
|
||||||
"/obj/item/weapon/stock_parts/scanning_module" = 1,
|
/obj/item/weapon/stock_parts/scanning_module = 1,
|
||||||
"/obj/item/weapon/stock_parts/manipulator" = 1,
|
/obj/item/weapon/stock_parts/manipulator = 1,
|
||||||
"/obj/item/weapon/stock_parts/micro_laser" = 1,
|
/obj/item/weapon/stock_parts/micro_laser = 1,
|
||||||
"/obj/item/weapon/stock_parts/console_screen" = 1,
|
/obj/item/weapon/stock_parts/console_screen = 1,
|
||||||
"/obj/item/stack/cable_coil" = 2)
|
/obj/item/stack/cable_coil = 2)
|
||||||
|
|||||||
@@ -8,6 +8,6 @@
|
|||||||
board_type = "machine"
|
board_type = "machine"
|
||||||
origin_tech = list(TECH_DATA = 2, TECH_POWER = 2, TECH_ENGINEERING = 2)
|
origin_tech = list(TECH_DATA = 2, TECH_POWER = 2, TECH_ENGINEERING = 2)
|
||||||
req_components = list(
|
req_components = list(
|
||||||
"/obj/item/weapon/stock_parts/capacitor" = 2,
|
/obj/item/weapon/stock_parts/capacitor = 2,
|
||||||
"/obj/item/weapon/stock_parts/scanning_module" = 1,
|
/obj/item/weapon/stock_parts/scanning_module = 1,
|
||||||
"/obj/item/weapon/stock_parts/manipulator" = 2)
|
/obj/item/weapon/stock_parts/manipulator = 2)
|
||||||
@@ -8,10 +8,10 @@
|
|||||||
board_type = "machine"
|
board_type = "machine"
|
||||||
origin_tech = list(TECH_DATA = 1, TECH_ENGINEERING = 1)
|
origin_tech = list(TECH_DATA = 1, TECH_ENGINEERING = 1)
|
||||||
req_components = list(
|
req_components = list(
|
||||||
"/obj/item/weapon/stock_parts/capacitor" = 1,
|
/obj/item/weapon/stock_parts/capacitor = 1,
|
||||||
"/obj/item/weapon/cell" = 1,
|
/obj/item/weapon/cell = 1,
|
||||||
"/obj/item/weapon/stock_parts/matter_bin" = 1,
|
/obj/item/weapon/stock_parts/matter_bin = 1,
|
||||||
"/obj/item/weapon/stock_parts/micro_laser" = 1)
|
/obj/item/weapon/stock_parts/micro_laser = 1)
|
||||||
|
|
||||||
/obj/item/weapon/circuitboard/miningdrillbrace
|
/obj/item/weapon/circuitboard/miningdrillbrace
|
||||||
name = T_BOARD("mining drill brace")
|
name = T_BOARD("mining drill brace")
|
||||||
|
|||||||
@@ -8,10 +8,10 @@
|
|||||||
board_type = "machine"
|
board_type = "machine"
|
||||||
origin_tech = list(TECH_DATA = 3, TECH_POWER = 3, TECH_PHORON = 3, TECH_ENGINEERING = 3)
|
origin_tech = list(TECH_DATA = 3, TECH_POWER = 3, TECH_PHORON = 3, TECH_ENGINEERING = 3)
|
||||||
req_components = list(
|
req_components = list(
|
||||||
"/obj/item/weapon/stock_parts/matter_bin" = 1,
|
/obj/item/weapon/stock_parts/matter_bin = 1,
|
||||||
"/obj/item/weapon/stock_parts/micro_laser" = 1,
|
/obj/item/weapon/stock_parts/micro_laser = 1,
|
||||||
"/obj/item/stack/cable_coil" = 2,
|
/obj/item/stack/cable_coil = 2,
|
||||||
"/obj/item/weapon/stock_parts/capacitor" = 1)
|
/obj/item/weapon/stock_parts/capacitor = 1)
|
||||||
|
|
||||||
/obj/item/weapon/circuitboard/pacman/super
|
/obj/item/weapon/circuitboard/pacman/super
|
||||||
name = T_BOARD("SUPERPACMAN-type generator")
|
name = T_BOARD("SUPERPACMAN-type generator")
|
||||||
|
|||||||
@@ -7,18 +7,18 @@
|
|||||||
build_path = "/obj/machinery/power/smes/buildable"
|
build_path = "/obj/machinery/power/smes/buildable"
|
||||||
board_type = "machine"
|
board_type = "machine"
|
||||||
origin_tech = list(TECH_POWER = 6, TECH_ENGINEERING = 4)
|
origin_tech = list(TECH_POWER = 6, TECH_ENGINEERING = 4)
|
||||||
req_components = list("/obj/item/weapon/smes_coil" = 1, "/obj/item/stack/cable_coil" = 30)
|
req_components = list(/obj/item/weapon/smes_coil = 1, /obj/item/stack/cable_coil = 30)
|
||||||
|
|
||||||
/obj/item/weapon/circuitboard/batteryrack
|
/obj/item/weapon/circuitboard/batteryrack
|
||||||
name = T_BOARD("battery rack PSU")
|
name = T_BOARD("battery rack PSU")
|
||||||
build_path = "/obj/machinery/power/smes/batteryrack"
|
build_path = "/obj/machinery/power/smes/batteryrack"
|
||||||
board_type = "machine"
|
board_type = "machine"
|
||||||
origin_tech = list(TECH_POWER = 3, TECH_ENGINEERING = 2)
|
origin_tech = list(TECH_POWER = 3, TECH_ENGINEERING = 2)
|
||||||
req_components = list("/obj/item/weapon/cell" = 3)
|
req_components = list(/obj/item/weapon/cell = 3)
|
||||||
|
|
||||||
/obj/item/weapon/circuitboard/ghettosmes
|
/obj/item/weapon/circuitboard/ghettosmes
|
||||||
name = T_BOARD("makeshift PSU")
|
name = T_BOARD("makeshift PSU")
|
||||||
desc = "An APC circuit repurposed into some power storage device controller"
|
desc = "An APC circuit repurposed into some power storage device controller"
|
||||||
build_path = "/obj/machinery/power/smes/batteryrack/makeshift"
|
build_path = "/obj/machinery/power/smes/batteryrack/makeshift"
|
||||||
board_type = "machine"
|
board_type = "machine"
|
||||||
req_components = list("/obj/item/weapon/cell" = 3)
|
req_components = list(/obj/item/weapon/cell = 3)
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
board_type = "machine"
|
board_type = "machine"
|
||||||
origin_tech = list(TECH_DATA = 3, TECH_ENGINEERING = 3)
|
origin_tech = list(TECH_DATA = 3, TECH_ENGINEERING = 3)
|
||||||
req_components = list(
|
req_components = list(
|
||||||
"/obj/item/stack/cable_coil" = 5,
|
/obj/item/stack/cable_coil = 5,
|
||||||
"/obj/item/weapon/stock_parts/capacitor" = 2,
|
/obj/item/weapon/stock_parts/capacitor = 2,
|
||||||
"/obj/item/weapon/stock_parts/manipulator" = 2,
|
/obj/item/weapon/stock_parts/manipulator = 2,
|
||||||
"/obj/item/weapon/cell" = 1)
|
/obj/item/weapon/cell = 1)
|
||||||
@@ -8,8 +8,8 @@ obj/item/weapon/circuitboard/rdserver
|
|||||||
board_type = "machine"
|
board_type = "machine"
|
||||||
origin_tech = list(TECH_DATA = 3)
|
origin_tech = list(TECH_DATA = 3)
|
||||||
req_components = list(
|
req_components = list(
|
||||||
"/obj/item/stack/cable_coil" = 2,
|
/obj/item/stack/cable_coil = 2,
|
||||||
"/obj/item/weapon/stock_parts/scanning_module" = 1)
|
/obj/item/weapon/stock_parts/scanning_module = 1)
|
||||||
|
|
||||||
/obj/item/weapon/circuitboard/destructive_analyzer
|
/obj/item/weapon/circuitboard/destructive_analyzer
|
||||||
name = T_BOARD("destructive analyzer")
|
name = T_BOARD("destructive analyzer")
|
||||||
@@ -17,9 +17,9 @@ obj/item/weapon/circuitboard/rdserver
|
|||||||
board_type = "machine"
|
board_type = "machine"
|
||||||
origin_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 2, TECH_DATA = 2)
|
origin_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 2, TECH_DATA = 2)
|
||||||
req_components = list(
|
req_components = list(
|
||||||
"/obj/item/weapon/stock_parts/scanning_module" = 1,
|
/obj/item/weapon/stock_parts/scanning_module = 1,
|
||||||
"/obj/item/weapon/stock_parts/manipulator" = 1,
|
/obj/item/weapon/stock_parts/manipulator = 1,
|
||||||
"/obj/item/weapon/stock_parts/micro_laser" = 1)
|
/obj/item/weapon/stock_parts/micro_laser = 1)
|
||||||
|
|
||||||
/obj/item/weapon/circuitboard/autolathe
|
/obj/item/weapon/circuitboard/autolathe
|
||||||
name = T_BOARD("autolathe")
|
name = T_BOARD("autolathe")
|
||||||
@@ -27,9 +27,9 @@ obj/item/weapon/circuitboard/rdserver
|
|||||||
board_type = "machine"
|
board_type = "machine"
|
||||||
origin_tech = list(TECH_ENGINEERING = 2, TECH_DATA = 2)
|
origin_tech = list(TECH_ENGINEERING = 2, TECH_DATA = 2)
|
||||||
req_components = list(
|
req_components = list(
|
||||||
"/obj/item/weapon/stock_parts/matter_bin" = 3,
|
/obj/item/weapon/stock_parts/matter_bin = 3,
|
||||||
"/obj/item/weapon/stock_parts/manipulator" = 1,
|
/obj/item/weapon/stock_parts/manipulator = 1,
|
||||||
"/obj/item/weapon/stock_parts/console_screen" = 1)
|
/obj/item/weapon/stock_parts/console_screen = 1)
|
||||||
|
|
||||||
/obj/item/weapon/circuitboard/protolathe
|
/obj/item/weapon/circuitboard/protolathe
|
||||||
name = T_BOARD("protolathe")
|
name = T_BOARD("protolathe")
|
||||||
@@ -37,10 +37,9 @@ obj/item/weapon/circuitboard/rdserver
|
|||||||
board_type = "machine"
|
board_type = "machine"
|
||||||
origin_tech = list(TECH_ENGINEERING = 2, TECH_DATA = 2)
|
origin_tech = list(TECH_ENGINEERING = 2, TECH_DATA = 2)
|
||||||
req_components = list(
|
req_components = list(
|
||||||
"/obj/item/weapon/stock_parts/matter_bin" = 2,
|
/obj/item/weapon/stock_parts/matter_bin = 2,
|
||||||
"/obj/item/weapon/stock_parts/manipulator" = 2,
|
/obj/item/weapon/stock_parts/manipulator = 2,
|
||||||
"/obj/item/weapon/reagent_containers/glass/beaker" = 2)
|
/obj/item/weapon/reagent_containers/glass/beaker = 2)
|
||||||
|
|
||||||
|
|
||||||
/obj/item/weapon/circuitboard/circuit_imprinter
|
/obj/item/weapon/circuitboard/circuit_imprinter
|
||||||
name = T_BOARD("circuit imprinter")
|
name = T_BOARD("circuit imprinter")
|
||||||
@@ -48,9 +47,9 @@ obj/item/weapon/circuitboard/rdserver
|
|||||||
board_type = "machine"
|
board_type = "machine"
|
||||||
origin_tech = list(TECH_ENGINEERING = 2, TECH_DATA = 2)
|
origin_tech = list(TECH_ENGINEERING = 2, TECH_DATA = 2)
|
||||||
req_components = list(
|
req_components = list(
|
||||||
"/obj/item/weapon/stock_parts/matter_bin" = 1,
|
/obj/item/weapon/stock_parts/matter_bin = 1,
|
||||||
"/obj/item/weapon/stock_parts/manipulator" = 1,
|
/obj/item/weapon/stock_parts/manipulator = 1,
|
||||||
"/obj/item/weapon/reagent_containers/glass/beaker" = 2)
|
/obj/item/weapon/reagent_containers/glass/beaker = 2)
|
||||||
|
|
||||||
/obj/item/weapon/circuitboard/mechfab
|
/obj/item/weapon/circuitboard/mechfab
|
||||||
name = "Circuit board (Exosuit Fabricator)"
|
name = "Circuit board (Exosuit Fabricator)"
|
||||||
@@ -58,7 +57,7 @@ obj/item/weapon/circuitboard/rdserver
|
|||||||
board_type = "machine"
|
board_type = "machine"
|
||||||
origin_tech = list(TECH_DATA = 3, TECH_ENGINEERING = 3)
|
origin_tech = list(TECH_DATA = 3, TECH_ENGINEERING = 3)
|
||||||
req_components = list(
|
req_components = list(
|
||||||
"/obj/item/weapon/stock_parts/matter_bin" = 2,
|
/obj/item/weapon/stock_parts/matter_bin = 2,
|
||||||
"/obj/item/weapon/stock_parts/manipulator" = 1,
|
/obj/item/weapon/stock_parts/manipulator = 1,
|
||||||
"/obj/item/weapon/stock_parts/micro_laser" = 1,
|
/obj/item/weapon/stock_parts/micro_laser = 1,
|
||||||
"/obj/item/weapon/stock_parts/console_screen" = 1)
|
/obj/item/weapon/stock_parts/console_screen = 1)
|
||||||
|
|||||||
@@ -8,12 +8,12 @@
|
|||||||
build_path = "/obj/machinery/shield_gen/external"
|
build_path = "/obj/machinery/shield_gen/external"
|
||||||
origin_tech = list(TECH_BLUESPACE = 4, TECH_PHORON = 3)
|
origin_tech = list(TECH_BLUESPACE = 4, TECH_PHORON = 3)
|
||||||
req_components = list(
|
req_components = list(
|
||||||
"/obj/item/weapon/stock_parts/manipulator/pico" = 2,
|
/obj/item/weapon/stock_parts/manipulator/pico = 2,
|
||||||
"/obj/item/weapon/stock_parts/subspace/transmitter" = 1,
|
/obj/item/weapon/stock_parts/subspace/transmitter = 1,
|
||||||
"/obj/item/weapon/stock_parts/subspace/crystal" = 1,
|
/obj/item/weapon/stock_parts/subspace/crystal = 1,
|
||||||
"/obj/item/weapon/stock_parts/subspace/amplifier" = 1,
|
/obj/item/weapon/stock_parts/subspace/amplifier = 1,
|
||||||
"/obj/item/weapon/stock_parts/console_screen" = 1,
|
/obj/item/weapon/stock_parts/console_screen = 1,
|
||||||
"/obj/item/stack/cable_coil" = 5)
|
/obj/item/stack/cable_coil = 5)
|
||||||
|
|
||||||
/obj/item/weapon/circuitboard/shield_gen
|
/obj/item/weapon/circuitboard/shield_gen
|
||||||
name = T_BOARD("bubble shield generator")
|
name = T_BOARD("bubble shield generator")
|
||||||
@@ -21,12 +21,12 @@
|
|||||||
build_path = "/obj/machinery/shield_gen"
|
build_path = "/obj/machinery/shield_gen"
|
||||||
origin_tech = list(TECH_BLUESPACE = 4, TECH_PHORON = 3)
|
origin_tech = list(TECH_BLUESPACE = 4, TECH_PHORON = 3)
|
||||||
req_components = list(
|
req_components = list(
|
||||||
"/obj/item/weapon/stock_parts/manipulator/pico" = 2,
|
/obj/item/weapon/stock_parts/manipulator/pico = 2,
|
||||||
"/obj/item/weapon/stock_parts/subspace/transmitter" = 1,
|
/obj/item/weapon/stock_parts/subspace/transmitter = 1,
|
||||||
"/obj/item/weapon/stock_parts/subspace/crystal" = 1,
|
/obj/item/weapon/stock_parts/subspace/crystal = 1,
|
||||||
"/obj/item/weapon/stock_parts/subspace/amplifier" = 1,
|
/obj/item/weapon/stock_parts/subspace/amplifier = 1,
|
||||||
"/obj/item/weapon/stock_parts/console_screen" = 1,
|
/obj/item/weapon/stock_parts/console_screen = 1,
|
||||||
"/obj/item/stack/cable_coil" = 5)
|
/obj/item/stack/cable_coil = 5)
|
||||||
|
|
||||||
/obj/item/weapon/circuitboard/shield_cap
|
/obj/item/weapon/circuitboard/shield_cap
|
||||||
name = T_BOARD("shield capacitor")
|
name = T_BOARD("shield capacitor")
|
||||||
@@ -34,9 +34,9 @@
|
|||||||
build_path = "/obj/machinery/shield_capacitor"
|
build_path = "/obj/machinery/shield_capacitor"
|
||||||
origin_tech = list(TECH_MAGNET = 3, TECH_POWER = 4)
|
origin_tech = list(TECH_MAGNET = 3, TECH_POWER = 4)
|
||||||
req_components = list(
|
req_components = list(
|
||||||
"/obj/item/weapon/stock_parts/manipulator/pico" = 2,
|
/obj/item/weapon/stock_parts/manipulator/pico = 2,
|
||||||
"/obj/item/weapon/stock_parts/subspace/filter" = 1,
|
/obj/item/weapon/stock_parts/subspace/filter = 1,
|
||||||
"/obj/item/weapon/stock_parts/subspace/treatment" = 1,
|
/obj/item/weapon/stock_parts/subspace/treatment = 1,
|
||||||
"/obj/item/weapon/stock_parts/subspace/analyzer" = 1,
|
/obj/item/weapon/stock_parts/subspace/analyzer = 1,
|
||||||
"/obj/item/weapon/stock_parts/console_screen" = 1,
|
/obj/item/weapon/stock_parts/console_screen = 1,
|
||||||
"/obj/item/stack/cable_coil" = 5)
|
/obj/item/stack/cable_coil = 5)
|
||||||
|
|||||||
@@ -10,69 +10,69 @@
|
|||||||
build_path = "/obj/machinery/telecomms/receiver"
|
build_path = "/obj/machinery/telecomms/receiver"
|
||||||
origin_tech = list(TECH_DATA = 4, TECH_ENGINEERING = 3, TECH_BLUESPACE = 2)
|
origin_tech = list(TECH_DATA = 4, TECH_ENGINEERING = 3, TECH_BLUESPACE = 2)
|
||||||
req_components = list(
|
req_components = list(
|
||||||
"/obj/item/weapon/stock_parts/subspace/ansible" = 1,
|
/obj/item/weapon/stock_parts/subspace/ansible = 1,
|
||||||
"/obj/item/weapon/stock_parts/subspace/filter" = 1,
|
/obj/item/weapon/stock_parts/subspace/filter = 1,
|
||||||
"/obj/item/weapon/stock_parts/manipulator" = 2,
|
/obj/item/weapon/stock_parts/manipulator = 2,
|
||||||
"/obj/item/weapon/stock_parts/micro_laser" = 1)
|
/obj/item/weapon/stock_parts/micro_laser = 1)
|
||||||
|
|
||||||
/obj/item/weapon/circuitboard/telecomms/hub
|
/obj/item/weapon/circuitboard/telecomms/hub
|
||||||
name = T_BOARD("hub mainframe")
|
name = T_BOARD("hub mainframe")
|
||||||
build_path = "/obj/machinery/telecomms/hub"
|
build_path = "/obj/machinery/telecomms/hub"
|
||||||
origin_tech = list(TECH_DATA = 4, TECH_ENGINEERING = 4)
|
origin_tech = list(TECH_DATA = 4, TECH_ENGINEERING = 4)
|
||||||
req_components = list(
|
req_components = list(
|
||||||
"/obj/item/weapon/stock_parts/manipulator" = 2,
|
/obj/item/weapon/stock_parts/manipulator = 2,
|
||||||
"/obj/item/stack/cable_coil" = 2,
|
/obj/item/stack/cable_coil = 2,
|
||||||
"/obj/item/weapon/stock_parts/subspace/filter" = 2)
|
/obj/item/weapon/stock_parts/subspace/filter = 2)
|
||||||
|
|
||||||
/obj/item/weapon/circuitboard/telecomms/relay
|
/obj/item/weapon/circuitboard/telecomms/relay
|
||||||
name = T_BOARD("relay mainframe")
|
name = T_BOARD("relay mainframe")
|
||||||
build_path = "/obj/machinery/telecomms/relay"
|
build_path = "/obj/machinery/telecomms/relay"
|
||||||
origin_tech = list(TECH_DATA = 3, TECH_ENGINEERING = 4, TECH_BLUESPACE = 3)
|
origin_tech = list(TECH_DATA = 3, TECH_ENGINEERING = 4, TECH_BLUESPACE = 3)
|
||||||
req_components = list(
|
req_components = list(
|
||||||
"/obj/item/weapon/stock_parts/manipulator" = 2,
|
/obj/item/weapon/stock_parts/manipulator = 2,
|
||||||
"/obj/item/stack/cable_coil" = 2,
|
/obj/item/stack/cable_coil = 2,
|
||||||
"/obj/item/weapon/stock_parts/subspace/filter" = 2)
|
/obj/item/weapon/stock_parts/subspace/filter = 2)
|
||||||
|
|
||||||
/obj/item/weapon/circuitboard/telecomms/bus
|
/obj/item/weapon/circuitboard/telecomms/bus
|
||||||
name = T_BOARD("bus mainframe")
|
name = T_BOARD("bus mainframe")
|
||||||
build_path = "/obj/machinery/telecomms/bus"
|
build_path = "/obj/machinery/telecomms/bus"
|
||||||
origin_tech = list(TECH_DATA = 4, TECH_ENGINEERING = 4)
|
origin_tech = list(TECH_DATA = 4, TECH_ENGINEERING = 4)
|
||||||
req_components = list(
|
req_components = list(
|
||||||
"/obj/item/weapon/stock_parts/manipulator" = 2,
|
/obj/item/weapon/stock_parts/manipulator = 2,
|
||||||
"/obj/item/stack/cable_coil" = 1,
|
/obj/item/stack/cable_coil = 1,
|
||||||
"/obj/item/weapon/stock_parts/subspace/filter" = 1)
|
/obj/item/weapon/stock_parts/subspace/filter = 1)
|
||||||
|
|
||||||
/obj/item/weapon/circuitboard/telecomms/processor
|
/obj/item/weapon/circuitboard/telecomms/processor
|
||||||
name = T_BOARD("processor unit")
|
name = T_BOARD("processor unit")
|
||||||
build_path = "/obj/machinery/telecomms/processor"
|
build_path = "/obj/machinery/telecomms/processor"
|
||||||
origin_tech = list(TECH_DATA = 4, TECH_ENGINEERING = 4)
|
origin_tech = list(TECH_DATA = 4, TECH_ENGINEERING = 4)
|
||||||
req_components = list(
|
req_components = list(
|
||||||
"/obj/item/weapon/stock_parts/manipulator" = 3,
|
/obj/item/weapon/stock_parts/manipulator = 3,
|
||||||
"/obj/item/weapon/stock_parts/subspace/filter" = 1,
|
/obj/item/weapon/stock_parts/subspace/filter = 1,
|
||||||
"/obj/item/weapon/stock_parts/subspace/treatment" = 2,
|
/obj/item/weapon/stock_parts/subspace/treatment = 2,
|
||||||
"/obj/item/weapon/stock_parts/subspace/analyzer" = 1,
|
/obj/item/weapon/stock_parts/subspace/analyzer = 1,
|
||||||
"/obj/item/stack/cable_coil" = 2,
|
/obj/item/stack/cable_coil = 2,
|
||||||
"/obj/item/weapon/stock_parts/subspace/amplifier" = 1)
|
/obj/item/weapon/stock_parts/subspace/amplifier = 1)
|
||||||
|
|
||||||
/obj/item/weapon/circuitboard/telecomms/server
|
/obj/item/weapon/circuitboard/telecomms/server
|
||||||
name = T_BOARD("telecommunication server")
|
name = T_BOARD("telecommunication server")
|
||||||
build_path = "/obj/machinery/telecomms/server"
|
build_path = "/obj/machinery/telecomms/server"
|
||||||
origin_tech = list(TECH_DATA = 4, TECH_ENGINEERING = 4)
|
origin_tech = list(TECH_DATA = 4, TECH_ENGINEERING = 4)
|
||||||
req_components = list(
|
req_components = list(
|
||||||
"/obj/item/weapon/stock_parts/manipulator" = 2,
|
/obj/item/weapon/stock_parts/manipulator = 2,
|
||||||
"/obj/item/stack/cable_coil" = 1,
|
/obj/item/stack/cable_coil = 1,
|
||||||
"/obj/item/weapon/stock_parts/subspace/filter" = 1)
|
/obj/item/weapon/stock_parts/subspace/filter = 1)
|
||||||
|
|
||||||
/obj/item/weapon/circuitboard/telecomms/broadcaster
|
/obj/item/weapon/circuitboard/telecomms/broadcaster
|
||||||
name = T_BOARD("subspace broadcaster")
|
name = T_BOARD("subspace broadcaster")
|
||||||
build_path = "/obj/machinery/telecomms/broadcaster"
|
build_path = "/obj/machinery/telecomms/broadcaster"
|
||||||
origin_tech = list(TECH_DATA = 4, TECH_ENGINEERING = 4, TECH_BLUESPACE = 2)
|
origin_tech = list(TECH_DATA = 4, TECH_ENGINEERING = 4, TECH_BLUESPACE = 2)
|
||||||
req_components = list(
|
req_components = list(
|
||||||
"/obj/item/weapon/stock_parts/manipulator" = 2,
|
/obj/item/weapon/stock_parts/manipulator = 2,
|
||||||
"/obj/item/stack/cable_coil" = 1,
|
/obj/item/stack/cable_coil = 1,
|
||||||
"/obj/item/weapon/stock_parts/subspace/filter" = 1,
|
/obj/item/weapon/stock_parts/subspace/filter = 1,
|
||||||
"/obj/item/weapon/stock_parts/subspace/crystal" = 1,
|
/obj/item/weapon/stock_parts/subspace/crystal = 1,
|
||||||
"/obj/item/weapon/stock_parts/micro_laser/high" = 2)
|
/obj/item/weapon/stock_parts/micro_laser/high = 2)
|
||||||
|
|
||||||
//This isn't a real telecomms board but I don't want to make a whole file to hold only one circuitboard.
|
//This isn't a real telecomms board but I don't want to make a whole file to hold only one circuitboard.
|
||||||
/obj/item/weapon/circuitboard/telecomms/exonet_node
|
/obj/item/weapon/circuitboard/telecomms/exonet_node
|
||||||
@@ -80,10 +80,10 @@
|
|||||||
build_path = "/obj/machinery/exonet_node"
|
build_path = "/obj/machinery/exonet_node"
|
||||||
origin_tech = list(TECH_DATA = 5, TECH_ENGINEERING = 5, TECH_BLUESPACE = 4)
|
origin_tech = list(TECH_DATA = 5, TECH_ENGINEERING = 5, TECH_BLUESPACE = 4)
|
||||||
req_components = list(
|
req_components = list(
|
||||||
"/obj/item/weapon/stock_parts/subspace/ansible" = 1,
|
/obj/item/weapon/stock_parts/subspace/ansible = 1,
|
||||||
"/obj/item/weapon/stock_parts/subspace/filter" = 1,
|
/obj/item/weapon/stock_parts/subspace/filter = 1,
|
||||||
"/obj/item/weapon/stock_parts/manipulator" = 2,
|
/obj/item/weapon/stock_parts/manipulator = 2,
|
||||||
"/obj/item/weapon/stock_parts/micro_laser" = 1,
|
/obj/item/weapon/stock_parts/micro_laser = 1,
|
||||||
"/obj/item/weapon/stock_parts/subspace/crystal" = 1,
|
/obj/item/weapon/stock_parts/subspace/crystal = 1,
|
||||||
"/obj/item/weapon/stock_parts/subspace/treatment" = 2,
|
/obj/item/weapon/stock_parts/subspace/treatment = 2,
|
||||||
"/obj/item/stack/cable_coil" = 2)
|
/obj/item/stack/cable_coil = 2)
|
||||||
|
|||||||
@@ -18,16 +18,16 @@
|
|||||||
build_path = "/obj/machinery/atmospherics/unary/heater"
|
build_path = "/obj/machinery/atmospherics/unary/heater"
|
||||||
origin_tech = list(TECH_POWER = 2, TECH_ENGINEERING = 1)
|
origin_tech = list(TECH_POWER = 2, TECH_ENGINEERING = 1)
|
||||||
req_components = list(
|
req_components = list(
|
||||||
"/obj/item/stack/cable_coil" = 5,
|
/obj/item/stack/cable_coil = 5,
|
||||||
"/obj/item/weapon/stock_parts/matter_bin" = 1,
|
/obj/item/weapon/stock_parts/matter_bin = 1,
|
||||||
"/obj/item/weapon/stock_parts/capacitor" = 2)
|
/obj/item/weapon/stock_parts/capacitor = 2)
|
||||||
|
|
||||||
/obj/item/weapon/circuitboard/unary_atmos/cooler
|
/obj/item/weapon/circuitboard/unary_atmos/cooler
|
||||||
name = T_BOARD("gas cooling system")
|
name = T_BOARD("gas cooling system")
|
||||||
build_path = "/obj/machinery/atmospherics/unary/freezer"
|
build_path = "/obj/machinery/atmospherics/unary/freezer"
|
||||||
origin_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 2)
|
origin_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 2)
|
||||||
req_components = list(
|
req_components = list(
|
||||||
"/obj/item/stack/cable_coil" = 2,
|
/obj/item/stack/cable_coil = 2,
|
||||||
"/obj/item/weapon/stock_parts/matter_bin" = 1,
|
/obj/item/weapon/stock_parts/matter_bin = 1,
|
||||||
"/obj/item/weapon/stock_parts/capacitor" = 2,
|
/obj/item/weapon/stock_parts/capacitor = 2,
|
||||||
"/obj/item/weapon/stock_parts/manipulator" = 1)
|
/obj/item/weapon/stock_parts/manipulator = 1)
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/obj/item/weapon/grenade/smokebomb
|
/obj/item/weapon/grenade/smokebomb
|
||||||
desc = "It is set to detonate in 2 seconds."
|
desc = "It is set to detonate in 2 seconds. These high-tech grenades can have their color adapted on the fly with a multitool!"
|
||||||
name = "smoke bomb"
|
name = "smoke bomb"
|
||||||
icon = 'icons/obj/grenade.dmi'
|
icon = 'icons/obj/grenade.dmi'
|
||||||
icon_state = "flashbang"
|
icon_state = "flashbang"
|
||||||
@@ -7,6 +7,8 @@
|
|||||||
item_state = "flashbang"
|
item_state = "flashbang"
|
||||||
slot_flags = SLOT_BELT
|
slot_flags = SLOT_BELT
|
||||||
var/datum/effect/effect/system/smoke_spread/bad/smoke
|
var/datum/effect/effect/system/smoke_spread/bad/smoke
|
||||||
|
var/smoke_color
|
||||||
|
var/smoke_strength = 8
|
||||||
|
|
||||||
/obj/item/weapon/grenade/smokebomb/New()
|
/obj/item/weapon/grenade/smokebomb/New()
|
||||||
..()
|
..()
|
||||||
@@ -22,18 +24,15 @@
|
|||||||
playsound(src.loc, 'sound/effects/smoke.ogg', 50, 1, -3)
|
playsound(src.loc, 'sound/effects/smoke.ogg', 50, 1, -3)
|
||||||
src.smoke.set_up(10, 0, usr.loc)
|
src.smoke.set_up(10, 0, usr.loc)
|
||||||
spawn(0)
|
spawn(0)
|
||||||
src.smoke.start()
|
for(var/i = 1 to smoke_strength)
|
||||||
|
src.smoke.start(smoke_color)
|
||||||
sleep(10)
|
sleep(10)
|
||||||
src.smoke.start()
|
|
||||||
sleep(10)
|
|
||||||
src.smoke.start()
|
|
||||||
sleep(10)
|
|
||||||
src.smoke.start()
|
|
||||||
|
|
||||||
for(var/obj/effect/blob/B in view(8,src))
|
|
||||||
var/damage = round(30/(get_dist(B,src)+1))
|
|
||||||
B.health -= damage
|
|
||||||
B.update_icon()
|
|
||||||
sleep(80)
|
|
||||||
qdel(src)
|
qdel(src)
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
/obj/item/weapon/grenade/smokebomb/attackby(obj/item/I as obj, mob/user as mob)
|
||||||
|
if(istype(I,/obj/item/device/multitool))
|
||||||
|
var/new_smoke_color = input(user, "Choose a color for the smoke:", "Smoke Color", smoke_color) as color|null
|
||||||
|
if(new_smoke_color)
|
||||||
|
smoke_color = new_smoke_color
|
||||||
|
|||||||
@@ -203,6 +203,15 @@
|
|||||||
slot_r_hand_str = "duffle_med",
|
slot_r_hand_str = "duffle_med",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
/obj/item/weapon/storage/backpack/dufflebag/emt
|
||||||
|
name = "EMT dufflebag"
|
||||||
|
desc = "A large dufflebag for holding extra medical supplies. This one has reflective stripes!"
|
||||||
|
icon_state = "duffle_emt"
|
||||||
|
item_state_slots = list(
|
||||||
|
slot_l_hand_str = "duffle_emt",
|
||||||
|
slot_r_hand_str = "duffle_emt",
|
||||||
|
)
|
||||||
|
|
||||||
/obj/item/weapon/storage/backpack/dufflebag/sec
|
/obj/item/weapon/storage/backpack/dufflebag/sec
|
||||||
name = "security dufflebag"
|
name = "security dufflebag"
|
||||||
desc = "A large dufflebag for holding extra security supplies and ammunition."
|
desc = "A large dufflebag for holding extra security supplies and ammunition."
|
||||||
@@ -235,12 +244,12 @@
|
|||||||
..()
|
..()
|
||||||
new /obj/item/weapon/storage/wallet/random( src )
|
new /obj/item/weapon/storage/wallet/random( src )
|
||||||
|
|
||||||
/obj/item/weapon/storage/backpack/satchel_norm
|
/obj/item/weapon/storage/backpack/satchel/norm
|
||||||
name = "satchel"
|
name = "satchel"
|
||||||
desc = "A trendy looking satchel."
|
desc = "A trendy looking satchel."
|
||||||
icon_state = "satchel-norm"
|
icon_state = "satchel-norm"
|
||||||
|
|
||||||
/obj/item/weapon/storage/backpack/satchel_eng
|
/obj/item/weapon/storage/backpack/satchel/eng
|
||||||
name = "industrial satchel"
|
name = "industrial satchel"
|
||||||
desc = "A tough satchel with extra pockets."
|
desc = "A tough satchel with extra pockets."
|
||||||
icon_state = "satchel-eng"
|
icon_state = "satchel-eng"
|
||||||
@@ -249,7 +258,7 @@
|
|||||||
slot_r_hand_str = "engiepack",
|
slot_r_hand_str = "engiepack",
|
||||||
)
|
)
|
||||||
|
|
||||||
/obj/item/weapon/storage/backpack/satchel_med
|
/obj/item/weapon/storage/backpack/satchel/med
|
||||||
name = "medical satchel"
|
name = "medical satchel"
|
||||||
desc = "A sterile satchel used in medical departments."
|
desc = "A sterile satchel used in medical departments."
|
||||||
icon_state = "satchel-med"
|
icon_state = "satchel-med"
|
||||||
@@ -258,27 +267,27 @@
|
|||||||
slot_r_hand_str = "medicalpack",
|
slot_r_hand_str = "medicalpack",
|
||||||
)
|
)
|
||||||
|
|
||||||
/obj/item/weapon/storage/backpack/satchel_vir
|
/obj/item/weapon/storage/backpack/satchel/vir
|
||||||
name = "virologist satchel"
|
name = "virologist satchel"
|
||||||
desc = "A sterile satchel with virologist colours."
|
desc = "A sterile satchel with virologist colours."
|
||||||
icon_state = "satchel-vir"
|
icon_state = "satchel-vir"
|
||||||
|
|
||||||
/obj/item/weapon/storage/backpack/satchel_chem
|
/obj/item/weapon/storage/backpack/satchel/chem
|
||||||
name = "chemist satchel"
|
name = "chemist satchel"
|
||||||
desc = "A sterile satchel with chemist colours."
|
desc = "A sterile satchel with chemist colours."
|
||||||
icon_state = "satchel-chem"
|
icon_state = "satchel-chem"
|
||||||
|
|
||||||
/obj/item/weapon/storage/backpack/satchel_gen
|
/obj/item/weapon/storage/backpack/satchel/gen
|
||||||
name = "geneticist satchel"
|
name = "geneticist satchel"
|
||||||
desc = "A sterile satchel with geneticist colours."
|
desc = "A sterile satchel with geneticist colours."
|
||||||
icon_state = "satchel-gen"
|
icon_state = "satchel-gen"
|
||||||
|
|
||||||
/obj/item/weapon/storage/backpack/satchel_tox
|
/obj/item/weapon/storage/backpack/satchel/tox
|
||||||
name = "scientist satchel"
|
name = "scientist satchel"
|
||||||
desc = "Useful for holding research materials."
|
desc = "Useful for holding research materials."
|
||||||
icon_state = "satchel-tox"
|
icon_state = "satchel-tox"
|
||||||
|
|
||||||
/obj/item/weapon/storage/backpack/satchel_sec
|
/obj/item/weapon/storage/backpack/satchel/sec
|
||||||
name = "security satchel"
|
name = "security satchel"
|
||||||
desc = "A robust satchel for security related needs."
|
desc = "A robust satchel for security related needs."
|
||||||
icon_state = "satchel-sec"
|
icon_state = "satchel-sec"
|
||||||
@@ -287,12 +296,12 @@
|
|||||||
slot_r_hand_str = "securitypack",
|
slot_r_hand_str = "securitypack",
|
||||||
)
|
)
|
||||||
|
|
||||||
/obj/item/weapon/storage/backpack/satchel_hyd
|
/obj/item/weapon/storage/backpack/satchel/hyd
|
||||||
name = "hydroponics satchel"
|
name = "hydroponics satchel"
|
||||||
desc = "A green satchel for plant related work."
|
desc = "A green satchel for plant related work."
|
||||||
icon_state = "satchel_hyd"
|
icon_state = "satchel_hyd"
|
||||||
|
|
||||||
/obj/item/weapon/storage/backpack/satchel_cap
|
/obj/item/weapon/storage/backpack/satchel/cap
|
||||||
name = "captain's satchel"
|
name = "captain's satchel"
|
||||||
desc = "An exclusive satchel for officers."
|
desc = "An exclusive satchel for officers."
|
||||||
icon_state = "satchel-cap"
|
icon_state = "satchel-cap"
|
||||||
|
|||||||
@@ -333,6 +333,8 @@
|
|||||||
new /obj/item/weapon/grenade/smokebomb(src)
|
new /obj/item/weapon/grenade/smokebomb(src)
|
||||||
new /obj/item/weapon/grenade/smokebomb(src)
|
new /obj/item/weapon/grenade/smokebomb(src)
|
||||||
new /obj/item/weapon/grenade/smokebomb(src)
|
new /obj/item/weapon/grenade/smokebomb(src)
|
||||||
|
new /obj/item/weapon/grenade/smokebomb(src)
|
||||||
|
new /obj/item/weapon/grenade/smokebomb(src)
|
||||||
|
|
||||||
/obj/item/weapon/storage/box/anti_photons
|
/obj/item/weapon/storage/box/anti_photons
|
||||||
name = "box of anti-photon grenades"
|
name = "box of anti-photon grenades"
|
||||||
|
|||||||
@@ -14,6 +14,7 @@
|
|||||||
throw_speed = 2
|
throw_speed = 2
|
||||||
throw_range = 8
|
throw_range = 8
|
||||||
var/empty = 0
|
var/empty = 0
|
||||||
|
max_storage_space = 14
|
||||||
|
|
||||||
|
|
||||||
/obj/item/weapon/storage/firstaid/fire
|
/obj/item/weapon/storage/firstaid/fire
|
||||||
@@ -131,8 +132,8 @@
|
|||||||
/obj/item/weapon/storage/firstaid/surgery
|
/obj/item/weapon/storage/firstaid/surgery
|
||||||
name = "surgery kit"
|
name = "surgery kit"
|
||||||
desc = "Contains tools for surgery."
|
desc = "Contains tools for surgery."
|
||||||
storage_slots = 10
|
max_storage_space = 21
|
||||||
max_storage_space = 23
|
max_w_class = 3
|
||||||
|
|
||||||
/obj/item/weapon/storage/firstaid/surgery/New()
|
/obj/item/weapon/storage/firstaid/surgery/New()
|
||||||
..()
|
..()
|
||||||
@@ -163,6 +164,8 @@
|
|||||||
allow_quick_gather = 1
|
allow_quick_gather = 1
|
||||||
use_to_pickup = 1
|
use_to_pickup = 1
|
||||||
use_sound = null
|
use_sound = null
|
||||||
|
max_storage_space = 14
|
||||||
|
max_w_class = 1
|
||||||
|
|
||||||
/obj/item/weapon/storage/pill_bottle/antitox
|
/obj/item/weapon/storage/pill_bottle/antitox
|
||||||
name = "bottle of Dylovene pills"
|
name = "bottle of Dylovene pills"
|
||||||
|
|||||||
@@ -136,10 +136,10 @@
|
|||||||
filled = TRUE
|
filled = TRUE
|
||||||
|
|
||||||
/obj/item/weapon/storage/toolbox/lunchbox/mars
|
/obj/item/weapon/storage/toolbox/lunchbox/mars
|
||||||
name = "\improper Mars university lunchbox"
|
name = "\improper Mojave university lunchbox"
|
||||||
icon_state = "lunchbox_marsuniversity"
|
icon_state = "lunchbox_marsuniversity"
|
||||||
item_state = "toolbox_red"
|
item_state = "toolbox_red"
|
||||||
desc = "A little lunchbox. This one is branded with the Mars university logo!"
|
desc = "A little lunchbox. This one is branded with the Mojave university logo!"
|
||||||
|
|
||||||
/obj/item/weapon/storage/toolbox/lunchbox/mars/filled
|
/obj/item/weapon/storage/toolbox/lunchbox/mars/filled
|
||||||
filled = TRUE
|
filled = TRUE
|
||||||
|
|||||||
@@ -247,6 +247,16 @@
|
|||||||
src.update_icon()
|
src.update_icon()
|
||||||
for(var/mob/M in viewers(src))
|
for(var/mob/M in viewers(src))
|
||||||
M.show_message("<span class='warning'>[src] has been [welded?"welded shut":"unwelded"] by [user.name].</span>", 3, "You hear welding.", 2)
|
M.show_message("<span class='warning'>[src] has been [welded?"welded shut":"unwelded"] by [user.name].</span>", 3, "You hear welding.", 2)
|
||||||
|
else if(istype(W, /obj/item/weapon/wrench))
|
||||||
|
if(welded)
|
||||||
|
if(anchored)
|
||||||
|
user.visible_message("\The [user] begins unsecuring \the [src] from the floor.", "You start unsecuring \the [src] from the floor.")
|
||||||
|
else
|
||||||
|
user.visible_message("\The [user] begins securing \the [src] to the floor.", "You start securing \the [src] to the floor.")
|
||||||
|
if(do_after(user, 20))
|
||||||
|
if(!src) return
|
||||||
|
user << "<span class='notice'>You [anchored? "un" : ""]secured \the [src]!</span>"
|
||||||
|
anchored = !anchored
|
||||||
else
|
else
|
||||||
src.attack_hand(user)
|
src.attack_hand(user)
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
if(prob(75))
|
if(prob(75))
|
||||||
new /obj/item/weapon/storage/backpack(src)
|
new /obj/item/weapon/storage/backpack(src)
|
||||||
else
|
else
|
||||||
new /obj/item/weapon/storage/backpack/satchel_norm(src)
|
new /obj/item/weapon/storage/backpack/satchel/norm(src)
|
||||||
if(prob(25))
|
if(prob(25))
|
||||||
new /obj/item/weapon/storage/backpack/dufflebag(src)
|
new /obj/item/weapon/storage/backpack/dufflebag(src)
|
||||||
new /obj/item/clothing/under/rank/cargotech(src)
|
new /obj/item/clothing/under/rank/cargotech(src)
|
||||||
@@ -44,7 +44,7 @@
|
|||||||
if(prob(75))
|
if(prob(75))
|
||||||
new /obj/item/weapon/storage/backpack(src)
|
new /obj/item/weapon/storage/backpack(src)
|
||||||
else
|
else
|
||||||
new /obj/item/weapon/storage/backpack/satchel_norm(src)
|
new /obj/item/weapon/storage/backpack/satchel/norm(src)
|
||||||
if(prob(25))
|
if(prob(25))
|
||||||
new /obj/item/weapon/storage/backpack/dufflebag(src)
|
new /obj/item/weapon/storage/backpack/dufflebag(src)
|
||||||
new /obj/item/clothing/under/rank/cargo(src)
|
new /obj/item/clothing/under/rank/cargo(src)
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user