diff --git a/_maps/configs/independent_beluga.json b/_maps/configs/independent_beluga.json index 0449bc3a8cae..50f0591a41e9 100644 --- a/_maps/configs/independent_beluga.json +++ b/_maps/configs/independent_beluga.json @@ -1,8 +1,12 @@ { "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", "map_name": "Beluga-class Transport", + "faction": "/datum/faction/independent", "prefix": "SV", - "namelists": ["CRUISE", "NATURAL"], + "namelists": [ + "CRUISE", + "NATURAL" + ], "map_short_name": "Beluga-class", "map_path": "_maps/shuttles/independent/independent_beluga.dmm", "description": "The Beluga-Class is a transport vessel for those with especially rich blood. Featuring a modest kitchen, hired Inteq security, and luxurious decoration, the Beluga is a first choice pick for many wealthy spacers trying to get from point A to B. The independent ship features several rooms for its guests and a well furnished meeting room for any corporate occassion.", diff --git a/_maps/configs/independent_box.json b/_maps/configs/independent_box.json index 14133f03f5bb..c944f29fc54b 100644 --- a/_maps/configs/independent_box.json +++ b/_maps/configs/independent_box.json @@ -12,6 +12,7 @@ "SPACE", "NATURAL" ], + "faction": "/datum/faction/independent", "prefix": "IMV", "job_slots": { "Chief Medical Officer": { diff --git a/_maps/configs/independent_bubble.json b/_maps/configs/independent_bubble.json index f63aca854e8b..33a8cf8c1815 100644 --- a/_maps/configs/independent_bubble.json +++ b/_maps/configs/independent_bubble.json @@ -12,6 +12,7 @@ "GENERAL", "SPACE" ], + "faction": "/datum/faction/independent", "prefix": "ISV", "limit": 1, "job_slots": { diff --git a/_maps/configs/independent_dwayne.json b/_maps/configs/independent_dwayne.json index 26027d6fb524..e770c725fc14 100644 --- a/_maps/configs/independent_dwayne.json +++ b/_maps/configs/independent_dwayne.json @@ -1,6 +1,7 @@ { "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", "map_name": "Mark.II Dwayne-class Long Range Mining Transport", + "faction": "/datum/faction/independent", "prefix": "SV", "namelists": [ "GENERAL", diff --git a/_maps/configs/independent_junker.json b/_maps/configs/independent_junker.json index bd7807a02bb4..92edb754984a 100644 --- a/_maps/configs/independent_junker.json +++ b/_maps/configs/independent_junker.json @@ -1,6 +1,7 @@ { "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", "map_name": "Junker-class Salvaged Ship", + "faction": "/datum/faction/independent", "prefix": "SV", "namelists": [ "GENERAL", diff --git a/_maps/configs/independent_kilo.json b/_maps/configs/independent_kilo.json index cab2eb292c51..a5a3881f23f2 100644 --- a/_maps/configs/independent_kilo.json +++ b/_maps/configs/independent_kilo.json @@ -5,6 +5,7 @@ "tags": [ "Mining" ], + "faction": "/datum/faction/independent", "prefix": "SV", "namelists": [ "GENERAL", diff --git a/_maps/configs/independent_lagoon.json b/_maps/configs/independent_lagoon.json index 313b4cd71d95..6a48dccd1e99 100644 --- a/_maps/configs/independent_lagoon.json +++ b/_maps/configs/independent_lagoon.json @@ -1,6 +1,7 @@ { "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", "map_name": "Lagoon-class Cruise Ship", + "faction": "/datum/faction/independent", "prefix": "SV", "description": "An unusual sight in the relatively impoverished Frontier, the Lagoon-class is a large pleasure vessel dedicated to transporting its passengers to any number of exotic locales. Lagoons found on the Frontier tend to contain crews and passengers of a particularly daring – or foolhardy – character, willing to pay out the nose for a tour of some of the most dangerous regions in known space. Accordingly, Lagoons in these regions typically include a small but respectably equipped security contingent to protect (and, when necessary, rein in) the passengers, and come with a surprisingly powerful thermo-electric generator to move the ship’s prodigious bulk across vast expanses of space.", "tags": [ diff --git a/_maps/configs/independent_mudskipper.json b/_maps/configs/independent_mudskipper.json index 6119b39865d0..85f9c5f291a0 100644 --- a/_maps/configs/independent_mudskipper.json +++ b/_maps/configs/independent_mudskipper.json @@ -2,6 +2,7 @@ "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", "map_name": "Mudskipper-class Salvage Clipper", "map_short_name": "Mudskipper-class", + "faction": "/datum/faction/independent", "prefix": "ISV", "description": "One of the cheapest (and yet, inexplicably popular) offerings from Miskilamo Spacefaring, the Mudskipper-class is a vessel purpose-built for enterprising scrappers and looters looking to salvage bombed-out ruins and harvest boatloads of materials. Featuring a diverse set of multipurpose rooms, a charitable supply of EVA/ruin raiding equipment, and a set of anti-radiation gear for dealing with industrial accidents, the Mudskipper-class just keeps on chuggin’!", "tags": [ diff --git a/_maps/configs/independent_rigger.json b/_maps/configs/independent_rigger.json index 9fce68833fa0..57f147867e29 100644 --- a/_maps/configs/independent_rigger.json +++ b/_maps/configs/independent_rigger.json @@ -1,6 +1,7 @@ { "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", "map_name": "Riggs-class Sloop", + "faction": "/datum/faction/independent", "prefix": "SV", "namelists": [ "GENERAL", diff --git a/_maps/configs/independent_schmiedeberg.json b/_maps/configs/independent_schmiedeberg.json index e9cffc680320..5b5f1bf36a4c 100644 --- a/_maps/configs/independent_schmiedeberg.json +++ b/_maps/configs/independent_schmiedeberg.json @@ -1,6 +1,7 @@ { "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", "map_name": "Schmiedeberg-class Pharmacology Ship", + "faction": "/datum/faction/independent", "prefix": "IMV", "map_short_name": "Schmiedeberg-class", "description": "Interested in pharmacological science, but tired of sitting in front of a chemistry dispenser and pushing buttons all day? Eager to combine the culinary arts with the narcotic ones? Hoping to combine all of these qualities with the most important activity of all: making fat stacks of dosh? Then the Schmiedeberg-class is for you! Host to a robust ghetto chemistry lab, a high-efficiency botanical set-up and a complete kitchen-and-storefront, the Schmiedeberg is perfect for back-alley chemists and botanists everywhere.", diff --git a/_maps/configs/independent_shetland.json b/_maps/configs/independent_shetland.json index de5873f80d75..a44478e49c74 100644 --- a/_maps/configs/independent_shetland.json +++ b/_maps/configs/independent_shetland.json @@ -1,5 +1,6 @@ { "map_name": "Shetland-class Multipurpose Frigate", + "faction": "/datum/faction/independent", "prefix": "SV", "namelists": [ "GENERAL", diff --git a/_maps/configs/independent_sunskipper.json b/_maps/configs/independent_sunskipper.json index ee17e126cc34..a87d2582f097 100644 --- a/_maps/configs/independent_sunskipper.json +++ b/_maps/configs/independent_sunskipper.json @@ -1,6 +1,7 @@ { "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", "map_name": "Sunskipper-class Culinary Vessel", + "faction": "/datum/faction/independent", "prefix": "SV", "namelists": ["CRUISE", "NATURAL"], "map_short_name": "Sunskipper-class", diff --git a/_maps/configs/independent_tranquility.json b/_maps/configs/independent_tranquility.json index 07236d5e4568..37ba6bc8b813 100644 --- a/_maps/configs/independent_tranquility.json +++ b/_maps/configs/independent_tranquility.json @@ -1,6 +1,7 @@ { "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", "map_name": "Tranquility-class Flying Apartment Complex", + "faction": "/datum/faction/independent", "prefix": "SV", "namelists": [ "GENERAL", diff --git a/_maps/configs/inteq_colossus.json b/_maps/configs/inteq_colossus.json index 718ecb9f1295..973a80045e93 100644 --- a/_maps/configs/inteq_colossus.json +++ b/_maps/configs/inteq_colossus.json @@ -1,6 +1,7 @@ { "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", "map_name": "Colossus-class Armored Frigate", + "faction": "/datum/faction/inteq", "prefix": "IRMV", "description": "The mainstay of Inteq’s mercenary fleet, the Colossus is a professionally-militarized freighter like most of Inteq’s ships, and is designed to operate independently for some time, serving IRMG’s interests and providing vital mercenary services wherever they are needed. Key features include a secure and well-stocked armory and ample crew space, as well as a spacious cargo bay, which crews often refurbish into additional recreational or training space.", "tags": [ diff --git a/_maps/configs/inteq_hound.json b/_maps/configs/inteq_hound.json index 3d3617263f61..f92f7d285f12 100644 --- a/_maps/configs/inteq_hound.json +++ b/_maps/configs/inteq_hound.json @@ -1,5 +1,6 @@ { "map_name": "Hound-class Corvette", + "faction": "/datum/faction/inteq", "prefix": "IRMV", "namelists": [ "MYTHOLOGICAL", diff --git a/_maps/configs/inteq_talos.json b/_maps/configs/inteq_talos.json index 858255729809..b2d39c10f443 100644 --- a/_maps/configs/inteq_talos.json +++ b/_maps/configs/inteq_talos.json @@ -1,6 +1,7 @@ { "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", "map_name": "Talos-class Command Clipper", + "faction": "/datum/faction/inteq", "prefix": "IRMV", "description": "The Talos is a command and support ship, and a rare example of a purpose-built Inteq ship. Outfitted with an abundance of construction and engineering equipment and a private bluespace communications suite capable of networking IRMG ships across any given system, Taloses are often the lynchpin of coordinated IRMG operations in a system, and offer construction and repair services as part of IRMG’s mercenary offerings. As Talos crews place a larger emphasis on support personnel, they tend to be less well-armed than other Inteq crews. One unusual feature of the Talos is its depressurized “wings” filled with redundant baffles, intended to provide extra durability in the case of impacts or weapons fire. They also double as auxiliary storage space and potential room for modification by their enterprising Artificer crews.", "tags": [ diff --git a/_maps/configs/inteq_valor.json b/_maps/configs/inteq_valor.json index 1a3c957cc7b9..c91d7838408f 100644 --- a/_maps/configs/inteq_valor.json +++ b/_maps/configs/inteq_valor.json @@ -1,6 +1,7 @@ { "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", "map_name": "Valor-Class Field Care Cruiser", + "faction": "/datum/faction/inteq", "prefix": "IRMV", "description": "The Valor is the dedicated medical vessel of the Inteq fleet, suitable for treatment both for Inteq combat casualties, or paid treatment of outsiders. It's equipped with high-end medical equipment and a small ambulance for patient transport for this purpose.", "tags": ["Medical", "Subshuttle"], diff --git a/_maps/configs/inteq_vaquero.json b/_maps/configs/inteq_vaquero.json index 459b7353d292..232562369a3d 100644 --- a/_maps/configs/inteq_vaquero.json +++ b/_maps/configs/inteq_vaquero.json @@ -1,6 +1,7 @@ { "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", "map_name": "Vaquero-class Light Frigate", + "faction": "/datum/faction/inteq", "prefix": "IRMV", "description": "The Vaquero is a flexible and cheap military conversion of a light commercial freighter, widely used by Inteq Risk Management Group for picket, reconnaissance, and light escort duty, or for contracts that don't warrant a larger, more specialized ship. Unlike most Inteq ships, the Vaquero features basic medical, engineering, and military equipment all in one package, and its minimal crew requirements are an excellent fit for Vanguards with a smaller command and for training missions. Like its peers, it features a large cargo bay, which can be reconfigured as needed.", "tags": [ diff --git a/_maps/configs/nanotrasen_delta.json b/_maps/configs/nanotrasen_delta.json index 57e920f77d67..cf28abc50219 100644 --- a/_maps/configs/nanotrasen_delta.json +++ b/_maps/configs/nanotrasen_delta.json @@ -1,6 +1,7 @@ { "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", "map_name": "Delta-class Frigate", + "faction": "/datum/faction/nt/ns_logi", "prefix": "NSSV", "namelists": [ "GENERAL", diff --git a/_maps/configs/nanotrasen_gecko.json b/_maps/configs/nanotrasen_gecko.json index 01568c3c1d53..c01e4d9b4801 100644 --- a/_maps/configs/nanotrasen_gecko.json +++ b/_maps/configs/nanotrasen_gecko.json @@ -1,6 +1,7 @@ { "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", "map_name": "Gecko-class Salvage Runner", + "faction": "/datum/faction/nt", "prefix": "NTSV", "namelists": [ "NANOTRASEN", diff --git a/_maps/configs/nanotrasen_heron.json b/_maps/configs/nanotrasen_heron.json index 45264c827156..e8f798d1edab 100644 --- a/_maps/configs/nanotrasen_heron.json +++ b/_maps/configs/nanotrasen_heron.json @@ -1,7 +1,10 @@ { "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", + "faction": "/datum/faction/nt", "prefix": "NTSV", - "namelists": ["WEAPONS"], + "namelists": [ + "WEAPONS" + ], "map_name": "Heron-Class Dreadnaught", "map_short_name": "Heron-class", "map_path": "_maps/shuttles/nanotrasen/nanotrasen_heron.dmm", @@ -33,15 +36,15 @@ "outfit": "/datum/outfit/job/nanotrasen/security", "slots": 1 }, - "ERT Officer":{ + "ERT Officer": { "outfit": "/datum/outfit/job/nanotrasen/security/ert", "slots": 4 }, - "ERT Medical Officer":{ + "ERT Medical Officer": { "outfit": "/datum/outfit/job/nanotrasen/security/ert/med", "slots": 1 }, - "ERT Engineering Officer":{ + "ERT Engineering Officer": { "outfit": "/datum/outfit/job/nanotrasen/security/ert/engi", "slots": 1 }, @@ -53,20 +56,19 @@ "outfit": "/datum/outfit/job/nanotrasen/engineer", "slots": 1 }, - "Chief Engineer":{ + "Chief Engineer": { "outfit": "/datum/outfit/job/nanotrasen/ce", "officer": true, "slots": 1 }, "Roboticist": { - "outfit":"/datum/outfit/job/nanotrasen/roboticist", + "outfit": "/datum/outfit/job/nanotrasen/roboticist", "slots": 1 }, - "Medical Doctor":{ + "Medical Doctor": { "outfit": "/datum/outfit/job/nanotrasen/doctor", "slots": 1 }, - "Atmospheric Technician": 1, "Quartermaster": 1, "Cargo Technician": 1, diff --git a/_maps/configs/nanotrasen_meta.json b/_maps/configs/nanotrasen_meta.json index b4287c3bca3b..207a6a89864b 100644 --- a/_maps/configs/nanotrasen_meta.json +++ b/_maps/configs/nanotrasen_meta.json @@ -1,6 +1,7 @@ { "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", "map_name": "Meta-class Freighter", + "faction": "/datum/faction/nt", "prefix": "NTSV", "map_short_name": "Meta-class", "description": "The Meta-class is a medium freight vessel designed for comfort and sustainability over long journeys of delivering cargo. Most, if not all of these ships are no longer under the direct management of the Company, leaving regulation and professionalism at the behest of individual captains. They can be found running independent contracts, delivering cargo, smuggling illicit goods, and generally trying to stay afloat ever since the collapse of Nanotrasen's operations in the frontier.", diff --git a/_maps/configs/nanotrasen_mimir.json b/_maps/configs/nanotrasen_mimir.json index db7d8b90d198..4f50f429e210 100644 --- a/_maps/configs/nanotrasen_mimir.json +++ b/_maps/configs/nanotrasen_mimir.json @@ -1,5 +1,6 @@ { "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", + "faction": "/datum/faction/nt", "prefix": "NTSV", "namelists": [ "NANOTRASEN", diff --git a/_maps/configs/nanotrasen_osprey.json b/_maps/configs/nanotrasen_osprey.json index 7e0804a7f203..473389fce14f 100644 --- a/_maps/configs/nanotrasen_osprey.json +++ b/_maps/configs/nanotrasen_osprey.json @@ -1,6 +1,7 @@ { "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", "map_name": "Osprey-class Exploration Cruiser", + "faction": "/datum/faction/nt", "prefix": "NTSV", "namelists": [ "NANOTRASEN", diff --git a/_maps/configs/nanotrasen_ranger.json b/_maps/configs/nanotrasen_ranger.json index b4af3e797d39..d9c2e207e4d9 100644 --- a/_maps/configs/nanotrasen_ranger.json +++ b/_maps/configs/nanotrasen_ranger.json @@ -1,7 +1,8 @@ { "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", - "prefix": "NTSV", "map_name": "Ranger-class Aid Vessel", + "faction": "/datum/faction/nt", + "prefix": "NTSV", "namelists": [ "NANOTRASEN", "NATURAL_AGGRESSIVE", diff --git a/_maps/configs/nanotrasen_skipper.json b/_maps/configs/nanotrasen_skipper.json index 2f61c3afa601..a64c4c777342 100644 --- a/_maps/configs/nanotrasen_skipper.json +++ b/_maps/configs/nanotrasen_skipper.json @@ -1,6 +1,7 @@ { "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", "map_name": "Skipper-class Heavy Cruiser", + "faction": "/datum/faction/nt", "map_short_name": "Skipper-class", "prefix": "NTSV", "namelists": [ diff --git a/_maps/configs/pgf_crying_sun.json b/_maps/configs/pgf_crying_sun.json index 23114c8aa274..7115072cb9fa 100644 --- a/_maps/configs/pgf_crying_sun.json +++ b/_maps/configs/pgf_crying_sun.json @@ -1,5 +1,6 @@ { "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", + "faction": "/datum/faction/pgf", "prefix": "PGFN", "map_name": "Crying Sun-class Light Frigate", "namelists": [ diff --git a/_maps/configs/pirate_libertatia.json b/_maps/configs/pirate_libertatia.json index 4ed426746512..9a77cc2c5dec 100644 --- a/_maps/configs/pirate_libertatia.json +++ b/_maps/configs/pirate_libertatia.json @@ -7,6 +7,7 @@ "tags": [ "Combat" ], + "faction": "/datum/faction/frontier", "prefix": "ISV", "namelists": [ "PIRATES", diff --git a/_maps/configs/pirate_noderider.json b/_maps/configs/pirate_noderider.json index 7863a9d96896..60ce1a8501a6 100644 --- a/_maps/configs/pirate_noderider.json +++ b/_maps/configs/pirate_noderider.json @@ -2,6 +2,7 @@ "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", "map_name": "Jupiter-class Stormrider", "map_short_name": "Jupiter-class", + "faction": "/datum/faction/frontier", "prefix": "ISV", "namelists": [ "INSTALLATION", diff --git a/_maps/configs/pirate_tortuga.json b/_maps/configs/pirate_tortuga.json index 702185c02387..6543d349bad9 100644 --- a/_maps/configs/pirate_tortuga.json +++ b/_maps/configs/pirate_tortuga.json @@ -1,6 +1,7 @@ { "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", "map_name": "Tortuga-class Converted Cargo Freighter", + "faction": "/datum/faction/frontier", "prefix": "ISV", "namelists": [ "PIRATES", diff --git a/_maps/configs/solgov_chronicle.json b/_maps/configs/solgov_chronicle.json index 9fe11023e376..b1b14f281938 100644 --- a/_maps/configs/solgov_chronicle.json +++ b/_maps/configs/solgov_chronicle.json @@ -1,6 +1,7 @@ { "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", "map_name": "Chronicle-class Sensor Frigate", + "faction": "/datum/faction/solgov", "prefix": "SCSV", "namelists": [ "SOLGOV", diff --git a/_maps/configs/solgov_inkwell.json b/_maps/configs/solgov_inkwell.json index b7ae54a1b6b9..92c1f80075f3 100644 --- a/_maps/configs/solgov_inkwell.json +++ b/_maps/configs/solgov_inkwell.json @@ -1,6 +1,7 @@ { "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", "map_name": "Inkwell-class Supply Freighter", + "faction": "/datum/faction/solgov", "prefix": "SCSV", "namelists": [ "SOLGOV", diff --git a/_maps/configs/solgov_paracelsus.json b/_maps/configs/solgov_paracelsus.json index a5eefc5296df..0e9695952e16 100644 --- a/_maps/configs/solgov_paracelsus.json +++ b/_maps/configs/solgov_paracelsus.json @@ -1,6 +1,7 @@ { "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", "map_name": "Paracelsus-class Medical Corvette", + "faction": "/datum/faction/solgov", "prefix": "SCSV", "namelists": [ "SOLGOV", diff --git a/_maps/configs/srm_elder.json b/_maps/configs/srm_elder.json index 03caf7196183..6fffaff63e2b 100644 --- a/_maps/configs/srm_elder.json +++ b/_maps/configs/srm_elder.json @@ -1,6 +1,7 @@ { "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", "map_name": "Elder-class Montagnes' Vessel", + "faction": "/datum/faction/srm", "prefix": "SRSV", "namelists": [ "SAINT-ROUMAIN", diff --git a/_maps/configs/syndicate_cybersun_kansatsu.json b/_maps/configs/syndicate_cybersun_kansatsu.json index a9c9fcb94349..013be2455640 100644 --- a/_maps/configs/syndicate_cybersun_kansatsu.json +++ b/_maps/configs/syndicate_cybersun_kansatsu.json @@ -1,5 +1,6 @@ { "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", + "faction": "/datum/faction/syndicate/cybersun", "prefix": "CSSV", "namelists": [ "CYBERSUN", diff --git a/_maps/configs/syndicate_gorlex_hyena.json b/_maps/configs/syndicate_gorlex_hyena.json index a835e00b1eba..df4c6485bb0f 100644 --- a/_maps/configs/syndicate_gorlex_hyena.json +++ b/_maps/configs/syndicate_gorlex_hyena.json @@ -1,5 +1,6 @@ { "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", + "faction": "/datum/faction/syndicate/ngr", "prefix": "NGRV", "namelists": [ "GORLEX", diff --git a/_maps/configs/syndicate_gorlex_komodo.json b/_maps/configs/syndicate_gorlex_komodo.json index 2bc7a358b754..ca72d5b0eef5 100644 --- a/_maps/configs/syndicate_gorlex_komodo.json +++ b/_maps/configs/syndicate_gorlex_komodo.json @@ -1,4 +1,5 @@ { + "faction": "/datum/faction/syndicate", "prefix": "ISV", "namelists": [ "GORLEX", diff --git a/_maps/configs/syndicate_litieguai.json b/_maps/configs/syndicate_litieguai.json index 685a53187422..4680ebe932d6 100644 --- a/_maps/configs/syndicate_litieguai.json +++ b/_maps/configs/syndicate_litieguai.json @@ -1,6 +1,7 @@ { "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", "map_name": "Li Tieguai-class Rescue Ship", + "faction": "/datum/faction/syndicate/cybersun", "prefix": "CSSV", "map_short_name": "Li Tieguai-class", "description": "A small, nimble, and exceptionally well-built medical response vessel, the Li Tieguai is a recent addition to Cybersun’s fleet, forming a critical component of their Frontier stabilization program. Li Tieguais come equipped with high-end medical equipment, including a selection of Cybersun augments and prosthetics, as well as weaponry and armor sufficient to protect its personnel in the often-dangerous Frontier sectors, so that they can offer premium healthcare (at premium prices) in even the most dangerous of scenarios.", diff --git a/_maps/configs/syndicate_twinkleshine.json b/_maps/configs/syndicate_twinkleshine.json index ef84cca126f5..b1be2eb333d8 100644 --- a/_maps/configs/syndicate_twinkleshine.json +++ b/_maps/configs/syndicate_twinkleshine.json @@ -1,5 +1,6 @@ { "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", + "faction": "/datum/faction/syndicate", "prefix": "SSV", "namelists": [ "GORLEX", diff --git a/_maps/example_ship_config.json b/_maps/example_ship_config.json index 0f4129fa3d5d..e5dbd47d61e2 100644 --- a/_maps/example_ship_config.json +++ b/_maps/example_ship_config.json @@ -2,6 +2,7 @@ "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", "map_name": "Example-class Experimental Ship", "map_short_name": "Test-class", + "faction": "/datum/faction/independent", "prefix": "STSV", "namelists": ["GENERAL", "SPACE", "MYTHOLOGICAL", "WEAPONS"], "map_path": "_maps/shuttles/shiptest/null.dmm", diff --git a/_maps/ship_config_schema.json b/_maps/ship_config_schema.json index 4c29f272413d..1efa9eb95f2c 100644 --- a/_maps/ship_config_schema.json +++ b/_maps/ship_config_schema.json @@ -28,17 +28,17 @@ "type": "array", "description": "A list of tags describing the ship's niche, converted into searchable strings." }, + "faction": { + "title": "Ship Faction Datum", + "type": [ "null", "string" ], + "description": "Default faction datum" + }, "prefix": { "title": "Ship Default Prefix", "type": [ "null", "string" ], "description": "The prefix of the ship class, appended to randomly generated names when they're first purchased.", "maxLength": 5 }, - "faction_name": { - "title": "Faction Name", - "type": [ "null", "string" ], - "description": "A custom faction name for the ship class. If exluded or left blank, the ship will use the default faction name for the faction that matches the ship's prefix." - }, "namelists": { "title": "Namelists", "type": "array", diff --git a/check_regex.yaml b/check_regex.yaml index 441f1e44d743..3b5e13a650e5 100644 --- a/check_regex.yaml +++ b/check_regex.yaml @@ -31,7 +31,7 @@ standards: - exactly: [4, "/mob text paths", '"/mob'] - exactly: [43, "/obj text paths", '"/obj'] - exactly: [0, "/turf text paths", '"/turf'] - - exactly: [116, "text2path uses", "text2path"] + - exactly: [117, "text2path uses", "text2path"] - exactly: [18, "world<< uses", 'world[ \t]*<<'] - exactly: [0, "world.log<< uses", 'world.log[ \t]*<<'] diff --git a/code/__DEFINES/factions.dm b/code/__DEFINES/factions.dm index 5eb0209dda4c..67ce47e166fc 100644 --- a/code/__DEFINES/factions.dm +++ b/code/__DEFINES/factions.dm @@ -12,3 +12,33 @@ #define FACTION_PLAYER_INTEQ "playerInteq" #define FACTION_PLAYER_ROUMAIN "playerRoumain" #define FACTION_PLAYER_GEZENA "playerGezena" + +#define FACTION_SYNDICATE "Syndicate" + #define FACTION_NGR "New Gorlex Republic" + #define FACTION_CYBERSUN "CyberSun" + #define FACTION_SUNS "Student-Union of Naturalistic Sciences" +#define FACTION_SOLGOV "SolGov" +#define FACTION_SRM "Saint-Roumain Militia" +#define FACTION_INTEQ "Inteq Risk Management Group" +#define FACTION_CLIP "CLIP Minutemen" +#define FACTION_NT "Nanotrasen" + #define FACTION_NS_LOGI "N+S Logistics" + #define FACTION_VIGILITAS "Vigilitas Interstellar" +#define FACTION_FRONTIER "Frontiersmen Fleet" +#define FACTION_PGF "Pan-Gezenan Federation" +#define FACTION_INDEPENDENT "Independent" + +#define PREFIX_SYNDICATE list("SEV", "SSV") + #define PREFIX_NGR list("NGRV") + #define PREFIX_CYBERSUN list("CSSV") + #define PREFIX_SUNS list("SUNS") +#define PREFIX_SOLGOV list("SCSV") +#define PREFIX_SRM list("SRSV") +#define PREFIX_INTEQ list("IRMV") +#define PREFIX_CLIP list("CMSV", "CMGSV") +#define PREFIX_NT list("NTSV") + #define PREFIX_NS_LOGI list("NSSV") + #define PREFIX_VIGILITAS list("VISV") +#define PREFIX_FRONTIER list("FFV") +#define PREFIX_PGF list("PGF", "PGFMC", "PGFN") +#define PREFIX_INDEPENDENT list("SV", "IMV", "ISV") diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm index 36aa57e48625..54874bc9e16b 100644 --- a/code/__DEFINES/subsystems.dm +++ b/code/__DEFINES/subsystems.dm @@ -121,6 +121,7 @@ #define INIT_ORDER_JOBS 65 #define INIT_ORDER_QUIRKS 60 #define INIT_ORDER_TICKER 55 +#define INIT_ORDER_FACTION 53 #define INIT_ORDER_MAPPING 50 #define INIT_ORDER_TIMETRACK 47 #define INIT_ORDER_NETWORKS 45 diff --git a/code/__HELPERS/names.dm b/code/__HELPERS/names.dm index 6f4ec205448c..d78667dbfb4b 100644 --- a/code/__HELPERS/names.dm +++ b/code/__HELPERS/names.dm @@ -229,61 +229,3 @@ GLOBAL_DATUM(syndicate_code_response_regex, /regex) . += "." else . += ", " - -#define FACTION_SYNDICATE "Syndicate" - #define FACTION_NGR "New Gorlex Republic" - #define FACTION_CYBERSUN "CyberSun" - #define FACTION_SUNS "Student-Union of Naturalistic Sciences" -#define FACTION_SOLGOV "SolGov" -#define FACTION_SRM "Saint-Roumain Militia" -#define FACTION_INTEQ "Inteq Risk Management Group" -#define FACTION_CLIP "CLIP Minutemen" -#define FACTION_NT "Nanotrasen" - #define FACTION_NS_LOGI "N+S Logistics" - #define FACTION_VIGILITAS "Vigilitas Interstellar" -#define FACTION_FRONTIER "Frontiersmen Fleet" -#define FACTION_PGF "Pan-Gezenan Federation" -#define FACTION_INDEPENDENT "Independent" - -#define PREFIX_SYNDICATE list("SEV", "SSV") - #define PREFIX_NGR list("NGRV") - #define PREFIX_CYBERSUN list("CSSV") - #define PREFIX_SUNS list("SUNS") -#define PREFIX_SOLGOV list("SCSV") -#define PREFIX_SRM list("SRSV") -#define PREFIX_INTEQ list("IRMV") -#define PREFIX_CLIP list("CMSV", "CMGSV") -#define PREFIX_NT list("NTSV") - #define PREFIX_NS_LOGI list("NSSV") - #define PREFIX_VIGILITAS list("VISV") -#define PREFIX_FRONTIER list("FFV") -#define PREFIX_PGF list("PGF", "PGFMC", "PGFN") -#define PREFIX_INDEPENDENT list("SV", "IMV", "ISV") - -/// List of all ship factions to their prefixes. -GLOBAL_LIST_INIT(ship_faction_to_prefixes, list( - FACTION_SYNDICATE = PREFIX_SYNDICATE, - FACTION_NGR = PREFIX_NGR, - FACTION_CYBERSUN = PREFIX_CYBERSUN, - FACTION_SUNS = PREFIX_SUNS, - FACTION_SOLGOV = PREFIX_SOLGOV, - FACTION_SRM = PREFIX_SRM, - FACTION_INTEQ = PREFIX_INTEQ, - FACTION_CLIP = PREFIX_CLIP, - FACTION_NT = PREFIX_NT, - FACTION_NS_LOGI = PREFIX_NS_LOGI, - FACTION_VIGILITAS = PREFIX_VIGILITAS, - FACTION_FRONTIER = PREFIX_FRONTIER, - FACTION_PGF = PREFIX_PGF, - FACTION_INDEPENDENT = PREFIX_INDEPENDENT -)) - -/proc/ship_prefix_to_faction(prefix) - for(var/faction in GLOB.ship_faction_to_prefixes) - if(prefix in GLOB.ship_faction_to_prefixes[faction]) - return faction - var/static/list/screamed = list() - if(!(prefix in screamed)) - screamed += prefix - stack_trace("attempted to get faction for unknown prefix [prefix]") - return "?!ERR!?" diff --git a/code/controllers/subsystem/faction.dm b/code/controllers/subsystem/faction.dm new file mode 100644 index 000000000000..106fb4687b83 --- /dev/null +++ b/code/controllers/subsystem/faction.dm @@ -0,0 +1,32 @@ +SUBSYSTEM_DEF(factions) + name = "Faction" + init_order = INIT_ORDER_FACTION + flags = SS_NO_FIRE + var/list/datum/faction/factions = list() + +/datum/controller/subsystem/factions/Initialize(timeofday) + for(var/path in subtypesof(/datum/faction)) + factions += new path() + return ..() + +/datum/controller/subsystem/factions/proc/ship_prefix_to_faction(prefix) + for(var/datum/faction/faction in factions) + if(prefix in faction.prefixes) + return faction + var/static/list/screamed = list() + if(!(prefix in screamed)) + screamed += prefix + stack_trace("attempted to get faction for unknown prefix [prefix]") + return null + +/datum/controller/subsystem/factions/proc/ship_prefix_to_name(prefix) + var/datum/faction/faction = ship_prefix_to_faction(prefix) + if(faction) + return faction.name + return "?!ERR!?" + +/datum/controller/subsystem/factions/proc/faction_path_to_datum(path) + for(var/datum/faction/faction in factions) + if(faction.type == path) + return faction + stack_trace("we did not return any faction with path [path]") diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm index a8f905e5fe25..3fecc68fbfe4 100644 --- a/code/controllers/subsystem/mapping.dm +++ b/code/controllers/subsystem/mapping.dm @@ -206,10 +206,12 @@ SUBSYSTEM_DEF(mapping) if(istext(data["prefix"])) S.prefix = data["prefix"] - if(istext(data["faction_name"])) - S.faction_name = data["faction_name"] - else - S.faction_name = ship_prefix_to_faction(S.prefix) + + if(istext(data["faction"])) + S.faction_path = text2path(data["faction"]) + if(S.faction_path) + S.faction_datum = SSfactions.faction_path_to_datum(S.faction_path) + S.faction_name = S.faction_datum.name S.category = S.faction_name diff --git a/code/datums/shuttles.dm b/code/datums/shuttles.dm index 31a5e9165d3c..91a3fbe884c0 100644 --- a/code/datums/shuttles.dm +++ b/code/datums/shuttles.dm @@ -21,6 +21,8 @@ var/prefix = "ISV" /// The full name of the ship's faction. var/faction_name = "Independent" + var/faction_path = /datum/faction/independent + var/datum/faction/faction_datum /// Whether or not players from other ships can open airlocks. var/unique_ship_access = TRUE /// Set by config JSON. If true, the template's ships' "default" spawn location (when bought by a player or loaded at roundstart) diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm index 8098ff6b5130..e6555fc58b6e 100644 --- a/code/modules/cargo/packs.dm +++ b/code/modules/cargo/packs.dm @@ -7,10 +7,15 @@ var/crate_name = "crate" var/desc = ""//no desc by default var/crate_type = /obj/structure/closet/crate - // var/DropPodOnly = FALSE//only usable by the Bluespace Drop Pod via the express cargo console var/admin_spawned = FALSE var/small_item = FALSE //Small items can be grouped into a single crate. + var/faction + /* to be implmented + var/faction_discount = 15 + var/faction_locked = FALSE + */ + /datum/supply_pack/proc/generate(atom/A, datum/bank_account/paying_account) var/obj/structure/closet/crate/C if(paying_account) diff --git a/code/modules/cargo/packs/ammo.dm b/code/modules/cargo/packs/ammo.dm index d790cbbdf650..5ed0bb6c4387 100644 --- a/code/modules/cargo/packs/ammo.dm +++ b/code/modules/cargo/packs/ammo.dm @@ -47,12 +47,14 @@ desc = "Contains a 5.56mm magazine for the Pistole C, containing twelve rounds." contains = list(/obj/item/ammo_box/magazine/pistol556mm) cost = 750 + faction = FACTION_SOLGOV /datum/supply_pack/ammo/fms_mag name = "Ferromagnetic Slug Magazine Crate" desc = "Contains a ferromagnetic slug magazine for the Model H pistol, containing ten rounds." contains = list(/obj/item/ammo_box/magazine/modelh) cost = 750 + faction = FACTION_SOLGOV /* Shotgun ammo diff --git a/code/modules/cargo/packs/civilian.dm b/code/modules/cargo/packs/civilian.dm index 154dce436ee7..0b1d7303ca44 100644 --- a/code/modules/cargo/packs/civilian.dm +++ b/code/modules/cargo/packs/civilian.dm @@ -86,6 +86,7 @@ contains = list(/obj/item/storage/box/fountainpens) crate_name = "calligraphy crate" crate_type = /obj/structure/closet/crate/wooden + faction = FACTION_SOLGOV /datum/supply_pack/civilian/wrapping_paper name = "Festive Wrapping Paper Crate" diff --git a/code/modules/cargo/packs/costumes_toys.dm b/code/modules/cargo/packs/costumes_toys.dm index ed06391dfe98..01bfcc1dc756 100644 --- a/code/modules/cargo/packs/costumes_toys.dm +++ b/code/modules/cargo/packs/costumes_toys.dm @@ -127,17 +127,6 @@ crate_name = "exosuit pilot's suit crate" crate_type = /obj/structure/closet/crate/wooden -/datum/supply_pack/costumes_toys/wizard - name = "Wizard Costume Crate" - desc = "Pretend to join the Wizard Federation with this full wizard outfit! As required by interstellar law, the seller reminds potential buyers that the Wizard Federation is not real and cannot hurt you." - cost = 2000 - contains = list(/obj/item/staff, - /obj/item/clothing/suit/wizrobe/fake, - /obj/item/clothing/shoes/sandal, - /obj/item/clothing/head/wizard/fake) - crate_name = "wizard costume crate" - crate_type = /obj/structure/closet/crate/wooden - /datum/supply_pack/costumes_toys/formalwear name = "Formalwear Crate" desc = "You're gonna like the way you look, I guaranteed it. Contains an asston of fancy clothing." @@ -170,6 +159,7 @@ /obj/item/lipstick/random) crate_name = "formalwear crate" crate_type = /obj/structure/closet/crate/wooden + faction = FACTION_SOLGOV // this is technically armor but you aren't buying it for that. it's a joke pack so it goes here /datum/supply_pack/costumes_toys/justiceinbound diff --git a/code/modules/cargo/packs/food.dm b/code/modules/cargo/packs/food.dm index 6bf438f22867..f2b9d0ec09a7 100644 --- a/code/modules/cargo/packs/food.dm +++ b/code/modules/cargo/packs/food.dm @@ -16,6 +16,7 @@ /obj/item/storage/box/donkpockets/donkpockethonk) crate_name = "donk pocket crate" crate_type = /obj/structure/closet/crate/freezer + faction = FACTION_SYNDICATE /datum/supply_pack/food/donkpockets/fill(obj/structure/closet/crate/C) for(var/i in 1 to 3) @@ -316,6 +317,3 @@ /obj/item/melee/flyswatter) crate_name = "beekeeping starter crate" crate_type = /obj/structure/closet/crate/hydroponics - - - diff --git a/code/modules/cargo/packs/gun.dm b/code/modules/cargo/packs/gun.dm index 8a9bd51ccbc5..16f30630c10f 100644 --- a/code/modules/cargo/packs/gun.dm +++ b/code/modules/cargo/packs/gun.dm @@ -12,6 +12,7 @@ cost = 300 contains = list(/obj/item/storage/pistolcase/disposable) crate_name = "disposable gun crate" + faction = FACTION_FRONTIER /datum/supply_pack/gun/derringer name = ".38 Derringer Crate" @@ -19,42 +20,49 @@ cost = 350 contains = list(/obj/item/storage/pistolcase/derringer) crate_name = "derringer crate" + faction = FACTION_SRM /datum/supply_pack/gun/commanders name = "Commander Pistol Crate" desc = "Contains a modified Candor 'Commander' pistol, produced by Nanotrasen and chambered in 9mm." cost = 750 contains = list(/obj/item/storage/pistolcase/commander) + faction = FACTION_NT /datum/supply_pack/gun/makarovs name = "Stechkin Pistol Crate" desc = "Contains a concealable stechkin pistol, produced by Scarborough Arms and chambered in 10mm." cost = 1000 contains = list(/obj/item/storage/pistolcase/stechkin) + faction = FACTION_SYNDICATE /datum/supply_pack/gun/candors name = "Candor Pistol Crate" desc = "Contains a Candor pistol, the trusty sidearm of any spacer, produced by Hunter's Pride and chambered in .45 ACP." cost = 1000 contains = list(/obj/item/storage/pistolcase/candor) + faction = FACTION_SRM /datum/supply_pack/gun/pepperbox name = "HP Firebrand Pepperbox Revolver Crate" desc = "Contains a concealable pepperbox revolver manufactured by the Saint Roumain Militia, chambered in .357." cost = 1250 contains = list(/obj/item/storage/pistolcase/firebrand) + faction = FACTION_SRM /datum/supply_pack/gun/detrevolver name = "Hunter's Pride Detective Revolver Crate" desc = "Contains a concealable revolver favored by police departments around the sector, chambered in .38." cost = 600 contains = list(/obj/item/storage/pistolcase/detective) + faction = FACTION_SRM /datum/supply_pack/gun/shadowrevolver name = "Shadow Revolver Crate" desc = "Contains a concealable Shadow revolver, chambered in .44 Roumain." cost = 1000 contains = list(/obj/item/storage/pistolcase/shadow) + faction = FACTION_SRM /* @@ -115,6 +123,7 @@ cost = 1000 contains = list(/obj/item/storage/guncase/doublebarrel) crate_name = "shotguns crate" + faction = FACTION_SRM /datum/supply_pack/gun/hellfire_shotgun name = "Hellfire Shotgun Crate" @@ -122,6 +131,7 @@ cost = 2000 contains = list(/obj/item/storage/guncase/hellfire) crate_name = "shotgun crate" + faction = FACTION_SRM /datum/supply_pack/gun/brimstone_shotgun name = "Brimstone Shotgun Crate" @@ -129,6 +139,7 @@ cost = 2000 contains = list(/obj/item/storage/guncase/brimstone) crate_name = "shotgun crate" + faction = FACTION_SRM /* Rifles @@ -140,6 +151,7 @@ cost = 750 contains = list(/obj/item/storage/guncase/winchester) crate_name = "rifle crate" + faction = FACTION_SRM /datum/supply_pack/gun/illestren name = "Illestren Rifle Crate" @@ -147,6 +159,7 @@ cost = 1250 contains = list(/obj/item/storage/guncase/illestren) crate_name = "rifle crate" + faction = FACTION_SRM /datum/supply_pack/gun/beacon name = "Beacon Break Action Rifle Crate" @@ -154,6 +167,7 @@ cost = 2250 contains = list(/obj/item/storage/guncase/beacon) crate_name = "rifle crate" + faction = FACTION_SRM /datum/supply_pack/gun/scout name = "Scout Sniper Rifle Crate" @@ -161,6 +175,7 @@ cost = 5500 contains = list(/obj/item/storage/guncase/scout) crate_name = "rifle crate" + faction = FACTION_SRM /datum/supply_pack/gun/cobra20 name = "Cobra-20 SMG Crate" @@ -168,6 +183,7 @@ cost = 3000 contains = list(/obj/item/storage/guncase/cobra) crate_name = "SMG crate" + faction = FACTION_SRM /datum/supply_pack/gun/wt550 name = "WT-550 Auto Rifle Crate" @@ -175,6 +191,7 @@ cost = 4000 contains = list(/obj/item/storage/guncase/wt550) crate_name = "auto rifle crate" + faction = FACTION_SRM /datum/supply_pack/gun/p16 name = "P16 Assault Rifle Crate" @@ -182,6 +199,7 @@ cost = 5000 contains = list(/obj/item/storage/guncase/p16) crate_name = "auto rifle crate" + faction = FACTION_SRM /datum/supply_pack/gun/skm name = "SKM-24 Rifle Crate" @@ -189,6 +207,7 @@ cost = 5000 contains = list(/obj/item/storage/guncase/skm) crate_name = "auto rifle crate" + faction = FACTION_SRM /datum/supply_pack/gun/attachment/rail_light name = "Tactical Rail Light Crate" diff --git a/code/modules/cargo/packs/material.dm b/code/modules/cargo/packs/material.dm index ee0f00e42d96..dc01a4dfdc75 100644 --- a/code/modules/cargo/packs/material.dm +++ b/code/modules/cargo/packs/material.dm @@ -1,5 +1,6 @@ /datum/supply_pack/material group = "Materials & Sheets" + faction = FACTION_NS_LOGI /* Basic construction materials diff --git a/code/modules/cargo/packs/medical.dm b/code/modules/cargo/packs/medical.dm index e0c76180bade..e0ca4f139258 100644 --- a/code/modules/cargo/packs/medical.dm +++ b/code/modules/cargo/packs/medical.dm @@ -132,6 +132,7 @@ /obj/item/reagent_containers/pill/neurine, /obj/item/vending_refill/medical) crate_name = "medical surplus crate" + faction = FACTION_SUNS /datum/supply_pack/medical/surplus/fill(obj/structure/closet/crate/C) for(var/i in 1 to 7) @@ -159,6 +160,7 @@ /obj/item/reagent_containers/glass/bottle/mutagen) crate_name = "virus crate" crate_type = /obj/structure/closet/crate/medical + faction = FACTION_SUNS /datum/supply_pack/medical/salglucanister name = "Heavy-Duty Saline Canister" diff --git a/code/modules/cargo/packs/sec_supply.dm b/code/modules/cargo/packs/sec_supply.dm index d2039b009c5c..28f15b583206 100644 --- a/code/modules/cargo/packs/sec_supply.dm +++ b/code/modules/cargo/packs/sec_supply.dm @@ -91,6 +91,7 @@ ) crate_name = "incendiary weapons crate" crate_type = /obj/structure/closet/crate/secure/plasma + faction = FACTION_NGR /* Stamina / PVP weapons (intentionally overpriced due to odd balance position of stamina weapons) diff --git a/code/modules/cargo/packs/spacesuit_armor.dm b/code/modules/cargo/packs/spacesuit_armor.dm index 3ed4a64cab91..ba0e8d73c7be 100644 --- a/code/modules/cargo/packs/spacesuit_armor.dm +++ b/code/modules/cargo/packs/spacesuit_armor.dm @@ -29,6 +29,7 @@ contains = list(/obj/item/clothing/suit/space/hardsuit/mining/independent) crate_name = "mining hardsuit crate" crate_type = /obj/structure/closet/crate/secure/plasma + faction = FACTION_INDEPENDENT /datum/supply_pack/spacesuit_armor/med_hardsuit name = "Medical Hardsuit Crate" @@ -37,6 +38,7 @@ contains = list(/obj/item/clothing/suit/space/hardsuit/medical) crate_name = "medical hardsuit crate" crate_type = /obj/structure/closet/crate/medical + faction = FACTION_NT /datum/supply_pack/spacesuit_armor/mining_hardsuit_heavy name = "Heavy Mining Hardsuit Crate" @@ -46,6 +48,7 @@ /obj/item/clothing/shoes/bhop) crate_name = "heavy mining hardsuit crate" crate_type = /obj/structure/closet/crate/secure/plasma + faction = FACTION_NT /datum/supply_pack/spacesuit_armor/sec_hardsuit_bundle name = "Security Hardsuit Crate" @@ -54,6 +57,7 @@ contains = list(/obj/item/clothing/suit/space/hardsuit/security/independent) crate_name = "security hardsuit crate" crate_type = /obj/structure/closet/crate/secure/gear + faction = FACTION_NT /datum/supply_pack/spacesuit_armor/sci_hardsuit name = "Science Hardsuit Crate" @@ -62,6 +66,7 @@ contains = list(/obj/item/clothing/suit/space/hardsuit/rd) crate_name = "science hardsuit crate" crate_type = /obj/structure/closet/crate/secure/science + faction = FACTION_NT /datum/supply_pack/spacesuit_armor/engi_spacesuit_bundle name = "Engineering Space Suit Crate" @@ -79,6 +84,7 @@ contains = list(/obj/item/clothing/suit/space/hardsuit/engine/atmos) crate_name = "atmospherics hardsuit crate" crate_type = /obj/structure/closet/crate/secure/engineering + faction = FACTION_NT /datum/supply_pack/spacesuit_armor/swat name = "SWAT Crate" diff --git a/code/modules/faction/faction_datum.dm b/code/modules/faction/faction_datum.dm new file mode 100644 index 000000000000..450ee9688953 --- /dev/null +++ b/code/modules/faction/faction_datum.dm @@ -0,0 +1,62 @@ +/datum/faction + var/name + var/parent_faction + var/list/prefixes + +/datum/faction/syndicate + name = FACTION_SYNDICATE + parent_faction = /datum/faction/syndicate + prefixes = list("SEV", "SSV") + +/datum/faction/syndicate/ngr + name = FACTION_NGR + prefixes = list("NGRV") + +/datum/faction/syndicate/cybersun + name = FACTION_CYBERSUN + prefixes = list("CSSV") + +/datum/faction/syndicate/suns + name = FACTION_SUNS + prefixes = list("SUNS") + +/datum/faction/solgov + name = FACTION_SOLGOV + prefixes = list("SCSV") + +/datum/faction/srm + name = FACTION_SRM + prefixes = list("SRSV") + +/datum/faction/inteq + name = FACTION_INTEQ + prefixes = list("IRMV") + +/datum/faction/clip + name = FACTION_CLIP + prefixes = list("CMSV", "CMGSV") + +/datum/faction/nt + name = FACTION_NT + parent_faction = /datum/faction/nt + prefixes = list("NTSV") + +/datum/faction/nt/ns_logi + name = FACTION_NS_LOGI + prefixes = list("NSSV") + +/datum/faction/nt/vigilitas + name = FACTION_VIGILITAS + prefixes = list("VISV") + +/datum/faction/frontier + name = FACTION_FRONTIER + prefixes = list("FFV") + +/datum/faction/pgf + name = FACTION_PGF + prefixes = list("PGF", "PGFMC", "PGFN") + +/datum/faction/independent + name = FACTION_INDEPENDENT + prefixes = list("SV", "IMV", "ISV") diff --git a/code/modules/jobs/access.dm b/code/modules/jobs/access.dm index d11bb6177e14..1d13660682f6 100644 --- a/code/modules/jobs/access.dm +++ b/code/modules/jobs/access.dm @@ -186,7 +186,7 @@ ACCESS_MECH_MINING, ACCESS_MECH_ENGINE, ACCESS_MECH_SCIENCE, ACCESS_MECH_SECURITY, ACCESS_MECH_MEDICAL, ACCESS_VAULT, ACCESS_MINING_STATION, ACCESS_XENOBIOLOGY, ACCESS_CE, ACCESS_HOP, ACCESS_HOS, ACCESS_PHARMACY, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_TCOMSAT, ACCESS_GATEWAY, ACCESS_MINERAL_STOREROOM, ACCESS_MINISAT, ACCESS_NETWORK, ACCESS_CLONING, ACCESS_SOLGOV - ) //WS Edit - SolGov Rep + ) /proc/get_all_centcom_access() return list(ACCESS_CENT_GENERAL, ACCESS_CENT_THUNDER, ACCESS_CENT_SPECOPS, ACCESS_CENT_MEDICAL, ACCESS_CENT_LIVING, ACCESS_CENT_STORAGE, ACCESS_CENT_TELEPORTER, ACCESS_CENT_CAPTAIN) @@ -377,13 +377,10 @@ return "Science Exosuit Access" if(ACCESS_MECH_ENGINE) return "Engineering Exosuit Access" - -//WS Begin if(ACCESS_CLONING) return "Cloning Room" if(ACCESS_SOLGOV) return "SolGov Office" -//WS End /proc/get_centcom_access_desc(A) switch(A) @@ -412,8 +409,5 @@ "Atmospheric Technician", "Chief Medical Officer", "Medical Doctor", "Chemist", "Geneticist", "Virologist", "Paramedic", "Prisoner", "Psychologist", //WS Edit - Brig Phys / SolGov Rep "Research Director", "Scientist", "Roboticist", "Head of Security", "Warden", "Detective", "Security Officer", "Brig Physician", "SolGov Representative") //WS Edit - Brig Phys / SolGov Rep -/proc/get_all_job_icons() //For all existing HUD icons - return get_all_jobs() + list("Emergency Response Team Commander", "Security Response Officer", "Engineering Response Officer", "Medical Response Officer", "Entertainment Response Officer", "Religious Response Officer", "Janitorial Response Officer", "Death Commando") - /proc/get_all_centcom_jobs() return list("Central Command","VIP Guest","Custodian","Thunderdome Overseer","CentCom Official","Medical Officer","Research Officer","Special Ops Officer","Admiral","CentCom Commander","CentCom Bartender","Private Security Force") diff --git a/code/modules/mob/dead/new_player/ship_select.dm b/code/modules/mob/dead/new_player/ship_select.dm index fe88abdf3399..e130f6e404ce 100644 --- a/code/modules/mob/dead/new_player/ship_select.dm +++ b/code/modules/mob/dead/new_player/ship_select.dm @@ -166,7 +166,7 @@ continue var/list/ship_data = list( "name" = T.name, - "faction" = ship_prefix_to_faction(T.prefix), + "faction" = T.faction_name, "desc" = T.description, "tags" = T.tags, "crewCount" = length(T.job_slots), diff --git a/code/modules/overmap/ships/controlled_ship_datum.dm b/code/modules/overmap/ships/controlled_ship_datum.dm index ec4b78629027..5d851e52f4fd 100644 --- a/code/modules/overmap/ships/controlled_ship_datum.dm +++ b/code/modules/overmap/ships/controlled_ship_datum.dm @@ -70,6 +70,8 @@ ///Stations the ship has been blacklisted from landing at, associative station = reason var/list/blacklisted = list() + var/datum/faction/faction_datum + /datum/overmap/ship/controlled/Rename(new_name, force = FALSE) var/oldname = name if(!..() || (!COOLDOWN_FINISHED(src, rename_cooldown) && !force)) @@ -110,6 +112,7 @@ refresh_engines() ship_account = new(name, source_template.starting_funds) + faction_datum = source_template.faction_datum #ifdef UNIT_TESTS Rename("[source_template]", TRUE) diff --git a/shiptest.dme b/shiptest.dme index 55ad11a800d5..90d3852eac6f 100644 --- a/shiptest.dme +++ b/shiptest.dme @@ -339,6 +339,7 @@ #include "code\controllers\subsystem\economy.dm" #include "code\controllers\subsystem\events.dm" #include "code\controllers\subsystem\explosions.dm" +#include "code\controllers\subsystem\faction.dm" #include "code\controllers\subsystem\fire_burning.dm" #include "code\controllers\subsystem\garbage.dm" #include "code\controllers\subsystem\icon_smooth.dm" @@ -2156,6 +2157,7 @@ #include "code\modules\events\wizard\rpgloot.dm" #include "code\modules\events\wizard\shuffle.dm" #include "code\modules\events\wizard\summons.dm" +#include "code\modules\faction\faction_datum.dm" #include "code\modules\fishing\bait.dm" #include "code\modules\fishing\fish_catalog.dm" #include "code\modules\fishing\fishing_equipment.dm"