mirror of
https://github.com/quotefox/Hyper-Station-13.git
synced 2026-07-19 03:33:00 +01:00
MultiZ Layenia Base
This commit is contained in:
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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"
|
||||
@@ -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
|
||||
..()
|
||||
..()
|
||||
*/
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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),
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
*/
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user