# Conflicts:
#	code/controllers/autotransfer.dm
#	code/datums/supplypacks/contraband.dm
#	code/datums/supplypacks/munitions.dm
#	code/game/objects/items/weapons/teleportation.dm
#	code/modules/mob/living/carbon/human/update_icons.dm
#	code/modules/mob/living/silicon/robot/robot_modules/station.dm
#	code/modules/mob/living/silicon/robot/robot_modules/station_vr.dm
#	code/modules/reagents/reagent_containers/food/snacks.dm
#	config/custom_items.txt
#	config/jobwhitelist.txt
#	icons/mob/vore/taurs_vr.dmi
#	vorestation.dme
This commit is contained in:
Kelshark
2018-01-24 19:52:12 -05:00
1132 changed files with 48222 additions and 29495 deletions
@@ -12,6 +12,10 @@
/datum/category_item/player_setup_item/general/language/sanitize_character()
if(!islist(pref.alternate_languages)) pref.alternate_languages = list()
if(pref.species)
var/datum/species/S = all_species[pref.species]
if(S && pref.alternate_languages.len > S.num_alternate_languages)
pref.alternate_languages.len = S.num_alternate_languages // Truncate to allowed length
if(isnull(pref.language_prefixes) || !pref.language_prefixes.len)
pref.language_prefixes = config.language_prefixes.Copy()
@@ -61,7 +65,7 @@
alert(user, "There are no additional languages available to select.")
else
var/new_lang = input(user, "Select an additional language", "Character Generation", null) as null|anything in available_languages
if(new_lang)
if(new_lang && pref.alternate_languages.len < S.num_alternate_languages)
pref.alternate_languages |= new_lang
return TOPIC_REFRESH
@@ -10,7 +10,7 @@
S["citizenship"] >> pref.citizenship
S["faction"] >> pref.faction
S["religion"] >> pref.religion
S["nanotrasen_relation"] >> pref.nanotrasen_relation
S["economic_status"] >> pref.economic_status
/datum/category_item/player_setup_item/general/background/save_character(var/savefile/S)
S["med_record"] << pref.med_record
@@ -20,7 +20,7 @@
S["citizenship"] << pref.citizenship
S["faction"] << pref.faction
S["religion"] << pref.religion
S["nanotrasen_relation"] << pref.nanotrasen_relation
S["economic_status"] << pref.economic_status
/datum/category_item/player_setup_item/general/background/sanitize_character()
if(!pref.home_system) pref.home_system = "Unset"
@@ -28,7 +28,7 @@
if(!pref.faction) pref.faction = "None"
if(!pref.religion) pref.religion = "None"
pref.nanotrasen_relation = sanitize_inlist(pref.nanotrasen_relation, COMPANY_ALIGNMENTS, initial(pref.nanotrasen_relation))
pref.economic_status = sanitize_inlist(pref.economic_status, ECONOMIC_CLASS, initial(pref.economic_status))
// Moved from /datum/preferences/proc/copy_to()
/datum/category_item/player_setup_item/general/background/copy_to_mob(var/mob/living/carbon/human/character)
@@ -42,7 +42,7 @@
/datum/category_item/player_setup_item/general/background/content(var/mob/user)
. += "<b>Background Information</b><br>"
. += "[using_map.company_name] Relation: <a href='?src=\ref[src];nt_relation=1'>[pref.nanotrasen_relation]</a><br/>"
. += "Economic Status: <a href='?src=\ref[src];econ_status=1'>[pref.economic_status]</a><br/>"
. += "Home System: <a href='?src=\ref[src];home_system=1'>[pref.home_system]</a><br/>"
. += "Citizenship: <a href='?src=\ref[src];citizenship=1'>[pref.citizenship]</a><br/>"
. += "Faction: <a href='?src=\ref[src];faction=1'>[pref.faction]</a><br/>"
@@ -60,10 +60,10 @@
. += "<a href='?src=\ref[src];set_security_records=1'>[TextPreview(pref.sec_record,40)]</a><br>"
/datum/category_item/player_setup_item/general/background/OnTopic(var/href,var/list/href_list, var/mob/user)
if(href_list["nt_relation"])
var/new_relation = input(user, "Choose your relation to NT. Note that this represents what others can find out about your character by researching your background, not what your character actually thinks.", "Character Preference", pref.nanotrasen_relation) as null|anything in COMPANY_ALIGNMENTS
if(new_relation && CanUseTopic(user))
pref.nanotrasen_relation = new_relation
if(href_list["econ_status"])
var/new_class = input(user, "Choose your economic status. This will affect the amount of money you will start with.", "Character Preference", pref.economic_status) as null|anything in ECONOMIC_CLASS
if(new_class && CanUseTopic(user))
pref.economic_status = new_class
return TOPIC_REFRESH
else if(href_list["home_system"])
@@ -47,10 +47,18 @@ var/list/gear_datums = list()
var/current_tab = "General"
/datum/category_item/player_setup_item/loadout/load_character(var/savefile/S)
S["gear"] >> pref.gear
from_file(S["gear_list"], pref.gear_list)
from_file(S["gear_slot"], pref.gear_slot)
if(pref.gear_list!=null && pref.gear_slot!=null)
pref.gear = pref.gear_list["[pref.gear_slot]"]
else
from_file(S["gear"], pref.gear)
pref.gear_slot = 1
/datum/category_item/player_setup_item/loadout/save_character(var/savefile/S)
S["gear"] << pref.gear
pref.gear_list["[pref.gear_slot]"] = pref.gear
to_file(S["gear_list"], pref.gear_list)
to_file(S["gear_slot"], pref.gear_slot)
/datum/category_item/player_setup_item/loadout/proc/valid_gear_choices(var/max_cost)
. = list()
@@ -68,6 +76,8 @@ var/list/gear_datums = list()
var/mob/preference_mob = preference_mob()
if(!islist(pref.gear))
pref.gear = list()
if(!islist(pref.gear_list))
pref.gear_list = list()
for(var/gear_name in pref.gear)
if(!(gear_name in gear_datums))
@@ -102,7 +112,7 @@ var/list/gear_datums = list()
fcolor = "#E67300"
. += "<table align = 'center' width = 100%>"
. += "<tr><td colspan=3><center><b><font color = '[fcolor]'>[total_cost]/[MAX_GEAR_COST]</font> loadout points spent.</b> \[<a href='?src=\ref[src];clear_loadout=1'>Clear Loadout</a>\]</center></td></tr>"
. += "<tr><td colspan=3><center><a href='?src=\ref[src];prev_slot=1'>\<\<</a><b><font color = '[fcolor]'>\[[pref.gear_slot]\]</font> </b><a href='?src=\ref[src];next_slot=1'>\>\></a><b><font color = '[fcolor]'>[total_cost]/[MAX_GEAR_COST]</font> loadout points spent.</b> \[<a href='?src=\ref[src];clear_loadout=1'>Clear Loadout</a>\]</center></td></tr>"
. += "<tr><td colspan=3><center><b>"
var/firstcat = 1
@@ -187,6 +197,29 @@ var/list/gear_datums = list()
return TOPIC_NOACTION
set_tweak_metadata(gear, tweak, metadata)
return TOPIC_REFRESH_UPDATE_PREVIEW
if(href_list["next_slot"] || href_list["prev_slot"])
//Set the current slot in the gear list to the currently selected gear
pref.gear_list["[pref.gear_slot]"] = pref.gear
//If we're moving up a slot..
if(href_list["next_slot"])
//change the current slot number
pref.gear_slot = pref.gear_slot+1
if(pref.gear_slot>config.loadout_slots)
pref.gear_slot = 1
//If we're moving down a slot..
else if(href_list["prev_slot"])
//change current slot one down
pref.gear_slot = pref.gear_slot-1
if(pref.gear_slot<1)
pref.gear_slot = config.loadout_slots
// Set the currently selected gear to whatever's in the new slot
if(pref.gear_list["[pref.gear_slot]"])
pref.gear = pref.gear_list["[pref.gear_slot]"]
else
pref.gear = list()
pref.gear_list["[pref.gear_slot]"] = list()
// Refresh?
return TOPIC_REFRESH_UPDATE_PREVIEW
else if(href_list["select_category"])
current_tab = href_list["select_category"]
return TOPIC_REFRESH
@@ -202,7 +202,7 @@
/datum/gear/accessory/sweater
display_name = "Sweater Selection"
display_name = "sweater selection"
path = /obj/item/clothing/accessory/sweater
/datum/gear/accessory/sweater/New()
@@ -212,3 +212,35 @@
var/obj/item/clothing/suit/sweater_type = sweater
sweaters[initial(sweater_type.name)] = sweater_type
gear_tweaks += new/datum/gear_tweak/path(sortAssoc(sweaters))
/datum/gear/accessory/bracelet/material
display_name = "bracelet selection"
description = "Choose from a number of bracelets."
path = /obj/item/clothing/accessory/bracelet
cost = 1
/datum/gear/accessory/bracelet/material/New()
..()
var/bracelettype = list()
bracelettype["bracelet, steel"] = /obj/item/clothing/accessory/bracelet/material/steel
bracelettype["bracelet, iron"] = /obj/item/clothing/accessory/bracelet/material/iron
bracelettype["bracelet, silver"] = /obj/item/clothing/accessory/bracelet/material/silver
bracelettype["bracelet, gold"] = /obj/item/clothing/accessory/bracelet/material/gold
bracelettype["bracelet, platinum"] = /obj/item/clothing/accessory/bracelet/material/platinum
bracelettype["bracelet, glass"] = /obj/item/clothing/accessory/bracelet/material/glass
bracelettype["bracelet, wood"] = /obj/item/clothing/accessory/bracelet/material/wood
bracelettype["bracelet, plastic"] = /obj/item/clothing/accessory/bracelet/material/plastic
gear_tweaks += new/datum/gear_tweak/path(bracelettype)
/datum/gear/accessory/bracelet/friendship
display_name = "friendship bracelet"
path = /obj/item/clothing/accessory/bracelet/friendship
/datum/gear/accessory/stethoscope
display_name = "stethoscope"
path = /obj/item/clothing/accessory/stethoscope
allowed_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Psychiatrist","Paramedic")
/datum/gear/accessory/locket
display_name = "locket"
path = /obj/item/clothing/accessory/locket
@@ -1,16 +1,20 @@
/datum/gear/lipstick
/datum/gear/cosmetic/lipstick/black
display_name = "lipstick, black"
path = /obj/item/weapon/lipstick/black
sort_category = "Cosmetics"
/datum/gear/lipstick/jade
/datum/gear/cosmetic/lipstick/jade
display_name = "lipstick, jade"
path = /obj/item/weapon/lipstick/jade
/datum/gear/lipstick/purple
/datum/gear/cosmetic/lipstick/purple
display_name = "lipstick, purple"
path = /obj/item/weapon/lipstick/purple
/datum/gear/lipstick/red
/datum/gear/cosmetic/lipstick
display_name = "lipstick, red"
path = /obj/item/weapon/lipstick
/datum/gear/cosmetic
display_name = "purple comb"
path = /obj/item/weapon/haircomb
sort_category = "Cosmetics"
@@ -18,14 +18,18 @@
path = /obj/item/clothing/glasses/regular/hipster
/datum/gear/eyes/glasses/monocle
display_name = "Monocle"
display_name = "monocle"
path = /obj/item/clothing/glasses/monocle
/datum/gear/eyes/scanning_goggles
/datum/gear/eyes/goggles
display_name = "plain goggles"
path = /obj/item/clothing/glasses/goggles
/datum/gear/eyes/goggles/scanning
display_name = "scanning goggles"
path = /obj/item/clothing/glasses/regular/scanners
/datum/gear/eyes/sciencegoggles
/datum/gear/eyes/goggles/science
display_name = "Science Goggles"
path = /obj/item/clothing/glasses/science
@@ -53,7 +57,7 @@
/datum/gear/eyes/medical
display_name = "Medical HUD (Medical)"
path = /obj/item/clothing/glasses/hud/health
allowed_roles = list("Medical Doctor","Chief Medical Officer","Chemist","Paramedic","Geneticist")
allowed_roles = list("Medical Doctor","Chief Medical Officer","Chemist","Paramedic","Geneticist", "Psychiatrist")
/datum/gear/eyes/medical/prescriptionmed
display_name = "Medical HUD, prescription (Medical)"
@@ -73,7 +77,7 @@
allowed_roles = list("Station Engineer","Chief Engineer","Atmospheric Technician", "Scientist", "Research Director")
/datum/gear/eyes/meson/prescription
display_name = "Optical Meson Scanners, prescription (Engineering)"
display_name = "Optical Meson Scanners, prescription (Engineering, Science)"
path = /obj/item/clothing/glasses/meson/prescription
/datum/gear/eyes/material
@@ -86,11 +90,11 @@
path = /obj/item/clothing/glasses/material/prescription
/datum/gear/eyes/meson/aviator
display_name = "Optical Meson Aviators, (Engineering)"
display_name = "Optical Meson Aviators, (Engineering, Science)"
path = /obj/item/clothing/glasses/meson/aviator
/datum/gear/eyes/meson/aviator/prescription
display_name = "Optical Meson Aviators, prescription (Engineering)"
display_name = "Optical Meson Aviators, prescription (Engineering, Science)"
path = /obj/item/clothing/glasses/meson/aviator/prescription
/datum/gear/eyes/glasses/fakesun
@@ -2,6 +2,10 @@
display_name = "cane"
path = /obj/item/weapon/cane
/datum/gear/cane/white
display_name = "white cane"
path = /obj/item/weapon/cane/whitecane
/datum/gear/dice
display_name = "dice pack"
path = /obj/item/weapon/storage/pill_bottle/dice
@@ -62,10 +66,6 @@
..()
gear_tweaks += new/datum/gear_tweak/reagents(lunchables_drink_reagents())
/datum/gear/comb
display_name = "purple comb"
path = /obj/item/weapon/haircomb
/datum/gear/lunchbox
display_name = "lunchbox"
description = "A little lunchbox."
@@ -114,9 +114,13 @@
path = /obj/item/clothing/head/soft/yellow
/datum/gear/head/cap/white
display_name = "cap, white"
display_name = "cap (colorable)"
path = /obj/item/clothing/head/soft/mime
/datum/gear/head/cap/white/New()
..()
gear_tweaks = list(gear_tweak_free_color_choice)
/datum/gear/head/cap/mbill
display_name = "cap, bill"
path = /obj/item/clothing/head/soft/mbill
@@ -154,29 +158,37 @@
path = /obj/item/clothing/head/fedora/grey
/datum/gear/head/hairflower
display_name = "hair flower pin"
path = /obj/item/clothing/head/hairflower/white
display_name = "hair flower pin (colorable)"
path = /obj/item/clothing/head/pin/flower/white
/datum/gear/head/hairflower/New()
..()
gear_tweaks = list(gear_tweak_free_color_choice)
/datum/gear/head/pin
display_name = "pin selection"
path = /obj/item/clothing/head/pin
/datum/gear/head/pin/New()
..()
var/list/pins = list()
for(var/pin in typesof(/obj/item/clothing/head/pin))
var/obj/item/clothing/head/pin/pin_type = pin
pins[initial(pin_type.name)] = pin_type
gear_tweaks += new/datum/gear_tweak/path(sortAssoc(pins))
/datum/gear/head/hardhat
display_name = "hardhat, yellow"
display_name = "hardhat selection"
path = /obj/item/clothing/head/hardhat
cost = 2
/datum/gear/head/hardhat/blue
display_name = "hardhat, blue"
path = /obj/item/clothing/head/hardhat/dblue
/datum/gear/head/hardhat/orange
display_name = "hardhat, orange"
path = /obj/item/clothing/head/hardhat/orange
/datum/gear/head/hardhat/red
display_name = "hardhat, red"
path = /obj/item/clothing/head/hardhat/red
/datum/gear/head/hardhat/New()
..()
var/list/hardhats = list()
for(var/hardhat in typesof(/obj/item/clothing/head/hardhat))
var/obj/item/clothing/head/hardhat/hardhat_type = hardhat
hardhats[initial(hardhat_type.name)] = hardhat_type
gear_tweaks += new/datum/gear_tweak/path(sortAssoc(hardhats))
/datum/gear/head/boater
display_name = "hat, boatsman"
@@ -194,22 +206,30 @@
display_name = "hat, tophat"
path = /obj/item/clothing/head/that
/datum/gear/head/philosopher_wig
/datum/gear/head/wig/philosopher
display_name = "natural philosopher's wig"
path = /obj/item/clothing/head/philosopher_wig
/datum/gear/head/wig
display_name = "powdered wig"
path = /obj/item/clothing/head/powdered_wig
/datum/gear/head/ushanka
display_name = "ushanka"
path = /obj/item/clothing/head/ushanka
/datum/gear/head/santahat
display_name = "santa hat, red (holiday)"
display_name = "santa hat"
path = /obj/item/clothing/head/santa
cost = 2
/datum/gear/head/santahat/green
display_name = "santa hat, green (holiday)"
path = /obj/item/clothing/head/santa/green
/datum/gear/head/santahat/New()
..()
var/list/santahats = list()
for(var/santahat in typesof(/obj/item/clothing/head/santa))
var/obj/item/clothing/head/santa/santahat_type = santahat
santahats[initial(santahat_type.name)] = santahat_type
gear_tweaks += new/datum/gear_tweak/path(sortAssoc(santahats))
/datum/gear/head/hijab
display_name = "hijab"
@@ -243,11 +263,14 @@
..()
gear_tweaks = list(gear_tweak_free_color_choice)
/datum/gear/head/kitty
display_name = "kitty ears"
path = /obj/item/clothing/head/kitty
/datum/gear/head/rabbit
display_name = "rabbit ears"
path = /obj/item/clothing/head/rabbitears
/datum/gear/head/beanie
display_name = "beanie"
path = /obj/item/clothing/head/beanie
@@ -284,11 +307,11 @@
..()
gear_tweaks = list(gear_tweak_free_color_choice)
/datum/gear/head/bow
display_name = "hair bow"
path = /obj/item/clothing/head/hairflower/bow
/datum/gear/head/bow/small
display_name = "hair bow, small (colorable)"
path = /obj/item/clothing/head/pin/bow
/datum/gear/head/bow/New()
/datum/gear/head/bow/small/New()
..()
gear_tweaks = list(gear_tweak_free_color_choice)
@@ -0,0 +1,11 @@
/datum/gear/shoes/black/cuffs
display_name = "legwraps, black"
path = /obj/item/clothing/shoes/black/cuffs
/datum/gear/shoes/black/cuffs/blue
display_name = "legwraps, blue"
path = /obj/item/clothing/shoes/black/cuffs/blue
/datum/gear/shoes/black/cuffs/red
display_name = "legwraps, red"
path = /obj/item/clothing/shoes/black/cuffs/red
@@ -1,20 +1,29 @@
/datum/gear/smokingpipe
display_name = "pipe, smoking"
/datum/gear/pipe
display_name = "pipe"
path = /obj/item/clothing/mask/smokable/pipe
/datum/gear/cornpipe
display_name = "pipe, corn"
path = /obj/item/clothing/mask/smokable/pipe/cobpipe
/datum/gear/pipe/New()
..()
var/list/pipes = list()
for(var/pipe_style in typesof(/obj/item/clothing/mask/smokable/pipe))
var/obj/item/clothing/mask/smokable/pipe/pipe = pipe_style
pipes[initial(pipe.name)] = pipe
gear_tweaks += new/datum/gear_tweak/path(sortAssoc(pipes))
/datum/gear/matchbook
display_name = "matchbook"
path = /obj/item/weapon/storage/box/matches
/datum/gear/zippo
display_name = "Zippo Selection"
/datum/gear/lighter
display_name = "cheap lighter"
path = /obj/item/weapon/flame/lighter
/datum/gear/lighter/zippo
display_name = "Zippo selection"
path = /obj/item/weapon/flame/lighter/zippo
/datum/gear/zippo/New()
/datum/gear/lighter/zippo/New()
..()
var/list/zippos = list()
for(var/zippo in typesof(/obj/item/weapon/flame/lighter/zippo))
@@ -40,4 +49,4 @@
for(var/cigarette in (typesof(/obj/item/weapon/storage/fancy/cigarettes) - typesof(/obj/item/weapon/storage/fancy/cigarettes/killthroat)))
var/obj/item/weapon/storage/fancy/cigarettes/cigarette_brand = cigarette
cigarettes[initial(cigarette_brand.name)] = cigarette_brand
gear_tweaks += new/datum/gear_tweak/path(sortAssoc(cigarettes))
gear_tweaks += new/datum/gear_tweak/path(sortAssoc(cigarettes))
@@ -6,6 +6,10 @@
sort_category = "Suits and Overwear"
cost = 2
/datum/gear/suit/greatcoat
display_name = "greatcoat"
path = /obj/item/clothing/suit/greatcoat
/datum/gear/suit/leather_coat
display_name = "leather coat"
path = /obj/item/clothing/suit/leathercoat
@@ -380,18 +384,6 @@
display_name = "denim vest, corporate"
path = /obj/item/clothing/suit/storage/toggle/denim_jacket/nanotrasen/sleeveless
/datum/gear/suit/service
display_name = "service jacket selection"
path = /obj/item/clothing/suit/storage/service
/datum/gear/suit/service/New()
..()
var/list/services = list()
for(var/service_style in typesof(/obj/item/clothing/suit/storage/service))
var/obj/item/clothing/suit/storage/service/service = service_style
services[initial(service.name)] = service
gear_tweaks += new/datum/gear_tweak/path(sortAssoc(services))
/datum/gear/suit/miscellaneous/kimono
display_name = "kimono"
path = /obj/item/clothing/suit/kimono
@@ -349,7 +349,7 @@
/datum/gear/uniform/whitewedding
display_name= "white wedding dress"
path = /obj/item/clothing/under/dress/white
path = /obj/item/clothing/under/wedding/bride_white
/datum/gear/uniform/skirts
display_name = "executive skirt"
@@ -363,38 +363,29 @@
display_name = "red evening gown"
path = /obj/item/clothing/under/dress/redeveninggown
/datum/gear/uniform/dresses/janimaid
display_name = "maid uniform"
path = /obj/item/clothing/under/dress/janimaid
/datum/gear/uniform/dresses/maid
display_name = "maid uniform selection"
path = /obj/item/clothing/under/dress/maid
/datum/gear/uniform/dresses/sexymaid
display_name = "sexy maid uniform"
path = /obj/item/clothing/under/dress/sexymaid
/datum/gear/uniform/pt
display_name = "pt uniform"
path = /obj/item/clothing/under/pt
/datum/gear/uniform/pt/expeditionary
display_name = "pt uniform, sifguard"
path = /obj/item/clothing/under/pt/expeditionary
/datum/gear/uniform/pt/fleet
display_name = "pt uniform, fleet"
path = /obj/item/clothing/under/pt/fleet
/datum/gear/uniform/dresses/maid/New()
..()
var/list/maids = list()
for(var/maid in typesof(/obj/item/clothing/under/dress/maid))
var/obj/item/clothing/under/dress/maid/maid_type = maid
maids[initial(maid_type.name)] = maid_type
gear_tweaks += new/datum/gear_tweak/path(sortAssoc(maids))
/datum/gear/uniform/utility
display_name = "utility, black"
path = /obj/item/clothing/under/utility
cost = 2
/datum/gear/uniform/utility/fleet
display_name = "utility, navy"
path = /obj/item/clothing/under/utility/fleet
/datum/gear/uniform/utility/blue
display_name = "utility, blue"
path = /obj/item/clothing/under/utility/blue
/datum/gear/uniform/utility/marine
/datum/gear/uniform/utility/grey
display_name = "utility, grey"
path = /obj/item/clothing/under/utility/marine
path = /obj/item/clothing/under/utility/grey
/datum/gear/uniform/sweater
display_name = "sweater, grey"
@@ -3,9 +3,9 @@
path = /obj/item/clothing/under/permit
//Polaris overrides
/datum/gear/uniform/pt/expeditionary
/datum/gear/uniform/pt/sifguard
display_name = "pt uniform, planetside sec"
path = /obj/item/clothing/under/pt/expeditionary
path = /obj/item/clothing/under/pt/sifguard
//KHI Uniforms
/datum/gear/uniform/job_khi/cmd
@@ -9,10 +9,22 @@
path = /obj/item/weapon/clipboard
/datum/gear/utility/communicator
display_name = "personal communicator"
display_name = "communicator selection"
path = /obj/item/device/communicator
cost = 0
/datum/gear/utility/communicator/New()
..()
var/list/communicators = list()
for(var/communicator in typesof(/obj/item/device/communicator) - list(/obj/item/device/communicator/integrated))
var/obj/item/device/communicator_type = communicator
communicators[initial(communicator_type.name)] = communicator_type
gear_tweaks += new/datum/gear_tweak/path(sortAssoc(communicators))
/datum/gear/utility/camera
display_name = "camera"
path = /obj/item/device/camera
/datum/gear/utility/codex
display_name = "the traveler's guide to vir"
path = /obj/item/weapon/book/codex //VOREStation Edit
@@ -43,25 +43,33 @@
bandtypes[initial(band.name)] = band
gear_tweaks += new/datum/gear_tweak/path(sortAssoc(bandtypes))
/datum/gear/ears/skrell/cloth/male
display_name = "male headtail cloth (Skrell)"
/datum/gear/ears/skrell/cloth/short
display_name = "short headtail cloth (Skrell)"
path = /obj/item/clothing/ears/skrell/cloth_male/black
sort_category = "Xenowear"
whitelisted = "Skrell"
/datum/gear/ears/skrell/cloth/male/New()
/datum/gear/ears/skrell/cloth/short/New()
..()
gear_tweaks = list(gear_tweak_free_color_choice)
var/list/shorttypes = list()
for(var/short_style in typesof(/obj/item/clothing/ears/skrell/cloth_male))
var/obj/item/clothing/ears/skrell/cloth_male/short = short_style
shorttypes[initial(short.name)] = short
gear_tweaks += new/datum/gear_tweak/path(sortAssoc(shorttypes))
/datum/gear/ears/skrell/cloth/female
display_name = "female headtail cloth (Skrell)"
/datum/gear/ears/skrell/cloth/long
display_name = "long headtail cloth (Skrell)"
path = /obj/item/clothing/ears/skrell/cloth_female/black
sort_category = "Xenowear"
whitelisted = "Skrell"
/datum/gear/ears/skrell/cloth/female/New()
/datum/gear/ears/skrell/cloth/long/New()
..()
gear_tweaks = list(gear_tweak_free_color_choice)
var/list/longtypes = list()
for(var/long_style in typesof(/obj/item/clothing/ears/skrell/cloth_female))
var/obj/item/clothing/ears/skrell/cloth_female/long = long_style
longtypes[initial(long.name)] = long
gear_tweaks += new/datum/gear_tweak/path(sortAssoc(longtypes))
/datum/gear/ears/skrell/colored/band
display_name = "Colored bands (Skrell)"
@@ -54,7 +54,7 @@
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 = 17, list/splitJobs = list("Chief Medical Officer"))
/datum/category_item/player_setup_item/occupation/content(mob/user, limit = 18, list/splitJobs = list("Chief Medical Officer"))
if(!job_master)
return
@@ -70,13 +70,14 @@
if (!job_master) return
for(var/datum/job/job in job_master.occupations)
if(job.latejoin_only) continue //VOREStation Code
index += 1
if((index >= limit) || (job.title in splitJobs))
if((++index >= limit) || (job.title in splitJobs))
/*******
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
//the last job's selection color. Creating a rather nice effect.
for(var/i = 0, i < (limit - index), i += 1)
. += "<tr bgcolor='[lastJob.selection_color]'><td width='60%' align='right'><a>&nbsp</a></td><td><a>&nbsp</a></td></tr>"
//the last job's selection color and blank buttons that do nothing. Creating a rather nice effect.
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'>"
index = 0
@@ -183,6 +183,17 @@
desc = "Small spaces and tight quarters makes you feel distressed. Unfortunately both are rather common when living in space."
modifier_type = /datum/modifier/trait/phobia/claustrophobe
/datum/trait/modifier/mental/blennophobe
name = "Blennophobia"
desc = "Slimes are quite dangerous, but just the aspect of something being slimey is uncomfortable."
modifier_type = /datum/modifier/trait/phobia/blennophobe
/datum/trait/modifier/mental/trypanophobe
name = "Trypanophobia"
desc = "Syringes and needles make you very distressed. You really don't want to get sick..."
modifier_type = /datum/modifier/trait/phobia/trypanophobe
/*
// Uncomment this when/if these get finished.
/datum/trait/modifier/mental/synthphobe
@@ -239,4 +250,4 @@
name = "Promethean-phobic"
desc = "Boilerplate racism for jellos goes here."
mutually_exclusive = list(/datum/trait/modifier/mental/xenophobe)
*/
*/
@@ -33,11 +33,12 @@
S["fuzzy"] << pref.fuzzy
/datum/category_item/player_setup_item/vore/size/sanitize_character()
pref.size_multiplier = pref.size_multiplier
pref.weight_vr = sanitize_integer(pref.weight_vr, WEIGHT_MIN, WEIGHT_MAX, initial(pref.weight_vr))
pref.weight_gain = sanitize_integer(pref.weight_gain, WEIGHT_CHANGE_MIN, WEIGHT_CHANGE_MAX, initial(pref.weight_gain))
pref.weight_loss = sanitize_integer(pref.weight_loss, WEIGHT_CHANGE_MIN, WEIGHT_CHANGE_MAX, initial(pref.weight_loss))
pref.fuzzy = pref.fuzzy
pref.fuzzy = sanitize_integer(pref.fuzzy, 0, 1, initial(pref.fuzzy))
if(pref.size_multiplier == null || pref.size_multiplier < RESIZE_TINY || pref.size_multiplier > RESIZE_HUGE)
pref.size_multiplier = initial(pref.size_multiplier)
/datum/category_item/player_setup_item/vore/size/copy_to_mob(var/mob/living/carbon/human/character)
character.resize(pref.size_multiplier, FALSE)
@@ -73,7 +73,7 @@
if(!(path in negative_traits))
pref.neg_traits -= path
if(!pref.custom_base || !(pref.custom_base in playable_species - whitelisted_species))
if(!pref.custom_base || (pref.custom_base != "Xenochimera" && !(pref.custom_base in playable_species - whitelisted_species)))
pref.custom_base = "Human"
/datum/category_item/player_setup_item/vore/traits/copy_to_mob(var/mob/living/carbon/human/character)
@@ -86,8 +86,15 @@
//Any additional non-trait settings can be applied here
new_CS.blood_color = pref.blood_color
if(pref.species == "Xenochimera")
var/datum/species/xenochimera/CS = character.species
var/S = pref.custom_base ? pref.custom_base : "Human"
var/datum/species/xenochimera/new_CS = CS.produceCopy(S, pref.pos_traits + pref.neu_traits + pref.neg_traits, character)
//Any additional non-trait settings can be applied here
new_CS.blood_color = pref.blood_color
/datum/category_item/player_setup_item/vore/traits/content(var/mob/user)
//if(pref.species == "Custom Species" || pref.custom_species) //People that want to use a certain species to have that species traits (xenochimera/promethean/spider) should be able to set their custom species.
. += "<b>Custom Species</b> "
. += "<a href='?src=\ref[src];custom_species=1'>[pref.custom_species ? pref.custom_species : "-Input Name-"]</a><br>"
@@ -95,6 +102,12 @@
. += "<b>Icon Base: </b> "
. += "<a href='?src=\ref[src];custom_base=1'>[pref.custom_base ? pref.custom_base : "Human"]</a><br>"
if(pref.species == "Xenochimera")
. += "<b>Icon Base: </b> "
. += "<a href='?src=\ref[src];custom_base_xenochimera=1'>[pref.custom_base ? pref.custom_base : "Human"]</a><br>"
if(pref.species == "Custom Species")
var/points_left = pref.starting_trait_points
var/traits_left = pref.max_traits
for(var/T in pref.pos_traits + pref.neg_traits)
@@ -153,6 +166,12 @@
pref.custom_base = text_choice
return TOPIC_REFRESH_UPDATE_PREVIEW
else if(href_list["custom_base_xenochimera"])
var/text_choice = input("Pick an icon set for your species:","Icon Base") in playable_species - whitelisted_species - "Custom Species" - "Promethean" + "Xenochimera"
if(text_choice in playable_species)
pref.custom_base = text_choice
return TOPIC_REFRESH_UPDATE_PREVIEW
else if(href_list["blood_color"])
var/color_choice = input("Pick a blood color (does not apply to synths)","Blood Color",pref.blood_color) as color
if(color_choice)