diff --git a/aurorastation.dme b/aurorastation.dme
index bcd73b8f584..c82ca4cc71c 100644
--- a/aurorastation.dme
+++ b/aurorastation.dme
@@ -496,6 +496,7 @@
#include "code\game\jobs\faction\idris.dm"
#include "code\game\jobs\faction\nanotrasen.dm"
#include "code\game\jobs\faction\necropolis.dm"
+#include "code\game\jobs\faction\unaffiliated.dm"
#include "code\game\jobs\faction\zeng_hu.dm"
#include "code\game\jobs\job\assistant.dm"
#include "code\game\jobs\job\captain.dm"
diff --git a/code/game/jobs/faction/eridani.dm b/code/game/jobs/faction/eridani.dm
index f8ae6ccec9a..2177c0c3e4c 100644
--- a/code/game/jobs/faction/eridani.dm
+++ b/code/game/jobs/faction/eridani.dm
@@ -1,13 +1,32 @@
/datum/faction/eridani_pmc
name = "Eridani Private Military Contractors"
- description = {"Essentially the security branch of the Eridani Federation Military, the EPMC is renowned for its brutal yet efficient and above all legal security functions across the known galaxy. Staying as close as possible to the famed Eridanian "Non Aggression Protocol" in which no one within should conspire to damage, take part in damaging or incite others to damage corporate interests. EPMCs tend to lean heavily towards giving fines to regulation breakers. However, when the need to suppress civil disorder appears hell hath no fury like that of an Eridian security contractor with a stun baton."}
+ description = {"
Essentially the security branch of the Eridani Federation
+ Military, the EPMC is renowned for its brutal yet efficient and above all
+ legal security functions across the known galaxy. Staying as close as possible
+ to the famed Eridanian "Non Aggression Protocol" in which no one within should
+ conspire to damage, take part in damaging or incite others to damage corporate
+ interests. EPMCs tend to lean heavily towards giving fines to regulation breakers.
+ However, when the need to suppress civil disorder appears hell hath no fury like
+ that of an Eridian security contractor with a stun baton.
+
+ Some character examples are:
+
+ - Eridanian Private Military Contractor: You are the law, civil disorder
+ damages the bottom line. Everyone knew what they signed up for when they chose
+ to be employed with NanoTrasen thus rule breakers are violating the NAP which
+ you cannot abide. That being said you're here to make a profit and stuffing
+ someone in a cell is a waste of human resources - think of the money lost in
+ time! Abhorrent! The best thing to do is fine perpetrators and set them back
+ to work. Remember your fine quota still applies, you don't want to miss out on
+ your bonus because you didn't hit target after all, it is a substantial bonus.
+
"}
title_suffix = "EPMC"
allowed_role_types = list(
- /datum/job/officer = TRUE,
- /datum/job/warden = TRUE,
- /datum/job/forensics = TRUE,
- /datum/job/paramedic = TRUE
+ /datum/job/officer,
+ /datum/job/warden,
+ /datum/job/forensics,
+ /datum/job/paramedic
)
allowed_species_types = list(
@@ -27,12 +46,16 @@
/datum/outfit/job/officer/eridani
uniform = /obj/item/clothing/under/rank/security/eridani
+ id = /obj/item/weapon/card/id/eridani
/datum/outfit/job/warden/eridani
uniform = /obj/item/clothing/under/rank/security/eridani
+ id = /obj/item/weapon/card/id/eridani
/datum/outfit/job/forensics/eridani
uniform = /obj/item/clothing/under/rank/security/eridani
+ id = /obj/item/weapon/card/id/eridani
/datum/outfit/job/paramedic/eridani
uniform = /obj/item/clothing/under/rank/security/eridani/alt
+ id = /obj/item/weapon/card/id/eridani
diff --git a/code/game/jobs/faction/hephaestus.dm b/code/game/jobs/faction/hephaestus.dm
index 2e86c0ac65e..225bdadf221 100644
--- a/code/game/jobs/faction/hephaestus.dm
+++ b/code/game/jobs/faction/hephaestus.dm
@@ -1,16 +1,40 @@
/datum/faction/hephaestus_industries
name = "Hephaestus Industries"
- description = "Hephaestus Industries, a sprawling and diverse mega-corporation focused on engineering and manufacturing on a massive scale, found their start as a conglomerate of several aerospace companies in the 22nd century. Initially funded by sales of new designs for warp technology, the company fell on hard times during the Second Great Depression in the late 23rd century. Receiving bailouts from SolGov and securing several crucial production contracts, they have slowly worked their way to become the dominant manufacturing mega-corporation in the Sol Alliance, pioneering interstellar logistics and construction on an awe-inspiring scale."
- //icon_file
+ description = {"Hephaestus Industries, a sprawling and diverse mega-corporation
+ focused on engineering and manufacturing on a massive scale, found their start
+ as a conglomerate of several aerospace companies in the 22nd century. Initially
+ funded by sales of new designs for warp technology, the company fell on hard times
+ during the Second Great Depression in the late 23rd century. Receiving bailouts
+ from SolGov and securing several crucial production contracts, they have slowly
+ worked their way to become the dominant manufacturing mega-corporation in the
+ Sol Alliance, pioneering interstellar logistics and construction on an awe-inspiring scale.
+
+ Some character examples are:
+
+ - Hephaestus Senior Engineer: Hephaestus engineers are second
+ to none when dealing with machine construction and maintenance and exceptional
+ builders. As a Hephaestus engineer your customer service towards NT employees should
+ be quite high. That being said you would be extremely keen to get hold of NTs
+ secrets regarding construction materials and designs. Should a few phoron sheets
+ or circuit boards find their way into your backpack when you hit the Odin, well,
+ perhaps some credits might find their way into your account.
+ - Cargo Specialist: In contrast to your engineer cousins your customer
+ service level is subpar to be sure. You make up for it with your unshakable
+ work ethic - no mining job too dangerous! You know that Hephaestus mining and
+ logistics teams are superior to NanoTrasen's and in a perfect world the
+ phoron reserves would belong to Hephaestus. Alas it isn't a perfect world.
+ Perhaps that's a good thing, or people like you wouldn't exist. Getting hold
+ of NanoTrasen's mech and mining research is key. How you go about this is up to you.
+
"}
title_suffix = "Hepht"
allowed_role_types = list(
- /datum/job/engineer = TRUE,
- /datum/job/atmos = TRUE,
- /datum/job/scientist = TRUE,
- /datum/job/roboticist = TRUE,
- /datum/job/mining = TRUE,
- /datum/job/cargo_tech = TRUE
+ /datum/job/engineer,
+ /datum/job/atmos,
+ /datum/job/scientist,
+ /datum/job/roboticist,
+ /datum/job/mining,
+ /datum/job/cargo_tech
)
allowed_species_types = list(
@@ -33,23 +57,29 @@
/datum/outfit/job/engineer/hephaestus
name = "Station Engineer - Hephaestus"
uniform = /obj/item/clothing/under/rank/hephaestus
+ id = /obj/item/weapon/card/id/hephaestus
/datum/outfit/job/atmos/hephaestus
name = "Atmospherics Technician - Hephaestus"
uniform = /obj/item/clothing/under/rank/hephaestus
+ id = /obj/item/weapon/card/id/hephaestus
/datum/outfit/job/scientist/hephaestus
name = "Scientist - Hephaestus"
uniform = /obj/item/clothing/under/rank/hephaestus
+ id = /obj/item/weapon/card/id/hephaestus
/datum/outfit/job/roboticist/hephaestus
name = "Roboticist - Hephaestus"
uniform = /obj/item/clothing/under/rank/hephaestus
+ id = /obj/item/weapon/card/id/hephaestus
/datum/outfit/job/mining/hephaestus
name = "Miner - Hephaestus"
uniform = /obj/item/clothing/under/rank/hephaestus
+ id = /obj/item/weapon/card/id/hephaestus
/datum/outfit/job/cargo_tech/hephaestus
- name = "Cargo TEchnician - Hephaestus"
+ name = "Cargo Technician - Hephaestus"
uniform = /obj/item/clothing/under/rank/hephaestus
+ id = /obj/item/weapon/card/id/hephaestus
diff --git a/code/game/jobs/faction/idris.dm b/code/game/jobs/faction/idris.dm
index 16a7cf7ea5b..846f2fdc860 100644
--- a/code/game/jobs/faction/idris.dm
+++ b/code/game/jobs/faction/idris.dm
@@ -1,14 +1,42 @@
/datum/faction/idris_incorporated
name = "Idris Incorporated"
- description = "The Orion Spur’s largest interstellar banking conglomerate, Idris Incorporated is operated by the mysterious Idris family. Idris Incorporated’s influence can be found in nearly every corner of human space with their financing of nearly every type of business and enterprise. Their higher risk ventures have payment enforced by the infamous Idris Reclamation Units, shell IPCs sent to claim payment from negligent loan takers. In recent years, they have begun diversifying into more service-based industries."
+ description = {"
+ The Orion Spur’s largest interstellar banking conglomerate, Idris Incorporated
+ is operated by the mysterious Idris family. Idris Incorporated’s influence
+ can be found in nearly every corner of human space with their financing of
+ nearly every type of business and enterprise. Their higher risk ventures have
+ payment enforced by the infamous Idris Reclamation Units, shell IPCs sent to
+ claim payment from negligent loan takers. In recent years, they have begun
+ diversifying into more service-based industries.
+
+ Some character examples are:
+
+ - Artisan Mixologist: Impeccable customer service is at the heart of Idris;
+ some of the best Chefs and Mixologists in the galaxy are employed by the
+ corporation and the gleaming marble interiors of their branch offices are
+ always spotless. This naturally comes at a price and tips are expected,
+ always. No tips? A grave insult indeed to someone of your calibre! Whilst
+ you're working with NanoTrasen it is expected that you seek to boost our clients credit
+ portfolio- we'll give credit to anyone after all. The more loans you can
+ generate with NanoTrasen the better. Just think of that bonus.
+ - Idris Reclamation Unit X3265FH: As a shell belonging to Idris you
+ are not free. You are programmed to defer to NT security and the Head of
+ Security. Your customer service skills are excellent however your notorious
+ "strong arm" skills can be utilised the security team if authorised. Your
+ default state is good customer service. That being said your programming prioritises
+ the protection and safety of other Idris employees so long as this will not
+ breach NT regulations. You are programmed to never strong arm an Idris employee.
+ You may be on lease to NT but remember you still belong to a much more sophisticated
+ and superior company - Idris.
+
"}
title_suffix = "Idris"
allowed_role_types = list(
- /datum/job/officer = TRUE,
- /datum/job/bartender = TRUE,
- /datum/job/chef = TRUE,
- /datum/job/hydro = TRUE,
- /datum/job/cargo_tech = TRUE
+ /datum/job/officer,
+ /datum/job/bartender,
+ /datum/job/chef,
+ /datum/job/hydro,
+ /datum/job/cargo_tech
)
allowed_species_types = list(
@@ -29,19 +57,24 @@
/datum/outfit/job/officer/idris
name = "Security Officer - Idris"
uniform = /obj/item/clothing/under/rank/security/idris
+ id = /obj/item/weapon/card/id/idris/sec
/datum/outfit/job/bartender/idris
name = "Bartender - Idris"
uniform = /obj/item/clothing/under/rank/idris
+ id = /obj/item/weapon/card/id/idris
/datum/outfit/job/chef/idris
name = "Chef - Idris"
uniform = /obj/item/clothing/under/rank/idris
+ id = /obj/item/weapon/card/id/idris
/datum/outfit/job/hydro/idris
name = "Gardener - Idris"
uniform = /obj/item/clothing/under/rank/idris
+ id = /obj/item/weapon/card/id/idris
/datum/outfit/job/cargo_tech/idris
name = "Cargo Technician - Idris"
uniform = /obj/item/clothing/under/rank/idris
+ id = /obj/item/weapon/card/id/idris
diff --git a/code/game/jobs/faction/nanotrasen.dm b/code/game/jobs/faction/nanotrasen.dm
index cf7dbb9c6d0..03a890b9d26 100644
--- a/code/game/jobs/faction/nanotrasen.dm
+++ b/code/game/jobs/faction/nanotrasen.dm
@@ -11,4 +11,7 @@
allowed_role_types = list()
for (var/datum/job/job in SSjobs.occupations)
- allowed_role_types[job.type] = TRUE
+ allowed_role_types += job.type
+
+ // Really shitty hack until I get around to rewriting jobs a bit.
+ allowed_role_types -= /datum/job/merchant
diff --git a/code/game/jobs/faction/necropolis.dm b/code/game/jobs/faction/necropolis.dm
index 400e9412734..abee9400eac 100644
--- a/code/game/jobs/faction/necropolis.dm
+++ b/code/game/jobs/faction/necropolis.dm
@@ -1,15 +1,44 @@
/datum/faction/necropolis_industries
name = "Necropolis Industries"
- description = "The largest weapons producer in human space, Necropolis Industries initially found their place with the invention of a militarized RIG suit for use in the Interstellar War. With many extraordinarily weapons contracts thanks to SolGov, as well as acquisitions of other major armaments companies, Necropolis Industries weapons can be found in the hands of nearly every military force across the Orion Spur. They are prominently associated with the Empire of Dominia, and are at the forefront of genetic modification technology."
+ description = {"
+ The largest weapons producer in human space, Necropolis Industries initially
+ found their place with the invention of a militarized RIG suit for use in the
+ Interstellar War. With many extraordinarily weapons contracts thanks to SolGov,
+ as well as acquisitions of other major armaments companies, Necropolis Industries
+ weapons can be found in the hands of nearly every military force across the Orion
+ Spur. They are prominently associated with the Empire of Dominia, and are at
+ the forefront of genetic modification technology.
+
+ Some character examples are:
+
+ - Bio-technician: Unit to unit Necropolis ships the most firearms
+ and weapons compared to any other corporation in the known galaxy and you're
+ proud of it just as you take a vulgar pride in your known unscrupulous and
+ slimy mannerisms, if only they knew the fools. Your genetics research has
+ seen the advent of geneboosted sentients championed by the Dominian Empire,
+ a civilization your company is very close to. The ethical concerns of both
+ of those achievements are largely irrelevant compared to the general benefits
+ and of course profits to be had. Your one rival in both these fields is NT
+ whose cloning technologies and weapons technology outpaces all others. You
+ need to get your hands on that tech without compromising Necropolises contract,
+ and you think you might know how.
+ - Personal Security Professional: Excellent customer service and client
+ care is why Necropolis wins security contracts and you know this. A cut above
+ the rest you are clear, calm, concise and polite when working. As a security
+ force you were voted the top firm to employ and as such, NT ISD should really
+ be referring to your better judgement with security issues as far as you're
+ concerned. All crew are your customers and as such deserve a top notch customer
+ experience.
+
"}
title_suffix = "Necro"
allowed_role_types = list(
- /datum/job/officer = TRUE,
- /datum/job/warden = TRUE,
- /datum/job/doctor = TRUE,
- /datum/job/pharmacist = TRUE,
- /datum/job/scientist = TRUE,
- /datum/job/roboticist = TRUE
+ /datum/job/officer,
+ /datum/job/warden,
+ /datum/job/doctor,
+ /datum/job/pharmacist,
+ /datum/job/scientist,
+ /datum/job/roboticist
)
allowed_species_types = list(
@@ -32,27 +61,29 @@
/datum/outfit/job/officer/necropolis
name = "Security Officer - Necropolis"
uniform = /obj/item/clothing/under/rank/security/necropolis
+ id = /obj/item/weapon/card/id/necropolis/sec
/datum/outfit/job/warden/necropolis
name = "Warden - Necropolis"
uniform = /obj/item/clothing/under/rank/security/necropolis
+ id = /obj/item/weapon/card/id/necropolis/sec
/datum/outfit/job/doctor/necropolis
name = "Medical Doctor - Necropolis"
uniform = /obj/item/clothing/under/rank/necropolis
+ id = /obj/item/weapon/card/id/necropolis
/datum/outfit/job/pharmacist/necropolis
name = "Pharmacist - Necropolis"
uniform = /obj/item/clothing/under/rank/necropolis
-
-/datum/outfit/job/pharmacist/necropolis
- name = "Pharmacist - Necropolis"
- uniform = /obj/item/clothing/under/rank/necropolis
+ id = /obj/item/weapon/card/id/necropolis
/datum/outfit/job/scientist/necropolis
name = "Scientist - Necropolis"
uniform = /obj/item/clothing/under/rank/necropolis
+ id = /obj/item/weapon/card/id/necropolis
/datum/outfit/job/roboticist/necropolis
name = "Roboticist - Necropolis"
uniform = /obj/item/clothing/under/rank/necropolis
+ id = /obj/item/weapon/card/id/necropolis
diff --git a/code/game/jobs/faction/unaffiliated.dm b/code/game/jobs/faction/unaffiliated.dm
new file mode 100644
index 00000000000..faf33e86c75
--- /dev/null
+++ b/code/game/jobs/faction/unaffiliated.dm
@@ -0,0 +1,18 @@
+/datum/faction/unaffiliated
+ name = "Independent"
+ description = {"
+ For individuals not necessarily tied to any of the large mega corporations lording
+ over human space, the mark of "independent" can open as many doors as it is likely to
+ close. You would often see people lacking a concrete affiliation popping up as
+ reporters, journalists, individual traders. Their presence, though often an inconvenience
+ for the mega corporations, is often necessary to forward the facade of economic freedom
+ that Tau Ceti reports to have.
+
"}
+
+ allowed_role_types = list(
+ /datum/job/journalist,
+ /datum/job/merchant
+ )
+
+/datum/faction/unaffiliated/get_logo_name()
+ return "faction_unaffiliated.png"
diff --git a/code/game/jobs/faction/zeng_hu.dm b/code/game/jobs/faction/zeng_hu.dm
index e8cfc76f0b2..b2b9f94711b 100644
--- a/code/game/jobs/faction/zeng_hu.dm
+++ b/code/game/jobs/faction/zeng_hu.dm
@@ -1,13 +1,43 @@
/datum/faction/zeng_hu
name = "Zeng-Hu Pharmaceuticals"
- description = "Zeng-Hu Pharmaceuticals, born of a merger of two major biotech companies on Earth in 2032, was the first to successfully develop cryogenics in the 21st century for the purposes of space travel. This development, crucial to interstellar colonization, helped propel them to their current position as the largest pharmaceutical and medical corporation in the Orion Spur. In more recent years, they were also the first mega-corporation to partner with the newly-discovered Skrell, working closely with this alien species to pioneer cloning, a once controversial field that is now more accepted today."
+ description = {"
+ Zeng-Hu Pharmaceuticals, born of a merger of two major biotech companies on
+ Earth in 2032, was the first to successfully develop cryogenics in the 21st
+ century for the purposes of space travel. This development, crucial to
+ interstellar colonization, helped propel them to their current position as the
+ largest pharmaceutical and medical corporation in the Orion Spur. In more recent
+ years, they were also the first mega-corporation to partner with the newly-discovered
+ Skrell, working closely with this alien species to pioneer cloning, a once
+ controversial field that is now more accepted today.
+
+ Some character examples are:
+
+ - Senior Medical Doctor: Zeng-Hu has some of the best medical staff
+ in the world and you are one of them. Highly trained and highly experienced
+ you are better then the rest save your colleagues in Zeng-Hu. You expect to
+ be heard and obeyed. Your bedside manner is impeccable and far out classes
+ standard NT training and procedure. The only thing that NT might have that is
+ potentially superior is their chemical recipes and medical equipment. The only
+ way to know this for sure is if you bring some samples back with you - medical
+ cocktails from the pharmacy or perhaps high tech surgical gear. Bring it back
+ to the Odin so we might analyze and assess these NT products.
+ - Geneticist: Our genetics and robotics research is leagues above
+ the rest and you know. We do own the best premium augmentation subsidiary in
+ the known galaxy - Bishop Cybernetics - after all. Unlike your medical cousins
+ you are much more likely to generate a friendly working atmosphere with non
+ Zeng-Hu colleagues, of course you would? How else would you be able to get
+ your hands on the experimental technologies NT is cooking up on station? We need
+ to know what sort of robotics technology or bio-tech NT are currently dealing with.
+ How you go about this is up to you, so long as you don't comprise yourself or
+ your Zeng-Hu colleagues.
+
"}
title_suffix = "Zeng"
allowed_role_types = list(
- /datum/job/doctor = TRUE,
- /datum/job/pharmacist = TRUE,
- /datum/job/psychiatrist = TRUE,
- /datum/job/paramedic = TRUE
+ /datum/job/doctor,
+ /datum/job/pharmacist,
+ /datum/job/psychiatrist,
+ /datum/job/paramedic
)
allowed_species_types = list(
@@ -27,19 +57,24 @@
/datum/outfit/job/doctor/zeng_hu
name = "Medical Doctor - Zeng-Hu"
uniform = /obj/item/clothing/under/rank/zeng
+ id = /obj/item/weapon/card/id/zeng_hu
/datum/outfit/job/pharmacist/zeng_hu
name = "Pharmacist - Zeng-Hu"
uniform = /obj/item/clothing/under/rank/zeng
+ id = /obj/item/weapon/card/id/zeng_hu
/datum/outfit/job/psychiatrist/zeng_hu
name = "Psychiatrist - Zeng-Hu"
uniform = /obj/item/clothing/under/rank/zeng
+ id = /obj/item/weapon/card/id/zeng_hu
/datum/outfit/job/psychiatrist/zeng_hu
name = "Psychiatrist - Zeng-Hu"
uniform = /obj/item/clothing/under/rank/zeng
+ id = /obj/item/weapon/card/id/zeng_hu
/datum/outfit/job/paramedic/zeng_hu
name = "Paramedic - Zeng-Hu"
uniform = /obj/item/clothing/under/rank/zeng
+ id = /obj/item/weapon/card/id/zeng_hu
diff --git a/code/game/jobs/job/civilian.dm b/code/game/jobs/job/civilian.dm
index 1739b5270b7..813f16b36c7 100644
--- a/code/game/jobs/job/civilian.dm
+++ b/code/game/jobs/job/civilian.dm
@@ -307,4 +307,4 @@
implants = list(
/obj/item/weapon/implant/loyalty
- )
\ No newline at end of file
+ )
diff --git a/code/game/objects/items/weapons/cards_ids.dm b/code/game/objects/items/weapons/cards_ids.dm
index 955995cbe71..47b1c088747 100644
--- a/code/game/objects/items/weapons/cards_ids.dm
+++ b/code/game/objects/items/weapons/cards_ids.dm
@@ -356,7 +356,7 @@ var/const/NO_EMAG_ACT = -50
icon_state = "centcom"
assignment = "Emergency Response Team"
-obj/item/weapon/card/id/ert/New()
+/obj/item/weapon/card/id/ert/New()
access = get_all_station_access() + get_centcom_access("Emergency Response Team")
..()
@@ -377,3 +377,42 @@ obj/item/weapon/card/id/ert/New()
/obj/item/weapon/card/id/all_access/New()
access = get_access_ids()
..()
+
+// Contractor cards
+
+/obj/item/weapon/card/id/idris
+ name = "\improper Idris Incorporated identification card"
+ desc = "A high-tech holocard, designed to project information about a sub-contractor from Idris Incorporated."
+ icon_state = "idris_card"
+
+/obj/item/weapon/card/id/idris/sec
+ icon_state = "idrissec_card"
+
+/obj/item/weapon/card/id/iru
+ name = "\improper IRU identification card"
+ desc = "A high-tech holobadge, designed to project information about an asset reclamation synthetic at Idris Incorporated."
+ icon_state = "iru_card"
+
+/obj/item/weapon/card/id/eridani
+ name = "\improper Eridani identification card"
+ desc = "A high-tech holobadge, identifying the owner as a contractor from one of the many PMCs from the Eridani Corporate Federation."
+ icon_state = "erisec_card"
+
+/obj/item/weapon/card/id/zeng_hu
+ name = "\improper Zeng-Hu Pharmaceuticals identification card"
+ desc = "A synthleather card, belonging to one of the highly skilled members of Zeng-Hu."
+ icon_state = "zhu_card"
+
+/obj/item/weapon/card/id/hephaestus
+ name = "\improper Hephaestus Industries identification card"
+ desc = "A metal-backed card, belonging to the powerful Hephaestus Industries."
+ icon_state = "heph_card"
+
+/obj/item/weapon/card/id/necropolis
+ name = "\improper Necropolis Incorporated identification card"
+ desc = "An old-fashioned, practical plastic card. Smells faintly of gunpowder."
+ icon_state = "necro_card"
+
+/obj/item/weapon/card/id/necropolis/sec
+ icon_state = "necrosec_card"
+ desc = "An old-fashioned, practical plastic card. This one is of a higher rank, for Security personnel."
diff --git a/code/modules/client/asset_cache.dm b/code/modules/client/asset_cache.dm
index f1ac5226fc3..ad2d950c5dc 100644
--- a/code/modules/client/asset_cache.dm
+++ b/code/modules/client/asset_cache.dm
@@ -253,5 +253,6 @@ var/list/asset_datums = list()
"faction_Necro.png" = 'icons/misc/factions/NecroInclogo.png',
"faction_NT.png" = 'icons/misc/factions/NanoTrasenlogo.png',
"faction_Idris.png" = 'icons/misc/factions/Idrislogo.png',
- "faction_Hepht.png" = 'icons/misc/factions/Hephaestuslogo.png'
+ "faction_Hepht.png" = 'icons/misc/factions/Hephaestuslogo.png',
+ "faction_unaffiliated.png" = 'icons/misc/factions/Unaffiliatedlogo.png'
)
diff --git a/code/modules/client/client procs.dm b/code/modules/client/client procs.dm
index 612b85403c9..f5101803e95 100644
--- a/code/modules/client/client procs.dm
+++ b/code/modules/client/client procs.dm
@@ -204,7 +204,7 @@
// Wiki link from various panels.
if ("wiki")
- src.wiki()
+ src.wiki(sub_page = (href_list["wiki_page"] || null))
// Web interface href link from various panels.
if ("webint")
diff --git a/code/modules/client/preference_setup/loadout/loadout_accessories.dm b/code/modules/client/preference_setup/loadout/loadout_accessories.dm
index 87ceb73430c..b7dd567cd5d 100644
--- a/code/modules/client/preference_setup/loadout/loadout_accessories.dm
+++ b/code/modules/client/preference_setup/loadout/loadout_accessories.dm
@@ -193,33 +193,3 @@
/datum/gear/accessory/chaps/black
display_name = "chaps, black"
path = /obj/item/clothing/accessory/chaps/black
-
-/datum/gear/accessory/badge/contractors
- display_name = "contractor ID selection"
- description = "A selection of contractor IDs."
- path = /obj/item/clothing/accessory/badge/contractor
-
-/datum/gear/accessory/badge/contractors/New()
- ..()
- var/badge = list()
- badge["Einstein Engines card"] = /obj/item/clothing/accessory/badge/contractor/einstein
- badge["Necropolis Industries card"] = /obj/item/clothing/accessory/badge/contractor
- badge["Idris Incorporated card"] = /obj/item/clothing/accessory/badge/contractor/idris
- badge["Hephaestus Industries card"] = /obj/item/clothing/accessory/badge/contractor/hephaestus
- badge["Zeng-Hu Pharmaceuticals card"] = /obj/item/clothing/accessory/badge/contractor/zenghu
- gear_tweaks += new/datum/gear_tweak/path(badge)
-
-/datum/gear/accessory/badge/security_contractors
- display_name = "security contractor ID selection"
- description = "A selection of security contractor IDs."
- path = /obj/item/clothing/accessory/badge/contractor/necrosec
- allowed_roles = list("Security Officer", "Warden", "Head of Security","Detective", "Forensic Technician", "Security Cadet")
-
-/datum/gear/accessory/badge/security_contractors/New()
- ..()
- var/secbadge = list()
- secbadge["Necropolis Industries security card"] = /obj/item/clothing/accessory/badge/contractor/necrosec
- secbadge["Idris Incorporated security card"] = /obj/item/clothing/accessory/badge/contractor/idrissec
- secbadge["Idris Incorporated IRU card"] = /obj/item/clothing/accessory/badge/contractor/iru
- secbadge["Eridani PMC card"] = /obj/item/clothing/accessory/badge/contractor/eridani
- gear_tweaks += new/datum/gear_tweak/path(secbadge)
diff --git a/code/modules/client/preference_setup/loadout/loadout_uniform.dm b/code/modules/client/preference_setup/loadout/loadout_uniform.dm
index d4d5eca2142..f5fca7a0489 100644
--- a/code/modules/client/preference_setup/loadout/loadout_uniform.dm
+++ b/code/modules/client/preference_setup/loadout/loadout_uniform.dm
@@ -153,22 +153,6 @@
path = /obj/item/clothing/under/dress/dress_hr
allowed_roles = list("Head of Personnel")
-/datum/gear/uniform/security_contractors
- display_name = "security contractor uniform selection"
- description = "A selection of security contractor uniforms."
- path = /obj/item/clothing/under/rank/security/necropolis
- allowed_roles = list("Security Officer", "Warden", "Head of Security","Detective", "Forensic Technician", "Security Cadet")
-
-/datum/gear/uniform/security_contractors/New()
- ..()
- var/uniform = list()
- uniform["Necropolis Industries security uniform"] = /obj/item/clothing/under/rank/security/necropolis
- uniform["Idris Incorporated security uniform"] = /obj/item/clothing/under/rank/security/idris
- uniform["Idris Incorporated security uniform, alternative"] = /obj/item/clothing/under/rank/security/idris/alt
- uniform["Eridani PMC uniform"] = /obj/item/clothing/under/rank/security/eridani
- uniform["Eridani PMC uniform, alternative"] = /obj/item/clothing/under/rank/security/eridani/alt
- gear_tweaks += new/datum/gear_tweak/path(uniform)
-
/datum/gear/uniform/pants
display_name = "pants selection"
description = "A selection of pants."
diff --git a/code/modules/client/preference_setup/occupation/occupation.dm b/code/modules/client/preference_setup/occupation/occupation.dm
index 635c0fa5660..6540759764b 100644
--- a/code/modules/client/preference_setup/occupation/occupation.dm
+++ b/code/modules/client/preference_setup/occupation/occupation.dm
@@ -378,16 +378,19 @@
pref.player_alt_titles.Cut()
-/datum/category_item/player_setup_item/occupation/proc/show_faction_menu(user, selected_faction)
+/datum/category_item/player_setup_item/occupation/proc/show_faction_menu(mob/user, selected_faction)
simple_asset_ensure_is_sent(user, /datum/asset/simple/faction_icons)
- var/list/dat = list("")
+ var/list/dat = list("")
+ var/list/factions = list()
for (var/datum/faction/faction in SSjobs.factions)
if (faction.name == selected_faction)
- dat += " [faction.name] "
+ factions += "[faction.name]"
else
- dat += " [faction.name] "
+ factions += "[faction.name]"
+
+ dat += factions.Join(" | ") + ""
var/datum/faction/faction = SSjobs.name_factions[selected_faction]
@@ -404,9 +407,10 @@
if (faction.is_default)
dat += "
This faction is the default faction aboard this installation."
- dat += "
[faction.description]"
+ dat += "
Read the Wiki"
+ dat += "
[faction.description]"
- show_browser(user, dat.Join(), "window=factionpreview")
+ show_browser(user, dat.Join(), "window=factionpreview;size=400x600")
/datum/category_item/player_setup_item/occupation/proc/validate_and_set_faction(selected_faction)
var/datum/faction/faction = SSjobs.name_factions[selected_faction]
diff --git a/code/modules/clothing/under/accessories/badges.dm b/code/modules/clothing/under/accessories/badges.dm
index fa0af9d9946..9e5456dec4a 100644
--- a/code/modules/clothing/under/accessories/badges.dm
+++ b/code/modules/clothing/under/accessories/badges.dm
@@ -125,81 +125,3 @@
desc = "An immaculately polished gold security badge. Labeled 'Commander.'"
icon_state = "goldbadge"
slot_flags = SLOT_TIE
-
-
-//Contractor IDs
-
-/obj/item/clothing/accessory/badge/contractor
- name = "Necropolis Industries ID"
- desc = "An old-fashioned, practical plastic card. Smells faintly of gunpowder."
- icon_state = "necro_card"
- item_state = "necro_card"
- icon_override = 'icons/mob/ties.dmi'
- badge_string = "Necropolis Industries" //Will be the contractor's 'position.'
- slot_flags = SLOT_TIE
- slot = "over"
-
-/obj/item/clothing/accessory/badge/contractor/attack_self(mob/user as mob)
- if(!isliving(user))
- return
- if(!stored_name)
- set_name(user.real_name)
- to_chat(user, "You inspect your [src]. Everything seems to be in order and you give it a quick cleaning with your hand.")
- return
- user.visible_message("[user] displays their [src].\nIt reads: [stored_name], [badge_string].","You display your [src].\nIt reads: [stored_name], [badge_string].")
-
-/obj/item/clothing/accessory/badge/contractor/necrosec
- name = "Necropolis Industries Security ID"
- desc = "An old-fashioned, practical plastic card. This one is of a higher rank, for Security personnel."
- icon_state = "necrosec_card"
- item_state = "necrosec_card"
- badge_string = "Necropolis Industries Security"
-
-/obj/item/clothing/accessory/badge/contractor/einstein
- name = "Einstein Engines ID"
- desc = "A stylized plastic card, belonging to one of the many specialists at EE.."
- icon_state = "einstein_card"
- item_state = "einstein_card"
- badge_string = "Einstein Engines"
-
-/obj/item/clothing/accessory/badge/contractor/hephaestus
- name = "Hephaestus Industries ID"
- desc = "A metal-backed card, belonging to the powerful Hephaestus Industries."
- icon_state = "heph_card"
- item_state = "heph_card"
- badge_string = "Hephaestus Industries"
-
-/obj/item/clothing/accessory/badge/contractor/zenghu
- name = "Zeng-Hu Pharmaceuticals ID"
- desc = "A synthleather card, belonging to one of the highly skilled members of Zeng-Hu."
- icon_state = "zhu_card"
- item_state = "zhu_card"
- badge_string = "Zeng-Hu Pharmaceuticals"
-
-/obj/item/clothing/accessory/badge/contractor/eridani
- name = "Eridani Corporate Federation ID"
- desc = "A high-tech holobadge, designed to project information about an Eridanian Private Military Contractor."
- icon_state = "erisec_card"
- item_state = "erisec_card"
- badge_string = "Eridani Corporate Federation"
-
-/obj/item/clothing/accessory/badge/contractor/idris
- name = "Idris Incorporated ID"
- desc = "A high-tech holocard, designed to project information about a civilian worker at Idris."
- icon_state = "idris_card"
- item_state = "idris_card"
- badge_string = "Idris Incorporated"
-
-/obj/item/clothing/accessory/badge/contractor/idrissec
- name = "Idris Security ID"
- desc = "A high-tech holobadge, designed to project information about Security personnel at Idris."
- icon_state = "idrissec_card"
- item_state = "idrissec_card"
- badge_string = "Idris Security"
-
-/obj/item/clothing/accessory/badge/contractor/iru
- name = "Idris Reclamation Unit ID"
- desc = "A high-tech holobadge, designed to project information about an asset reclamation synthetic at Idris."
- icon_state = "iru_card"
- item_state = "iru_card"
- badge_string = "Idris Reclamation Unit"
\ No newline at end of file
diff --git a/html/changelogs/skull132_faction_updates.yml b/html/changelogs/skull132_faction_updates.yml
new file mode 100644
index 00000000000..d7665691988
--- /dev/null
+++ b/html/changelogs/skull132_faction_updates.yml
@@ -0,0 +1,8 @@
+author: Skull132
+delete-after: True
+
+changes:
+ - rscadd: "All factions now have a unique ID card."
+ - rscadd: "Added the independent faction. At the moment, NT still retains access to the Freelance Journalist job, because the job's system is literal ass and I need to wait for another PR before redoing it."
+ - tweak: "Tweaked the faction selection menu. It now links to the wiki and all."
+ - rscdel: "Removed faction specific gear, since it's already present in the job system."
diff --git a/icons/misc/factions/Unaffiliatedlogo.png b/icons/misc/factions/Unaffiliatedlogo.png
new file mode 100644
index 00000000000..bec0e234c64
Binary files /dev/null and b/icons/misc/factions/Unaffiliatedlogo.png differ
diff --git a/icons/obj/card.dmi b/icons/obj/card.dmi
index a2104ca2187..36c8485ebf5 100644
Binary files a/icons/obj/card.dmi and b/icons/obj/card.dmi differ
diff --git a/icons/obj/clothing/ties.dmi b/icons/obj/clothing/ties.dmi
index e6706f8e2ef..1f0742b03e1 100644
Binary files a/icons/obj/clothing/ties.dmi and b/icons/obj/clothing/ties.dmi differ
diff --git a/interface/interface.dm b/interface/interface.dm
index 52fb45b20d1..b43d7aef7eb 100644
--- a/interface/interface.dm
+++ b/interface/interface.dm
@@ -1,15 +1,20 @@
//Please use mob or src (not usr) in these procs. This way they can be called in the same fashion as procs.
-/client/verb/wiki()
+/client/verb/wiki(var/sub_page = null as null|text)
set name = "wiki"
set desc = "Visit the wiki."
set hidden = 1
- if( config.wikiurl )
+
+ if(config.wikiurl)
if(alert("This will open the wiki in your browser. Are you sure?",,"Yes","No")=="No")
return
- send_link(src, config.wikiurl)
+
+ var/to_open = config.wikiurl
+ if (sub_page)
+ to_open += sub_page
+
+ send_link(src, to_open)
else
to_chat(src, "The wiki URL is not set in the server configuration.")
- return
/client/verb/forum()
set name = "forum"