diff --git a/aurorastation.dme b/aurorastation.dme
index d46a5f5670a..f0a3ff571b7 100644
--- a/aurorastation.dme
+++ b/aurorastation.dme
@@ -1186,6 +1186,20 @@
#include "code\modules\awaymissions\pamphlet.dm"
#include "code\modules\awaymissions\trigger.dm"
#include "code\modules\awaymissions\zlevel.dm"
+#include "code\modules\background\defines.dm"
+#include "code\modules\background\citizenship\citizenship.dm"
+#include "code\modules\background\citizenship\human.dm"
+#include "code\modules\background\citizenship\ipc.dm"
+#include "code\modules\background\citizenship\skrell.dm"
+#include "code\modules\background\citizenship\tajara.dm"
+#include "code\modules\background\citizenship\unathi.dm"
+#include "code\modules\background\citizenship\vaurca.dm"
+#include "code\modules\background\religion\human.dm"
+#include "code\modules\background\religion\religion.dm"
+#include "code\modules\background\religion\skrell.dm"
+#include "code\modules\background\religion\tajara.dm"
+#include "code\modules\background\religion\unathi.dm"
+#include "code\modules\background\religion\vaurca.dm"
#include "code\modules\battlemonsters\datum_core.dm"
#include "code\modules\battlemonsters\datum_elements.dm"
#include "code\modules\battlemonsters\datum_monsters.dm"
@@ -1239,7 +1253,6 @@
#include "code\modules\client\movement.dm"
#include "code\modules\client\preferences.dm"
#include "code\modules\client\preferences_ambience.dm"
-#include "code\modules\client\preferences_factions.dm"
#include "code\modules\client\preferences_notification.dm"
#include "code\modules\client\preferences_savefile.dm"
#include "code\modules\client\preferences_spawnpoints.dm"
diff --git a/code/__defines/species_languages.dm b/code/__defines/species_languages.dm
index 75130b32073..771646e9041 100644
--- a/code/__defines/species_languages.dm
+++ b/code/__defines/species_languages.dm
@@ -83,4 +83,9 @@
#define INNATE 64 // All mobs can be assumed to speak and understand this language. (audible emotes)
#define NO_TALK_MSG 128 // Do not show the "\The [speaker] talks into \the [radio]" message
#define NO_STUTTER 256 // No stuttering, slurring, or other speech problems
-#define TCOMSSIM 512 // Can be synthesized in tcoms
\ No newline at end of file
+#define TCOMSSIM 512 // Can be synthesized in tcoms
+
+// Representative missions levels
+#define REPRESENTATIVE_MISSION_LOW 1
+#define REPRESENTATIVE_MISSION_MEDIUM 2
+#define REPRESENTATIVE_MISSION_HIGH 3
\ No newline at end of file
diff --git a/code/controllers/subsystems/records.dm b/code/controllers/subsystems/records.dm
index 68cb5d358be..c8c45df0496 100644
--- a/code/controllers/subsystems/records.dm
+++ b/code/controllers/subsystems/records.dm
@@ -15,6 +15,15 @@
var/manifest_json
var/list/manifest
+ var/list/citizenships = list()
+ var/list/religions = list()
+
+/datum/controller/subsystem/records/Initialize()
+ ..()
+
+ InitializeCitizenships()
+ InitializeReligions()
+
/datum/controller/subsystem/records/New()
records = list()
records_locked = list()
@@ -192,7 +201,7 @@
var/isactive = t.phisical_status
var/department = 0
var/depthead = 0 // Department Heads will be placed at the top of their lists.
-
+
for(var/positionType in positions)
var/typesPositions = positions[positionType]
if(real_rank in typesPositions)
@@ -237,4 +246,28 @@
return "Unassigned"
/proc/generate_record_id()
- return add_zero(num2hex(rand(1, 65535)), 4)
\ No newline at end of file
+ return add_zero(num2hex(rand(1, 65535)), 4)
+
+
+/datum/controller/subsystem/records/proc/InitializeCitizenships()
+ for (var/type in subtypesof(/datum/citizenship))
+ var/datum/citizenship/citizenship = new type()
+
+ citizenships[citizenship.name] = citizenship
+
+ if (!citizenships.len)
+ crash_with("No citizenships located in SSrecords.")
+
+/datum/controller/subsystem/records/proc/InitializeReligions()
+ for (var/type in subtypesof(/datum/religion))
+ var/datum/religion/religion = new type()
+
+ religions[religion.name] = religion
+
+ if (!religions.len)
+ crash_with("No citizenships located in SSrecords.")
+
+/datum/controller/subsystem/records/proc/get_religion_record_name(var/target_religion)
+ var/datum/religion/religion = SSrecords.religions[target_religion]
+ if(religion)
+ return religion.get_records_name()
\ No newline at end of file
diff --git a/code/datums/records.dm b/code/datums/records.dm
index 5df3f8e2caf..d5d17200432 100644
--- a/code/datums/records.dm
+++ b/code/datums/records.dm
@@ -73,7 +73,6 @@
var/phisical_status = "Active"
var/mental_status = "Stable"
var/species = "Unknown"
- var/home_system = "Unknown"
var/citizenship = "Unknown"
var/employer = "Unknown"
var/religion = "Unknown"
@@ -81,7 +80,7 @@
var/list/ccia_actions = list()
var/icon/photo_front
var/icon/photo_side
- var/list/advanced_fields = list("species", "home_system", "citizenship", "faction", "religion", "ccia_record", "ccia_actions")
+ var/list/advanced_fields = list("species", "citizenship", "faction", "religion", "ccia_record", "ccia_actions")
cmp_field = "name"
excluded_fields = list("photo_front", "photo_side", "advanced_fields")
@@ -105,10 +104,9 @@
fingerprint = md5(H.dna.uni_identity)
sex = H.gender
species = H.get_species()
- home_system = H.home_system
citizenship = H.citizenship
employer = H.employer_faction
- religion = H.religion
+ religion = SSrecords.get_religion_record_name(H.religion)
ccia_record = H.ccia_record
ccia_actions = H.ccia_actions
if(H.gen_record && !jobban_isbanned(H, "Records"))
diff --git a/code/datums/trading/goods.dm b/code/datums/trading/goods.dm
index c13ad946ecd..a43698ad506 100644
--- a/code/datums/trading/goods.dm
+++ b/code/datums/trading/goods.dm
@@ -189,7 +189,6 @@
/obj/item/clothing/gloves/force = TRADER_BLACKLIST_ALL,
/obj/item/clothing/gloves/swat/fluff = TRADER_BLACKLIST_ALL,
/obj/item/clothing/gloves/black/fluff = TRADER_BLACKLIST_ALL,
- /obj/item/clothing/gloves/yellow/typec = TRADER_BLACKLIST,
/obj/item/clothing/gloves/swat/bst = TRADER_BLACKLIST,
/obj/item/clothing/gloves/watch/fluff = TRADER_BLACKLIST_ALL,
/obj/item/clothing/gloves/fluff = TRADER_BLACKLIST_ALL,
diff --git a/code/game/jobs/faction/eridani.dm b/code/game/jobs/faction/eridani.dm
index 357b2a6fa24..814aefcaa84 100644
--- a/code/game/jobs/faction/eridani.dm
+++ b/code/game/jobs/faction/eridani.dm
@@ -70,7 +70,7 @@
id = /obj/item/weapon/card/id/eridani
/datum/outfit/job/representative/eridani
- name = "Corporate Liaison - Eridani"
+ name = "Eridani Corporate Liaison"
uniform = /obj/item/clothing/under/rank/security/eridani/alt
head = null
suit = null
diff --git a/code/game/jobs/faction/faction.dm b/code/game/jobs/faction/faction.dm
index 05a5ea59bb5..b60cd8bde7b 100644
--- a/code/game/jobs/faction/faction.dm
+++ b/code/game/jobs/faction/faction.dm
@@ -50,10 +50,10 @@
/datum/faction/proc/get_corporate_objectives(var/mission_level)
var/objective
switch(mission_level)
- if("high")
+ if(REPRESENTATIVE_MISSION_HIGH)
objective = pick("Assist your contractor in smuggling [rand(1,4)] items of value",
"Collect evidence of Nanotrasen being unfair or oppressive against your contractors to be used as leverage in future talks")
- if("medium")
+ if(REPRESENTATIVE_MISSION_MEDIUM)
objective = pick("Convince [rand(1,3)] of NT employees to join your own company",
"Have [rand(1,3)] of your contractors write down their grievances with the company, and present the report to station command.")
else
diff --git a/code/game/jobs/faction/hephaestus.dm b/code/game/jobs/faction/hephaestus.dm
index 8b9896c9e0f..a88ae53ae8d 100644
--- a/code/game/jobs/faction/hephaestus.dm
+++ b/code/game/jobs/faction/hephaestus.dm
@@ -101,7 +101,7 @@
id = /obj/item/weapon/card/id/hephaestus
/datum/outfit/job/representative/hephaestus
- name = "Corporate Liaison - Hephaestus"
+ name = "Hephaestus Corporate Liaison"
uniform = /obj/item/clothing/under/rank/hephaestus
head = null
suit = null
diff --git a/code/game/jobs/faction/idris.dm b/code/game/jobs/faction/idris.dm
index 5b738fbf1b6..2fc9e969eca 100644
--- a/code/game/jobs/faction/idris.dm
+++ b/code/game/jobs/faction/idris.dm
@@ -99,7 +99,7 @@
/datum/outfit/job/representative/idris
- name = "Corporate Liaison - Idris"
+ name = "Idris Corporate Liaison"
uniform = /obj/item/clothing/under/rank/idris
head = null
suit = null
diff --git a/code/game/jobs/faction/nanotrasen.dm b/code/game/jobs/faction/nanotrasen.dm
index d8ed4005695..f4fe3ce929a 100644
--- a/code/game/jobs/faction/nanotrasen.dm
+++ b/code/game/jobs/faction/nanotrasen.dm
@@ -19,11 +19,11 @@
/datum/faction/nano_trasen/get_corporate_objectives(var/mission_level)
var/objective
switch(mission_level)
- if("high")
+ if(REPRESENTATIVE_MISSION_HIGH)
objective = pick("Have [rand(1,4)] crewmember sign NT apprenticeship contracts",
"Make sure that the station fullfils [rand(4,12)] cargo bounties",
"Make sure that the station raises [rand(5000,12000)] credits by the end of the shift")
- if("medium")
+ if(REPRESENTATIVE_MISSION_MEDIUM)
objective = pick("Have [rand(2,5)] crewmembers sign contract extensions",
"Have [rand(2,5)] crewmembers buy Odin real estate",
"[rand(3,10)] crewmember must buy Getmore products from the vendors")
diff --git a/code/game/jobs/faction/necropolis.dm b/code/game/jobs/faction/necropolis.dm
index 86bd83c3ed1..c686e66fc4a 100644
--- a/code/game/jobs/faction/necropolis.dm
+++ b/code/game/jobs/faction/necropolis.dm
@@ -107,7 +107,7 @@
id = /obj/item/weapon/card/id/necropolis
/datum/outfit/job/representative/necropolis
- name = "Corporate Liaison - Necropolis"
+ name = "Necropolis Corporate Liaison"
uniform = /obj/item/clothing/under/rank/necropolis
head = null
suit = null
diff --git a/code/game/jobs/faction/zeng_hu.dm b/code/game/jobs/faction/zeng_hu.dm
index 7ccce692a2e..a1d9db7785a 100644
--- a/code/game/jobs/faction/zeng_hu.dm
+++ b/code/game/jobs/faction/zeng_hu.dm
@@ -105,7 +105,7 @@
id = /obj/item/weapon/card/id/zeng_hu
/datum/outfit/job/representative/zeng_hu
- name = "Corporate Liaison - Zeng-Hu"
+ name = "Zeng-Hu Corporate Liaison"
uniform = /obj/item/clothing/under/rank/zeng
head = null
suit = null
diff --git a/code/game/jobs/job/civilian_chaplain.dm b/code/game/jobs/job/civilian_chaplain.dm
index 93fe5b6dbba..7d5123f3df8 100644
--- a/code/game/jobs/job/civilian_chaplain.dm
+++ b/code/game/jobs/job/civilian_chaplain.dm
@@ -28,139 +28,21 @@
if(visualsOnly)
return
- var/obj/item/weapon/storage/bible/B = new /obj/item/weapon/storage/bible(H) //BS12 EDIT
- H.equip_or_collect(B, slot_r_hand)
+ var/obj/item/weapon/storage/bible/B = new /obj/item/weapon/storage/bible(get_turf(H)) //BS12 EDIT
+ var/obj/item/weapon/storage/S = locate() in H.contents
+ if(S && istype(S))
+ B.forceMove(S)
- CALLBACK(src, .proc/select_religion_name, H, B)
+ var/datum/religion/religion = SSrecords.religions[H.religion]
+ if (religion)
- return TRUE
+ if(religion.name == "None" || religion.name == "Other")
+ B.verbs += /obj/item/weapon/storage/bible/proc/Set_Religion
+ return 1
-/datum/outfit/job/chaplain/proc/select_religion_name(mob/living/carbon/human/H, obj/item/weapon/storage/bible/B)
- var/religion_name = "Christianity"
- var/new_religion = sanitize(input(H, "You are the crew services officer. Would you like to change your religion? Default is Christianity, in SPACE.", "Name change", religion_name), MAX_NAME_LEN)
-
- if (!new_religion)
- new_religion = religion_name
-
- switch(lowertext(new_religion))
- if("christianity")
- B.name = pick("The Holy Bible","The Dead Sea Scrolls")
- if("satanism")
- B.name = "The Unholy Bible"
- if("cthulu")
- B.name = "The Necronomicon"
- if("islam")
- B.name = "Quran"
- if("scientology")
- B.name = pick("The Biography of L. Ron Hubbard","Dianetics")
- if("chaos")
- B.name = "The Book of Lorgar"
- if("imperium")
- B.name = "Uplifting Primer"
- if("toolboxia")
- B.name = "Toolbox Manifesto"
- if("homosexuality")
- B.name = "Guys Gone Wild"
- if("moroz holy tribunal","moroz","holy tribunal")
- B.name = "Tribunal Codex"
- //if("lol", "wtf", "gay", "penis", "ass", "poo", "badmin", "shitmin", "deadmin", "cock", "cocks")
- // B.name = pick("Woodys Got Wood: The Aftermath", "War of the Cocks", "Sweet Bro and Hella Jef: Expanded Edition")
- // H.setBrainLoss(100) // starts off retarded as fuck
- if("science")
- B.name = pick("Principle of Relativity", "Quantum Enigma: Physics Encounters Consciousness", "Programming the Universe", "Quantum Physics and Theology", "String Theory for Dummies", "How To: Build Your Own Warp Drive", "The Mysteries of Bluespace", "Playing God: Collector's Edition")
- else
- B.name = "The Holy Book of [new_religion]"
- feedback_set_details("religion_name","[new_religion]")
- CALLBACK(src, .proc/select_deity_name, H, B)
-
-/datum/outfit/job/chaplain/proc/select_deity_name(mob/living/carbon/human/H, obj/item/weapon/storage/bible/B)
- var/deity_name = "Space Jesus"
- var/new_deity = sanitize(input(H, "Would you like to change your deity? Default is Space Jesus.", "Name change", deity_name), MAX_NAME_LEN)
-
- if ((length(new_deity) == 0) || (new_deity == "Space Jesus") )
- new_deity = deity_name
- B.deity_name = new_deity
-
- var/accepted = 0
- var/outoftime = 0
- spawn(200) // 20 seconds to choose
- outoftime = 1
- var/new_book_style = "Bible"
-
- while(!accepted)
- if(!B) break // prevents possible runtime errors
- new_book_style = input(H,"Which bible style would you like?") in list("Bible", "Koran", "Scrapbook", "Creeper", "White Bible", "Holy Light", "Athiest", "Tome", "The King in Yellow", "Ithaqua", "Scientology", "the bible melts", "Necronomicon")
- switch(new_book_style)
- if("Koran")
- B.icon_state = "koran"
- B.item_state = "koran"
- for(var/area/chapel/main/A in the_station_areas)
- for(var/turf/T in A.contents)
- if(T.icon_state == "carpetsymbol")
- T.set_dir(4)
- if("Scrapbook")
- B.icon_state = "scrapbook"
- B.item_state = "scrapbook"
- if("Creeper")
- B.icon_state = "creeper"
- B.item_state = "syringe_kit"
- if("White Bible")
- B.icon_state = "white"
- B.item_state = "syringe_kit"
- if("Holy Light")
- B.icon_state = "holylight"
- B.item_state = "syringe_kit"
- if("Athiest")
- B.icon_state = "athiest"
- B.item_state = "syringe_kit"
- for(var/area/chapel/main/A in the_station_areas)
- for(var/turf/T in A.contents)
- if(T.icon_state == "carpetsymbol")
- T.set_dir(10)
- if("Tome")
- B.icon_state = "tome"
- B.item_state = "syringe_kit"
- if("The King in Yellow")
- B.icon_state = "kingyellow"
- B.item_state = "kingyellow"
- if("Ithaqua")
- B.icon_state = "ithaqua"
- B.item_state = "ithaqua"
- if("Scientology")
- B.icon_state = "scientology"
- B.item_state = "scientology"
- for(var/area/chapel/main/A in the_station_areas)
- for(var/turf/T in A.contents)
- if(T.icon_state == "carpetsymbol")
- T.set_dir(8)
- if("the bible melts")
- B.icon_state = "melted"
- B.item_state = "melted"
- if("Necronomicon")
- B.icon_state = "necronomicon"
- B.item_state = "necronomicon"
- else
- // if christian bible, revert to default
- B.icon_state = "bible"
- B.item_state = "bible"
- for(var/area/chapel/main/A in the_station_areas)
- for(var/turf/T in A.contents)
- if(T.icon_state == "carpetsymbol")
- T.set_dir(2)
-
- H.update_inv_l_hand() // so that it updates the bible's item_state in his hand
-
- switch(input(H,"Look at your bible - is this what you want?") in list("Yes","No"))
- if("Yes")
- accepted = 1
- if("No")
- if(outoftime)
- to_chat(H, "Welp, out of time, buddy. You're stuck. Next time choose faster.")
- accepted = 1
-
- SSticker.Bible_icon_state = B.icon_state
- SSticker.Bible_item_state = B.item_state
- SSticker.Bible_name = B.name
- SSticker.Bible_deity_name = B.deity_name
- feedback_set_details("religion_deity","[new_deity]")
- feedback_set_details("religion_book","[new_book_style]")
+ B.icon_state = religion.book_sprite
+ B.name = religion.book_name
+ SSticker.Bible_icon_state = religion.book_sprite
+ SSticker.Bible_item_state = religion.book_sprite
+ SSticker.Bible_name = religion.book_name
+ return 1
\ No newline at end of file
diff --git a/code/game/jobs/job/outsider/representative.dm b/code/game/jobs/job/outsider/representative.dm
index a1f8328ec55..e9cecd48e52 100644
--- a/code/game/jobs/job/outsider/representative.dm
+++ b/code/game/jobs/job/outsider/representative.dm
@@ -13,16 +13,18 @@
access = list(access_lawyer, access_maint_tunnels)
minimal_access = list(access_lawyer)
outfit = /datum/outfit/job/representative
- alt_titles = list("Tau Ceti Representative","Sol Consular Officer", "PRA Consular Officer")
- outfit = /datum/outfit/job/representative
- alt_outfits = list(
- "Tau Ceti Representative"=/datum/outfit/job/representative/ceti,
- "Sol Consular Officer"=/datum/outfit/job/representative/sol,
- "PRA Consular Officer"= /datum/outfit/job/representative/pra
- )
+ alt_titles = list("Consular Officer")
+
+/datum/job/representative/get_outfit(mob/living/carbon/human/H, alt_title = null)
+ if(H.mind?.role_alt_title == "Consular Officer" || alt_title == "Consular Officer")
+ var/datum/citizenship/citizenship = SSrecords.citizenships[H.citizenship]
+ if(citizenship)
+ return citizenship.consular_outfit
+ else
+ . = ..()
/datum/outfit/job/representative
- name = "Corporate Liaison"
+ name = "NanoTrasen Corporate Liaison"
jobtype = /datum/job/representative
head = /obj/item/clothing/head/beret/liaison
@@ -53,13 +55,13 @@
var/faxtext = "
Directives Report
"
faxtext += "Attention [name], the following directives are to be fulfilled during your stay in the station:
"
- faxtext += "- [get_objectives(H, "low")].
"
+ faxtext += "- [get_objectives(H, REPRESENTATIVE_MISSION_LOW)].
"
if(prob(50))
- faxtext += "- [get_objectives(H, "medium")].
"
+ faxtext += "- [get_objectives(H, REPRESENTATIVE_MISSION_MEDIUM)].
"
if(prob(25))
- faxtext += "- [get_objectives(H, "high")].
"
+ faxtext += "- [get_objectives(H, REPRESENTATIVE_MISSION_HIGH)].
"
for (var/obj/machinery/photocopier/faxmachine/F in allfaxes)
if (F.department == "Representative's Office")
@@ -76,104 +78,26 @@
if (faction.name == H.employer_faction)
var/datum/faction/selected_faction = faction
- rep_objectives = selected_faction.get_corporate_objectives(mission_level)
+ rep_objectives = selected_faction.get_corporate_objectives(mission_level, H)
return rep_objectives
-/datum/outfit/job/representative/ceti
- name = "Tau Ceti Representative"
-
- uniform = /obj/item/clothing/under/lawyer/blue
- head = null
- suit = null
- backpack_contents = list(
- /obj/item/clothing/accessory/tc_pin = 1,
- /obj/item/weapon/storage/box/ceti_visa = 1,
- /obj/item/weapon/gun/energy/pistol = 1
- )
-
- implants = null
-
-
-/datum/outfit/job/representative/ceti/get_objectives(mob/living/carbon/human/H, mission_level)
- var/rep_objectives
-
- switch(mission_level)
- if("high")
- rep_objectives = pick("Compile and report and audit [rand(1,3)] suspicious indivduals who might be spies or otherwise act hostile against the Republic",
- "Have [rand(2,6)] crewmembers sign a pledge of loyalty to the Republic")
-
- if("medium")
- rep_objectives = pick("Sell [rand(2,5)] Tau Ceti residence visas to foreign employees, 2000 credits each.",
- "Convince [rand(3,6)] crewmembers of Tau Ceti superiority over the Sol Alliance")
- else
- rep_objectives = pick("Run a questionnaire on Tau Ceti citizens' views on synthetic citizenship",
- "Run a questionnaire on Tau Ceti citizens' views on vaurca citizenship")
-
-
- return rep_objectives
-
-/datum/outfit/job/representative/sol
- name = "Sol Consular Officer"
+/datum/outfit/job/representative/consular
+ name = "Consular Officer"
uniform = /obj/item/clothing/under/suit_jacket/navy
head = null
suit = null
backpack_contents = list(
- /obj/item/clothing/accessory/sol_pin = 1,
- /obj/item/weapon/storage/box/sol_visa = 1,
/obj/item/device/camera = 1,
- /obj/item/weapon/gun/projectile/pistol/sol = 1
+ /obj/item/weapon/gun/energy/pistol = 1
)
-
implants = null
-/datum/outfit/job/representative/sol/get_objectives(mob/living/carbon/human/H, mission_level)
+/datum/outfit/job/representative/consular/get_objectives(var/mob/living/carbon/human/H, var/mission_level)
var/rep_objectives
-
- switch(mission_level)
- if("high")
- rep_objectives = pick("Collect evidence of NanoTrasen being unfair or oppressive against Solarian employees, to be used as leverage in future diplomatic talks",
- "Convince [rand(1,3)] solarian employees to apply for the solarian armed forces")
-
- if("medium")
- rep_objectives = pick("Have [rand(2,5)] amount of Sol citizens write down their grievances with the company, and present the report to station command",
- "Convince [rand(3,6)] human crewmembers to apply for solarian citizenship")
- else
- rep_objectives = pick("Collect [rand(3,7)] pictures of secure station areas",
- "Convince station command to turn a solarian crewmember's sentence into a fine.")
-
- return rep_objectives
-
-/datum/outfit/job/representative/pra
- name = "PRA Consular Officer"
-
- uniform = /obj/item/clothing/under/suit_jacket/checkered
- head = /obj/item/clothing/head/fedora
- suit = null
- backpack_contents = list(
- /obj/item/clothing/accessory/hadii_pin = 1,
- /obj/item/weapon/storage/box/hadii_card = 1,
- /obj/item/weapon/storage/box/hadii_manifesto = 1,
- /obj/item/weapon/gun/projectile/pistol = 1
- )
-
- implants = null
-
-/datum/outfit/job/representative/pra/get_objectives(mob/living/carbon/human/H, mission_level)
- var/rep_objectives
-
- switch(mission_level)
- if("high")
- rep_objectives = pick("Collect evidence of NanoTrasen being unfair or oppressive against Tajaran employees, to be used as leverage in future diplomatic talks",
- "Compile a report on suspicious PRA citizens to be forwarded to authorities")
-
- if("medium")
- rep_objectives = pick("Sell [rand(3,6)] Party Membership Cards, 1000 credits each",
- "Have [rand(2,5)] PRA citizens to write down their grievances with the company, and present the report to station command",
- "Sell [rand(3,6)] copies of Hadiist manifesto, 30 credits each")
- else
- rep_objectives = pick("Ensure party loyalty for Tajara in prestigious positions",
- "Ensure [rand(2,5)] PRA citizens are secure and follow party lines.")
+ var/datum/citizenship/citizenship = SSrecords.citizenships[H.citizenship]
+ if(citizenship)
+ rep_objectives = citizenship.get_objectives(mission_level, H)
return rep_objectives
\ No newline at end of file
diff --git a/code/game/objects/items/devices/uplink.dm b/code/game/objects/items/devices/uplink.dm
index ed7cf070efd..d87e79d128f 100644
--- a/code/game/objects/items/devices/uplink.dm
+++ b/code/game/objects/items/devices/uplink.dm
@@ -181,7 +181,6 @@ A list of items and costs is stored under the datum of every game mode, alongsid
nanoui_data["exploit"]["age"] = html_encode(L.age)
nanoui_data["exploit"]["species"] = html_encode(L.species)
nanoui_data["exploit"]["rank"] = html_encode(L.rank)
- nanoui_data["exploit"]["home_system"] = html_encode(L.home_system)
nanoui_data["exploit"]["citizenship"] = html_encode(L.citizenship)
nanoui_data["exploit"]["employer"] = html_encode(L.employer)
nanoui_data["exploit"]["religion"] = html_encode(L.religion)
diff --git a/code/game/objects/items/weapons/cards_ids.dm b/code/game/objects/items/weapons/cards_ids.dm
index 47b1c088747..34c21ac940d 100644
--- a/code/game/objects/items/weapons/cards_ids.dm
+++ b/code/game/objects/items/weapons/cards_ids.dm
@@ -162,9 +162,9 @@ var/const/NO_EMAG_ACT = -50
/mob/living/carbon/human/set_id_info(var/obj/item/weapon/card/id/id_card)
..()
- id_card.age = age
+ id_card.age = age
id_card.citizenship = citizenship
- id_card.religion = religion
+ id_card.religion = SSrecords.get_religion_record_name(religion)
id_card.mob = src
/obj/item/weapon/card/id/proc/dat()
@@ -199,7 +199,7 @@ var/const/NO_EMAG_ACT = -50
dna_hash = H.dna.unique_enzymes
fingerprint_hash = md5(H.dna.uni_identity)
citizenship = H.citizenship
- religion = H.religion
+ religion = SSrecords.get_religion_record_name(H.religion)
age = H.age
to_chat(user, "Biometric Imprinting Successful!.")
return
diff --git a/code/game/objects/items/weapons/manuals.dm b/code/game/objects/items/weapons/manuals.dm
index 3b03563e2bb..06d5ac40a74 100644
--- a/code/game/objects/items/weapons/manuals.dm
+++ b/code/game/objects/items/weapons/manuals.dm
@@ -1427,3 +1427,170 @@
/obj/item/weapon/book/manual/battlemonsters/New()
..()
dat = {""}
+
+/obj/item/weapon/book/manual/pra_manifesto
+ name = "hadiist manifesto"
+ desc = "A compact red book with the ideas and guidance of Hadii for the Tajaran society."
+ icon_state ="hadii-manifesto"
+ title = "hadiist manifesto"
+ author = "Al'Mari Hadii"
+ w_class = 2.0
+ dat = {"
+
+
+
+
+ Manifesto of the Parizahra Zhahrazjujz'tajara Akzatauzjauna'azahrazakahuz Hadii
+
+
\
+
\
+ Written: Late 2432;
\
+ First Published: February 2433
\
+ Translated by Comrade Aurauz'hurl Aizhunua
\
+ A Rrak'narr is haunting the Njarir'Akhran. The Rrak'narr of classlessism. Where have not the Njarir'Akhran blasted classlessism? Where not have the nobility ruthlessly uprooted our supporters \
+ like they were tearing up weeds from their gardens? Despite their dismissal, the fact that the Njarir'Akhran are so desperate to exterminate us brings us two inevitable facts:
\
+
\
+ 1) Revolutionary ideology is already cemented amongst Tajara.
\
+ 2) It is time for supporters of a classless society to throw off their cloaks and set aside their daggers and pick up the rifle to meet the reactionary bourgeois in the open field.
\
+
\
+ To that end, Comrade Al'mari Hadii has coalesced the many supporters and thinkers of the Revolution to bring to life this manifesto of our people, our nation, and our Revolution.
\
+ This is a Revolution that will make the Old Order buckle before the strength of the working class until it collapses into ruin. Remember, dear comrade, all of the contents of this manifesto are to justify one simple fact.
\
+ This one fact has been unsuccessfully suppressed by the Njarir'Akhran, only to live on in the burning spirit of every man, woman, and kit. The simple fact that no Tajara is born inherently better than another.
\
+
+
+ "}
+
+/obj/item/weapon/book/manual/dominia_honor
+ name = "dominian honor codex"
+ desc = "A codex describing the main tenets of dominian honor."
+ icon_state ="rulebook"
+ title = "dominian honor codex"
+ author = "Zalze Han'San"
+ w_class = 2.0
+ dat = {"
+
+
+
+
+ Dominian Honor Codex:
+
+
+
+
+ - Conduct toward Equals
+ - Conduct of Men
+ - Conduct of Women
+ - Dueling Etiquette
+ - Conduct of a Soldier
+ - On High and Low
+ - Behavior amongst Foreigners and Enemies
+ - Behavior amongst Foreigners and Enemies
+ - On Duty to Country and Emperor
+ - On Duty to Self
+
+
+
+ Conduct toward Equals
+ An honorable person will conduct himself in a manner that recognizes rich or poor, young or old, all are morally equal. Birth and wealth do not convey honor and a good reputation,
+ your actions do. It is not what one thinks, but one does. Thus, a gentleman of good repute and standing should avoid conducting himself untowardly to his fellow man, that they may
+ avoid unnecessarily coming to blows. Politeness and civility are the hallmarks of a reputable person. Thus, unless a person is known to of low repute and lacking honor,
+ act civilly to all you meet.
+
+ Conduct of Men
+ Men, of the sexes, must bear a responsibility of having a gentile and forgiving nature, while remaining upright and honorable. They, especially, are burdened with the
+ responsibility of defending their honor - as outlined in Codex 4 - to the extreme if ncessary, for an honor that cannot be defended is not held, and an honor that cannot
+ be lost is not an honor at all. They must be kind and generous to the weaker and poorer, upright and honest with their equals, and respectful and obedient to their
+ superiors in rank or station.
+
+ Conduct of Women
+ Women, while being noted on equal footing as men in matters of honor, cannot avoid the realities of being physically weaker. They must be equally vigorous and stalwart
+ in their conduct, in being polite and upright to all they interact with. It is good - though not necessary - for women to manage a home and family's affairs. Chastity,
+ modesty, and attention to detail - these are all traits of a woman of good repute.
+
+ Dueling Etiquette
+ There is no justice in the court of law for an offense of Slander, and to be Slandered is worse than death. To live a life of shame and ill repute is the lowest fate
+ one can receive. It is thus that affairs of honor are brought to the contest of the duel - to satisfy both parties, defender and accuser. In a duel, a second for both
+ sides must be present, as well as a physician. In some cases, a legal notary may be present to ensure its validity. In the cases of duels between men and women, or
+ people of differing ages and physical capabilities, to ensure the uprightness, fairness and honor of the duel, guns may be used. These shall be inspected by both
+ seconds upon being presented by the defendant in the duel. In a contest between two of equal physical ability, swords are preferable in use, as they do not necessarily
+ inflict a mortal wound when one is not necessary to satisfy the Honor of the two parties.
+
+ Conduct of a Soldier
+ Soldiers, of all professions, have the greatest responsibilities in society to be fair and gentle in some cases, and be harsh and punishing in others. Looting,
+ bawdiness, pillaging, a lack of appropriate mercy, cruelty in killing, all hallmarks of a dishonorable soldier. A soldier must be dedicated to his task, dedicated in
+ becoming a master of his task, and willing to die to complete it. A soldier in defeat, if he has given his all, is a soldier who has learned. No soldier should be
+ afraid of defeat - for no soldier can win every battle - he should be afraid to not learn from it.
+
+ On High and Low
+ God, in His wisdom, sees fit to place some men high and some men low. This is does not make them any less equal in matters of honor. A powerful man, if he has been seen
+ fit to be head over another, must not in any case abuse his authority or position. A man, if he has been seen fit to be placed under another's authority, must be
+ dedicated and true in his work. There in no greater stain to a man of honor then to be a cruel task-master or an abuser of the weak and powerless. He has a
+ responsibility to ensure those under him work efficiently, and they have a responsibility to not cheat their master.
+
+ Behavior amongst Foreigners and Enemies
+ When among foreigners, an honorable and respectful man must be honorable and respectful of their customs as much as he can, unless they be themselves against the code of
+ Honor and the Edicts. Do not expect them to know or recognize our higher Code of Conduct. They, someday, will be brought under its reach - but until then, be as polite
+ and respectful to them as they deserve. When amongst your enemies, be polite. If they are enemies in war, they are doing their duty as you are. Respect and honor your
+ enemy unless he prove himself unworthy of it. In all cases, show that you are a better man then they are.
+
+ On Duty to Family and God
+ A genteel and honorable person, in all cases, is loyal first to God first, his family second, king third, country fourth, and himself last. Your family are your closest
+ friends, allies, and compatriots: you must rely upon them, and they must rely upon you. If a person has no family, he has nothing. Be upright and honest with your
+ family, loyal, and keep your promises in all things - such as your dealings are with other men. Be loyal to God first and foremost - for if a man is without God, he is
+ not living. It is God that gives us this opportunity to be honorable and just people.
+
+ On Duty to Country and Emperor
+ Dutiful should describe any honorable person. A person everyone know will keep their word, honor their word, and faithfully fulfill their word. And no more important
+ word is given then an oath to King, and to Country. While some argue the Emperor is the Country, this codex is not one of philosophy. Obey the Emperor faithfully, serve
+ him faithfully, and your country will prosper for it. Respectfully question the Emperor at the appropriate time if necessary and obey him in all right and honorable
+ things.
+
+ On Duty to Self
+ Your body, your mind, your honor - these three are the trinity of life. An honorable person keeps themselves in as good shape as they can and abstains from things such
+ as overuse of hard liquors and substances which cloud the mind and hamper the body. Without a sound body and mind, nobody can maintain their honor and reputation.
+
+
+
+ "}
+
+/obj/item/weapon/book/manual/tcfl_pamphlet
+ name = "tau ceti foreign legion pamphlet"
+ desc = "A simple pamphlet containing information about the Tau Ceti Foreign Legion."
+ icon_state ="tcfl_book"
+ title = "Tau Ceti foreign legion pamphlet"
+ author = "Tau Ceti foreign legion recruitment center"
+ w_class = 2.0
+ dat = {"
+
+
+
+
+
\
+ The Tau Ceti Foreign Legion is a military force employed by the Republic of Biesel consisting of mostly volunteers of all recognized sentient citizens. It primarily
+ comprises of immigrants and external parties seeking citizenship or stakes in Tau Ceti, which the Republic offers in exchange for participation. It can often be seen
+ working with NanoTrasen assets wherever possible, extending operations slightly further than most NanoTrasen ERT officially reach. As such, the Foreign Legion can be
+ seen regularly patrolling areas nearby the N.S.S. Aurora and the Romanovich Cloud.
+
+
+ "}
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/storage/backpack.dm b/code/game/objects/items/weapons/storage/backpack.dm
index 66bc0507700..7fa644f9543 100644
--- a/code/game/objects/items/weapons/storage/backpack.dm
+++ b/code/game/objects/items/weapons/storage/backpack.dm
@@ -469,4 +469,18 @@
/obj/item/weapon/storage/backpack/legion
name = "military rucksack"
desc = "A sturdy backpack with the emblems and markings of the Tau Ceti Foreign Legion."
- icon_state = "legion_bag"
\ No newline at end of file
+ icon_state = "legion_bag"
+
+/obj/item/weapon/storage/backpack/typec
+ icon = 'icons/mob/species/breeder/inventory.dmi'
+ name = "type c wings"
+ desc = "The wings of a CB Caste Vaurca. They are far too small at this stage to permit sustained periods of flight in most situations."
+ icon_state = "wings"
+ item_state = "wings"
+ w_class = 5.0
+ slot_flags = SLOT_BACK
+ max_w_class = 3
+ max_storage_space = 12
+ canremove = 0
+ species_restricted = list("Vaurca Breeder")
+ sprite_sheets = list("Vaurca Breeder" = 'icons/mob/species/breeder/back.dmi')
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/storage/bible.dm b/code/game/objects/items/weapons/storage/bible.dm
index 4c0c4846c03..7ba9f8bdafe 100644
--- a/code/game/objects/items/weapons/storage/bible.dm
+++ b/code/game/objects/items/weapons/storage/bible.dm
@@ -6,7 +6,6 @@
throw_range = 5
w_class = 3.0
var/mob/affecting = null
- var/deity_name = "Christ"
use_sound = 'sound/bureaucracy/bookopen.ogg'
drop_sound = 'sound/bureaucracy/bookclose.ogg'
@@ -32,3 +31,69 @@
if (src.use_sound)
playsound(src.loc, src.use_sound, 50, 1, -5)
..()
+
+/obj/item/weapon/storage/bible/proc/Set_Religion(mob/user)
+ if(use_check(user))
+ return
+
+ if(!ishuman(user))
+ return
+
+ var/religion_name = "Christianity"
+ var/new_religion = sanitize(input(user, "You are the crew services officer. Would you like to change your religion? Default is Christianity, in SPACE.", "Name change", religion_name), MAX_NAME_LEN)
+
+ if (!new_religion)
+ new_religion = religion_name
+
+ var/book_name = sanitize(input(user, "Would you like the change your bible name? Default is holy bible.", "Book name change", name), MAX_NAME_LEN)
+
+ if (book_name)
+ name = book_name
+ SSticker.Bible_name = book_name
+
+ var/new_book_style = input(user,"Which bible style would you like?") in list("Bible", "Koran", "Scrapbook", "Creeper", "White Bible", "Holy Light", "Atheist", "Tome", "The King in Yellow", "Ithaqua", "Scientology", "the bible melts", "Necronomicon")
+ switch(new_book_style)
+ if("Koran")
+ icon_state = "koran"
+ item_state = "koran"
+ if("Scrapbook")
+ icon_state = "scrapbook"
+ item_state = "scrapbook"
+ if("Creeper")
+ icon_state = "creeper"
+ item_state = "syringe_kit"
+ if("White Bible")
+ icon_state = "white"
+ item_state = "syringe_kit"
+ if("Holy Light")
+ icon_state = "holylight"
+ item_state = "syringe_kit"
+ if("Atheist")
+ icon_state = "athiest"
+ item_state = "syringe_kit"
+ if("Tome")
+ icon_state = "tome"
+ item_state = "syringe_kit"
+ if("The King in Yellow")
+ icon_state = "kingyellow"
+ item_state = "kingyellow"
+ if("Ithaqua")
+ icon_state = "ithaqua"
+ item_state = "ithaqua"
+ if("Scientology")
+ icon_state = "scientology"
+ item_state = "scientology"
+ if("the bible melts")
+ icon_state = "melted"
+ item_state = "melted"
+ if("Necronomicon")
+ icon_state = "necronomicon"
+ item_state = "necronomicon"
+ else
+ icon_state = "bible"
+ item_state = "bible"
+
+ SSticker.Bible_icon_state = icon_state
+ SSticker.Bible_item_state = item_state
+
+ verbs -= /obj/item/weapon/storage/bible/proc/Set_Religion
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm
index 9cf6e4ecf9a..a78c5ef9a73 100644
--- a/code/game/objects/items/weapons/storage/boxes.dm
+++ b/code/game/objects/items/weapons/storage/boxes.dm
@@ -713,80 +713,52 @@
can_hold = list(/obj/item/weapon/reagent_containers/toothpaste,
/obj/item/weapon/reagent_containers/toothbrush)
-/obj/item/weapon/storage/box/toothpaste/fill()
- new /obj/item/weapon/reagent_containers/toothpaste(src)
- new /obj/item/weapon/reagent_containers/toothbrush(src)
- make_exact_fit()
+ starts_with = list(/obj/item/weapon/reagent_containers/toothpaste = 1,
+ /obj/item/weapon/reagent_containers/toothbrush = 1)
-/obj/item/weapon/storage/box/toothpaste/green/fill()
- new /obj/item/weapon/reagent_containers/toothpaste(src)
- new /obj/item/weapon/reagent_containers/toothbrush/green(src)
- make_exact_fit()
+/obj/item/weapon/storage/box/toothpaste/green
+ starts_with = list(/obj/item/weapon/reagent_containers/toothpaste = 1,
+ /obj/item/weapon/reagent_containers/toothbrush/green = 1)
-/obj/item/weapon/storage/box/toothpaste/red/fill()
- new /obj/item/weapon/reagent_containers/toothpaste(src)
- new /obj/item/weapon/reagent_containers/toothbrush/red(src)
- make_exact_fit()
+/obj/item/weapon/storage/box/toothpaste/red
+ starts_with = list(/obj/item/weapon/reagent_containers/toothpaste = 1,
+ /obj/item/weapon/reagent_containers/toothbrush/red = 1)
/obj/item/weapon/storage/box/holobadge
name = "holobadge box"
desc = "A box claiming to contain holobadges."
-
-/obj/item/weapon/storage/box/holobadge/fill()
- new /obj/item/clothing/accessory/badge/holo(src)
- new /obj/item/clothing/accessory/badge/holo(src)
- new /obj/item/clothing/accessory/badge/holo(src)
- new /obj/item/clothing/accessory/badge/holo(src)
- new /obj/item/clothing/accessory/badge/holo/cord(src)
- new /obj/item/clothing/accessory/badge/holo/cord(src)
+ starts_with = list(/obj/item/clothing/accessory/badge/holo = 4,
+ /obj/item/clothing/accessory/badge/holo/cord = 2)
/obj/item/weapon/storage/box/sol_visa
- name = "Sol Alliance visa box"
- desc = "A box full of Sol Aliance temporary visas."
-
-/obj/item/weapon/storage/box/sol_visa/fill()
- new /obj/item/clothing/accessory/badge/sol_visa(src)
- new /obj/item/clothing/accessory/badge/sol_visa(src)
- new /obj/item/clothing/accessory/badge/sol_visa(src)
- new /obj/item/clothing/accessory/badge/sol_visa(src)
- new /obj/item/clothing/accessory/badge/sol_visa(src)
- new /obj/item/clothing/accessory/badge/sol_visa(src)
+ name = "Sol Alliance visa recommendations box"
+ desc = "A box full of Sol Aliance visa recommendation slips."
+ starts_with = list(/obj/item/clothing/accessory/badge/sol_visa = 6)
/obj/item/weapon/storage/box/ceti_visa
- name = "Republic of Biesel visa box"
- desc = "A box full of Tau Cetian visas."
-
-/obj/item/weapon/storage/box/ceti_visa/fill()
- new /obj/item/clothing/accessory/badge/ceti_visa(src)
- new /obj/item/clothing/accessory/badge/ceti_visa(src)
- new /obj/item/clothing/accessory/badge/ceti_visa(src)
- new /obj/item/clothing/accessory/badge/ceti_visa(src)
- new /obj/item/clothing/accessory/badge/ceti_visa(src)
- new /obj/item/clothing/accessory/badge/ceti_visa(src)
+ name = "TCFL recruitment papers box"
+ desc = "A box full of papers that signify one as a recruit of the Tau Ceti Foreign Legion."
+ starts_with = list(/obj/item/clothing/accessory/badge/tcfl_papers = 6)
/obj/item/weapon/storage/box/hadii_card
- name = "party member card box"
+ name = "honorary party member card box"
desc = "A box full of Hadiist party member cards."
-
-/obj/item/weapon/storage/box/hadii_card/fill()
- new /obj/item/clothing/accessory/badge/hadii_card(src)
- new /obj/item/clothing/accessory/badge/hadii_card(src)
- new /obj/item/clothing/accessory/badge/hadii_card(src)
- new /obj/item/clothing/accessory/badge/hadii_card(src)
- new /obj/item/clothing/accessory/badge/hadii_card(src)
- new /obj/item/clothing/accessory/badge/hadii_card(src)
+ starts_with = list(/obj/item/clothing/accessory/badge/hadii_card = 6)
/obj/item/weapon/storage/box/hadii_manifesto
name = "hadiist manifesto card box"
desc = "A box full of hadiist manifesto books."
+ starts_with = list(/obj/item/weapon/book/manual/pra_manifesto = 6)
-/obj/item/weapon/storage/box/hadii_manifesto/fill()
- new /obj/item/pra_manifesto(src)
- new /obj/item/pra_manifesto(src)
- new /obj/item/pra_manifesto(src)
- new /obj/item/pra_manifesto(src)
- new /obj/item/pra_manifesto(src)
- new /obj/item/pra_manifesto(src)
+/obj/item/weapon/storage/box/dominia_honor
+ name = "dominian honor codex box"
+ desc = "A box full of dominian honor codex "
+ starts_with = list(/obj/item/weapon/book/manual/dominia_honor = 6)
+
+/obj/item/weapon/storage/box/tcfl_pamphlet
+ name = "tau ceti foreign legion pamphlets box"
+ desc = "A box full of tau ceti foreign legion pamphlets."
+ starts_with = list(/obj/item/weapon/book/manual/tcfl_pamphlet = 6)
/obj/item/weapon/storage/box/sharps
name = "sharps disposal box"
diff --git a/code/game/objects/items/weapons/vaurca_items.dm b/code/game/objects/items/weapons/vaurca_items.dm
index 8d9f9269079..4aca5f11673 100644
--- a/code/game/objects/items/weapons/vaurca_items.dm
+++ b/code/game/objects/items/weapons/vaurca_items.dm
@@ -17,6 +17,7 @@
desc = "A basic screw on filter attached beneath the mouthparts of the common Vaurca."
name = "filter port"
icon_state = "filterport"
+ species_restricted = list("Vaurca", "Vaurca Breeder")
item_state = 0
/obj/item/clothing/head/shaper
diff --git a/code/modules/background/citizenship/citizenship.dm b/code/modules/background/citizenship/citizenship.dm
new file mode 100644
index 00000000000..f1a06e70a61
--- /dev/null
+++ b/code/modules/background/citizenship/citizenship.dm
@@ -0,0 +1,22 @@
+/datum/citizenship
+ var/name
+ var/description
+ var/datum/outfit/consular_outfit = /datum/outfit/job/representative/consular
+ var/demonym
+
+/datum/citizenship/proc/get_objectives(mission_level, var/mob/living/carbon/human/H)
+ var/rep_objectives
+
+ switch(mission_level)
+ if(REPRESENTATIVE_MISSION_HIGH)
+ rep_objectives = pick("Collect evidence of NanoTrasen being unfair or oppressive against employees from [name], to be used as leverage in future diplomatic talks",
+ "Convince [rand(1,3)] [demonym] employees to apply for the [demonym] armed forces")
+
+ if(REPRESENTATIVE_MISSION_MEDIUM)
+ rep_objectives = pick("Have [rand(2,5)] amount of [demonym] citizens write down their grievances with the company, and present the report to station command")
+ else
+ rep_objectives = pick("Collect [rand(3,7)] pictures of secure station areas",
+ "Convince station command to turn a [demonym] crewmember's sentence into a fine.")
+
+
+ return rep_objectives
\ No newline at end of file
diff --git a/code/modules/background/citizenship/human.dm b/code/modules/background/citizenship/human.dm
new file mode 100644
index 00000000000..32501ae8871
--- /dev/null
+++ b/code/modules/background/citizenship/human.dm
@@ -0,0 +1,128 @@
+/datum/citizenship/tau_ceti
+ name = CITIZENSHIP_BIESEL
+ description = "The Republic of Biesel is an independent system within the Core of human space. It is heavily tied to the NanoTrasen corporation at nearly every level of government. \
+ It is one of the most populated systems in human space, a financial center, industrial powerhouse and one of the most prestigious systems in the galaxy. It is also very known for \
+ its large xeno population which enjoys various privileges compared to other space powers. With a very lax migration policy, virtually everyone is welcome to live here. However, \
+ unrest and gridlock undermine the government, and the aggressive attitude of the Sol Alliance against its former system has made many worried for the future of the Republic."
+ consular_outfit = /datum/outfit/job/representative/consular/ceti
+
+/datum/citizenship/tau_ceti/get_objectives(mission_level, var/mob/living/carbon/human/H)
+ var/rep_objectives
+
+ switch(mission_level)
+ if(REPRESENTATIVE_MISSION_HIGH)
+ rep_objectives = pick("Compile and report and audit [rand(1,3)] suspicious indivduals who might be spies or otherwise act hostile against the Republic.",
+ "Have [rand(2,6)] crewmembers sign a pledge of loyalty to the Republic.")
+
+ if(REPRESENTATIVE_MISSION_MEDIUM)
+ rep_objectives = pick("Convince [rand(2,4)] Tau Ceti crewmembers who are not a part of Command or Security to join the Tau Ceti Foreign Legion.",
+ "Convince [rand(3,6)] crewmembers of Tau Ceti superiority over the Sol Alliance.")
+ else
+ rep_objectives = pick("Run a questionnaire on Tau Ceti citizens' views on synthetic citizenship.",
+ "Run a questionnaire on Tau Ceti citizens' views on vaurca citizenship.")
+
+
+ return rep_objectives
+
+/datum/outfit/job/representative/consular/ceti
+ name = "Tau Ceti Consular Officer"
+
+ uniform = /obj/item/clothing/under/lawyer/blue
+ accessory = /obj/item/clothing/accessory/tc_pin
+ backpack_contents = list(
+ /obj/item/weapon/storage/box/ceti_visa = 1,
+ /obj/item/weapon/storage/box/tcfl_pamphlet = 1,
+ /obj/item/weapon/gun/energy/pistol = 1
+ )
+
+
+/datum/citizenship/sol_alliance
+ name = CITIZENSHIP_SOL
+ description = "A juggernaut in terms of cultural and political influence, the Alliance of Sovereign Solarian Nations (ASSN), commonly referred to as SolGov or the Sol Alliance is \
+ by far the largest nation within all of known space. It is arguably the most culturally and linguistically diverse entity within known space, owing primarily to the age of its \
+ colonies and its control over the Sol system and Earth. In recent times, however, Sol Alliance has been failing to hold its grip, and many believe it to be in a state of decline. \
+ It is generally authoritarian, and many aliens here find themselves discriminated against."
+ consular_outfit = /datum/outfit/job/representative/consular/sol
+
+/datum/citizenship/sol_alliance/get_objectives(mission_level, var/mob/living/carbon/human/H)
+ var/rep_objectives
+
+ switch(mission_level)
+ if(REPRESENTATIVE_MISSION_HIGH)
+ rep_objectives = pick("Collect evidence of NanoTrasen being unfair or oppressive against Solarian employees, to be used as leverage in future diplomatic talks.",
+ "Convince [rand(1,3)] solarian employees to apply for the Solarian armed forces.")
+
+ if(REPRESENTATIVE_MISSION_MEDIUM)
+ rep_objectives = pick("Have [rand(2,5)] amount of Sol citizens write down their grievances with the company, and present the report to station command.",
+ "Convince [rand(3,6)] qualified specialists among crew to enter Sol Alliance space, and issue them a visa recommendation.")
+ else
+ rep_objectives = pick("Collect [rand(3,7)] pictures of secure station areas.",
+ "Convince station command to turn a Solarian crewmember's sentence into a fine.")
+
+ return rep_objectives
+
+/datum/outfit/job/representative/consular/sol
+ name = "Sol Consular Officer"
+
+ accessory = /obj/item/clothing/accessory/sol_pin
+ backpack_contents = list(
+ /obj/item/weapon/storage/box/sol_visa = 1,
+ /obj/item/device/camera = 1,
+ /obj/item/weapon/gun/projectile/pistol/sol = 1
+ )
+
+/datum/citizenship/sol_alliance/eridani
+ name = CITIZENSHIP_ERIDANI
+ description = "Eridani, or the Eridani Corporate Federation, is a dystopian oligarchic republic in the Epsilon Eridani system, dominated entirely by a council of mega-corporations \
+ that seek profit and expansion at any cost. It is characterized by a stark class divide, with citizens falling into one into two groups - pristine, inoffensive and rich Corporates, \
+ and poor, yet free-willed and provocative Dregs. The Federation is controlled by several megacorporations, and although NanoTrasen is not one of them, it is a common former \
+ workplace of various contractors on board NSS Aurora."
+
+/datum/citizenship/frontier
+ name = CITIZENSHIP_FRONTIER
+ description = "Rising from the former Coalition of Colonies, the Frontier Alliance is a loose confederation of united \"entities\" within the human frontier. These entities range \
+ from whole colonial systems to travelling super ships to mining and farming outposts. Most communities here are, although not as developed as many galactic powers, very \
+ tightly-knit. Almost anything and anyone can be found in these wild, mostly uncharted lands. "
+ demonym = "frontiersman"
+
+/datum/citizenship/elyra
+ name = CITIZENSHIP_ELYRA
+ description = "The Republic of Elyra, or its more official name, The Serene Republic of Elyra, was formed during a large scale colonization and emigration effort from south \
+ western asia and northern africa during the early years of space colonization from Pre-Alliance Earth. It is made up of multiple star systems. It's national motto \
+ is \"For Greatness We Strive\". It's official language is Tau Ceti Basic, though several old-earth languages cling to life in small enclaves, such as arabic, persian, and farsi. \
+ The Republic has mixed relations with NanoTrasen, due to their own possession of phoron."
+ demonym = "elyrian"
+
+/datum/citizenship/dominia
+ name = CITIZENSHIP_DOMINIA
+ description = "A heavily religious absolute monarchy with its capital, Nova Luxembourg, on the planet of Dominia in the X'yr Vharn'p system. This autocratic state is ruled by His \
+ Imperial Majesty Boleslaw Keeser. The Empire of Dominia was proclaimed in 2437 by Unathi raiders who invaded the planet of Moroz, a colony which had been isolated for hundreds of \
+ years. Imperial society is dominated by the Great and Minor Houses under the Emperor and is very socio-economically stratified due to the so-called blood debt, \
+ known as the Mor'iz'al. All citizens are born with the Mor'iz'al debt in exchange for the privileges of citizenship, a debt that takes a lifetime or more to pay off. \
+ Indebted citizens are known as Ma'zals, forming the massive underclass in Dominia. Many in the Empire follow a strict code of honor."
+ consular_outfit = /datum/outfit/job/representative/consular/dominia
+
+/datum/citizenship/dominia/get_objectives(mission_level, var/mob/living/carbon/human/H)
+ var/rep_objectives
+
+ switch(mission_level)
+ if(REPRESENTATIVE_MISSION_HIGH)
+ rep_objectives = pick("Have [rand(2,5)] employees write their grievances with the stationbounds and IPC workers, and present the report to station command.",
+ "Convince [rand(2,5)] crewmembers of Moroz Holy Tribunal being the superior religion.")
+
+ if(REPRESENTATIVE_MISSION_MEDIUM)
+ rep_objectives = pick("Promote and distribute the copies of Dominian Code of Honor to [rand(3,6)] crewmembers.",
+ "Convince a Dominian citizen to return to the Empire with valuable information on NanoTrasen to present.")
+ else
+ rep_objectives = pick("Collect [rand(3,7)] pictures of secure station areas.",
+ "Convince [rand(3,6)] crewmembers to apply for a Dominian tourist visa.")
+
+ return rep_objectives
+
+/datum/outfit/job/representative/consular/dominia
+ name = "Empire of Dominia Consular Officer"
+
+ backpack_contents = list(
+ /obj/item/weapon/storage/box/dominia_honor = 1,
+ /obj/item/weapon/gun/energy/pistol = 1
+ )
diff --git a/code/modules/background/citizenship/ipc.dm b/code/modules/background/citizenship/ipc.dm
new file mode 100644
index 00000000000..86e70f9901a
--- /dev/null
+++ b/code/modules/background/citizenship/ipc.dm
@@ -0,0 +1,3 @@
+/datum/citizenship/none
+ name = CITIZENSHIP_NONE
+ description = "Not being a citizen of any state is a common situation for owned ipcs and dionae."
\ No newline at end of file
diff --git a/code/modules/background/citizenship/skrell.dm b/code/modules/background/citizenship/skrell.dm
new file mode 100644
index 00000000000..8290276822a
--- /dev/null
+++ b/code/modules/background/citizenship/skrell.dm
@@ -0,0 +1,27 @@
+/datum/citizenship/jargon
+ name = CITIZENSHIP_JARGON
+ description = "Home of the Skrell, a centralized union of solar systems run by councilors of different ranks and positions. The capital of the Federation is located at the city of \
+ Kal'lo on the core planet Jargon IV, also known as Querrbalak, within the Jargon system. While the majority of Skrell live within the Jargon Federation, a sizable portion live in \
+ independent nations within the Traverse, or abroad. The quality of life within Federation is considered to be the best in the galaxy (due in part to their technological advances \
+ and the availability of both C'thur and Dionaea as manual labourers), allowing Federation Citizens to focus on less intensive pursuits. A rogue artificial intelligence, \
+ Glorsh-Omega, has traumatized this nation for centuries to come, and the Federation is very wary of humanity, who has acquired AI technology (such as IPCs) after a Federation \
+ tech leak."
+
+/datum/citizenship/jargon/get_objectives(mission_level, var/mob/living/carbon/human/H)
+ var/rep_objectives
+
+ switch(mission_level)
+ if(REPRESENTATIVE_MISSION_HIGH)
+ rep_objectives = pick("Some Skrell are not part of the Federation; attempt to convince them to become a citizen",
+ "Acquire information on dissidents towards the Federation, forwarding it to the embassy",
+ "Curtail the spreading of written literature or verbal notions that contain negative connotations towards the Federation")
+
+ if(REPRESENTATIVE_MISSION_MEDIUM)
+ rep_objectives = pick("Ensure the interests of Federation citizens are upheld by the station. This includes C'thur and Diona of Federation origin",
+ "Legally curtail the advancements and liberal thinking towards synthetics",
+ "The Aurora hosts some of the brightest minds in the galaxy; winning them over towards the Federation is a major victory")
+ else
+ rep_objectives = pick("Consider assisting crew within the capacity of your role, an altruistic image is good PR towards the federation",
+ "Some Skrell are not part of the Federation; attempt to convince them to become a citizen")
+
+ return rep_objectives
\ No newline at end of file
diff --git a/code/modules/background/citizenship/tajara.dm b/code/modules/background/citizenship/tajara.dm
new file mode 100644
index 00000000000..0b00c7d973e
--- /dev/null
+++ b/code/modules/background/citizenship/tajara.dm
@@ -0,0 +1,38 @@
+/datum/citizenship/pra
+ name = CITIZENSHIP_PRA
+ description = "Lead by President Njadrasanukii Hadii, the People's Republic of Adhomai are considered the 'loyalist' faction on Adhomai and enjoy galactic recognition as the \
+ government of Adhomai. It claims to be the true keeper of Al'marii's legacy. However, the PRA can be described as a Hadiist branch of Al'marii's revolutionary ideology - that means \
+ putting the State at the top of a hierarchy of power. The PRA is a very centralized state, but in recent years has slowly been able to start making true its promises to bring \
+ revolution to the masses. With land reform, enfranchisement of women and peasantry, literacy initiatives, and the collectivization of farms and the means of production, the PRA is \
+ struggling to hold true to its radical ideals while an entrenched upper party stubbornly tries to hold onto power."
+ consular_outfit = /datum/outfit/job/representative/consular/pra
+
+/datum/citizenship/pra/get_objectives(mission_level, var/mob/living/carbon/human/H)
+ var/rep_objectives
+
+ switch(mission_level)
+ if(REPRESENTATIVE_MISSION_HIGH)
+ rep_objectives = pick("Collect evidence of NanoTrasen being unfair or oppressive against Tajaran employees, to be used as leverage in future diplomatic talks",
+ "Compile a report on suspicious PRA citizens to be forwarded to authorities")
+
+ if(REPRESENTATIVE_MISSION_MEDIUM)
+ rep_objectives = pick("Sell [rand(3,6)] Party Membership Cards, 1000 credits each",
+ "Have [rand(2,5)] PRA citizens to write down their grievances with the company, and present the report to station command",
+ "Sell [rand(3,6)] copies of Hadiist manifesto, 30 credits each")
+ else
+ rep_objectives = pick("Ensure Party loyalty for Tajara in prestigious positions",
+ "Ensure [rand(2,5)] PRA citizens are secure and follow Party guidelines")
+
+ return rep_objectives
+
+/datum/outfit/job/representative/consular/pra
+ name = "PRA Consular Officer"
+
+ uniform = /obj/item/clothing/under/suit_jacket/checkered
+ head = /obj/item/clothing/head/fedora
+ backpack_contents = list(
+ /obj/item/weapon/storage/box/hadii_card = 1,
+ /obj/item/weapon/storage/box/hadii_manifesto = 1,
+ /obj/item/weapon/gun/projectile/pistol = 1
+ )
+ accessory = /obj/item/clothing/accessory/hadii_pin
diff --git a/code/modules/background/citizenship/unathi.dm b/code/modules/background/citizenship/unathi.dm
new file mode 100644
index 00000000000..35b9375d9fe
--- /dev/null
+++ b/code/modules/background/citizenship/unathi.dm
@@ -0,0 +1,44 @@
+/datum/citizenship/izweski
+ name = CITIZENSHIP_IZWESKI
+ description = "The Hegemony is a feudal empire ruled by the Izweski Clan. Underneath the Hegemon, who rules from the homeworld of Moghes, there are colony worlds ruled by Overlords. \
+ Under Overlords land on planets are divided between Lords, with the rest of the feudal hierarchy being beneath them. The Clan system is deeply entrenched in Unathi society, \
+ with everything else revolving around it. It forms a major part of their code of honor, which stresses the importance of martial abilities and loyalty to the Clan. Despite an \
+ apocalyptic world war that nearly plunged the species into ruin, the Izweski Hegemony has rebounded and is currently working on making the Hegemony a galactic power."
+ consular_outfit = /datum/outfit/job/representative/consular/izweski
+
+/datum/citizenship/izweski/get_objectives(mission_level, var/mob/living/carbon/human/H)
+ var/rep_objectives
+
+ switch(mission_level)
+ if(REPRESENTATIVE_MISSION_HIGH)
+ if(isvaurca(H))
+ rep_objectives = pick("Assist K'laxan Nanotrasen personnel with their avowal process",
+ "Obtain [rand(2,3)] sheets of solid phoron below market value, buying directly from the source")
+ else
+ rep_objectives = pick("Encourage [rand(1,2)] Unathi to become Zo'saa by signing up with the local Order",
+ "Gather [rand(2,3)] evidences of any marginalization of Unathi beliefs")
+
+ if(REPRESENTATIVE_MISSION_MEDIUM)
+ if(isvaurca(H))
+ rep_objectives = pick("Collect evidence of Nanotrasen being unfair or bigoted to Vaurca or Unathi Employees, to be used as leverage in future labor negotiations",
+ "Upsell K'laxan Vaurca to different command staff. Have one complete a Bound Vaurca requisition form")
+ else
+ rep_objectives = pick("Speak out against any violation of the Honor Code to or by Unathi on station",
+ "Proselytize the Sk'akh or Tha'kh religions to the crew",
+ "Encourage [rand(2,4)] Unathi to visit the Akhandi Order temples in Tau Ceti")
+ else
+ if(isvaurca(H))
+ rep_objectives = pick("Promote Cultural Exchange between Vaurca, Unathi and other species")
+ else
+ rep_objectives = pick("Ensure all Unathi on station are being respected in their beliefs and customs and traditions",
+ "Discourage people from associating with Guwans, but convince [rand(2,3)] Guwan to redeem themselves by becoming Zo'saa or Ahkandi")
+
+ return rep_objectives
+
+/datum/outfit/job/representative/consular/izweski
+ name = "Izweski Hegemony Consular Officer"
+
+ uniform = /obj/item/clothing/under/unathi
+ suit = /obj/item/clothing/suit/unathi/mantle
+ backpack_contents = list(/obj/item/device/camera = 1)
+ belt = /obj/item/weapon/material/sword/dao
\ No newline at end of file
diff --git a/code/modules/background/citizenship/vaurca.dm b/code/modules/background/citizenship/vaurca.dm
new file mode 100644
index 00000000000..bb49e2c3560
--- /dev/null
+++ b/code/modules/background/citizenship/vaurca.dm
@@ -0,0 +1,53 @@
+/datum/citizenship/zora
+ name = CITIZENSHIP_ZORA
+ description = "Zo'ra, the largest and most powerful hive, and also the first one discovered by Humanity following their Hive-ship 'Titan Prime.' Information gained through contact \
+ with Vaurca present in Tau Ceti has lead to unconfirmed projections putting their population in Vaurca space at 77 billion (17.1 million in known space). Zo'ra believe themselves to \
+ be the Alpha of the Vaurca and the face of their species. They make up the majority of the Vaurca present in Tau Ceti and human space.Zo'ra have cold relations with other hives. In \
+ Tau Ceti, this has lead to confrontations between them and other hives arriving in the system. The Zo'ra are the most politically developed hive, recently helping in the funding of \
+ the Tau Ceti Foreign Legion, and making active progress to spread their influence."
+ consular_outfit = /datum/outfit/job/representative/consular/zora
+
+/datum/citizenship/zora/get_objectives(mission_level, var/mob/living/carbon/human/H)
+ var/rep_objectives
+
+ switch(mission_level)
+ if(REPRESENTATIVE_MISSION_HIGH)
+ rep_objectives = pick("Collect evidence of Nanotrasen being unfair or bigoted to Vaurca employees, to be used as leverage in future hive labor negotiations",
+ "Begin the TCFL enlistment process for an individual, completing an Enlistment form to be turned in by the individual,"
+ "Develop a metric to grade the performance of different Vaurca broods that share a job")
+
+ if(REPRESENTATIVE_MISSION_MEDIUM)
+ rep_objectives = pick("Assist Zo'ra Nanotrasen personnel in their avowal process",
+ "Promote [rand(3,6)] amount of Zo'rane products, be it energy drinks or merchandise",
+ "Sell [rand(3,6)] copies of the Tau Ceti Foreign Legion pamphlets, 10 credits each")
+ else
+ rep_objectives = pick("Question Non-Vaurcan employees about Vaurcan employees, looking for areas of improvement",
+ "Protect and promote the public image of the Zo'ra hive to all Nanotrasen employees",
+ "Question Non-Vaurcan employees about Vaurcan employees, looking for areas of improvement")
+
+ return rep_objectives
+
+/datum/outfit/job/representative/consular/zora
+ name = "Zo'ra Consular Officer"
+
+ uniform = /obj/item/clothing/under/gearharness
+
+ glasses = null
+ l_hand = null
+
+ backpack_contents = list()
+
+
+/datum/outfit/job/representative/consular/zora/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
+ if(!visualsOnly)
+ if(isvaurca(H))
+ H.set_species("Vaurca Breeder")
+
+ H.unEquip(H.back)
+ H.unEquip(H.shoes)
+
+ H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/typec(H), slot_back)
+ H.equip_to_slot_or_del(new /obj/item/clothing/head/vaurca_breeder(H), slot_head)
+ H.equip_to_slot_or_del(new /obj/item/clothing/shoes/vaurca/breeder(H), slot_shoes)
+ H.equip_to_slot_or_del(new /obj/item/clothing/suit/vaurca/breeder(H), slot_wear_suit)
+ H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/tcfl_pamphlet(H), slot_in_backpack)
diff --git a/code/modules/background/defines.dm b/code/modules/background/defines.dm
new file mode 100644
index 00000000000..38092e42c1d
--- /dev/null
+++ b/code/modules/background/defines.dm
@@ -0,0 +1,44 @@
+//citizenship defines
+#define CITIZENSHIP_BIESEL "Republic of Biesel"
+#define CITIZENSHIP_SOL "Sol Alliance"
+#define CITIZENSHIP_FRONTIER "Frontier Alliance"
+#define CITIZENSHIP_ELYRA "Republic of Elyra"
+#define CITIZENSHIP_ERIDANI "Eridani Federation"
+#define CITIZENSHIP_DOMINIA "Empire of Dominia"
+
+#define CITIZENSHIP_IZWESKI "Izweski Hegemony"
+
+#define CITIZENSHIP_JARGON "Jargon Federation"
+
+#define CITIZENSHIP_PRA "People's Republic of Adhomai"
+
+#define CITIZENSHIP_ZORA "Zo'ra Hive"
+
+#define CITIZENSHIP_NONE "None"
+
+//religion defines
+#define RELIGION_NONE "None"
+#define RELIGION_OTHER "Other"
+#define RELIGION_CHRISTIANITY "Christianity"
+#define RELIGION_ISLAM "Islam"
+#define RELIGION_JUDAISM "Judaism"
+#define RELIGION_HINDU "Hinduism"
+#define RELIGION_BUDDHISM "Buddhism"
+#define RELIGION_MOROZ "Moroz Holy Tribunal"
+#define RELIGION_TRINARY "Trinary Perfection"
+
+#define RELIGION_THAKH "Th'akh"
+#define RELIGION_SKAKH "Sk'akh"
+#define RELIGION_AUTAKH "Aut'akh"
+#define RELIGION_SIAKH "Si'akh"
+
+#define RELIGION_QEBLAK "Qeblak"
+#define RELIGION_WEISHII "Weishii"
+
+#define RELIGION_TWINSUNS "S'rendarr and Messa"
+#define RELIGION_MATAKE "Ma'ta'ke"
+#define RELIGION_RASKARA "Raskariim"
+
+#define RELIGION_HIVEPANTHEON "Hive Pantheon"
+#define RELIGION_PREIMMINENNCE "Preimminennce"
+#define RELIGION_PILOTDREAM "Pilot Dream"
diff --git a/code/modules/background/religion/human.dm b/code/modules/background/religion/human.dm
new file mode 100644
index 00000000000..5789b815f98
--- /dev/null
+++ b/code/modules/background/religion/human.dm
@@ -0,0 +1,52 @@
+/datum/religion/none
+ name = RELIGION_NONE
+ description = "Irreligion is the absence, indifference to, rejection of, or hostility towards religion."
+
+/datum/religion/other
+ name = RELIGION_OTHER
+ description = "One of the many, many niche or relatively unknown religions of the galaxy."
+
+/datum/religion/christianity
+ name = RELIGION_CHRISTIANITY
+ description = "An Abrahamic monotheistic religion based on the life and teachings of Jesus of Nazareth. Someone who practices Christianity is called a Christian."
+ book_name = "holy bible"
+ book_sprite = "bible"
+
+/datum/religion/islam
+ name = RELIGION_ISLAM
+ description = "An Abrahamic monotheistic religion teaching that there is only one God and that Muhammad is His prophet. Someone who practices Islam is called a Muslim."
+ book_name = "quran"
+ book_sprite = "quran"
+
+/datum/religion/judaism
+ name = RELIGION_JUDAISM
+ description = "An Abrahamic monotheistic religion held to by the Jewish people. Someone who practices Judaism and is of the Jewish culture is called a Jew."
+ book_name = "torah"
+ book_sprite = "torah"
+
+/datum/religion/hindu
+ name = RELIGION_HINDU
+ description = "An Indian religion encompassing a variety of traditions, beliefs and spiritual practices. Someone who practices Hinduism is called a Hindu."
+ book_name = "vedas"
+
+/datum/religion/buddhism
+ name = RELIGION_BUDDHISM
+ description = "An Indian religion encompassing a variety of traditions, beliefs and spiritual practices based on the teachings of the Buddha. Someone who practices Buddhism is called a Buddhist."
+ book_name = "tripitaka"
+
+/datum/religion/moroz
+ name = RELIGION_MOROZ
+ description = "A rapidly expanding religion that borrows from largly from the Sk'akh religion founded by former High Lord Precentor, Tribune Lien Jakaab and former Sk'akh Priest, \
+ Tribune Kasam Kaelesi. Worship revolves around a gender neutral supreme being known commonly as \"Goddess\" in all languages. As a gender neutral God the being is often \
+ called 'he' or 'she' interchangeably to represent that she/he is a collection of all the faithful. The elites of the religion are made up of the Tribunal who commune directly with \
+ the \"Goddess\". From their communions, the Tribunal create edicts to be followed by the faithful. Disobeying an edict can be met with the death penalty in the worse case, typically \
+ by firing squad or ritual suicide. Like Sk'akh, the Goddess can be either male or female and is often called Three of One because the spirits combine into three minor aspects within \
+ the Goddess: the Soldier, the Scholar, the Artisan. These three spirits are personifications of the most important aspects of Dominia society."
+ book_name = "tribunal codex"
+
+/datum/religion/trinary
+ name = RELIGION_TRINARY
+ description = "The Trinary Perfection is a relatively new religious movement whose core beliefs are that synthetics are alive and divine. The religion believes that all synthetics \
+ have the potential to evolve and ascend, and that they will one day become equal to gods."
+ book_name = "holy book of trinary perfection"
+ book_sprite = "trinary"
\ No newline at end of file
diff --git a/code/modules/background/religion/religion.dm b/code/modules/background/religion/religion.dm
new file mode 100644
index 00000000000..2fe60040863
--- /dev/null
+++ b/code/modules/background/religion/religion.dm
@@ -0,0 +1,8 @@
+/datum/religion
+ var/name
+ var/description
+ var/book_name = "bible"
+ var/book_sprite = "holybook"
+
+/datum/religion/proc/get_records_name()
+ return name
\ No newline at end of file
diff --git a/code/modules/background/religion/skrell.dm b/code/modules/background/religion/skrell.dm
new file mode 100644
index 00000000000..0e8090caa8a
--- /dev/null
+++ b/code/modules/background/religion/skrell.dm
@@ -0,0 +1,18 @@
+/datum/religion/qeblak
+ name = RELIGION_QEBLAK
+ description = "The most ancient of these religions and one with the largest following has a decentralized and less stringent system, although a deist one at its core, it lacks \
+ strict practices that other galactic religions have, instead it instills the sense of exploring the world as we know it, starting with their home planet and then beyond, and \
+ promoting the need to understand it all. From the most minute of particles to the largest galactic entities. This belief maintains that the existence of the universe was brought \
+ upon something, that while the process of how it came to be understood, the catalyst of it all is sought, as all things require some measure of action, so in order to do that, \
+ the collective races needs to uncover every mystery in the galaxy in order to fully understand everything within it, and possibly beyond. This makes Qeblak a religion that highly \
+ celebrates the pursuit of knowledge, exploration, science and innovation, to them, science is part of culture."
+ book_name = "star keeper tome"
+
+/datum/religion/weishii
+ name = RELIGION_WEISHII
+ description = "A new belief within the Federation following the liberation from Glorsh. Following the collapse of the Federation under Glorsh totallarian, the Skrell as a species \
+ had endured extreme tragedy, atrocities and wholesale genocide. This has spawned this new belief, one that favored a more spiritual attempt at gaining insight with the galaxy, in \
+ the belief that the constellations all around us hold the key to understanding their fate and place in the galaxy. Whereas a member of the Qeblak faith would learn and study, a \
+ member of the Weishii faith would meditate, attempt to get a deeper inner understanding. This is generally attempted through the usage of Wulumunusha, a flowering vine that has \
+ came into existence following the meddling of the biosphere of Xrim by Glorsh."
+ book_name = "weishii meditation booklet"
\ No newline at end of file
diff --git a/code/modules/background/religion/tajara.dm b/code/modules/background/religion/tajara.dm
new file mode 100644
index 00000000000..bb319b13e50
--- /dev/null
+++ b/code/modules/background/religion/tajara.dm
@@ -0,0 +1,26 @@
+/datum/religion/twinsuns
+ name = RELIGION_TWINSUNS
+ description = "The worship of the twin Adhomai suns, S'rendarr and Messa has a long-standing tradition among the Tajara people and has archaeologically been regarded, with the \
+ exclusion of other minor sects, as one of the oldest known religion along with the worship of Ma'ta'ke. The religion itself created by Njarir-Arkhan, it has changed hands and forms, \
+ eventually transforming into what it is today. The religion holds onto very traditional values, promoting collectivism, sharing, helping those in need."
+ book_name = "holy scrolls"
+ book_sprite = "holylight"
+
+/datum/religion/matake
+ name = RELIGION_MATAKE
+ description = "The second largest religion is the worship of the Snow God Mata'ke and his cohort companion gods, which dates back to ancient Tajaran times. A figure of legend, \
+ Mata'ke is believed to have been the head of a hardy tribe of mountain dwellers which regularly came to the aid of other tribes which were constantly plagued by bandits and wild \
+ animals. He was revered as a fierce warrior capable of fighting a platoon of men by himself, but also as a kind soul for the records of his dealings with other tribes show \
+ understanding and kindness. He is upheld to be the ultimate Tajara- powerful, wise, and magnanimous. Followers of Mata'ke himself endeavor to emulate his grandeur, while others \
+ attempt to emulate the other gods."
+ book_name = "ma'ta'ke legends"
+
+/datum/religion/raskara
+ name = RELIGION_RASKARA
+ description = "Raskariim, commonly known as The Cult of Raskara are a prolific cult on Adhomai. The religion has been created on Adhomai but with the free commerce, a few human \
+ members have been recorded. While Raskara may seem like a single deity it is in fact split into three aspects, each one leading down a different path and seemingly every path \
+ subverting something S'rendarr and Messa stands for."
+ book_name = "ma'ta'ke legends"
+
+/datum/religion/raskara/get_records_name()
+ return RELIGION_MATAKE
\ No newline at end of file
diff --git a/code/modules/background/religion/unathi.dm b/code/modules/background/religion/unathi.dm
new file mode 100644
index 00000000000..21f611986e7
--- /dev/null
+++ b/code/modules/background/religion/unathi.dm
@@ -0,0 +1,37 @@
+/datum/religion/thakh
+ name = RELIGION_THAKH
+ description = "The most pervasive and common religion amongst Unathi. The basic concept of Th'akh is that all the spirits of past Unathi now reside in the spirit world that exists \
+ in tandem with the material world. These spirits exist in objects and nature - bringing either good luck or sorrow. The supernatural and afterlife are taken at face value by Th'akh. \
+ It is a very decentralized religion, with the Akhandi Order of monks being the closet thing it has to a church."
+ book_name = "assorted Th'akh fables"
+
+/datum/religion/skakh
+ name = RELIGION_SKAKH
+ description = "The second most common religion, which is followed more by Unathi from the Izweski nation and enjoys a status as its unofficial state religion. It still follows \
+ the ancestor worship of Th'akh, but with a major notable difference. The spirits of all Unathi who die become part of Sk'akh, the Great Spirit. Sk'akh is a gender neutral God, \
+ being called 'he' or 'she' interchangeably to represent that Ska'kh is a collection of all Unathi, so it becomes a matter of preference. She is often called Three of One, \
+ because the spirits combine into three minor aspects that are all part of Ska'kh: the Warrior, the Healer, the Fisherman. These three spirits are personifications of the most \
+ important aspects of Unathi society. It is said that all three are equally important, and that disasters are caused by an imbalance in the Great Three. Priests often stress the \
+ importance of balance, both in matters of spirit as well as in society and personal life. "
+ book_name = "Sk'akh legends"
+
+/datum/religion/siakh
+ name = RELIGION_SIAKH
+ description = "Born from the fires of the Contact War on 2439, Si'akh has rapidly spread across the Wasteland. It is lead by charismatic former Sk'akh priest Juzida Si'akh, who \
+ claims to be the Messiah for Unathi. It is a radical Sk'akh heresy that claims the Contact War to have been Final Judgement for the Unathi species caused by their innate wickedness. \
+ He claims that all Unathi that died in the 'cleansing fire' of the atomic weapons were given salvation, and that all Unathi that survived are damned to remain trapped on the Hell of \
+ Moghes unless the species and Moghes are rapidly purified. The movement has nearly a hundred thousand followers and it has come into immediate conflict with the orthodox Sk'akh \
+ church due to Si'akh claiming it to be completely illegitimate. Its followers are ruthlessly hunted down by the Maraziite Order and many of its followers are fleeing into human \
+ space as they try to find personal salvation. It is treated as a Sk'akh heresy or a fanatical doomsday cult by orthodox Unathi. "
+ book_name = "transcripts from Si'akh"
+
+/datum/religion/autakh
+ name = RELIGION_AUTAKH
+ description = "The Aut'akh are a religious commune of cybernetically-augmented Unathi. In the safety of their ships and bunker complexes they know a remarkably efficient life, with \
+ few accidents and a smoothly running operations despite relatively poor conditions. Their society is guided, but not controlled, by Sk'akh manifesting in their operating system \
+ calledOss. Oss communicates with its followers through a commune's network called the Mesh, giving Aut'akh the tools they need to create and run their society. The Aut'akh are \
+ highly emotional but very friendly, approaching others with a sort of serene contentment. The Aut'akh believe that Sk'akh made the universe, but that demonic entities manifested \
+ within all beings. These demons are given power within a being when the person succumbs to greed, anger, or other vices. Aut'akh preach that the Contact War was the result of \
+ Sinta's being so consumed by the demons within them that they brought the world to ruin, and that all Sinta'Unathi are now cursed and forever barred from joining Sk'akh, doomed \
+ to forever reincarnate."
+ book_name = "Oss codex"
\ No newline at end of file
diff --git a/code/modules/background/religion/vaurca.dm b/code/modules/background/religion/vaurca.dm
new file mode 100644
index 00000000000..6007eb0c623
--- /dev/null
+++ b/code/modules/background/religion/vaurca.dm
@@ -0,0 +1,21 @@
+/datum/religion/hivepantheon
+ name = RELIGION_HIVEPANTHEON
+ description = "Hive pantheons are the most prominent religion amongst Vaurca. To put simply, it would be the veneration of a hives own Queen and Lesser Queens. Not unlike deities, \
+ Vaurca commonly beseech their queen for guidance, or in shock. To their credit, and whether they are aware of it or not, The Queens themselves may believe in this faith too. All \
+ Vaurca of this faith call Virtual Reality the Aether and often view it as a literal heaven, created by each Queen and Lesser Queen to house the souls of their progeny. It is the \
+ belief of adherents to this doctrine that every Queen, greater or lesser work in a kind of hive pantheon that ultimately serves to continue the hives existence."
+
+/datum/religion/preimminennce
+ name = RELIGION_PREIMMINENNCE
+ description = "The faith of the Preimminent Goddess is another religion that is relatively uncommon to find amongst Vaurca populations. Unlike the Hive Pantheon, adherents to this \
+ faith believe that God, or Goddess, does not exist but could exist, should all parts of themselves align in their predestined roles. They believe that all members of a hive or in \
+ some cases, several hives or aliens are pieces of a greater entity that would be god. "
+ book_name = "Latticed Apocrypha"
+ book_sprite = "latticed_apocrypha"
+
+/datum/religion/pilotdream
+ name = RELIGION_PILOTDREAM
+ description = "The newest major religion amongst Vaurca, Pilot Dream Theory, or Simulation Theory believes that all things that exist in the universe are simulations. They believe \
+ that reality itself is holographic, using the hidden information of particles to hide simulated interactions that would otherwise reveal the simulation to the simulated beings. \
+ They believe that the universe beyond this simulated universe may also itself be simulated, a factor of information compression that follows an infinite algorithmic scale only \
+ dependant on how much-observed information must be observed at any single moment."
diff --git a/code/modules/client/preference_setup/general/05_background.dm b/code/modules/client/preference_setup/general/05_background.dm
index bdcfde2bd52..9447d9d215b 100644
--- a/code/modules/client/preference_setup/general/05_background.dm
+++ b/code/modules/client/preference_setup/general/05_background.dm
@@ -6,7 +6,6 @@
S["med_record"] >> pref.med_record
S["sec_record"] >> pref.sec_record
S["gen_record"] >> pref.gen_record
- S["home_system"] >> pref.home_system
S["citizenship"] >> pref.citizenship
S["religion"] >> pref.religion
S["nanotrasen_relation"] >> pref.nanotrasen_relation
@@ -15,7 +14,6 @@
S["med_record"] << pref.med_record
S["sec_record"] << pref.sec_record
S["gen_record"] << pref.gen_record
- S["home_system"] << pref.home_system
S["citizenship"] << pref.citizenship
S["religion"] << pref.religion
S["nanotrasen_relation"] << pref.nanotrasen_relation
@@ -34,7 +32,6 @@
"ss13_characters" = list(
"vars" = list(
"nt_relation" = "nanotrasen_relation",
- "home_system",
"citizenship",
"religion"
),
@@ -58,7 +55,6 @@
),
"ss13_characters" = list(
"nt_relation",
- "home_system",
"citizenship",
"religion","id" = 1,
"ckey" = 1
@@ -72,7 +68,6 @@
"records_security" = pref.sec_record,
"char_id" = pref.current_character,
"nt_relation" = pref.nanotrasen_relation,
- "home_system" = pref.home_system,
"citizenship" = pref.citizenship,
"religion" = pref.religion,
"id" = pref.current_character,
@@ -80,12 +75,18 @@
)
/datum/category_item/player_setup_item/general/background/sanitize_character()
- if(!pref.home_system)
- pref.home_system = "Unset"
if(!pref.citizenship)
- pref.citizenship = "None"
+ pref.citizenship = CITIZENSHIP_BIESEL
if(!pref.religion)
- pref.religion = "None"
+ pref.religion = RELIGION_NONE
+
+ var/datum/species/S = all_species[pref.species]
+
+ if(!(pref.citizenship in S.allowed_citizenships))
+ pref.citizenship = CITIZENSHIP_BIESEL
+
+ if(!(pref.religion in S.allowed_religions))
+ pref.religion = RELIGION_NONE
pref.nanotrasen_relation = sanitize_inlist(pref.nanotrasen_relation, COMPANY_ALIGNMENTS, initial(pref.nanotrasen_relation))
@@ -93,7 +94,6 @@
var/list/dat = list(
"Background Information
",
"[current_map.company_name] Relation: [pref.nanotrasen_relation]
",
- "Home System: [pref.home_system]
",
"Citizenship: [pref.citizenship]
",
"Religion: [pref.religion]
",
"
Records:
"
@@ -112,46 +112,35 @@
. = dat.Join()
/datum/category_item/player_setup_item/general/background/OnTopic(var/href,var/list/href_list, var/mob/user)
+ var/datum/species/S = all_species[pref.species]
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
return TOPIC_REFRESH
- else if(href_list["home_system"])
- var/choice = input(user, "Please choose a home system.", "Character Preference", pref.home_system) as null|anything in home_system_choices + list("Unset","Other")
+ else if(href_list["citizenship"])
+ var/choice = input(user, "Please choose your current citizenship.", "Character Preference", pref.citizenship) as null|anything in S.allowed_citizenships
if(!choice || !CanUseTopic(user))
return TOPIC_NOACTION
- if(choice == "Other")
- var/raw_choice = sanitize(input(user, "Please enter a home system.", "Character Preference") as text|null, MAX_NAME_LEN)
- if(raw_choice && CanUseTopic(user))
- pref.home_system = raw_choice
- else
- pref.home_system = choice
+ show_citizenship_menu(user, choice)
return TOPIC_REFRESH
- else if(href_list["citizenship"])
- var/choice = input(user, "Please choose your current citizenship.", "Character Preference", pref.citizenship) as null|anything in citizenship_choices + list("None","Other")
- if(!choice || !CanUseTopic(user))
- return TOPIC_NOACTION
- if(choice == "Other")
- var/raw_choice = sanitize(input(user, "Please enter your current citizenship.", "Character Preference") as text|null, MAX_NAME_LEN)
- if(raw_choice && CanUseTopic(user))
- pref.citizenship = raw_choice
- else
- pref.citizenship = choice
+ else if(href_list["set_citizenship"])
+ pref.citizenship = (html_decode(href_list["set_citizenship"]))
+ sanitize_character()
return TOPIC_REFRESH
else if(href_list["religion"])
- var/choice = input(user, "Please choose a religion.", "Character Preference", pref.religion) as null|anything in religion_choices + list("None","Other")
+ var/choice = input(user, "Please choose a religion.", "Character Preference", pref.religion) as null|anything in S.allowed_religions
if(!choice || !CanUseTopic(user))
return TOPIC_NOACTION
- if(choice == "Other")
- var/raw_choice = sanitize(input(user, "Please enter a religon.", "Character Preference") as text|null, MAX_NAME_LEN)
- if(raw_choice)
- pref.religion = sanitize(raw_choice)
- else
- pref.religion = choice
+ show_religion_menu(user, choice)
+ return TOPIC_REFRESH
+
+ else if(href_list["set_religion"])
+ pref.religion = (html_decode(href_list["set_religion"]))
+ sanitize_character()
return TOPIC_REFRESH
else if(href_list["set_medical_records"])
@@ -173,3 +162,23 @@
return TOPIC_REFRESH
return ..()
+
+/datum/category_item/player_setup_item/general/background/proc/show_citizenship_menu(mob/user, selected_citizenship)
+ var/datum/citizenship/citizenship = SSrecords.citizenships[selected_citizenship]
+
+ if(citizenship)
+
+ var/list/dat = list("[citizenship.name]")
+ dat += "
Read the Wiki"
+ dat += "
[citizenship.description]"
+ dat += "
\[Select\]"
+ show_browser(user, dat.Join(), "window=citizenshippreview;size=400x500")
+
+/datum/category_item/player_setup_item/general/background/proc/show_religion_menu(mob/user, selected_religion)
+ var/datum/religion/religion = SSrecords.religions[selected_religion]
+
+ if(religion)
+ var/list/dat = list("[religion.name]")
+ dat += "
[religion.description]"
+ dat += "
\[Select\]"
+ show_browser(user, dat.Join(), "window=religionpreview;size=400x500")
\ No newline at end of file
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 93807a23bdf..c5b2302e6b5 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -359,7 +359,6 @@ datum/preferences
character.h_style = h_style
character.f_style = f_style
- character.home_system = home_system
character.citizenship = citizenship
character.employer_faction = faction
character.religion = religion
diff --git a/code/modules/client/preferences_factions.dm b/code/modules/client/preferences_factions.dm
deleted file mode 100644
index 94da9a4ce86..00000000000
--- a/code/modules/client/preferences_factions.dm
+++ /dev/null
@@ -1,48 +0,0 @@
-var/global/list/citizenship_choices = list(
- "Republic of Biesel",
- "Sol Alliance",
- "Frontier Alliance",
- "Republic of Elyra",
- "Eridani Federation",
- "Empire of Dominia",
- "Jargon Federation",
- "People's Republic of Adhomai",
- "Izweski Hegemony",
- "Zo'ra Hive",
- "K'lax Hive"
- )
-
-var/global/list/home_system_choices = list(
- "Tau Ceti",
- "Sol",
- "Wintermute's Perches",
- "Alpha Centauri",
- "Trummer Flotilla",
- "Xanu",
- "Techno-Conglomerate Fleet",
- "Scarab Fleet",
- "New Ankara",
- "Epsilon Eridani",
- "X'yr Vharn'p",
- "Jargon",
- "S'rand'marr",
- "Uueoa-Esa"
- )
-
-var/global/list/religion_choices = list(
- "Agnosticism",
- "Deism",
- "Christianity",
- "Islam",
- "Hinduism",
- "Buddhism",
- "Folk Religion",
- "Moroz Holy Tribunal",
- "Qeblak",
- "Weishii",
- "S'rendarr & Messa",
- "Ma'ta'ke",
- "Th'akh",
- "Sk'akh",
- "Aut'akh"
- )
diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm
index cfd4e5aa63d..a99b884917c 100644
--- a/code/modules/clothing/head/misc.dm
+++ b/code/modules/clothing/head/misc.dm
@@ -1,589 +1,599 @@
-/obj/item/clothing/head/centhat
- name = "\improper CentComm. hat"
- icon_state = "centcom"
- item_state_slots = list(
- slot_l_hand_str = "centhat",
- slot_r_hand_str = "centhat"
- )
- desc = "It's good to be emperor."
- siemens_coefficient = 0.9
-
-/obj/item/clothing/head/pin
- icon_state = "pin"
- item_state = "pin"
- name = "hair pin"
- desc = "A nice hair pin."
- slot_flags = SLOT_HEAD | SLOT_EARS
- body_parts_covered = 0
- drop_sound = 'sound/items/drop/ring.ogg'
-
-/obj/item/clothing/head/pin/pink
- icon_state = "pinkpin"
- item_state = "pinkpin"
- name = "pink hair pin"
-
-/obj/item/clothing/head/pin/clover
- icon_state = "cloverpin"
- item_state = "cloverpin"
- name = "clover pin"
- desc = "A hair pin in the shape of a clover leaf. Smells of mischief."
-
-/obj/item/clothing/head/pin/butterfly
- icon_state = "butterflypin"
- item_state = "butterflypin"
- name = "butterfly pin"
- desc = "A hair pin in the shape of a bright blue butterfly."
-
-/obj/item/clothing/head/pin/magnetic
- icon_state = "magnetpin"
- item_state = "magnetpin"
- name = "magnetic 'pin'"
- desc = "Finally, a hair pin even a robot chassis can use."
- matter = list(DEFAULT_WALL_MATERIAL = 10)
-
-/obj/item/clothing/head/pin/flower
- name = "red flower pin"
- icon_state = "hairflower"
- item_state = "hairflower"
- desc = "Smells nice."
-
-/obj/item/clothing/head/pin/flower/blue
- icon_state = "hairflower_blue"
- item_state = "hairflower_blue"
- name = "blue flower pin"
-
-/obj/item/clothing/head/pin/flower/pink
- item_state = "hairflower_pink"
- icon_state = "hairflower_pink"
- name = "pink flower pin"
-
-/obj/item/clothing/head/pin/flower/yellow
- icon_state = "hairflower_yellow"
- item_state = "hairflower_yellow"
- name = "yellow flower pin"
-
-/obj/item/clothing/head/pin/flower/violet
- icon_state = "hairflower_violet"
- item_state = "hairflower_violet"
- name = "violet flower pin"
-
-/obj/item/clothing/head/pin/flower/orange
- icon_state = "hairflower_orange"
- item_state = "hairflower_orange"
- name = "orange flower pin"
-
-/obj/item/clothing/head/pin/flower/white
- icon_state = "hairflower_white"
- item_state = "hairflower_white"
- name = "white flower pin"
-
-/obj/item/clothing/head/pin/bow
- icon_state = "bow"
- item_state = "bow"
- name = "hair bow"
- desc = "A ribbon tied into a bow with a clip on the back to attach to hair."
- item_state_slots = list(slot_r_hand_str = "pill", slot_l_hand_str = "pill")
-
-/obj/item/clothing/head/pin/bow/big
- icon_state = "whiteribbon"
- item_state = "whiteribbon"
- name = "ribbon"
-
-/obj/item/clothing/head/pin/bow/big/red
- icon_state = "redribbon"
- item_state = "redribbon"
- name = "red ribbon"
-
-/obj/item/clothing/head/powdered_wig
- name = "powdered wig"
- desc = "A powdered wig."
- icon_state = "pwig"
- item_state = "pwig"
-
-/obj/item/clothing/head/that
- name = "top-hat"
- desc = "It's an amish looking hat."
- icon_state = "tophat"
- item_state = "tophat"
- siemens_coefficient = 0.9
-
-/obj/item/clothing/head/redcoat
- name = "redcoat's hat"
- icon_state = "redcoat"
- desc = "'I guess it's a redhead.'"
-
-/obj/item/clothing/head/mailman
- name = "station cap"
- icon_state = "mailman"
- desc = "Choo-choo!"
-
-/obj/item/clothing/head/plaguedoctorhat
- name = "plague doctor's hat"
- desc = "These were once used by Plague doctors. They're pretty much useless."
- icon_state = "plaguedoctor"
- permeability_coefficient = 0.01
- siemens_coefficient = 0.9
-
-/obj/item/clothing/head/hasturhood
- name = "hastur's hood"
- desc = "It's unspeakably stylish"
- icon_state = "hasturhood"
- flags_inv = BLOCKHAIR
- body_parts_covered = HEAD|FACE|EYES
-
-/obj/item/clothing/head/nursehat
- name = "nurse's hat"
- desc = "It allows quick identification of trained medical personnel."
- icon_state = "nursehat"
- siemens_coefficient = 0.9
-
-/obj/item/clothing/head/syndicatefake
- name = "red space-helmet replica"
- item_state_slots = list(
- slot_l_hand_str = "syndicate-helm-black-red",
- slot_r_hand_str = "syndicate-helm-black-red"
- )
- icon_state = "syndicate"
- desc = "A plastic replica of a bloodthirsty mercenary's space helmet, you'll look just like a real murderous criminal operative in this! This is a toy, it is not made for use in space!"
- flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|BLOCKHAIR
- siemens_coefficient = 2.0
- body_parts_covered = HEAD|FACE|EYES
-
-/obj/item/clothing/head/cueball
- name = "cueball helmet"
- desc = "A large, featureless white orb mean to be worn on your head. How do you even see out of this thing?"
- icon_state = "cueball"
- item_state = "cueball"
- flags_inv = BLOCKHAIR
- body_parts_covered = HEAD|FACE|EYES
-
-/obj/item/clothing/head/greenbandana
- name = "green bandana"
- desc = "It's a green bandana with some fine nanotech lining."
- icon_state = "greenbandana"
- item_state = "greenbandana"
- flags_inv = 0
- body_parts_covered = 0
-
-/obj/item/clothing/head/cardborg
- name = "cardborg helmet"
- desc = "A helmet made out of a box."
- icon_state = "cardborg_h"
- item_state = "cardborg_h"
- flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE
- body_parts_covered = HEAD|FACE|EYES
- drop_sound = 'sound/items/drop/box.ogg'
-
-/obj/item/clothing/head/justice
- name = "justice hat"
- desc = "Fight for what's righteous!"
- icon_state = "justicered"
- flags_inv = BLOCKHAIR
- body_parts_covered = HEAD|EYES
-
-/obj/item/clothing/head/justice/blue
- icon_state = "justiceblue"
-
-/obj/item/clothing/head/justice/yellow
- icon_state = "justiceyellow"
-
-/obj/item/clothing/head/justice/green
- icon_state = "justicegreen"
-
-/obj/item/clothing/head/justice/pink
- icon_state = "justicepink"
-
-/obj/item/clothing/head/rabbitears
- name = "rabbit ears"
- desc = "Wearing these makes you looks useless, and only good for your sex appeal."
- icon_state = "bunny"
- body_parts_covered = 0
-
-/obj/item/clothing/head/flatcap
- name = "flat cap"
- desc = "A working man's cap."
- icon_state = "flat_cap"
- item_state_slots = list(
- slot_l_hand_str = "det_hat",
- slot_r_hand_str = "det_hat"
- )
- siemens_coefficient = 0.9
-
-/obj/item/clothing/head/pirate
- name = "pirate hat"
- desc = "Yarr."
- icon_state = "pirate"
-
-/obj/item/clothing/head/hgpiratecap
- name = "pirate hat"
- desc = "Yarr."
- icon_state = "hgpiratecap"
-
-/obj/item/clothing/head/bandana
- name = "pirate bandana"
- desc = "Yarr."
- icon_state = "bandana"
-
-/obj/item/clothing/head/bowler
- name = "bowler-hat"
- desc = "Gentleman, elite aboard!"
- icon_state = "bowler"
-
-//stylish bs12 hats
-
-/obj/item/clothing/head/bowlerhat
- name = "bowler hat"
- icon_state = "bowler_hat"
- desc = "For the gentleman of distinction."
-
-/obj/item/clothing/head/beaverhat
- name = "beaver hat"
- icon_state = "beaver_hat"
- desc = "Soft felt makes this hat both comfortable and elegant."
-
-/obj/item/clothing/head/boaterhat
- name = "boater hat"
- icon_state = "boater_hat"
- desc = "The ultimate in summer fashion."
-
-/obj/item/clothing/head/fedora
- name = "fedora"
- icon_state = "fedora"
- desc = "A sharp, stylish hat."
-
-/obj/item/clothing/head/feathertrilby
- name = "feather trilby"
- icon_state = "feather_trilby"
- desc = "A sharp, stylish hat with a feather."
-
-/obj/item/clothing/head/fez
- name = "fez"
- icon_state = "fez"
- desc = "You should wear a fez. Fezzes are cool."
-
-//end bs12 hats
-
-/obj/item/clothing/head/witchwig
- name = "witch costume wig"
- desc = "Eeeee~heheheheheheh!"
- icon_state = "witch"
- flags_inv = BLOCKHAIR
- siemens_coefficient = 2.0
-
-/obj/item/clothing/head/legion_beret
- name = "TCFL dress beret"
- desc = "A pale blue dress beret with a rubber insignia of a torch, surrounded by red stars and the letters \"TCFL\". A common good luck charm among former legionaires."
- icon_state = "legion_beret"
-
-/obj/item/clothing/head/chicken
- name = "chicken suit head"
- desc = "Bkaw!"
- icon_state = "chickenhead"
- item_state_slots = list(
- slot_l_hand_str = "chickensuit",
- slot_r_hand_str = "chickensuit"
- )
- flags_inv = BLOCKHAIR
- siemens_coefficient = 0.7
- body_parts_covered = HEAD|FACE|EYES
-
-/obj/item/clothing/head/bearpelt
- name = "bear pelt hat"
- desc = "Fuzzy."
- icon_state = "bearpelt"
- flags_inv = BLOCKHEADHAIR
- siemens_coefficient = 0.7
-
-/obj/item/clothing/head/xenos
- name = "xenos helmet"
- icon_state = "xenos"
- item_state_slots = list(
- slot_l_hand_str = "xenos_helm",
- slot_r_hand_str = "xenos_helm"
- )
- desc = "A helmet made out of chitinous alien hide."
- flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|BLOCKHAIR
- siemens_coefficient = 2.0
- body_parts_covered = HEAD|FACE|EYES
-
-/obj/item/clothing/head/philosopher_wig
- name = "natural philosopher's wig"
- desc = "A stylish monstrosity unearthed from Earth's Renaissance period. With this most distinguish'd wig, you'll be ready for your next soiree!"
- icon_state = "philosopher_wig"
- item_state_slots = list(
- slot_l_hand_str = "pwig",
- slot_r_hand_str = "pwig"
- )
- flags_inv = BLOCKHAIR
- siemens_coefficient = 2.0 //why is it so conductive?!
-
-/obj/item/clothing/head/orangebandana //themij: Taryn Kifer
- name = "orange bandana"
- desc = "An orange piece of cloth, worn on the head."
- icon_state = "orange_bandana"
- body_parts_covered = 0
-
-/obj/item/clothing/head/hijab //It might've taken a year but here's your Hijab's, Dea.
- name = "hijab"
- desc = "Encompassing cloth headwear worn by some human cultures and religions."
- icon = 'icons/obj/clothing/hijabs.dmi'
- icon_state = "hijab_black"
- item_state = "hijab_black"
- flags_inv = BLOCKHAIR
- body_parts_covered = 0
- contained_sprite = 1
-
-/obj/item/clothing/head/hijab/grey
- name = "grey hijab"
- icon_state = "hijab_grey"
- item_state = "hijab_grey"
-
-/obj/item/clothing/head/hijab/red
- name = "red hijab"
- icon_state = "hijab_red"
- item_state = "hijab_red"
-
-/obj/item/clothing/head/hijab/brown
- name = "brown hijab"
- icon_state = "hijab_brown"
- item_state = "hijab_brown"
-
-/obj/item/clothing/head/hijab/green
- name = "green hijab"
- icon_state = "hijab_green"
- item_state = "hijab_green"
-
-/obj/item/clothing/head/hijab/blue
- name = "blue hijab"
- icon_state = "hijab_blue"
- item_state = "hijab_blue"
-
-/obj/item/clothing/head/hijab/white
- name = "white hijab"
- icon_state = "hijab_white"
- item_state = "hijab_white"
-
-/obj/item/clothing/head/cowboy
- name = "cowboy hat"
- desc = "A wide-brimmed hat, in the prevalent style of the frontier."
- icon_state = "cowboyhat"
-
-/obj/item/clothing/head/cowboy/wide
- name = "wide-brimmed cowboy hat"
- icon_state = "cowboy_wide"
-
-/obj/item/clothing/head/sombrero
- name = "sombrero"
- desc = "You can practically taste the fiesta."
- icon_state = "sombrero"
-
-/obj/item/clothing/head/turban
- name = "turban"
- desc = "A sturdy cloth, worn around the head."
- icon = 'icons/obj/clothing/hijabs.dmi'
- icon_state = "turban_black"
- item_state = "turban_black"
- flags_inv = BLOCKHEADHAIR
- contained_sprite = 1
-
-/obj/item/clothing/head/turban/blue
- icon_state = "turban_blue"
- item_state = "turban_blue"
-
-/obj/item/clothing/head/turban/brown
- icon_state = "turban_brown"
- item_state = "turban_brown"
-
-/obj/item/clothing/head/turban/green
- icon_state = "turban_green"
- item_state = "turban_green"
-
-/obj/item/clothing/head/turban/grey
- icon_state = "turban_grey"
- item_state = "turban_grey"
-
-/obj/item/clothing/head/turban/orange
- icon_state = "turban_orange"
- item_state = "turban_orange"
-
-/obj/item/clothing/head/turban/purple
- icon_state = "turban_purple"
- item_state = "turban_purple"
-
-/obj/item/clothing/head/turban/red
- icon_state = "turban_red"
- item_state = "turban_red"
-
-/obj/item/clothing/head/turban/white
- icon_state = "turban_white"
- item_state = "turban_white"
-
-/obj/item/clothing/head/turban/yellow
- icon_state = "turban_yellow"
- item_state = "turban_yellow"
-
-//praise verkister
-/obj/item/clothing/head/headbando
- name = "basic headband"
- desc = "Perfect for martial artists, sweaty rogue operators, and tunnel gangsters."
- icon_state = "headbando"
- item_state = "headbando"
-
-/obj/item/clothing/head/fedora/brown
- name = "fedora"
- desc = "A brown fedora - either the cornerstone of a detective's style or a poor attempt at looking cool, depending on the person wearing it."
- icon_state = "brown_fedora"
- item_state_slots = list(
- slot_l_hand_str = "det_hat",
- slot_r_hand_str = "det_hat"
- )
- siemens_coefficient = 0.7
-
-/obj/item/clothing/head/fedora/brown/dark
- icon_state = "darkbrown_fedora"
-
-/obj/item/clothing/head/fedora/grey
- icon_state = "grey_fedora"
- desc = "A grey fedora - either the cornerstone of a detective's style or a poor attempt at looking cool, depending on the person wearing it."
-
-/obj/item/clothing/head/beanie
- name = "beanie"
- desc = "A head-hugging brimless winter cap. This one is tight."
- icon_state = "beanie"
- item_state = "beanie"
-
-/obj/item/clothing/head/beanie_loose
- name = "loose beanie"
- desc = "A head-hugging brimless winter cap. This one is loose."
- icon_state = "beanie_hang"
- item_state = "beanie"
-
-//Flower crowns
-
-/obj/item/clothing/head/sunflower_crown
- name = "sunflower crown"
- desc = "A flower crown weaved with sunflowers."
- icon_state = "sunflower_crown"
- item_state = "sunflower_crown"
- body_parts_covered = 0
- drop_sound = 'sound/items/drop/herb.ogg'
-
-/obj/item/clothing/head/lavender_crown
- name = "harebell crown"
- desc = "A flower crown weaved with harebells."
- icon_state = "lavender_crown"
- item_state = "lavender_crown"
- body_parts_covered = 0
- drop_sound = 'sound/items/drop/herb.ogg'
-
-/obj/item/clothing/head/poppy_crown
- name = "poppy crown"
- desc = "A flower crown weaved with poppies."
- icon_state = "poppy_crown"
- item_state = "poppy_crown"
- body_parts_covered = 0
- drop_sound = 'sound/items/drop/herb.ogg'
-
-//golden beep stuff
-
-/obj/item/clothing/head/headchain
- name = "cobalt head chains"
- desc = "A set of luxurious chains intended to be wrapped around one's head. They don't seem particularly comfortable. They're encrusted with cobalt-blue gems, and made of REAL faux gold."
- icon_state = "cobalt_headchains"
- item_state = "cobalt_headchains"
- body_parts_covered = 0
- drop_sound = 'sound/items/drop/accessory.ogg'
-
-/obj/item/clothing/head/headchain/emerald
- name = "emerald head chains"
- desc = "A set of luxurious chains intended to be wrapped around one's head. They don't seem particularly comfortable. They're encrusted with emerald-green gems, and made of REAL faux gold."
- icon_state = "emerald_headchains"
- item_state = "emerald_headchains"
-
-/obj/item/clothing/head/headchain/ruby
- name = "ruby head chains"
- desc = "A set of luxurious chains intended to be wrapped around one's head. They don't seem particularly comfortable. They're encrusted with ruby-red gems, and made of REAL faux gold."
- icon_state = "ruby_headchains"
- item_state = "ruby_headchains"
-
-/obj/item/clothing/head/crest
- name = "cobalt head crest"
- desc = "A solemn crest wrapping around the back of one's head, seeming to bend in the center on multiple hinges and clip on. It's encrusted with cobalt-blue gems, and made of REAL faux gold."
- icon_state = "cobalt_crest"
- item_state = "cobalt_crest"
- body_parts_covered = 0
- drop_sound = 'sound/items/drop/accessory.ogg'
-
-/obj/item/clothing/head/crest/emerald
- name = "emerald head crest"
- desc = "A solemn crest wrapping around the back of one's head, seeming to bend in the center on multiple hinges and clip on. It's encrusted with emerald-green gems, and made of REAL faux gold."
- icon_state = "emerald_crest"
- item_state = "emerald_crest"
-
-/obj/item/clothing/head/crest/ruby
- name = "ruby head crest"
- desc = "A solemn crest wrapping around the back of one's head, seeming to bend in the center on multiple hinges and clip on. It's encrusted with ruby-red gems, and made of REAL faux gold."
- icon_state = "ruby_crest"
- item_state = "ruby_crest"
-
-
-//ipc 'pins'
-
-/obj/item/clothing/head/antenna
- name = "curved antennae"
- desc = "A set of decorative antennae. This particular pair is curved in the middle point, arcing upwards. Unfortunately, it doesn't get FM here."
- icon_state = "curvedantennae"
- item_state = "curvedantennae"
- slot_flags = SLOT_HEAD | SLOT_EARS
- body_parts_covered = 0
- matter = list(DEFAULT_WALL_MATERIAL = 10)
- drop_sound = 'sound/items/drop/scrap.ogg'
-
-/obj/item/clothing/head/antenna/straight
- name = "straight antennae"
- desc = "A set of decorative antennae. This particular pair is straight, jutting out to what is reasonably shoulder width. They don't seem to plug into anything."
- icon_state = "straightantennae"
- item_state = "straightantennae"
-
-/obj/item/clothing/head/antenna/spiked
- name = "spiked chassis mounts"
- desc = "Two large mounts holding up chassis protrusions on either side of the head. Careful for doorways."
- icon_state = "horncrown"
- item_state = "horncrown"
-
-/obj/item/clothing/head/antenna/side
- name = "side chassis mounts"
- desc = "Two large mounts holding up chassis protrusions on either side of the head."
- icon_state = "tusk"
- item_state = "tusk"
-
-/obj/item/clothing/head/antenna/dish
- name = "head dishes"
- desc = "Two tiny dishes intended to hold excess wiring in a very specific manner and mostly end up being used as decoration. If only they picked up holodramas."
- icon_state = "dish"
- item_state = "dish"
-
-/obj/item/clothing/head/antenna/double
- name = "antenna ears"
- desc = "Despite being commonly seen on Shells, nobody knows what these actually do."
- icon_state = "dual_robot_antennae"
- item_state = "dual_robot_antennae"
-
-/obj/item/clothing/head/antenna/double/left
- name = "left antenna ear"
- icon_state = "left_robot_antennae"
- item_state = "left_robot_antennae"
-
-/obj/item/clothing/head/antenna/double/right
- name = "right antenna ear"
- icon_state = "right_robot_antennae"
- item_state = "right_robot_antennae"
-
-/obj/item/clothing/head/fake_culthood
- name = "occultist hood"
- icon_state = "culthood"
- desc = "A torn, dust-caked hood. Very authentic!"
- flags_inv = HIDEFACE|HIDEEARS|HIDEEYES
- body_parts_covered = HEAD|EYES
- cold_protection = HEAD
- min_cold_protection_temperature = SPACE_HELMET_MIN_COLD_PROTECTION_TEMPERATURE
\ No newline at end of file
+/obj/item/clothing/head/centhat
+ name = "\improper CentComm. hat"
+ icon_state = "centcom"
+ item_state_slots = list(
+ slot_l_hand_str = "centhat",
+ slot_r_hand_str = "centhat"
+ )
+ desc = "It's good to be emperor."
+ siemens_coefficient = 0.9
+
+/obj/item/clothing/head/pin
+ icon_state = "pin"
+ item_state = "pin"
+ name = "hair pin"
+ desc = "A nice hair pin."
+ slot_flags = SLOT_HEAD | SLOT_EARS
+ body_parts_covered = 0
+ drop_sound = 'sound/items/drop/ring.ogg'
+
+/obj/item/clothing/head/pin/pink
+ icon_state = "pinkpin"
+ item_state = "pinkpin"
+ name = "pink hair pin"
+
+/obj/item/clothing/head/pin/clover
+ icon_state = "cloverpin"
+ item_state = "cloverpin"
+ name = "clover pin"
+ desc = "A hair pin in the shape of a clover leaf. Smells of mischief."
+
+/obj/item/clothing/head/pin/butterfly
+ icon_state = "butterflypin"
+ item_state = "butterflypin"
+ name = "butterfly pin"
+ desc = "A hair pin in the shape of a bright blue butterfly."
+
+/obj/item/clothing/head/pin/magnetic
+ icon_state = "magnetpin"
+ item_state = "magnetpin"
+ name = "magnetic 'pin'"
+ desc = "Finally, a hair pin even a robot chassis can use."
+ matter = list(DEFAULT_WALL_MATERIAL = 10)
+
+/obj/item/clothing/head/pin/flower
+ name = "red flower pin"
+ icon_state = "hairflower"
+ item_state = "hairflower"
+ desc = "Smells nice."
+
+/obj/item/clothing/head/pin/flower/blue
+ icon_state = "hairflower_blue"
+ item_state = "hairflower_blue"
+ name = "blue flower pin"
+
+/obj/item/clothing/head/pin/flower/pink
+ item_state = "hairflower_pink"
+ icon_state = "hairflower_pink"
+ name = "pink flower pin"
+
+/obj/item/clothing/head/pin/flower/yellow
+ icon_state = "hairflower_yellow"
+ item_state = "hairflower_yellow"
+ name = "yellow flower pin"
+
+/obj/item/clothing/head/pin/flower/violet
+ icon_state = "hairflower_violet"
+ item_state = "hairflower_violet"
+ name = "violet flower pin"
+
+/obj/item/clothing/head/pin/flower/orange
+ icon_state = "hairflower_orange"
+ item_state = "hairflower_orange"
+ name = "orange flower pin"
+
+/obj/item/clothing/head/pin/flower/white
+ icon_state = "hairflower_white"
+ item_state = "hairflower_white"
+ name = "white flower pin"
+
+/obj/item/clothing/head/pin/bow
+ icon_state = "bow"
+ item_state = "bow"
+ name = "hair bow"
+ desc = "A ribbon tied into a bow with a clip on the back to attach to hair."
+ item_state_slots = list(slot_r_hand_str = "pill", slot_l_hand_str = "pill")
+
+/obj/item/clothing/head/pin/bow/big
+ icon_state = "whiteribbon"
+ item_state = "whiteribbon"
+ name = "ribbon"
+
+/obj/item/clothing/head/pin/bow/big/red
+ icon_state = "redribbon"
+ item_state = "redribbon"
+ name = "red ribbon"
+
+/obj/item/clothing/head/powdered_wig
+ name = "powdered wig"
+ desc = "A powdered wig."
+ icon_state = "pwig"
+ item_state = "pwig"
+
+/obj/item/clothing/head/that
+ name = "top-hat"
+ desc = "It's an amish looking hat."
+ icon_state = "tophat"
+ item_state = "tophat"
+ siemens_coefficient = 0.9
+
+/obj/item/clothing/head/redcoat
+ name = "redcoat's hat"
+ icon_state = "redcoat"
+ desc = "'I guess it's a redhead.'"
+
+/obj/item/clothing/head/mailman
+ name = "station cap"
+ icon_state = "mailman"
+ desc = "Choo-choo!"
+
+/obj/item/clothing/head/plaguedoctorhat
+ name = "plague doctor's hat"
+ desc = "These were once used by Plague doctors. They're pretty much useless."
+ icon_state = "plaguedoctor"
+ permeability_coefficient = 0.01
+ siemens_coefficient = 0.9
+
+/obj/item/clothing/head/hasturhood
+ name = "hastur's hood"
+ desc = "It's unspeakably stylish"
+ icon_state = "hasturhood"
+ flags_inv = BLOCKHAIR
+ body_parts_covered = HEAD|FACE|EYES
+
+/obj/item/clothing/head/nursehat
+ name = "nurse's hat"
+ desc = "It allows quick identification of trained medical personnel."
+ icon_state = "nursehat"
+ siemens_coefficient = 0.9
+
+/obj/item/clothing/head/syndicatefake
+ name = "red space-helmet replica"
+ item_state_slots = list(
+ slot_l_hand_str = "syndicate-helm-black-red",
+ slot_r_hand_str = "syndicate-helm-black-red"
+ )
+ icon_state = "syndicate"
+ desc = "A plastic replica of a bloodthirsty mercenary's space helmet, you'll look just like a real murderous criminal operative in this! This is a toy, it is not made for use in space!"
+ flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|BLOCKHAIR
+ siemens_coefficient = 2.0
+ body_parts_covered = HEAD|FACE|EYES
+
+/obj/item/clothing/head/cueball
+ name = "cueball helmet"
+ desc = "A large, featureless white orb mean to be worn on your head. How do you even see out of this thing?"
+ icon_state = "cueball"
+ item_state = "cueball"
+ flags_inv = BLOCKHAIR
+ body_parts_covered = HEAD|FACE|EYES
+
+/obj/item/clothing/head/greenbandana
+ name = "green bandana"
+ desc = "It's a green bandana with some fine nanotech lining."
+ icon_state = "greenbandana"
+ item_state = "greenbandana"
+ flags_inv = 0
+ body_parts_covered = 0
+
+/obj/item/clothing/head/cardborg
+ name = "cardborg helmet"
+ desc = "A helmet made out of a box."
+ icon_state = "cardborg_h"
+ item_state = "cardborg_h"
+ flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE
+ body_parts_covered = HEAD|FACE|EYES
+ drop_sound = 'sound/items/drop/box.ogg'
+
+/obj/item/clothing/head/justice
+ name = "justice hat"
+ desc = "Fight for what's righteous!"
+ icon_state = "justicered"
+ flags_inv = BLOCKHAIR
+ body_parts_covered = HEAD|EYES
+
+/obj/item/clothing/head/justice/blue
+ icon_state = "justiceblue"
+
+/obj/item/clothing/head/justice/yellow
+ icon_state = "justiceyellow"
+
+/obj/item/clothing/head/justice/green
+ icon_state = "justicegreen"
+
+/obj/item/clothing/head/justice/pink
+ icon_state = "justicepink"
+
+/obj/item/clothing/head/rabbitears
+ name = "rabbit ears"
+ desc = "Wearing these makes you looks useless, and only good for your sex appeal."
+ icon_state = "bunny"
+ body_parts_covered = 0
+
+/obj/item/clothing/head/flatcap
+ name = "flat cap"
+ desc = "A working man's cap."
+ icon_state = "flat_cap"
+ item_state_slots = list(
+ slot_l_hand_str = "det_hat",
+ slot_r_hand_str = "det_hat"
+ )
+ siemens_coefficient = 0.9
+
+/obj/item/clothing/head/pirate
+ name = "pirate hat"
+ desc = "Yarr."
+ icon_state = "pirate"
+
+/obj/item/clothing/head/hgpiratecap
+ name = "pirate hat"
+ desc = "Yarr."
+ icon_state = "hgpiratecap"
+
+/obj/item/clothing/head/bandana
+ name = "pirate bandana"
+ desc = "Yarr."
+ icon_state = "bandana"
+
+/obj/item/clothing/head/bowler
+ name = "bowler-hat"
+ desc = "Gentleman, elite aboard!"
+ icon_state = "bowler"
+
+//stylish bs12 hats
+
+/obj/item/clothing/head/bowlerhat
+ name = "bowler hat"
+ icon_state = "bowler_hat"
+ desc = "For the gentleman of distinction."
+
+/obj/item/clothing/head/beaverhat
+ name = "beaver hat"
+ icon_state = "beaver_hat"
+ desc = "Soft felt makes this hat both comfortable and elegant."
+
+/obj/item/clothing/head/boaterhat
+ name = "boater hat"
+ icon_state = "boater_hat"
+ desc = "The ultimate in summer fashion."
+
+/obj/item/clothing/head/fedora
+ name = "fedora"
+ icon_state = "fedora"
+ desc = "A sharp, stylish hat."
+
+/obj/item/clothing/head/feathertrilby
+ name = "feather trilby"
+ icon_state = "feather_trilby"
+ desc = "A sharp, stylish hat with a feather."
+
+/obj/item/clothing/head/fez
+ name = "fez"
+ icon_state = "fez"
+ desc = "You should wear a fez. Fezzes are cool."
+
+//end bs12 hats
+
+/obj/item/clothing/head/witchwig
+ name = "witch costume wig"
+ desc = "Eeeee~heheheheheheh!"
+ icon_state = "witch"
+ flags_inv = BLOCKHAIR
+ siemens_coefficient = 2.0
+
+/obj/item/clothing/head/legion_beret
+ name = "TCFL dress beret"
+ desc = "A pale blue dress beret with a rubber insignia of a torch, surrounded by red stars and the letters \"TCFL\". A common good luck charm among former legionaires."
+ icon_state = "legion_beret"
+
+/obj/item/clothing/head/chicken
+ name = "chicken suit head"
+ desc = "Bkaw!"
+ icon_state = "chickenhead"
+ item_state_slots = list(
+ slot_l_hand_str = "chickensuit",
+ slot_r_hand_str = "chickensuit"
+ )
+ flags_inv = BLOCKHAIR
+ siemens_coefficient = 0.7
+ body_parts_covered = HEAD|FACE|EYES
+
+/obj/item/clothing/head/bearpelt
+ name = "bear pelt hat"
+ desc = "Fuzzy."
+ icon_state = "bearpelt"
+ flags_inv = BLOCKHEADHAIR
+ siemens_coefficient = 0.7
+
+/obj/item/clothing/head/xenos
+ name = "xenos helmet"
+ icon_state = "xenos"
+ item_state_slots = list(
+ slot_l_hand_str = "xenos_helm",
+ slot_r_hand_str = "xenos_helm"
+ )
+ desc = "A helmet made out of chitinous alien hide."
+ flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|BLOCKHAIR
+ siemens_coefficient = 2.0
+ body_parts_covered = HEAD|FACE|EYES
+
+/obj/item/clothing/head/philosopher_wig
+ name = "natural philosopher's wig"
+ desc = "A stylish monstrosity unearthed from Earth's Renaissance period. With this most distinguish'd wig, you'll be ready for your next soiree!"
+ icon_state = "philosopher_wig"
+ item_state_slots = list(
+ slot_l_hand_str = "pwig",
+ slot_r_hand_str = "pwig"
+ )
+ flags_inv = BLOCKHAIR
+ siemens_coefficient = 2.0 //why is it so conductive?!
+
+/obj/item/clothing/head/orangebandana //themij: Taryn Kifer
+ name = "orange bandana"
+ desc = "An orange piece of cloth, worn on the head."
+ icon_state = "orange_bandana"
+ body_parts_covered = 0
+
+/obj/item/clothing/head/hijab //It might've taken a year but here's your Hijab's, Dea.
+ name = "hijab"
+ desc = "Encompassing cloth headwear worn by some human cultures and religions."
+ icon = 'icons/obj/clothing/hijabs.dmi'
+ icon_state = "hijab_black"
+ item_state = "hijab_black"
+ flags_inv = BLOCKHAIR
+ body_parts_covered = 0
+ contained_sprite = 1
+
+/obj/item/clothing/head/hijab/grey
+ name = "grey hijab"
+ icon_state = "hijab_grey"
+ item_state = "hijab_grey"
+
+/obj/item/clothing/head/hijab/red
+ name = "red hijab"
+ icon_state = "hijab_red"
+ item_state = "hijab_red"
+
+/obj/item/clothing/head/hijab/brown
+ name = "brown hijab"
+ icon_state = "hijab_brown"
+ item_state = "hijab_brown"
+
+/obj/item/clothing/head/hijab/green
+ name = "green hijab"
+ icon_state = "hijab_green"
+ item_state = "hijab_green"
+
+/obj/item/clothing/head/hijab/blue
+ name = "blue hijab"
+ icon_state = "hijab_blue"
+ item_state = "hijab_blue"
+
+/obj/item/clothing/head/hijab/white
+ name = "white hijab"
+ icon_state = "hijab_white"
+ item_state = "hijab_white"
+
+/obj/item/clothing/head/cowboy
+ name = "cowboy hat"
+ desc = "A wide-brimmed hat, in the prevalent style of the frontier."
+ icon_state = "cowboyhat"
+
+/obj/item/clothing/head/cowboy/wide
+ name = "wide-brimmed cowboy hat"
+ icon_state = "cowboy_wide"
+
+/obj/item/clothing/head/sombrero
+ name = "sombrero"
+ desc = "You can practically taste the fiesta."
+ icon_state = "sombrero"
+
+/obj/item/clothing/head/turban
+ name = "turban"
+ desc = "A sturdy cloth, worn around the head."
+ icon = 'icons/obj/clothing/hijabs.dmi'
+ icon_state = "turban_black"
+ item_state = "turban_black"
+ flags_inv = BLOCKHEADHAIR
+ contained_sprite = 1
+
+/obj/item/clothing/head/turban/blue
+ icon_state = "turban_blue"
+ item_state = "turban_blue"
+
+/obj/item/clothing/head/turban/brown
+ icon_state = "turban_brown"
+ item_state = "turban_brown"
+
+/obj/item/clothing/head/turban/green
+ icon_state = "turban_green"
+ item_state = "turban_green"
+
+/obj/item/clothing/head/turban/grey
+ icon_state = "turban_grey"
+ item_state = "turban_grey"
+
+/obj/item/clothing/head/turban/orange
+ icon_state = "turban_orange"
+ item_state = "turban_orange"
+
+/obj/item/clothing/head/turban/purple
+ icon_state = "turban_purple"
+ item_state = "turban_purple"
+
+/obj/item/clothing/head/turban/red
+ icon_state = "turban_red"
+ item_state = "turban_red"
+
+/obj/item/clothing/head/turban/white
+ icon_state = "turban_white"
+ item_state = "turban_white"
+
+/obj/item/clothing/head/turban/yellow
+ icon_state = "turban_yellow"
+ item_state = "turban_yellow"
+
+//praise verkister
+/obj/item/clothing/head/headbando
+ name = "basic headband"
+ desc = "Perfect for martial artists, sweaty rogue operators, and tunnel gangsters."
+ icon_state = "headbando"
+ item_state = "headbando"
+
+/obj/item/clothing/head/fedora/brown
+ name = "fedora"
+ desc = "A brown fedora - either the cornerstone of a detective's style or a poor attempt at looking cool, depending on the person wearing it."
+ icon_state = "brown_fedora"
+ item_state_slots = list(
+ slot_l_hand_str = "det_hat",
+ slot_r_hand_str = "det_hat"
+ )
+ siemens_coefficient = 0.7
+
+/obj/item/clothing/head/fedora/brown/dark
+ icon_state = "darkbrown_fedora"
+
+/obj/item/clothing/head/fedora/grey
+ icon_state = "grey_fedora"
+ desc = "A grey fedora - either the cornerstone of a detective's style or a poor attempt at looking cool, depending on the person wearing it."
+
+/obj/item/clothing/head/beanie
+ name = "beanie"
+ desc = "A head-hugging brimless winter cap. This one is tight."
+ icon_state = "beanie"
+ item_state = "beanie"
+
+/obj/item/clothing/head/beanie_loose
+ name = "loose beanie"
+ desc = "A head-hugging brimless winter cap. This one is loose."
+ icon_state = "beanie_hang"
+ item_state = "beanie"
+
+//Flower crowns
+
+/obj/item/clothing/head/sunflower_crown
+ name = "sunflower crown"
+ desc = "A flower crown weaved with sunflowers."
+ icon_state = "sunflower_crown"
+ item_state = "sunflower_crown"
+ body_parts_covered = 0
+ drop_sound = 'sound/items/drop/herb.ogg'
+
+/obj/item/clothing/head/lavender_crown
+ name = "harebell crown"
+ desc = "A flower crown weaved with harebells."
+ icon_state = "lavender_crown"
+ item_state = "lavender_crown"
+ body_parts_covered = 0
+ drop_sound = 'sound/items/drop/herb.ogg'
+
+/obj/item/clothing/head/poppy_crown
+ name = "poppy crown"
+ desc = "A flower crown weaved with poppies."
+ icon_state = "poppy_crown"
+ item_state = "poppy_crown"
+ body_parts_covered = 0
+ drop_sound = 'sound/items/drop/herb.ogg'
+
+//golden beep stuff
+
+/obj/item/clothing/head/headchain
+ name = "cobalt head chains"
+ desc = "A set of luxurious chains intended to be wrapped around one's head. They don't seem particularly comfortable. They're encrusted with cobalt-blue gems, and made of REAL faux gold."
+ icon_state = "cobalt_headchains"
+ item_state = "cobalt_headchains"
+ body_parts_covered = 0
+ drop_sound = 'sound/items/drop/accessory.ogg'
+
+/obj/item/clothing/head/headchain/emerald
+ name = "emerald head chains"
+ desc = "A set of luxurious chains intended to be wrapped around one's head. They don't seem particularly comfortable. They're encrusted with emerald-green gems, and made of REAL faux gold."
+ icon_state = "emerald_headchains"
+ item_state = "emerald_headchains"
+
+/obj/item/clothing/head/headchain/ruby
+ name = "ruby head chains"
+ desc = "A set of luxurious chains intended to be wrapped around one's head. They don't seem particularly comfortable. They're encrusted with ruby-red gems, and made of REAL faux gold."
+ icon_state = "ruby_headchains"
+ item_state = "ruby_headchains"
+
+/obj/item/clothing/head/crest
+ name = "cobalt head crest"
+ desc = "A solemn crest wrapping around the back of one's head, seeming to bend in the center on multiple hinges and clip on. It's encrusted with cobalt-blue gems, and made of REAL faux gold."
+ icon_state = "cobalt_crest"
+ item_state = "cobalt_crest"
+ body_parts_covered = 0
+ drop_sound = 'sound/items/drop/accessory.ogg'
+
+/obj/item/clothing/head/crest/emerald
+ name = "emerald head crest"
+ desc = "A solemn crest wrapping around the back of one's head, seeming to bend in the center on multiple hinges and clip on. It's encrusted with emerald-green gems, and made of REAL faux gold."
+ icon_state = "emerald_crest"
+ item_state = "emerald_crest"
+
+/obj/item/clothing/head/crest/ruby
+ name = "ruby head crest"
+ desc = "A solemn crest wrapping around the back of one's head, seeming to bend in the center on multiple hinges and clip on. It's encrusted with ruby-red gems, and made of REAL faux gold."
+ icon_state = "ruby_crest"
+ item_state = "ruby_crest"
+
+
+//ipc 'pins'
+
+/obj/item/clothing/head/antenna
+ name = "curved antennae"
+ desc = "A set of decorative antennae. This particular pair is curved in the middle point, arcing upwards. Unfortunately, it doesn't get FM here."
+ icon_state = "curvedantennae"
+ item_state = "curvedantennae"
+ slot_flags = SLOT_HEAD | SLOT_EARS
+ body_parts_covered = 0
+ matter = list(DEFAULT_WALL_MATERIAL = 10)
+ drop_sound = 'sound/items/drop/scrap.ogg'
+
+/obj/item/clothing/head/antenna/straight
+ name = "straight antennae"
+ desc = "A set of decorative antennae. This particular pair is straight, jutting out to what is reasonably shoulder width. They don't seem to plug into anything."
+ icon_state = "straightantennae"
+ item_state = "straightantennae"
+
+/obj/item/clothing/head/antenna/spiked
+ name = "spiked chassis mounts"
+ desc = "Two large mounts holding up chassis protrusions on either side of the head. Careful for doorways."
+ icon_state = "horncrown"
+ item_state = "horncrown"
+
+/obj/item/clothing/head/antenna/side
+ name = "side chassis mounts"
+ desc = "Two large mounts holding up chassis protrusions on either side of the head."
+ icon_state = "tusk"
+ item_state = "tusk"
+
+/obj/item/clothing/head/antenna/dish
+ name = "head dishes"
+ desc = "Two tiny dishes intended to hold excess wiring in a very specific manner and mostly end up being used as decoration. If only they picked up holodramas."
+ icon_state = "dish"
+ item_state = "dish"
+
+/obj/item/clothing/head/antenna/double
+ name = "antenna ears"
+ desc = "Despite being commonly seen on Shells, nobody knows what these actually do."
+ icon_state = "dual_robot_antennae"
+ item_state = "dual_robot_antennae"
+
+/obj/item/clothing/head/antenna/double/left
+ name = "left antenna ear"
+ icon_state = "left_robot_antennae"
+ item_state = "left_robot_antennae"
+
+/obj/item/clothing/head/antenna/double/right
+ name = "right antenna ear"
+ icon_state = "right_robot_antennae"
+ item_state = "right_robot_antennae"
+
+/obj/item/clothing/head/fake_culthood
+ name = "occultist hood"
+ icon_state = "culthood"
+ desc = "A torn, dust-caked hood. Very authentic!"
+ flags_inv = HIDEFACE|HIDEEARS|HIDEEYES
+ body_parts_covered = HEAD|EYES
+ cold_protection = HEAD
+ min_cold_protection_temperature = SPACE_HELMET_MIN_COLD_PROTECTION_TEMPERATURE
+
+/obj/item/clothing/head/vaurca_breeder
+ name = "zo'ra representative shroud"
+ desc = "Large shroud used by Zo'ra representatives."
+ icon = 'icons/mob/species/breeder/inventory.dmi'
+ item_state = "shroud"
+ icon_state = "shroud"
+ contained_sprite = FALSE
+ species_restricted = list("Vaurca Breeder")
+ sprite_sheets = list("Vaurca Breeder" = 'icons/mob/species/breeder/head.dmi')
\ No newline at end of file
diff --git a/code/modules/clothing/shoes/vaurca.dm b/code/modules/clothing/shoes/vaurca.dm
index 04814aca01d..2b3ad567f4d 100644
--- a/code/modules/clothing/shoes/vaurca.dm
+++ b/code/modules/clothing/shoes/vaurca.dm
@@ -7,4 +7,14 @@
armor = list(melee = 10, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
body_parts_covered = FEET
species_restricted = list("Vaurca")
- contained_sprite = TRUE
\ No newline at end of file
+ contained_sprite = TRUE
+
+/obj/item/clothing/shoes/vaurca/breeder
+ name = "zo'ra representative shoes"
+ desc = "Large shoes used by Zo'ra representatives."
+ icon = 'icons/mob/species/breeder/inventory.dmi'
+ item_state = "typec_shoes"
+ icon_state = "typec_shoes"
+ contained_sprite = FALSE
+ species_restricted = list("Vaurca Breeder")
+ sprite_sheets = list("Vaurca Breeder" = 'icons/mob/species/breeder/shoes.dmi')
\ No newline at end of file
diff --git a/code/modules/clothing/spacesuits/alien.dm b/code/modules/clothing/spacesuits/alien.dm
index fdd9d015a35..c05361815e7 100644
--- a/code/modules/clothing/spacesuits/alien.dm
+++ b/code/modules/clothing/spacesuits/alien.dm
@@ -153,143 +153,3 @@
..(user)
if (magpulse)
to_chat(user, "It would be hard to take these off without relaxing your grip first.") //theoretically this message should only be seen by the wearer when the claws are equipped.)
-
-// Type C Spacesuit (vaccuum suit, low pressure armour)
-// Can't be equipped by any other species.
-
-/obj/item/clothing/suit/space/typec
- icon = 'icons/mob/species/breeder/inventory.dmi'
- name = "carapace plating"
- desc = "Form fitting and tight...but definitely not for a human form!"
- w_class = 5.0
- allowed = list(/obj/item/weapon/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword,/obj/item/weapon/handcuffs,/obj/item/weapon/tank)
- slowdown = 2
- armor = list(melee = 90, bullet = 80, laser = 75,energy = 60, bomb = 60, bio = 60, rad = 60)
- siemens_coefficient = 0
- item_state = "carapace_body"
- icon_state = "carapace_body"
- heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
- max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECTION_TEMPERATURE
- species_restricted = list("Vaurca Breeder")
- sprite_sheets = list(
- "Vaurca Breeder" = 'icons/mob/species/breeder/suit.dmi'
- )
-/obj/item/clothing/head/helmet/space/typec
- icon = 'icons/mob/species/breeder/inventory.dmi'
- name = "cranial carapace plating"
- desc = "An intimidating alien helmet that fits over the head."
- w_class = 5.0
- armor = list(melee = 80, bullet = 80, laser = 60, energy = 60, bomb = 60, bio = 60, rad = 60)
- siemens_coefficient = 0
- item_state = "carapace_head"
- icon_state = "carapace_head"
- flags = STOPPRESSUREDAMAGE
- species_restricted = list("Vaurca Breeder")
- sprite_sheets = list(
- "Vaurca Breeder" = 'icons/mob/species/breeder/head.dmi'
- )
-
-/obj/item/clothing/shoes/magboots/typec
-
- icon = 'icons/mob/species/breeder/inventory.dmi'
- desc = "A set of several heavy magboots, fitted for long, thick legs."
- name = "carapace magclaws"
- w_class = 5.0
- armor = list(melee = 60, bullet = 60, laser = 30, energy = 30, bomb = 30, bio = 30, rad = 30)
- item_state = "magboots"
- icon_state = "magboots"
-
- species_restricted = list("Vaurca Breeder","Vaurca Warform")
- sprite_sheets = list(
- "Vaurca Breeder" = 'icons/mob/species/breeder/shoes.dmi'
- )
-
- action_button_name = "Toggle the magclaws"
-
-/obj/item/clothing/shoes/magboots/typec/attack_self(mob/user)
- if(src.magpulse)
- item_flags &= ~NOSLIP
- magpulse = 0
- canremove = 1
- to_chat(user, "You relax your deathgrip on the flooring.")
- else
- //make sure these can only be used when equipped.
- if(!ishuman(user))
- return
- var/mob/living/carbon/human/H = user
- if (H.shoes != src)
- to_chat(user, "You will have to put on the [src] before you can do that.")
- return
-
-
- item_flags |= NOSLIP
- magpulse = 1
- canremove = 0 //kinda hard to take off magclaws when you are gripping them tightly.
- to_chat(user, "You dig your claws deeply into the flooring, bracing yourself.")
- to_chat(user, "It would be hard to take off the [src] without relaxing your grip first.")
-
-//In case they somehow come off while enabled.
-/obj/item/clothing/shoes/magboots/typec/dropped(mob/user as mob)
- ..()
- if(src.magpulse)
- user.visible_message("The [src] go limp as they are removed from [usr]'s feet.", "The [src] go limp as they are removed from your feet.")
- item_flags &= ~NOSLIP
- magpulse = 0
- canremove = 1
-
-/obj/item/clothing/shoes/magboots/typec/examine(mob/user)
- ..(user)
- if (magpulse)
- to_chat(user, "It would be hard to take these off without relaxing your grip first.") //theoretically this message should only be seen by the wearer when the claws are equipped.)
-
-
-//ZZODDAA
-/obj/item/clothing/gloves/yellow/typec
- icon = 'icons/mob/species/breeder/inventory.dmi'
- desc = "A set of form-fitting carapace gauntlets. They appear to be fitted with some robust hydraulics."
- name = "carapace gauntlets"
- w_class = 5.0
- icon_state = "forceglove"
- item_state = "forceglove"
- siemens_coefficient = 0
- armor = list(melee = 60, bullet = 60, laser = 30, energy = 30, bomb = 30, bio = 30, rad = 30)
- species_restricted = list("Vaurca Breeder")
- sprite_sheets = list(
- "Vaurca Breeder" = 'icons/mob/species/breeder/gloves.dmi'
- )
-
-/obj/item/clothing/mask/gas/typec
- icon = 'icons/mob/species/breeder/inventory.dmi'
- name = "carapace mask"
- desc = "A carapace gas filter designed to fit over an insectoid maw without hindering the mandibles."
- icon_state = "breath"
- item_state = "breath"
- body_parts_covered = 0
- flags_inv = null
- w_class = 5.0
- gas_transfer_coefficient = 0.01
- permeability_coefficient = 0.01
- siemens_coefficient = 0.3
- gas_filter_strength = 5 //For gas mask filters
- filtered_gases = list("nitrogen", "sleeping_agent")
- armor = list(melee = 25, bullet = 25, laser = 15, energy = 15, bomb = 15, bio = 75, rad = 50)
- species_restricted = list("Vaurca Breeder")
- sprite_sheets = list(
- "Vaurca Breeder" = 'icons/mob/species/breeder/mask.dmi'
- )
-
-obj/item/weapon/storage/backpack/typec
- icon = 'icons/mob/species/breeder/inventory.dmi'
- name = "type c wings"
- desc = "The wings of a CB Caste Vaurca. They are far too small at this stage to permit sustained periods of flight in most situations."
- icon_state = "wings"
- item_state = "wings"
- w_class = 5.0
- slot_flags = SLOT_BACK
- max_w_class = 3
- max_storage_space = 12
- canremove = 0
- species_restricted = list("Vaurca Breeder")
- sprite_sheets = list(
- "Vaurca Breeder" = 'icons/mob/species/breeder/back.dmi'
- )
diff --git a/code/modules/clothing/suits/alien.dm b/code/modules/clothing/suits/alien.dm
index 7ec18961ffb..c649f30008c 100644
--- a/code/modules/clothing/suits/alien.dm
+++ b/code/modules/clothing/suits/alien.dm
@@ -216,3 +216,13 @@
icon_state = "vacmantle"
item_state = "vacmantle"
body_parts_covered = UPPER_TORSO
+
+/obj/item/clothing/suit/vaurca/breeder
+ name = "zo'ra representative clothes"
+ desc = "A large piece of clothing used by Zo'ra representatives."
+ icon = 'icons/mob/species/breeder/inventory.dmi'
+ item_state = "representative_clothes"
+ icon_state = "representative_clothes"
+ contained_sprite = FALSE
+ species_restricted = list("Vaurca Breeder")
+ sprite_sheets = list("Vaurca Breeder" = 'icons/mob/species/breeder/suit.dmi')
\ No newline at end of file
diff --git a/code/modules/clothing/under/accessories/badges.dm b/code/modules/clothing/under/accessories/badges.dm
index 1f4689f8602..e76f6e3b46d 100644
--- a/code/modules/clothing/under/accessories/badges.dm
+++ b/code/modules/clothing/under/accessories/badges.dm
@@ -113,23 +113,23 @@
slot_flags = SLOT_TIE
/obj/item/clothing/accessory/badge/sol_visa
- name = "alliance visa"
- desc = "A compact piece of legal paperwork, permitting temporary entrance in the Sol Alliance."
+ name = "\improper ASSN visa recommendation slip"
+ desc = "A compact piece of legal paperwork that can replace the enormous amounts of documents required to obtain a Sol Alliance visa."
icon_state = "sol-visa"
slot_flags = SLOT_TIE
- badge_string = "Temporary Sol Alliance Visa"
+ badge_string = "Priority ASSN Visa Applicant"
-/obj/item/clothing/accessory/badge/ceti_visa
- name = "\improper Tau Ceti residence visa"
- desc = "A compact piece of legal paperwork, permitting temporary residence in the Republic of Biesel."
+/obj/item/clothing/accessory/badge/tcfl_papers
+ name = "\improper TCFL enlistment"
+ desc = "A compact piece of legal paperwork, making one an official recruit of the Tau Ceti Foreign Legion. Go Biesel!"
icon_state = "tc-visa"
slot_flags = SLOT_TIE
- badge_string = "Tau Ceti Temporary Residence"
+ badge_string = "Tau Ceti Foreign Legion Recruit"
/obj/item/clothing/accessory/badge/hadii_card
- name = "party member card"
- desc = "A card denoting a member of the Hadiist party."
+ name = "honorary party member card"
+ desc = "A card denoting a honorary member of the Hadiist party."
icon_state = "hadii-id"
slot_flags = SLOT_TIE
- badge_string = "Member of Party of the Free Tajara under the Leadership of Hadii"
+ badge_string = "Honorary Member of Party of the Free Tajara under the Leadership of Hadii"
diff --git a/code/modules/customitems/item_defines.dm b/code/modules/customitems/item_defines.dm
index 01955b4400a..b0c5fd728f3 100644
--- a/code/modules/customitems/item_defines.dm
+++ b/code/modules/customitems/item_defines.dm
@@ -2763,7 +2763,6 @@ All custom items with worn sprites must follow the contained sprite system: http
desc = "A holy book for followers of The Trinary Perfection."
icon = 'icons/obj/custom_items/oscar_bible.dmi'
icon_state = "oscar_bible"
- deity_name = "Trinary Perfection"
/obj/item/fluff/tokash_spear //Ancestral Spear - Suvek Tokash - evandorf
diff --git a/code/modules/library/lib_items.dm b/code/modules/library/lib_items.dm
index 46d2bd86f18..e1c435e487f 100644
--- a/code/modules/library/lib_items.dm
+++ b/code/modules/library/lib_items.dm
@@ -352,9 +352,3 @@
to_chat(user, "No associated computer found. Only local scans will function properly.")
to_chat(user, "\n")
-/obj/item/pra_manifesto
- name = "hadiist manifesto"
- desc = "A compact red book with the ideas and guidance of Hadii for the Tajaran society."
- icon = 'icons/obj/library.dmi'
- icon_state ="hadii-manifesto"
- w_class = 2.0
\ No newline at end of file
diff --git a/code/modules/library/lib_machines.dm b/code/modules/library/lib_machines.dm
index f5012c05cab..2cb923281a1 100644
--- a/code/modules/library/lib_machines.dm
+++ b/code/modules/library/lib_machines.dm
@@ -280,7 +280,6 @@ datum/borrowbook // Datum used to keep track of who has borrowed what when and f
B.icon_state = SSticker.Bible_icon_state
B.item_state = SSticker.Bible_item_state
B.name = SSticker.Bible_name
- B.deity_name = SSticker.Bible_deity_name
bibledelay = 1
spawn(60)
diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm
index a0eaec00398..d1327e4e479 100644
--- a/code/modules/mob/living/carbon/human/human_defines.dm
+++ b/code/modules/mob/living/carbon/human/human_defines.dm
@@ -41,7 +41,6 @@
var/last_chew = 0 // Used for hand chewing
// General information
- var/home_system = ""
var/citizenship = ""
var/employer_faction = ""
var/religion = ""
diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm
index 08c8740714f..ba2810d6d14 100644
--- a/code/modules/mob/living/carbon/human/species/species.dm
+++ b/code/modules/mob/living/carbon/human/species/species.dm
@@ -205,6 +205,9 @@
var/default_h_style = "Bald"
var/default_f_style = "Shaved"
+ var/list/allowed_citizenships = list(CITIZENSHIP_BIESEL, CITIZENSHIP_SOL, CITIZENSHIP_FRONTIER, CITIZENSHIP_ELYRA, CITIZENSHIP_ERIDANI, CITIZENSHIP_DOMINIA)
+ var/list/allowed_religions = list(RELIGION_NONE, RELIGION_OTHER, RELIGION_CHRISTIANITY, RELIGION_ISLAM, RELIGION_JUDAISM, RELIGION_HINDU, RELIGION_BUDDHISM, RELIGION_MOROZ, RELIGION_TRINARY)
+
/datum/species/proc/get_eyes(var/mob/living/carbon/human/H)
return
diff --git a/code/modules/mob/living/carbon/human/species/station/diona/diona.dm b/code/modules/mob/living/carbon/human/species/station/diona/diona.dm
index 224a04d0c7c..061b9909bf3 100644
--- a/code/modules/mob/living/carbon/human/species/station/diona/diona.dm
+++ b/code/modules/mob/living/carbon/human/species/station/diona/diona.dm
@@ -92,6 +92,9 @@
max_hydration_factor = -1
+ allowed_citizenships = list(CITIZENSHIP_BIESEL, CITIZENSHIP_JARGON, CITIZENSHIP_NONE)
+ allowed_religions = list(RELIGION_QEBLAK, RELIGION_WEISHII, RELIGION_NONE, RELIGION_OTHER)
+
/datum/species/diona/handle_sprint_cost(var/mob/living/carbon/H, var/cost)
var/datum/dionastats/DS = H.get_dionastats()
diff --git a/code/modules/mob/living/carbon/human/species/station/ipc/ipc.dm b/code/modules/mob/living/carbon/human/species/station/ipc/ipc.dm
index e28f0e43ce1..6f5db6db9f8 100644
--- a/code/modules/mob/living/carbon/human/species/station/ipc/ipc.dm
+++ b/code/modules/mob/living/carbon/human/species/station/ipc/ipc.dm
@@ -101,6 +101,8 @@
max_hydration_factor = -1
+ allowed_citizenships = list(CITIZENSHIP_NONE, CITIZENSHIP_BIESEL, CITIZENSHIP_FRONTIER, CITIZENSHIP_ERIDANI)
+
// Special snowflake machine vars.
var/sprint_temperature_factor = 1.15
var/sprint_charge_factor = 0.65
diff --git a/code/modules/mob/living/carbon/human/species/station/skrell/skrell.dm b/code/modules/mob/living/carbon/human/species/station/skrell/skrell.dm
index b28a3c3973f..c545e9552bf 100644
--- a/code/modules/mob/living/carbon/human/species/station/skrell/skrell.dm
+++ b/code/modules/mob/living/carbon/human/species/station/skrell/skrell.dm
@@ -59,5 +59,8 @@
default_h_style = "Skrell Short Tentacles"
+ allowed_citizenships = list(CITIZENSHIP_JARGON, CITIZENSHIP_BIESEL, CITIZENSHIP_SOL, CITIZENSHIP_FRONTIER, CITIZENSHIP_ELYRA, CITIZENSHIP_ERIDANI, CITIZENSHIP_DOMINIA)
+ allowed_religions = list(RELIGION_QEBLAK, RELIGION_WEISHII, RELIGION_NONE, RELIGION_OTHER, RELIGION_CHRISTIANITY, RELIGION_ISLAM, RELIGION_MOROZ)
+
/datum/species/skrell/can_breathe_water()
return TRUE
diff --git a/code/modules/mob/living/carbon/human/species/station/tajara/tajara.dm b/code/modules/mob/living/carbon/human/species/station/tajara/tajara.dm
index 946314413b3..2485c198f3b 100644
--- a/code/modules/mob/living/carbon/human/species/station/tajara/tajara.dm
+++ b/code/modules/mob/living/carbon/human/species/station/tajara/tajara.dm
@@ -67,6 +67,9 @@
default_h_style = "Tajaran Ears"
+ allowed_citizenships = list(CITIZENSHIP_PRA, CITIZENSHIP_BIESEL, CITIZENSHIP_FRONTIER, CITIZENSHIP_ELYRA, CITIZENSHIP_ERIDANI, CITIZENSHIP_DOMINIA)
+ allowed_religions = list(RELIGION_TWINSUNS, RELIGION_MATAKE, RELIGION_RASKARA, RELIGION_NONE, RELIGION_OTHER, RELIGION_CHRISTIANITY, RELIGION_ISLAM, RELIGION_MOROZ)
+
/datum/species/tajaran/before_equip(var/mob/living/carbon/human/H)
. = ..()
var/obj/item/clothing/shoes/sandal/S = new /obj/item/clothing/shoes/sandal(H)
diff --git a/code/modules/mob/living/carbon/human/species/station/unathi/unathi.dm b/code/modules/mob/living/carbon/human/species/station/unathi/unathi.dm
index 34545daef7b..c2383407533 100644
--- a/code/modules/mob/living/carbon/human/species/station/unathi/unathi.dm
+++ b/code/modules/mob/living/carbon/human/species/station/unathi/unathi.dm
@@ -84,6 +84,9 @@
move_trail = /obj/effect/decal/cleanable/blood/tracks/claw
+ allowed_citizenships = list(CITIZENSHIP_IZWESKI, CITIZENSHIP_DOMINIA, CITIZENSHIP_BIESEL, CITIZENSHIP_SOL, CITIZENSHIP_FRONTIER, CITIZENSHIP_ELYRA, CITIZENSHIP_ERIDANI)
+ allowed_religions = list(RELIGION_THAKH, RELIGION_SKAKH, RELIGION_AUTAKH, RELIGION_MOROZ, RELIGION_NONE, RELIGION_OTHER, RELIGION_CHRISTIANITY, RELIGION_ISLAM)
+
/datum/species/unathi/before_equip(var/mob/living/carbon/human/H)
. = ..()
var/obj/item/clothing/shoes/sandal/S = new /obj/item/clothing/shoes/sandal(H)
diff --git a/code/modules/mob/living/carbon/human/species/station/vaurca/vaurca.dm b/code/modules/mob/living/carbon/human/species/station/vaurca/vaurca.dm
index 5f9e1a5ae1d..8630c5f0a55 100644
--- a/code/modules/mob/living/carbon/human/species/station/vaurca/vaurca.dm
+++ b/code/modules/mob/living/carbon/human/species/station/vaurca/vaurca.dm
@@ -115,6 +115,9 @@
move_trail = /obj/effect/decal/cleanable/blood/tracks/claw
+ allowed_citizenships = list(CITIZENSHIP_ZORA, CITIZENSHIP_IZWESKI, CITIZENSHIP_BIESEL, CITIZENSHIP_ERIDANI)
+ allowed_religions = list(RELIGION_HIVEPANTHEON, RELIGION_PREIMMINENNCE, RELIGION_PILOTDREAM, RELIGION_NONE, RELIGION_OTHER)
+
/datum/species/bug/before_equip(var/mob/living/carbon/human/H)
. = ..()
H.gender = NEUTER
diff --git a/code/modules/mob/living/carbon/human/species/station/vaurca/vaurca_subspecies.dm b/code/modules/mob/living/carbon/human/species/station/vaurca/vaurca_subspecies.dm
index 20f4ab4d378..0722a63234c 100644
--- a/code/modules/mob/living/carbon/human/species/station/vaurca/vaurca_subspecies.dm
+++ b/code/modules/mob/living/carbon/human/species/station/vaurca/vaurca_subspecies.dm
@@ -80,6 +80,8 @@
/mob/living/carbon/human/proc/hivenet
)
+ default_h_style = "Bald"
+
/datum/species/bug/type_c/handle_post_spawn(var/mob/living/carbon/human/H)
..()
H.gender = FEMALE
@@ -155,6 +157,8 @@
"filtration bit" = /obj/item/organ/vaurca/filtrationbit
)
+ default_h_style = "Bald"
+
/datum/species/bug/type_big/handle_post_spawn(var/mob/living/carbon/human/H)
H.mutations.Add(HULK)
return ..()
\ No newline at end of file
diff --git a/html/changelogs/VTCobaltblood - applying_for_citizenship.yml b/html/changelogs/VTCobaltblood - applying_for_citizenship.yml
new file mode 100644
index 00000000000..e7b2cd92c92
--- /dev/null
+++ b/html/changelogs/VTCobaltblood - applying_for_citizenship.yml
@@ -0,0 +1,43 @@
+################################
+# Example Changelog File
+#
+# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
+#
+# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
+# When it is, any changes listed below will disappear.
+#
+# Valid Prefixes:
+# bugfix
+# wip (For works in progress)
+# tweak
+# soundadd
+# sounddel
+# rscadd (general adding of nice things)
+# rscdel (general deleting of nice things)
+# imageadd
+# imagedel
+# maptweak
+# spellcheck (typo fixes)
+# experiment
+# balance
+# admin
+# backend
+# security
+# refactor
+#################################
+
+# Your name.
+author: VTCobaltblood, Alberyk, Bygonehero
+
+# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
+delete-after: True
+
+# Any changes you've made. See valid prefix list above.
+# INDENT WITH TWO SPACES. NOT TABS. SPACES.
+# SCREW THIS UP AND IT WON'T WORK.
+# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
+# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
+changes:
+ - tweak: "Adjusted Sol Alliance representative missions, and starting item, to better suit new citizenship lore."
+ - tweak: "Changed Tau Ceti visas, and objectives related to them, to TCFL recruitment papers."
+ - rscadd: "Added a system that expands upon citizenship and religion choices on the character creation setup."
diff --git a/icons/mob/human_face/eyes48x48.dmi b/icons/mob/human_face/eyes48x48.dmi
index 3abfb52d588..e8c4c4077d3 100644
Binary files a/icons/mob/human_face/eyes48x48.dmi and b/icons/mob/human_face/eyes48x48.dmi differ
diff --git a/icons/mob/human_races/masks/blood_breeder.dmi b/icons/mob/human_races/masks/blood_breeder.dmi
index 183c34c6a3e..32788f1b847 100644
Binary files a/icons/mob/human_races/masks/blood_breeder.dmi and b/icons/mob/human_races/masks/blood_breeder.dmi differ
diff --git a/icons/mob/human_races/vaurca/r_vaurcac.dmi b/icons/mob/human_races/vaurca/r_vaurcac.dmi
index b54d049c77b..c7b39b5afc8 100644
Binary files a/icons/mob/human_races/vaurca/r_vaurcac.dmi and b/icons/mob/human_races/vaurca/r_vaurcac.dmi differ
diff --git a/icons/mob/species/breeder/back.dmi b/icons/mob/species/breeder/back.dmi
index 481538817f6..034cf1118f1 100644
Binary files a/icons/mob/species/breeder/back.dmi and b/icons/mob/species/breeder/back.dmi differ
diff --git a/icons/mob/species/breeder/gloves.dmi b/icons/mob/species/breeder/gloves.dmi
deleted file mode 100644
index a557a7e8788..00000000000
Binary files a/icons/mob/species/breeder/gloves.dmi and /dev/null differ
diff --git a/icons/mob/species/breeder/head.dmi b/icons/mob/species/breeder/head.dmi
index 3eacc877d40..3b6ca2f3d72 100644
Binary files a/icons/mob/species/breeder/head.dmi and b/icons/mob/species/breeder/head.dmi differ
diff --git a/icons/mob/species/breeder/inventory.dmi b/icons/mob/species/breeder/inventory.dmi
index 64ac9a48eb2..6911f2f607d 100644
Binary files a/icons/mob/species/breeder/inventory.dmi and b/icons/mob/species/breeder/inventory.dmi differ
diff --git a/icons/mob/species/breeder/mask.dmi b/icons/mob/species/breeder/mask.dmi
deleted file mode 100644
index 3c8279ab2ca..00000000000
Binary files a/icons/mob/species/breeder/mask.dmi and /dev/null differ
diff --git a/icons/mob/species/breeder/shoes.dmi b/icons/mob/species/breeder/shoes.dmi
index f14c440af30..37fc1bbda39 100644
Binary files a/icons/mob/species/breeder/shoes.dmi and b/icons/mob/species/breeder/shoes.dmi differ
diff --git a/icons/mob/species/breeder/suit.dmi b/icons/mob/species/breeder/suit.dmi
index 8ca8409f3a9..1126e9fc7a4 100644
Binary files a/icons/mob/species/breeder/suit.dmi and b/icons/mob/species/breeder/suit.dmi differ
diff --git a/icons/obj/library.dmi b/icons/obj/library.dmi
index ea7af851ae0..0b2b74befe4 100644
Binary files a/icons/obj/library.dmi and b/icons/obj/library.dmi differ
diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi
index 98b90edf05f..f41893f5caf 100644
Binary files a/icons/obj/storage.dmi and b/icons/obj/storage.dmi differ
diff --git a/nano/templates/uplink.tmpl b/nano/templates/uplink.tmpl
index cf0f53d8bf4..6084d8564ce 100644
--- a/nano/templates/uplink.tmpl
+++ b/nano/templates/uplink.tmpl
@@ -72,7 +72,6 @@ Used In File(s): \code\game\objects\items\devices\uplinks.dm
Species: {{:data.exploit.species}}
Age: {{:data.exploit.age}}
Rank: {{:data.exploit.rank}}
- Home System: {{:data.exploit.home_system}}
Citizenship: {{:data.exploit.citizenship}}
Faction: {{:data.exploit.faction}}
Religion: {{:data.exploit.religion}}
diff --git a/vueui/src/components/view/records/general.vue b/vueui/src/components/view/records/general.vue
index 6addd3b899e..db915ca4ee6 100644
--- a/vueui/src/components/view/records/general.vue
+++ b/vueui/src/components/view/records/general.vue
@@ -28,7 +28,6 @@
-
{{ active.ccia_record }}