diff --git a/aurorastation.dme b/aurorastation.dme index 8d7cac106ba..727af03a786 100644 --- a/aurorastation.dme +++ b/aurorastation.dme @@ -1251,6 +1251,12 @@ #include "code\modules\client\preference_setup\loadout\loadout_uniform.dm" #include "code\modules\client\preference_setup\loadout\loadout_utility.dm" #include "code\modules\client\preference_setup\loadout\loadout_xeno.dm" +#include "code\modules\client\preference_setup\loadout\loadout_xeno\human.dm" +#include "code\modules\client\preference_setup\loadout\loadout_xeno\machine.dm" +#include "code\modules\client\preference_setup\loadout\loadout_xeno\skrell.dm" +#include "code\modules\client\preference_setup\loadout\loadout_xeno\tajara.dm" +#include "code\modules\client\preference_setup\loadout\loadout_xeno\unathi.dm" +#include "code\modules\client\preference_setup\loadout\loadout_xeno\vaurca.dm" #include "code\modules\client\preference_setup\occupation\occupation.dm" #include "code\modules\client\preference_setup\other\01_incidents.dm" #include "code\modules\client\preference_setup\skills\skills.dm" diff --git a/code/controllers/subsystems/job.dm b/code/controllers/subsystems/job.dm index 8cdcaad1580..ea0d037b417 100644 --- a/code/controllers/subsystems/job.dm +++ b/code/controllers/subsystems/job.dm @@ -420,6 +420,9 @@ var/obj/item/clothing/glasses/G = H.glasses G.prescription = TRUE + if(H.species) + H.species.equip_later_gear(H) + BITSET(H.hud_updateflag, ID_HUD) BITSET(H.hud_updateflag, IMPLOYAL_HUD) BITSET(H.hud_updateflag, SPECIALROLE_HUD) @@ -557,6 +560,9 @@ G.prescription = TRUE G.autodrobe_no_remove = TRUE + if(H.species) + H.species.equip_later_gear(H) + // So shoes aren't silent if people never change 'em. H.update_noise_level() @@ -754,7 +760,7 @@ Debug("EC/([H]): [thing] failed mask/suit/head check; leftovers=[!!leftovers]") else if (H.equip_to_slot_or_del(CI, G.slot)) CI.autodrobe_no_remove = TRUE - to_chat(H, "Equipping you with [thing]!") + to_chat(H, "Equipping you with [thing]!") custom_equip_slots += G.slot Debug("EC/([H]): Equipped [CI] successfully.") else if (leftovers) diff --git a/code/game/machinery/megavend.dm b/code/game/machinery/megavend.dm index aefa7b06f5d..53ab9d02163 100644 --- a/code/game/machinery/megavend.dm +++ b/code/game/machinery/megavend.dm @@ -43,6 +43,8 @@ continue if(W.autodrobe_no_remove) continue + if(!W.canremove) + continue H.drop_from_inventory(W,gearbox) to_chat(H,"You feel a pleasant breeze as the autolocker whisks away all of your clothes, packing them neatly in a box.") diff --git a/code/game/objects/items/weapons/storage/firstaid.dm b/code/game/objects/items/weapons/storage/firstaid.dm index 464e7a4a380..04d5ddea405 100644 --- a/code/game/objects/items/weapons/storage/firstaid.dm +++ b/code/game/objects/items/weapons/storage/firstaid.dm @@ -319,3 +319,17 @@ new /obj/item/weapon/reagent_containers/pill/escitalopram( src ) new /obj/item/weapon/reagent_containers/pill/escitalopram( src ) new /obj/item/weapon/reagent_containers/pill/escitalopram( src ) + +/obj/item/weapon/storage/pill_bottle/rtm + name = "bottle of RTM pills" + desc = "Contains pills used to remedy the effects of prolonged zero-gravity adaptations." + +/obj/item/weapon/storage/pill_bottle/rtm/fill() + ..() + new /obj/item/weapon/reagent_containers/pill/rmt(src) + new /obj/item/weapon/reagent_containers/pill/rmt(src) + new /obj/item/weapon/reagent_containers/pill/rmt(src) + new /obj/item/weapon/reagent_containers/pill/rmt(src) + new /obj/item/weapon/reagent_containers/pill/rmt(src) + new /obj/item/weapon/reagent_containers/pill/rmt(src) + new /obj/item/weapon/reagent_containers/pill/rmt(src) \ No newline at end of file diff --git a/code/modules/client/preference_setup/loadout/loadout_xeno.dm b/code/modules/client/preference_setup/loadout/loadout_xeno.dm index 9dfc57b8ce9..81434313802 100644 --- a/code/modules/client/preference_setup/loadout/loadout_xeno.dm +++ b/code/modules/client/preference_setup/loadout/loadout_xeno.dm @@ -1,376 +1,3 @@ -//Catagories; Xenowear - Unathi / Xenowear - Tajara / Xenowear - Skrell / Xenowear - Vaurca / Xenowear - IPC / Xeno wear - -//unathi items - -/datum/gear/suit/unathi_mantle - display_name = "hide mantle (Unathi)" - path = /obj/item/clothing/suit/unathi/mantle - cost = 1 - whitelisted = list("Unathi", "Aut'akh Unathi") - sort_category = "Xenowear - Unathi" - -/datum/gear/suit/unathi_robe - display_name = "roughspun robe (Unathi)" - path = /obj/item/clothing/suit/unathi/robe - cost = 1 - whitelisted = list("Unathi", "Aut'akh Unathi") - sort_category = "Xenowear - Unathi" - -/datum/gear/suit/robe_coat - display_name = "tzirzi robe (Unathi)" - path = /obj/item/clothing/suit/unathi/robe/robe_coat - cost = 1 - whitelisted = list("Unathi", "Aut'akh Unathi") - sort_category = "Xenowear - Unathi" - -/datum/gear/gloves/unathi - display_name = "gloves selection (Unathi)" - path = /obj/item/clothing/gloves/black/unathi - whitelisted = list("Unathi", "Aut'akh Unathi") - sort_category = "Xenowear - Unathi" - -/datum/gear/gloves/unathi/New() - ..() - var/un_gloves = list() - un_gloves["black gloves"] = /obj/item/clothing/gloves/black/unathi - un_gloves["red gloves"] = /obj/item/clothing/gloves/red/unathi - un_gloves["blue gloves"] = /obj/item/clothing/gloves/blue/unathi - un_gloves["orange gloves"] = /obj/item/clothing/gloves/orange/unathi - un_gloves["purple gloves"] = /obj/item/clothing/gloves/purple/unathi - un_gloves["brown gloves"] = /obj/item/clothing/gloves/brown/unathi - un_gloves["green gloves"] = /obj/item/clothing/gloves/green/unathi - un_gloves["white gloves"] = /obj/item/clothing/gloves/white/unathi - gear_tweaks += new/datum/gear_tweak/path(un_gloves) - -/datum/gear/uniform/unathi - display_name = "sinta tunic (Unathi)" - path = /obj/item/clothing/under/unathi - whitelisted = list("Unathi", "Aut'akh Unathi") - sort_category = "Xenowear - Unathi" - -/datum/gear/uniform/unathi/New() - ..() - gear_tweaks = list(gear_tweak_free_color_choice) - -/datum/gear/autakh_engineering - display_name = "engineering grasper" - description = "An Aut'akh augment limb, this one is outfitted with a limited toolkit." - path = /obj/item/organ/external/hand/right/autakh/tool - whitelisted = list("Aut'akh Unathi") - sort_category = "Xenowear - Unathi" - cost = 3 - allowed_roles = list("Station Engineer", "Chief Engineer", "Atmospheric Technician", "Engineering Apprentice", "Roboticist") - -/datum/gear/autakh_mining - display_name = "mining grasper" - description = "An Aut'akh augment limb, this one is outfitted with a mining drill." - path = /obj/item/organ/external/hand/right/autakh/tool/mining - whitelisted = list("Aut'akh Unathi") - sort_category = "Xenowear - Unathi" - cost = 3 - allowed_roles = list("Shaft Miner") - -/datum/gear/autakh_medical - display_name = "medical grasper" - description = "An Aut'akh augment limb, this one is outfitted with a health scanner." - path = /obj/item/organ/external/hand/right/autakh/medical - whitelisted = list("Aut'akh Unathi") - sort_category = "Xenowear - Unathi" - cost = 3 - allowed_roles = list("Chief Medical Officer", "Medical Doctor", "Paramedic", "Medical Resident", "Psychiatrist", "Chemist") - -/datum/gear/autakh_security - display_name = "security grasper" - description = "An Aut'akh augment limb, this one is outfitted with an electroshock weapon." - path = /obj/item/organ/external/hand/right/autakh/security - whitelisted = list("Aut'akh Unathi") - sort_category = "Xenowear - Unathi" - cost = 3 - allowed_roles = list("Security Officer", "Head of Security", "Warden") - -//skrell - -/datum/gear/ears/skrell/chains //Chains - display_name = "headtail chain selection (Skrell)" - path = /obj/item/clothing/ears/skrell/chain - sort_category = "Xenowear - Skrell" - whitelisted = list("Skrell") - -/datum/gear/ears/skrell/chains/New() - ..() - var/list/chaintypes = list() - for(var/chain_style in typesof(/obj/item/clothing/ears/skrell/chain)) - var/obj/item/clothing/ears/skrell/chain/chain = chain_style - chaintypes[initial(chain.name)] = chain - gear_tweaks += new/datum/gear_tweak/path(sortAssoc(chaintypes)) - -/datum/gear/ears/skrell/bands - display_name = "headtail band selection (Skrell)" - path = /obj/item/clothing/ears/skrell/band - sort_category = "Xenowear - Skrell" - whitelisted = list("Skrell") - -/datum/gear/ears/skrell/bands/New() - ..() - var/list/bandtypes = list() - for(var/band_style in typesof(/obj/item/clothing/ears/skrell/band)) - var/obj/item/clothing/ears/skrell/band/band = band_style - bandtypes[initial(band.name)] = band - gear_tweaks += new/datum/gear_tweak/path(sortAssoc(bandtypes)) - -/datum/gear/ears/skrell/cloth/short - display_name = "short headtail cloth (Skrell)" - path = /obj/item/clothing/ears/skrell/cloth_short/black - sort_category = "Xenowear - Skrell" - whitelisted = list("Skrell") - -/datum/gear/ears/skrell/cloth/short/New() - ..() - var/list/shorttypes = list() - for(var/short_style in typesof(/obj/item/clothing/ears/skrell/cloth_short)) - var/obj/item/clothing/ears/skrell/cloth_short/short = short_style - shorttypes[initial(short.name)] = short - gear_tweaks += new/datum/gear_tweak/path(sortAssoc(shorttypes)) - -/datum/gear/ears/skrell/cloth/average - display_name = "average headtail cloth (Skrell)" - path = /obj/item/clothing/ears/skrell/cloth_average/black - sort_category = "Xenowear - Skrell" - whitelisted = list("Skrell") - -/datum/gear/ears/skrell/cloth/average/New() - ..() - var/list/averagetypes = list() - for(var/average_style in typesof(/obj/item/clothing/ears/skrell/cloth_average)) - var/obj/item/clothing/ears/skrell/cloth_average/average = average_style - averagetypes[initial(average.name)] = average - gear_tweaks += new/datum/gear_tweak/path(sortAssoc(averagetypes)) - -/datum/gear/accessory/capes - display_name = "shoulder capes (Skrell)" - path = /obj/item/clothing/accessory/poncho/shouldercape - whitelisted = list("Skrell") - sort_category = "Xenowear - Skrell" - -/datum/gear/accessory/capes/New() - ..() - var/capes = list() - capes["star cape"] = /obj/item/clothing/accessory/poncho/shouldercape/star - capes["nebula cape"] = /obj/item/clothing/accessory/poncho/shouldercape/nebula - capes["nova cape"] = /obj/item/clothing/accessory/poncho/shouldercape/nova - capes["galaxy cape"] = /obj/item/clothing/accessory/poncho/shouldercape/galaxy - gear_tweaks += new/datum/gear_tweak/path(capes) - -//vaurca items - -/datum/gear/eyes/blindfold - display_name = "vaurca blindfold (Vaurca)" - path = /obj/item/clothing/glasses/sunglasses/blinders - cost = 2 - whitelisted = list("Vaurca Worker", "Vaurca Warrior") - sort_category = "Xenowear - Vaurca" - -/datum/gear/mask/vaurca - display_name = "mandible garment (Vaurca)" - path = /obj/item/clothing/mask/breath/vaurca - cost = 1 - whitelisted = list("Vaurca Worker", "Vaurca Warrior",) - sort_category = "Xenowear - Vaurca" - -/datum/gear/mask/vaurca_expression - display_name = "human expression mask (Vaurca)" - path = /obj/item/clothing/mask/breath/vaurca/expression - cost = 1 - whitelisted = list("Vaurca Worker", "Vaurca Warrior",) - sort_category = "Xenowear - Vaurca" - -/datum/gear/mask/vaurca_expression/New() - ..() - gear_tweaks = list(gear_tweak_free_color_choice) - -/datum/gear/mask/vaurca_expression/skrell - display_name = "skrell expression mask (Vaurca)" - path = /obj/item/clothing/mask/breath/vaurca/expression/skrell - -/datum/gear/cape - display_name = "tunnel cloak (Vaurca)" - path = /obj/item/weapon/storage/backpack/cloak - cost = 1 - whitelisted = list("Vaurca Worker", "Vaurca Warrior",) - sort_category = "Xenowear - Vaurca" - -/datum/gear/vaurca_robe - display_name = "hive cloak (Vaurca)" - path = /obj/item/clothing/suit/vaurca - cost = 1 - whitelisted = list("Vaurca Worker", "Vaurca Warrior",) - sort_category = "Xenowear - Vaurca" - -/datum/gear/vaurca_robe/New() - ..() - var/cloaks = list() - cloaks["hive cloak, red and golden"] = /obj/item/clothing/suit/vaurca - cloaks["hive cloak, red and silver"] = /obj/item/clothing/suit/vaurca/silver - cloaks["hive cloak, brown and silver"] = /obj/item/clothing/suit/vaurca/brown - cloaks["hive cloak, blue and golden"] = /obj/item/clothing/suit/vaurca/blue - gear_tweaks += new/datum/gear_tweak/path(cloaks) - -//tajara items - -/datum/gear/gloves/tajara - display_name = "gloves selection (Tajara)" - path = /obj/item/clothing/gloves/black/tajara - whitelisted = list("Tajara", "Zhan-Khazan Tajara", "M'sai Tajara") - sort_category = "Xenowear - Tajara" - -/datum/gear/gloves/tajara/New() - ..() - var/taj_gloves = list() - taj_gloves["black gloves"] = /obj/item/clothing/gloves/black/tajara - taj_gloves["red gloves"] = /obj/item/clothing/gloves/red/tajara - taj_gloves["blue gloves"] = /obj/item/clothing/gloves/blue/tajara - taj_gloves["orange gloves"] = /obj/item/clothing/gloves/orange/tajara - taj_gloves["purple gloves"] = /obj/item/clothing/gloves/purple/tajara - taj_gloves["brown gloves"] = /obj/item/clothing/gloves/brown/tajara - taj_gloves["green gloves"] = /obj/item/clothing/gloves/green/tajara - taj_gloves["white gloves"] = /obj/item/clothing/gloves/white/tajara - gear_tweaks += new/datum/gear_tweak/path(taj_gloves) - -/datum/gear/suit/tajara_coat - display_name = "tajara coat selection (Tajara)" - path = /obj/item/clothing/suit/storage/tajaran - whitelisted = list("Tajara", "Zhan-Khazan Tajara", "M'sai Tajara") - sort_category = "Xenowear - Tajara" - -/datum/gear/suit/tajara_coat/New() - ..() - var/coat = list() - coat["tajaran naval coat"] = /obj/item/clothing/suit/storage/tajaran - coat["commoner cloak"] = /obj/item/clothing/suit/storage/tajaran/cloak - coat["royal cloak"] = /obj/item/clothing/suit/storage/tajaran/cloak/fancy - coat["gruff cloak"] = /obj/item/clothing/suit/storage/hooded/tajaran - coat["adhomian wool coat"] = /obj/item/clothing/suit/storage/tajaran/nomad - gear_tweaks += new/datum/gear_tweak/path(coat) - -/datum/gear/suit/tajara_priest - display_name = "tajara priest robe selection (Tajara)" - path = /obj/item/clothing/suit/storage/hooded/tajaran/priest - whitelisted = list("Tajara", "Zhan-Khazan Tajara", "M'sai Tajara") - sort_category = "Xenowear - Tajara" - -/datum/gear/suit/tajara_priest/New() - ..() - var/robes = list() - robes["sun priest robe"] = /obj/item/clothing/suit/storage/hooded/tajaran/priest - robes["sun sister robe"] = /obj/item/clothing/suit/storage/tajaran/messa - gear_tweaks += new/datum/gear_tweak/path(robes) - -/datum/gear/suit/tajaran_labcoat - display_name = "PRA medical coat (Tajara)" - path = /obj/item/clothing/suit/storage/toggle/labcoat/tajaran - whitelisted = list("Tajara", "Zhan-Khazan Tajara", "M'sai Tajara") - allowed_roles = list("Chief Medical Officer", "Medical Doctor", "Chemist", "Geneticist", "Paramedic", "Medical Resident") - sort_category = "Xenowear - Tajara" - -/datum/gear/uniform/tajara - display_name = "tajaran uniform selection (Tajara)" - path = /obj/item/clothing/under/tajaran - whitelisted = list("Tajara", "Zhan-Khazan Tajara", "M'sai Tajara") - sort_category = "Xenowear - Tajara" - -/datum/gear/uniform/tajara/New() - ..() - var/uniform = list() - uniform["laborers clothes"] = /obj/item/clothing/under/tajaran - uniform["fancy uniform"] = /obj/item/clothing/under/tajaran/fancy - uniform["NanoTrasen overalls"] = /obj/item/clothing/under/tajaran/nt - gear_tweaks += new/datum/gear_tweak/path(uniform) - -/datum/gear/uniform/tajara_dress - display_name = "tajaran dress selection (Tajara)" - path = /obj/item/clothing/under/dress/tajaran - whitelisted = list("Tajara", "Zhan-Khazan Tajara", "M'sai Tajara") - sort_category = "Xenowear - Tajara" - -/datum/gear/uniform/tajara_dress/New() - ..() - var/dress = list() - dress["white fancy adhomian dress"] = /obj/item/clothing/under/dress/tajaran - dress["blue fancy adhomian dress"] = /obj/item/clothing/under/dress/tajaran/blue - dress["green fancy adhomian dress"] = /obj/item/clothing/under/dress/tajaran/green - dress["red fancy adhomian dress"] = /obj/item/clothing/under/dress/tajaran/red - dress["red noble adhomian dress"] = /obj/item/clothing/under/dress/tajaran/fancy - dress["black noble adhomian dress"] = /obj/item/clothing/under/dress/tajaran/fancy/black - gear_tweaks += new/datum/gear_tweak/path(dress) - -/datum/gear/accessory/tajara - display_name = "fur scarf (Tajara)" - path = /obj/item/clothing/accessory/tajaran - whitelisted = list("Tajara", "Zhan-Khazan Tajara", "M'sai Tajara") - sort_category = "Xenowear - Tajara" - -/datum/gear/accessory/tajara/New() - ..() - var/scarf = list() - scarf["brown fur scarf"] = /obj/item/clothing/accessory/tajaran - scarf["light brown fur scarf"] = /obj/item/clothing/accessory/tajaran/lbrown - scarf["cinnamon fur scarf"] = /obj/item/clothing/accessory/tajaran/cinnamon - scarf["blue fur scarf"] = /obj/item/clothing/accessory/tajaran/blue - scarf["silver fur scarf"] = /obj/item/clothing/accessory/tajaran/silver - scarf["black fur scarf"] = /obj/item/clothing/accessory/tajaran/black - scarf["ruddy fur scarf"] = /obj/item/clothing/accessory/tajaran/ruddy - scarf["orange fur scarf"] = /obj/item/clothing/accessory/tajaran/orange - scarf["cream fur scarf"] = /obj/item/clothing/accessory/tajaran/cream - gear_tweaks += new/datum/gear_tweak/path(scarf) - -/datum/gear/head/tajara - display_name = "adhomian headgear selection (Tajara)" - path = /obj/item/clothing/head/tajaran/circlet - whitelisted = list("Tajara", "Zhan-Khazan Tajara", "M'sai Tajara") - sort_category = "Xenowear - Tajara" - -/datum/gear/head/tajara/New() - ..() - var/circlet = list() - circlet["golden dress circlet"] = /obj/item/clothing/head/tajaran/circlet - circlet["silver dress circlet"] = /obj/item/clothing/head/tajaran/circlet/silver - circlet["fur hat"] = /obj/item/clothing/head/tajaran/fur - gear_tweaks += new/datum/gear_tweak/path(circlet) - -/datum/gear/accessory/tajara_wrap - display_name = "marriage wrap (Tajara)" - path = /obj/item/clothing/accessory/tajaran_wrap - whitelisted = list("Tajara", "Zhan-Khazan Tajara", "M'sai Tajara") - sort_category = "Xenowear - Tajara" - -/datum/gear/accessory/tajara_wrap/New() - ..() - var/wrap = list() - wrap["marriage wrap, male"] = /obj/item/clothing/accessory/tajaran_wrap - wrap["marriage wrap, female"] = /obj/item/clothing/accessory/tajaran_wrap/female - gear_tweaks += new/datum/gear_tweak/path(wrap) - -/datum/gear/accessory/tajara_pelt - display_name = "ceremonial pelt (Tajara)" - path = /obj/item/clothing/accessory/tajaran_pelt - whitelisted = list("Tajara", "Zhan-Khazan Tajara", "M'sai Tajara") - sort_category = "Xenowear - Tajara" - -/datum/gear/mask/tajara - display_name = "sun sister veil (Tajara)" - path = /obj/item/clothing/mask/tajara - cost = 1 - whitelisted = list("Tajara", "Zhan-Khazan Tajara", "M'sai Tajara") - sort_category = "Xenowear - Tajara" - -/datum/gear/shoes/tajara - display_name = "native tajaran foot-wear" - path = /obj/item/clothing/shoes/tajara - sort_category = "Xenowear - Tajara" - whitelisted = list("Tajara", "Zhan-Khazan Tajara", "M'sai Tajara") - -//other things - /datum/gear/uniform/gearharness display_name = "gear harness" path = /obj/item/clothing/under/gearharness @@ -410,89 +37,3 @@ caligae["white sock"] = /obj/item/clothing/shoes/caligae/white caligae["leather"] = /obj/item/clothing/shoes/caligae/armor gear_tweaks += new/datum/gear_tweak/path(caligae) - -//ipc stuff - -/datum/gear/head/goldenchains - display_name = "golden deep headchains (Machine)" - path = /obj/item/clothing/head/headchain - cost = 1 - whitelisted = list("Baseline Frame", "Hephaestus G1 Industrial Frame", "Hephaestus G2 Industrial Frame", "Xion Industrial Frame", "Zeng-Hu Mobility Frame", "Bishop Accessory Frame", "Shell Frame") - sort_category = "Xenowear - IPC" - -/datum/gear/head/goldenchains/New() - ..() - var/headchains = list() - headchains["head chains, cobalt"] = /obj/item/clothing/head/headchain - headchains["head chains, emerald"] = /obj/item/clothing/head/headchain/emerald - headchains["head chains, ruby"] = /obj/item/clothing/head/headchain/ruby - gear_tweaks += new/datum/gear_tweak/path(headchains) - -/datum/gear/head/goldencrests - display_name = "golden deep crests (Machine)" - path = /obj/item/clothing/head/crest - cost = 1 - whitelisted = list("Baseline Frame", "Hephaestus G1 Industrial Frame", "Hephaestus G2 Industrial Frame", "Xion Industrial Frame", "Zeng-Hu Mobility Frame", "Bishop Accessory Frame", "Shell Frame") - sort_category = "Xenowear - IPC" - -/datum/gear/head/goldencrests/New() - ..() - var/crest = list() - crest["crest, cobalt"] = /obj/item/clothing/head/crest - crest["crest, emerald"] = /obj/item/clothing/head/crest/emerald - crest["crest, ruby"] = /obj/item/clothing/head/crest/ruby - gear_tweaks += new/datum/gear_tweak/path(crest) - -/datum/gear/gloves/armchains - display_name = "golden deep armchains (Machine)" - path = /obj/item/clothing/gloves/armchain - cost = 1 - whitelisted = list("Baseline Frame", "Hephaestus G1 Industrial Frame", "Hephaestus G2 Industrial Frame", "Xion Industrial Frame", "Zeng-Hu Mobility Frame", "Bishop Accessory Frame", "Shell Frame") - sort_category = "Xenowear - IPC" - -/datum/gear/gloves/armchains/New() - ..() - var/armchains = list() - armchains["arm chains, cobalt"] = /obj/item/clothing/gloves/armchain - armchains["arm chains, emerald"] = /obj/item/clothing/gloves/armchain/emerald - armchains["arm chains, ruby"] = /obj/item/clothing/gloves/armchain/ruby - gear_tweaks += new/datum/gear_tweak/path(armchains) - -/datum/gear/gloves/bracers - display_name = "golden deep bracers (Machine)" - path = /obj/item/clothing/gloves/goldbracer - cost = 1 - whitelisted = list("Baseline Frame", "Hephaestus G1 Industrial Frame", "Hephaestus G2 Industrial Frame", "Xion Industrial Frame", "Zeng-Hu Mobility Frame", "Bishop Accessory Frame", "Shell Frame") - sort_category = "Xenowear - IPC" - -/datum/gear/gloves/bracers/New() - ..() - var/bracers = list() - bracers["arm chains, cobalt"] = /obj/item/clothing/gloves/goldbracer - bracers["arm chains, emerald"] = /obj/item/clothing/gloves/goldbracer/emerald - bracers["arm chains, ruby"] = /obj/item/clothing/gloves/goldbracer/ruby - gear_tweaks += new/datum/gear_tweak/path(bracers) - -/datum/gear/ears/antennae - display_name = "antennae (Machine)" - path = /obj/item/clothing/head/antenna - cost = 1 - whitelisted = list("Baseline Frame", "Hephaestus G1 Industrial Frame", "Hephaestus G2 Industrial Frame", "Xion Industrial Frame", "Zeng-Hu Mobility Frame", "Bishop Accessory Frame", "Shell Frame") - sort_category = "Xenowear - IPC" - -/datum/gear/ears/antennae/New() - ..() - var/antenna = list() - antenna["antenna, curved"] = /obj/item/clothing/head/antenna - antenna["antenna, straight"] = /obj/item/clothing/head/antenna/straight - antenna["antenna, spiked"] = /obj/item/clothing/head/antenna/spiked - antenna["antenna, side"] = /obj/item/clothing/head/antenna/side - antenna["antenna, dish"] = /obj/item/clothing/head/antenna/dish - gear_tweaks += new/datum/gear_tweak/path(antenna) - -/datum/gear/ears/headlights - display_name = "headlights (Machine)" - path = /obj/item/device/flashlight/headlights - cost = 2 - whitelisted = list("Baseline Frame", "Hephaestus G1 Industrial Frame", "Hephaestus G2 Industrial Frame", "Xion Industrial Frame", "Zeng-Hu Mobility Frame", "Bishop Accessory Frame", "Shell Frame") - sort_category = "Xenowear - IPC" \ No newline at end of file diff --git a/code/modules/client/preference_setup/loadout/loadout_xeno/human.dm b/code/modules/client/preference_setup/loadout/loadout_xeno/human.dm new file mode 100644 index 00000000000..834afca5555 --- /dev/null +++ b/code/modules/client/preference_setup/loadout/loadout_xeno/human.dm @@ -0,0 +1,93 @@ +/datum/gear/uniform/offworlder + display_name = "CR suit" + path = /obj/item/clothing/under/offworlder + whitelisted = list("Off-Worlder Human") + sort_category = "Xenowear - Human" + +/datum/gear/uniform/offworlder/New() + ..() + gear_tweaks = list(gear_tweak_free_color_choice) + +/datum/gear/uniform/offworlder/dress + display_name = "CR dress" + path = /obj/item/clothing/under/offworlder + +/datum/gear/uniform/offworlder/skirt + display_name = "CR skirt" + path = /obj/item/clothing/under/dress/offworlder + +/datum/gear/eyes/glasses/offworlder + display_name = "starshades" + path = /obj/item/clothing/glasses/spiffygogs/offworlder + whitelisted = list("Off-Worlder Human") + sort_category = "Xenowear - Human" + +/datum/gear/eyes/glasses/offworlder/New() + ..() + gear_tweaks = list(gear_tweak_free_color_choice) + +/datum/gear/accessory/offworlder + display_name = "legbrace" + path = /obj/item/clothing/accessory/offworlder/bracer + whitelisted = list("Off-Worlder Human") + sort_category = "Xenowear - Human" + +/datum/gear/accessory/offworlder/New() + ..() + gear_tweaks = list(gear_tweak_free_color_choice) + +/datum/gear/accessory/offworlder/venter + display_name = "venter assembly" + path = /obj/item/clothing/accessory/offworlder + +/datum/gear/accessory/offworlder/neckbrace + display_name = "neckbrace" + path = /obj/item/clothing/accessory/offworlder/bracer/neckbrace + +/datum/gear/accessory/offworlder_armband + display_name = "exo-stellar ribbon selection" + path = /obj/item/clothing/accessory/armband/offworlder + whitelisted = list("Off-Worlder Human") + sort_category = "Xenowear - Human" + +/datum/gear/accessory/offworlder_armband/New() + ..() + var/armbands = list() + armbands["science exo-stellar ribbon"] = /obj/item/clothing/accessory/armband/offworlder + armbands["engineering exo-stellar ribbon"] = /obj/item/clothing/accessory/armband/offworlder/engineering + armbands["medical exo-stellar ribbon"] = /obj/item/clothing/accessory/armband/offworlder/medical + gear_tweaks += new/datum/gear_tweak/path(armbands) + +/datum/gear/mask/offworlder + display_name = "overmask" + path = /obj/item/clothing/mask/breath/offworlder + whitelisted = list("Off-Worlder Human") + sort_category = "Xenowear - Human" + +/datum/gear/mask/offworlder/New() + ..() + gear_tweaks = list(gear_tweak_free_color_choice) + +/datum/gear/mask/offworlder/veil + display_name = "starveil" + path = /obj/item/clothing/mask/offworlder/veil + +/datum/gear/mask/offworlder/veil/jagmask + display_name = "jagmask" + path = /obj/item/clothing/mask/breath/offworlder/jagmask + +/datum/gear/gloves/offworlder + display_name = "starmitts" + path = /obj/item/clothing/gloves/offworlder + whitelisted = list("Off-Worlder Human") + sort_category = "Xenowear - Human" + +/datum/gear/gloves/offworlder/New() + ..() + gear_tweaks = list(gear_tweak_free_color_choice) + +/datum/gear/offworlder_pills + display_name = "bottle of RTM pills" + path = /obj/item/weapon/storage/pill_bottle/rtm + whitelisted = list("Off-Worlder Human") + sort_category = "Xenowear - Human" \ No newline at end of file diff --git a/code/modules/client/preference_setup/loadout/loadout_xeno/machine.dm b/code/modules/client/preference_setup/loadout/loadout_xeno/machine.dm new file mode 100644 index 00000000000..f925008e622 --- /dev/null +++ b/code/modules/client/preference_setup/loadout/loadout_xeno/machine.dm @@ -0,0 +1,83 @@ +/datum/gear/head/goldenchains + display_name = "golden deep headchains (Machine)" + path = /obj/item/clothing/head/headchain + cost = 1 + whitelisted = list("Baseline Frame", "Hephaestus G1 Industrial Frame", "Hephaestus G2 Industrial Frame", "Xion Industrial Frame", "Zeng-Hu Mobility Frame", "Bishop Accessory Frame", "Shell Frame") + sort_category = "Xenowear - IPC" + +/datum/gear/head/goldenchains/New() + ..() + var/headchains = list() + headchains["head chains, cobalt"] = /obj/item/clothing/head/headchain + headchains["head chains, emerald"] = /obj/item/clothing/head/headchain/emerald + headchains["head chains, ruby"] = /obj/item/clothing/head/headchain/ruby + gear_tweaks += new/datum/gear_tweak/path(headchains) + +/datum/gear/head/goldencrests + display_name = "golden deep crests (Machine)" + path = /obj/item/clothing/head/crest + cost = 1 + whitelisted = list("Baseline Frame", "Hephaestus G1 Industrial Frame", "Hephaestus G2 Industrial Frame", "Xion Industrial Frame", "Zeng-Hu Mobility Frame", "Bishop Accessory Frame", "Shell Frame") + sort_category = "Xenowear - IPC" + +/datum/gear/head/goldencrests/New() + ..() + var/crest = list() + crest["crest, cobalt"] = /obj/item/clothing/head/crest + crest["crest, emerald"] = /obj/item/clothing/head/crest/emerald + crest["crest, ruby"] = /obj/item/clothing/head/crest/ruby + gear_tweaks += new/datum/gear_tweak/path(crest) + +/datum/gear/gloves/armchains + display_name = "golden deep armchains (Machine)" + path = /obj/item/clothing/gloves/armchain + cost = 1 + whitelisted = list("Baseline Frame", "Hephaestus G1 Industrial Frame", "Hephaestus G2 Industrial Frame", "Xion Industrial Frame", "Zeng-Hu Mobility Frame", "Bishop Accessory Frame", "Shell Frame") + sort_category = "Xenowear - IPC" + +/datum/gear/gloves/armchains/New() + ..() + var/armchains = list() + armchains["arm chains, cobalt"] = /obj/item/clothing/gloves/armchain + armchains["arm chains, emerald"] = /obj/item/clothing/gloves/armchain/emerald + armchains["arm chains, ruby"] = /obj/item/clothing/gloves/armchain/ruby + gear_tweaks += new/datum/gear_tweak/path(armchains) + +/datum/gear/gloves/bracers + display_name = "golden deep bracers (Machine)" + path = /obj/item/clothing/gloves/goldbracer + cost = 1 + whitelisted = list("Baseline Frame", "Hephaestus G1 Industrial Frame", "Hephaestus G2 Industrial Frame", "Xion Industrial Frame", "Zeng-Hu Mobility Frame", "Bishop Accessory Frame", "Shell Frame") + sort_category = "Xenowear - IPC" + +/datum/gear/gloves/bracers/New() + ..() + var/bracers = list() + bracers["arm chains, cobalt"] = /obj/item/clothing/gloves/goldbracer + bracers["arm chains, emerald"] = /obj/item/clothing/gloves/goldbracer/emerald + bracers["arm chains, ruby"] = /obj/item/clothing/gloves/goldbracer/ruby + gear_tweaks += new/datum/gear_tweak/path(bracers) + +/datum/gear/ears/antennae + display_name = "antennae (Machine)" + path = /obj/item/clothing/head/antenna + cost = 1 + whitelisted = list("Baseline Frame", "Hephaestus G1 Industrial Frame", "Hephaestus G2 Industrial Frame", "Xion Industrial Frame", "Zeng-Hu Mobility Frame", "Bishop Accessory Frame", "Shell Frame") + sort_category = "Xenowear - IPC" + +/datum/gear/ears/antennae/New() + ..() + var/antenna = list() + antenna["antenna, curved"] = /obj/item/clothing/head/antenna + antenna["antenna, straight"] = /obj/item/clothing/head/antenna/straight + antenna["antenna, spiked"] = /obj/item/clothing/head/antenna/spiked + antenna["antenna, side"] = /obj/item/clothing/head/antenna/side + antenna["antenna, dish"] = /obj/item/clothing/head/antenna/dish + gear_tweaks += new/datum/gear_tweak/path(antenna) + +/datum/gear/ears/headlights + display_name = "headlights (Machine)" + path = /obj/item/device/flashlight/headlights + cost = 2 + whitelisted = list("Baseline Frame", "Hephaestus G1 Industrial Frame", "Hephaestus G2 Industrial Frame", "Xion Industrial Frame", "Zeng-Hu Mobility Frame", "Bishop Accessory Frame", "Shell Frame") + sort_category = "Xenowear - IPC" \ No newline at end of file diff --git a/code/modules/client/preference_setup/loadout/loadout_xeno/skrell.dm b/code/modules/client/preference_setup/loadout/loadout_xeno/skrell.dm new file mode 100644 index 00000000000..589c190babe --- /dev/null +++ b/code/modules/client/preference_setup/loadout/loadout_xeno/skrell.dm @@ -0,0 +1,70 @@ +/datum/gear/ears/skrell/chains //Chains + display_name = "headtail chain selection" + path = /obj/item/clothing/ears/skrell/chain + sort_category = "Xenowear - Skrell" + whitelisted = list("Skrell") + +/datum/gear/ears/skrell/chains/New() + ..() + var/list/chaintypes = list() + for(var/chain_style in typesof(/obj/item/clothing/ears/skrell/chain)) + var/obj/item/clothing/ears/skrell/chain/chain = chain_style + chaintypes[initial(chain.name)] = chain + gear_tweaks += new/datum/gear_tweak/path(sortAssoc(chaintypes)) + +/datum/gear/ears/skrell/bands + display_name = "headtail band selection" + path = /obj/item/clothing/ears/skrell/band + sort_category = "Xenowear - Skrell" + whitelisted = list("Skrell") + +/datum/gear/ears/skrell/bands/New() + ..() + var/list/bandtypes = list() + for(var/band_style in typesof(/obj/item/clothing/ears/skrell/band)) + var/obj/item/clothing/ears/skrell/band/band = band_style + bandtypes[initial(band.name)] = band + gear_tweaks += new/datum/gear_tweak/path(sortAssoc(bandtypes)) + +/datum/gear/ears/skrell/cloth/short + display_name = "short headtail cloth" + path = /obj/item/clothing/ears/skrell/cloth_short/black + sort_category = "Xenowear - Skrell" + whitelisted = list("Skrell") + +/datum/gear/ears/skrell/cloth/short/New() + ..() + var/list/shorttypes = list() + for(var/short_style in typesof(/obj/item/clothing/ears/skrell/cloth_short)) + var/obj/item/clothing/ears/skrell/cloth_short/short = short_style + shorttypes[initial(short.name)] = short + gear_tweaks += new/datum/gear_tweak/path(sortAssoc(shorttypes)) + +/datum/gear/ears/skrell/cloth/average + display_name = "average headtail cloth" + path = /obj/item/clothing/ears/skrell/cloth_average/black + sort_category = "Xenowear - Skrell" + whitelisted = list("Skrell") + +/datum/gear/ears/skrell/cloth/average/New() + ..() + var/list/averagetypes = list() + for(var/average_style in typesof(/obj/item/clothing/ears/skrell/cloth_average)) + var/obj/item/clothing/ears/skrell/cloth_average/average = average_style + averagetypes[initial(average.name)] = average + gear_tweaks += new/datum/gear_tweak/path(sortAssoc(averagetypes)) + +/datum/gear/accessory/capes + display_name = "shoulder capes" + path = /obj/item/clothing/accessory/poncho/shouldercape + whitelisted = list("Skrell") + sort_category = "Xenowear - Skrell" + +/datum/gear/accessory/capes/New() + ..() + var/capes = list() + capes["star cape"] = /obj/item/clothing/accessory/poncho/shouldercape/star + capes["nebula cape"] = /obj/item/clothing/accessory/poncho/shouldercape/nebula + capes["nova cape"] = /obj/item/clothing/accessory/poncho/shouldercape/nova + capes["galaxy cape"] = /obj/item/clothing/accessory/poncho/shouldercape/galaxy + gear_tweaks += new/datum/gear_tweak/path(capes) diff --git a/code/modules/client/preference_setup/loadout/loadout_xeno/tajara.dm b/code/modules/client/preference_setup/loadout/loadout_xeno/tajara.dm new file mode 100644 index 00000000000..67a9e2bd21e --- /dev/null +++ b/code/modules/client/preference_setup/loadout/loadout_xeno/tajara.dm @@ -0,0 +1,151 @@ +/datum/gear/gloves/tajara + display_name = "gloves selection" + path = /obj/item/clothing/gloves/black/tajara + whitelisted = list("Tajara", "Zhan-Khazan Tajara", "M'sai Tajara") + sort_category = "Xenowear - Tajara" + +/datum/gear/gloves/tajara/New() + ..() + var/taj_gloves = list() + taj_gloves["black gloves"] = /obj/item/clothing/gloves/black/tajara + taj_gloves["red gloves"] = /obj/item/clothing/gloves/red/tajara + taj_gloves["blue gloves"] = /obj/item/clothing/gloves/blue/tajara + taj_gloves["orange gloves"] = /obj/item/clothing/gloves/orange/tajara + taj_gloves["purple gloves"] = /obj/item/clothing/gloves/purple/tajara + taj_gloves["brown gloves"] = /obj/item/clothing/gloves/brown/tajara + taj_gloves["green gloves"] = /obj/item/clothing/gloves/green/tajara + taj_gloves["white gloves"] = /obj/item/clothing/gloves/white/tajara + gear_tweaks += new/datum/gear_tweak/path(taj_gloves) + +/datum/gear/suit/tajara_coat + display_name = "tajara coat selection" + path = /obj/item/clothing/suit/storage/tajaran + whitelisted = list("Tajara", "Zhan-Khazan Tajara", "M'sai Tajara") + sort_category = "Xenowear - Tajara" + +/datum/gear/suit/tajara_coat/New() + ..() + var/coat = list() + coat["tajaran naval coat"] = /obj/item/clothing/suit/storage/tajaran + coat["commoner cloak"] = /obj/item/clothing/suit/storage/tajaran/cloak + coat["royal cloak"] = /obj/item/clothing/suit/storage/tajaran/cloak/fancy + coat["gruff cloak"] = /obj/item/clothing/suit/storage/hooded/tajaran + coat["adhomian wool coat"] = /obj/item/clothing/suit/storage/tajaran/nomad + gear_tweaks += new/datum/gear_tweak/path(coat) + +/datum/gear/suit/tajara_priest + display_name = "tajaran priest robe selection" + path = /obj/item/clothing/suit/storage/hooded/tajaran/priest + whitelisted = list("Tajara", "Zhan-Khazan Tajara", "M'sai Tajara") + sort_category = "Xenowear - Tajara" + +/datum/gear/suit/tajara_priest/New() + ..() + var/robes = list() + robes["sun priest robe"] = /obj/item/clothing/suit/storage/hooded/tajaran/priest + robes["sun sister robe"] = /obj/item/clothing/suit/storage/tajaran/messa + gear_tweaks += new/datum/gear_tweak/path(robes) + +/datum/gear/suit/tajaran_labcoat + display_name = "PRA medical coat)" + path = /obj/item/clothing/suit/storage/toggle/labcoat/tajaran + whitelisted = list("Tajara", "Zhan-Khazan Tajara", "M'sai Tajara") + allowed_roles = list("Chief Medical Officer", "Medical Doctor", "Chemist", "Geneticist", "Paramedic", "Medical Resident") + sort_category = "Xenowear - Tajara" + +/datum/gear/uniform/tajara + display_name = "tajaran uniform selection" + path = /obj/item/clothing/under/tajaran + whitelisted = list("Tajara", "Zhan-Khazan Tajara", "M'sai Tajara") + sort_category = "Xenowear - Tajara" + +/datum/gear/uniform/tajara/New() + ..() + var/uniform = list() + uniform["laborers clothes"] = /obj/item/clothing/under/tajaran + uniform["fancy uniform"] = /obj/item/clothing/under/tajaran/fancy + uniform["NanoTrasen overalls"] = /obj/item/clothing/under/tajaran/nt + gear_tweaks += new/datum/gear_tweak/path(uniform) + +/datum/gear/uniform/tajara_dress + display_name = "tajaran dress selection" + path = /obj/item/clothing/under/dress/tajaran + whitelisted = list("Tajara", "Zhan-Khazan Tajara", "M'sai Tajara") + sort_category = "Xenowear - Tajara" + +/datum/gear/uniform/tajara_dress/New() + ..() + var/dress = list() + dress["white fancy adhomian dress"] = /obj/item/clothing/under/dress/tajaran + dress["blue fancy adhomian dress"] = /obj/item/clothing/under/dress/tajaran/blue + dress["green fancy adhomian dress"] = /obj/item/clothing/under/dress/tajaran/green + dress["red fancy adhomian dress"] = /obj/item/clothing/under/dress/tajaran/red + dress["red noble adhomian dress"] = /obj/item/clothing/under/dress/tajaran/fancy + dress["black noble adhomian dress"] = /obj/item/clothing/under/dress/tajaran/fancy/black + gear_tweaks += new/datum/gear_tweak/path(dress) + +/datum/gear/accessory/tajara + display_name = "fur scarf" + path = /obj/item/clothing/accessory/tajaran + whitelisted = list("Tajara", "Zhan-Khazan Tajara", "M'sai Tajara") + sort_category = "Xenowear - Tajara" + +/datum/gear/accessory/tajara/New() + ..() + var/scarf = list() + scarf["brown fur scarf"] = /obj/item/clothing/accessory/tajaran + scarf["light brown fur scarf"] = /obj/item/clothing/accessory/tajaran/lbrown + scarf["cinnamon fur scarf"] = /obj/item/clothing/accessory/tajaran/cinnamon + scarf["blue fur scarf"] = /obj/item/clothing/accessory/tajaran/blue + scarf["silver fur scarf"] = /obj/item/clothing/accessory/tajaran/silver + scarf["black fur scarf"] = /obj/item/clothing/accessory/tajaran/black + scarf["ruddy fur scarf"] = /obj/item/clothing/accessory/tajaran/ruddy + scarf["orange fur scarf"] = /obj/item/clothing/accessory/tajaran/orange + scarf["cream fur scarf"] = /obj/item/clothing/accessory/tajaran/cream + gear_tweaks += new/datum/gear_tweak/path(scarf) + +/datum/gear/head/tajara + display_name = "adhomian headgear selection" + path = /obj/item/clothing/head/tajaran/circlet + whitelisted = list("Tajara", "Zhan-Khazan Tajara", "M'sai Tajara") + sort_category = "Xenowear - Tajara" + +/datum/gear/head/tajara/New() + ..() + var/circlet = list() + circlet["golden dress circlet"] = /obj/item/clothing/head/tajaran/circlet + circlet["silver dress circlet"] = /obj/item/clothing/head/tajaran/circlet/silver + circlet["fur hat"] = /obj/item/clothing/head/tajaran/fur + gear_tweaks += new/datum/gear_tweak/path(circlet) + +/datum/gear/accessory/tajara_wrap + display_name = "marriage wrap" + path = /obj/item/clothing/accessory/tajaran_wrap + whitelisted = list("Tajara", "Zhan-Khazan Tajara", "M'sai Tajara") + sort_category = "Xenowear - Tajara" + +/datum/gear/accessory/tajara_wrap/New() + ..() + var/wrap = list() + wrap["marriage wrap, male"] = /obj/item/clothing/accessory/tajaran_wrap + wrap["marriage wrap, female"] = /obj/item/clothing/accessory/tajaran_wrap/female + gear_tweaks += new/datum/gear_tweak/path(wrap) + +/datum/gear/accessory/tajara_pelt + display_name = "ceremonial pelt" + path = /obj/item/clothing/accessory/tajaran_pelt + whitelisted = list("Tajara", "Zhan-Khazan Tajara", "M'sai Tajara") + sort_category = "Xenowear - Tajara" + +/datum/gear/mask/tajara + display_name = "sun sister veil" + path = /obj/item/clothing/mask/tajara + cost = 1 + whitelisted = list("Tajara", "Zhan-Khazan Tajara", "M'sai Tajara") + sort_category = "Xenowear - Tajara" + +/datum/gear/shoes/tajara + display_name = "native tajaran foot-wear" + path = /obj/item/clothing/shoes/tajara + sort_category = "Xenowear - Tajara" + whitelisted = list("Tajara", "Zhan-Khazan Tajara", "M'sai Tajara") diff --git a/code/modules/client/preference_setup/loadout/loadout_xeno/unathi.dm b/code/modules/client/preference_setup/loadout/loadout_xeno/unathi.dm new file mode 100644 index 00000000000..10ff863a791 --- /dev/null +++ b/code/modules/client/preference_setup/loadout/loadout_xeno/unathi.dm @@ -0,0 +1,85 @@ +/datum/gear/suit/unathi_mantle + display_name = "hide mantle" + path = /obj/item/clothing/suit/unathi/mantle + cost = 1 + whitelisted = list("Unathi", "Aut'akh Unathi") + sort_category = "Xenowear - Unathi" + +/datum/gear/suit/unathi_robe + display_name = "roughspun robe" + path = /obj/item/clothing/suit/unathi/robe + cost = 1 + whitelisted = list("Unathi", "Aut'akh Unathi") + sort_category = "Xenowear - Unathi" + +/datum/gear/suit/robe_coat + display_name = "tzirzi robe" + path = /obj/item/clothing/suit/unathi/robe/robe_coat + cost = 1 + whitelisted = list("Unathi", "Aut'akh Unathi") + sort_category = "Xenowear - Unathi" + +/datum/gear/gloves/unathi + display_name = "gloves selection" + path = /obj/item/clothing/gloves/black/unathi + whitelisted = list("Unathi", "Aut'akh Unathi") + sort_category = "Xenowear - Unathi" + +/datum/gear/gloves/unathi/New() + ..() + var/un_gloves = list() + un_gloves["black gloves"] = /obj/item/clothing/gloves/black/unathi + un_gloves["red gloves"] = /obj/item/clothing/gloves/red/unathi + un_gloves["blue gloves"] = /obj/item/clothing/gloves/blue/unathi + un_gloves["orange gloves"] = /obj/item/clothing/gloves/orange/unathi + un_gloves["purple gloves"] = /obj/item/clothing/gloves/purple/unathi + un_gloves["brown gloves"] = /obj/item/clothing/gloves/brown/unathi + un_gloves["green gloves"] = /obj/item/clothing/gloves/green/unathi + un_gloves["white gloves"] = /obj/item/clothing/gloves/white/unathi + gear_tweaks += new/datum/gear_tweak/path(un_gloves) + +/datum/gear/uniform/unathi + display_name = "sinta tunic" + path = /obj/item/clothing/under/unathi + whitelisted = list("Unathi", "Aut'akh Unathi") + sort_category = "Xenowear - Unathi" + +/datum/gear/uniform/unathi/New() + ..() + gear_tweaks = list(gear_tweak_free_color_choice) + +/datum/gear/autakh_engineering + display_name = "engineering grasper" + description = "An Aut'akh augment limb, this one is outfitted with a limited toolkit." + path = /obj/item/organ/external/hand/right/autakh/tool + whitelisted = list("Aut'akh Unathi") + sort_category = "Xenowear - Unathi" + cost = 3 + allowed_roles = list("Station Engineer", "Chief Engineer", "Atmospheric Technician", "Engineering Apprentice", "Roboticist") + +/datum/gear/autakh_mining + display_name = "mining grasper" + description = "An Aut'akh augment limb, this one is outfitted with a mining drill." + path = /obj/item/organ/external/hand/right/autakh/tool/mining + whitelisted = list("Aut'akh Unathi") + sort_category = "Xenowear - Unathi" + cost = 3 + allowed_roles = list("Shaft Miner") + +/datum/gear/autakh_medical + display_name = "medical grasper" + description = "An Aut'akh augment limb, this one is outfitted with a health scanner." + path = /obj/item/organ/external/hand/right/autakh/medical + whitelisted = list("Aut'akh Unathi") + sort_category = "Xenowear - Unathi" + cost = 3 + allowed_roles = list("Chief Medical Officer", "Medical Doctor", "Paramedic", "Medical Resident", "Psychiatrist", "Chemist") + +/datum/gear/autakh_security + display_name = "security grasper" + description = "An Aut'akh augment limb, this one is outfitted with an electroshock weapon." + path = /obj/item/organ/external/hand/right/autakh/security + whitelisted = list("Aut'akh Unathi") + sort_category = "Xenowear - Unathi" + cost = 3 + allowed_roles = list("Security Officer", "Head of Security", "Warden") \ No newline at end of file diff --git a/code/modules/client/preference_setup/loadout/loadout_xeno/vaurca.dm b/code/modules/client/preference_setup/loadout/loadout_xeno/vaurca.dm new file mode 100644 index 00000000000..2db8dd6348a --- /dev/null +++ b/code/modules/client/preference_setup/loadout/loadout_xeno/vaurca.dm @@ -0,0 +1,51 @@ +/datum/gear/eyes/blindfold + display_name = "vaurca blindfold" + path = /obj/item/clothing/glasses/sunglasses/blinders + cost = 2 + whitelisted = list("Vaurca Worker", "Vaurca Warrior") + sort_category = "Xenowear - Vaurca" + +/datum/gear/mask/vaurca + display_name = "mandible garment" + path = /obj/item/clothing/mask/breath/vaurca + cost = 1 + whitelisted = list("Vaurca Worker", "Vaurca Warrior",) + sort_category = "Xenowear - Vaurca" + +/datum/gear/mask/vaurca_expression + display_name = "human expression mask" + path = /obj/item/clothing/mask/breath/vaurca/expression + cost = 1 + whitelisted = list("Vaurca Worker", "Vaurca Warrior",) + sort_category = "Xenowear - Vaurca" + +/datum/gear/mask/vaurca_expression/New() + ..() + gear_tweaks = list(gear_tweak_free_color_choice) + +/datum/gear/mask/vaurca_expression/skrell + display_name = "skrell expression mask" + path = /obj/item/clothing/mask/breath/vaurca/expression/skrell + +/datum/gear/cape + display_name = "tunnel cloak" + path = /obj/item/weapon/storage/backpack/cloak + cost = 1 + whitelisted = list("Vaurca Worker", "Vaurca Warrior",) + sort_category = "Xenowear - Vaurca" + +/datum/gear/vaurca_robe + display_name = "hive cloak" + path = /obj/item/clothing/suit/vaurca + cost = 1 + whitelisted = list("Vaurca Worker", "Vaurca Warrior",) + sort_category = "Xenowear - Vaurca" + +/datum/gear/vaurca_robe/New() + ..() + var/cloaks = list() + cloaks["hive cloak, red and golden"] = /obj/item/clothing/suit/vaurca + cloaks["hive cloak, red and silver"] = /obj/item/clothing/suit/vaurca/silver + cloaks["hive cloak, brown and silver"] = /obj/item/clothing/suit/vaurca/brown + cloaks["hive cloak, blue and golden"] = /obj/item/clothing/suit/vaurca/blue + gear_tweaks += new/datum/gear_tweak/path(cloaks) diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm index 38ade6555f3..ea1678a26e1 100644 --- a/code/modules/clothing/glasses/glasses.dm +++ b/code/modules/clothing/glasses/glasses.dm @@ -714,3 +714,19 @@ BLIND // can't see anything to_chat(usr, "You push \the [src] up off your eyes.") update_clothing_icon() usr.update_action_buttons() + +/obj/item/clothing/glasses/spiffygogs/offworlder + name = "starshades" + desc = "Thick, durable eye protection meant to filter light to an acceptable degree in the long-term." + icon_state = "starshades" + item_state = "starshades" + +/obj/item/clothing/glasses/spiffygogs/offworlder/toggle() + ..() + if(!up) + flash_protection = FLASH_PROTECTION_MAJOR + tint = TINT_MODERATE + + else + flash_protection = initial(flash_protection) + tint = initial(tint) \ No newline at end of file diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm index f0ef6e382a0..ae9f91f787e 100644 --- a/code/modules/clothing/gloves/miscellaneous.dm +++ b/code/modules/clothing/gloves/miscellaneous.dm @@ -285,4 +285,10 @@ punch_force = 10 clipped = 1 sharp = 1 - edge = 1 \ No newline at end of file + edge = 1 + +/obj/item/clothing/gloves/offworlder + name = "starmitts" + desc = "Thick arm warmers and mittens that reach past the elbow." + icon_state = "starmittens" + item_state = "starmittens" \ No newline at end of file diff --git a/code/modules/clothing/masks/breath.dm b/code/modules/clothing/masks/breath.dm index 6a1dbb2f593..98be93841a7 100644 --- a/code/modules/clothing/masks/breath.dm +++ b/code/modules/clothing/masks/breath.dm @@ -19,3 +19,15 @@ icon_state = "medical" item_state = "medical" permeability_coefficient = 0.01 + +/obj/item/clothing/mask/breath/offworlder + name = "overmask" + desc = "A large breath mask with cushioning." + icon_state = "breathcover" + item_state = "breathcover" + +/obj/item/clothing/mask/breath/offworlder/jagmask + name = "jagmask" + desc = "A two-piece, jagged filtering mask meant to conform to one's face comfortably." + icon_state = "jagmask" + item_state = "jagmask" \ No newline at end of file diff --git a/code/modules/clothing/masks/miscellaneous.dm b/code/modules/clothing/masks/miscellaneous.dm index 73cbd748046..179e6fc59a0 100644 --- a/code/modules/clothing/masks/miscellaneous.dm +++ b/code/modules/clothing/masks/miscellaneous.dm @@ -156,3 +156,13 @@ eye.owner.eyeobj = null eye.owner = null + +/obj/item/clothing/mask/offworlder/veil + name = "starveil" + desc = "A thin holographic veil meant to cover the face, intended to block out light." + icon_state = "starveil" + item_state = "starveil" + w_class = 2 + body_parts_covered = FACE + down_body_parts_covered = null + adjustable = TRUE \ No newline at end of file diff --git a/code/modules/clothing/spacesuits/rig/modules/utility.dm b/code/modules/clothing/spacesuits/rig/modules/utility.dm index 61b389bb0ca..3eafc3a77b6 100644 --- a/code/modules/clothing/spacesuits/rig/modules/utility.dm +++ b/code/modules/clothing/spacesuits/rig/modules/utility.dm @@ -292,6 +292,19 @@ interface_name = "vaurca combat chem dispenser" interface_desc = "Dispenses loaded chemicals directly into the bloodstream." +/obj/item/rig_module/chem_dispenser/offworlder + + name = "chemical injector" + desc = "A complex web of tubing and needles suitable for hardsuit use." + + charges = list( + list("dexalin", "dexalin", 0, 5), + list("inaprovaline", "inaprovaline", 0, 5) + ) + + interface_name = "chem dispenser" + interface_desc = "Dispenses loaded chemicals directly into the bloodstream." + /obj/item/rig_module/chem_dispenser/injector name = "mounted chemical injector" @@ -741,3 +754,19 @@ var/global/list/lattice_users = list() to_chat(H, "Neural lattice disengaged. Pain receptors restored.") lattice_users.Remove(H) +/obj/item/rig_module/vitalscanner + name = "integrated vitals tracker" + desc = "A hardsuit-mounted vitals tracker." + icon_state = "scanner" + interface_name = "vitals tracker" + interface_desc = "Shows an informative health readout of the user." + construction_cost = list("$glass" = 3250, DEFAULT_WALL_MATERIAL = 500) + construction_time = 100 + + usable = 1 + +/obj/item/rig_module/healthscanner/engage() + if (!..()) + return 0 + + health_scan_mob(holder.wearer, holder.wearer) \ No newline at end of file diff --git a/code/modules/clothing/spacesuits/rig/suits/light.dm b/code/modules/clothing/spacesuits/rig/suits/light.dm index 54d0e498003..a85c27f0e85 100644 --- a/code/modules/clothing/spacesuits/rig/suits/light.dm +++ b/code/modules/clothing/spacesuits/rig/suits/light.dm @@ -140,3 +140,37 @@ /obj/item/rig_module/stealth_field, /obj/item/rig_module/vision ) + +/obj/item/weapon/rig/light/offworlder + name = "exo-stellar skeleton module" + suit_type = "exo-stellar skeleton" + desc = "A compact exoskeleton that hugs the body tightly and has various inbuilt utilities for life support." + icon_state = "offworlder_rig" + allowed = list(/obj/item/weapon/tank, /obj/item/device/flashlight) + armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 5, rad = 5) + airtight = 0 + seal_delay = 5 + + helm_type = /obj/item/clothing/head/lightrig/offworlder + chest_type = /obj/item/clothing/suit/lightrig/offworlder + glove_type = null + boot_type = null + + initial_modules = list( + /obj/item/rig_module/vitalscanner, + /obj/item/rig_module/chem_dispenser/offworlder + ) + +/obj/item/clothing/head/lightrig/offworlder + name = "helmet" + flags = 0 + species_restricted = list("Human") + +/obj/item/clothing/suit/lightrig/offworlder + flags = 0 + body_parts_covered = UPPER_TORSO + heat_protection = UPPER_TORSO + cold_protection = UPPER_TORSO + flags_inv = 0 + species_restricted = list("Human") + diff --git a/code/modules/clothing/under/accessories/accessory.dm b/code/modules/clothing/under/accessories/accessory.dm index cc726b881d4..2de5aac42a1 100644 --- a/code/modules/clothing/under/accessories/accessory.dm +++ b/code/modules/clothing/under/accessories/accessory.dm @@ -313,6 +313,12 @@ icon_state = "zebrascarf" item_state = "zebrascarf" +/obj/item/clothing/accessory/scarf/offworlder + name = "pioneer's scarf" + desc = "Usually a treasured item, these spider-silk scarves are seen passed down by generations of expeditionaries." + icon_state = "pioneer_scarf" + item_state = "pioneer_scarf" + /obj/item/clothing/accessory/chaps name = "brown chaps" desc = "A pair of loose, brown leather chaps." @@ -545,3 +551,22 @@ desc = "Two small medallions, one worn on the shoulder and the other worn on the chest. Meant to display the rank of specialist troops in a Tau Ceti Foreign Legion." icon_state = "specialist_medallion" item_state = "specialist_medallion" + +/obj/item/clothing/accessory/offworlder + name = "venter assembly" + desc = "A series of complex tubing meant to dissipate heat from the skin passively." + icon_state = "venter" + item_state = "venter" + slot = "over" + +/obj/item/clothing/accessory/offworlder/bracer + name = "legbrace" + desc = "A lightweight polymer frame meant to brace and hold someone's legs upright comfortably." + icon_state = "legbrace" + item_state = "legbrace" + +/obj/item/clothing/accessory/offworlder/bracer/neckbrace + name = "neckbrace" + desc = "A lightweight polymer frame meant to brace and hold someone's neck upright comfortably." + icon_state = "neckbrace" + item_state = "neckbrace" diff --git a/code/modules/clothing/under/accessories/armband.dm b/code/modules/clothing/under/accessories/armband.dm index 2f8d14e29cc..e50f381d97d 100644 --- a/code/modules/clothing/under/accessories/armband.dm +++ b/code/modules/clothing/under/accessories/armband.dm @@ -48,3 +48,19 @@ name = "interstellar aid corps armband" desc = "An armband denoting its wearer as a medical worker of the Interstellar Aid Corps. This one is white and blue." icon_state = "iac" + +/obj/item/clothing/accessory/armband/offworlder + name = "science exo-stellar ribbon" + desc = "Durable cloth meant to be worn over or attached to the chest pieces of the ESS modules. This one is purple." + icon_state = "ribbon_sci" + slot = "over" + +/obj/item/clothing/accessory/armband/offworlder/engineering + name = "engineering exo-stellar ribbon" + desc = "Durable cloth meant to be worn over or attached to the chest pieces of the ESS modules. This one is orange with a reflective strip." + icon_state = "ribbon_engi" + +/obj/item/clothing/accessory/armband/offworlder/medical + name = "medical exo-stellar ribbon" + desc = "Durable cloth meant to be worn over or attached to the chest pieces of the ESS modules. This one is white and green." + icon_state = "ribbon_med" \ No newline at end of file diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index e25d8e499f8..f993381a7f9 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -457,6 +457,12 @@ /obj/item/clothing/under/dress/blacktango/alt icon_state = "black_tango_alt" +/obj/item/clothing/under/dress/offworlder + name = "\improper CR dress" + desc = "A very tight form-fitting padded suit that looks extremely comfortable to wear. This variant seems to have a poofy skirt and longer sleeves than normal." + icon_state = "cr_dress" + item_state = "cr_dress" + /obj/item/clothing/under/captainformal name = "captain's formal uniform" desc = "A captain's formal-wear, for special occasions." @@ -627,7 +633,7 @@ siemens_coefficient = 1 //swimsuit -/obj/item/clothing/under/swimsuit/ +/obj/item/clothing/under/swimsuit siemens_coefficient = 1 body_parts_covered = 0 @@ -704,4 +710,10 @@ icon_state = "taucetilegion" item_state = "bl_suit" worn_state = "taucetilegion" - siemens_coefficient = 0.7 \ No newline at end of file + siemens_coefficient = 0.7 + +/obj/item/clothing/under/offworlder + name = "\improper CR suit" + desc = "A very tight form-fitting padded suit that looks extremely comfortable to wear." + icon_state = "cr_suit" + item_state = "cr_suit" \ No newline at end of file diff --git a/code/modules/clothing/under/skirts.dm b/code/modules/clothing/under/skirts.dm index 31812a9ef86..60df3319d32 100644 --- a/code/modules/clothing/under/skirts.dm +++ b/code/modules/clothing/under/skirts.dm @@ -1,6 +1,6 @@ //skirts -/obj/item/clothing/under/skirt/ +/obj/item/clothing/under/skirt name = "black skirt" desc = "A black skirt, very fancy!" icon_state = "blackskirt" @@ -89,4 +89,10 @@ desc = "A piece of cloth wrapped around the waist." icon_state = "loincloth" item_state = "loincloth" - worn_state = "loincloth" \ No newline at end of file + worn_state = "loincloth" + +/obj/item/clothing/under/skirt/offworlder + name = "\improper CR skirt" + desc = "A very tight form-fitting padded suit that looks extremely comfortable to wear. This variant seems to have a poofy skirt and longer sleeves than normal." + icon_state = "cr_skirt" + item_state = "cr_skirt" \ No newline at end of file diff --git a/code/modules/mob/abstract/new_player/new_player.dm b/code/modules/mob/abstract/new_player/new_player.dm index ce745d1ff23..2e66ce00c48 100644 --- a/code/modules/mob/abstract/new_player/new_player.dm +++ b/code/modules/mob/abstract/new_player/new_player.dm @@ -301,8 +301,6 @@ INITIALIZE_IMMEDIATE(/mob/abstract/new_player) var/mob/living/character = create_character() //creates the human and transfers vars and mind - character = SSjobs.EquipPersonal(character, rank, 1,spawning_at) //equips the human - UpdateFactionList(character) // AIs don't need a spawnpoint, they must spawn at an empty core @@ -326,6 +324,7 @@ INITIALIZE_IMMEDIATE(/mob/abstract/new_player) //Find our spawning point. var/join_message = SSjobs.LateSpawn(character, rank) + character = SSjobs.EquipPersonal(character, rank, 1,spawning_at) //equips the human equip_custom_items(character) character.lastarea = get_area(loc) diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index 610293325e5..a1bccadb758 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -22,6 +22,9 @@ if(wear_suit) tally += wear_suit.slowdown + if(species) + tally += species.get_species_tally(src) + if(istype(buckled, /obj/structure/bed/chair/wheelchair)) for(var/organ_name in list("l_hand","r_hand","l_arm","r_arm")) var/obj/item/organ/external/E = get_organ(organ_name) diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm index 75fdc18554b..f8087f65601 100644 --- a/code/modules/mob/living/carbon/human/species/species.dm +++ b/code/modules/mob/living/carbon/human/species/species.dm @@ -73,6 +73,7 @@ var/fall_mod = 1 // Fall damage modifier, further modified by brute damage modifier var/grab_mod = 1 // How easy it is to grab the species. Higher is harder to grab. var/metabolism_mod = 1 // Reagent metabolism modifier + var/bleed_mod = 1 // How fast this species bleeds. var/vision_flags = DEFAULT_SIGHT // Same flags as glasses. var/inherent_eye_protection // If set, this species has this level of inherent eye protection. @@ -538,3 +539,9 @@ H.h_style = H.species.default_h_style H.f_style = H.species.default_f_style H.update_hair() + +/datum/species/proc/get_species_tally(var/mob/living/carbon/human/H) + return 0 + +/datum/species/proc/equip_later_gear(var/mob/living/carbon/human/H) //this handles anything not covered by survival gear, it is only called after everything else is equiped to the mob + return \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/species/station/human_subspecies.dm b/code/modules/mob/living/carbon/human/species/station/human_subspecies.dm index c32a395e3cd..cb786daac3d 100644 --- a/code/modules/mob/living/carbon/human/species/station/human_subspecies.dm +++ b/code/modules/mob/living/carbon/human/species/station/human_subspecies.dm @@ -1,63 +1,79 @@ -/datum/species/human/gravworlder - name = "Grav-Adapted Human" - name_plural = "grav-adapted Humans" - blurb = "Heavier and stronger than a baseline human, gravity-adapted people have \ - thick radiation-resistant skin with a high lead content, denser bones, and recessed \ - eyes beneath a prominent brow in order to shield them from the glare of a dangerously \ - bright, alien sun. This comes at the cost of mobility, flexibility, and increased \ - oxygen requirements to support their robust metabolism." - icobase = 'icons/mob/human_races/subspecies/r_gravworlder.dmi' +/datum/species/human/offworlder + name = "Off-Worlder Human" + name_plural = "off-worlders Humans" + blurb = "The Offworlders are humans that have adapted to zero-G conditions through a lifetime of conditioning, exposure, and physical modification. \ + They thrive in thinner atmosphere and weightlessness, more often than not utilizing advanced life support and body-bracing equipment to sustain themselves in normal Human environments." + icobase = 'icons/mob/human_races/subspecies/r_offworlder.dmi' + + flash_mod = 1.2 + oxy_mod = 0.8 + brute_mod = 1.2 + toxins_mod = 1.2 + bleed_mod = 0.5 + + warning_low_pressure = 30 + hazard_low_pressure = 10 - flash_mod = 0.9 - oxy_mod = 1.1 - radiation_mod = 0.5 - brute_mod = 0.85 - slowdown = 1 - spawn_flags = IS_RESTRICTED -/datum/species/human/spacer - name = "Space-Adapted Human" - name_plural = "space-adapted Humans" - blurb = "Lithe and frail, these sickly folk were engineered for work in environments that \ - lack both light and atmosphere. As such, they're quite resistant to asphyxiation as well as \ - toxins, but they suffer from weakened bone structure and a marked vulnerability to bright lights." - icobase = 'icons/mob/human_races/subspecies/r_spacer.dmi' +/datum/species/human/offworlder/equip_later_gear(var/mob/living/carbon/human/H) + if(H.back) + var/obj/item/I = H.back + H.unEquip(I) + H.put_in_hands(I) - oxy_mod = 0.8 - toxins_mod = 0.9 - flash_mod = 1.2 - brute_mod = 1.1 - burn_mod = 1.1 - - spawn_flags = IS_RESTRICTED + var/obj/item/weapon/rig/light/offworlder/skeleton = new(get_turf(H)) + skeleton.autodrobe_no_remove = TRUE + H.equip_to_slot_or_del(skeleton,slot_back) + to_chat(H, "You have access to \the [skeleton], deploy it to allow you to walk properly.") -/datum/species/human/vatgrown - name = "Vat-Grown Human" - name_plural = "vat-grown Humans" - blurb = "With cloning on the forefront of human scientific advancement, cheap mass production \ - of bodies is a very real and rather ethically grey industry. Vat-grown humans tend to be paler than \ - baseline, with no appendix and fewer inherited genetic disabilities, but a weakened metabolism." - icobase = 'icons/mob/human_races/subspecies/r_vatgrown.dmi' +/datum/species/human/offworlder/get_species_tally(var/mob/living/carbon/human/H) - toxins_mod = 1.1 - has_organ = list( - "heart" = /obj/item/organ/heart, - "lungs" = /obj/item/organ/lungs, - "liver" = /obj/item/organ/liver, - "kidneys" = /obj/item/organ/kidneys, - "brain" = /obj/item/organ/brain, - "eyes" = /obj/item/organ/eyes - ) - - spawn_flags = IS_RESTRICTED + if(istype(H.back, /obj/item/weapon/rig/light/offworlder)) + var/obj/item/weapon/rig/light/offworlder/rig = H.back + if(!rig.offline) + return 0 + else + return 3 -/* -// These guys are going to need full resprites of all the suits/etc so I'm going to -// define them and commit the sprites, but leave the clothing for another day. -/datum/species/human/chimpanzee - name = "Uplifted Chimpanzee" - name_plural = "uplifted Chimpanzees" - blurb = "Ook ook." - icobase = 'icons/mob/human_races/subspecies/r_upliftedchimp.dmi' -*/ + if(H.w_uniform) + var/obj/item/clothing/under/suit = H.w_uniform + if(locate(/obj/item/clothing/accessory/offworlder/bracer) in suit.accessories) + return 0 + + + if(H.reagents) + if(H.reagents.has_reagent("RMT", 1)) + return 0 + + return 4 + +/datum/species/human/offworlder/handle_environment_special(var/mob/living/carbon/human/H) + if(prob(5)) + if(!H.can_feel_pain()) + return + + var/area/A = get_area(H) + if(A && !A.has_gravity()) + return + + if(istype(H.back, /obj/item/weapon/rig/light/offworlder)) + var/obj/item/weapon/rig/light/offworlder/rig = H.back + if(!rig.offline) + return + + if(H.w_uniform) + var/obj/item/clothing/under/uniform = H.w_uniform + if(locate(/obj/item/clothing/accessory/offworlder/bracer) in uniform.accessories) + return + + + if(H.reagents) + if(H.reagents.has_reagent("RMT", 1)) + return + + var/pain_message = pick("You feel sluggish as if something is weighing you down.", + "Your legs feel harder to move.", + "You begin to have trouble standing upright.") + + to_chat(H, "[pain_message]") \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/species/station/station.dm b/code/modules/mob/living/carbon/human/species/station/station.dm index ac4b3091243..f9d8dbcc44e 100644 --- a/code/modules/mob/living/carbon/human/species/station/station.dm +++ b/code/modules/mob/living/carbon/human/species/station/station.dm @@ -689,6 +689,7 @@ datum/species/machine/handle_post_spawn(var/mob/living/carbon/human/H) toxins_mod = 2 //they're not used to all our weird human bacteria. oxy_mod = 0.6 radiation_mod = 0.2 //almost total radiation protection + bleed_mod = 2.2 warning_low_pressure = 50 hazard_low_pressure = 0 ethanol_resistance = 2 diff --git a/code/modules/organs/blood.dm b/code/modules/organs/blood.dm index 04d46229095..04dc3ba6e8e 100644 --- a/code/modules/organs/blood.dm +++ b/code/modules/organs/blood.dm @@ -128,16 +128,11 @@ var/const/BLOOD_VOLUME_SURVIVE = 122 for(var/obj/item/organ/external/temp in organs) if(!(temp.status & ORGAN_BLEEDING) || temp.status & ORGAN_ROBOT) continue - if(isvaurca(src)) - for(var/datum/wound/W in temp.wounds) if(W.bleeding()) - blood_max += W.damage / 30 - if (temp.open) - blood_max += 3 //Yer stomach is cut open - else - for(var/datum/wound/W in temp.wounds) if(W.bleeding()) - blood_max += W.damage / 40 - if (temp.open) - blood_max += 2 //Yer stomach is cut open + for(var/datum/wound/W in temp.wounds) + if(W.bleeding()) + blood_max += ((W.damage / 40) * species.bleed_mod) + if (temp.open) + blood_max += 2 * species.bleed_mod //Yer stomach is cut open drip(blood_max) //Makes a blood drop, leaking amt units of blood from the mob diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm index 7779f4dff02..9e130bddf74 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm @@ -1387,3 +1387,12 @@ /datum/reagent/pacifier/affect_blood(var/mob/living/carbon/H, var/alien, var/removed) H.add_chemical_effect(CE_PACIFIED, 1) +/datum/reagent/rmt + name = "Regenerative-Muscular Tissue Supplements" + id = "RMT" + description = "A chemical rampantly used by those seeking to remedy the effects of prolonged zero-gravity adaptations." + reagent_state = LIQUID + color = "#AA8866" + metabolism = 0.5 * REM + taste_description = "sourness" + fallback_specific_heat = 1 \ No newline at end of file diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm index 9f201a995c6..66302151e29 100644 --- a/code/modules/reagents/Chemistry-Recipes.dm +++ b/code/modules/reagents/Chemistry-Recipes.dm @@ -3147,3 +3147,10 @@ result = "venenum" result_amount = 1 required_reagents = list("phoron_salt" = 1, "ryetalyn" = 1) + +/datum/chemical_reaction/rmt + name = "RMT" + id = "rmt" + result = "rmt" + result_amount = 1 + required_reagents = list("potassium" = 1, "inaprovaline" = 1) \ No newline at end of file diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm index 364224f066f..cbc7794e588 100644 --- a/code/modules/reagents/reagent_containers/pill.dm +++ b/code/modules/reagents/reagent_containers/pill.dm @@ -261,3 +261,12 @@ reagents.add_reagent("nutriment", 20) reagents.add_reagent(pick("banana","berryjuice","grapejuice","lemonjuice","limejuice","orangejuice","watermelonjuice"),1) //Would be absolutely retarded to grind the biogenerator for juices. + +/obj/item/weapon/reagent_containers/pill/rmt + name = "RMT pill" + desc = "Contains chemical rampantly used by those seeking to remedy the effects of prolonged zero-gravity adaptations." + icon_state = "pill19" + +/obj/item/weapon/reagent_containers/pill/rmt/Initialize() + . = ..() + reagents.add_reagent("rmt", 15) \ No newline at end of file diff --git a/html/changelogs/alberyk-hoomans.yml b/html/changelogs/alberyk-hoomans.yml new file mode 100644 index 00000000000..6e26d7f3b0f --- /dev/null +++ b/html/changelogs/alberyk-hoomans.yml @@ -0,0 +1,6 @@ +author: Alberyk, Kyres1 + +delete-after: True + +changes: + - rscadd: "Added Off-Worlder Humans." diff --git a/icons/mob/eyes.dmi b/icons/mob/eyes.dmi index 716007cc4e0..e09c4a5d1ec 100644 Binary files a/icons/mob/eyes.dmi and b/icons/mob/eyes.dmi differ diff --git a/icons/mob/hands.dmi b/icons/mob/hands.dmi index 865aba72f69..b6f7536993d 100644 Binary files a/icons/mob/hands.dmi and b/icons/mob/hands.dmi differ diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi index d886f1c1d2a..d8810555141 100644 Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ diff --git a/icons/mob/human_races/subspecies/r_offworlder.dmi b/icons/mob/human_races/subspecies/r_offworlder.dmi new file mode 100644 index 00000000000..c01633c909e Binary files /dev/null and b/icons/mob/human_races/subspecies/r_offworlder.dmi differ diff --git a/icons/mob/mask.dmi b/icons/mob/mask.dmi index 70bd0bc79f4..296f02cd302 100644 Binary files a/icons/mob/mask.dmi and b/icons/mob/mask.dmi differ diff --git a/icons/mob/rig_back.dmi b/icons/mob/rig_back.dmi index 7f642d652e7..1acf6115a5e 100644 Binary files a/icons/mob/rig_back.dmi and b/icons/mob/rig_back.dmi differ diff --git a/icons/mob/suit.dmi b/icons/mob/suit.dmi index b655e8b510c..b46815d3c59 100644 Binary files a/icons/mob/suit.dmi and b/icons/mob/suit.dmi differ diff --git a/icons/mob/ties.dmi b/icons/mob/ties.dmi index c1bb574b12c..afaa9432dd7 100644 Binary files a/icons/mob/ties.dmi and b/icons/mob/ties.dmi differ diff --git a/icons/mob/uniform.dmi b/icons/mob/uniform.dmi index 54d259f323d..88fa4b63e3a 100644 Binary files a/icons/mob/uniform.dmi and b/icons/mob/uniform.dmi differ diff --git a/icons/obj/clothing/glasses.dmi b/icons/obj/clothing/glasses.dmi index fa617df99bc..8066058f86a 100644 Binary files a/icons/obj/clothing/glasses.dmi and b/icons/obj/clothing/glasses.dmi differ diff --git a/icons/obj/clothing/gloves.dmi b/icons/obj/clothing/gloves.dmi index c76458f76e6..293247b7eab 100644 Binary files a/icons/obj/clothing/gloves.dmi and b/icons/obj/clothing/gloves.dmi differ diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index 1c425ff2a98..db3ee1be7d3 100644 Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ diff --git a/icons/obj/clothing/masks.dmi b/icons/obj/clothing/masks.dmi index 52af5fcb6b3..5303ae46808 100644 Binary files a/icons/obj/clothing/masks.dmi and b/icons/obj/clothing/masks.dmi differ diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi index 80b1ef613fe..71010049f7f 100644 Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ diff --git a/icons/obj/clothing/ties.dmi b/icons/obj/clothing/ties.dmi index 4c03829d3d1..c9dc54672ea 100644 Binary files a/icons/obj/clothing/ties.dmi and b/icons/obj/clothing/ties.dmi differ diff --git a/icons/obj/clothing/uniforms.dmi b/icons/obj/clothing/uniforms.dmi index 02600d1e5f5..6487e8b4192 100644 Binary files a/icons/obj/clothing/uniforms.dmi and b/icons/obj/clothing/uniforms.dmi differ diff --git a/icons/obj/rig_modules.dmi b/icons/obj/rig_modules.dmi index 71d384a00b5..bd38a8a6b02 100644 Binary files a/icons/obj/rig_modules.dmi and b/icons/obj/rig_modules.dmi differ