# Conflicts:
#	code/game/machinery/vending_yw.dm
#	icons/vore/custom_clothes_yw.dmi
#	vorestation.dme
This commit is contained in:
Repede
2019-11-29 19:13:53 -05:00
760 changed files with 248405 additions and 198422 deletions
@@ -139,7 +139,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
else
O.robotize()
for(var/name in list(O_HEART,O_EYES,O_LUNGS,O_LIVER,O_KIDNEYS,O_BRAIN))
for(var/name in list(O_HEART,O_EYES,O_VOICE,O_LUNGS,O_LIVER,O_KIDNEYS,O_SPLEEN,O_STOMACH,O_INTESTINE,O_BRAIN))
var/status = pref.organ_data[name]
if(!status)
continue
@@ -237,6 +237,8 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
organ_name = "heart"
if(O_EYES)
organ_name = "eyes"
if(O_VOICE)
organ_name = "larynx"
if(O_BRAIN)
organ_name = "brain"
if(O_LUNGS)
@@ -245,6 +247,12 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
organ_name = "liver"
if(O_KIDNEYS)
organ_name = "kidneys"
if(O_SPLEEN)
organ_name = "spleen"
if(O_STOMACH)
organ_name = "stomach"
if(O_INTESTINE)
organ_name = "intestines"
if(status == "cyborg")
++ind
@@ -708,7 +716,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
else if(href_list["organs"])
var/organ_name = input(user, "Which internal function do you want to change?") as null|anything in list("Heart", "Eyes", "Lungs", "Liver", "Kidneys", "Brain")
var/organ_name = input(user, "Which internal function do you want to change?") as null|anything in list("Heart", "Eyes","Larynx", "Lungs", "Liver", "Kidneys", "Spleen", "Intestines", "Stomach", "Brain")
if(!organ_name) return
var/organ = null
@@ -717,12 +725,20 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
organ = O_HEART
if("Eyes")
organ = O_EYES
if("Larynx")
organ = O_VOICE
if("Lungs")
organ = O_LUNGS
if("Liver")
organ = O_LIVER
if("Kidneys")
organ = O_KIDNEYS
if("Spleen")
organ = O_SPLEEN
if("Intestines")
organ = O_INTESTINE
if("Stomach")
organ = O_STOMACH
if("Brain")
if(pref.organ_data[BP_HEAD] != "cyborg")
user << "<span class='warning'>You may only select a cybernetic or synthetic brain if you have a full prosthetic body.</span>"
@@ -135,6 +135,12 @@ var/list/_client_preferences_by_type
enabled_description = "Show"
disabled_description = "Hide"
/datum/client_preference/air_pump_noise
description ="Air Pump Ambient Noise"
key = "SOUND_AIRPUMP"
enabled_description = "Audible"
disabled_description = "Silent"
/datum/client_preference/mob_tooltips
description ="Mob tooltips"
key = "MOB_TOOLTIPS"
@@ -0,0 +1,14 @@
/datum/gear_tweak/collar_tag/get_contents(var/metadata)
return "Tag: [metadata]"
/datum/gear_tweak/collar_tag/get_default()
return ""
/datum/gear_tweak/collar_tag/get_metadata(var/user, var/metadata)
return sanitize( input(user, "Choose the tag text", "Character Preference", metadata) as text , MAX_NAME_LEN )
/datum/gear_tweak/collar_tag/tweak_item(var/obj/item/clothing/accessory/collar/C, var/metadata)
if(metadata == "")
return
else
C.initialize_tag(metadata)
@@ -70,10 +70,13 @@ var/list/gear_datums = list()
continue
if(max_cost && G.cost > max_cost)
continue
if(G.ckeywhitelist && !(preference_mob.ckey in G.ckeywhitelist)) //Vorestation Edit
continue //Vorestation Edit
if(G.character_name && !(preference_mob.client.prefs.real_name in G.character_name)) //Vorestation Edit
continue //Vorestation Edit
//VOREStation Edit Start
if(preference_mob && preference_mob.client)
if(G.ckeywhitelist && !(preference_mob.ckey in G.ckeywhitelist))
continue
if(G.character_name && !(preference_mob.client.prefs.real_name in G.character_name))
continue
//VOREStation Edit End
. += gear_name
/datum/category_item/player_setup_item/loadout/sanitize_character()
@@ -150,10 +153,13 @@ var/list/gear_datums = list()
. += "<tr><td colspan=3><hr></td></tr>"
for(var/gear_name in LC.gear)
var/datum/gear/G = LC.gear[gear_name]
if(G.ckeywhitelist && !(preference_mob.ckey in G.ckeywhitelist)) //Vorestation Edit
continue //Vorestation Edit
if(G.character_name && !(preference_mob.client.prefs.real_name in G.character_name)) //Vorestation Edit
continue //Vorestation Edit
//VOREStation Edit Start
if(preference_mob && preference_mob.client)
if(G.ckeywhitelist && !(preference_mob.ckey in G.ckeywhitelist))
continue
if(G.character_name && !(preference_mob.client.prefs.real_name in G.character_name))
continue
//VOREStation Edit End
var/ticked = (G.display_name in pref.gear)
. += "<tr style='vertical-align:top;'><td width=25%><a style='white-space:normal;' [ticked ? "class='linkOn' " : ""]href='?src=\ref[src];toggle_gear=[html_encode(G.display_name)]'>[G.display_name]</a></td>"
. += "<td width = 10% style='vertical-align:top'>[G.cost]</td>"
@@ -271,4 +277,7 @@ var/list/gear_datums = list()
var/item = new gd.path(gd.location)
for(var/datum/gear_tweak/gt in gear_tweaks)
gt.tweak_item(item, metadata["[gt]"])
var/mob/M = location
if(istype(M) && exploitable) //Update exploitable info records for the mob without creating a duplicate object at their feet.
M.amend_exploitable(item)
return item
@@ -6,6 +6,10 @@
slot = slot_tie
sort_category = "Accessories"
/datum/gear/collar/New()
..()
gear_tweaks = list(gear_tweak_collar_tag)
/datum/gear/collar/golden
display_name = "collar, golden"
path = /obj/item/clothing/accessory/collar/gold
@@ -34,6 +34,12 @@
ckeywhitelist = list("aegisoa")
character_name = list("Xander Bevin")
/datum/gear/fluff/xander_medal
path = /obj/item/clothing/accessory/medal/conduct
display_name = "Xander's Conduct Medal"
ckeywhitelist = list("aegisoa")
character_name = list("Xander Bevin")
/datum/gear/fluff/lynn_penlight
path = /obj/item/device/flashlight/pen/fluff/lynn
display_name = "Lynn's Penlight"
@@ -85,6 +91,12 @@
ckeywhitelist = list("beyondmylife")
character_name = list("Ne'tra Ky'ram")
/datum/gear/fluff/nolan_medal
path = /obj/item/clothing/accessory/medal/silver/unity
display_name = "Nolan's Unity Medal"
ckeywhitelist = list("blakeryan")
character_name = list("Nolan Conaway")
/datum/gear/fluff/xin_sovietuniform
path = /obj/item/clothing/under/soviet
display_name = "Xin's Soviet Uniform"
@@ -98,6 +110,24 @@
ckeywhitelist = list("bwoincognito")
character_name = list("Tasald Corlethian")
/datum/gear/fluff/tasald_cartographer_jumpsuit
path = /obj/item/clothing/under/solgov/utility/sifguard/officer/exploration
display_name = "Tasald's Cartographer's uniform - jumpsuit"
ckeywhitelist = list("bwoincognito")
character_name = list("Tasald Corlethian")
/datum/gear/fluff/tasald_cartographer_jacket
path = /obj/item/clothing/suit/storage/service/sifguard/command
display_name = "Tasald's Cartographer's uniform - jacket"
ckeywhitelist = list("bwoincognito")
character_name = list("Tasald Corlethian")
/datum/gear/fluff/tasald_cartographer_beret
path = /obj/item/clothing/head/beret/sol/expedition/command
display_name = "Tasald's Cartographer's uniform - beret"
ckeywhitelist = list("bwoincognito")
character_name = list("Tasald Corlethian")
/datum/gear/fluff/octavius_box
path = /obj/item/weapon/storage/box/fluff/octavious
display_name = "Octavious' Box"
@@ -210,6 +240,12 @@
ckeywhitelist = list("epigraphzero")
character_name = list("Verd Woodrow")
/datum/gear/fluff/erik_medal
path = /obj/item/clothing/accessory/medal/silver/unity
display_name = "Erik's Unity Medal"
ckeywhitelist = list("erikthedog")
character_name = list("Erik Ramadwood")
// F CKEYS
// G CKEYS
@@ -708,6 +744,12 @@
ckeywhitelist = list("techtypes")
character_name = list("Lasshseeki Korss")
/datum/gear/fluff/nick_medal
path = /obj/item/clothing/accessory/medal/conduct
display_name = "Nick's Conduct Medal"
ckeywhitelist = list("thedavestdave")
character_name = list("Nick Sloan")
/datum/gear/fluff/konor_medal
path = /obj/item/clothing/accessory/medal/silver/unity
display_name = "Konor's Unity Medal"
@@ -842,27 +884,30 @@
path = /obj/item/clothing/glasses/omnihud/med/fluff/wickedtemphud
display_name = "Tempest's Medical Hud"
ckeywhitelist = list("wickedtemp")
character_name = list("Chakat Tempest Venesare")
character_name = list("Chakat Tempest Venosare")
allowed_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Psychiatrist","Paramedic", "Field Medic")
slot = slot_glasses
/datum/gear/fluff/tempest_hypospray
path = /obj/item/weapon/reagent_containers/hypospray/vial/tempest
display_name = "Tempest's Hypospray"
ckeywhitelist = list("wickedtemp")
character_name = list("Chakat Tempest Venesare")
character_name = list("Chakat Tempest Venosare")
allowed_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Psychiatrist","Paramedic", "Field Medic")
slot = slot_belt
/datum/gear/fluff/tempest_backpack
path = /obj/item/weapon/storage/backpack/saddlebag/tempest
display_name = "Tempest's Saddlebag"
ckeywhitelist = list("wickedtemp")
character_name = list("Chakat Tempest Venesare")
character_name = list("Chakat Tempest Venosare")
slot = slot_back
/datum/gear/fluff/tempest_implant
path = /obj/item/weapon/implanter/reagent_generator/tempest
display_name = "Tempest's Implant"
ckeywhitelist = list("wickedtemp")
character_name = list("Chakat Tempest Venesare")
character_name = list("Chakat Tempest Venosare")
// X CKEYS
/datum/gear/fluff/penelope_box
@@ -897,3 +942,9 @@
display_name = "Nehi's Radio"
ckeywhitelist = list("zodiacshadow")
character_name = list("Nehi Maximus")
/datum/gear/fluff/star_sweater
path = /obj/item/clothing/accessory/sweater/fluff/star
display_name = "Star Sweater"
ckeywhitelist = list("bacon12366")
character_name = list("Elly Brown")
@@ -110,6 +110,20 @@
ckeywhitelist = list("blackangelsace")
character_name = list("Strix Hades")
/datum/gear/fluff/strix_coat_cco
path = /obj/item/clothing/suit/storage/seromi/cloak/fluff/strix_cco
display_name = "Central Command Coat"
description = "It drapes over a Avali's shoulders and closes at the neck with pockets convienently placed inside. It bears the Central Command's colors. The name 'Strix Hades' is embroilled in gold lettering around a golden embroilled outline on the neck collar."
ckeywhitelist = list("blackangelsace")
character_name = list("Strix Hades")
/datum/gear/fluff/strix_under_cco
path = /obj/item/clothing/under/seromi/undercoat/fluff/strix_cco
display_name = "Central Command Undercoat"
description = "Made of carbon nanofiber, it is light and billowy, perfect for going fast and stylishly!"
ckeywhitelist = list("blackangelsace")
character_name = list("Strix Hades")
//benl8561
//M.I.S.S.Y
/datum/gear/fluff/missy_skirt
@@ -145,6 +159,15 @@
// C CKEYS
//cheekycrenando
//Srusu Rskuzu-Ahslru
/datum/gear/fluff/srususovietuniform
path = /obj/item/clothing/under/fluff/srususoviet
display_name = "Soviet Uniform"
description = "Standard issue soviet dress uniform"
ckeywhitelist = list("cheekycrenando")
character_name = list("Srusu Rskuzu-Ahslru")
//captmatt4
//Payton Joghs
/datum/gear/fluff/payton_joghs_1
@@ -154,6 +177,14 @@
ckeywhitelist = list("captmatt4")
character_name = list("Payton Joghs")
//Kaenin Qerrlar
/datum/gear/fluff/kaenin_qerrlar_1
path = /obj/item/clothing/accessory/medal/silver/fluff/kaeninmedal
display_name = "Kaenin Qerrlar's medal of valor"
description = "A silver medal, polished to a shine. On it, it says \"For Honorable Service, Kaenin Qerrlar, among the first to volunteer to save the world of Virgo-Erigone Four, homeworld of the zorren. Qerrlar piloted a combat exosuit to combat a hostile lifeform until it simply ran out of power, after this, he continued on foot.\" It is adorned with a purple ribbon."
ckeywhitelist = list("captmatt4")
character_name = list("Kaenin Qerrlar")
//Eliana Noya
/datum/gear/fluff/eliana_noya_1
path = /obj/item/clothing/under/fluff/eliana_noya_1
@@ -211,7 +242,7 @@
display_name = "A mysterious cookie"
description = "DAS A BIG COOKIE!!!"
ckeywhitelist = list("dameonowen")
character_name = list("Dameon Owen")
character_name = list("Dameon Owen", "Amber Owen")
//dawidoe
//Melissa Krutz
@@ -461,6 +492,15 @@
// H CKEYS
//hagawaga
//Lana Xavier
/datum/gear/fluff/hagawaga_romanarmor
path = /obj/item/clothing/under/fluff/romanarmor
display_name = "Roman Legionary Armor"
description = "Basically looks like what you would expect a segmented plated armor from the early Roman Empire to look like."
ckeywhitelist = list("hagawaga")
character_name = list("Lana Xavier")
//harpsong
//Harpsong
/datum/gear/fluff/harpsong_1
@@ -650,7 +690,32 @@
ckeywhitelist = list("masmc")
character_name = list("Kettek Ollarch")
//Moca_The_Porg1
//Mocha
/datum/gear/fluff/mocha_jumpsuit
path = /obj/item/clothing/under/fluff/mocha_uniform
display_name = "Winterized Explorer Jumpsuit"
description = "A Greenish-white uniform for operating in hazardous environments. This one is suited for colder environments."
ckeywhitelist = list("mocatheporg1")
character_name = list("Mocha")
allowed_roles = list("Explorer", "Pathfinder")
/datum/gear/fluff/mocha_suit_kit
path = /obj/item/device/modkit_conversion/fluff/mocha_suit_kit
display_name = "Mocha's modkit"
description = "A kit containing all the needed tools and parts to modify a Explorer Suit"
ckeywhitelist = list("mocatheporg1")
character_name = list("Mocha")
allowed_roles = list("Explorer", "Pathfinder")
// N CKEYS
//NESgamer190
/datum/gear/fluff/lucy_flask
path = /obj/item/weapon/reagent_containers/food/drinks/flask/vacuumflask/fluff/lucyprice
display_name = "Cryostasis Thermos"
description = "A thermos that has been designed to look something akin to a mix between a cryostasis beaker and a thermos. Does NOT keep the drinks cold, surprisingly enough.."
ckeywhitelist = list("nesgamer190")
character_name = list("Lucy Price")
// O CKEYS
@@ -690,6 +755,14 @@
// R CKEYS
//risingstarflash
/datum/gear/fluff/stellar_collar
path = /obj/item/clothing/accessory/collar/fluff/stellar_collar
display_name = "Heart Collar"
description = "The collar appears to have a heart shaped pin on the front, the medical logo on visible from a distance. Closer inspection shows that the heart can be opened, revealing a picture. On the picture you can see Stellar and Reyna close together, paws locked and facing the picture slightly sideways with beaming smiles."
ckeywhitelist = list("risingstarslash")
character_name = list("Stellar Wolf")
//radiantflash
//Vasharr Zahirn
/datum/gear/fluff/vasharr_armlets
@@ -730,7 +803,6 @@
character_name = list("Basir Fahim")
// S CKEYS
//snakewitharocketlauncher
//Alex Wolf
/datum/gear/fluff/alex_1
@@ -124,6 +124,24 @@
path = /obj/item/weapon/implant/tracking/weak
cost = 0 //VOREStation Edit. Changed cost to 0
/datum/gear/utility/implant/neural
display_name = "implant, neural assistance web"
description = "A complex web implanted into the subject, medically in order to compensate for neurological disease."
path = /obj/item/weapon/implant/neural
cost = 6
/datum/gear/utility/implant/dud1
display_name = "implant, head"
description = "An implant with no obvious purpose."
path = /obj/item/weapon/implant/dud
cost = 1
/datum/gear/utility/implant/dud2
display_name = "implant, torso"
description = "An implant with no obvious purpose."
path = /obj/item/weapon/implant/dud/torso
cost = 1
/datum/gear/utility/implant/language
cost = 2
exploitable = 0
@@ -72,25 +72,45 @@
Regardless, you find it quite difficult to land shots where you wanted them to go."
modifier_type = /datum/modifier/trait/inaccurate
/datum/trait/modifier/physical/smaller
name = "Smaller"
modifier_type = /datum/modifier/trait/smaller
mutually_exclusive = list(/datum/trait/modifier/physical/small, /datum/trait/modifier/physical/large, /datum/trait/modifier/physical/larger)
/datum/trait/modifier/physical/shorter
name = "Shorter"
modifier_type = /datum/modifier/trait/shorter
mutually_exclusive = list(/datum/trait/modifier/physical/short, /datum/trait/modifier/physical/tall, /datum/trait/modifier/physical/taller)
/datum/trait/modifier/physical/small
name = "Small"
modifier_type = /datum/modifier/trait/small
mutually_exclusive = list(/datum/trait/modifier/physical/smaller, /datum/trait/modifier/physical/large, /datum/trait/modifier/physical/larger)
/datum/trait/modifier/physical/short
name = "Short"
modifier_type = /datum/modifier/trait/short
mutually_exclusive = list(/datum/trait/modifier/physical/shorter, /datum/trait/modifier/physical/tall, /datum/trait/modifier/physical/taller)
/datum/trait/modifier/physical/large
name = "Large"
modifier_type = /datum/modifier/trait/large
mutually_exclusive = list(/datum/trait/modifier/physical/smaller, /datum/trait/modifier/physical/small, /datum/trait/modifier/physical/larger)
/datum/trait/modifier/physical/tall
name = "Tall"
modifier_type = /datum/modifier/trait/tall
mutually_exclusive = list(/datum/trait/modifier/physical/shorter, /datum/trait/modifier/physical/short, /datum/trait/modifier/physical/taller)
/datum/trait/modifier/physical/larger
name = "Larger"
modifier_type = /datum/modifier/trait/larger
mutually_exclusive = list(/datum/trait/modifier/physical/smaller, /datum/trait/modifier/physical/small, /datum/trait/modifier/physical/large)
/datum/trait/modifier/physical/taller
name = "Taller"
modifier_type = /datum/modifier/trait/taller
mutually_exclusive = list(/datum/trait/modifier/physical/shorter, /datum/trait/modifier/physical/short, /datum/trait/modifier/physical/tall)
/datum/trait/modifier/physical/thin
name = "Thin"
modifier_type = /datum/modifier/trait/thin
mutually_exclusive = list(/datum/trait/modifier/physical/fat, /datum/trait/modifier/physical/obese, /datum/trait/modifier/physical/thinner)
/datum/trait/modifier/physical/thinner
name = "Rail Thin"
modifier_type = /datum/modifier/trait/thinner
mutually_exclusive = list(/datum/trait/modifier/physical/fat, /datum/trait/modifier/physical/obese, /datum/trait/modifier/physical/thin)
/datum/trait/modifier/physical/fat
name = "Broad-Shouldered"
modifier_type = /datum/modifier/trait/fat
mutually_exclusive = list(/datum/trait/modifier/physical/thin, /datum/trait/modifier/physical/obese, /datum/trait/modifier/physical/thinner)
/datum/trait/modifier/physical/obese
name = "Heavily Built"
modifier_type = /datum/modifier/trait/obese
mutually_exclusive = list(/datum/trait/modifier/physical/fat, /datum/trait/modifier/physical/thinner, /datum/trait/modifier/physical/thin)
/datum/trait/modifier/physical/colorblind_protanopia
name = "Protanopia"
@@ -89,10 +89,19 @@
pref.b_wing = sanitize_integer(pref.b_wing, 0, 255, initial(pref.b_wing))
if(pref.ear_style)
pref.ear_style = sanitize_inlist(pref.ear_style, ear_styles_list, initial(pref.ear_style))
var/datum/sprite_accessory/temp_ear_style = ear_styles_list[pref.ear_style]
if(temp_ear_style.apply_restrictions && (!(pref.species in temp_ear_style.species_allowed)))
pref.ear_style = initial(pref.ear_style)
if(pref.tail_style)
pref.tail_style = sanitize_inlist(pref.tail_style, tail_styles_list, initial(pref.tail_style))
var/datum/sprite_accessory/temp_tail_style = tail_styles_list[pref.tail_style]
if(temp_tail_style.apply_restrictions && (!(pref.species in temp_tail_style.species_allowed)))
pref.tail_style = initial(pref.tail_style)
if(pref.wing_style)
pref.wing_style = sanitize_inlist(pref.wing_style, wing_styles_list, initial(pref.wing_style))
var/datum/sprite_accessory/temp_wing_style = wing_styles_list[pref.wing_style]
if(temp_wing_style.apply_restrictions && (!(pref.species in temp_wing_style.species_allowed)))
pref.wing_style = initial(pref.wing_style)
/datum/category_item/player_setup_item/vore/ears/copy_to_mob(var/mob/living/carbon/human/character)
character.ear_style = ear_styles_list[pref.ear_style]
@@ -182,7 +191,7 @@
var/list/pretty_ear_styles = list("Normal" = null)
for(var/path in ear_styles_list)
var/datum/sprite_accessory/ears/instance = ear_styles_list[path]
if((!instance.ckeys_allowed) || (usr.ckey in instance.ckeys_allowed))
if(((!instance.ckeys_allowed) || (usr.ckey in instance.ckeys_allowed)) && ((!instance.apply_restrictions) || (pref.species in instance.species_allowed)))
pretty_ear_styles[instance.name] = path
// Present choice to user
@@ -215,7 +224,7 @@
var/list/pretty_tail_styles = list("Normal" = null)
for(var/path in tail_styles_list)
var/datum/sprite_accessory/tail/instance = tail_styles_list[path]
if((!instance.ckeys_allowed) || (user.ckey in instance.ckeys_allowed))
if(((!instance.ckeys_allowed) || (usr.ckey in instance.ckeys_allowed)) && ((!instance.apply_restrictions) || (pref.species in instance.species_allowed)))
pretty_tail_styles[instance.name] = path
// Present choice to user
@@ -248,7 +257,7 @@
var/list/pretty_wing_styles = list("Normal" = null)
for(var/path in wing_styles_list)
var/datum/sprite_accessory/wing/instance = wing_styles_list[path]
if((!instance.ckeys_allowed) || (user.ckey in instance.ckeys_allowed))
if(((!instance.ckeys_allowed) || (usr.ckey in instance.ckeys_allowed)) && ((!instance.apply_restrictions) || (pref.species in instance.species_allowed)))
pretty_wing_styles[instance.name] = path
// Present choice to user