diff --git a/code/__DEFINES/job.dm b/code/__DEFINES/job.dm index e1896e0d02..5f09a80b08 100644 --- a/code/__DEFINES/job.dm +++ b/code/__DEFINES/job.dm @@ -192,6 +192,27 @@ GLOBAL_LIST_INIT(job_command_roles, JOB_COMMAND_ROLES_LIST) //------------------------------------ +//-------- US Army --------// +#define JOB_ARMY_TROOPER "Army Trooper" +#define JOB_ARMY_ENGI "Army Sapper" +#define JOB_ARMY_MEDIC "Army Medic" +#define JOB_ARMY_NCO "Army Fireteam Lead" +#define JOB_ARMY_SNCO "Army Squad Leader" +#define JOB_ARMY_LT "Army Lieutenant" + +//-------- USASF --------// +#define JOB_NAVY_CREWMAN "USASF Crewman" +#define JOB_NAVY_MEDIC "USASF Hospital Corpsman" +#define JOB_NAVY_ENGI "USASF Engineering Technician" +#define JOB_NAVY_SKITTLE "USASF Flight-Deck Crewman" +#define JOB_NAVY_JTAC "USASF Orbital Fire-Support Liason Officer" +#define JOB_NAVY_PARA_TECH "USASF Para-Rescue Support Technician" +#define JOB_NAVY_SYNTH "USASF Support Synthetic" +#define JOB_NAVY_CHIEF_ENGINEER "USASF Engineering Duty Officer" +#define JOB_NAVY_FLIGHT_BOSS "USASF Flight-Deck Officer" +#define JOB_NAVY_SO "USASF Duty Officer" +#define JOB_NAVY_CO "USASF Commanding Officer" + //-------- PMC --------// #define JOB_PMC_STANDARD "PMC Operator" #define JOB_PMC_ENGINEER "PMC Corporate Technician" diff --git a/code/__DEFINES/language.dm b/code/__DEFINES/language.dm index 8fb5ea91ff..f4028f09f7 100644 --- a/code/__DEFINES/language.dm +++ b/code/__DEFINES/language.dm @@ -19,9 +19,9 @@ #define ALL_HUMAN_LANGUAGES list(LANGUAGE_ENGLISH, LANGUAGE_JAPANESE, LANGUAGE_CHINESE, LANGUAGE_RUSSIAN, LANGUAGE_GERMAN, LANGUAGE_SPANISH, LANGUAGE_RUSPATOIS) -#define ALL_SYNTH_LANGUAGES list(LANGUAGE_ENGLISH, LANGUAGE_JAPANESE, LANGUAGE_CHINESE, LANGUAGE_RUSSIAN, LANGUAGE_GERMAN, LANGUAGE_SPANISH, LANGUAGE_YAUTJA, LANGUAGE_XENOMORPH) +#define ALL_SYNTH_LANGUAGES list(LANGUAGE_ENGLISH, LANGUAGE_JAPANESE, LANGUAGE_CHINESE, LANGUAGE_RUSSIAN, LANGUAGE_GERMAN, LANGUAGE_SPANISH, LANGUAGE_RUSPATOIS, LANGUAGE_YAUTJA, LANGUAGE_XENOMORPH) -#define ALL_SYNTH_LANGUAGES_UPP list(LANGUAGE_RUSSIAN, LANGUAGE_ENGLISH, LANGUAGE_JAPANESE, LANGUAGE_CHINESE, LANGUAGE_GERMAN, LANGUAGE_SPANISH, LANGUAGE_YAUTJA, LANGUAGE_XENOMORPH) +#define ALL_SYNTH_LANGUAGES_UPP list(LANGUAGE_RUSSIAN, LANGUAGE_ENGLISH, LANGUAGE_JAPANESE, LANGUAGE_CHINESE, LANGUAGE_GERMAN, LANGUAGE_SPANISH, LANGUAGE_RUSPATOIS, LANGUAGE_YAUTJA, LANGUAGE_XENOMORPH) //Chinese language sound bitflags diff --git a/code/__DEFINES/mode.dm b/code/__DEFINES/mode.dm index f9e1bbc70b..f41f8f2521 100644 --- a/code/__DEFINES/mode.dm +++ b/code/__DEFINES/mode.dm @@ -261,6 +261,8 @@ DEFINE_BITFIELD(whitelist_status, list( // Faction names #define FACTION_NEUTRAL "Neutral" #define FACTION_MARINE "USCM" +#define FACTION_ARMY "USA" +#define FACTION_NAVY "USASF" #define FACTION_SURVIVOR "Survivor" #define FACTION_UPP "UPP" #define FACTION_TWE "TWE" @@ -283,7 +285,7 @@ DEFINE_BITFIELD(whitelist_status, list( #define FACTION_ZOMBIE "Zombie" #define FACTION_MONKEY "Monkey" // Nanu -#define FACTION_LIST_MARINE list(FACTION_MARINE) +#define FACTION_LIST_MARINE list(FACTION_MARINE, FACTION_ARMY, FACTION_NAVY) #define FACTION_LIST_HUMANOID list(FACTION_MARINE, FACTION_PMC, FACTION_WY, FACTION_WY_DEATHSQUAD, FACTION_CLF, FACTION_CONTRACTOR, FACTION_MARSHAL, FACTION_UPP, FACTION_FREELANCER, FACTION_SURVIVOR, FACTION_NEUTRAL, FACTION_COLONIST, FACTION_MERCENARY, FACTION_DUTCH, FACTION_HEFA, FACTION_GLADIATOR, FACTION_PIRATE, FACTION_PIZZA, FACTION_SOUTO, FACTION_YAUTJA, FACTION_ZOMBIE, FACTION_TWE) #define FACTION_LIST_ERT_OTHER list(FACTION_HEFA, FACTION_GLADIATOR, FACTION_PIRATE, FACTION_PIZZA, FACTION_SOUTO) #define FACTION_LIST_ERT_ALL list(FACTION_PMC, FACTION_WY_DEATHSQUAD, FACTION_WY, FACTION_CLF, FACTION_CONTRACTOR, FACTION_UPP, FACTION_FREELANCER, FACTION_MERCENARY, FACTION_DUTCH, FACTION_HEFA, FACTION_GLADIATOR, FACTION_PIRATE, FACTION_PIZZA, FACTION_SOUTO, FACTION_MARSHAL, FACTION_TWE) diff --git a/code/__DEFINES/paygrade_defs/marines.dm b/code/__DEFINES/paygrade_defs/marines.dm index 74b6596308..3554bbebea 100644 --- a/code/__DEFINES/paygrade_defs/marines.dm +++ b/code/__DEFINES/paygrade_defs/marines.dm @@ -37,6 +37,21 @@ /// ME9C, Sergeant Major of the Colonial Marine Corps #define PAY_SHORT_ME9C "ME9C" +/// MW1, Warrant Officer 1 +#define PAY_SHORT_MW1 "MW1" + +/// MW2, Chief Warrant Officer 2 +#define PAY_SHORT_MW2 "MCW2" + +/// MW3, Chief Warrant Officer 3 +#define PAY_SHORT_MW3 "MCW3" + +/// MW4, Chief Warrant Officer 4 +#define PAY_SHORT_MW4 "MCW4" + +/// MW5, Chief Warrant Officer 5 +#define PAY_SHORT_MW5 "MCW5" + /// MO1, Second Lieutenant #define PAY_SHORT_MO1 "MO1" diff --git a/code/__DEFINES/paygrade_defs/navy.dm b/code/__DEFINES/paygrade_defs/navy.dm index 1804cdece3..931a28d996 100644 --- a/code/__DEFINES/paygrade_defs/navy.dm +++ b/code/__DEFINES/paygrade_defs/navy.dm @@ -38,16 +38,16 @@ /// NW1, Warrant Officer 1 #define PAY_SHORT_NW1 "NW1" -/// NW1, Chief Warrant Officer 2 +/// NW2, Chief Warrant Officer 2 #define PAY_SHORT_NW2 "NCW2" -/// NW1, Chief Warrant Officer 3 +/// NW3, Chief Warrant Officer 3 #define PAY_SHORT_NW3 "NCW3" -/// NW1, Chief Warrant Officer 4 +/// NW4, Chief Warrant Officer 4 #define PAY_SHORT_NW4 "NCW4" -/// NW1, Chief Warrant Officer 5 +/// NW5, Chief Warrant Officer 5 #define PAY_SHORT_NW5 "NCW5" /// NO1, Ensign diff --git a/code/__DEFINES/radio.dm b/code/__DEFINES/radio.dm index 367c35be56..86cae77ed2 100644 --- a/code/__DEFINES/radio.dm +++ b/code/__DEFINES/radio.dm @@ -37,6 +37,8 @@ #define RADIO_CHANNEL_REQ "Req" #define RADIO_CHANNEL_SENTRY "Sentry Network" #define RADIO_CHANNEL_SPECIAL "special" +#define RADIO_CHANNEL_USASF "USASF" +#define RADIO_CHANNEL_US_ARMY "US Army" //CLF Comms #define RADIO_CHANNEL_CLF_GEN "CLF" diff --git a/code/controllers/subsystem/communications.dm b/code/controllers/subsystem/communications.dm index e1b547664f..c238c50cd4 100644 --- a/code/controllers/subsystem/communications.dm +++ b/code/controllers/subsystem/communications.dm @@ -76,6 +76,8 @@ Radiochat range: 1441 to 1489 (most devices refuse to be tune to other frequency #define VAI_FREQ 1215 #define RMC_FREQ 1216 #define CMB_FREQ 1220 +#define ASF_FREQ 1224 +#define ARM_FREQ 1228 //WY Channels (1230-1249) #define WY_FREQ 1231 @@ -150,6 +152,8 @@ GLOBAL_LIST_INIT(radiochannels, list( RADIO_CHANNEL_YAUTJA = YAUT_FREQ, RADIO_CHANNEL_VAI = VAI_FREQ, RADIO_CHANNEL_CMB = CMB_FREQ, + RADIO_CHANNEL_USASF = ASF_FREQ, + RADIO_CHANNEL_US_ARMY = ARM_FREQ, RADIO_CHANNEL_DUTCH_DOZEN = DUT_FREQ, RADIO_CHANNEL_ROYAL_MARINE = RMC_FREQ, @@ -224,7 +228,7 @@ GLOBAL_LIST_INIT(radiochannels, list( #define BUG_FREQS list(BUG_A_FREQ, BUG_B_FREQ) //Depts - used for colors in headset.dm, as well as deciding what the marine comms tower can listen into -#define DEPT_FREQS list(COMM_FREQ, MED_FREQ, ENG_FREQ, SEC_FREQ, SENTRY_FREQ, ALPHA_FREQ, BRAVO_FREQ, CHARLIE_FREQ, DELTA_FREQ, ECHO_FREQ, CRYO_FREQ, REQ_FREQ, JTAC_FREQ, INTEL_FREQ, WY_FREQ) +#define DEPT_FREQS list(COMM_FREQ, MED_FREQ, ENG_FREQ, SEC_FREQ, SENTRY_FREQ, ALPHA_FREQ, BRAVO_FREQ, CHARLIE_FREQ, DELTA_FREQ, ECHO_FREQ, CRYO_FREQ, REQ_FREQ, JTAC_FREQ, INTEL_FREQ, WY_FREQ, ASF_FREQ, ARM_FREQ) #define TRANSMISSION_WIRE 0 #define TRANSMISSION_RADIO 1 @@ -275,6 +279,8 @@ SUBSYSTEM_DEF(radio) "[VAI_FREQ]" = "vairadio", "[RMC_FREQ]" = "rmcradio", "[CMB_FREQ]" = "cmbradio", + "[ASF_FREQ]" = "usasfradio", + "[ARM_FREQ]" = "armyradio", "[ALPHA_FREQ]" = "alpharadio", "[BRAVO_FREQ]" = "bravoradio", "[CHARLIE_FREQ]" = "charlieradio", diff --git a/code/datums/paygrades/factions/uscm/marine.dm b/code/datums/paygrades/factions/uscm/marine.dm index 6a1446dd6b..516537b3a0 100644 --- a/code/datums/paygrades/factions/uscm/marine.dm +++ b/code/datums/paygrades/factions/uscm/marine.dm @@ -102,6 +102,48 @@ ranking = 11 pay_multiplier = 3 +// WARRANT OFFICER PAYGRADES + +/datum/paygrade/marine/w1 + paygrade = PAY_SHORT_MW1 + name = "Warrant Officer" + prefix = "WO" + rank_pin = /obj/item/clothing/accessory/ranks/marine/w1 + ranking = 12 + pay_multiplier = 2.75 //Pay on par with E7 to begin with + +/datum/paygrade/marine/w2 + paygrade = PAY_SHORT_MW2 + name = "Chief Warrant Officer 2" + prefix = "CWO2" + rank_pin = /obj/item/clothing/accessory/ranks/marine/w2 + ranking = 13 + pay_multiplier = 2.9 + +/datum/paygrade/marine/w3 + paygrade = PAY_SHORT_MW3 + name = "Chief Warrant Officer 3" + prefix = "CWO3." + rank_pin = /obj/item/clothing/accessory/ranks/marine/w3 + ranking = 14 + pay_multiplier = 3 + +/datum/paygrade/marine/w4 + paygrade = PAY_SHORT_MW4 + name = "Chief Warrant Officer 4" + prefix = "CWO4" + rank_pin = /obj/item/clothing/accessory/ranks/marine/w4 + ranking = 15 + pay_multiplier = 3.2 + +/datum/paygrade/marine/w5 + paygrade = PAY_SHORT_MW5 + name = "Chief Warrant Officer 5" + prefix = "CWO5" + rank_pin = /obj/item/clothing/accessory/ranks/marine/w5 + ranking = 16 + pay_multiplier = 3.5 + // COMMISSIONED PAYGRADES /datum/paygrade/marine/o1 @@ -109,7 +151,7 @@ name = "Second Lieutenant" prefix = "2ndLt" rank_pin = /obj/item/clothing/accessory/ranks/marine/o1 - ranking = 12 + ranking = 17 pay_multiplier = 3 officer_grade = GRADE_OFFICER @@ -118,7 +160,7 @@ name = "First Lieutenant" prefix = "1stLt" rank_pin = /obj/item/clothing/accessory/ranks/marine/o2 - ranking = 13 + ranking = 18 pay_multiplier = 3.2 officer_grade = GRADE_OFFICER @@ -127,7 +169,7 @@ name = "Captain" prefix = "Capt" rank_pin = /obj/item/clothing/accessory/ranks/marine/o3 - ranking = 14 + ranking = 19 pay_multiplier = 4 officer_grade = GRADE_OFFICER @@ -136,7 +178,7 @@ name = "Major" prefix = "Maj" rank_pin = /obj/item/clothing/accessory/ranks/marine/o4 - ranking = 15 + ranking = 20 pay_multiplier = 4 officer_grade = GRADE_OFFICER @@ -145,7 +187,7 @@ name = "Lieutenant Colonel" prefix = "LtCol" rank_pin = /obj/item/clothing/accessory/ranks/marine/o5 - ranking = 16 + ranking = 21 pay_multiplier = 4.2 officer_grade = GRADE_OFFICER @@ -155,7 +197,7 @@ name = "Colonel" prefix = "Col" rank_pin = /obj/item/clothing/accessory/ranks/marine/o6 - ranking = 17 + ranking = 22 pay_multiplier = 4.4 officer_grade = GRADE_OFFICER @@ -164,7 +206,7 @@ name = "Senior Colonel" prefix = "Snr Col." rank_pin = /obj/item/clothing/accessory/ranks/marine/o6e - ranking = 18 + ranking = 23 pay_multiplier = 4.6 officer_grade = GRADE_OFFICER @@ -173,7 +215,7 @@ name = "Division Colonel" prefix = "Div Col." rank_pin = /obj/item/clothing/accessory/ranks/marine/o6c - ranking = 19 + ranking = 24 pay_multiplier = 4.8 officer_grade = GRADE_OFFICER @@ -183,7 +225,7 @@ name = "Brigadier General" prefix = "BGen" rank_pin = /obj/item/clothing/accessory/ranks/marine/o7 - ranking = 20 + ranking = 25 pay_multiplier = 6 officer_grade = GRADE_FLAG @@ -192,7 +234,7 @@ name = "Major General" prefix = "MajGen" rank_pin = /obj/item/clothing/accessory/ranks/marine/o8 - ranking = 21 + ranking = 26 pay_multiplier = 6.2 officer_grade = GRADE_FLAG @@ -201,7 +243,7 @@ name = "Lieutenant General" prefix = "LtGen" rank_pin = /obj/item/clothing/accessory/ranks/marine/o9 - ranking = 22 + ranking = 27 pay_multiplier = 6.4 officer_grade = GRADE_FLAG @@ -210,7 +252,7 @@ name = "General" prefix = "Gen" rank_pin = /obj/item/clothing/accessory/ranks/marine/o10 - ranking = 23 + ranking = 28 pay_multiplier = 6.6 officer_grade = GRADE_FLAG @@ -219,7 +261,7 @@ name = "Assistant Commandant of the Marine Corps" prefix = "ACMC" rank_pin = /obj/item/clothing/accessory/ranks/marine/o10c - ranking = 24 + ranking = 29 pay_multiplier = 6.8 officer_grade = GRADE_FLAG @@ -228,6 +270,6 @@ name = "Commandant of the Marine Corps" prefix = "CMC" rank_pin = /obj/item/clothing/accessory/ranks/marine/o10c - ranking = 25 + ranking = 30 pay_multiplier = 7 officer_grade = GRADE_FLAG diff --git a/code/datums/paygrades/factions/uscm/navy.dm b/code/datums/paygrades/factions/uscm/navy.dm index 0c2c44ae6d..e93246f9bc 100644 --- a/code/datums/paygrades/factions/uscm/navy.dm +++ b/code/datums/paygrades/factions/uscm/navy.dm @@ -120,7 +120,7 @@ ranking = 13 pay_multiplier = 3.3 -/datum/paygrade/navy/w1 +/datum/paygrade/navy/w4 paygrade = PAY_SHORT_NW4 name = "Chief Warrant Officer 4" prefix = "CWO4." diff --git a/code/datums/skills/army.dm b/code/datums/skills/army.dm new file mode 100644 index 0000000000..cb48199135 --- /dev/null +++ b/code/datums/skills/army.dm @@ -0,0 +1,72 @@ +/* +------------------ +United States Army +------------------ +*/ + +/datum/skills/trooper + name = "Trooper" + skills = list( + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, + SKILL_VEHICLE = SKILL_VEHICLE_SMALL, + SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, + ) + +/datum/skills/sapper + name = "Sapper" + skills = list( + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, + SKILL_ENGINEER = SKILL_ENGINEER_ENGI, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_VEHICLE = SKILL_VEHICLE_LARGE, + SKILL_POWERLOADER = SKILL_POWERLOADER_TRAINED, + SKILL_JTAC = SKILL_JTAC_BEGINNER, + SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, + ) + +/datum/skills/medic + name = "Combat Medical Technician" + skills = list( + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, + SKILL_VEHICLE = SKILL_VEHICLE_SMALL, + SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, + SKILL_SURGERY = SKILL_SURGERY_NOVICE, + SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, + SKILL_INTEL = SKILL_INTEL_EXPERT, //so they can wear the XM4 armor + ) + +/datum/skills/nco + name = "Fireteam Leader" + skills = list( + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, + SKILL_JTAC = SKILL_JTAC_EXPERT, + SKILL_LEADERSHIP = SKILL_LEAD_TRAINED, + SKILL_VEHICLE = SKILL_VEHICLE_SMALL, + SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, + ) + +/datum/skills/snco + name = "Squad Leader" + skills = list( + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, + SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_LEADERSHIP = SKILL_LEAD_EXPERT, + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_JTAC = SKILL_JTAC_TRAINED, + SKILL_VEHICLE = SKILL_VEHICLE_SMALL, + SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, + ) + +/datum/skills/lt + name = "Platoon Officer" + skills = list( + SKILL_FIREMAN = SKILL_FIREMAN_TRAINED, + SKILL_LEADERSHIP = SKILL_LEAD_EXPERT, + SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, + SKILL_POLICE = SKILL_POLICE_FLASH, + SKILL_VEHICLE = SKILL_VEHICLE_LARGE, + SKILL_JTAC = SKILL_JTAC_EXPERT, + SKILL_PILOT = SKILL_PILOT_TRAINED, + SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, + SKILL_INTEL = SKILL_INTEL_EXPERT, //so they can wear the XM4 armor + ) diff --git a/code/datums/skills/usasf.dm b/code/datums/skills/usasf.dm new file mode 100644 index 0000000000..5116cd0567 --- /dev/null +++ b/code/datums/skills/usasf.dm @@ -0,0 +1,154 @@ +/* +------------------------------ +United States Aerospace Force +------------------------------ +*/ + +/datum/skills/ship_crew + name = "Crewman" + skills = list( + SKILL_ENGINEER = SKILL_ENGINEER_NOVICE, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_TRAINED, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, + SKILL_POWERLOADER = SKILL_POWERLOADER_TRAINED, + SKILL_VEHICLE = SKILL_VEHICLE_DEFAULT, + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, + SKILL_DOMESTIC = SKILL_DOMESTIC_MASTER, + ) + +/datum/skills/flight_crew + name = "Flight-Deck Crewman" + skills = list( + SKILL_ENGINEER = SKILL_ENGINEER_NOVICE, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_TRAINED, + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, + SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, + SKILL_VEHICLE = SKILL_VEHICLE_DEFAULT, + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, + SKILL_PILOT = SKILL_PILOT_TRAINED, + ) + +/datum/skills/corpsman + name = "Hospital Corpsma" + skills = list( + SKILL_FIREMAN = SKILL_FIREMAN_EXPERT, + SKILL_VEHICLE = SKILL_VEHICLE_DEFAULT, + SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, + SKILL_MEDICAL = SKILL_MEDICAL_DOCTOR, + SKILL_SURGERY = SKILL_SURGERY_NOVICE, + ) + +/datum/skills/eng_tech + name = "Engineering Technician" + skills = list( + SKILL_FIREMAN = SKILL_FIREMAN_SKILLED, + SKILL_VEHICLE = SKILL_VEHICLE_DEFAULT, + SKILL_ENGINEER = SKILL_ENGINEER_MASTER, + SKILL_ENDURANCE = SKILL_ENDURANCE_TRAINED, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_MASTER, + SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, + SKILL_DOMESTIC = SKILL_DOMESTIC_TRAINED, + SKILL_PILOT = SKILL_PILOT_TRAINED, + ) + +/datum/skills/para_tech + name = "Para-Rescue Support Technician" + skills = list( + SKILL_ENGINEER = SKILL_ENGINEER_TRAINED, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_FIREMAN = SKILL_FIREMAN_EXPERT, + SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, + SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, + SKILL_SURGERY = SKILL_SURGERY_TRAINED, + SKILL_ENDURANCE = SKILL_ENDURANCE_SURVIVOR, + SKILL_LEADERSHIP = SKILL_LEAD_TRAINED, + SKILL_VEHICLE = SKILL_VEHICLE_DEFAULT, + SKILL_JTAC = SKILL_JTAC_TRAINED, + ) + +/datum/skills/jtac + name = "Orbital Fire-Support Liason Officer" + skills = list( + SKILL_ENGINEER = SKILL_ENGINEER_TRAINED, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_TRAINED, + SKILL_MELEE_WEAPONS = SKILL_MELEE_TRAINED, + SKILL_CQC = SKILL_CQC_TRAINED, + SKILL_FIREMAN = SKILL_FIREMAN_EXPERT, + SKILL_FIREARMS = SKILL_FIREARMS_TRAINED, + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_ENDURANCE = SKILL_ENDURANCE_SURVIVOR, + SKILL_LEADERSHIP = SKILL_LEAD_TRAINED, + SKILL_VEHICLE = SKILL_VEHICLE_DEFAULT, + SKILL_JTAC = SKILL_JTAC_EXPERT, + ) + +/datum/skills/officer + name = "Duty Officer" + skills = list( + SKILL_LEADERSHIP = SKILL_LEAD_EXPERT, + SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, + SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, + SKILL_FIREMAN = SKILL_FIREMAN_EXPERT, + SKILL_SURGERY = SKILL_SURGERY_NOVICE, + SKILL_POLICE = SKILL_POLICE_FLASH, + SKILL_VEHICLE = SKILL_VEHICLE_LARGE, + SKILL_JTAC = SKILL_JTAC_EXPERT, + SKILL_INTEL = SKILL_INTEL_TRAINED, + SKILL_PILOT = SKILL_PILOT_TRAINED, + SKILL_NAVIGATIONS = SKILL_NAVIGATIONS_TRAINED, + ) + +/datum/skills/flightboss + name = "Flight Boss" + skills = list( + SKILL_LEADERSHIP = SKILL_LEAD_EXPERT, + SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, + SKILL_FIREMAN = SKILL_FIREMAN_EXPERT, + SKILL_MEDICAL = SKILL_MEDICAL_TRAINED, + SKILL_POLICE = SKILL_POLICE_FLASH, + SKILL_VEHICLE = SKILL_VEHICLE_LARGE, + SKILL_JTAC = SKILL_JTAC_TRAINED, + SKILL_INTEL = SKILL_INTEL_TRAINED, + SKILL_PILOT = SKILL_PILOT_EXPERT, + SKILL_NAVIGATIONS = SKILL_NAVIGATIONS_TRAINED, + SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, + ) + +/datum/skills/navycengi + name = "Engineering Duty Officer" + skills = list( + SKILL_ENGINEER = SKILL_ENGINEER_MASTER, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_MASTER, + SKILL_LEADERSHIP = SKILL_LEAD_MASTER, + SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, + SKILL_POLICE = SKILL_POLICE_FLASH, + SKILL_FIREMAN = SKILL_FIREMAN_EXPERT, + SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, + SKILL_JTAC = SKILL_JTAC_MASTER, + SKILL_VEHICLE = SKILL_VEHICLE_LARGE, + SKILL_INTEL = SKILL_INTEL_TRAINED, + SKILL_PILOT = SKILL_PILOT_TRAINED, + SKILL_NAVIGATIONS = SKILL_NAVIGATIONS_TRAINED, + ) + +/datum/skills/navycommander + name = "USASF Commanding Officer" + skills = list( + SKILL_ENGINEER = SKILL_ENGINEER_TRAINED, + SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI, + SKILL_LEADERSHIP = SKILL_LEAD_MASTER, + SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED, + SKILL_MEDICAL = SKILL_MEDICAL_MEDIC, + SKILL_POLICE = SKILL_POLICE_SKILLED, + SKILL_FIREMAN = SKILL_FIREMAN_MASTER, + SKILL_VEHICLE = SKILL_VEHICLE_LARGE, + SKILL_CQC = SKILL_CQC_EXPERT, + SKILL_POWERLOADER = SKILL_POWERLOADER_MASTER, + SKILL_ENDURANCE = SKILL_ENDURANCE_MASTER, + SKILL_JTAC = SKILL_JTAC_MASTER, + SKILL_NAVIGATIONS = SKILL_NAVIGATIONS_TRAINED, //can change ship alt + ) diff --git a/code/game/jobs/job/special/army.dm b/code/game/jobs/job/special/army.dm new file mode 100644 index 0000000000..0faf68a5de --- /dev/null +++ b/code/game/jobs/job/special/army.dm @@ -0,0 +1,31 @@ +/datum/job/trooper/standard + title = JOB_ARMY_TROOPER + supervisors = "the ranking Army member present" + gear_preset = /datum/equipment_preset/usa/trooper + +/datum/job/trooper/standard/on_config_load() + entry_message_body = "You are a rank-and-file Soldier of your standing army, and that is your strength. What you lack alone, you gain standing shoulder to shoulder with the men and women of the platoon. Hoo-ah!" + return ..() + +/datum/job/trooper/sapper + title = JOB_ARMY_ENGI + gear_preset = /datum/equipment_preset/usa/sapper + +/datum/job/trooper/medic + title = JOB_ARMY_MEDIC + gear_preset = /datum/equipment_preset/usasf/chief_engineer + +/datum/job/trooper/nco + title = JOB_ARMY_NCO + gear_preset = /datum/equipment_preset/usa/nco + gear_preset_secondary = /datum/equipment_preset/usa/nco/lesser_rank + +/datum/job/trooper/snco + title = JOB_ARMY_SNCO + gear_preset = /datum/equipment_preset/usa/snco + gear_preset_secondary = /datum/equipment_preset/usa/snco/lesser_rank + +/datum/job/trooper/lt + title = JOB_ARMY_LT + gear_preset = /datum/equipment_preset/usa/lt + gear_preset_secondary = /datum/equipment_preset/usa/lt/lesser_rank diff --git a/code/game/jobs/job/special/usasf.dm b/code/game/jobs/job/special/usasf.dm new file mode 100644 index 0000000000..9cfe992704 --- /dev/null +++ b/code/game/jobs/job/special/usasf.dm @@ -0,0 +1,79 @@ +/datum/job/seaman/standard + title = JOB_NAVY_CREWMAN + gear_preset = /datum/equipment_preset/usasf/crew + gear_preset_secondary = /datum/equipment_preset/usasf/crew/snipe + +/datum/job/seaman/standard/on_config_load() + entry_message_body = "You are a rank-and-file sailor of your aerospace force, and that is your strength. You're a part of a great machine, helping operate vessels that sail between the stars and deliver extreme firepower to enemies of your nation. Hoo-yah!" + return ..() + +/datum/job/seaman/skittle + title = JOB_NAVY_SKITTLE + gear_preset = /datum/equipment_preset/usasf/crew/flight + gear_preset_secondary = /datum/equipment_preset/usasf/crew/flight/green + +/datum/job/seaman/skittle/on_config_load() + entry_message_body = "You are a part of the flight-deck operations crew aboard a USASF vessel, working to prepare and keep aerospace craft in fighting condition. Hoo-yah!" + return ..() + +/datum/job/seaman/skittle/purpwhite + gear_preset = /datum/equipment_preset/usasf/crew/flight/purple + gear_preset_secondary = /datum/equipment_preset/usasf/crew/flight/white + +/datum/job/seaman/skittle/blue + gear_preset = /datum/equipment_preset/usasf/crew/flight/blue + +/datum/job/seaman/medic + title = JOB_NAVY_MEDIC + gear_preset = /datum/equipment_preset/usasf/corpsman + +/datum/job/seaman/medic/on_config_load() + entry_message_body = "You are tasked with keeping the crewmen aboard healthy and strong. You are also an expert when it comes to medication and treatment, and can do minor surgical procedures. Anything beyond your skillset can typically be handled by the autodocs. Hoo-yah!" + return ..() + +/datum/job/seaman/engi + title = JOB_NAVY_ENGI + gear_preset = /datum/equipment_preset/usasf/engi + +/datum/job/seaman/engi/on_config_load() + entry_message_body = "Your job is to keep the vessel you're aboard in peak condition, fixing any faults or damages sustained throughout it's tasking. Hoo-yah!" + return ..() + +/datum/job/seaman/helljumper + title = JOB_NAVY_PARA_TECH + gear_preset = /datum/equipment_preset/usasf/helljumper + +/datum/job/seaman/helljumper/on_config_load() + entry_message_body = "You're part of the elite 7th Para-Rescue Battalion, equipped with high-end kit and the skills to drop feet first into hell from the back of dropships and help allied units in great need of assistance. Hoo-yah!" + return ..() + +/datum/job/seaman/jtac + title = JOB_NAVY_JTAC + gear_preset = /datum/equipment_preset/usasf/jtac + gear_preset_secondary = /datum/equipment_preset/usasf/jtac/lesser_rank + +/datum/job/seaman/jtac/on_config_load() + entry_message_body = "Often deployed alongside ground forces such as the Colonial Marines or Army, your job is to coordinate fire support from up on high onto concentrations of enemy forces. Hoo-yah!" + entry_message_end = "This role will likely require coordination with the gamemaster(s) to represent called-in fire-support, ahelp should you have further questions for them." + return ..() + +/datum/job/seaman/officer + title = JOB_NAVY_SO + gear_preset = /datum/equipment_preset/usasf/officer + gear_preset_secondary = /datum/equipment_preset/usasf/officer/lesser_rank + +/datum/job/seaman/flightboss + title = JOB_NAVY_FLIGHT_BOSS + gear_preset = /datum/equipment_preset/usasf/flightboss + +/datum/job/seaman/chief_engineer + title = JOB_NAVY_CHIEF_ENGINEER + gear_preset = /datum/equipment_preset/usasf/chief_engineer + +/datum/job/seaman/synth + title = JOB_NAVY_SYNTH + gear_preset = /datum/equipment_preset/synth/uscm/usasf + +/datum/job/seaman/CO + title = JOB_NAVY_CO + gear_preset = /datum/equipment_preset/usasf/CO diff --git a/code/game/machinery/telecomms/presets.dm b/code/game/machinery/telecomms/presets.dm index 85cb0ae1c9..9bb74eeed2 100644 --- a/code/game/machinery/telecomms/presets.dm +++ b/code/game/machinery/telecomms/presets.dm @@ -446,7 +446,7 @@ GLOBAL_LIST_EMPTY(all_static_telecomms_towers) id = "Receiver B" network = "tcommsat" autolinkers = list("receiverB") // link to relay - freq_listening = list(COMM_FREQ, ENG_FREQ, SEC_FREQ, MED_FREQ, REQ_FREQ, SENTRY_FREQ, WY_WO_FREQ, PMC_FREQ, DUT_FREQ, YAUT_FREQ, JTAC_FREQ, INTEL_FREQ, WY_FREQ, HC_FREQ, PVST_FREQ, SOF_FREQ) + freq_listening = list(COMM_FREQ, ENG_FREQ, SEC_FREQ, MED_FREQ, REQ_FREQ, SENTRY_FREQ, WY_WO_FREQ, PMC_FREQ, DUT_FREQ, YAUT_FREQ, JTAC_FREQ, INTEL_FREQ, WY_FREQ, HC_FREQ, PVST_FREQ, SOF_FREQ, ASF_FREQ, ARM_FREQ) //Common and other radio frequencies for people to freely use /obj/structure/machinery/telecomms/receiver/preset/Initialize(mapload, ...) @@ -458,7 +458,7 @@ GLOBAL_LIST_EMPTY(all_static_telecomms_towers) id = "CentComm Receiver" network = "tcommsat" autolinkers = list("receiverCent") - freq_listening = list(WY_WO_FREQ, PMC_FREQ, DUT_FREQ, YAUT_FREQ, HC_FREQ, PVST_FREQ, SOF_FREQ, CBRN_FREQ, FORECON_FREQ) + freq_listening = list(WY_WO_FREQ, PMC_FREQ, DUT_FREQ, YAUT_FREQ, HC_FREQ, PVST_FREQ, SOF_FREQ, CBRN_FREQ, FORECON_FREQ, ASF_FREQ, ARM_FREQ) //Buses @@ -477,7 +477,7 @@ GLOBAL_LIST_EMPTY(all_static_telecomms_towers) /obj/structure/machinery/telecomms/bus/preset_three id = "Bus 3" network = "tcommsat" - freq_listening = list(SEC_FREQ, COMM_FREQ, WY_WO_FREQ, PMC_FREQ, DUT_FREQ, YAUT_FREQ, JTAC_FREQ, INTEL_FREQ, WY_FREQ, HC_FREQ, PVST_FREQ, SOF_FREQ, CBRN_FREQ) + freq_listening = list(SEC_FREQ, COMM_FREQ, WY_WO_FREQ, PMC_FREQ, DUT_FREQ, YAUT_FREQ, JTAC_FREQ, INTEL_FREQ, WY_FREQ, HC_FREQ, PVST_FREQ, SOF_FREQ, CBRN_FREQ, ASF_FREQ, ARM_FREQ) autolinkers = list("processor3", "security", "command", "JTAC") /obj/structure/machinery/telecomms/bus/preset_four @@ -493,7 +493,7 @@ GLOBAL_LIST_EMPTY(all_static_telecomms_towers) /obj/structure/machinery/telecomms/bus/preset_cent id = "CentComm Bus" network = "tcommsat" - freq_listening = list(WY_WO_FREQ, PMC_FREQ, DUT_FREQ, YAUT_FREQ, HC_FREQ, PVST_FREQ, SOF_FREQ, CBRN_FREQ) + freq_listening = list(WY_WO_FREQ, PMC_FREQ, DUT_FREQ, YAUT_FREQ, HC_FREQ, PVST_FREQ, SOF_FREQ, CBRN_FREQ, ASF_FREQ, ARM_FREQ) autolinkers = list("processorCent", "centcomm") //Processors @@ -558,7 +558,7 @@ GLOBAL_LIST_EMPTY(all_static_telecomms_towers) /obj/structure/machinery/telecomms/server/presets/command id = "Command Server" - freq_listening = list(COMM_FREQ, WY_WO_FREQ, PMC_FREQ, DUT_FREQ, YAUT_FREQ, JTAC_FREQ, INTEL_FREQ, WY_FREQ, HC_FREQ, PVST_FREQ, SOF_FREQ, CBRN_FREQ) + freq_listening = list(COMM_FREQ, WY_WO_FREQ, PMC_FREQ, DUT_FREQ, YAUT_FREQ, JTAC_FREQ, INTEL_FREQ, WY_FREQ, HC_FREQ, PVST_FREQ, SOF_FREQ, CBRN_FREQ, ASF_FREQ, ARM_FREQ) autolinkers = list("command") /obj/structure/machinery/telecomms/server/presets/engineering @@ -573,7 +573,7 @@ GLOBAL_LIST_EMPTY(all_static_telecomms_towers) /obj/structure/machinery/telecomms/server/presets/centcomm id = "CentComm Server" - freq_listening = list(WY_WO_FREQ, PMC_FREQ, DUT_FREQ, YAUT_FREQ, HC_FREQ, PVST_FREQ, SOF_FREQ, CBRN_FREQ) + freq_listening = list(WY_WO_FREQ, PMC_FREQ, DUT_FREQ, YAUT_FREQ, HC_FREQ, PVST_FREQ, SOF_FREQ, CBRN_FREQ, ASF_FREQ, ARM_FREQ) autolinkers = list("centcomm") //Broadcasters diff --git a/code/game/objects/items/devices/radio/encryptionkey.dm b/code/game/objects/items/devices/radio/encryptionkey.dm index 160f4beaff..fc0169d864 100644 --- a/code/game/objects/items/devices/radio/encryptionkey.dm +++ b/code/game/objects/items/devices/radio/encryptionkey.dm @@ -368,3 +368,43 @@ name = "\improper Mortar Crew Radio Encryption Key" icon_state = "eng_key" channels = list(RADIO_CHANNEL_ENGI = TRUE, RADIO_CHANNEL_JTAC = TRUE, RADIO_CHANNEL_INTEL = TRUE, RADIO_CHANNEL_REQ = TRUE) + +/obj/item/device/encryptionkey/usasf + name = "\improper USASF Radio Encryption Key" + icon_state = "eng_key" + channels = list(RADIO_CHANNEL_USASF = TRUE, RADIO_CHANNEL_COLONY = TRUE) + +/obj/item/device/encryptionkey/usasf/attache + name = "\improper USASF Radio Encryption Key" + icon_state = "eng_key" + channels = list(RADIO_CHANNEL_USASF = TRUE, RADIO_CHANNEL_COLONY = TRUE, SQUAD_MARINE_1 = TRUE) + +/obj/item/device/encryptionkey/usasf/command + name = "\improper USASF Command Radio Encryption Key" + icon_state = "binary_key" + channels = list(RADIO_CHANNEL_USASF = TRUE, RADIO_CHANNEL_COMMAND = TRUE, RADIO_CHANNEL_COLONY = TRUE, RADIO_CHANNEL_JTAC = TRUE) + +/obj/item/device/encryptionkey/usasf/command/attache + name = "\improper USASF Command Radio Encryption Key" + icon_state = "binary_key" + channels = list(RADIO_CHANNEL_USASF = TRUE, RADIO_CHANNEL_COMMAND = TRUE, RADIO_CHANNEL_COLONY = TRUE, RADIO_CHANNEL_JTAC = TRUE, SQUAD_MARINE_1 = TRUE) + +/obj/item/device/encryptionkey/army + name = "\improper US Army Radio Encryption Key" + icon_state = "stripped_key" + channels = list(RADIO_CHANNEL_US_ARMY = TRUE, RADIO_CHANNEL_COLONY = TRUE) + +/obj/item/device/encryptionkey/army/attache + name = "\improper US Army Radio Encryption Key" + icon_state = "stripped_key" + channels = list(RADIO_CHANNEL_US_ARMY = TRUE, RADIO_CHANNEL_COLONY = TRUE, SQUAD_MARINE_1 = TRUE) + +/obj/item/device/encryptionkey/army/command + name = "\improper US Army Command Radio Encryption Key" + icon_state = "sec_key" + channels = list(RADIO_CHANNEL_US_ARMY = TRUE, RADIO_CHANNEL_COMMAND = TRUE, RADIO_CHANNEL_COLONY = TRUE, RADIO_CHANNEL_JTAC = TRUE) + +/obj/item/device/encryptionkey/army/command/attache + name = "\improper US Army Command Radio Encryption Key" + icon_state = "sec_key" + channels = list(RADIO_CHANNEL_US_ARMY = TRUE, RADIO_CHANNEL_COMMAND = TRUE, RADIO_CHANNEL_COLONY = TRUE, RADIO_CHANNEL_JTAC = TRUE, SQUAD_MARINE_1 = TRUE) diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index 8ac47fe0f1..e6d4b3464f 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -1126,3 +1126,57 @@ ignore_z = FALSE has_hud = TRUE hud_type = MOB_HUD_FACTION_UPP + +/obj/item/device/radio/headset/distress/USASF + name = "\improper USASF earpiece" + desc = "A sleek headset used by members of the United States Aerospace Force, manufactured in Sol. Low profile and surprisngly comfortable. Featured channels include: ; - USASF, :o - Colony." + frequency = ASF_FREQ + icon_state = "nav_headset" + initial_keys = list(/obj/item/device/encryptionkey/usasf) + has_hud = TRUE + hud_type = MOB_HUD_FACTION_MARINE + +/obj/item/device/radio/headset/distress/USASF/attache + desc = "A sleek headset used by members of the United States Aerospace Force, manufactured in Sol. Low profile and surprisngly comfortable. Featured channels include: ; - USASF, :o - Colony, :a Local USCM Forces." + initial_keys = list(/obj/item/device/encryptionkey/usasf/attache) + +/obj/item/device/radio/headset/distress/USASF/command + name = "\improper USASF Command earpiece" + desc = "A sleek headset used by officers of the United States Aerospace Force, manufactured in Sol. Low profile and surprisngly comfortable, this one has a reinforced brace. Featured channels include: ; - USASF, :o - Colony, :g - public, :v - marine command, :J - JTAC." + icon_state = "navcom_headset" + initial_keys = list(/obj/item/device/encryptionkey/usasf/command) + volume = RADIO_VOLUME_CRITICAL + +/obj/item/device/radio/headset/distress/USASF/command/attache + name = "\improper USASF Command earpiece" + desc = "A sleek headset used by officers of the United States Aerospace Force, manufactured in Sol. Low profile and surprisngly comfortable, this one has a reinforced brace. Featured channels include: ; - USASF, :o - Colony, :g - public, :v - marine command, :J - JTAC, :a Local USCM Forces." + icon_state = "navcom_headset" + initial_keys = list(/obj/item/device/encryptionkey/usasf/command/attache) + volume = RADIO_VOLUME_CRITICAL + +/obj/item/device/radio/headset/distress/army + name = "\improper Army radio headset" + desc = "A robust headset used by members of the United States Army. Built to outlast those it's issued to. Featured channels include: ; - US Army, :o - Colony." + frequency = ARM_FREQ + icon_state = "arm_headset" + initial_keys = list(/obj/item/device/encryptionkey/army) + has_hud = TRUE + hud_type = MOB_HUD_FACTION_MARINE + +/obj/item/device/radio/headset/distress/army/attache + desc = "A robust headset used by members of the United States Army. Built to outlast those it's issued to. Featured channels include: ; - US Army, :o - Colony, :a Local USCM Forces." + initial_keys = list(/obj/item/device/encryptionkey/army/attache) + +/obj/item/device/radio/headset/distress/army/command + name = "\improper Army Command headset" + desc = "A robust headset used by officers of the United States Army. Built to outlast those it's issued to. This model features a reinforced brace complete with blinky light to make you seem even more important to the grunts you lead! Featured channels include: ; - US Army, :o - Colony, :v - marine command, :J - JTAC." + icon_state = "armcom_headset" + initial_keys = list(/obj/item/device/encryptionkey/army/command) + volume = RADIO_VOLUME_CRITICAL + +/obj/item/device/radio/headset/distress/army/command/attache + name = "\improper Army Command headset" + desc = "A robust headset used by officers of the United States Army. Built to outlast those it's issued to. This model features a reinforced brace complete with blinky light to make you seem even more important to the grunts you lead! Featured channels include: ; - US Army, :o - Colony, :v - marine command, :J - JTAC, :a Local USCM Forces." + icon_state = "armcom_headset" + initial_keys = list(/obj/item/device/encryptionkey/army/command/attache) + volume = RADIO_VOLUME_CRITICAL diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm index 61acabe07a..d00b6db876 100644 --- a/code/game/objects/items/storage/backpack.dm +++ b/code/game/objects/items/storage/backpack.dm @@ -1159,3 +1159,17 @@ GLOBAL_LIST_EMPTY_TYPED(radio_packs, /obj/item/storage/backpack/marine/satchel/r item_state = "rmc_general" has_gamemode_skin = FALSE max_storage_space = 15 + +//----------USASF & ARMY SECTION---------- + +/obj/item/storage/backpack/marine/satchel/rto/navy + name = "\improper USASF Radio Telephone Pack" + desc = "A heavy-duty pack, used for telecommunications between orbiting warships and their forward observers." + networks_receive = list(FACTION_MARINE, FACTION_NAVY) + networks_transmit = list(FACTION_MARINE, FACTION_NAVY) + +/obj/item/storage/backpack/marine/satchel/rto/army + name = "\improper US Army Radio Telephone Pack" + desc = "A heavy-duty pack, used for telecommunications between army elements in the field and higher command elements." + networks_receive = list(FACTION_MARINE, FACTION_ARMY) + networks_transmit = list(FACTION_MARINE, FACTION_ARMY) diff --git a/code/game/objects/items/storage/pouch.dm b/code/game/objects/items/storage/pouch.dm index b533bfd4ea..532aa35804 100644 --- a/code/game/objects/items/storage/pouch.dm +++ b/code/game/objects/items/storage/pouch.dm @@ -824,6 +824,14 @@ ) can_hold_skill_only = TRUE +/obj/item/storage/pouch/engikit/full/fill_preset_inventory() + new /obj/item/explosive/plastic(src) + new /obj/item/stack/cable_coil(src) + new /obj/item/cell/high(src) + new /obj/item/cell/high(src) + new /obj/item/circuitboard/apc(src) + new /obj/item/circuitboard/apc(src) + /obj/item/storage/pouch/medkit name = "medical kit pouch" storage_flags = STORAGE_FLAGS_POUCH diff --git a/code/modules/client/preferences_gear.dm b/code/modules/client/preferences_gear.dm index a0d9d1fda5..2d37321fb4 100644 --- a/code/modules/client/preferences_gear.dm +++ b/code/modules/client/preferences_gear.dm @@ -82,6 +82,10 @@ GLOBAL_LIST_EMPTY(gear_datums_by_name) display_name = "BiMex personal shades" path = /obj/item/clothing/glasses/sunglasses/big +/datum/gear/eyewear/bimex_shades_orange + display_name = "BiMex shooting shades" + path = /obj/item/clothing/glasses/sunglasses/big/orange + /datum/gear/eyewear/sunglasses display_name = "Sunglasses" path = /obj/item/clothing/glasses/sunglasses diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm index 44d1e0a8bd..f2f095c707 100644 --- a/code/modules/clothing/glasses/glasses.dm +++ b/code/modules/clothing/glasses/glasses.dm @@ -645,6 +645,11 @@ clothing_traits = list(TRAIT_BIMEX) flags_equip_slot = SLOT_EYES|SLOT_FACE +/obj/item/clothing/glasses/sunglasses/big/orange + name = "\improper BiMex shooting shades" + desc = "An expensive pair of BiMex branded, orange-tinted sunglasses. Largely produced for members of the US Army to protect their eyes from dust during range-time, but some pairs find their way onto the private market." + icon_state = "bigorangesunglasses" + item_state = "bigorangesunglasses" /obj/item/clothing/glasses/sunglasses/aviator name = "aviator shades" diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm index 15a4cf7424..6b7f39d199 100644 --- a/code/modules/clothing/gloves/miscellaneous.dm +++ b/code/modules/clothing/gloves/miscellaneous.dm @@ -56,7 +56,9 @@ permeability_coefficient = 0.9 siemens_coefficient = 0.9 - +/obj/item/clothing/gloves/botanic_leather/generic + desc = "These thick leather gloves are ideally suited for those who work with heavy machinery and require steady grip." + name = "rigger's gloves" /obj/item/clothing/gloves/boxing name = "boxing gloves" diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index 91c8fba5f0..029c039b8f 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -1520,3 +1520,24 @@ GLOBAL_LIST_INIT(allowed_helmet_items, list( armor_internaldamage = CLOTHING_ARMOR_LOW #undef HELMET_GARB_RELAY_ICON_STATE + +//=USASF & ARMY=\\ + +/obj/item/clothing/head/helmet/marine/tech/tanker/para + name = "\improper MK25 para-rescue helmet" + desc = "A heavily modified USCM tanker helmet used by members of the USASF para-rescue units for it's compact design and adequate protection. Camera on the side and biometric transmitter ties into the sensor matrix." + flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE + +/obj/item/clothing/head/helmet/marine/rto/navy + name = "\improper M12 pattern naval-deployment helmet" + desc = "Whilst the USCMC ultimately didn't adopt it, the USASF were more than happy to replace their aging stock of M09 helmets for personnel whose duties saw them deploy off-ship. New ceramic composites and suspension system show a remarkable increase in blunt impact resistance, while a revamped wiring structure added space for a second optic socket." + built_in_visors = list(new /obj/item/device/helmet_visor, new /obj/item/device/helmet_visor/medical) + start_down_visor_type = /obj/item/device/helmet_visor/medical + flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE + +/obj/item/clothing/head/helmet/marine/rto/army + name = "\improper M12 pattern helmet" + desc = "Despite it failing to be procured by the USCMC, the Army happily introduced the new M12 series of helmets to vast swathes of it's forces in a short span of time. New ceramic composites and suspension system show a remarkable increase in blunt impact resistance, while a revamped wiring structure added space for a second optic socket." + built_in_visors = list(new /obj/item/device/helmet_visor, new /obj/item/device/helmet_visor/medical) + start_down_visor_type = /obj/item/device/helmet_visor/medical + flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE diff --git a/code/modules/clothing/shoes/marine_shoes.dm b/code/modules/clothing/shoes/marine_shoes.dm index 964a81efc0..526decc7e2 100644 --- a/code/modules/clothing/shoes/marine_shoes.dm +++ b/code/modules/clothing/shoes/marine_shoes.dm @@ -88,6 +88,15 @@ armor_rad = CLOTHING_ARMOR_GIGAHIGHPLUS armor_bio = CLOTHING_ARMOR_GIGAHIGHPLUS +/obj/item/clothing/shoes/marine/UAAF + name = "combat boots" + desc = "Standard issue armored boots for combat scenarios or general work duties. Once polished to a mirror sheen, rough work has somewhat worn the veneer." + icon_state = "jackboots" + item_state = "jackboots" + +/obj/item/clothing/shoes/marine/UAAF/knife + spawn_item_type = /obj/item/attachable/bayonet + /obj/item/clothing/shoes/dress name = "dress shoes" desc = "Pre-polished fancy dress shoes. You can see your reflection in them." diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm index 589fb3b972..def4884a20 100644 --- a/code/modules/clothing/suits/jobs.dm +++ b/code/modules/clothing/suits/jobs.dm @@ -350,6 +350,42 @@ icon_state = "hazard_black" item_state = "hazard_black" +/obj/item/clothing/suit/storage/hazardvest/usasf + name = "ordanance-crew jacket" + desc = "A reddish-orange high-visibility jacket worn by USASF personnel assigned to handling of ordanance on the flight-deck." + icon_state = "hazard" + item_state = "hazard" + +/obj/item/clothing/suit/storage/hazardvest/usasf/green + name = "maintenance-crew jacket" + desc = "A green high-visibility jacket worn by USASF personnel assigned to maintenance of aerospace craft and the attendant launch & recovery equipment." + icon_state = "hazard_green" + item_state = "hazard_green" + +/obj/item/clothing/suit/storage/hazardvest/usasf/purple + name = "fuel-crew jacket" + desc = "A vibrant purple high-visibility jacket worn by USASF personnel delegated any and all duties pertaining to fuel on the flight-deck. Often nicknamed 'grapes' by other crewmembers." + icon_state = "hazard_purple" + item_state = "hazard_purple" + +/obj/item/clothing/suit/storage/hazardvest/usasf/white + name = "safety-crew jacket" + desc = "A dirty white high-visibility jacket worn by USASF personnel tasked with ensuring operations on the flight-deck are conducted in a safe and efficient manner." + icon_state = "hazard_white" + item_state = "hazard_white" + +/obj/item/clothing/suit/storage/hazardvest/usasf/blue + name = "handler-crew jacket" + desc = "A blue high-visibility jacket worn by USASF personnel responsible for moving aerospace craft around within the hangars." + icon_state = "hazard_blue" + item_state = "hazard_blue" + +/obj/item/clothing/suit/storage/hazardvest/usasf/yellow + name = "air-boss jacket" + desc = "A bright yellow high-visibility jacket worn by USASF officers that look after all aspects of the flight-deck." + icon_state = "hazard_yellow" + item_state = "hazard_yellow" + //Lawyer /obj/item/clothing/suit/storage/lawyer/bluejacket name = "Blue Suit Jacket" diff --git a/code/modules/clothing/suits/marine_armor/_marine_armor.dm b/code/modules/clothing/suits/marine_armor/_marine_armor.dm index f336ce1e46..d047127910 100644 --- a/code/modules/clothing/suits/marine_armor/_marine_armor.dm +++ b/code/modules/clothing/suits/marine_armor/_marine_armor.dm @@ -533,7 +533,7 @@ /obj/item/clothing/suit/storage/marine/light/recon name = "M3-R pattern light armor" - desc = "Special issue light armor for forward econnaissance Marines. Offers similar protection as M3 armor but none of the slowdown." + desc = "Special issue light armor for forward reconnaissance Marines. Offers similar protection as M3 armor but none of the slowdown." armor_melee = CLOTHING_ARMOR_MEDIUM armor_bullet = CLOTHING_ARMOR_MEDIUM armor_laser = CLOTHING_ARMOR_MEDIUMLOW @@ -684,3 +684,17 @@ icon_state = "cc_armor" flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE + +//==================USASF & ARMY==================\\ + +/obj/item/clothing/suit/storage/marine/medium/rto/navy + name = "\improper M4 pattern naval-deployment armor" + desc = "A set of USASF acquired M4 armor, modified to fit the needs of the members that see deployment on the surface of worlds. Robust, yet very nimble, with room for all your pouches." + movement_compensation = SLOWDOWN_ARMOR_LIGHT //carbon fibre and shit in the plates rather than heavy stuff, so the swabbies stay nimble + flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE + +/obj/item/clothing/suit/storage/marine/medium/rto/army + name = "\improper M4 pattern trooper armor" + desc = "Whilst it saw limited field-testing amongst the USCMC, the US Army adopted the M4 series pattern armor across the board. Surprisingly uncomfortable, even compared to the old M3 series armor." + flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE + diff --git a/code/modules/clothing/under/marine_uniform.dm b/code/modules/clothing/under/marine_uniform.dm index 0e8353e546..8644fe6507 100644 --- a/code/modules/clothing/under/marine_uniform.dm +++ b/code/modules/clothing/under/marine_uniform.dm @@ -1279,3 +1279,61 @@ armor_rad = CLOTHING_ARMOR_GIGAHIGHPLUS armor_internaldamage = CLOTHING_ARMOR_HIGHPLUS hood_type = /obj/item/clothing/head/helmet/marine/cbrn_hood/advanced + +//=USASF & ARMY=\\ + +/obj/item/clothing/under/marine/officer/ce/navy + name = "\improper duty officer uniform" + desc = "The uniform of a duty officer in the USASF. Specially treated for hazardous conditions work, high density layers provide some level of radiation protection." + armor_bio = CLOTHING_ARMOR_MEDIUMLOW + armor_rad = CLOTHING_ARMOR_MEDIUMLOW + armor_bomb = CLOTHING_ARMOR_MEDIUM + icon_state = "d_uscmboiler" + worn_state = "d_uscmboiler" + flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE + item_state_slots = list(WEAR_BODY = "d_uscmboiler") + +/obj/item/clothing/under/marine/officer/engi/navy + name = "\improper crew uniform" + desc = "The uniform of an aerospace force crewman. Specially treated for hazardous materials handing and hostile conditions." + armor_bio = CLOTHING_ARMOR_LOW + armor_rad = CLOTHING_ARMOR_LOW + armor_bomb = CLOTHING_ARMOR_MEDIUM + icon_state = "mt_jumpsuit" + worn_state = "mt_jumpsuit" + flags_jumpsuit = UNIFORM_SLEEVE_ROLLABLE + flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE + item_state_slots = list(WEAR_BODY = "mt_jumpsuit") + +/obj/item/clothing/under/marine/officer/engi/OT/navy + name = "\improper damage-control crew uniform" + desc = "The uniform of an aerospace force crewman. Specially treated for hazardous materials handing and hostile conditions. This one has the color-flashes of a member of the ship damage-control teams on it." + icon_state = "ot_jumpsuit" + worn_state = "ot_jumpsuit" + item_state_slots = list(WEAR_BODY = "ot_jumpsuit") + flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE + +/obj/item/clothing/under/marine/officer/engi/navy/tech + name = "\improper engineering technician uniform" + desc = "The uniform of an aerospace force engineering technician. Specially treated for hazardous materials handing and hostile conditions, with reinforced material around the elbows and knees." + icon_state = "ua_boiler" + worn_state = "ua_boiler" + flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE + +/obj/item/clothing/under/marine/officer/pilot/flight/para + name = "\improper para-rescue flightsuit" + desc = "A flightsuit worn by the elite para-rescue forces of the USASF, with all the necessary straps and rigging for supporting the sheer balls these servicemen have. Looks badass." + suit_restricted = list(/obj/item/clothing/suit/storage/marine/medium/rto/navy) + flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE + +/obj/item/clothing/under/marine/officer/intel/navy + name = "\improper USASF combat uniform" + desc = "Forward-observation work is dangerous, but it's slightly less dangerous when your duty uniform can almost stop a bullet. Also features many pockets and attachment points for all storage needs." + suit_restricted = list(/obj/item/clothing/suit/storage/marine/medium/rto/navy) + flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE + +/obj/item/clothing/under/marine/standard/army + name = "\improper army combat uniform" + desc = "Standard-issue Army uniform, complete with venlar armor inserts at critical areas to protect from blades and ballistics." + suit_restricted = list(/obj/item/clothing/suit/storage/marine/medium/rto/army, ) + flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE diff --git a/code/modules/clothing/under/rank_pins.dm b/code/modules/clothing/under/rank_pins.dm index 2f9e6097c1..de2642b340 100644 --- a/code/modules/clothing/under/rank_pins.dm +++ b/code/modules/clothing/under/rank_pins.dm @@ -64,6 +64,32 @@ rank_short = PAY_SHORT_ME9C icon_state = "ranks_snco" +//WARRANT OFFICERS +/obj/item/clothing/accessory/ranks/marine/w1 + name = "rank boards" + rank_short = PAY_SHORT_MW1 + icon_state = "ranks_juniorwarrant" + +/obj/item/clothing/accessory/ranks/marine/w2 + name = "rank boards" + rank_short = PAY_SHORT_MW2 + icon_state = "ranks_juniorwarrant" + +/obj/item/clothing/accessory/ranks/marine/w3 + name = "rank boards" + rank_short = PAY_SHORT_MW3 + icon_state = "ranks_warrant" + +/obj/item/clothing/accessory/ranks/marine/w4 + name = "rank boards" + rank_short = PAY_SHORT_MW4 + icon_state = "ranks_warrant" + +/obj/item/clothing/accessory/ranks/marine/w5 + name = "rank boards" + rank_short = PAY_SHORT_MW5 + icon_state = "ranks_seniorwarrant" + //OFFICERS /obj/item/clothing/accessory/ranks/marine/o1 rank_short = PAY_SHORT_MO1 diff --git a/code/modules/clothing/under/ties.dm b/code/modules/clothing/under/ties.dm index 305627637b..f80bb16079 100644 --- a/code/modules/clothing/under/ties.dm +++ b/code/modules/clothing/under/ties.dm @@ -435,6 +435,26 @@ desc = "A fire-resistant shoulder patch, worn by the men and women of the UPP Naval Infantry." icon_state = "navalpatch" +/obj/item/clothing/accessory/patch/usasf + name = "USASF patch" + desc = "A fire-resistant shoulder patch, worn by the men and women of the United States Aerospace Force." + icon_state = "usasfpatch" + +/obj/item/clothing/accessory/patch/usasf/helljumper + name = "Para-Rescue patch" + desc = "A fire-resistant shoulder patch, worn by the absolute badasses of the USASF 7th Para-Rescue Battalion. Feet first into hell!" + icon_state = "helljumperpatch" + +/obj/item/clothing/accessory/patch/army + name = "US Army patch" + desc = "A fire-resistant shoulder patch, worn by the men and women of the United States Army." + icon_state = "armypatch" + +/obj/item/clothing/accessory/patch/army/infantry + name = "Army Infantry patch" + desc = "A fire-resistant shoulder patch, worn by the men and women of the 1st Cavalry Division." + icon_state = "infantrypatch" + //misc /obj/item/clothing/accessory/dogtags diff --git a/code/modules/cm_marines/dropship_ammo.dm b/code/modules/cm_marines/dropship_ammo.dm index aefc2366ca..07cc5835b4 100644 --- a/code/modules/cm_marines/dropship_ammo.dm +++ b/code/modules/cm_marines/dropship_ammo.dm @@ -168,7 +168,7 @@ for(var/i = 1 to ammo_used_per_firing) sleep(1) var/turf/impact_tile = pick(turf_list) - var/datum/cause_data/cause_data = create_cause_data(fired_from.name, source_mob) + var/datum/cause_data/cause_data = create_cause_data(fired_from?.name, source_mob) impact_tile.ex_act(EXPLOSION_THRESHOLD_VLOW, pick(GLOB.alldirs), cause_data) create_shrapnel(impact_tile,1,0,0,shrapnel_type,cause_data,FALSE,100) //simulates a bullet for(var/atom/movable/explosion_effect in impact_tile) @@ -246,7 +246,7 @@ for(var/i=1 to 16) //This is how many tiles within that area of effect will be randomly ignited var/turf/U = pick(turf_list) turf_list -= U - fire_spread_recur(U, create_cause_data(fired_from.name, source_mob), 1, null, 5, 75, "#EE6515")//Very, very intense, but goes out very quick + fire_spread_recur(U, create_cause_data(fired_from?.name, source_mob), 1, null, 5, 75, "#EE6515")//Very, very intense, but goes out very quick if(!ammo_count && !QDELETED(src)) qdel(src) //deleted after last laser beam is fired and impact the ground. diff --git a/code/modules/gear_presets/synths.dm b/code/modules/gear_presets/synths.dm index c13bea4a2b..8767ea04a6 100644 --- a/code/modules/gear_presets/synths.dm +++ b/code/modules/gear_presets/synths.dm @@ -100,6 +100,30 @@ //*****************************************************************************************************/ +/datum/equipment_preset/synth/uscm/usasf + name = "USASF Synthetic" + flags = EQUIPMENT_PRESET_START_OF_ROUND|EQUIPMENT_PRESET_MARINE + faction = FACTION_NAVY + idtype = /obj/item/card/id/gold + assignment = JOB_NAVY_SYNTH + rank = "Synthetic" + role_comm_title = "USASF Syn" + +/datum/equipment_preset/synth/uscm/usasf/load_gear(mob/living/carbon/human/new_human) + var/back_item = /obj/item/storage/backpack/marine/satchel + if (new_human.client && new_human.client.prefs && (new_human.client.prefs.backbag == 1)) + back_item = /obj/item/storage/backpack/industrial + + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/USASF/command(new_human), WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/synthetic(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/usasf, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/UAAF/knife(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/utility/full(new_human), WEAR_WAIST) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/yellow(new_human), WEAR_HANDS) + new_human.equip_to_slot_or_del(new back_item(new_human), WEAR_BACK) + +//*****************************************************************************************************/ + /datum/equipment_preset/synth/survivor name = "Survivor - Synthetic - Classic Joe" flags = EQUIPMENT_PRESET_EXTRA diff --git a/code/modules/gear_presets/usa.dm b/code/modules/gear_presets/usa.dm new file mode 100644 index 0000000000..1744f4884c --- /dev/null +++ b/code/modules/gear_presets/usa.dm @@ -0,0 +1,255 @@ +/datum/equipment_preset/usa + name = "US Army" + faction = FACTION_ARMY + faction_group = FACTION_LIST_MARINE + minimum_age = 20 + languages = list(LANGUAGE_ENGLISH, LANGUAGE_SPANISH) + ///Gives the soldiers their radios + var/headset_type = /obj/item/device/radio/headset/distress/army + idtype = /obj/item/card/id/dogtag + +/datum/equipment_preset/usa/load_name(mob/living/carbon/human/new_human, randomise) + new_human.gender = pick(60;MALE,40;FEMALE) + var/datum/preferences/A = new + A.randomize_appearance(new_human) + var/random_name = capitalize(pick(new_human.gender == MALE ? GLOB.first_names_male : GLOB.first_names_female)) + " " + capitalize(pick(GLOB.last_names)) + var/static/list/colors = list("BLACK" = list(15, 15, 10), "BROWN" = list(48, 38, 18), "BROWN" = list(48, 38, 18),"BLUE" = list(29, 51, 65), "GREEN" = list(40, 61, 39), "STEEL" = list(46, 59, 54)) + var/static/list/hair_colors = list("BLACK" = list(15, 15, 10), "BROWN" = list(48, 38, 18), "AUBURN" = list(77, 48, 36), "BLONDE" = list(95, 76, 44)) + var/hair_color = pick(hair_colors) + new_human.r_hair = hair_colors[hair_color][1] + new_human.g_hair = hair_colors[hair_color][2] + new_human.b_hair = hair_colors[hair_color][3] + new_human.r_facial = hair_colors[hair_color][1] + new_human.g_facial = hair_colors[hair_color][2] + new_human.b_facial = hair_colors[hair_color][3] + var/eye_color = pick(colors) + new_human.r_eyes = colors[eye_color][1] + new_human.g_eyes = colors[eye_color][2] + new_human.b_eyes = colors[eye_color][3] + if(new_human.gender == MALE) + new_human.h_style = pick("Undercut", "Partly Shaved", "Side Undercut", "Side Hang Undercut (Reverse)", "Undercut, Top", "Medium Fade", "High Fade", "Coffee House Cut", "Crewcut", "Shaved Head", "Buzzcut", "Pvt. Joker", "Marine Fade", "Low Fade", "Medium Fade", "High Fade",) + new_human.f_style = pick("Shaved", "Shaved", "Shaved", "Shaved", "Shaved", "Shaved", "3 O'clock Shadow", "3 O'clock Moustache", "5 O'clock Shadow", "5 O'clock Moustache", "7 O'clock Shadow", "7 O'clock Moustache",) + else + new_human.h_style = pick("Side Undercut", "Side Hang Undercut (Reverse)", "Undercut, Top", "CIA", "Mulder", "Pvt. Redding", "Pixie Cut Left", "Pixie Cut Right", "Bun", "Ponytail 1", "Ponytail 2", "Ponytail 3", "Ponytail 4", "Pvt. Clarison", "Cpl. Dietrich", "Pvt. Vasquez", "Marine Bun", "Marine Bun 2", "Marine Flat Top",) + new_human.change_real_name(new_human, random_name) + new_human.age = rand(20,35) + + +//*****************************************************************************************************/ + +/datum/equipment_preset/usa/trooper + name = "Army Trooper" + assignment = JOB_ARMY_TROOPER + rank = JOB_ARMY_TROOPER + paygrades = list(PAY_SHORT_AE3 = JOB_PLAYTIME_TIER_0) + role_comm_title = "TRPR" + flags = EQUIPMENT_PRESET_EXTRA + skills = /datum/skills/trooper + +/datum/equipment_preset/usa/trooper/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new headset_type, WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/rto/army, WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/standard/army, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran, WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/big/orange, WEAR_EYES) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/UAAF/knife, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/army, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/army/infantry, WEAR_ACCESSORY) + + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/medium/rto/army, WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/storage/box/MRE, WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/drinks/flask/canteen, WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar/tactical, WEAR_IN_JACKET) + + new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/rifle/m41aMK1/army, WEAR_J_STORE) + + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/marine/m41amk1, WEAR_WAIST) + + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full/alternate, WEAR_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/explosive/full, WEAR_R_STORE) + +/datum/equipment_preset/usa/trooper/lesser_rank + name = parent_type::name + " (Lesser Rank)" + paygrades = list(PAY_SHORT_AE2 = JOB_PLAYTIME_TIER_0) + +/datum/equipment_preset/usa/sapper + name = "Army Sapper" + assignment = JOB_ARMY_ENGI + rank = JOB_ARMY_ENGI + paygrades = list(PAY_SHORT_AE4E = JOB_PLAYTIME_TIER_0) + role_comm_title = "SPPR" + flags = EQUIPMENT_PRESET_EXTRA + skills = /datum/skills/sapper + +/datum/equipment_preset/usa/sapper/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new headset_type, WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/rto/army, WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/standard/army, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran, WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/big/orange, WEAR_EYES) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/UAAF/knife, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/army, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/army/infantry, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/armband/engine, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/storage/tool_webbing/equipped, WEAR_ACCESSORY) + + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/medium/rto/army, WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/storage/box/MRE, WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/drinks/flask/canteen, WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/tool/shovel/etool, WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/explosive/plastic/breaching_charge, WEAR_IN_JACKET) + + new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/rifle/m41aMK1/army, WEAR_J_STORE) + + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/marine/m41amk1, WEAR_WAIST) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/construction/full_barbed_wire, WEAR_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/engikit/full, WEAR_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/engineerpack/welder_chestrig, WEAR_BACK) + +/datum/equipment_preset/usa/medic + name = "Army Combat Medical Technician" + assignment = JOB_ARMY_MEDIC + rank = JOB_ARMY_MEDIC + paygrades = list(PAY_SHORT_AE4E = JOB_PLAYTIME_TIER_0) + role_comm_title = "CMT" + flags = EQUIPMENT_PRESET_EXTRA + skills = /datum/skills/medic + +/datum/equipment_preset/usa/medic/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new headset_type, WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/rto/army, WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/standard/army, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran, WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/UAAF/knife, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/health, WEAR_EYES) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/army, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/army/infantry, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/armband/medgreen(new_human), WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/storage, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/m41aMK1/ap, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/m41aMK1/ap, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/m41aMK1/ap, WEAR_IN_ACCESSORY) + + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/medium/rto/army, WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/storage/box/MRE, WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/drinks/flask/canteen, WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/m41aMK1/ap, WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/m41aMK1/ap, WEAR_IN_JACKET) + + new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/rifle/m41aMK1/army, WEAR_J_STORE) + + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/medical/lifesaver/full, WEAR_WAIST) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/autoinjector/full, WEAR_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/first_responder/full, WEAR_R_STORE) + + +/datum/equipment_preset/usa/nco + name = "Army Fireteam Leader" + assignment = JOB_ARMY_NCO + rank = JOB_ARMY_NCO + paygrades = list(PAY_SHORT_AE5 = JOB_PLAYTIME_TIER_0) + role_comm_title = "FTL" + flags = EQUIPMENT_PRESET_EXTRA + skills = /datum/skills/nco + +/datum/equipment_preset/usa/nco/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new headset_type, WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/rto/army, WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/standard/army, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran, WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/UAAF/knife, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/big, WEAR_EYES) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/army, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/army/infantry, WEAR_ACCESSORY) + + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/medium/rto/army, WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/storage/box/MRE, WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/drinks/flask/canteen, WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar/tactical, WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/device/binoculars/range, WEAR_IN_JACKET) + + new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/rifle/m41aMK1/army/masterkey, WEAR_J_STORE) + + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/marine/m41amk1, WEAR_WAIST) + + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full/alternate, WEAR_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/shotgun/large/buckshot, WEAR_R_STORE) + +/datum/equipment_preset/usa/nco/lesser_rank + name = parent_type::name + " (Lesser Rank)" + paygrades = list(PAY_SHORT_AE4 = JOB_PLAYTIME_TIER_0) + +/datum/equipment_preset/usa/snco + name = "Army Squad Leader" + assignment = JOB_ARMY_SNCO + rank = JOB_ARMY_SNCO + paygrades = list(PAY_SHORT_AE7 = JOB_PLAYTIME_TIER_0) + role_comm_title = "SL" + flags = EQUIPMENT_PRESET_EXTRA + skills = /datum/skills/snco + +/datum/equipment_preset/usa/snco/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/army/command, WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/rto/army, WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/standard/army, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran, WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/UAAF/knife, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/big, WEAR_EYES) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/army, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/army/infantry, WEAR_ACCESSORY) + + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/medium/rto/army, WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/storage/box/MRE, WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/drinks/flask/canteen, WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar/tactical, WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/device/binoculars/range/designator, WEAR_IN_JACKET) + + new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/rifle/m41aMK1/army, WEAR_J_STORE) + + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/marine/m41amk1, WEAR_WAIST) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/autoinjector/full, WEAR_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/first_responder/full, WEAR_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/satchel/rto/army, WEAR_BACK) + +/datum/equipment_preset/usa/snco/lesser_rank + name = parent_type::name + " (Lesser Rank)" + paygrades = list(PAY_SHORT_AE6 = JOB_PLAYTIME_TIER_0) + +/datum/equipment_preset/usa/lt + name = "Army Platoon Officer" + assignment = JOB_ARMY_LT + rank = JOB_ARMY_LT + paygrades = list(PAY_SHORT_AO2 = JOB_PLAYTIME_TIER_0) + role_comm_title = "Plt. Off." + flags = EQUIPMENT_PRESET_EXTRA + skills = /datum/skills/lt + +/datum/equipment_preset/usa/lt/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/army/command, WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/cmcap, WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/big/orange, WEAR_EYES) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/standard/army, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran, WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/UAAF/knife, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/army, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/army/infantry, WEAR_ACCESSORY) + + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/medium/rto/army, WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/storage/box/MRE, WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/drinks/flask/canteen, WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar/tactical, WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/device/binoculars/range/designator, WEAR_IN_JACKET) + + new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/rifle/m41aMK1/army, WEAR_J_STORE) + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/commander, WEAR_WAIST) + + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full/alternate, WEAR_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/magazine/large, WEAR_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/m41aMK1/ap, WEAR_IN_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/m41aMK1/ap, WEAR_IN_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/m41aMK1/ap, WEAR_IN_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/m41aMK1/ap, WEAR_IN_R_STORE) + +/datum/equipment_preset/usa/lt/lesser_rank + name = parent_type::name + " (Lesser Rank)" + paygrades = list(PAY_SHORT_AO1 = JOB_PLAYTIME_TIER_0) diff --git a/code/modules/gear_presets/usasf.dm b/code/modules/gear_presets/usasf.dm new file mode 100644 index 0000000000..fe8c313d84 --- /dev/null +++ b/code/modules/gear_presets/usasf.dm @@ -0,0 +1,342 @@ +/datum/equipment_preset/usasf + name = "USASF" + faction = FACTION_NAVY + faction_group = FACTION_LIST_MARINE + minimum_age = 20 + languages = list(LANGUAGE_ENGLISH, LANGUAGE_SPANISH) + ///Gives the sailors their radios + var/headset_type = /obj/item/device/radio/headset/distress/USASF + idtype = /obj/item/card/id/dogtag + +/datum/equipment_preset/usasf/load_name(mob/living/carbon/human/new_human, randomise) + new_human.gender = pick(60;MALE,40;FEMALE) + var/datum/preferences/A = new + A.randomize_appearance(new_human) + var/random_name = capitalize(pick(new_human.gender == MALE ? GLOB.first_names_male : GLOB.first_names_female)) + " " + capitalize(pick(GLOB.last_names)) + var/static/list/colors = list("BLACK" = list(15, 15, 10), "BROWN" = list(48, 38, 18), "BROWN" = list(48, 38, 18),"BLUE" = list(29, 51, 65), "GREEN" = list(40, 61, 39), "STEEL" = list(46, 59, 54)) + var/static/list/hair_colors = list("BLACK" = list(15, 15, 10), "BROWN" = list(48, 38, 18), "AUBURN" = list(77, 48, 36), "BLONDE" = list(95, 76, 44)) + var/hair_color = pick(hair_colors) + new_human.r_hair = hair_colors[hair_color][1] + new_human.g_hair = hair_colors[hair_color][2] + new_human.b_hair = hair_colors[hair_color][3] + new_human.r_facial = hair_colors[hair_color][1] + new_human.g_facial = hair_colors[hair_color][2] + new_human.b_facial = hair_colors[hair_color][3] + var/eye_color = pick(colors) + new_human.r_eyes = colors[eye_color][1] + new_human.g_eyes = colors[eye_color][2] + new_human.b_eyes = colors[eye_color][3] + if(new_human.gender == MALE) + new_human.h_style = pick("Undercut", "Partly Shaved", "Side Undercut", "Side Hang Undercut (Reverse)", "Undercut, Top", "Medium Fade", "High Fade", "Coffee House Cut", "Crewcut", "Shaved Head", "Buzzcut", "Pvt. Joker", "Marine Fade", "Low Fade", "Medium Fade", "High Fade",) + new_human.f_style = pick("Shaved", "Shaved", "Shaved", "Shaved", "Shaved", "Shaved", "3 O'clock Shadow", "3 O'clock Moustache", "5 O'clock Shadow", "5 O'clock Moustache", "7 O'clock Shadow", "7 O'clock Moustache",) + else + new_human.h_style = pick("Side Undercut", "Side Hang Undercut (Reverse)", "Undercut, Top", "CIA", "Mulder", "Pvt. Redding", "Pixie Cut Left", "Pixie Cut Right", "Bun", "Ponytail 1", "Ponytail 2", "Ponytail 3", "Ponytail 4", "Pvt. Clarison", "Cpl. Dietrich", "Pvt. Vasquez", "Marine Bun", "Marine Bun 2", "Marine Flat Top",) + new_human.change_real_name(new_human, random_name) + new_human.age = rand(20,35) + +//*****************************************************************************************************/ + +/datum/equipment_preset/usasf/crew + name = "USASF Crewman" + rank = JOB_NAVY_CREWMAN + assignment = JOB_NAVY_CREWMAN + paygrades = list(PAY_SHORT_NE3 = JOB_PLAYTIME_TIER_0) + role_comm_title = "Crew" + flags = EQUIPMENT_PRESET_EXTRA + skills = /datum/skills/ship_crew + +/datum/equipment_preset/usasf/crew/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new headset_type, WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/engi/navy, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/botanic_leather/generic, WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/UAAF/knife, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/usasf, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/medium, WEAR_L_STORE) + +/datum/equipment_preset/usasf/crew/snipe + name = "USASF Damage-Control Crewman" + paygrades = list(PAY_SHORT_NE4 = JOB_PLAYTIME_TIER_0) + +/datum/equipment_preset/usasf/crew/snipe/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/engi/OT/navy, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/armband/engine, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/storage/droppouch, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/tool/extinguisher, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/yellow(new_human), WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/welding(new_human), WEAR_EYES) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/tools/tank(new_human), WEAR_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full(new_human), WEAR_L_STORE) + ..() + +/datum/equipment_preset/usasf/crew/flight + name = "USASF Flight-Deck Crewman (Red)" + assignment = JOB_NAVY_SKITTLE + rank = JOB_NAVY_SKITTLE + paygrades = list(PAY_SHORT_NE5 = JOB_PLAYTIME_TIER_0) + role_comm_title = "Ordnc" + flags = EQUIPMENT_PRESET_EXTRA + skills = /datum/skills/flight_crew + +/datum/equipment_preset/usasf/crew/flight/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/hazardvest/usasf, WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/pilot, WEAR_HEAD) + ..() + +/datum/equipment_preset/usasf/crew/flight/green + name = "USASF Flight-Deck Crewman (green)" + role_comm_title = "Mntnc" + +/datum/equipment_preset/usasf/crew/flight/green/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/hazardvest/usasf/green, WEAR_JACKET) + ..() + +/datum/equipment_preset/usasf/crew/flight/purple + name = "USASF Flight-Deck Crewman (purple)" + role_comm_title = "Fuel" + +/datum/equipment_preset/usasf/crew/flight/purple/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/hazardvest/usasf/purple, WEAR_JACKET) + ..() + +/datum/equipment_preset/usasf/crew/flight/white + name = "USASF Flight-Deck Crewman (white)" + role_comm_title = "Sfty" + +/datum/equipment_preset/usasf/crew/flight/white/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/hazardvest/usasf/white, WEAR_JACKET) + ..() + +/datum/equipment_preset/usasf/crew/flight/blue + name = "USASF Flight-Deck Crewman (blue)" + role_comm_title = "Hndlr" + +/datum/equipment_preset/usasf/crew/flight/blue/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/hazardvest/usasf/blue, WEAR_JACKET) + ..() + +//*****************************************************************************************************/ + +/datum/equipment_preset/usasf/corpsman + name = "USASF Hospital Corpsman" + assignment = JOB_NAVY_MEDIC + rank = JOB_NAVY_MEDIC + paygrades = list(PAY_SHORT_ME4 = JOB_PLAYTIME_TIER_0) + role_comm_title = "HM" + skills = /datum/skills/corpsman + +/datum/equipment_preset/uscm_ship/corpsman/nurse/load_gear(mob/living/carbon/human/new_human) + var/back_item = /obj/item/storage/backpack/marine/satchel + if (new_human.client && new_human.client.prefs && (new_human.client.prefs.backbag == 1)) + back_item = /obj/item/storage/backpack/marine + + new_human.equip_to_slot_or_del(new back_item(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical/lightblue(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/armband/medgreen(new_human), WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/latex(new_human), WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/health, WEAR_EYES) + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/medical/lifesaver/full, WEAR_WAIST) + new_human.equip_to_slot_or_del(new /obj/item/storage/firstaid/adv, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/device/healthanalyzer, WEAR_IN_BACK) + +//*****************************************************************************************************/ + +/datum/equipment_preset/usasf/engi + name = "USASF Engineering Technician" + assignment = JOB_NAVY_ENGI + rank = JOB_NAVY_ENGI + paygrades = list(PAY_SHORT_NE6 = JOB_PLAYTIME_TIER_0) + role_comm_title = "Tech" + flags = EQUIPMENT_PRESET_EXTRA + skills = /datum/skills/eng_tech + +/datum/equipment_preset/usasf/engi/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new headset_type, WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/engi/navy/tech, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/yellow(new_human), WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/UAAF/knife, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/welding(new_human), WEAR_EYES) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/usasf, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/armband/engine, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/storage/tool_webbing/equipped, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/medium(new_human), WEAR_L_STORE) + +//*****************************************************************************************************/ + +/datum/equipment_preset/usasf/helljumper + name = "USASF Para-Rescue Support Technician" + assignment = JOB_NAVY_PARA_TECH + rank = JOB_NAVY_PARA_TECH + paygrades = list(PAY_SHORT_NE8 = JOB_PLAYTIME_TIER_0) + role_comm_title = "ParaTech" + flags = EQUIPMENT_PRESET_EXTRA + skills = /datum/skills/para_tech + +/datum/equipment_preset/usasf/helljumper/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/USASF/command/attache, WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/pilot/flight/para, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/tech/tanker/para, WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather, WEAR_FACE) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/usasf, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/usasf/helljumper, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/armband/medgreen, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/storage/surg_vest/drop_green/equipped, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/medical, WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/UAAF/knife, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/health, WEAR_EYES) + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/medical/lifesaver/full/dutch, WEAR_WAIST) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/first_responder/full, WEAR_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/tools/tactical/full, WEAR_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/medium/rto/navy, WEAR_JACKET) + + new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/rifle/m41aMK1/tactical, WEAR_J_STORE) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/m41aMK1/ap, WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/m41aMK1/ap, WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/m41aMK1/ap, WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/m41aMK1/ap, WEAR_IN_JACKET) + + new_human.equip_to_slot_or_del(new /obj/item/parachute, WEAR_BACK) + +//*****************************************************************************************************/ + +/datum/equipment_preset/usasf/jtac + name = "USASF Orbital Fire-Support Liason Officer" + assignment = JOB_NAVY_JTAC + rank = JOB_NAVY_JTAC + paygrades = list(PAY_SHORT_NO2) + role_comm_title = "JFO" + flags = EQUIPMENT_PRESET_EXTRA + skills = /datum/skills/jtac + +/datum/equipment_preset/usasf/jtac/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/USASF/command/attache, WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/intel/navy, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/rto/navy, WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/usasf, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/storage/black_vest, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/device/binoculars/range/designator, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/storage/box/MRE, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/drinks/flask/canteen, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/tool/pen, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/notepad, WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran, WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/UAAF/knife, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/commander, WEAR_WAIST) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/medkit/full, WEAR_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/tools/full, WEAR_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/medium/rto/navy, WEAR_JACKET) + + new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/rifle/m41aMK1/tactical, WEAR_J_STORE) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/m41aMK1/ap, WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/m41aMK1/ap, WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/m41aMK1/ap, WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/m41aMK1/ap, WEAR_IN_JACKET) + + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/satchel/rto/navy, WEAR_BACK) + +/datum/equipment_preset/usasf/jtac/lesser_rank + name = parent_type::name + " (Lesser Rank)" + paygrades = list(PAY_SHORT_NE9 = JOB_PLAYTIME_TIER_0) + +//*****************************************************************************************************/ + +/datum/equipment_preset/usasf/officer + name = "USASF Duty Officer" + assignment = JOB_NAVY_SO + rank = JOB_NAVY_SO + paygrades = list(PAY_SHORT_NO3) + role_comm_title = "Duty Off." + flags = EQUIPMENT_PRESET_EXTRA + skills = /datum/skills/officer + idtype = /obj/item/card/id/silver + +/datum/equipment_preset/usasf/officer/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/USASF/command, WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/ce/navy, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/beret/marine/techofficer, WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/usasf, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/UAAF/knife, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/full, WEAR_WAIST) + +/datum/equipment_preset/usasf/officer/lesser_rank + name = parent_type::name + " (Lesser Rank)" + paygrades = list(PAY_SHORT_NO2 = JOB_PLAYTIME_TIER_0) + +//*****************************************************************************************************/ + +/datum/equipment_preset/usasf/flightboss + name = "USASF Flight Boss" + assignment = JOB_NAVY_FLIGHT_BOSS + rank = JOB_NAVY_FLIGHT_BOSS + paygrades = list(PAY_SHORT_NO2) + role_comm_title = "Flight Boss" + flags = EQUIPMENT_PRESET_EXTRA + skills = /datum/skills/flightboss + +/datum/equipment_preset/usasf/flightboss/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/USASF/command, WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/ce/navy, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/usasf, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/hazardvest/usasf/yellow, WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/pilot, WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/botanic_leather/generic, WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/UAAF/knife, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/full, WEAR_WAIST) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/medium, WEAR_L_STORE) + +//*****************************************************************************************************/ + +/datum/equipment_preset/usasf/chief_engineer + name = "USASF Engineering Duty Officer" + assignment = JOB_NAVY_CHIEF_ENGINEER + rank = JOB_NAVY_CHIEF_ENGINEER + paygrades = list(PAY_SHORT_NO4) + role_comm_title = "LCDR." + flags = EQUIPMENT_PRESET_EXTRA + skills = /datum/skills/navycengi + idtype = /obj/item/card/id/silver + +/datum/equipment_preset/usasf/chief_engineer/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/USASF/command, WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/welding(new_human), WEAR_EYES) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/ce/navy, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/usasf, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/armband/engine, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/beret/marine/chiefofficer, WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/yellow, WEAR_HANDS) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/UAAF/knife, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/hazardvest/black, WEAR_JACKET) + + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/full, WEAR_J_STORE) + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/utility/full, WEAR_WAIST) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/medium, WEAR_L_STORE) + +//*****************************************************************************************************/ + +/datum/equipment_preset/usasf/CO + name = "USASF Commanding Officer" + assignment = JOB_NAVY_CO + rank = JOB_NAVY_CO + paygrades = list(PAY_SHORT_NO6) + role_comm_title = "CAPT." + flags = EQUIPMENT_PRESET_EXTRA + skills = /datum/skills/navycommander + idtype = /obj/item/card/id/gold + +/datum/equipment_preset/usasf/CO/load_gear(mob/living/carbon/human/new_human) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/USASF/command, WEAR_L_EAR) + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/big, WEAR_EYES) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/ce/navy, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/usasf, WEAR_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/marine/peaked/captain/black, WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/UAAF/knife, WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/jacket/marine/dress/officer/bomber, WEAR_JACKET) + + new_human.equip_to_slot_or_del(new /obj/item/device/binoculars/range/designator, WEAR_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/m1911, WEAR_WAIST) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/medium, WEAR_L_STORE) + +/datum/equipment_preset/usasf/CO/lesser_rank + name = parent_type::name + " (Lesser Rank)" + paygrades = list(PAY_SHORT_NO5 = JOB_PLAYTIME_TIER_0) + role_comm_title = "CDR." diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index 5dbaf9eada..52d5047ba7 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -24,6 +24,8 @@ GLOBAL_LIST_INIT(department_radio_keys, list( ":k" = SQUAD_SOF, ".k" = SQUAD_SOF, "#k" = RADIO_CHANNEL_WY_WO, ":q" = RADIO_CHANNEL_ROYAL_MARINE, ".q" = RADIO_CHANNEL_ROYAL_MARINE, ":r" = RADIO_CHANNEL_PROVOST, ".r" = RADIO_CHANNEL_PROVOST, "#r" = RADIO_CHANNEL_PROVOST, + ":x" = RADIO_CHANNEL_USASF, ".x" = RADIO_CHANNEL_USASF, "#x" = RADIO_CHANNEL_USASF, + ":s" = RADIO_CHANNEL_US_ARMY, ".s" = RADIO_CHANNEL_US_ARMY, "#s" = RADIO_CHANNEL_US_ARMY, ":I" = RADIO_CHANNEL_INTERCOM, ".I" = RADIO_CHANNEL_INTERCOM, "#I" = RADIO_CHANNEL_INTERCOM, ":H" = RADIO_CHANNEL_DEPARTMENT, ".H" = RADIO_CHANNEL_DEPARTMENT, "#H" = RADIO_CHANNEL_DEPARTMENT, @@ -49,6 +51,8 @@ GLOBAL_LIST_INIT(department_radio_keys, list( ":K" = SQUAD_SOF, ".K" = SQUAD_SOF, "#K" = RADIO_CHANNEL_WY_WO, ":Q" = RADIO_CHANNEL_ROYAL_MARINE, ".Q" = RADIO_CHANNEL_ROYAL_MARINE, ":R" = RADIO_CHANNEL_PROVOST, ".R" = RADIO_CHANNEL_PROVOST, "#R" = RADIO_CHANNEL_PROVOST, + ":X" = RADIO_CHANNEL_USASF, ".X" = RADIO_CHANNEL_USASF, "#X" = RADIO_CHANNEL_USASF, + ":S" = RADIO_CHANNEL_US_ARMY, ".S" = RADIO_CHANNEL_US_ARMY, "#S" = RADIO_CHANNEL_US_ARMY, )) /proc/channel_to_prefix(channel) diff --git a/code/modules/projectiles/guns/rifles.dm b/code/modules/projectiles/guns/rifles.dm index 02a99f64d3..6f6a203d65 100644 --- a/code/modules/projectiles/guns/rifles.dm +++ b/code/modules/projectiles/guns/rifles.dm @@ -435,6 +435,15 @@ /obj/item/weapon/gun/rifle/m41aMK1/forecon/unloaded current_mag = null +/obj/item/weapon/gun/rifle/m41aMK1/army + desc = "Pulse action 10x24mm caseless assault rifle of the US Army, personal friend of any Trooper." + starting_attachment_types = list(/obj/item/attachable/stock/rifle/collapsible, /obj/item/attachable/magnetic_harness, /obj/item/attachable/attached_gun/grenade/mk1) + current_mag = /obj/item/ammo_magazine/rifle/m41aMK1/ap + +/obj/item/weapon/gun/rifle/m41aMK1/army/masterkey + desc = "Pulse action 10x24mm caseless assault rifle of the US Army, personal friend of any Trooper. This one has a U7 underbarrel shotgun strapped to it." + starting_attachment_types = list(/obj/item/attachable/stock/rifle/collapsible, /obj/item/attachable/magnetic_harness, /obj/item/attachable/attached_gun/shotgun) + //---------------------------------------------- //Special gun for the CO to replace the smartgun diff --git a/colonialmarines.dme b/colonialmarines.dme index 5003d07f73..73208b2a2b 100644 --- a/colonialmarines.dme +++ b/colonialmarines.dme @@ -640,6 +640,7 @@ #include "code\datums\redis\redis_message.dm" #include "code\datums\redis\callbacks\_redis_callback.dm" #include "code\datums\redis\callbacks\asay.dm" +#include "code\datums\skills\army.dm" #include "code\datums\skills\civilian.dm" #include "code\datums\skills\clf.dm" #include "code\datums\skills\cmb.dm" @@ -656,6 +657,7 @@ #include "code\datums\skills\skills.dm" #include "code\datums\skills\synthetic.dm" #include "code\datums\skills\upp.dm" +#include "code\datums\skills\usasf.dm" #include "code\datums\skills\uscm.dm" #include "code\datums\skills\wygoons.dm" #include "code\datums\stamina\_stamina.dm" @@ -856,9 +858,11 @@ #include "code\game\jobs\job\marine\squad\specialist.dm" #include "code\game\jobs\job\marine\squad\standard.dm" #include "code\game\jobs\job\marine\squad\tl.dm" +#include "code\game\jobs\job\special\army.dm" #include "code\game\jobs\job\special\cmb.dm" #include "code\game\jobs\job\special\provost.dm" #include "code\game\jobs\job\special\uaac.dm" +#include "code\game\jobs\job\special\usasf.dm" #include "code\game\jobs\job\special\uscm.dm" #include "code\game\jobs\job\special\weyland_yutani.dm" #include "code\game\machinery\aicore_lockdown.dm" @@ -1813,6 +1817,8 @@ #include "code\modules\gear_presets\royal_marines.dm" #include "code\modules\gear_presets\synths.dm" #include "code\modules\gear_presets\upp.dm" +#include "code\modules\gear_presets\usa.dm" +#include "code\modules\gear_presets\usasf.dm" #include "code\modules\gear_presets\uscm.dm" #include "code\modules\gear_presets\uscm_dress.dm" #include "code\modules\gear_presets\uscm_event.dm" diff --git a/html/changelogs/AutoChangeLog-pr-501.yml b/html/changelogs/AutoChangeLog-pr-501.yml new file mode 100644 index 0000000000..f961ead728 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-501.yml @@ -0,0 +1,10 @@ +author: "BonniePandora" +delete-after: True +changes: + - rscadd: "Adds job, skills & gear presets for USASF Personnel" + - rscadd: "Adds job, skills & gear presets presets for US Army Personnel" + - rscadd: "Added Warrant Officer rank paygrades for USCMC" + - rscadd: "Orange-tinted BiMex shades added to the loadout selection" + - spellcheck: "Some typos fixes as I discovered them whilst working on this" + - imageadd: "Added new branch-patches for the Army & USASF" + - imageadd: "Added new Warrant-Officer rank-boards and changed the paygrades to use them for the corresponding ranks" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-506.yml b/html/changelogs/AutoChangeLog-pr-506.yml new file mode 100644 index 0000000000..50f175d3a8 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-506.yml @@ -0,0 +1,4 @@ +author: "BonniePandora" +delete-after: True +changes: + - bugfix: "Synths now understand all human-spoken languages once more" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-513.yml b/html/changelogs/AutoChangeLog-pr-513.yml new file mode 100644 index 0000000000..d54fa6a4a7 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-513.yml @@ -0,0 +1,4 @@ +author: "Max-023" +delete-after: True +changes: + - rscadd: "2 10x28 Ammunition Boxes added to the Golden Arrow Armory" \ No newline at end of file diff --git a/html/changelogs/archive/2024-10.yml b/html/changelogs/archive/2024-10.yml index 341274b458..c7fd18f726 100644 --- a/html/changelogs/archive/2024-10.yml +++ b/html/changelogs/archive/2024-10.yml @@ -19,3 +19,6 @@ 2024-10-13: Doubleumc: - rscdel: removed time-based rankups from PFCs +2024-10-21: + GriffinMan4455: + - bugfix: GAU and Laser in FS Menu work again yippeee diff --git a/icons/mob/humans/onmob/eyes.dmi b/icons/mob/humans/onmob/eyes.dmi index 9a4fd3bd64..4450c3f393 100644 Binary files a/icons/mob/humans/onmob/eyes.dmi and b/icons/mob/humans/onmob/eyes.dmi differ diff --git a/icons/mob/humans/onmob/suit_0.dmi b/icons/mob/humans/onmob/suit_0.dmi index 5c1cfb6c5e..b90e9175a5 100644 Binary files a/icons/mob/humans/onmob/suit_0.dmi and b/icons/mob/humans/onmob/suit_0.dmi differ diff --git a/icons/mob/humans/onmob/ties.dmi b/icons/mob/humans/onmob/ties.dmi index c1c71fbbb8..e7e2ab6db8 100644 Binary files a/icons/mob/humans/onmob/ties.dmi and b/icons/mob/humans/onmob/ties.dmi differ diff --git a/icons/obj/items/clothing/glasses.dmi b/icons/obj/items/clothing/glasses.dmi index 13dd0c542c..90b0cdd5e7 100644 Binary files a/icons/obj/items/clothing/glasses.dmi and b/icons/obj/items/clothing/glasses.dmi differ diff --git a/icons/obj/items/clothing/suits.dmi b/icons/obj/items/clothing/suits.dmi index 919d63c573..ecb8561d94 100644 Binary files a/icons/obj/items/clothing/suits.dmi and b/icons/obj/items/clothing/suits.dmi differ diff --git a/icons/obj/items/clothing/ties.dmi b/icons/obj/items/clothing/ties.dmi index 55bdcb7915..ec3fe328db 100644 Binary files a/icons/obj/items/clothing/ties.dmi and b/icons/obj/items/clothing/ties.dmi differ diff --git a/icons/obj/items/clothing/ties_overlay.dmi b/icons/obj/items/clothing/ties_overlay.dmi index 66279502f7..84aeec5710 100644 Binary files a/icons/obj/items/clothing/ties_overlay.dmi and b/icons/obj/items/clothing/ties_overlay.dmi differ diff --git a/icons/obj/items/radio.dmi b/icons/obj/items/radio.dmi index 6352a14bae..c749a2d2b7 100644 Binary files a/icons/obj/items/radio.dmi and b/icons/obj/items/radio.dmi differ diff --git a/maps/map_files/golden_arrow/golden_arrow.dmm b/maps/map_files/golden_arrow/golden_arrow.dmm index b914ea3a24..a3209cc3c3 100644 --- a/maps/map_files/golden_arrow/golden_arrow.dmm +++ b/maps/map_files/golden_arrow/golden_arrow.dmm @@ -15805,9 +15805,6 @@ /turf/open/floor/almayer/plate, /area/golden_arrow/engineering) "eZR" = ( -/obj/item/storage/box/guncase/flamer/fuel{ - pixel_y = 8 - }, /obj/structure/machinery/light/small/blue{ dir = 8; light_color = "#dae2ff"; @@ -15815,6 +15812,10 @@ pixel_y = 10 }, /obj/structure/surface/table/reinforced/almayer_B, +/obj/item/ammo_box/rounds/smartgun{ + pixel_y = 8 + }, +/obj/item/ammo_box/rounds/smartgun, /turf/open/floor/almayer/mono, /area/golden_arrow/platoonarmory) "fbw" = ( @@ -15971,6 +15972,9 @@ light_color = "#dae2ff" }, /obj/structure/surface/table/almayer, +/obj/item/storage/box/guncase/flamer/fuel{ + pixel_y = 8 + }, /obj/item/tool/crowbar, /turf/open/floor/almayer, /area/golden_arrow/platoonarmory) diff --git a/tgui/packages/tgui-panel/styles/goon/chat-dark.scss b/tgui/packages/tgui-panel/styles/goon/chat-dark.scss index 392c1c0a36..25dd97bf1a 100644 --- a/tgui/packages/tgui-panel/styles/goon/chat-dark.scss +++ b/tgui/packages/tgui-panel/styles/goon/chat-dark.scss @@ -1012,6 +1012,14 @@ em { color: #e3580e; } +.usasfradio { + color: #2a1bb6; +} + +.armyradio { + color: #037741; +} + .cmbradio { color: #1b748c; } diff --git a/tgui/packages/tgui-panel/styles/goon/chat-light.scss b/tgui/packages/tgui-panel/styles/goon/chat-light.scss index 6e13d394d9..8c4b5cb663 100644 --- a/tgui/packages/tgui-panel/styles/goon/chat-light.scss +++ b/tgui/packages/tgui-panel/styles/goon/chat-light.scss @@ -1044,6 +1044,14 @@ h2.alert { color: #943d0a; } +.usasfradio { + color: #2a1bb6; +} + +.armyradio { + color: #037741; +} + .cmbradio { color: #1b748c; }