Merge remote-tracking branch 'citadel/master' into god_wish_your_plushies_holy_shit
This commit is contained in:
@@ -8,8 +8,8 @@
|
||||
size = 1 //There is only 1 size right now
|
||||
genital_flags = CAN_MASTURBATE_WITH|CAN_CLIMAX_WITH
|
||||
masturbation_verb = "finger"
|
||||
arousal_verb = "You feel wetness on your crotch."
|
||||
unarousal_verb = "You no longer feel wet."
|
||||
arousal_verb = "You feel wetness on your crotch"
|
||||
unarousal_verb = "You no longer feel wet"
|
||||
fluid_transfer_factor = 0.1 //Yes, some amount is exposed to you, go get your AIDS
|
||||
layer_index = VAGINA_LAYER_INDEX
|
||||
var/cap_length = 8//D E P T H (cap = capacity)
|
||||
|
||||
@@ -305,7 +305,7 @@ datum/gear/darksabresheath
|
||||
/datum/gear/flagcape
|
||||
name = "US Flag Cape"
|
||||
category = SLOT_IN_BACKPACK
|
||||
path = /obj/item/bedsheet/custom/flagcape
|
||||
path = /obj/item/clothing/neck/flagcape
|
||||
ckeywhitelist = list("darnchacha")
|
||||
|
||||
/datum/gear/luckyjack
|
||||
@@ -488,3 +488,9 @@ datum/gear/darksabresheath
|
||||
category = SLOT_SHOES
|
||||
path = /obj/item/clothing/shoes/sneakers/mikuleggings
|
||||
ckeywhitelist = list("grandvegeta")
|
||||
|
||||
/datum/gear/cosmos
|
||||
name = "cosmic space bedsheet"
|
||||
category = SLOT_IN_BACKPACK
|
||||
path = /obj/item/bedsheet/cosmos
|
||||
ckeywhitelist = list("grunnyyy")
|
||||
|
||||
@@ -13,7 +13,7 @@ GLOBAL_LIST_EMPTY(loadout_whitelist_ids)
|
||||
LAZYINITLIST(GLOB.loadout_whitelist_ids)
|
||||
var/list/file_lines = world.file2list(loadout_config)
|
||||
for(var/line in file_lines)
|
||||
if(!line || findtextEx(line,"#",1,2))
|
||||
if(!line || line[1] == "#")
|
||||
continue
|
||||
var/list/lineinfo = splittext(line, "|")
|
||||
var/lineID = lineinfo[1]
|
||||
@@ -21,7 +21,7 @@ GLOBAL_LIST_EMPTY(loadout_whitelist_ids)
|
||||
var/sublinetypedef = findtext(subline, "=")
|
||||
if(sublinetypedef)
|
||||
var/sublinetype = copytext(subline, 1, sublinetypedef)
|
||||
var/list/sublinecontent = splittext(copytext(subline, sublinetypedef+1), ",")
|
||||
var/list/sublinecontent = splittext(copytext(subline, sublinetypedef+ length(sublinetypedef)), ",")
|
||||
if(sublinetype == "WHITELIST")
|
||||
GLOB.loadout_whitelist_ids["[lineID]"] = sublinecontent
|
||||
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
/datum/gear/stethoscope
|
||||
/datum/gear/medicbriefcase
|
||||
name = "Medical Briefcase"
|
||||
category = SLOT_HANDS
|
||||
path = /obj/item/storage/briefcase/medical
|
||||
restricted_roles = list("Medical Doctor", "Chief Medical Officer")
|
||||
restricted_desc = "MD, CMO"
|
||||
|
||||
/datum/gear/stethoscope
|
||||
name = "Stethoscope"
|
||||
@@ -30,3 +31,17 @@
|
||||
path = /obj/item/clothing/under/rank/medical/purple
|
||||
restricted_roles = list("Medical Doctor", "Chief Medical Officer", "Geneticist", "Chemist", "Virologist")
|
||||
restricted_desc = "Medical"
|
||||
|
||||
/datum/gear/nursehat
|
||||
name = "Nurse Hat"
|
||||
category = SLOT_HEAD
|
||||
path = /obj/item/clothing/head/nursehat
|
||||
restricted_roles = list("Medical Doctor", "Chief Medical Officer", "Geneticist", "Chemist", "Virologist")
|
||||
restricted_desc = "Medical"
|
||||
|
||||
/datum/gear/nursesuit
|
||||
name = "Nurse Suit"
|
||||
category = SLOT_W_UNIFORM
|
||||
path = /obj/item/clothing/under/rank/nursesuit
|
||||
restricted_roles = list("Medical Doctor", "Chief Medical Officer", "Geneticist", "Chemist", "Virologist")
|
||||
restricted_desc = "Medical"
|
||||
@@ -128,4 +128,22 @@
|
||||
category = SLOT_IN_BACKPACK
|
||||
path = /obj/item/modular_computer/laptop/preset/civilian
|
||||
cost = 7
|
||||
|
||||
/datum/gear/ringbox_gold
|
||||
name = "A gold ring box"
|
||||
category = SLOT_IN_BACKPACK
|
||||
path = /obj/item/storage/fancy/ringbox
|
||||
cost = 3
|
||||
|
||||
/datum/gear/ringbox_silver
|
||||
name = "A silver ring box"
|
||||
category = SLOT_IN_BACKPACK
|
||||
path = /obj/item/storage/fancy/ringbox/silver
|
||||
cost = 3
|
||||
|
||||
/datum/gear/ringbox_diamond
|
||||
name = "A diamond ring box"
|
||||
category = SLOT_IN_BACKPACK
|
||||
path = /obj/item/storage/fancy/ringbox/diamond
|
||||
cost = 5
|
||||
|
||||
|
||||
@@ -2,3 +2,22 @@
|
||||
name = "Fingerless Gloves"
|
||||
category = SLOT_GLOVES
|
||||
path = /obj/item/clothing/gloves/fingerless
|
||||
|
||||
/datum/gear/goldring
|
||||
name = "A gold ring"
|
||||
category = SLOT_GLOVES
|
||||
path = /obj/item/clothing/gloves/ring
|
||||
cost = 2
|
||||
|
||||
/datum/gear/silverring
|
||||
name = "A silver ring"
|
||||
category = SLOT_GLOVES
|
||||
path = /obj/item/clothing/gloves/ring/silver
|
||||
cost = 2
|
||||
|
||||
/datum/gear/diamondring
|
||||
name = "A diamond ring"
|
||||
category = SLOT_GLOVES
|
||||
path = /obj/item/clothing/gloves/ring/diamond
|
||||
cost = 4
|
||||
|
||||
|
||||
@@ -59,6 +59,11 @@
|
||||
category = SLOT_HEAD
|
||||
path = /obj/item/clothing/head/rabbitears
|
||||
|
||||
/datum/gear/mailmanhat
|
||||
name = "Mailman's Hat"
|
||||
category = SLOT_HEAD
|
||||
path = /obj/item/clothing/head/mailman
|
||||
|
||||
//trek fancy Hats!
|
||||
/datum/gear/trekcap
|
||||
name = "Federation Officer's Cap (White)"
|
||||
@@ -105,6 +110,7 @@
|
||||
path = /obj/item/clothing/head/christmashatg
|
||||
*/
|
||||
|
||||
//Cowboy Stuff
|
||||
/datum/gear/cowboyhat
|
||||
name = "Cowboy Hat, Brown"
|
||||
category = SLOT_HEAD
|
||||
|
||||
@@ -79,6 +79,12 @@
|
||||
category = SLOT_WEAR_SUIT
|
||||
path = /obj/item/clothing/suit/hooded/wintercoat/ratvar/fake
|
||||
|
||||
/datum/gear/coat/polycoat
|
||||
name = "Polychromic winter coat"
|
||||
category = SLOT_WEAR_SUIT
|
||||
path = /obj/item/clothing/suit/hooded/wintercoat/polychromic
|
||||
cost = 4 //too many people with neon green coats is hard on the eyes
|
||||
|
||||
/* Commented out until it is "balanced"
|
||||
/datum/gear/coat/sec
|
||||
name = "Security winter coat"
|
||||
|
||||
@@ -23,9 +23,6 @@
|
||||
var/hound_sleeper = TRUE
|
||||
var/cit_toggles = TOGGLES_CITADEL
|
||||
|
||||
// stuff that was in base
|
||||
max_save_slots = 10
|
||||
|
||||
|
||||
/datum/preferences/New(client/C)
|
||||
..()
|
||||
|
||||
@@ -364,10 +364,11 @@
|
||||
worn_x_dimension = 64
|
||||
worn_y_dimension = 34
|
||||
|
||||
/obj/item/bedsheet/custom/flagcape
|
||||
/obj/item/clothing/neck/flagcape
|
||||
name = "Flag Cape"
|
||||
desc = "A truly patriotic form of heroic attire."
|
||||
icon = 'icons/obj/custom.dmi'
|
||||
resistance_flags = FLAMMABLE
|
||||
alternate_worn_icon = 'icons/mob/custom_w.dmi'
|
||||
icon_state = "flagcape"
|
||||
item_state = "flagcape"
|
||||
|
||||
@@ -13,18 +13,18 @@ GLOBAL_LIST(custom_item_list)
|
||||
GLOB.custom_item_list = list()
|
||||
var/list/file_lines = world.file2list(custom_filelist)
|
||||
for(var/line in file_lines)
|
||||
if(length(line) == 0) //Emptyline, no one cares.
|
||||
if(!length(line)) //Emptyline, no one cares.
|
||||
continue
|
||||
if(copytext(line,1,3) == "//") //Commented line, ignore.
|
||||
if(copytext(line,1,3) == "//") //Commented line, ignore. 3 == length("//") + 1
|
||||
continue
|
||||
var/ckey_str_sep = findtext(line, "|") //Process our stuff..
|
||||
var/char_str_sep = findtext(line, "|", ckey_str_sep+1)
|
||||
var/job_str_sep = findtext(line, "|", char_str_sep+1)
|
||||
var/item_str_sep = findtext(line, "|", job_str_sep+1)
|
||||
var/char_str_sep = findtext(line, "|", ckey_str_sep + length(ckey_str_sep))
|
||||
var/job_str_sep = findtext(line, "|", char_str_sep + length(char_str_sep))
|
||||
var/item_str_sep = findtext(line, "|", job_str_sep + length(job_str_sep))
|
||||
var/ckey_str = ckey(copytext(line, 1, ckey_str_sep))
|
||||
var/char_str = copytext(line, ckey_str_sep+1, char_str_sep)
|
||||
var/job_str = copytext(line, char_str_sep+1, job_str_sep)
|
||||
var/item_str = copytext(line, job_str_sep+1, item_str_sep)
|
||||
var/char_str = copytext(line, ckey_str_sep + length(ckey_str_sep), char_str_sep)
|
||||
var/job_str = copytext(line, char_str_sep + length(char_str_sep), job_str_sep)
|
||||
var/item_str = copytext(line, job_str_sep + length(job_str_sep), item_str_sep)
|
||||
if(!ckey_str || !char_str || !job_str || !item_str || !length(ckey_str) || !length(char_str) || !length(job_str) || !length(item_str))
|
||||
log_admin("Errored custom_items_whitelist line: [line] - Component/separator missing!")
|
||||
if(!islist(GLOB.custom_item_list[ckey_str]))
|
||||
@@ -42,7 +42,7 @@ GLOBAL_LIST(custom_item_list)
|
||||
for(var/item_string in item_strings)
|
||||
var/path_str_sep = findtext(item_string, "=")
|
||||
var/path = copytext(item_string, 1, path_str_sep) //Path to spawn
|
||||
var/amount = copytext(item_string, path_str_sep+1) //Amount to spawn
|
||||
var/amount = copytext(item_string, path_str_sep + length(path_str_sep)) //Amount to spawn
|
||||
//world << "DEBUG: Item string [item_string] processed"
|
||||
amount = text2num(amount)
|
||||
path = text2path(path)
|
||||
|
||||
@@ -10,9 +10,9 @@
|
||||
spawn(300)
|
||||
verbs += /client/verb/mentorhelp // 30 second cool-down for mentorhelp
|
||||
|
||||
msg = sanitize(copytext(msg,1,MAX_MESSAGE_LEN))
|
||||
if(!msg) return
|
||||
if(!mob) return //this doesn't happen
|
||||
msg = sanitize(copytext_char(msg, 1, MAX_MESSAGE_LEN))
|
||||
if(!msg || !mob)
|
||||
return
|
||||
|
||||
var/show_char = CONFIG_GET(flag/mentors_mobname_only)
|
||||
var/mentor_msg = "<span class='mentornotice'><b><font color='purple'>MENTORHELP:</b> <b>[key_name_mentor(src, 1, 0, 1, show_char)]</b>: [msg]</font></span>"
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
if (!C.is_mentor() && !is_mentor())
|
||||
return
|
||||
|
||||
msg = sanitize(copytext(msg,1,MAX_MESSAGE_LEN))
|
||||
msg = sanitize(copytext_char(msg, 1, MAX_MESSAGE_LEN))
|
||||
if(!msg && is_mentor(whom))
|
||||
to_chat(GLOB.admins | GLOB.mentors, "<span class='purple'>[src] has stopped their reply to [whom]'s mhelp.</span>")
|
||||
return
|
||||
|
||||
@@ -5,8 +5,9 @@
|
||||
if(!is_mentor())
|
||||
return
|
||||
|
||||
msg = copytext(sanitize(msg), 1, MAX_MESSAGE_LEN)
|
||||
if(!msg) return
|
||||
msg = copytext_char(sanitize(msg), 1, MAX_MESSAGE_LEN)
|
||||
if(!msg)
|
||||
return
|
||||
|
||||
msg = emoji_parse(msg)
|
||||
log_mentor("MSAY: [key_name(src)] : [msg]")
|
||||
|
||||
@@ -12,8 +12,11 @@
|
||||
|
||||
/mob/living/carbon/human/movement_delay()
|
||||
. = 0
|
||||
if(!resting && m_intent == MOVE_INTENT_RUN && !sprinting)
|
||||
. += 1
|
||||
if(!resting && m_intent == MOVE_INTENT_RUN && sprinting)
|
||||
var/static/datum/config_entry/number/movedelay/sprint_speed_increase/SSI
|
||||
if(!SSI)
|
||||
SSI = CONFIG_GET_ENTRY(number/movedelay/sprint_speed_increase)
|
||||
. -= SSI.config_entry_value
|
||||
if(wrongdirmovedelay)
|
||||
. += 1
|
||||
. += ..()
|
||||
|
||||
@@ -17,6 +17,12 @@
|
||||
var/sprint_stamina_cost = 0.70 //stamina loss per tile while insufficient sprint buffer.
|
||||
//---End
|
||||
|
||||
/mob/living/update_config_movespeed()
|
||||
. = ..()
|
||||
sprint_buffer_max = CONFIG_GET(number/movedelay/sprint_buffer_max)
|
||||
sprint_buffer_regen_ds = CONFIG_GET(number/movedelay/sprint_buffer_regen_per_ds)
|
||||
sprint_stamina_cost = CONFIG_GET(number/movedelay/sprint_stamina_cost)
|
||||
|
||||
/mob/living/movement_delay(ignorewalk = 0)
|
||||
. = ..()
|
||||
if(resting)
|
||||
|
||||
@@ -333,6 +333,8 @@ Creating a chem with a low purity will make you permanently fall in love with so
|
||||
..()
|
||||
|
||||
/datum/reagent/fermi/proc/FallInLove(mob/living/carbon/Lover, mob/living/carbon/Love)
|
||||
if(Lover.client?.prefs.cit_toggles & NEVER_HYPNO)
|
||||
return // doesn't even give a message, it's just ignored
|
||||
if(Lover.has_status_effect(STATUS_EFFECT_INLOVE))
|
||||
to_chat(Lover, "<span class='warning'>You are already fully devoted to someone else!</span>")
|
||||
return
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
if(clear_conversion == REACTION_CLEAR_IMPURE | REACTION_CLEAR_INVERSE)
|
||||
for(var/id in results)
|
||||
var/datum/reagent/R = my_atom.reagents.has_reagent(id)
|
||||
if(R.purity == 1)
|
||||
if(!R || R.purity == 1)
|
||||
continue
|
||||
|
||||
var/cached_volume = R.volume
|
||||
@@ -25,7 +25,6 @@
|
||||
my_atom.reagents.add_reagent(R.impure_chem, impureVol, FALSE, other_purity = 1)
|
||||
R.cached_purity = R.purity
|
||||
R.purity = 1
|
||||
return
|
||||
|
||||
//Called when temperature is above a certain threshold, or if purity is too low.
|
||||
/datum/chemical_reaction/proc/FermiExplode(datum/reagents/R0, var/atom/my_atom, volume, temp, pH, Exploding = FALSE)
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
if(!istype(cont))
|
||||
return
|
||||
if(used == TRUE)
|
||||
to_chat(user, "<span class='warning'>[user] has already been used!</span>")
|
||||
to_chat(user, "<span class='warning'>[src] has already been used!</span>")
|
||||
return
|
||||
if(!LAZYLEN(cont.reagents.reagent_list))
|
||||
return
|
||||
@@ -107,6 +107,7 @@
|
||||
if(-INFINITY to 1)
|
||||
color = "#c6040c"
|
||||
desc += " The paper looks to be around a pH of [round(cont.reagents.pH, 1)]"
|
||||
name = "used [name]"
|
||||
used = TRUE
|
||||
|
||||
/obj/item/fermichem/pHmeter
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//body bluids
|
||||
/datum/reagent/consumable/semen
|
||||
name = "Semen"
|
||||
description = "Sperm from some animal. I bet you'll drink this out of a bucket someday."
|
||||
description = "Sperm from some animal. Useless for anything but insemination, really."
|
||||
taste_description = "something salty"
|
||||
taste_mult = 2 //Not very overpowering flavor
|
||||
data = list("donor"=null,"viruses"=null,"donor_DNA"=null,"blood_type"=null,"resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null)
|
||||
@@ -32,15 +32,15 @@
|
||||
icon_state = "semen1"
|
||||
random_icon_states = list("semen1", "semen2", "semen3", "semen4")
|
||||
|
||||
/obj/effect/decal/cleanable/semen/New()
|
||||
..()
|
||||
dir = pick(1,2,4,8)
|
||||
/obj/effect/decal/cleanable/semen/Initialize(mapload)
|
||||
. = ..()
|
||||
dir = GLOB.cardinals
|
||||
add_blood_DNA(list("Non-human DNA" = "A+"))
|
||||
|
||||
/obj/effect/decal/cleanable/semen/replace_decal(obj/effect/decal/cleanable/semen/S)
|
||||
if(S.blood_DNA)
|
||||
blood_DNA |= S.blood_DNA.Copy()
|
||||
..()
|
||||
blood_DNA |= S.blood_DNA
|
||||
return ..()
|
||||
|
||||
/datum/reagent/consumable/femcum
|
||||
name = "Female Ejaculate"
|
||||
@@ -65,15 +65,15 @@
|
||||
blood_state = null
|
||||
bloodiness = null
|
||||
|
||||
/obj/effect/decal/cleanable/femcum/New()
|
||||
..()
|
||||
dir = pick(1,2,4,8)
|
||||
/obj/effect/decal/cleanable/femcum/Initialize(mapload)
|
||||
. = ..()
|
||||
dir = GLOB.cardinals
|
||||
add_blood_DNA(list("Non-human DNA" = "A+"))
|
||||
|
||||
/obj/effect/decal/cleanable/femcum/replace_decal(obj/effect/decal/cleanable/femcum/F)
|
||||
if(F.blood_DNA)
|
||||
blood_DNA |= F.blood_DNA.Copy()
|
||||
..()
|
||||
blood_DNA |= F.blood_DNA
|
||||
return ..()
|
||||
|
||||
/datum/reagent/consumable/femcum/reaction_turf(turf/T, reac_volume)
|
||||
if(!istype(T))
|
||||
|
||||
Reference in New Issue
Block a user