MultiZ Layenia Base

This commit is contained in:
Dahlular
2022-09-04 10:32:31 -06:00
parent ec54fb9c05
commit f45b4bfb4c
187 changed files with 260225 additions and 124296 deletions
+4
View File
@@ -67,6 +67,10 @@
#define ACCESS_ENTER_GENPOP 69
#define ACCESS_LEAVE_GENPOP 70
#define ACCESS_PSYCH 71
#define ACCESS_LAMBENT 72
#define ACCESS_BARBER 73
#define ACCESS_BARISTA 74
//BEGIN CENTCOM ACCESS
/*Should leave plenty of room if we need to add more access levels.
+4 -1
View File
@@ -14,6 +14,7 @@
#define CYBORG (1<<10)
#define JR_OFFICER (1<<11)
#define JR_ENGINEER (1<<12)
#define LAMBENT (1<<13)
#define MEDSCI (1<<1)
@@ -46,6 +47,8 @@
#define CLOWN (1<<11)
#define MIME (1<<12)
#define ASSISTANT (1<<13)
#define BARBER (1<<14)
#define BARISTA (1<<15)
#define JOB_AVAILABLE 0
#define JOB_UNAVAILABLE_GENERIC 1
@@ -53,4 +56,4 @@
#define JOB_UNAVAILABLE_PLAYTIME 3
#define JOB_UNAVAILABLE_ACCOUNTAGE 4
#define JOB_UNAVAILABLE_SLOTFULL 5
#define JOB_UNAVAILABLE_WHITELIST 6
#define JOB_UNAVAILABLE_WHITELIST 6
+24 -6
View File
@@ -446,7 +446,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
/area/crew_quarters/lounge
name = "Lounge"
icon_state = "yellow"
icon_state = "lounge"
/area/crew_quarters/fitness
name = "Fitness Room"
@@ -495,6 +495,10 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
name = "Theatre"
icon_state = "Theatre"
/area/crew_quarters/theatre/main
name = "Entertainment Theatre"
icon_state = "Theatre"
/area/crew_quarters/theatre/abandoned
name = "Abandoned Theatre"
icon_state = "Theatre"
@@ -1372,7 +1376,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
name = "Xenoarchaeology Medical"
icon_state = "xenomed"
//Pool
//Pool and Hyper additions
/area/crew_quarters/fitness/pool
name = "Pool Area"
icon_state = "pool"
@@ -1384,11 +1388,25 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
/area/arcade
name = "Arcade"
icon_state = "yellow"
icon_state = "arcade"
/area/artatrium
name = "Art Atrium"
icon_state = "library"
/area/medical/psych/ward
name = "Psychology Ward"
/area/medical/psych/therapy
name = "Therapy Office"
/area/medical/psych/rec
name = "Psychology Recreation"
/area/medical/psych/lobby
name = "Psychology Lobby"
/area/medical/psych/roomA
name = "Physchology Dorm A"
/area/medical/psych/roomB
name = "Physchology Dorm A"
//Diner
/area/diner
+6
View File
@@ -10,6 +10,12 @@ area/layenia
atmos = FALSE
flags_1 = NONE
area/layenia/cave
name = "Layenia Caves"
icon_state = "mining"
outdoors = FALSE
dynamic_lighting = DYNAMIC_LIGHTING_FORCED
area/layenia/cloudlayer
name = "Layenia clouds"
icon_state = "space"
@@ -102,6 +102,13 @@ GLOBAL_LIST_EMPTY(announcement_systems)
else if(message_type == "ARRIVALS_BROKEN")
message = "The arrivals shuttle has been damaged. Docking for repairs..."
//Hyper edit
else if (message_type == "ONDUTY")
message = CompileText(onduty, user, rank)
else if (message_type == "OFFDUTY")
message = CompileText(offduty, user, rank)
//Hyper edit end
if(channels.len == 0)
radio.talk_into(src, message, null)
else
+7 -1
View File
@@ -11,8 +11,9 @@
openSound = 'hyperstation/sound/machines/shutter.ogg'
closeSound = 'hyperstation/sound/machines/shutter.ogg'
// temporarily changing it to open alt so you can see things on tables that also have shutters above them until I can figure some alternatives out.
/obj/machinery/door/poddoor/shutters/preopen
icon_state = "open"
icon_state = "open_alt"
density = FALSE
opacity = 0
@@ -68,3 +69,8 @@
/obj/machinery/door/poddoor/shutters/window/preopen
icon_state = "open"
density = FALSE
//my not so successful attempt to make the new shutters let you see what's under them when above tables.
/obj/machinery/door/poddoor/shutters/preopen/alt
icon_state = "open_alt"
density = FALSE
+40
View File
@@ -408,6 +408,21 @@
desc = "A poster advertising a movie about some masked men."
icon_state = "poster44"
/obj/structure/sign/poster/contraband/moffuchis_pizza
name = "Moffy's Pizzeria"
desc = "Moffy's Pizzeria™: family style pizza for 2 centuries."
icon_state = "poster45"
/obj/structure/sign/poster/contraband/donk_co
name = "DONK CO. BRAND MICROWAVEABLE FOOD"
desc = "DONK CO. BRAND MICROWAVABLE FOOD: MADE BY STARVING COLLEGE STUDENTS, FOR STARVING COLLEGE STUDENTS."
icon_state = "poster46"
/obj/structure/sign/poster/contraband/cybersun_six_hundred
name = "Saibāsan: 600 Years Commemorative Poster"
desc = "An artistic poster commemorating 600 years of continual business for Cybersun Industries."
icon_state = "poster47"
/obj/structure/sign/poster/official
poster_item_name = "motivational poster"
poster_item_desc = "An official Nanotrasen-issued poster to foster a compliant and obedient workforce. It comes with state-of-the-art adhesive backing, for easy pinning to any vertical surface."
@@ -594,4 +609,29 @@
desc = "This informational poster teaches the viewer what carbon dioxide is."
icon_state = "poster35_legit"
/obj/structure/sign/poster/official/moth_hardhat
name = "Safety Moth - Hardhats"
desc = "This informational poster uses Safety Moth™ to tell the viewer to wear hardhats in cautious areas. \"It's like a lamp for your head!\""
icon_state = "poster36_legit"
/obj/structure/sign/poster/official/moth_piping
name = "Safety Moth - Piping"
desc = "This informational poster uses Safety Moth™ to tell atmospheric technicians correct types of piping to be used. \"Pipes, not Pumps! Proper pipe placement prevents poor performance!\""
icon_state = "poster37_legit"
/obj/structure/sign/poster/official/moth_meth
name = "Safety Moth - Methamphetamine"
desc = "This informational poster uses Safety Moth™ to tell the viewer to seek CMO approval before cooking methamphetamine. \"Stay close to the target temperature, and never go over!\" ...You shouldn't ever be making this."
icon_state = "poster38_legit"
/obj/structure/sign/poster/official/moth_epi
name = "Safety Moth - Epinephrine"
desc = "This informational poster uses Safety Moth™ to inform the viewer to help injured/deceased crewmen with their epinephrine injectors. \"Prevent organ rot with this one simple trick!\""
icon_state = "poster39_legit"
/obj/structure/sign/poster/official/corporate_perks_vacation
name = "Nanotrasen Corporate Perks: Vacation"
desc = "You wish you were here? You can be, Plan today and get 10% off your next vacation on us."
icon_state = "poster40_legit"
#undef PLACE_SPEED
@@ -9,4 +9,24 @@
/obj/effect/turf_decal/weather/snow/corner
name = "snow corner piece"
icon = 'icons/turf/snow.dmi'
icon_state = "snow_corner"
icon_state = "snow_corner"
/obj/effect/turf_decal/weather/grass
name = "grass box piece"
icon = 'icons/turf/grass.dmi'
icon_state = "grass_box"
/obj/effect/turf_decal/weather/grass/line
name = "grass line piece"
icon = 'icons/turf/grass.dmi'
icon_state = "grass_line"
/obj/effect/turf_decal/weather/grass/corner
name = "grass corner piece"
icon = 'icons/turf/grass.dmi'
icon_state = "grass_corner"
/obj/effect/turf_decal/weather/grass/surround
name = "grass surround piece"
icon = 'icons/turf/grass.dmi'
icon_state = "grass_surround"
+3 -2
View File
@@ -126,7 +126,7 @@
H.update_body()
else
..()
/* SKYRAT EDIT REMOVAL
/obj/item/razor
name = "electric razor"
desc = "The latest and greatest power razor born from the science of shaving."
@@ -216,4 +216,5 @@
else
..()
else
..()
..()
*/
+16 -1
View File
@@ -4,6 +4,8 @@
icon = 'icons/obj/dyespray.dmi'
icon_state = "dyespray"
var/uses = 10 //SKYRAT EDIT ADDITION
/obj/item/dyespray/attack_self(mob/user)
dye(user)
@@ -21,6 +23,10 @@
/obj/item/dyespray/proc/dye(mob/target)
if(!ishuman(target))
return
if(!uses) //SKYRAT EDIT ADDITION
return //SKYRAT EDIT ADDITION
var/mob/living/carbon/human/human_target = target
var/new_hair_color = input(usr, "Choose a base hair color:", "Character Preference","#"+human_target.hair_color) as color|null
@@ -42,4 +48,13 @@
if(!do_after(usr, 30, target = human_target))
return
playsound(src, 'sound/effects/spray.ogg', 5, TRUE, 5)
human_target.update_hair()
human_target.update_hair()
//SKYRAT EDIT ADDITION
uses--
/obj/item/dyespray/examine(mob/user)
. = ..()
. += "It has [uses] uses left."
//SKYRAT EDIT END
+44
View File
@@ -657,6 +657,34 @@
item_state = "moffplush"
squeak_override = list('modular_citadel/sound/voice/scream_moth.ogg' = 1)
/obj/item/toy/plush/mothplushie/moffplush/safetymoth
name = "Safety Moth"
desc = "A limited edition Safety Moth™ plush, Can you collect them all?"
icon_state = "safetymoth"
item_state = "safetymoth"
squeak_override = list('modular_citadel/sound/voice/scream_moth.ogg' = 1)
/obj/item/toy/plush/mothplushie/moffplush/safetymoth_engineer
name = "Engineer Safety Moth"
desc = "A limited edition Engineer Safety Moth™ plush, Can you collect them all?"
icon_state = "safetymoth_engineer"
item_state = "safetymoth_engineer"
squeak_override = list('modular_citadel/sound/voice/scream_moth.ogg' = 1)
/obj/item/toy/plush/mothplushie/moffplush/safetymoth_doctor
name = "Doctor Safety Moth"
desc = "A limited edition Doctor Safety Moth™ plush, Can you collect them all?"
icon_state = "safetymoth_doctor"
item_state = "safetymoth_doctor"
squeak_override = list('modular_citadel/sound/voice/scream_moth.ogg' = 1)
/obj/item/toy/plush/mothplushie/moffplush/Moffy
name = "Chef Moffy plushie"
desc = "A rebranded Safety Moth™ plush by there sister company Moffy's Pizzeria Entertainment™"
icon_state = "Moffy"
item_state = "Moffy"
squeak_override = list('modular_citadel/sound/voice/scream_moth.ogg' = 1)
/obj/item/toy/plush/xeno
name = "xenohybrid plushie"
desc = "An adorable stuffed toy that resmembles a xenomorphic crewmember."
@@ -766,6 +794,15 @@
item_state = "kenk"
squeak_override = list('modular_citadel/sound/voice/merp.ogg' = 1)
/obj/item/toy/plush/enchanted
name = "glowing book plushie"
desc = "This book is so powerful, you can't open it."
young = TRUE
icon_state = "bookenchanted"
item_state = "bookenchanted"
squeak_override = list('hyperstation/sound/effects/enchant.ogg' = 1)
attack_verb = list("enchants", "mystifies", "disenchants", "fails to enchant", "doesn't have enough XP to enchant", "bonks")
/obj/item/toy/plush/sergal
name = "sergal plushie"
desc = "An adorable stuffed plushie that resembles a sagaru."
@@ -948,6 +985,13 @@
icon_state = "marisol"
item_state = "marisol"
/obj/item/toy/plush/mammal/freddy
name = "felix fastbear plushie"
desc = "An adorable bear plushie that resembles felix fastbear from Moffy's Pizzeria Entertainment™"
icon_state = "freddy"
item_state = "freddy"
squeak_override = list('sound/items/toysqueak1.ogg' = 1)
/obj/item/toy/plush/catgirl
name = "feline plushie"
desc = "An adorable stuffed toy that resembles a feline."
@@ -49,6 +49,13 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \
new/datum/stack_recipe("sofa (corner)", /obj/structure/chair/sofa/corner, one_per_turf = TRUE, on_floor = TRUE) \
)), \
//END OF CIT CHANGES
new/datum/stack_recipe_list("bench", \
list( \
new/datum/stack_recipe("bench (middle)", /obj/structure/chair/bench/metal, one_per_turf = TRUE, on_floor = TRUE), \
new/datum/stack_recipe("bench (left)", /obj/structure/chair/bench/metal/left, one_per_turf = TRUE, on_floor = TRUE), \
new/datum/stack_recipe("bench (right)", /obj/structure/chair/bench/metal/right, one_per_turf = TRUE, on_floor = TRUE), \
)), \
null, \
new/datum/stack_recipe("bed", /obj/structure/bed, 2, one_per_turf = TRUE, on_floor = TRUE), \
null, \
//add this when I can find a way to make them easily constructible > new/datum/stack_recipe("sink", /obj/structure/sink, 2, one_per_turf = TRUE, on_floor = TRUE),
+53 -1
View File
@@ -177,6 +177,24 @@
icon_state = "cheeseburgerbackpack"
item_state = "cheeseburgerbackpack"
/obj/item/storage/backpack/lambent
name = "holostorage drone"
desc = "A small drone capable of digitizing matter and remaking it on the fly for incredibly-compressed storage, beyond the limits of Bluespace. It follows it's owner closeby."
icon_state = "lambentbackpack"
item_state = "lambentbackpack"
//component_type
resistance_flags = LAVA_PROOF|FIRE_PROOF|UNACIDABLE
alternate_worn_layer = BODY_BEHIND_LAYER //So the drone appears behind the wearer
/obj/item/storage/backpack/lambent/dropped(mob/user)
src.icon_state = "lambentbackpack_off"
playsound(user, 'sound/items/fulext_deploy.wav', 50, 1)
/obj/item/storage/backpack/lambent/pickup(mob/living/user)
src.icon_state = "lambentbackpack"
playsound(user, 'sound/items/dronedeploy.ogg', 50, 1)
/*
* Satchel Types
*/
@@ -195,6 +213,23 @@
/obj/item/storage/backpack/satchel/leather/withwallet/PopulateContents()
new /obj/item/storage/wallet/random(src)
/obj/item/storage/backpack/satchel/lambent
name = "holostorage drone"
desc = "A small drone capable of digitizing matter and remaking it on the fly for incredibly-compressed storage, beyond the limits of Bluespace. It follows it's owner closeby."
icon_state = "lambentsatchel"
item_state = "lambentsatchel"
//component_type
resistance_flags = LAVA_PROOF|FIRE_PROOF|UNACIDABLE
alternate_worn_layer = BODY_BEHIND_LAYER //So the drone appears behind the wearer
/obj/item/storage/backpack/satchel/lambent/dropped(mob/user)
src.icon_state = "lambentsatchel_off"
playsound(user, 'sound/items/fulext_deploy.wav', 50, 1)
/obj/item/storage/backpack/satchel/lambent/pickup(mob/living/user)
src.icon_state = "lambentsatchel"
playsound(user, 'sound/items/dronedeploy.ogg', 50, 1)
/obj/item/storage/backpack/satchel/eng
name = "industrial satchel"
desc = "A tough satchel with extra pockets."
@@ -340,6 +375,23 @@
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
STR.max_combined_w_class = 30
/obj/item/storage/backpack/duffelbag/lambent
name = "holostorage drone"
desc = "A small drone capable of digitizing matter and remaking it on the fly for incredibly-compressed storage, beyond the limits of Bluespace. It follows it's owner closeby."
icon_state = "lambentduffel"
item_state = "lambentduffel"
//component_type
resistance_flags = LAVA_PROOF|FIRE_PROOF|UNACIDABLE
alternate_worn_layer = BODY_BEHIND_LAYER //So the drone appears behind the wearer
/obj/item/storage/backpack/duffelbag/lambent/dropped(mob/user)
src.icon_state = "lambentduffel_off"
playsound(user, 'sound/items/fulext_deploy.wav', 50, 1)
/obj/item/storage/backpack/duffelbag/lambent/pickup(mob/living/user)
src.icon_state = "lambentduffel"
playsound(user, 'sound/items/dronedeploy.ogg', 50, 1)
/obj/item/storage/backpack/duffelbag/captain
name = "captain's duffel bag"
desc = "A large duffel bag for holding extra captainly goods."
@@ -365,7 +417,7 @@
new /obj/item/cautery(src)
new /obj/item/surgical_drapes(src)
new /obj/item/clothing/mask/surgical(src)
new /obj/item/razor(src)
//new /obj/item/razor(src)
new /obj/item/reagent_containers/medspray/sterilizine(src)
/obj/item/storage/backpack/duffelbag/sec
@@ -299,6 +299,7 @@
name = "industrial welding tool"
desc = "A slightly larger welder with a larger tank."
icon_state = "indwelder"
item_state = "indwelder"
max_fuel = 40
materials = list(MAT_GLASS=60)
@@ -315,6 +316,7 @@
name = "emergency welding tool"
desc = "A miniature welder used during emergencies."
icon_state = "miniwelder"
item_state = "miniwelder"
max_fuel = 10
w_class = WEIGHT_CLASS_TINY
materials = list(MAT_METAL=30, MAT_GLASS=10)
+2 -1
View File
@@ -14,6 +14,7 @@
if(icon_state == "mirror_broke" && !broken)
obj_break(null, mapload)
/* SKYRAT EDIT REMOVAL
/obj/structure/mirror/attack_hand(mob/user)
. = ..()
if(.)
@@ -44,7 +45,7 @@
H.hair_style = new_style
H.update_hair()
*/
/obj/structure/mirror/examine_status(mob/user)
if(broken)
return // no message spam
+6 -1
View File
@@ -133,4 +133,9 @@
/obj/structure/sign/logo/kinaris
name = "kinaris logo"
desc = "The Kinaris corprate logo. Radiant."
icon_state = "kinaris_sign1"
icon_state = "kinaris_sign1"
/obj/structure/sign/logo/cpr
name = "Challenge Pissing Room"
desc = "The league of challenge pissing"
icon_state = "CPR_sign1"
+1
View File
@@ -129,6 +129,7 @@
planetary_atmos = TRUE
initial_gas_mix = FROZEN_ATMOS
density = FALSE
vis_flags = 8
/turf/open/chasm/cloud/Initialize()
. = ..()
@@ -85,10 +85,16 @@
var/ore_type = /obj/item/stack/ore/glass
var/turfverb = "uproot"
tiled_dirt = FALSE
var/floor_variance = 50
var/quantity_of_available_tiles = 2
var/environment_type = "grass"
/turf/open/floor/grass/Initialize()
var/proper_name = name
. = ..()
update_icon()
name = proper_name
if(prob(floor_variance))
icon_state = "[environment_type][rand(0,quantity_of_available_tiles)]"
/turf/open/floor/grass/attackby(obj/item/C, mob/user, params)
if((C.tool_behaviour == TOOL_SHOVEL) && params)
@@ -387,7 +387,7 @@
bullet_bounce_sound = null
digResult = /obj/item/stack/ore/glass/basalt
floor_variance = 50 //This means 50% chance of variating from the default tile.
quantity_of_available_tiles = 4
quantity_of_available_tiles = 5
//light_range = 2
//light_power = 0.15
//light_color = LIGHT_COLOR_WHITE
+5
View File
@@ -1336,9 +1336,14 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if(jobban_isbanned(user, rank))
HTML += "<font color=red>[rank]</font></td><td><a href='?_src_=prefs;jobbancheck=[rank]'> BANNED</a></td></tr>"
continue
//Hyperstation Edit - Whitelisted roles
if((rank in GLOB.silly_positions) && (!sillyroles))
HTML += "<font color=red>[rank]</font></td><td><a href='?_src_=prefs;jobbancheck=[rank]'> WHITELIST</a></td></tr>"
continue
if((rank in GLOB.important_positions) && (!importantroles)) //TODO: make whitelists a bit more accurate than "silly" and "important"
HTML += "<font color=red>[rank]</font></td><td><a href='?_src_=prefs;jobbancheck=[rank]'> WHITELIST</a></td></tr>"
continue
//Hyperstation Edit end
var/required_playtime_remaining = job.required_playtime_remaining(user.client)
if(required_playtime_remaining)
HTML += "<font color=red>[rank]</font></td><td><font color=red> \[ [get_exp_format(required_playtime_remaining)] as [job.get_exp_req_type()] \] </font></td></tr>"
@@ -28,6 +28,46 @@
allowed = list (/obj/item/gun/energy/laser/redtag)
resistance_flags = NONE
/*
* Posshim's Corpus atire
*/
/obj/item/clothing/suit/hooded/corpus/
name = "Standard Voidsuit"
desc = "Standard issue voidsuit in the name of Grofit!"
icon_state = "corpus"
item_state = "armor"
body_parts_covered = CHEST|GROIN|LEGS|ARMS|FEET|HANDS
hoodtype = /obj/item/clothing/head/hooded/corpus
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT //"Hide shoes" but digi shoes dont get hidden, too bad!
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
mutantrace_variation = NO_MUTANTRACE_VARIATION //There is no need for a digi variant, it's a costume
/obj/item/clothing/suit/hooded/corpus/s //sec
name = "Enforcer Voidsuit"
desc = "Delux issue grofit voidsuit. Let the middle class know You're in charge."
icon_state = "corpuss"
hoodtype = /obj/item/clothing/head/hooded/corpus/s //Enjoy this nice red outfit Kinaris! There is NO NEED for a pink one! xoxo -VivI Fanteriso
/obj/item/clothing/suit/hooded/corpus/c //command
name = "Commander Voidsuit"
desc = "Premium issue correctional worker attire. Grease the gears of production."
icon_state = "corpusc"
hoodtype = /obj/item/clothing/head/hooded/corpus/c
/obj/item/clothing/head/hooded/corpus
name = "Voidsuit helmet"
desc = "galvanized reinforced helm to protect against the elements"
icon_state = "corpus"
body_parts_covered = HEAD
flags_inv = HIDEHAIR|HIDEEARS|HIDEFACIALHAIR|HIDEFACE|HIDEMASK|HIDESNOUT|HIDENECK //hide your ugly face with this one simple trick!
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
/obj/item/clothing/head/hooded/corpus/s //sec
icon_state = "corpuss"
/obj/item/clothing/head/hooded/corpus/c //command
icon_state = "corpusc"
/*
* Costume
*/
+12 -6
View File
@@ -127,13 +127,13 @@
return list(ACCESS_CENT_GENERAL, ACCESS_CENT_LIVING, ACCESS_CENT_BAR)
/proc/get_all_accesses()
return list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_FORENSICS_LOCKERS, ACCESS_COURT, ACCESS_ENTER_GENPOP, ACCESS_LEAVE_GENPOP,
return list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_FORENSICS_LOCKERS, ACCESS_COURT, ACCESS_ENTER_GENPOP, ACCESS_LEAVE_GENPOP, ACCESS_LAMBENT,
ACCESS_MEDICAL, ACCESS_GENETICS, ACCESS_MORGUE, ACCESS_RD,
ACCESS_TOX, ACCESS_TOX_STORAGE, ACCESS_CHEMISTRY, ACCESS_ENGINE, ACCESS_ENGINE_EQUIP, ACCESS_MAINT_TUNNELS,
ACCESS_EXTERNAL_AIRLOCKS, ACCESS_CHANGE_IDS, ACCESS_AI_UPLOAD,
ACCESS_TELEPORTER, ACCESS_EVA, ACCESS_HEADS, ACCESS_CAPTAIN, ACCESS_ALL_PERSONAL_LOCKERS,
ACCESS_TECH_STORAGE, ACCESS_CHAPEL_OFFICE, ACCESS_ATMOSPHERICS, ACCESS_KITCHEN,
ACCESS_BAR, ACCESS_JANITOR, ACCESS_CREMATORIUM, ACCESS_ROBOTICS, ACCESS_CARGO, ACCESS_CONSTRUCTION,
ACCESS_BAR, ACCESS_JANITOR, ACCESS_CREMATORIUM, ACCESS_ROBOTICS, ACCESS_CARGO, ACCESS_CONSTRUCTION, ACCESS_BARISTA, ACCESS_BARBER,
ACCESS_HYDROPONICS, ACCESS_LIBRARY, ACCESS_LAWYER, ACCESS_VIROLOGY, ACCESS_CMO, ACCESS_QM, ACCESS_SURGERY,
ACCESS_THEATRE, ACCESS_RESEARCH, ACCESS_MINING, ACCESS_MAILSORTING, ACCESS_WEAPONS,
ACCESS_VAULT, ACCESS_MINING_STATION, ACCESS_XENOBIOLOGY, ACCESS_CE, ACCESS_HOP, ACCESS_HOS, ACCESS_RC_ANNOUNCE,
@@ -161,9 +161,9 @@
if(0)
return get_all_accesses()
if(1) //station general
return list(ACCESS_KITCHEN,ACCESS_BAR, ACCESS_HYDROPONICS, ACCESS_JANITOR, ACCESS_CHAPEL_OFFICE, ACCESS_CREMATORIUM, ACCESS_LIBRARY, ACCESS_THEATRE, ACCESS_LAWYER)
return list(ACCESS_KITCHEN,ACCESS_BAR, ACCESS_HYDROPONICS, ACCESS_JANITOR, ACCESS_CHAPEL_OFFICE, ACCESS_CREMATORIUM, ACCESS_LIBRARY, ACCESS_THEATRE, ACCESS_LAWYER, ACCESS_BARISTA, ACCESS_BARBER)
if(2) //security
return list(ACCESS_SEC_DOORS, ACCESS_WEAPONS, ACCESS_SECURITY, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_FORENSICS_LOCKERS, ACCESS_COURT, ACCESS_HOS, ACCESS_ENTER_GENPOP, ACCESS_LEAVE_GENPOP)
return list(ACCESS_SEC_DOORS, ACCESS_WEAPONS, ACCESS_SECURITY, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_FORENSICS_LOCKERS, ACCESS_COURT, ACCESS_HOS, ACCESS_ENTER_GENPOP, ACCESS_LEAVE_GENPOP, ACCESS_LAMBENT)
if(3) //medbay
return list(ACCESS_MEDICAL, ACCESS_GENETICS, ACCESS_CLONING, ACCESS_MORGUE, ACCESS_CHEMISTRY, ACCESS_VIROLOGY, ACCESS_SURGERY, ACCESS_CMO, ACCESS_PSYCH)
if(4) //research
@@ -224,6 +224,10 @@
return "RD Office"
if(ACCESS_BAR)
return "Bar"
if(ACCESS_BARBER)
return "Barber"
if(ACCESS_BARISTA)
return "Barista"
if(ACCESS_JANITOR)
return "Custodial Closet"
if(ACCESS_ENGINE)
@@ -322,6 +326,8 @@
return "Prison Turnstile Entrance"
if(ACCESS_LEAVE_GENPOP)
return "Prison Turnstile Exit"
if(ACCESS_LAMBENT)
return "Lambent's Quarters"
if(ACCESS_MINERAL_STOREROOM)
return "Mineral Storage"
if(ACCESS_MINISAT)
@@ -357,10 +363,10 @@
return "Code Scotch"
/proc/get_all_jobs()
return list("Assistant", "Captain", "Head of Personnel", "Bartender", "Cook", "Botanist", "Quartermaster", "Cargo Technician",
return list("Assistant", "Captain", "Head of Personnel", "Bartender", "Barista", "Barber", "Cook", "Botanist", "Quartermaster", "Cargo Technician",
"Shaft Miner", "Clown", "Mime", "Janitor", "Curator", "Lawyer", "Chaplain", "Chief Engineer", "Station Engineer", "Engineering Intern",
"Atmospheric Technician", "Chief Medical Officer", "Medical Doctor", "Chemist", "Geneticist", "Virologist", "Psychologist", "Medical Resident",
"Research Director", "Scientist", "Roboticist", "Research Student", "Head of Security", "Warden", "Detective", "Security Officer", "Rookie")
"Research Director", "Scientist", "Roboticist", "Research Student", "Head of Security", "Warden", "Detective", "Security Officer", "Rookie", "Lambent")
/proc/get_all_job_icons() //For all existing HUD icons
return get_all_jobs() + list("Prisoner")
+2 -2
View File
@@ -100,13 +100,13 @@ Head of Personnel
outfit = /datum/outfit/job/hop
access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_COURT, ACCESS_WEAPONS,
ACCESS_MEDICAL, ACCESS_ENGINE, ACCESS_CHANGE_IDS, ACCESS_AI_UPLOAD, ACCESS_EVA, ACCESS_HEADS,
ACCESS_MEDICAL, ACCESS_ENGINE, ACCESS_CHANGE_IDS, ACCESS_AI_UPLOAD, ACCESS_EVA, ACCESS_HEADS, ACCESS_BARISTA, ACCESS_BARBER,
ACCESS_ALL_PERSONAL_LOCKERS, ACCESS_MAINT_TUNNELS, ACCESS_BAR, ACCESS_JANITOR, ACCESS_CONSTRUCTION, ACCESS_MORGUE,
ACCESS_CREMATORIUM, ACCESS_KITCHEN, ACCESS_CARGO, ACCESS_CARGO_BOT, ACCESS_MAILSORTING, ACCESS_QM, ACCESS_HYDROPONICS, ACCESS_LAWYER,
ACCESS_THEATRE, ACCESS_CHAPEL_OFFICE, ACCESS_LIBRARY, ACCESS_RESEARCH, ACCESS_MINING, ACCESS_VAULT, ACCESS_MINING_STATION,
ACCESS_HOP, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, ACCESS_MINERAL_STOREROOM, ACCESS_PSYCH)
minimal_access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_COURT, ACCESS_WEAPONS,
ACCESS_MEDICAL, ACCESS_ENGINE, ACCESS_CHANGE_IDS, ACCESS_AI_UPLOAD, ACCESS_EVA, ACCESS_HEADS,
ACCESS_MEDICAL, ACCESS_ENGINE, ACCESS_CHANGE_IDS, ACCESS_AI_UPLOAD, ACCESS_EVA, ACCESS_HEADS, ACCESS_BARISTA, ACCESS_BARBER,
ACCESS_ALL_PERSONAL_LOCKERS, ACCESS_MAINT_TUNNELS, ACCESS_BAR, ACCESS_JANITOR, ACCESS_CONSTRUCTION, ACCESS_MORGUE,
ACCESS_CREMATORIUM, ACCESS_KITCHEN, ACCESS_CARGO, ACCESS_CARGO_BOT, ACCESS_MAILSORTING, ACCESS_QM, ACCESS_HYDROPONICS, ACCESS_LAWYER,
ACCESS_THEATRE, ACCESS_CHAPEL_OFFICE, ACCESS_LIBRARY, ACCESS_RESEARCH, ACCESS_MINING, ACCESS_VAULT, ACCESS_MINING_STATION,
+3 -3
View File
@@ -170,7 +170,7 @@ Bartender
outfit = /datum/outfit/job/bartender
access = list(ACCESS_HYDROPONICS, ACCESS_BAR, ACCESS_KITCHEN, ACCESS_MORGUE, ACCESS_WEAPONS, ACCESS_MINERAL_STOREROOM)
access = list(ACCESS_HYDROPONICS, ACCESS_BAR, ACCESS_KITCHEN, ACCESS_MORGUE, ACCESS_MINERAL_STOREROOM)
minimal_access = list(ACCESS_BAR, ACCESS_MINERAL_STOREROOM)
@@ -183,7 +183,7 @@ Bartender
ears = /obj/item/radio/headset/headset_srv
uniform = /obj/item/clothing/under/rank/bartender
suit = /obj/item/clothing/suit/armor/vest
backpack_contents = list(/obj/item/storage/box/beanbag=1,/obj/item/book/granter/action/drink_fling=1)
backpack_contents = list(/obj/item/book/granter/action/drink_fling=1)
shoes = /obj/item/clothing/shoes/laceup
/*
@@ -195,7 +195,7 @@ Cook
department_head = list("Head of Personnel")
department_flag = CIVILIAN
faction = "Station"
total_positions = 2
total_positions = 1
spawn_positions = 1
supervisors = "the head of personnel"
selection_color = "#bbe291"
+2 -2
View File
@@ -27,11 +27,11 @@ Head of Security
outfit = /datum/outfit/job/hos
access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_COURT, ACCESS_WEAPONS, ACCESS_ENTER_GENPOP, ACCESS_LEAVE_GENPOP,
ACCESS_FORENSICS_LOCKERS, ACCESS_MORGUE, ACCESS_MAINT_TUNNELS, ACCESS_ALL_PERSONAL_LOCKERS,
ACCESS_FORENSICS_LOCKERS, ACCESS_MORGUE, ACCESS_MAINT_TUNNELS, ACCESS_ALL_PERSONAL_LOCKERS, ACCESS_BARISTA, ACCESS_BARBER,
ACCESS_RESEARCH, ACCESS_ENGINE, ACCESS_MINING, ACCESS_MEDICAL, ACCESS_CONSTRUCTION, ACCESS_MAILSORTING,
ACCESS_HEADS, ACCESS_HOS, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, ACCESS_MAINT_TUNNELS, ACCESS_MINERAL_STOREROOM)
minimal_access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_COURT, ACCESS_WEAPONS, ACCESS_ENTER_GENPOP, ACCESS_LEAVE_GENPOP,
ACCESS_FORENSICS_LOCKERS, ACCESS_MORGUE, ACCESS_MAINT_TUNNELS, ACCESS_ALL_PERSONAL_LOCKERS,
ACCESS_FORENSICS_LOCKERS, ACCESS_MORGUE, ACCESS_MAINT_TUNNELS, ACCESS_ALL_PERSONAL_LOCKERS, ACCESS_BARISTA, ACCESS_BARBER,
ACCESS_RESEARCH, ACCESS_ENGINE, ACCESS_MINING, ACCESS_MEDICAL, ACCESS_CONSTRUCTION, ACCESS_MAILSORTING,
ACCESS_HEADS, ACCESS_HOS, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, ACCESS_MAINT_TUNNELS, ACCESS_MINERAL_STOREROOM)
+6
View File
@@ -1,5 +1,6 @@
GLOBAL_LIST_INIT(command_positions, list(
"Captain",
"Lambent",
"Head of Personnel",
"Head of Security",
"Chief Engineer",
@@ -37,6 +38,8 @@ GLOBAL_LIST_INIT(supply_positions, list(
GLOBAL_LIST_INIT(civilian_positions, list(
"Head of Personnel",
"Barista",
"Barber",
"Bartender",
"Botanist",
"Cook",
@@ -60,6 +63,9 @@ GLOBAL_LIST_INIT(nonhuman_positions, list(
"Cyborg",
ROLE_PAI))
GLOBAL_LIST_INIT(important_positions, list(
"Lambent"))
GLOBAL_LIST_INIT(silly_positions, list(
"Clown",
"Mime"))
@@ -5,24 +5,30 @@
icon_state = "caucasian_m"
appearance_flags = KEEP_TOGETHER|TILE_BOUND|PIXEL_SCALE|LONG_GLIDE
/mob/living/carbon/human/Initialize()
add_verb(src, /mob/living/proc/mob_sleep)
add_verb(src, /mob/living/proc/lay_down)
time_initialized = world.time
//initialize limbs first
create_bodyparts()
//initialize dna. for spawned humans; overwritten by other code
create_dna(src)
randomize_human(src)
dna.initialize_dna()
if(dna.species)
set_species(dna.species.type)
//initialise organs
create_internal_organs() //most of it is done in set_species now, this is only for parent call
physiology = new()
AddComponent(/datum/component/personal_crafting)
. = ..()
RegisterSignal(src, COMSIG_COMPONENT_CLEAN_ACT, /mob/living/carbon/human/clean_blood)
+2 -1
View File
@@ -77,7 +77,8 @@
var/mob/living/carbon/human/B = src
if(HAS_TRAIT(B, TRAIT_CHOKE_SLUT))
B.adjustArousalLoss(7)
B.mob_climax_instant()
if (B.getArousalLoss() >= 100 && ishuman(B) && B.has_dna())
B.mob_climax(forced_climax=TRUE)
else
SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "suffocation", /datum/mood_event/suffocation)
else
@@ -463,7 +463,7 @@
/obj/item/paint/anycolor,
/obj/item/cookiesynth,
/obj/item/pneumatic_cannon/pie/selfcharge/cyborg,
/obj/item/razor, //killbait material
///obj/item/razor, //killbait material
/obj/item/lipstick/purple,
/obj/item/soap/nanotrasen,
/obj/item/reagent_containers/spray/waterflower/cyborg,
@@ -497,7 +497,7 @@
/obj/item/toy/crayon/spraycan/borg,
/obj/item/extinguisher/mini,
/obj/item/hand_labeler/borg,
/obj/item/razor,
///obj/item/razor,
/obj/item/crowbar/cyborg,
/obj/item/instrument/violin,
/obj/item/soap/nanotrasen,
@@ -132,7 +132,7 @@
if(inventory_back)
armorval += inventory_back.armor.getRating(type)
return armorval*0.5
/*
/mob/living/simple_animal/pet/dog/corgi/attackby(obj/item/O, mob/user, params)
if (istype(O, /obj/item/razor))
if (shaved)
@@ -155,7 +155,7 @@
return
..()
update_corgi_fluff()
*/
/mob/living/simple_animal/pet/dog/corgi/Topic(href, href_list)
if(!(iscarbon(usr) || iscyborg(usr)) || !usr.canUseTopic(src, BE_CLOSE, FALSE, NO_TK))
usr << browse(null, "window=mob[REF(src)]")
@@ -282,16 +282,16 @@
. = ..()
if(.)
return
if(chalice_taken)
if(chalice_taken == 1)
to_chat(user, "<i>You hear a voice in your head... <b>\"My chalice has already been taken, dear. I cannot give you another...\"</i></b>")
return
if(user.getArousalLoss() < 100)
to_chat(user, "<i>You hear a voice in your head... <b>\"You are not horny enough to receive my blessing, dear~\"</i></b>")
return
var/mob/living/carbon/user_carbon = user
user_carbon.mob_climax_instant()
to_chat(user, "<i>You hear a voice in your head... <b>\"You are worthy of my blessing, dear~\"</i></b>")
to_chat(user, "<span class='userdanger'>You feel overpowering pleasure surge through your entire body.</span>")
var/A = new /obj/item/reagent_containers/chalice/lust
user.put_in_hands(A)
chalice_taken = TRUE
if (ishuman(user) && user.has_dna())
user.mob_climax(forced_climax=TRUE)
to_chat(user, "<i>You hear a voice in your head... <b>\"You are worth of my blessing dear~\"</i></b>")
to_chat(user, "<span class='userdanger'>You feel overpowering pleasure surge through your entire body.</span>")
var/A = new /obj/item/reagent_containers/chalice/lust
user.put_in_hands(A)
chalice_taken = 1