Fuck this shit

Merge branch 'release' of https://github.com/VOREStation/VOREStation

# Conflicts:
#	code/controllers/autotransfer.dm
#	code/controllers/subsystems/inactivity.dm
#	code/game/area/Away Mission areas.dm
#	code/game/area/Space Station 13 areas.dm
#	code/game/jobs/job/captain.dm
#	code/game/jobs/job/civilian.dm
#	code/game/jobs/job/security.dm
#	code/game/jobs/jobs.dm
#	code/game/machinery/air_alarm.dm
#	code/game/machinery/suit_storage_unit.dm
#	code/game/machinery/suit_storage_unit_vr.dm
#	code/game/mecha/combat/gorilla.dm
#	code/game/turfs/simulated/dungeon/wall.dm
#	code/game/turfs/simulated/wall_types.dm
#	code/modules/client/preference_setup/loadout/loadout_utility_vr.dm
#	code/modules/clothing/glasses/glasses.dm
#	code/modules/clothing/spacesuits/rig/rig_pieces_vr.dm
#	code/modules/clothing/spacesuits/void/void_vr.dm
#	code/modules/clothing/under/accessories/holster.dm
#	code/modules/mob/language/station_vr.dm
#	code/modules/mob/living/carbon/human/emote_vr.dm
#	code/modules/mob/living/carbon/human/species/station/station_vr.dm
#	code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm
#	code/modules/mob/new_player/sprite_accessories_vr.dm
#	code/modules/power/apc.dm
#	code/modules/power/lighting.dm
#	code/modules/resleeving/machines.dm
#	config/jobwhitelist.txt
#	icons/mob/species/seromi/head.dmi
#	icons/mob/species/seromi/suit.dmi
#	icons/mob/species/vulpkanin/helmet.dmi
#	icons/mob/species/vulpkanin/suit.dmi
#	maps/tether/submaps/_tether_submaps.dm
#	maps/tether/tether_areas2.dm
#	maps/tether/tether_defines.dm
#	maps/tether/tether_shuttles.dm
#	nano/templates/apc.tmpl
#	vorestation.dme
This commit is contained in:
Repede
2020-04-04 14:37:55 -04:00
1374 changed files with 308651 additions and 97393 deletions
@@ -406,7 +406,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
else
return TOPIC_NOACTION
if(((!(setting_species.spawn_flags & SPECIES_CAN_JOIN)) || (!is_alien_whitelisted(preference_mob(),setting_species))) && !check_rights(R_ADMIN, 0) && !(setting_species.spawn_flags & SPECIES_WHITELIST_SELECTABLE)) //VOREStation Edit: selectability
if(((!(setting_species.spawn_flags & SPECIES_CAN_JOIN)) || (!is_alien_whitelisted(preference_mob(),setting_species))) && !check_rights(R_ADMIN|R_EVENT, 0) && !(setting_species.spawn_flags & SPECIES_WHITELIST_SELECTABLE)) //VOREStation Edit: selectability
return TOPIC_NOACTION
var/prev_species = pref.species
@@ -908,7 +908,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
dat += "<font color='red'><b>You cannot play as this species.</br><small>If you wish to be whitelisted, you can make an application post on <a href='?src=\ref[user];preference=open_whitelist_forum'>the forums</a>.</small></b></font></br>"
else if(restricted == 2)
dat += "<font color='red'><b>You cannot play as this species.</br><small>This species is not available for play as a station race..</small></b></font></br>"
if(!restricted || check_rights(R_ADMIN, 0) || current_species.spawn_flags & SPECIES_WHITELIST_SELECTABLE) //VOREStation Edit: selectability
if(!restricted || check_rights(R_ADMIN|R_EVENT, 0) || current_species.spawn_flags & SPECIES_WHITELIST_SELECTABLE) //VOREStation Edit: selectability
dat += "\[<a href='?src=\ref[src];set_species=[pref.species_preview]'>select</a>\]"
dat += "</center></body>"
@@ -93,4 +93,4 @@
return ..()
/datum/category_item/player_setup_item/player_global/ui/proc/can_select_ooc_color(var/mob/user)
return config.allow_admin_ooccolor && check_rights(R_ADMIN, 0, user)
return config.allow_admin_ooccolor && check_rights(R_ADMIN|R_EVENT|R_FUN, 0, user)
@@ -147,6 +147,12 @@ var/list/_client_preferences_by_type
enabled_description = "Audible"
disabled_description = "Silent"
/datum/client_preference/drop_sounds
description = "Dropped Item Sounds"
key = "SOUND_DROPPED"
enabled_description = "Enabled"
disabled_description = "Disabled"
/datum/client_preference/mob_tooltips
description ="Mob tooltips"
key = "MOB_TOOLTIPS"
@@ -246,7 +252,7 @@ var/list/_client_preferences_by_type
* Staff Preferences *
********************/
/datum/client_preference/admin/may_toggle(var/mob/preference_mob)
return check_rights(R_ADMIN, 0, preference_mob)
return check_rights(R_ADMIN|R_EVENT, 0, preference_mob)
/datum/client_preference/mod/may_toggle(var/mob/preference_mob)
return check_rights(R_MOD|R_ADMIN, 0, preference_mob)
@@ -25,6 +25,7 @@
/datum/gear/fluff/lethe_helmet
path = /obj/item/clothing/head/helmet/hos/fluff/lethe
display_name = "Lethe's Helmet"
slot = slot_head
ckeywhitelist = list("adk09")
character_name = list("Lethe")
@@ -50,6 +51,7 @@
path = /obj/item/clothing/under/solgov/utility/sifguard/officer/medical
display_name = "centcom medical uniform"
description = "A medical uniform straight from Central Command."
slot = slot_w_uniform
ckeywhitelist = list("arokha")
character_name = list("Aronai Sieyes")
@@ -57,6 +59,7 @@
path = /obj/item/clothing/suit/storage/service/sifguard/medical/command
display_name = "centcom medical jacket"
description = "A medical jacket straight from Central Command."
slot = slot_wear_suit
ckeywhitelist = list("arokha")
character_name = list("Aronai Sieyes")
@@ -64,6 +67,7 @@
/datum/gear/fluff/yuuko_kimono
path = /obj/item/clothing/under/fluff/sakura_hokkaido_kimono
display_name = "Yuuko's Kimono"
slot = slot_w_uniform
ckeywhitelist = list("benemuel")
character_name = list("Yuuko Shimmerpond")
@@ -76,12 +80,14 @@
/datum/gear/fluff/kilano_dress
path = /obj/item/clothing/under/dress/fluff/kilano
display_name = "Kilano's Dress"
slot = slot_w_uniform
ckeywhitelist = list("beyondmylife")
character_name = list("Kilano Soryu")
/datum/gear/fluff/kilano_gloves
path = /obj/item/clothing/gloves/fluff/kilano
display_name = "Kilano's Gloves"
slot = slot_gloves
ckeywhitelist = list("beyondmylife")
character_name = list("Kilano Soryu")
@@ -100,9 +106,10 @@
/datum/gear/fluff/xin_sovietuniform
path = /obj/item/clothing/under/soviet
display_name = "Xin's Soviet Uniform"
description = "This soviet uniform has seen considerable use over the years, it's rather worn in some places, frayed in others and the stomach region has signs of being stretched out repeatedly."
slot = slot_w_uniform
ckeywhitelist = list("britishrabbit")
character_name = list("Xin Xiao")
description = "This soviet uniform has seen considerable use over the years, it's rather worn in some places, frayed in others and the stomach region has signs of being stretched out repeatedly."
/datum/gear/fluff/tasald_box
path = /obj/item/weapon/storage/box/fluff/tasald
@@ -113,18 +120,21 @@
/datum/gear/fluff/tasald_cartographer_jumpsuit
path = /obj/item/clothing/under/solgov/utility/sifguard/officer/exploration
display_name = "Tasald's Cartographer's uniform - jumpsuit"
slot = slot_w_uniform
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"
slot = slot_wear_suit
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"
slot = slot_head
ckeywhitelist = list("bwoincognito")
character_name = list("Tasald Corlethian")
@@ -137,10 +147,17 @@
/datum/gear/fluff/jayda_meduniform
path = /obj/item/clothing/under/solgov/utility/sifguard/medical/fluff
display_name = "Jayda's Uniform"
slot = slot_w_uniform
ckeywhitelist = list("burritojustice")
character_name = list("Jayda Wilson")
// C CKEYS
/datum/gear/fluff/cappy_watch
path = /obj/item/clothing/accessory/watch
display_name = "Cappy's Pocket Watch"
ckeywhitelist = list("cappycat")
character_name = list("Cappy Fuzzlyfeathers")
/datum/gear/fluff/james_disk
path = /obj/item/weapon/disk/data
display_name = "James' Disk"
@@ -156,18 +173,21 @@
/datum/gear/fluff/diana_robe
path = /obj/item/clothing/suit/fluff/purp_robes
display_name = "Diana's Robes"
slot = slot_wear_suit
ckeywhitelist = list("cameron653")
character_name = list("Diana Kuznetsova")
/datum/gear/fluff/diana_tiara
path = /obj/item/clothing/head/fluff/pink_tiara
display_name = "Diana's Tiara"
slot = slot_head
ckeywhitelist = list("cameron653")
character_name = list("Diana Kuznetsova")
/datum/gear/fluff/aika_coat
path = /obj/item/clothing/suit/fluff/blue_trimmed_coat
display_name = "Aika's Coat"
slot = slot_wear_suit
ckeywhitelist = list("chaoko99")
character_name = list("Aika Hisakawa")
@@ -219,18 +239,21 @@
/datum/gear/fluff/serkii_slippers
path = /obj/item/clothing/shoes/slippers
display_name = "Serkii's Slippers"
slot = slot_shoes
ckeywhitelist = list("eekasqueak")
character_name = list("Serkii Miishy")
/datum/gear/fluff/serkii_skirt
path = /obj/item/clothing/under/skirt/fluff/serkii
display_name = "Serkii's Skirt"
slot = slot_w_uniform
ckeywhitelist = list("eekasqueak")
character_name = list("Serkii Miishy")
/datum/gear/fluff/jessie_coat
path = /obj/item/clothing/suit/storage/hooded/wintercoat/jessie
display_name = "Jessie's Coat"
slot = slot_wear_suit
ckeywhitelist = list("epiccharger")
character_name = list("Jessie Mare")
@@ -247,6 +270,13 @@
character_name = list("Erik Ramadwood")
// F CKEYS
/datum/gear/fluff/yikatihaki_armor
path = /obj/item/clothing/suit/armor/vox_scrap
display_name = "Yikatihaki's Armor"
slot = slot_wear_suit
ckeywhitelist = list("flaktual")
character_name = list("Yikatihaki")
allowed_roles = list("Explorer")
// G CKEYS
/datum/gear/fluff/eldi_implant
@@ -296,6 +326,7 @@
/datum/gear/fluff/ivy_backpack
path = /obj/item/weapon/storage/backpack/messenger/sec/fluff/ivymoomoo
display_name = "Ivy's Backpack"
slot = slot_back
ckeywhitelist = list("ivymoomoo")
character_name = list("Ivy Baladeva")
@@ -309,6 +340,7 @@
/datum/gear/fluff/areax_staff
path = /obj/item/weapon/storage/backpack/fluff/stunstaff
display_name = "Areax's Stun Staff"
slot = slot_back
ckeywhitelist = list("jacknoir413")
character_name = list("Areax Third")
allowed_roles = list("Security Officer, Warden, Head of Security")
@@ -316,12 +348,14 @@
/datum/gear/fluff/earthen_uniform
path = /obj/item/clothing/under/fluff/earthenbreath
display_name = "Earthen's Uniform"
slot = slot_w_uniform
ckeywhitelist = list("jacobdragon")
character_name = list("Earthen Breath")
/datum/gear/fluff/earthen_hairpin
path = /obj/item/clothing/head/fluff/hairflowerpin
display_name = "Earthen's Flower Pin"
slot = slot_head
ckeywhitelist = list("jacobdragon")
character_name = list("Earthen Breath")
@@ -334,33 +368,10 @@
/datum/gear/fluff/jemli_fedora
path = /obj/item/clothing/head/fedora/fluff/jemli
display_name = "Jemli's Fedora"
slot = slot_head
ckeywhitelist = list("jemli")
character_name = list("Jemli")
//TFF 28/11/19 - Expired permit removal
/*
/datum/gear/fluff/jeremiah_permit
path = /obj/item/clothing/accessory/permit/gun/fluff/ace
display_name = "Ace's Gun Permit"
ckeywhitelist = list("jertheace")
character_name = list("Jeremiah Acacius")
allowed_roles = list("Colony Director", "Warden", "Head of Security")
/datum/gear/fluff/jeremiah_gun
path = /obj/item/weapon/gun/projectile/p92x/large/preban/hp
display_name = "Ace's Gun"
ckeywhitelist = list("jertheace")
character_name = list("Jeremiah Acacius")
allowed_roles = list("Colony Director", "Warden", "Head of Security")
/datum/gear/fluff/jeremiah_ammo
path = /obj/item/ammo_magazine/m9mm/large/preban/hp //Spare ammo
display_name = "Ace's Spare Ammo"
ckeywhitelist = list("jertheace")
character_name = list("Jeremiah Acacius")
allowed_roles = list("Colony Director", "Warden", "Head of Security")
*/
/datum/gear/fluff/jeremiah_holster
path = /obj/item/clothing/accessory/holster/armpit
display_name = "Ace's Holster"
@@ -371,12 +382,14 @@
/datum/gear/fluff/jeremiah_boots
path = /obj/item/clothing/shoes/boots/combat
display_name = "Ace's Boots"
slot = slot_shoes
ckeywhitelist = list("jertheace")
character_name = list("Jeremiah Acacius")
/datum/gear/fluff/jeremiah_combatuniform
path = /obj/item/clothing/under/syndicate/combat
display_name = "Ace's Combat Uniform"
slot = slot_w_uniform
ckeywhitelist = list("jertheace")
character_name = list("Jeremiah Acacius")
@@ -403,12 +416,14 @@
/datum/gear/fluff/emoticon_mimeuniform
path = /obj/item/clothing/under/sexymime
display_name = "Emoticon's Mime Uniform"
slot = slot_w_uniform
ckeywhitelist = list("joey4298")
character_name = list("Emoticon")
/datum/gear/fluff/emoticon_mimemask
path = /obj/item/clothing/mask/gas/sexymime
display_name = "Emoticon's Mime Mask"
slot = slot_wear_mask
ckeywhitelist = list("joey4298")
character_name = list("Emoticon")
@@ -446,6 +461,7 @@
/datum/gear/fluff/ketrai_hat
path = /obj/item/clothing/head/fluff/ketrai
display_name = "Ketrai's Hat"
slot = slot_head
ckeywhitelist = list("ketrai")
character_name = list("Ketrai")
@@ -458,6 +474,7 @@
/datum/gear/fluff/kisuke_glasses
path = /obj/item/clothing/glasses/omnihud/kamina
display_name = "Kisuke's Kamina Glasses"
slot = slot_glasses
ckeywhitelist = list("kisukegema")
character_name = list("Kisuke Gema")
@@ -470,6 +487,7 @@
/datum/gear/fluff/excess_uniform
path = /obj/item/clothing/under/fluff/excess
display_name = "Excess's Uniform"
slot = slot_w_uniform
ckeywhitelist = list("killerdragn")
character_name = list("Excess")
@@ -488,6 +506,7 @@
/datum/gear/fluff/taiga_uniform
path = /obj/item/clothing/under/fluff/taiga
display_name = "Taifa's Uniform"
slot = slot_w_uniform
ckeywhitelist = list("kiwidaninja")
character_name = list("Chakat Taiga")
@@ -514,6 +533,7 @@
/datum/gear/fluff/brianna_backpack
path = /obj/item/weapon/storage/backpack/messenger/black/fluff/briana
display_name = "Briana's Backpack"
slot = slot_back
ckeywhitelist = list("luminescentring")
character_name = list("Briana Moore")
@@ -533,6 +553,7 @@
/datum/gear/fluff/giliana_labcoat
path = /obj/item/clothing/suit/storage/toggle/labcoat/fluff/molenar
display_name = "Giliana's Labcoat"
slot = slot_wear_suit
ckeywhitelist = list("molenar")
character_name = list("Giliana Gamish")
@@ -545,6 +566,7 @@
/datum/gear/fluff/resh_uniform
path = /obj/item/clothing/suit/security/navyhos
display_name = "Resh's HoS Uniform"
slot = slot_wear_suit
ckeywhitelist = list("mrsignmeup")
character_name = list("Reshskakskakss Seekiseekis")
allowed_roles = list("Head of Security")
@@ -559,23 +581,28 @@
/datum/gear/fluff/awen_hat
path = /obj/item/clothing/head/fluff/wolfgirl
display_name = "Awen's Hat"
slot = slot_head
ckeywhitelist = list("natje")
character_name = list("Awen Henry")
/datum/gear/fluff/awen_shoes
path = /obj/item/clothing/shoes/fluff/wolfgirl
display_name = "Awen's Shoes"
slot = slot_shoes
ckeywhitelist = list("natje")
character_name = list("Awen Henry")
/datum/gear/fluff/awen_uniform
path = /obj/item/clothing/under/fluff/wolfgirl
display_name = "Awen's Uniform"
slot = slot_w_uniform
ckeywhitelist = list("natje")
character_name = list("Awen Henry")
/datum/gear/fluff/pumila_vines
path = /obj/item/clothing/under/fluff/aluranevines
display_name = "Pumila's Vines"
slot = slot_w_uniform
ckeywhitelist = list("natje")
character_name = list("Pumila")
@@ -593,6 +620,13 @@
character_name = list("Richard D'angelo")
// P CKEYS
/datum/gear/fluff/zaku_sweatervest
path = /obj/item/clothing/suit/varsity/green/sweater_vest
display_name = "Zaku's Sweater Vest"
slot = slot_wear_suit
ckeywhitelist = list("pimientopyro")
character_name = list("Zaku Fyodorovna")
/datum/gear/fluff/lily_medal
path = /obj/item/clothing/accessory/medal/silver/unity
display_name = "Lily's Unity Medal"
@@ -628,6 +662,12 @@
allowed_roles = list("Roboticist")
// S CKEYS
/datum/gear/fluff/brynhild_medal
path = /obj/item/clothing/accessory/medal/silver/valor
display_name = "Brynhild's Valor Medal"
ckeywhitelist = list("sageofaether12")
character_name = list("Brynhild Vandradottir")
/datum/gear/fluff/kateryna_voidsuit
path = /obj/item/clothing/suit/space/void/engineering/kate
display_name = "Kateryna's Voidsuit"
@@ -645,6 +685,7 @@
/datum/gear/fluff/kateryna_armorvest
path = /obj/item/clothing/suit/armor/vest/wolftaur/kate
display_name = "Kateryna's Armor Vest"
slot = slot_wear_suit
ckeywhitelist = list("samanthafyre")
character_name = list("Kateryna Petrovitch")
allowed_roles = list("Security Officer", "Warden", "Head of Security", "Colony Director", "Head of Personnel")
@@ -664,12 +705,14 @@
/datum/gear/fluff/scree_pompom
path = /obj/item/clothing/head/fluff/pompom
display_name = "Scree's Weird PopPom thing"
slot = slot_head
ckeywhitelist = list("scree")
character_name = list("Scree")
/datum/gear/fluff/alfonso_sunglasses
path = /obj/item/clothing/glasses/sunglasses/fluff/alfonso
display_name = "Alfonso's Sunglasses"
slot = slot_glasses
ckeywhitelist = list("seiga")
character_name = list("Alfonso Oak Telanor")
@@ -683,12 +726,14 @@
/datum/gear/fluff/tasy_clownuniform
path = /obj/item/clothing/under/sexyclown
display_name = "Tasy's Clown Uniform"
slot = slot_w_uniform
ckeywhitelist = list("silvertalismen")
character_name = list("Tasy Ruffles")
/datum/gear/fluff/tasy_clownmask
path = /obj/item/clothing/mask/gas/sexyclown
display_name = "Tasy's Clownmask"
slot = slot_wear_mask
ckeywhitelist = list("silvertalismen")
character_name = list("Tasy Ruffles")
@@ -707,6 +752,7 @@
/datum/gear/fluff/fortune_backpack
path = /obj/item/weapon/storage/backpack/satchel/fluff/swat43bag
display_name = "Fortune's Backpack"
slot = slot_back
ckeywhitelist = list("swat43")
character_name = list("Fortune Bloise")
@@ -725,18 +771,27 @@
/datum/gear/fluff/roiz_coat
path = /obj/item/clothing/suit/storage/hooded/wintercoat/roiz
display_name = "Roiz's Coat"
slot = slot_wear_suit
ckeywhitelist = list("spoopylizz")
character_name = list("Roiz Lizden")
/datum/gear/fluff/lilith_medal
path = /obj/item/clothing/accessory/medal/silver/valor
display_name = "Lilith's Valor Medal"
ckeywhitelist = list("stiphs")
character_name = list("Lilith Vespers")
/datum/gear/fluff/silent_mimemask
path = /obj/item/clothing/mask/gas/sexymime
display_name = "Silent Stripe's Mime Mask"
slot = slot_wear_mask
ckeywhitelist = list("suicidalpickles")
character_name = list("Silent Stripes")
/datum/gear/fluff/silent_mimeuniform
path = /obj/item/clothing/under/sexymime
display_name = "Silent Stripe's Mime Uniform"
slot = slot_w_uniform
ckeywhitelist = list("suicidalpickles")
character_name = list("Silent Stripes")
@@ -780,6 +835,7 @@
/datum/gear/fluff/monty_balaclava
path = /obj/item/clothing/mask/balaclava
display_name = "Monty's Balaclava"
slot = slot_wear_mask
ckeywhitelist = list("theskringdinger")
character_name = list("Monty Kopic")
@@ -792,21 +848,10 @@
// U CKEYS
// V CKEYS
/datum/gear/fluff/vakashi_permit
path = /obj/item/clothing/accessory/permit/gun/fluff/Vakashi
display_name = "Vakashi's Pepperspray Permit"
ckeywhitelist = list("vailthewolf")
character_name = list("Vakashi")
/datum/gear/fluff/vakashi_pepperspray
path = /obj/item/weapon/reagent_containers/spray/pepper
display_name = "Vakashi's Pepperspray"
ckeywhitelist = list("vailthewolf")
character_name = list("Vakashi")
/datum/gear/fluff/cameron_glasses
path = /obj/item/clothing/glasses/fluff/science_proper
display_name = "Cameron's Science Glasses"
slot = slot_glasses
ckeywhitelist = list("verkister")
character_name = list("Cameron Eggbert")
@@ -819,12 +864,14 @@
/datum/gear/fluff/opie_glasses
path = /obj/item/clothing/glasses/fluff/spiffygogs
display_name = "Opie's Goggles"
slot = slot_glasses
ckeywhitelist = list("verkister")
character_name = list("Opie Eggbert")
/datum/gear/fluff/verin_hazardvest
path = /obj/item/clothing/suit/storage/hazardvest/fluff/verin
display_name = "Verin's Hazard Vest"
slot = slot_wear_suit
ckeywhitelist = list("virgo113")
character_name = list("Verin Raharra")
@@ -843,24 +890,28 @@
/datum/gear/fluff/lucina_dress
path = /obj/item/clothing/under/dress/fluff/lucinadress
display_name = "Lucina's Dress"
slot = slot_w_uniform
ckeywhitelist = list("vorrarkul")
character_name = list("Lucina Dakarim")
/datum/gear/fluff/melanie_skeleton
path = /obj/item/clothing/under/fluff/slime_skeleton
display_name = "Melanie's Skeleton"
slot = slot_w_uniform
ckeywhitelist = list("vorrarkul")
character_name = list("Melanie Farmer")
/datum/gear/fluff/nyssa_coat
path = /obj/item/clothing/suit/storage/hooded/wintercoat/cargo
display_name = "Nyssa's Coat"
slot = slot_wear_suit
ckeywhitelist = list("vorrarkul")
character_name = list("Nyssa Brennan")
/datum/gear/fluff/theodora_suit
path = /obj/item/clothing/suit/chococoat
display_name = "Theodora's Coat"
slot = slot_wear_suit
ckeywhitelist = list("vorrarkul")
character_name = list("Theodora Lindt")
@@ -877,20 +928,23 @@
character_name = list("Kaitlyn Fiasco")
/datum/gear/fluff/keturah_maiddress
path = /obj/item/clothing/under/dress/maid/
path = /obj/item/clothing/under/dress/maid
display_name = "Keturah's Maid Dress"
slot = slot_w_uniform
ckeywhitelist = list("viveret")
character_name = list("Keturah")
/datum/gear/fluff/silentio_mimeuniform
path = /obj/item/clothing/under/sexymime
display_name = "Silentio's Mime Uniform"
slot = slot_w_uniform
ckeywhitelist = list("viveret")
character_name = list("Silentio")
/datum/gear/fluff/silentio_mimemask
path = /obj/item/clothing/mask/gas/sexymime
display_name = "Silentio's Mime Mask"
slot = slot_wear_mask
ckeywhitelist = list("Viveret")
character_name = list("Silentio")
@@ -904,6 +958,7 @@
/datum/gear/fluff/silas_glasses
path = /obj/item/clothing/glasses/threedglasses
display_name = "Silas' 3-D Glasses"
slot = slot_glasses
ckeywhitelist = list("werebear")
character_name = list("Silas Newton")
@@ -916,25 +971,25 @@
/datum/gear/fluff/tempest_hudglases
path = /obj/item/clothing/glasses/omnihud/med/fluff/wickedtemphud
display_name = "Tempest's Medical Hud"
slot = slot_glasses
ckeywhitelist = list("wickedtemp")
character_name = list("Chakat Tempest Venosare")
allowed_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Psychiatrist","Paramedic", "Field Medic", "Off-duty Medic")
slot = slot_glasses
/datum/gear/fluff/tempest_hypospray
path = /obj/item/weapon/reagent_containers/hypospray/vial/tempest
display_name = "Tempest's Hypospray"
slot = slot_belt
ckeywhitelist = list("wickedtemp")
character_name = list("Chakat Tempest Venosare")
allowed_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Psychiatrist","Paramedic", "Field Medic", "Off-duty Medic")
slot = slot_belt
/datum/gear/fluff/tempest_backpack
path = /obj/item/weapon/storage/backpack/saddlebag/tempest
display_name = "Tempest's Saddlebag"
slot = slot_back
ckeywhitelist = list("wickedtemp")
character_name = list("Chakat Tempest Venosare")
slot = slot_back
/datum/gear/fluff/tempest_implant
path = /obj/item/weapon/implanter/reagent_generator/tempest
@@ -967,6 +1022,7 @@
/datum/gear/fluff/zaoozaoo_hat
path = /obj/item/clothing/head/fluff/zao
display_name = "Zaoozaoo's Hat"
slot = slot_head
ckeywhitelist = list("zigfe")
character_name = list("Zaoozaoo Xrimxuqmqixzix")
@@ -976,8 +1032,9 @@
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"
/datum/gear/fluff/star_hoodie
path = /obj/item/clothing/suit/storage/star
display_name = "Star hoodie"
slot = slot_wear_suit
ckeywhitelist = list("bacon12366")
character_name = list("Elly Brown")
@@ -4,11 +4,11 @@
/datum/gear/cane/white
display_name = "white cane"
path = /obj/item/weapon/cane/whitecane
path = /obj/item/weapon/cane/white
/datum/gear/cane/white2
display_name = "telescopic white cane"
path = /obj/item/weapon/melee/collapsable_whitecane
path = /obj/item/weapon/cane/white/collapsible
/datum/gear/crutch
display_name = "crutch"
@@ -1,45 +1,45 @@
/datum/gear/utility/saddlebag
display_name = "saddle bag, horse"
path = /obj/item/weapon/storage/backpack/saddlebag
slot = slot_back
cost = 2
display_name = "saddle bag, horse"
path = /obj/item/weapon/storage/backpack/saddlebag
slot = slot_back
cost = 2
/datum/gear/utility/saddlebag_common
display_name = "saddle bag, common"
path = /obj/item/weapon/storage/backpack/saddlebag_common
slot = slot_back
cost = 2
display_name = "saddle bag, common"
path = /obj/item/weapon/storage/backpack/saddlebag_common
slot = slot_back
cost = 2
/datum/gear/utility/saddlebag_common/robust
display_name = "saddle bag, robust"
path = /obj/item/weapon/storage/backpack/saddlebag_common/robust
slot = slot_back
cost = 2
display_name = "saddle bag, robust"
path = /obj/item/weapon/storage/backpack/saddlebag_common/robust
slot = slot_back
cost = 2
/datum/gear/utility/saddlebag_common/vest
display_name = "taur duty vest (backpack)"
path = /obj/item/weapon/storage/backpack/saddlebag_common/vest
slot = slot_back
cost = 1
display_name = "taur duty vest (backpack)"
path = /obj/item/weapon/storage/backpack/saddlebag_common/vest
slot = slot_back
cost = 1
/datum/gear/utility/dufflebag
display_name = "dufflebag"
path = /obj/item/weapon/storage/backpack/dufflebag
slot = slot_back
cost = 2
display_name = "dufflebag"
path = /obj/item/weapon/storage/backpack/dufflebag
slot = slot_back
cost = 2
/datum/gear/utility/dufflebag/black
display_name = "black dufflebag"
path = /obj/item/weapon/storage/backpack/dufflebag/fluff
display_name = "black dufflebag"
path = /obj/item/weapon/storage/backpack/dufflebag/fluff
/datum/gear/utility/dufflebag/med
display_name = "medical dufflebag"
path = /obj/item/weapon/storage/backpack/dufflebag/med
allowed_roles = list("Medical Doctor","Chief Medical Officer","Chemist","Paramedic","Geneticist","Psychiatrist","Field Medic")
display_name = "medical dufflebag"
path = /obj/item/weapon/storage/backpack/dufflebag/med
allowed_roles = list("Medical Doctor","Chief Medical Officer","Chemist","Paramedic","Geneticist","Psychiatrist","Field Medic")
/datum/gear/utility/dufflebag/med/emt
display_name = "EMT dufflebag"
path = /obj/item/weapon/storage/backpack/dufflebag/emt
display_name = "EMT dufflebag"
path = /obj/item/weapon/storage/backpack/dufflebag/emt
/datum/gear/utility/dufflebag/sec
display_name = "security Dufflebag"
@@ -47,11 +47,11 @@
allowed_roles = list("Head of Security","Warden","Detective","Security Officer","Blueshield Guard")
/datum/gear/utility/dufflebag/eng
display_name = "engineering dufflebag"
path = /obj/item/weapon/storage/backpack/dufflebag/eng
allowed_roles = list("Chief Engineer","Atmospheric Technician","Station Engineer")
display_name = "engineering dufflebag"
path = /obj/item/weapon/storage/backpack/dufflebag/eng
allowed_roles = list("Chief Engineer","Atmospheric Technician","Station Engineer")
/datum/gear/utility/dufflebag/sci
display_name = "science dufflebag"
path = /obj/item/weapon/storage/backpack/dufflebag/sci
allowed_roles = list("Research Director","Scientist","Roboticist","Xenobiologist","Explorer","Pathfinder")
display_name = "science dufflebag"
path = /obj/item/weapon/storage/backpack/dufflebag/sci
allowed_roles = list("Research Director","Scientist","Roboticist","Xenobiologist","Explorer","Pathfinder")
@@ -1,3 +1,7 @@
/datum/gear/shoes/footwraps/New() //Give color pick option for footwraps
..()
gear_tweaks = list(gear_tweak_free_color_choice)
/datum/gear/uniform/voxcasual
display_name = "casual wear (Vox)"
path = /obj/item/clothing/under/vox/vox_casual
@@ -54,23 +54,57 @@
if(alt_title && !(alt_title in job.alt_titles))
pref.player_alt_titles -= job.title
/datum/category_item/player_setup_item/occupation/content(mob/user, limit = 20, list/splitJobs = list("Pathfinder")) //VOREStation Edit
/datum/category_item/player_setup_item/occupation/content(mob/user, limit = 20, list/splitJobs = list())
if(!job_master)
return
. = list()
. += "<tt><center>"
. += "<b>Choose occupation chances</b><br>Unavailable occupations are crossed out.<br>"
. += "<table width='100%' cellpadding='1' cellspacing='0'><tr><td width='20%'>" // Table within a table for alignment, also allows you to easily add more columns.
. += "<table width='100%' cellpadding='1' cellspacing='0'><tr><td width='20%' valign='top'>" // Table within a table for alignment, also allows you to easily add more columns.
. += "<table width='100%' cellpadding='1' cellspacing='0'>"
var/index = -1
//The job before the current job. I only use this to get the previous jobs color when I'm filling in blank rows.
var/datum/job/lastJob
if (!job_master) return
for(var/datum/job/job in job_master.occupations)
var/datum/department/last_department = null // Used to avoid repeating the look-ahead check for if a whole department can fit.
var/list/all_valid_jobs = list()
// If the occupation window gets opened before SSJob initializes, then it'll just be blank, with no runtimes.
// It will work once init is finished.
for(var/D in SSjob.department_datums)
var/datum/department/department = SSjob.department_datums[D]
if(department.centcom_only) // No joining as a centcom role, if any are ever added.
continue
for(var/J in department.primary_jobs)
all_valid_jobs += department.jobs[J]
for(var/datum/job/job in all_valid_jobs)
if(job.latejoin_only) continue //VOREStation Code
if((++index >= limit) || (job.title in splitJobs))
var/datum/department/current_department = SSjob.get_primary_department_of_job(job)
// Should we add a new column?
var/make_new_column = FALSE
if(++index > limit)
// Ran out of rows, make a new column.
make_new_column = TRUE
else if(job.title in splitJobs)
// Is hardcoded to split at this job title.
make_new_column = TRUE
else if(current_department != last_department)
// If the department is bigger than the limit then we have to split.
if(limit >= current_department.primary_jobs.len)
// Look ahead to see if we would need to split, and if so, avoid it.
if(index + current_department.primary_jobs.len > limit)
// Looked ahead, and determined that a new column is needed to avoid splitting the department into two.
make_new_column = TRUE
if(make_new_column)
/*******
if((index < limit) && (lastJob != null))
//If the cells were broken up by a job in the splitJob list then it will fill in the rest of the cells with
@@ -78,29 +112,32 @@
for(var/i = 0, i < (limit - index), i++)
. += "<tr bgcolor='[lastJob.selection_color]'><td width='60%' align='right'>//>&nbsp</a></td><td><a>&nbsp</a></td></tr>"
*******/
. += "</table></td><td width='20%'><table width='100%' cellpadding='1' cellspacing='0'>"
. += "</table></td><td width='20%' valign='top'><table width='100%' cellpadding='1' cellspacing='0'>"
index = 0
last_department = current_department
. += "<tr bgcolor='[job.selection_color]'><td width='60%' align='right'>"
var/rank = job.title
lastJob = job
. += "<a href='?src=\ref[src];job_info=[rank]'>"
if(jobban_isbanned(user, rank))
. += "<del>[rank]</del></td><td><b> \[BANNED]</b></td></tr>"
. += "<del>[rank]</del></td></a><td><b> \[BANNED]</b></td></tr>"
continue
if(!job.player_old_enough(user.client))
var/available_in_days = job.available_in_days(user.client)
. += "<del>[rank]</del></td><td> \[IN [(available_in_days)] DAYS]</td></tr>"
. += "<del>[rank]</del></td></a><td> \[IN [(available_in_days)] DAYS]</td></tr>"
continue
if(job.minimum_character_age && user.client && (user.client.prefs.age < job.minimum_character_age))
. += "<del>[rank]</del></td><td> \[MINIMUM CHARACTER AGE: [job.minimum_character_age]]</td></tr>"
. += "<del>[rank]</del></td></a><td> \[MINIMUM CHARACTER AGE: [job.minimum_character_age]]</td></tr>"
continue
if((pref.job_civilian_low & ASSISTANT) && job.type != /datum/job/assistant)
. += "<font color=grey>[rank]</font></td><td></td></tr>"
. += "<font color=grey>[rank]</font></a></td><td></td></tr>"
continue
if((rank in command_positions) || (rank == "AI"))//Bold head jobs
. += "<b>[rank]</b>"
if((rank in SSjob.get_job_titles_in_department(DEPARTMENT_COMMAND) ) || (rank == "AI"))//Bold head jobs
. += "<b>[rank]</b></a>"
else
. += "[rank]"
. += "[rank]</a>"
. += "</td><td width='40%'>"
@@ -111,7 +148,7 @@
. += " <font color=55cc55>\[Yes]</font>"
else
. += " <font color=black>\[No]</font>"
if(job.alt_titles) //Blatantly cloned from a few lines down.
if(LAZYLEN(job.alt_titles)) //Blatantly cloned from a few lines down.
. += "</a></td></tr><tr bgcolor='[lastJob.selection_color]'><td width='60%' align='center'>&nbsp</td><td><a href='?src=\ref[src];select_alt_title=\ref[job]'>\[[pref.GetPlayerAltTitle(job)]\]</a></td></tr>"
. += "</a></td></tr>"
continue
@@ -124,7 +161,7 @@
. += " <font color=cc5555>\[Low]</font>"
else
. += " <font color=black>\[NEVER]</font>"
if(job.alt_titles)
if(LAZYLEN(job.alt_titles))
. += "</a></td></tr><tr bgcolor='[lastJob.selection_color]'><td width='60%' align='center'>&nbsp</td><td><a href='?src=\ref[src];select_alt_title=\ref[job]'>\[[pref.GetPlayerAltTitle(job)]\]</a></td></tr>"
. += "</a></td></tr>"
. += "</td'></tr></table>"
@@ -166,6 +203,45 @@
else if(href_list["set_job"])
if(SetJob(user, href_list["set_job"])) return (pref.equip_preview_mob ? TOPIC_REFRESH_UPDATE_PREVIEW : TOPIC_REFRESH)
else if(href_list["job_info"])
var/rank = href_list["job_info"]
var/datum/job/job = job_master.GetJob(rank)
var/dat = list()
dat += "<p style='background-color: [job.selection_color]'><br><br><p>"
if(job.alt_titles)
dat += "<i><b>Alternate titles:</b> [english_list(job.alt_titles)].</i>"
send_rsc(user, job.get_job_icon(), "job[ckey(rank)].png")
dat += "<img src=job[ckey(rank)].png width=96 height=96 style='float:left;'>"
if(job.departments)
dat += "<b>Departments:</b> [english_list(job.departments)]."
if(LAZYLEN(job.departments_managed))
dat += "You manage these departments: [english_list(job.departments_managed)]"
dat += "You answer to <b>[job.supervisors]</b> normally."
dat += "<hr style='clear:left;'>"
if(config.wikiurl)
dat += "<a href='?src=\ref[src];job_wiki=[rank]'>Open wiki page in browser</a>"
var/alt_title = pref.GetPlayerAltTitle(job)
var/list/description = job.get_description_blurb(alt_title)
if(LAZYLEN(description))
dat += html_encode(description[1])
if(description.len > 1)
if(!isnull(description[2]))
dat += "<br>"
dat += html_encode(description[2])
var/datum/browser/popup = new(user, "Job Info", "[capitalize(rank)]", 430, 520, src)
popup.set_content(jointext(dat,"<br>"))
popup.open()
else if(href_list["job_wiki"])
var/rank = href_list["job_wiki"]
open_link(user,"[config.wikiurl][rank]")
return ..()
/datum/category_item/player_setup_item/occupation/proc/SetPlayerAltTitle(datum/job/job, new_title)
@@ -1,9 +1,3 @@
#define TOPIC_NOACTION 0
#define TOPIC_HANDLED 1
#define TOPIC_REFRESH 2
#define TOPIC_UPDATE_PREVIEW 4
#define TOPIC_REFRESH_UPDATE_PREVIEW (TOPIC_REFRESH|TOPIC_UPDATE_PREVIEW)
#define PREF_FBP_CYBORG "cyborg"
#define PREF_FBP_POSI "posi"
#define PREF_FBP_SOFTWARE "software"
@@ -24,6 +24,9 @@
var/r_wing = 30 // Wing color
var/g_wing = 30 // Wing color
var/b_wing = 30 // Wing color
var/r_wing2 = 30 // Wing extra color
var/g_wing2 = 30 // Wing extra color
var/b_wing2 = 30 // Wing extra color
var/dress_mob = TRUE
// Definition of the stuff for Ears
@@ -50,6 +53,9 @@
S["r_wing"] >> pref.r_wing
S["g_wing"] >> pref.g_wing
S["b_wing"] >> pref.b_wing
S["r_wing2"] >> pref.r_wing2
S["g_wing2"] >> pref.g_wing2
S["b_wing2"] >> pref.b_wing2
/datum/category_item/player_setup_item/vore/ears/save_character(var/savefile/S)
S["ear_style"] << pref.ear_style
@@ -70,6 +76,9 @@
S["r_wing"] << pref.r_wing
S["g_wing"] << pref.g_wing
S["b_wing"] << pref.b_wing
S["r_wing2"] << pref.r_wing2
S["g_wing2"] << pref.g_wing2
S["b_wing2"] << pref.b_wing2
/datum/category_item/player_setup_item/vore/ears/sanitize_character()
pref.r_ears = sanitize_integer(pref.r_ears, 0, 255, initial(pref.r_ears))
@@ -87,6 +96,9 @@
pref.r_wing = sanitize_integer(pref.r_wing, 0, 255, initial(pref.r_wing))
pref.g_wing = sanitize_integer(pref.g_wing, 0, 255, initial(pref.g_wing))
pref.b_wing = sanitize_integer(pref.b_wing, 0, 255, initial(pref.b_wing))
pref.r_wing2 = sanitize_integer(pref.r_wing2, 0, 255, initial(pref.r_wing2))
pref.g_wing2 = sanitize_integer(pref.g_wing2, 0, 255, initial(pref.g_wing2))
pref.b_wing2 = sanitize_integer(pref.b_wing2, 0, 255, initial(pref.b_wing2))
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]
@@ -122,6 +134,9 @@
character.r_wing = pref.r_wing
character.b_wing = pref.b_wing
character.g_wing = pref.g_wing
character.r_wing2 = pref.r_wing2
character.b_wing2 = pref.b_wing2
character.g_wing2 = pref.g_wing2
@@ -178,9 +193,11 @@
. += " Style: <a href='?src=\ref[src];wing_style=1'>[wing_display]</a><br>"
if(wing_styles_list[pref.wing_style])
var/datum/sprite_accessory/wing/T = wing_styles_list[pref.wing_style]
if (T.do_colouration)
var/datum/sprite_accessory/wing/W = wing_styles_list[pref.wing_style]
if (W.do_colouration)
. += "<a href='?src=\ref[src];wing_color=1'>Change Color</a> <font face='fixedsys' size='3' color='#[num2hex(pref.r_wing, 2)][num2hex(pref.g_wing, 2)][num2hex(pref.b_wing, 2)]'><table style='display:inline;' bgcolor='#[num2hex(pref.r_wing, 2)][num2hex(pref.g_wing, 2)][num2hex(pref.b_wing, 2)]'><tr><td>__</td></tr></table> </font><br>"
if (W.extra_overlay)
. += "<a href='?src=\ref[src];wing_color2=1'>Change Secondary Color</a> <font face='fixedsys' size='3' color='#[num2hex(pref.r_wing2, 2)][num2hex(pref.g_wing2, 2)][num2hex(pref.b_wing2, 2)]'><table style='display:inline;' bgcolor='#[num2hex(pref.r_wing2, 2)][num2hex(pref.g_wing2, 2)][num2hex(pref.b_wing2, 2)]'><tr><td>__</td></tr></table> </font><br>"
/datum/category_item/player_setup_item/vore/ears/OnTopic(var/href,var/list/href_list, var/mob/user)
if(!CanUseTopic(user))
@@ -276,6 +293,15 @@
pref.b_wing = hex2num(copytext(new_wingc, 6, 8))
return TOPIC_REFRESH_UPDATE_PREVIEW
else if(href_list["wing_color2"])
var/new_wingc2 = input(user, "Choose your character's secondary wing colour:", "Character Preference",
rgb(pref.r_wing2, pref.g_wing2, pref.b_wing2)) as color|null
if(new_wingc2)
pref.r_wing2 = hex2num(copytext(new_wingc2, 2, 4))
pref.g_wing2 = hex2num(copytext(new_wingc2, 4, 6))
pref.b_wing2 = hex2num(copytext(new_wingc2, 6, 8))
return TOPIC_REFRESH_UPDATE_PREVIEW
else if(href_list["toggle_clothing"])
pref.dress_mob = !pref.dress_mob
return TOPIC_REFRESH_UPDATE_PREVIEW