diff --git a/code/_helpers/global_lists.dm b/code/_helpers/global_lists.dm index 72bed469c9..80abfae652 100644 --- a/code/_helpers/global_lists.dm +++ b/code/_helpers/global_lists.dm @@ -52,8 +52,9 @@ GLOBAL_LIST_INIT(custom_species_bases, new) // Species that can be used for a Cu //Underwear var/datum/category_collection/underwear/global_underwear = new() - //Backpacks -var/global/list/backbaglist = list("Nothing", "Backpack", "Satchel", "Satchel Alt", "Messenger Bag", "Sports Bag", "Strapless Satchel") //VOREStation edit + //Customizables +GLOBAL_LIST_INIT(headsetlist, list("Standard","Bowman","Earbud")) +var/global/list/backbaglist = list("Nothing", "Backpack", "Satchel", "Satchel Alt", "Messenger Bag", "Sports Bag", "Strapless Satchel") var/global/list/pdachoicelist = list("Default", "Slim", "Old", "Rugged", "Holographic", "Wrist-Bound","Slider", "Vintage") var/global/list/exclude_jobs = list(/datum/job/ai,/datum/job/cyborg) diff --git a/code/datums/outfits/jobs/cargo.dm b/code/datums/outfits/jobs/cargo.dm index 30955983df..bed1308f39 100644 --- a/code/datums/outfits/jobs/cargo.dm +++ b/code/datums/outfits/jobs/cargo.dm @@ -1,17 +1,23 @@ /decl/hierarchy/outfit/job/cargo - l_ear = /obj/item/radio/headset/headset_cargo hierarchy_type = /decl/hierarchy/outfit/job/cargo + headset = /obj/item/radio/headset/cargo + headset_alt = /obj/item/radio/headset/alt/cargo + headset_earbud = /obj/item/radio/headset/earbud/cargo + /decl/hierarchy/outfit/job/cargo/qm name = OUTFIT_JOB_NAME("Cargo") uniform = /obj/item/clothing/under/rank/cargo - l_ear = /obj/item/radio/headset/headset_qm //VOREStation Add shoes = /obj/item/clothing/shoes/brown glasses = /obj/item/clothing/glasses/sunglasses l_hand = /obj/item/clipboard id_type = /obj/item/card/id/cargo/head pda_type = /obj/item/pda/quartermaster + headset = /obj/item/radio/headset/qm + headset_alt = /obj/item/radio/headset/alt/qm + headset_earbud = /obj/item/radio/headset/earbud/qm + /decl/hierarchy/outfit/job/cargo/cargo_tech name = OUTFIT_JOB_NAME("Cargo technician") uniform = /obj/item/clothing/under/rank/cargotech @@ -21,10 +27,13 @@ /decl/hierarchy/outfit/job/cargo/mining name = OUTFIT_JOB_NAME("Shaft miner") uniform = /obj/item/clothing/under/rank/miner - l_ear = /obj/item/radio/headset/headset_mine backpack = /obj/item/storage/backpack/industrial satchel_one = /obj/item/storage/backpack/satchel/eng id_type = /obj/item/card/id/cargo/miner pda_type = /obj/item/pda/shaftminer backpack_contents = list(/obj/item/tool/crowbar = 1, /obj/item/storage/bag/ore = 1) flags = OUTFIT_HAS_BACKPACK|OUTFIT_EXTENDED_SURVIVAL + + headset = /obj/item/radio/headset/miner + headset_alt = /obj/item/radio/headset/miner + headset_earbud = /obj/item/radio/headset/miner diff --git a/code/datums/outfits/jobs/civilian.dm b/code/datums/outfits/jobs/civilian.dm index a62600a6ee..829e6f9c64 100644 --- a/code/datums/outfits/jobs/civilian.dm +++ b/code/datums/outfits/jobs/civilian.dm @@ -19,9 +19,12 @@ uniform = /obj/item/clothing/under/color/white /decl/hierarchy/outfit/job/service - l_ear = /obj/item/radio/headset/headset_service hierarchy_type = /decl/hierarchy/outfit/job/service + headset = /obj/item/radio/headset/service + headset_alt = /obj/item/radio/headset/alt/service + headset_earbud = /obj/item/radio/headset/earbud/service + /decl/hierarchy/outfit/job/service/bartender name = OUTFIT_JOB_NAME(JOB_BARTENDER) uniform = /obj/item/clothing/under/rank/bartender @@ -91,7 +94,6 @@ /decl/hierarchy/outfit/job/internal_affairs_agent name = OUTFIT_JOB_NAME("Internal affairs agent") - l_ear = /obj/item/radio/headset/ia uniform = /obj/item/clothing/under/rank/internalaffairs suit = /obj/item/clothing/suit/storage/toggle/internalaffairs shoes = /obj/item/clothing/shoes/brown @@ -100,6 +102,10 @@ id_type = /obj/item/card/id/civilian/internal_affairs pda_type = /obj/item/pda/lawyer + headset = /obj/item/radio/headset/ia + headset_alt = /obj/item/radio/headset/alt/ia + headset_earbud = /obj/item/radio/headset/earbud/ia + /decl/hierarchy/outfit/job/chaplain name = OUTFIT_JOB_NAME(JOB_CHAPLAIN) uniform = /obj/item/clothing/under/rank/chaplain @@ -114,10 +120,13 @@ mask = /obj/item/clothing/mask/gas/explorer suit = /obj/item/clothing/suit/storage/hooded/explorer gloves = /obj/item/clothing/gloves/black - l_ear = /obj/item/radio/headset id_slot = slot_wear_id id_type = /obj/item/card/id/exploration //VOREStation Edit pda_slot = slot_belt pda_type = /obj/item/pda/cargo // Brown looks more rugged r_pocket = /obj/item/gps/explorer id_pda_assignment = JOB_EXPLORER + + headset = /obj/item/radio/headset + headset_alt = /obj/item/radio/headset/alt + headset_earbud = /obj/item/radio/headset/earbud diff --git a/code/datums/outfits/jobs/command.dm b/code/datums/outfits/jobs/command.dm index 149020e4fe..e5a869d9dd 100644 --- a/code/datums/outfits/jobs/command.dm +++ b/code/datums/outfits/jobs/command.dm @@ -2,7 +2,7 @@ name = OUTFIT_JOB_NAME(JOB_ALT_CAPTAIN) // Keep Captain for now, not JOB_SITE_MANAGER glasses = /obj/item/clothing/glasses/sunglasses uniform = /obj/item/clothing/under/rank/captain - l_ear = /obj/item/radio/headset/heads/captain + shoes = /obj/item/clothing/shoes/brown backpack = /obj/item/storage/backpack/captain satchel_one = /obj/item/storage/backpack/satchel/cap @@ -10,6 +10,10 @@ id_type = /obj/item/card/id/gold pda_type = /obj/item/pda/captain + headset = /obj/item/radio/headset/heads/captain + headset_alt = /obj/item/radio/headset/alt/heads/captain + headset_earbud = /obj/item/radio/headset/earbud/heads/captain + /decl/hierarchy/outfit/job/captain/post_equip(var/mob/living/carbon/human/H) ..() if(H.age>49) @@ -26,19 +30,25 @@ /decl/hierarchy/outfit/job/hop name = OUTFIT_JOB_NAME(JOB_HEAD_OF_PERSONNEL) uniform = /obj/item/clothing/under/rank/head_of_personnel - l_ear = /obj/item/radio/headset/heads/hop shoes = /obj/item/clothing/shoes/brown id_type = /obj/item/card/id/silver/hop pda_type = /obj/item/pda/heads/hop + headset = /obj/item/radio/headset/heads/hop + headset_alt = /obj/item/radio/headset/alt/heads/hop + headset_earbud = /obj/item/radio/headset/earbud/heads/hop + /decl/hierarchy/outfit/job/secretary name = OUTFIT_JOB_NAME(JOB_COMMAND_SECRETARY) - l_ear = /obj/item/radio/headset/headset_com shoes = /obj/item/clothing/shoes/brown id_type = /obj/item/card/id/silver/secretary pda_type = /obj/item/pda/heads r_hand = /obj/item/clipboard + headset = /obj/item/radio/headset/headset_com + headset_alt = /obj/item/radio/headset/alt/headset_com + headset_earbud = /obj/item/radio/headset/earbud/headset_com + /decl/hierarchy/outfit/job/secretary/pre_equip(mob/living/carbon/human/H) ..() if(H.gender == FEMALE) diff --git a/code/datums/outfits/jobs/engineering.dm b/code/datums/outfits/jobs/engineering.dm index 16de1539c3..11c4a4cd3c 100644 --- a/code/datums/outfits/jobs/engineering.dm +++ b/code/datums/outfits/jobs/engineering.dm @@ -1,7 +1,6 @@ /decl/hierarchy/outfit/job/engineering hierarchy_type = /decl/hierarchy/outfit/job/engineering belt = /obj/item/storage/belt/utility/full/multitool - l_ear = /obj/item/radio/headset/headset_eng shoes = /obj/item/clothing/shoes/boots/workboots r_pocket = /obj/item/t_scanner backpack = /obj/item/storage/backpack/industrial @@ -10,15 +9,23 @@ pda_slot = slot_l_store flags = OUTFIT_HAS_BACKPACK|OUTFIT_EXTENDED_SURVIVAL + headset = /obj/item/radio/headset/headset_eng + headset_alt = /obj/item/radio/headset/alt/headset_eng + headset_earbud = /obj/item/radio/headset/earbud/headset_eng + /decl/hierarchy/outfit/job/engineering/chief_engineer name = OUTFIT_JOB_NAME(JOB_CHIEF_ENGINEER) head = /obj/item/clothing/head/hardhat/white uniform = /obj/item/clothing/under/rank/chief_engineer - l_ear = /obj/item/radio/headset/heads/ce + gloves = /obj/item/clothing/gloves/black id_type = /obj/item/card/id/engineering/head pda_type = /obj/item/pda/heads/ce + headset = /obj/item/radio/headset/heads/ce + headset_alt = /obj/item/radio/headset/alt/heads/ce + headset_earbud = /obj/item/radio/headset/earbud/heads/ce + /decl/hierarchy/outfit/job/engineering/engineer name = OUTFIT_JOB_NAME(JOB_ENGINEER) head = /obj/item/clothing/head/hardhat diff --git a/code/datums/outfits/jobs/job.dm b/code/datums/outfits/jobs/job.dm index adfa938bf3..fdb7af5dbe 100644 --- a/code/datums/outfits/jobs/job.dm +++ b/code/datums/outfits/jobs/job.dm @@ -3,7 +3,6 @@ hierarchy_type = /decl/hierarchy/outfit/job uniform = /obj/item/clothing/under/color/grey - l_ear = /obj/item/radio/headset shoes = /obj/item/clothing/shoes/black id_slot = slot_wear_id @@ -13,6 +12,10 @@ flags = OUTFIT_HAS_BACKPACK + headset = /obj/item/radio/headset + headset_alt = /obj/item/radio/headset/alt + headset_earbud = /obj/item/radio/headset/earbud + /decl/hierarchy/outfit/job/equip_id(mob/living/carbon/human/H, rank, assignment) var/obj/item/card/id/C = ..() var/datum/job/J = job_master.GetJob(rank) diff --git a/code/datums/outfits/jobs/medical.dm b/code/datums/outfits/jobs/medical.dm index a78636ea63..6a4d120d37 100644 --- a/code/datums/outfits/jobs/medical.dm +++ b/code/datums/outfits/jobs/medical.dm @@ -1,16 +1,19 @@ /decl/hierarchy/outfit/job/medical hierarchy_type = /decl/hierarchy/outfit/job/medical - l_ear = /obj/item/radio/headset/headset_med shoes = /obj/item/clothing/shoes/white pda_type = /obj/item/pda/medical pda_slot = slot_l_store + backpack = /obj/item/storage/backpack/medic satchel_one = /obj/item/storage/backpack/satchel/med messenger_bag = /obj/item/storage/backpack/messenger/med + headset = /obj/item/radio/headset/headset_med + headset_alt = /obj/item/radio/headset/alt/headset_med + headset_earbud = /obj/item/radio/headset/earbud/headset_med + /decl/hierarchy/outfit/job/medical/cmo name = OUTFIT_JOB_NAME(JOB_CHIEF_MEDICAL_OFFICER) - l_ear =/obj/item/radio/headset/heads/cmo uniform = /obj/item/clothing/under/rank/chief_medical_officer suit = /obj/item/clothing/suit/storage/toggle/labcoat/cmo shoes = /obj/item/clothing/shoes/brown @@ -19,6 +22,10 @@ id_type = /obj/item/card/id/medical/head pda_type = /obj/item/pda/heads/cmo + headset = /obj/item/radio/headset/heads/cmo + headset_alt = /obj/item/radio/headset/alt/heads/cmo + headset_earbud = /obj/item/radio/headset/earbud/heads/cmo + /decl/hierarchy/outfit/job/medical/doctor name = OUTFIT_JOB_NAME(JOB_MEDICAL_DOCTOR) uniform = /obj/item/clothing/under/rank/medical diff --git a/code/datums/outfits/jobs/science.dm b/code/datums/outfits/jobs/science.dm index a9fe8a4437..eeeb84951d 100644 --- a/code/datums/outfits/jobs/science.dm +++ b/code/datums/outfits/jobs/science.dm @@ -1,23 +1,30 @@ /decl/hierarchy/outfit/job/science hierarchy_type = /decl/hierarchy/outfit/job/science - l_ear = /obj/item/radio/headset/headset_sci suit = /obj/item/clothing/suit/storage/toggle/labcoat shoes = /obj/item/clothing/shoes/white pda_type = /obj/item/pda/science + backpack = /obj/item/storage/backpack/toxins satchel_one = /obj/item/storage/backpack/satchel/tox messenger_bag = /obj/item/storage/backpack/messenger/tox sports_bag = /obj/item/storage/backpack/sport/tox + headset = /obj/item/radio/headset/headset_sci + headset_alt = /obj/item/radio/headset/alt/headset_sci + headset_earbud = /obj/item/radio/headset/earbud/headset_sci + /decl/hierarchy/outfit/job/science/rd name = OUTFIT_JOB_NAME("Research Director") - l_ear = /obj/item/radio/headset/heads/rd uniform = /obj/item/clothing/under/rank/research_director shoes = /obj/item/clothing/shoes/brown l_hand = /obj/item/clipboard id_type = /obj/item/card/id/science/head pda_type = /obj/item/pda/heads/rd + headset = /obj/item/radio/headset/heads/rd + headset_alt = /obj/item/radio/headset/alt/heads/rd + headset_earbud = /obj/item/radio/headset/earbud/heads/rd + /decl/hierarchy/outfit/job/science/scientist name = OUTFIT_JOB_NAME(JOB_SCIENTIST) uniform = /obj/item/clothing/under/rank/scientist diff --git a/code/datums/outfits/jobs/security.dm b/code/datums/outfits/jobs/security.dm index e73b45e06b..595601bbcd 100644 --- a/code/datums/outfits/jobs/security.dm +++ b/code/datums/outfits/jobs/security.dm @@ -1,22 +1,29 @@ /decl/hierarchy/outfit/job/security hierarchy_type = /decl/hierarchy/outfit/job/security glasses = /obj/item/clothing/glasses/sunglasses/sechud - l_ear = /obj/item/radio/headset/headset_sec gloves = /obj/item/clothing/gloves/black shoes = /obj/item/clothing/shoes/boots/jackboots + backpack = /obj/item/storage/backpack/security satchel_one = /obj/item/storage/backpack/satchel/sec backpack_contents = list(/obj/item/handcuffs = 1) messenger_bag = /obj/item/storage/backpack/messenger/sec sports_bag = /obj/item/storage/backpack/sport/sec + headset = /obj/item/radio/headset/headset_sec + headset_alt = /obj/item/radio/headset/alt/headset_sec + headset_earbud = /obj/item/radio/headset/earbud/headset_sec + /decl/hierarchy/outfit/job/security/hos name = OUTFIT_JOB_NAME(JOB_HEAD_OF_SECURITY) - l_ear = /obj/item/radio/headset/heads/hos uniform = /obj/item/clothing/under/rank/head_of_security id_type = /obj/item/card/id/security/head pda_type = /obj/item/pda/heads/hos + headset = /obj/item/radio/headset/heads/hos + headset_alt = /obj/item/radio/headset/alt/heads/hos + headset_earbud = /obj/item/radio/headset/earbud/heads/hos + /decl/hierarchy/outfit/job/security/warden name = OUTFIT_JOB_NAME(JOB_WARDEN) uniform = /obj/item/clothing/under/rank/warden diff --git a/code/datums/outfits/outfit.dm b/code/datums/outfits/outfit.dm index ed8e81f992..43fe69f0f2 100644 --- a/code/datums/outfits/outfit.dm +++ b/code/datums/outfits/outfit.dm @@ -52,6 +52,10 @@ var/list/outfits_decls_by_type_ var/id_pda_assignment + var/headset = /obj/item/radio/headset + var/headset_alt = /obj/item/radio/headset/alt + var/headset_earbud = /obj/item/radio/headset/earbud + var/backpack = /obj/item/storage/backpack var/satchel_one = /obj/item/storage/backpack/satchel/norm var/satchel_two = /obj/item/storage/backpack/satchel @@ -72,7 +76,11 @@ var/list/outfits_decls_by_type_ dd_insertObjectList(outfits_decls_, src) /decl/hierarchy/outfit/proc/pre_equip(mob/living/carbon/human/H) - if(flags & OUTFIT_HAS_BACKPACK) + switch(H.headset) + if(1) l_ear = headset + if(2) l_ear = headset_alt + if(3) l_ear = headset_earbud + if(flags && OUTFIT_HAS_BACKPACK) switch(H.backbag) if(2) back = backpack if(3) back = satchel_one diff --git a/code/datums/outfits/outfit_vr.dm b/code/datums/outfits/outfit_vr.dm index 97281f1a56..537f13d834 100644 --- a/code/datums/outfits/outfit_vr.dm +++ b/code/datums/outfits/outfit_vr.dm @@ -112,7 +112,6 @@ Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead go name = OUTFIT_JOB_NAME(JOB_EXPLORER) shoes = /obj/item/clothing/shoes/boots/winter/explorer uniform = /obj/item/clothing/under/explorer - l_ear = /obj/item/radio/headset/explorer id_slot = slot_wear_id pda_slot = slot_l_store pda_type = /obj/item/pda/explorer @@ -123,6 +122,10 @@ Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead go messenger_bag = /obj/item/storage/backpack/messenger/explorer flags = OUTFIT_HAS_BACKPACK|OUTFIT_COMPREHENSIVE_SURVIVAL + headset = /obj/item/radio/headset/explorer + headset_alt = /obj/item/radio/headset/alt/explorer + headset_earbud = /obj/item/radio/headset/explorer + /decl/hierarchy/outfit/job/pilot name = OUTFIT_JOB_NAME(JOB_PILOT) shoes = /obj/item/clothing/shoes/black @@ -130,7 +133,6 @@ Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead go suit = /obj/item/clothing/suit/storage/toggle/bomber/pilot gloves = /obj/item/clothing/gloves/fingerless glasses = /obj/item/clothing/glasses/fakesunglasses/aviator - l_ear = /obj/item/radio/headset/pilot/alt uniform_accessories = list(/obj/item/clothing/accessory/storage/webbing/pilot1 = 1) id_slot = slot_wear_id pda_slot = slot_belt @@ -139,12 +141,15 @@ Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead go id_pda_assignment = JOB_PILOT flags = OUTFIT_HAS_BACKPACK|OUTFIT_COMPREHENSIVE_SURVIVAL + headset = /obj/item/radio/headset/pilot + headset_alt = /obj/item/radio/headset/alt/pilot + headset_earbud = /obj/item/radio/headset/alt/pilot + /decl/hierarchy/outfit/job/medical/sar name = OUTFIT_JOB_NAME(JOB_FIELD_MEDIC) uniform = /obj/item/clothing/under/utility/blue //suit = /obj/item/clothing/suit/storage/hooded/wintercoat/medical/sar shoes = /obj/item/clothing/shoes/boots/winter/explorer - l_ear = /obj/item/radio/headset/sar l_hand = /obj/item/storage/firstaid/regular belt = /obj/item/storage/belt/medical/emt pda_slot = slot_l_store @@ -156,11 +161,14 @@ Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead go messenger_bag = /obj/item/storage/backpack/messenger/explorer flags = OUTFIT_HAS_BACKPACK|OUTFIT_EXTENDED_SURVIVAL|OUTFIT_COMPREHENSIVE_SURVIVAL + headset = /obj/item/radio/headset/sar + headset_alt = /obj/item/radio/headset/alt/sar + headset_earbud = /obj/item/radio/headset/sar + /decl/hierarchy/outfit/job/pathfinder name = OUTFIT_JOB_NAME(JOB_PATHFINDER) shoes = /obj/item/clothing/shoes/boots/winter/explorer uniform = /obj/item/clothing/under/explorer //TODO: Uniforms. - l_ear = /obj/item/radio/headset/pathfinder id_slot = slot_wear_id pda_slot = slot_l_store pda_type = /obj/item/pda/pathfinder @@ -168,6 +176,10 @@ Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead go id_pda_assignment = JOB_PATHFINDER flags = OUTFIT_HAS_BACKPACK|OUTFIT_EXTENDED_SURVIVAL|OUTFIT_COMPREHENSIVE_SURVIVAL + headset = /obj/item/radio/headset/pathfinder + headset_alt = /obj/item/radio/headset/alt/pathfinder + headset_earbud = /obj/item/radio/headset/pathfinder + /decl/hierarchy/outfit/job/assistant/explorer id_type = /obj/item/card/id/exploration flags = OUTFIT_HAS_BACKPACK|OUTFIT_COMPREHENSIVE_SURVIVAL diff --git a/code/datums/supplypacks/medical.dm b/code/datums/supplypacks/medical.dm index 0c099b3231..2e498c92f1 100644 --- a/code/datums/supplypacks/medical.dm +++ b/code/datums/supplypacks/medical.dm @@ -112,7 +112,7 @@ contains = list( /obj/item/storage/belt/medical = 3, /obj/item/clothing/glasses/hud/health = 3, - /obj/item/radio/headset/headset_med/alt = 3, + /obj/item/radio/headset/alt/headset_med = 3, /obj/item/clothing/suit/storage/hooded/wintercoat/medical = 3 ) cost = 10 diff --git a/code/datums/supplypacks/security.dm b/code/datums/supplypacks/security.dm index 1404b06e42..1f2cf06f89 100644 --- a/code/datums/supplypacks/security.dm +++ b/code/datums/supplypacks/security.dm @@ -444,7 +444,7 @@ contains = list( /obj/item/storage/belt/security = 3, /obj/item/clothing/glasses/sunglasses/sechud = 3, - /obj/item/radio/headset/headset_sec/alt = 3, + /obj/item/radio/headset/alt/headset_sec = 3, /obj/item/clothing/suit/storage/hooded/wintercoat/security = 3, /obj/item/clothing/glasses/sunglasses/sechud/tactical_sec_vis = 3 ) diff --git a/code/datums/supplypacks/supply.dm b/code/datums/supplypacks/supply.dm index 96610a68c5..b8bcd3f7ba 100644 --- a/code/datums/supplypacks/supply.dm +++ b/code/datums/supplypacks/supply.dm @@ -118,7 +118,7 @@ /obj/item/storage/backpack/industrial, /obj/item/storage/backpack/satchel/eng, /obj/item/clothing/suit/storage/hooded/wintercoat/miner, - /obj/item/radio/headset/headset_cargo, + /obj/item/radio/headset/miner, /obj/item/clothing/under/rank/miner, /obj/item/clothing/gloves/black, /obj/item/clothing/shoes/black, @@ -187,7 +187,7 @@ contains = list ( /obj/item/storage/backpack/parachute, /obj/item/radio/headset/pilot, - /obj/item/radio/headset/pilot/alt, + /obj/item/radio/headset/alt/pilot, /obj/item/clothing/mask/gas/half, /obj/item/flashlight/glowstick, /obj/item/stack/marker_beacon/thirty, diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index f6af18a4aa..24728cee21 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -8,7 +8,8 @@ subspace_transmission = 1 canhear_range = 0 // can't hear headsets from very far away slot_flags = SLOT_EARS - sprite_sheets = list(SPECIES_TESHARI = 'icons/inventory/ears/mob_teshari.dmi') + sprite_sheets = list(SPECIES_TESHARI = 'icons/inventory/ears/mob_teshari.dmi', + SPECIES_WEREBEAST = 'icons/inventory/ears/mob_vr_werebeast.dmi') var/translate_binary = 0 var/translate_hive = 0 @@ -83,254 +84,6 @@ /obj/item/radio/headset/tgui_state(mob/user) return GLOB.tgui_inventory_state -/obj/item/radio/headset/syndicate - origin_tech = list(TECH_ILLEGAL = 3) - syndie = 1 - ks1type = /obj/item/encryptionkey/syndicate - -/obj/item/radio/headset/syndicate/alt - icon_state = "syndie_headset" - item_state = "headset" - origin_tech = list(TECH_ILLEGAL = 3) - syndie = 1 - ks1type = /obj/item/encryptionkey/syndicate - -/obj/item/radio/headset/raider - origin_tech = list(TECH_ILLEGAL = 2) - syndie = 1 - ks1type = /obj/item/encryptionkey/raider - -/obj/item/radio/headset/raider/Initialize() - . = ..() - set_frequency(RAID_FREQ) - -/obj/item/radio/headset/binary - origin_tech = list(TECH_ILLEGAL = 3) - ks1type = /obj/item/encryptionkey/binary - -/obj/item/radio/headset/headset_sec - name = "security radio headset" - desc = "This is used by your elite security force." - icon_state = "sec_headset" - ks2type = /obj/item/encryptionkey/headset_sec - -/obj/item/radio/headset/headset_sec/alt - name = "security bowman headset" - desc = "This is used by your elite security force." - icon_state = "sec_headset_alt" - ks2type = /obj/item/encryptionkey/headset_sec - -/obj/item/radio/headset/headset_eng - name = "engineering radio headset" - desc = "When the engineers wish to chat like girls." - icon_state = "eng_headset" - ks2type = /obj/item/encryptionkey/headset_eng - -/obj/item/radio/headset/headset_eng/alt - name = "engineering bowman headset" - desc = "When the engineers wish to chat like girls." - icon_state = "eng_headset_alt" - ks2type = /obj/item/encryptionkey/headset_eng - -/obj/item/radio/headset/headset_rob - name = "robotics radio headset" - desc = "Made specifically for the roboticists who cannot decide between departments." - icon_state = "rob_headset" - ks2type = /obj/item/encryptionkey/headset_rob - -/obj/item/radio/headset/headset_med - name = "medical radio headset" - desc = "A headset for the trained staff of the medbay." - icon_state = "med_headset" - ks2type = /obj/item/encryptionkey/headset_med - -/obj/item/radio/headset/headset_med/alt - name = "medical bowman headset" - desc = "A headset for the trained staff of the medbay." - icon_state = "med_headset_alt" - ks2type = /obj/item/encryptionkey/headset_med - -/obj/item/radio/headset/headset_sci - name = "science radio headset" - desc = "A sciency headset. Like usual." - icon_state = "com_headset" - ks2type = /obj/item/encryptionkey/headset_sci - -/obj/item/radio/headset/headset_medsci - name = "medical research radio headset" - desc = "A headset that is a result of the mating between medical and science." - icon_state = "med_headset" - ks2type = /obj/item/encryptionkey/headset_medsci - -/obj/item/radio/headset/headset_com - name = "command radio headset" - desc = "A headset with a commanding channel." - icon_state = "com_headset" - ks2type = /obj/item/encryptionkey/headset_com - -/obj/item/radio/headset/headset_com/alt - name = "command bowman headset" - desc = "A headset with a commanding channel." - icon_state = "com_headset_alt" - ks2type = /obj/item/encryptionkey/headset_com - - -/obj/item/radio/headset/heads/captain - name = "site manager's headset" - desc = "The headset of the boss." - icon_state = "com_headset" - ks2type = /obj/item/encryptionkey/heads/captain - -/obj/item/radio/headset/heads/captain/alt - name = "site manager's bowman headset" - desc = "The headset of the boss." - icon_state = "com_headset_alt" - ks2type = /obj/item/encryptionkey/heads/captain - -/obj/item/radio/headset/heads/captain/sfr - name = "SFR headset" - desc = "A headset belonging to a Sif Free Radio DJ. SFR, best tunes in the wilderness." - icon_state = "com_headset_alt" - ks2type = /obj/item/encryptionkey/heads/captain - -/obj/item/radio/headset/heads/ai_integrated //No need to care about icons, it should be hidden inside the AI anyway. - name = "\improper AI subspace transceiver" - desc = "Integrated AI radio transceiver." - icon = 'icons/obj/robot_component.dmi' - icon_state = "radio" - item_state = "headset" - ks2type = /obj/item/encryptionkey/heads/ai_integrated - var/myAi = null // Atlantis: Reference back to the AI which has this radio. - var/disabledAi = 0 // Atlantis: Used to manually disable AI's integrated radio via intellicard menu. - -/obj/item/radio/headset/heads/ai_integrated/receive_range(freq, level) - if (disabledAi) - return -1 //Transciever Disabled. - return ..(freq, level, 1) - -/obj/item/radio/headset/heads/rd - name = "research director's headset" - desc = "Headset of the eccentric-in-chief." - icon_state = "com_headset" - ks2type = /obj/item/encryptionkey/heads/rd - -/obj/item/radio/headset/heads/rd/alt - name = "research director's bowman headset" - desc = "Headset of the eccentric-in-chief." - icon_state = "com_headset_alt" - ks2type = /obj/item/encryptionkey/heads/rd - -/obj/item/radio/headset/heads/hos - name = "head of security's headset" - desc = "The headset of the hardass who protects your worthless lives." - icon_state = "com_headset" - ks2type = /obj/item/encryptionkey/heads/hos - -/obj/item/radio/headset/heads/hos/alt - name = "head of security's bowman headset" - desc = "The headset of the hardass who protects your worthless lives." - icon_state = "com_headset_alt" - ks2type = /obj/item/encryptionkey/heads/hos - -/obj/item/radio/headset/heads/ce - name = "chief engineer's headset" - desc = "The headset of the clown who is in charge of the circus." - icon_state = "com_headset" - ks2type = /obj/item/encryptionkey/heads/ce - -/obj/item/radio/headset/heads/ce/alt - name = "chief engineer's bowman headset" - desc = "The headset of the clown who is in charge of the circus." - icon_state = "com_headset_alt" - ks2type = /obj/item/encryptionkey/heads/ce - -/obj/item/radio/headset/heads/cmo - name = "chief medical officer's headset" - desc = "The headset of the highly trained medical chief." - icon_state = "com_headset" - ks2type = /obj/item/encryptionkey/heads/cmo - -/obj/item/radio/headset/heads/cmo/alt - name = "chief medical officer's bowman headset" - desc = "The headset of the highly trained medical chief." - icon_state = "com_headset_alt" - ks2type = /obj/item/encryptionkey/heads/cmo - -/obj/item/radio/headset/heads/hop - name = "head of personnel's headset" - desc = "The headset of the poor fool who will one day be " + JOB_SITE_MANAGER + "." - icon_state = "com_headset" - ks2type = /obj/item/encryptionkey/heads/hop - -/obj/item/radio/headset/heads/hop/alt - name = "head of personnel's bowman headset" - desc = "The headset of the poor fool who will one day be " + JOB_SITE_MANAGER + "." - icon_state = "com_headset_alt" - ks2type = /obj/item/encryptionkey/heads/hop - -/obj/item/radio/headset/headset_mine - name = "mining radio headset" - desc = "Headset used by miners. Has inbuilt short-band radio for when comms are down." - icon_state = "mine_headset" - adhoc_fallback = TRUE - ks2type = /obj/item/encryptionkey/headset_cargo - -/obj/item/radio/headset/headset_cargo - name = "supply radio headset" - desc = "A headset used by the QM and their cronies." - icon_state = "cargo_headset" - ks2type = /obj/item/encryptionkey/headset_cargo - -/obj/item/radio/headset/headset_cargo/alt - name = "supply bowman headset" - desc = "A bowman headset used by the QM and their cronies." - icon_state = "cargo_headset_alt" - ks2type = /obj/item/encryptionkey/headset_cargo - -/obj/item/radio/headset/headset_service - name = "service radio headset" - desc = "Headset used by the service staff, tasked with keeping the station full, happy and clean." - icon_state = "srv_headset" - ks2type = /obj/item/encryptionkey/headset_service - -/obj/item/radio/headset/ert - name = "emergency response team radio headset" - desc = "The headset of the boss's boss." - icon_state = "com_headset" - centComm = 1 -// freerange = 1 - ks2type = /obj/item/encryptionkey/ert - -/obj/item/radio/headset/ert/alt - name = "emergency response team bowman headset" - desc = "The headset of the boss's boss." - icon_state = "com_headset_alt" -// freerange = 1 - ks2type = /obj/item/encryptionkey/ert - -/obj/item/radio/headset/omni //Only for the admin intercoms - ks2type = /obj/item/encryptionkey/omni - -/obj/item/radio/headset/ia - name = "internal affair's headset" - desc = "The headset of your worst enemy." - icon_state = "com_headset" - ks2type = /obj/item/encryptionkey/heads/hos - -/obj/item/radio/headset/mmi_radio - name = "brain-integrated radio" - desc = "MMIs and synthetic brains are often equipped with these." - icon = 'icons/obj/robot_component.dmi' - icon_state = "radio" - item_state = "headset" - var/mmiowner = null - var/radio_enabled = 1 - -/obj/item/radio/headset/mmi_radio/receive_range(freq, level) - if (!radio_enabled || istype(src.loc.loc, /mob/living/silicon) || istype(src.loc.loc, /obj/item/organ/internal)) - return -1 //Transciever Disabled. - return ..(freq, level, 1) - /obj/item/radio/headset/attackby(obj/item/W as obj, mob/user as mob) // ..() user.set_machine(src) @@ -361,15 +114,15 @@ keyslot2 = null recalculateChannels() - to_chat(user, "You pop out the encryption keys in the headset!") + to_chat(user, span_notice("You pop out the encryption keys in the headset!")) playsound(src, W.usesound, 50, 1) else - to_chat(user, "This headset doesn't have any encryption keys! How useless...") + to_chat(user, span_notice("This headset doesn't have any encryption keys! How useless...")) if(istype(W, /obj/item/encryptionkey/)) if(keyslot1 && keyslot2) - to_chat(user, "The headset can't hold another key!") + to_chat(user, span_notice("The headset can't hold another key!")) return if(!keyslot1) @@ -387,7 +140,6 @@ return - /obj/item/radio/headset/recalculateChannels(var/setDescription = 0) src.channels = list() src.translate_binary = 0 @@ -451,3 +203,432 @@ radio_text += ", " radio_desc = radio_text + +/obj/item/radio/headset/mob_headset/receive_range(freq, level) + if(ismob(src.loc)) + return ..(freq, level, 1) + return -1 + +/obj/item/radio/headset/mob_headset/afterattack(var/atom/movable/target, mob/living/user, proximity) + if(!proximity) + return + if(istype(target,/mob/living/simple_mob)) + var/mob/living/simple_mob/M = target + if(!M.mob_radio) + user.drop_item() + forceMove(M) + M.mob_radio = src + return + if(M.mob_radio) + M.mob_radio.forceMove(M.loc) + M.mob_radio = null + return + ..() + +/obj/item/radio/headset/alt + name = "bowman radio headset" + desc = "A larger, sturdier radio headset. A bit bulky, but guaranteed to stay on no matter what." + icon_state = "headset_alt" + +/obj/item/radio/headset/earbud + name = "radio earbud" + desc = "A discreet radio earbud and low-profile mic. Simple and unobtrusive." + icon_state = "headset_earbud" + +/obj/item/radio/headset/headset_sec + name = "security radio headset" + icon_state = "sec_headset" + ks2type = /obj/item/encryptionkey/headset_sec + +/obj/item/radio/headset/alt/headset_sec + name = "security bowman headset" + icon_state = "sec_headset_alt" + ks2type = /obj/item/encryptionkey/headset_sec + +/obj/item/radio/headset/earbud/headset_sec + name = "security earbud" + icon_state = "sec_earbud" + ks2type = /obj/item/encryptionkey/headset_sec + +/obj/item/radio/headset/headset_eng + name = "engineering radio headset" + icon_state = "eng_headset" + ks2type = /obj/item/encryptionkey/headset_eng + +/obj/item/radio/headset/alt/headset_eng + name = "engineering bowman headset" + icon_state = "eng_headset_alt" + ks2type = /obj/item/encryptionkey/headset_eng + +/obj/item/radio/headset/earbud/headset_eng + name = "engineering earbud" + icon_state = "eng_earbud" + ks2type = /obj/item/encryptionkey/headset_eng + +/obj/item/radio/headset/headset_med + name = "medical radio headset" + icon_state = "med_headset" + ks2type = /obj/item/encryptionkey/headset_med + +/obj/item/radio/headset/alt/headset_med + name = "medical bowman headset" + icon_state = "med_headset_alt" + ks2type = /obj/item/encryptionkey/headset_med + +/obj/item/radio/headset/earbud/headset_med + name = "medical earbud" + icon_state = "med_earbud" + ks2type = /obj/item/encryptionkey/headset_med + +/obj/item/radio/headset/headset_sci + name = "science radio headset" + icon_state = "com_headset" + ks2type = /obj/item/encryptionkey/headset_sci + +/obj/item/radio/headset/alt/headset_sci + name = "science bowman headset" + icon_state = "com_headset_alt" + ks2type = /obj/item/encryptionkey/headset_sci + +/obj/item/radio/headset/earbud/headset_sci + name = "science earbud" + icon_state = "com_earbud" + ks2type = /obj/item/encryptionkey/headset_sci + +/obj/item/radio/headset/headset_com + name = "command radio headset" + icon_state = "com_headset" + ks2type = /obj/item/encryptionkey/headset_com + +/obj/item/radio/headset/alt/headset_com + name = "command bowman headset" + icon_state = "com_headset_alt" + ks2type = /obj/item/encryptionkey/headset_com + +/obj/item/radio/headset/earbud/headset_com + name = "command earbud" + icon_state = "com_earbud" + ks2type = /obj/item/encryptionkey/headset_com + +/obj/item/radio/headset/heads/captain + name = "site manager's headset" + icon_state = "com_headset" + ks2type = /obj/item/encryptionkey/heads/captain + +/obj/item/radio/headset/heads/captain/sfr + name = "SFR headset" + desc = "A headset belonging to a Sif Free Radio DJ. SFR, best tunes in the wilderness." + icon_state = "com_headset_alt" + +/obj/item/radio/headset/alt/heads/captain + name = "site manager's bowman headset" + icon_state = "com_headset_alt" + ks2type = /obj/item/encryptionkey/heads/captain + +/obj/item/radio/headset/earbud/heads/captain + name = "site manager's earbud" + icon_state = "com_earbud" + ks2type = /obj/item/encryptionkey/heads/captain + +/obj/item/radio/headset/heads/rd + name = "research director's headset" + icon_state = "com_headset" + ks2type = /obj/item/encryptionkey/heads/rd + +/obj/item/radio/headset/alt/heads/rd + name = "research director's bowman headset" + icon_state = "com_headset_alt" + ks2type = /obj/item/encryptionkey/heads/rd + +/obj/item/radio/headset/earbud/heads/rd + name = "research director's earbud" + icon_state = "com_earbud" + ks2type = /obj/item/encryptionkey/heads/rd + +/obj/item/radio/headset/heads/hos + name = "head of security's headset" + icon_state = "com_headset" + ks2type = /obj/item/encryptionkey/heads/hos + +/obj/item/radio/headset/alt/heads/hos + name = "head of security's bowman headset" + icon_state = "com_headset_alt" + ks2type = /obj/item/encryptionkey/heads/hos + +/obj/item/radio/headset/earbud/heads/hos + name = "head of security's earbud" + icon_state = "com_earbud" + ks2type = /obj/item/encryptionkey/heads/hos + +/obj/item/radio/headset/heads/ce + name = "chief engineer's headset" + icon_state = "com_headset" + ks2type = /obj/item/encryptionkey/heads/ce + +/obj/item/radio/headset/alt/heads/ce + name = "chief engineer's bowman headset" + icon_state = "com_headset_alt" + ks2type = /obj/item/encryptionkey/heads/ce + +/obj/item/radio/headset/earbud/heads/ce + name = "chief engineer's earbud" + icon_state = "com_earbud" + ks2type = /obj/item/encryptionkey/heads/ce + +/obj/item/radio/headset/heads/cmo + name = "chief medical officer's headset" + icon_state = "com_headset" + ks2type = /obj/item/encryptionkey/heads/cmo + +/obj/item/radio/headset/alt/heads/cmo + name = "chief medical officer's bowman headset" + icon_state = "com_headset_alt" + ks2type = /obj/item/encryptionkey/heads/cmo + +/obj/item/radio/headset/earbud/heads/cmo + name = "chief medical officer's earbud" + icon_state = "com_earbud" + ks2type = /obj/item/encryptionkey/heads/cmo + +/obj/item/radio/headset/heads/hop + name = "head of personnel's headset" + icon_state = "com_headset" + ks2type = /obj/item/encryptionkey/heads/hop + +/obj/item/radio/headset/alt/heads/hop + name = "head of personnel's bowman headset" + icon_state = "com_headset_alt" + ks2type = /obj/item/encryptionkey/heads/hop + +/obj/item/radio/headset/earbud/heads/hop + name = "head of personnel's earbud" + icon_state = "com_earbud" + ks2type = /obj/item/encryptionkey/heads/hop + +/obj/item/radio/headset/miner + name = "mining radio headset" + desc = "Headset used by miners. Has inbuilt short-band radio for when comms are down." + icon_state = "mine_headset" + adhoc_fallback = TRUE + ks2type = /obj/item/encryptionkey/headset_cargo + +/obj/item/radio/headset/cargo + name = "supply radio headset" + icon_state = "cargo_headset" + ks2type = /obj/item/encryptionkey/headset_cargo + +/obj/item/radio/headset/alt/cargo + name = "supply bowman headset" + icon_state = "cargo_headset_alt" + ks2type = /obj/item/encryptionkey/headset_cargo + +/obj/item/radio/headset/earbud/cargo + name = "supply earbud" + icon_state = "cargo_earbud" + ks2type = /obj/item/encryptionkey/headset_cargo + +/obj/item/radio/headset/qm + name = "qm radio headset" + icon_state = "cargo_headset" + ks2type = /obj/item/encryptionkey/qm + +/obj/item/radio/headset/alt/qm + name = "qm bowman headset" + icon_state = "cargo_headset_alt" + ks2type = /obj/item/encryptionkey/qm + +/obj/item/radio/headset/earbud/qm + name = "qm earbud" + icon_state = "cargo_earbud" + ks2type = /obj/item/encryptionkey/qm + +/obj/item/radio/headset/service + name = "service radio headset" + icon_state = "srv_headset" + ks2type = /obj/item/encryptionkey/headset_service + +/obj/item/radio/headset/alt/service + name = "service bowman headset" + icon_state = "srv_headset_alt" + ks2type = /obj/item/encryptionkey/headset_service + +/obj/item/radio/headset/earbud/service + name = "service earbud" + icon_state = "srv_earbud" + ks2type = /obj/item/encryptionkey/headset_service + +/obj/item/radio/headset/ert + name = "emergency response team radio headset" + icon_state = "com_headset" + centComm = 1 + ks2type = /obj/item/encryptionkey/ert + +/obj/item/radio/headset/alt/ert + name = "emergency response team bowman headset" + icon_state = "com_headset_alt" + ks2type = /obj/item/encryptionkey/ert + +/obj/item/radio/headset/ia + name = "internal affairs headset" + icon_state = "com_headset" + ks2type = /obj/item/encryptionkey/heads/hos + +/obj/item/radio/headset/alt/ia + name = "internal affairs bowman headset" + icon_state = "com_headset_alt" + ks2type = /obj/item/encryptionkey/heads/hos + +/obj/item/radio/headset/earbud/ia + name = "internal affairs earbud" + icon_state = "com_earbud" + ks2type = /obj/item/encryptionkey/heads/hos + +/obj/item/radio/headset/centcom + name = "centcom radio headset" + icon_state = "cent_headset" + item_state = "headset" + centComm = 1 + ks2type = /obj/item/encryptionkey/ert + +/obj/item/radio/headset/alt/centcom + name = "centcom bowman headset" + icon_state = "com_headset_alt" + +/obj/item/radio/headset/nanotrasen + name = "\improper NT radio headset" + icon_state = "nt_headset" + centComm = 1 + ks2type = /obj/item/encryptionkey/ert + +/obj/item/radio/headset/alt/nanotrasen + name = "\improper NT bowman headset" + icon_state = "nt_headset_alt" + +/obj/item/radio/headset/pathfinder + name = "pathfinder's headset" + icon_state = "exp_headset" + adhoc_fallback = TRUE + ks2type = /obj/item/encryptionkey/pathfinder + +/obj/item/radio/headset/alt/pathfinder + name = "pathfinder's bowman headset" + icon_state = "exp_headset_alt" + +/obj/item/radio/headset/pilot + name = "pilot's headset" + icon_state = "pilot_headset" + adhoc_fallback = TRUE + +/obj/item/radio/headset/alt/pilot + name = "pilot's bowman headset" + icon_state = "pilot_headset_alt" + +/obj/item/radio/headset/explorer + name = "away team member's headset" + icon_state = "exp_headset" + adhoc_fallback = TRUE + ks2type = /obj/item/encryptionkey/explorer + +/obj/item/radio/headset/alt/explorer + name = "away team's bowman headset" + icon_state = "exp_headset_alt" + +/obj/item/radio/headset/sar + name = "search and rescue headset" + icon_state = "sar_headset" + adhoc_fallback = TRUE + ks2type = /obj/item/encryptionkey/sar + +/obj/item/radio/headset/alt/sar + name = "search and rescue bowman headset" + icon_state = "sar_headset_alt" + adhoc_fallback = TRUE + ks2type = /obj/item/encryptionkey/sar + +/obj/item/radio/headset/talon + name = "talon headset" + adhoc_fallback = TRUE + icon_state = "pilot_headset" + ks2type = /obj/item/encryptionkey/talon + +/obj/item/radio/headset/alt/talon + name = "talon bowman headset" + adhoc_fallback = TRUE + icon_state = "pilot_headset" + ks2type = /obj/item/encryptionkey/talon + +/obj/item/radio/headset/earbud/talon + name = "talon earbud" + adhoc_fallback = TRUE + icon_state = "pilot_headset" + ks2type = /obj/item/encryptionkey/talon + +/obj/item/radio/headset/headset_rob + name = "robotics radio headset" + icon_state = "rob_headset" + ks2type = /obj/item/encryptionkey/headset_rob + +// Special Antag/Admin/Event/Other headsets + +/obj/item/radio/headset/syndicate + origin_tech = list(TECH_ILLEGAL = 3) + syndie = 1 + ks1type = /obj/item/encryptionkey/syndicate + +/obj/item/radio/headset/alt/syndicate + origin_tech = list(TECH_ILLEGAL = 3) + syndie = 1 + ks1type = /obj/item/encryptionkey/syndicate + +/obj/item/radio/headset/earbud/syndicate + origin_tech = list(TECH_ILLEGAL = 3) + syndie = 1 + ks1type = /obj/item/encryptionkey/syndicate + +/obj/item/radio/headset/raider + origin_tech = list(TECH_ILLEGAL = 2) + syndie = 1 + ks1type = /obj/item/encryptionkey/raider + +/obj/item/radio/headset/raider/Initialize() + . = ..() + set_frequency(RAID_FREQ) + +/obj/item/radio/headset/binary + origin_tech = list(TECH_ILLEGAL = 3) + ks1type = /obj/item/encryptionkey/binary + +/obj/item/radio/headset/omni //Only for the admin intercoms + ks2type = /obj/item/encryptionkey/omni + +/obj/item/radio/headset/mmi_radio + name = "brain-integrated radio" + icon = 'icons/obj/robot_component.dmi' + icon_state = "radio" + item_state = "headset" + var/mmiowner = null + var/radio_enabled = 1 + +/obj/item/radio/headset/mmi_radio/receive_range(freq, level) + if (!radio_enabled || istype(src.loc.loc, /mob/living/silicon) || istype(src.loc.loc, /obj/item/organ/internal)) + return -1 //Transciever Disabled. + return ..(freq, level, 1) + +/obj/item/radio/headset/mob_headset //Adminbus headset for simplemob shenanigans. + name = "nonhuman radio receiver" + desc = "An updated, self-adhesive modular intercom that requires no hands to operate or ears to hold, just stick it on. Takes encryption keys" + +/obj/item/radio/headset/heads/ai_integrated //No need to care about icons, it should be hidden inside the AI anyway. + name = "\improper AI subspace transceiver" + desc = "Integrated AI radio transceiver." + icon = 'icons/obj/robot_component.dmi' + icon_state = "radio" + item_state = "headset" + ks2type = /obj/item/encryptionkey/heads/ai_integrated + var/myAi = null // Atlantis: Reference back to the AI which has this radio. + var/disabledAi = 0 // Atlantis: Used to manually disable AI's integrated radio via intellicard menu. + +/obj/item/radio/headset/heads/ai_integrated/receive_range(freq, level) + if (disabledAi) + return -1 //Transciever Disabled. + return ..(freq, level, 1) \ No newline at end of file diff --git a/code/game/objects/items/devices/radio/headset_vr.dm b/code/game/objects/items/devices/radio/headset_vr.dm deleted file mode 100644 index bad15ccd48..0000000000 --- a/code/game/objects/items/devices/radio/headset_vr.dm +++ /dev/null @@ -1,131 +0,0 @@ -/obj/item/radio/headset/centcom - name = "centcom radio headset" - desc = "The headset of the boss's boss." - icon_state = "cent_headset" - item_state = "headset" - centComm = 1 - ks2type = /obj/item/encryptionkey/ert - -/obj/item/radio/headset/centcom/alt - name = "centcom bowman headset" - icon_state = "com_headset_alt" - -/obj/item/radio/headset/nanotrasen - name = "\improper NT radio headset" - desc = "The headset of a Nanotrasen corporate employee." - icon_state = "nt_headset" - centComm = 1 - ks2type = /obj/item/encryptionkey/ert - -/obj/item/radio/headset/nanotrasen/alt - name = "\improper NT bowman headset" - icon_state = "nt_headset_alt" - -/obj/item/radio/headset - sprite_sheets = list(SPECIES_TESHARI = 'icons/inventory/ears/mob_teshari.dmi', - SPECIES_WEREBEAST = 'icons/inventory/ears/mob_vr_werebeast.dmi') - -/obj/item/radio/headset/mob_headset //Adminbus headset for simplemob shenanigans. - name = "nonhuman radio receiver" - desc = "An updated, self-adhesive modular intercom that requires no hands to operate or ears to hold, just stick it on. Takes encryption keys" - -/obj/item/radio/headset/mob_headset/receive_range(freq, level) - if(ismob(src.loc)) - return ..(freq, level, 1) - return -1 - -/obj/item/radio/headset/mob_headset/afterattack(var/atom/movable/target, mob/living/user, proximity) - if(!proximity) - return - if(istype(target,/mob/living/simple_mob)) - var/mob/living/simple_mob/M = target - if(!M.mob_radio) - user.drop_item() - forceMove(M) - M.mob_radio = src - return - if(M.mob_radio) - M.mob_radio.forceMove(M.loc) - M.mob_radio = null - return - ..() - -/obj/item/radio/headset/headset_cargo - desc = "A headset used by the QM's slaves." - -/obj/item/radio/headset/headset_cargo/alt - desc = "A bowman headset used by the QM's slaves." - -/obj/item/radio/headset/headset_qm - name = "qm radio headset" - desc = "A headset used by the QM." - icon_state = "cargo_headset" - ks2type = /obj/item/encryptionkey/qm - -/obj/item/radio/headset/headset_qm/alt - name = "qm bowman headset" - desc = "A bowman headset used by the QM." - icon_state = "cargo_headset_alt" - -/obj/item/radio/headset/pathfinder - name = "pathfinder's headset" - desc = "Headset used by pathfinders for exploring. Access to the explorer and command channels." - icon_state = "exp_headset" - adhoc_fallback = TRUE - ks2type = /obj/item/encryptionkey/pathfinder - -/obj/item/radio/headset/pathfinder/alt - name = "pathfinder's bowman headset" - desc = "Bowman headset used by pathfinders for exploring. Access to the explorer and command channels." - icon_state = "exp_headset_alt" - -/obj/item/radio/headset/pilot - name = "pilot's headset" - desc = "A headset used by pilots." - icon_state = "pilot_headset" - adhoc_fallback = TRUE - -/obj/item/radio/headset/pilot/alt - name = "pilot's bowman headset" - desc = "A bowman headset used by pilots." - icon_state = "pilot_headset_alt" - -/obj/item/radio/headset/explorer - name = "away team member's headset" - desc = "Headset used by the away team for exploring. Access to the away team channel." - icon_state = "exp_headset" - adhoc_fallback = TRUE - ks2type = /obj/item/encryptionkey/explorer - -/obj/item/radio/headset/explorer/alt - name = "away team's bowman headset" - desc = "Bowman headset used by the away team for exploring. Access to the away team channel." - icon_state = "exp_headset_alt" - -/obj/item/radio/headset/sar - name = "fm radio headset" - desc = "A headset for field medics." - icon_state = "sar_headset" - adhoc_fallback = TRUE - ks2type = /obj/item/encryptionkey/sar - -/obj/item/radio/headset/sar/alt - name = "fm radio bowman headset" - desc = "A bowman headset for field medics." - icon_state = "sar_headset_alt" - -/* //They're all volunteers now. -/obj/item/radio/headset/volunteer - name = "volunteer's headset" - desc = "A headset used by volunteers to expedition teams, has access to the Away Team channel." - icon_state = "pilot_headset" - adhoc_fallback = TRUE - ks2type = /obj/item/encryptionkey/explorer -*/ - -/obj/item/radio/headset/talon - name = "talon headset" - desc = "A headset for communication between the crew of the ITV Talon." - adhoc_fallback = TRUE - icon_state = "pilot_headset" - ks2type = /obj/item/encryptionkey/talon diff --git a/code/game/objects/random/mapping.dm b/code/game/objects/random/mapping.dm index 3496fe8bb0..aa2a1bb880 100644 --- a/code/game/objects/random/mapping.dm +++ b/code/game/objects/random/mapping.dm @@ -223,8 +223,8 @@ /obj/random/sfr/item_to_spawn() return pick(prob(25);/obj/item/radio/headset/heads/captain/sfr, - prob(25);/obj/item/radio/headset/headset_cargo/alt, - prob(25);/obj/item/radio/headset/headset_com/alt, + prob(25);/obj/item/radio/headset/alt/cargo, + prob(25);/obj/item/radio/headset/alt/headset_com, prob(25);/obj/item/radio/headset) // Mining Goodies diff --git a/code/game/objects/structures/crates_lockers/closets/job_closets.dm b/code/game/objects/structures/crates_lockers/closets/job_closets.dm index aa09e9fc5b..cb8732ecba 100644 --- a/code/game/objects/structures/crates_lockers/closets/job_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/job_closets.dm @@ -23,7 +23,9 @@ starts_with = list( /obj/item/clothing/head/that = 2, - /obj/item/radio/headset/headset_service = 2, + /obj/item/radio/headset/service = 2, + /obj/item/radio/headset/alt/service = 2, + /obj/item/radio/headset/earbud/service = 2, /obj/item/clothing/head/pin/flower, /obj/item/clothing/head/pin/flower/pink, /obj/item/clothing/head/pin/flower/yellow, @@ -51,7 +53,9 @@ starts_with = list( /obj/item/clothing/under/sundress, /obj/item/clothing/under/waiter = 2, - /obj/item/radio/headset/headset_service = 2, + /obj/item/radio/headset/service = 2, + /obj/item/radio/headset/alt/service = 2, + /obj/item/radio/headset/earbud/service = 2, /obj/item/storage/box/mousetraps = 2, /obj/item/clothing/under/rank/chef, /obj/item/clothing/head/chefhat, @@ -69,7 +73,9 @@ starts_with = list( /obj/item/clothing/under/rank/janitor, /obj/item/clothing/under/dress/maid/janitor, - /obj/item/radio/headset/headset_service, + /obj/item/radio/headset/service, + /obj/item/radio/headset/alt/service, + /obj/item/radio/headset/earbud/service, /obj/item/cartridge/janitor, /obj/item/clothing/suit/storage/hooded/wintercoat/janitor, /obj/item/clothing/gloves/black, diff --git a/code/game/objects/structures/crates_lockers/closets/misc_vr.dm b/code/game/objects/structures/crates_lockers/closets/misc_vr.dm index 225f3c463e..f001c78f45 100644 --- a/code/game/objects/structures/crates_lockers/closets/misc_vr.dm +++ b/code/game/objects/structures/crates_lockers/closets/misc_vr.dm @@ -63,7 +63,7 @@ /obj/item/clothing/shoes/boots/winter/explorer, /obj/item/clothing/gloves/black, /obj/item/radio/headset/explorer, - /obj/item/radio/headset/explorer/alt, + /obj/item/radio/headset/alt/explorer, /obj/item/cartridge/explorer, /obj/item/flashlight, /obj/item/gps/explorer, @@ -104,7 +104,7 @@ /obj/item/clothing/shoes/boots/winter/explorer, /obj/item/clothing/gloves/black, /obj/item/radio/headset/pathfinder, - /obj/item/radio/headset/pathfinder/alt, + /obj/item/radio/headset/alt/pathfinder, /obj/item/cartridge/explorer, /obj/item/flashlight, /obj/item/gps/explorer, @@ -153,7 +153,7 @@ /obj/item/clothing/suit/storage/hooded/wintercoat/medical/sar, /obj/item/clothing/shoes/boots/winter/explorer, /obj/item/radio/headset/sar, - /obj/item/radio/headset/sar/alt, + /obj/item/radio/headset/alt/sar, /obj/item/cartridge/sar, /obj/item/flashlight, /obj/item/tank/emergency/oxygen/engi, @@ -201,7 +201,7 @@ /obj/item/clothing/shoes/black, /obj/item/clothing/gloves/fingerless, /obj/item/radio/headset/pilot, - /obj/item/radio/headset/pilot/alt, + /obj/item/radio/headset/alt/pilot, /obj/item/flashlight, /obj/item/reagent_containers/food/snacks/liquidfood, /obj/item/reagent_containers/food/snacks/liquidprotein, diff --git a/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm b/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm index 34810bfe42..9ede8e655c 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm @@ -11,8 +11,9 @@ /obj/item/clothing/suit/storage/hooded/wintercoat/cargo, /obj/item/clothing/shoes/boots/winter/supply, /obj/item/clothing/shoes/black, - /obj/item/radio/headset/headset_cargo, - /obj/item/radio/headset/headset_cargo/alt, + /obj/item/radio/headset/cargo, + /obj/item/radio/headset/alt/cargo, + /obj/item/radio/headset/earbud/cargo, /obj/item/clothing/gloves/black, /obj/item/clothing/gloves/fingerless, /obj/item/clothing/head/soft) @@ -37,8 +38,9 @@ /obj/item/clothing/under/rank/cargo/jeans, /obj/item/clothing/under/rank/cargo/jeans/female, /obj/item/clothing/shoes/brown, - /obj/item/radio/headset/headset_qm, //VOREStation Edit, - /obj/item/radio/headset/headset_qm/alt, //VOREStation Edit, + /obj/item/radio/headset/qm, + /obj/item/radio/headset/alt/qm, + /obj/item/radio/headset/earbud/qm, /obj/item/clothing/under/rank/neo_qm, /obj/item/clothing/under/rank/neo_qm_skirt, /obj/item/clothing/under/rank/neo_qm_jacket, @@ -73,7 +75,7 @@ closet_appearance = /decl/closet_appearance/secure_closet/mining starts_with = list( - /obj/item/radio/headset/headset_mine, + /obj/item/radio/headset/miner, /obj/item/clothing/under/rank/miner, /obj/item/clothing/gloves/black, /obj/item/clothing/shoes/black, diff --git a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm index 7186779efe..78018e247e 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm @@ -20,7 +20,8 @@ /obj/item/clothing/shoes/brown, /obj/item/cartridge/ce, /obj/item/radio/headset/heads/ce, - /obj/item/radio/headset/heads/ce/alt, + /obj/item/radio/headset/alt/heads/ce, + /obj/item/radio/headset/earbud/heads/ce, /obj/item/storage/toolbox/mechanical, /obj/item/clothing/suit/storage/hazardvest, ///obj/item/clothing/mask/gas, //VOREStation Removal: Locker bloat, grr. The fancy one below functions as a mask & helmet combined. @@ -92,7 +93,8 @@ /obj/item/clothing/accessory/storage/brown_vest, /obj/item/storage/toolbox/mechanical, /obj/item/radio/headset/headset_eng, - /obj/item/radio/headset/headset_eng/alt, + /obj/item/radio/headset/alt/headset_eng, + /obj/item/radio/headset/earbud/headset_eng, /obj/item/clothing/suit/storage/hazardvest, /obj/item/clothing/mask/gas, /obj/item/clothing/glasses/meson, @@ -129,7 +131,8 @@ /obj/item/extinguisher/atmo, ///obj/item/clamp, //VOREStation Removal: without leaks those are pointless, /obj/item/radio/headset/headset_eng, - /obj/item/radio/headset/headset_eng/alt, + /obj/item/radio/headset/alt/headset_eng, + /obj/item/radio/headset/earbud/headset_eng, /obj/item/clothing/suit/storage/hazardvest/atmos, //VOREStation edit. Eng locker gets regular haz-vest, atmos gets the themed one of their own /obj/item/clothing/mask/gas, /obj/item/cartridge/atmos, diff --git a/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm b/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm index e5fc9ce56e..5e4389f0ef 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm @@ -8,7 +8,9 @@ /obj/item/clothing/under/rank/hydroponics, /obj/item/clothing/gloves/botanic_leather, /obj/item/analyzer/plant_analyzer, - /obj/item/radio/headset/headset_service, + /obj/item/radio/headset/service, + /obj/item/radio/headset/alt/service, + /obj/item/radio/headset/earbud/service, /obj/item/clothing/head/greenbandana, /obj/item/shovel/spade, /obj/item/material/minihoe, diff --git a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm index a747bf9e3e..231b17b610 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm @@ -39,7 +39,8 @@ /obj/item/clothing/shoes/white, /obj/item/cartridge/medical, /obj/item/radio/headset/headset_med, - /obj/item/radio/headset/headset_med/alt, + /obj/item/radio/headset/alt/headset_med, + /obj/item/radio/headset/earbud/headset_med, /obj/item/clothing/suit/storage/hooded/wintercoat/medical, /obj/item/clothing/suit/storage/hooded/wintercoat/medical/alt, /obj/item/clothing/shoes/boots/winter/medical, @@ -108,7 +109,9 @@ /obj/item/clothing/suit/storage/toggle/labcoat/emt, /obj/item/clothing/suit/storage/hooded/wintercoat/medical/para, /obj/item/clothing/shoes/boots/winter/medical, - /obj/item/radio/headset/headset_med/alt, + /obj/item/radio/headset/headset_med, + /obj/item/radio/headset/alt/headset_med, + /obj/item/radio/headset/earbud/headset_med, /obj/item/cartridge/medical, /obj/item/storage/briefcase/inflatable, /obj/item/flashlight, @@ -143,7 +146,8 @@ /obj/item/clothing/under/rank/neo_cmo_turtle_skirt, /obj/item/clothing/under/rank/neo_cmo_gorka, /obj/item/radio/headset/heads/cmo, - /obj/item/radio/headset/heads/cmo/alt, + /obj/item/radio/headset/alt/heads/cmo, + /obj/item/radio/headset/earbud/heads/cmo, /obj/item/flash, /obj/item/reagent_containers/hypospray/vial, /obj/item/clothing/suit/storage/hooded/wintercoat/medical, diff --git a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm index 5b5d4c42f2..f33d9ba9ae 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm @@ -45,7 +45,8 @@ /obj/item/clothing/shoes/laceup/brown, /obj/item/clothing/gloves/sterile/latex, /obj/item/radio/headset/heads/rd, - /obj/item/radio/headset/heads/rd/alt, + /obj/item/radio/headset/alt/heads/rd, + /obj/item/radio/headset/earbud/heads/rd, /obj/item/tank/air, /obj/item/clothing/mask/gas, /obj/item/flash, diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index 80d3bb90eb..90661f4dd4 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -10,7 +10,8 @@ /obj/item/cartridge/captain, /obj/item/storage/lockbox/medal, /obj/item/radio/headset/heads/captain, - /obj/item/radio/headset/heads/captain/alt, + /obj/item/radio/headset/alt/heads/captain, + /obj/item/radio/headset/earbud/heads/captain, /obj/item/gun/energy/gun, /obj/item/melee/telebaton, /obj/item/flash, @@ -27,7 +28,8 @@ /obj/item/clothing/head/helmet, /obj/item/cartridge/hop, /obj/item/radio/headset/heads/hop, - /obj/item/radio/headset/heads/hop/alt, + /obj/item/radio/headset/alt/heads/hop, + /obj/item/radio/headset/earbud/heads/hop, /obj/item/storage/box/ids = 2, /obj/item/gun/energy/gun/compact, /obj/item/storage/box/commandkeys, @@ -90,7 +92,8 @@ /obj/item/clothing/head/helmet/dermal, /obj/item/cartridge/hos, /obj/item/radio/headset/heads/hos, - /obj/item/radio/headset/heads/hos/alt, + /obj/item/radio/headset/alt/heads/hos, + /obj/item/radio/headset/earbud/heads/hos, /obj/item/clothing/glasses/sunglasses/sechud, /obj/item/taperoll/police, /obj/item/shield/riot, @@ -151,7 +154,8 @@ /obj/item/clothing/under/rank/neo_sec_gorka, /obj/item/cartridge/security, /obj/item/radio/headset/headset_sec, - /obj/item/radio/headset/headset_sec/alt, + /obj/item/radio/headset/alt/headset_sec, + /obj/item/radio/headset/earbud/headset_sec, /obj/item/clothing/glasses/sunglasses/sechud, /obj/item/taperoll/police, /obj/item/clothing/accessory/badge/holo/warden, @@ -189,7 +193,8 @@ /obj/item/clothing/head/helmet, /obj/item/cartridge/security, /obj/item/radio/headset/headset_sec, - /obj/item/radio/headset/headset_sec/alt, + /obj/item/radio/headset/alt/headset_sec, + /obj/item/radio/headset/earbud/headset_sec, /obj/item/storage/belt/security, /obj/item/flash, /obj/item/reagent_containers/spray/pepper, @@ -257,7 +262,8 @@ /obj/item/storage/belt/detective, /obj/item/storage/box/evidence, /obj/item/radio/headset/headset_sec, - /obj/item/radio/headset/headset_sec/alt, + /obj/item/radio/headset/alt/headset_sec, + /obj/item/radio/headset/earbud/headset_sec, /obj/item/clothing/suit/storage/vest/detective, /obj/item/taperoll/police, /obj/item/clothing/accessory/holster/armpit, diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security_vr.dm b/code/game/objects/structures/crates_lockers/closets/secure/security_vr.dm index 7761b7f03f..e627ad4a49 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security_vr.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security_vr.dm @@ -31,7 +31,8 @@ /obj/item/clothing/head/helmet/HoS/hat/blue, /obj/item/clothing/head/helmet/dermal, /obj/item/radio/headset/heads/hos, - /obj/item/radio/headset/heads/hos/alt, + /obj/item/radio/headset/alt/heads/hos, + /obj/item/radio/headset/earbud/heads/hos, /obj/item/clothing/glasses/sunglasses/sechud, /obj/item/storage/belt/security, /obj/item/clothing/accessory/holster/waist, @@ -76,7 +77,8 @@ /obj/item/clothing/head/helmet, /obj/item/cartridge/security, /obj/item/radio/headset/headset_sec, - /obj/item/radio/headset/headset_sec/alt, + /obj/item/radio/headset/alt/headset_sec, + /obj/item/radio/headset/earbud/headset_sec, /obj/item/storage/belt/security, /obj/item/flash, /obj/item/reagent_containers/spray/pepper, @@ -122,7 +124,8 @@ /obj/item/clothing/head/helmet/dermal, /obj/item/cartridge/hos, /obj/item/radio/headset/heads/hos, - /obj/item/radio/headset/heads/hos/alt, + /obj/item/radio/headset/alt/heads/hos, + /obj/item/radio/headset/earbud/heads/hos, /obj/item/clothing/glasses/sunglasses/sechud, /obj/item/taperoll/police, /obj/item/shield/riot, @@ -169,7 +172,8 @@ /obj/item/clothing/head/helmet/warden, /obj/item/cartridge/security, /obj/item/radio/headset/headset_sec, - /obj/item/radio/headset/headset_sec/alt, + /obj/item/radio/headset/alt/headset_sec, + /obj/item/radio/headset/earbud/headset_sec, /obj/item/clothing/glasses/sunglasses/sechud, /obj/item/taperoll/police, /obj/item/clothing/accessory/badge/holo/warden, @@ -204,7 +208,8 @@ /obj/item/cartridge/captain, /obj/item/storage/lockbox/medal, /obj/item/radio/headset/heads/captain, - /obj/item/radio/headset/heads/captain/alt, + /obj/item/radio/headset/alt/heads/captain, + /obj/item/radio/headset/earbud/heads/captain, /obj/item/gunbox/captain, /obj/item/melee/telebaton, /obj/item/flash, diff --git a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm index b920ecd8b7..f010c116e9 100644 --- a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm +++ b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm @@ -410,7 +410,7 @@ /obj/item/clothing/under/rank/centcom, /obj/item/clothing/under/ert, /obj/item/clothing/under/syndicate/combat, - /obj/item/radio/headset/ert/alt, + /obj/item/radio/headset/alt/ert, /obj/item/clothing/glasses/sunglasses, /obj/item/clothing/shoes/boots/swat, /obj/item/clothing/gloves/swat, diff --git a/code/game/objects/structures/crates_lockers/closets/wardrobe_vr.dm b/code/game/objects/structures/crates_lockers/closets/wardrobe_vr.dm index 67deb1eec8..7f9956a855 100644 --- a/code/game/objects/structures/crates_lockers/closets/wardrobe_vr.dm +++ b/code/game/objects/structures/crates_lockers/closets/wardrobe_vr.dm @@ -3,13 +3,14 @@ closet_appearance = /decl/closet_appearance/tactical/alt //because ert lockers are red for some dumb reason starts_with = list( /obj/item/clothing/under/ert, - /obj/item/radio/headset/ert/alt, + /obj/item/radio/headset/ert, + /obj/item/radio/headset/alt/ert, /obj/item/clothing/glasses/sunglasses, /obj/item/clothing/shoes/boots/swat, /obj/item/clothing/gloves/swat, /obj/item/clothing/mask/balaclava/tactical, /obj/item/clothing/mask/balaclava) - + //would you believe mercs have no official locker? well, now they do. basically just a rebranded ERT locker but hey, it's an option. -Killian /obj/structure/closet/wardrobe/merc name = "mercenary equipment" @@ -18,7 +19,9 @@ starts_with = list( /obj/item/clothing/under/tactical, /obj/item/clothing/under/syndicate/combat, - /obj/item/radio/headset/syndicate/alt, + /obj/item/radio/headset/syndicate, + /obj/item/radio/headset/alt/syndicate, + /obj/item/radio/headset/earbud/syndicate, /obj/item/clothing/glasses/sunglasses, /obj/item/clothing/shoes/boots/combat, /obj/item/clothing/gloves/combat, diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm index c61f8cd792..95a17a4f71 100644 --- a/code/modules/awaymissions/corpse.dm +++ b/code/modules/awaymissions/corpse.dm @@ -237,7 +237,7 @@ random_species = TRUE /obj/effect/landmark/corpse/miner - corpseradio = /obj/item/radio/headset/headset_cargo + corpseradio = /obj/item/radio/headset/miner corpseuniform = /obj/item/clothing/under/rank/miner corpsegloves = /obj/item/clothing/gloves/black corpseback = /obj/item/storage/backpack/industrial diff --git a/code/modules/client/preference_setup/general/04_equipment.dm b/code/modules/client/preference_setup/general/04_equipment.dm index 14c56354f9..b76ff9ee38 100644 --- a/code/modules/client/preference_setup/general/04_equipment.dm +++ b/code/modules/client/preference_setup/general/04_equipment.dm @@ -11,6 +11,7 @@ pref.all_underwear_metadata = check_list_copy(save_data["all_underwear_metadata"]) for(var/i in pref.all_underwear_metadata) pref.all_underwear_metadata[i] = path2text_list(pref.all_underwear_metadata[i]) + pref.headset = save_data["headset"] pref.backbag = save_data["backbag"] pref.pdachoice = save_data["pdachoice"] pref.communicator_visibility = save_data["communicator_visibility"] @@ -23,6 +24,7 @@ for(var/i in pref.all_underwear_metadata) underwear[i] = check_list_copy(pref.all_underwear_metadata[i]) save_data["all_underwear_metadata"] = underwear + save_data["headset"] = pref.headset save_data["backbag"] = pref.backbag save_data["pdachoice"] = pref.pdachoice save_data["communicator_visibility"] = pref.communicator_visibility @@ -72,6 +74,10 @@ var/global/list/valid_ringtones = list( pref.all_underwear -= underwear_category_name // TODO - Looks like this is duplicating the work of sanitize_character() if so, remove + if(pref.headset > GLOB.headsetlist.len || pref.headset < 1) + pref.headset = 1 //Same as above + character.headset = pref.headset + if(pref.backbag > backbaglist.len || pref.backbag < 1) pref.backbag = 2 //Same as above character.backbag = pref.backbag @@ -107,6 +113,7 @@ var/global/list/valid_ringtones = list( for(var/underwear_metadata in pref.all_underwear_metadata) if(!(underwear_metadata in pref.all_underwear)) pref.all_underwear_metadata -= underwear_metadata + pref.headset = sanitize_integer(pref.headset, 1, GLOB.headsetlist.len, initial(pref.headset)) pref.backbag = sanitize_integer(pref.backbag, 1, backbaglist.len, initial(pref.backbag)) pref.pdachoice = sanitize_integer(pref.pdachoice, 1, pdachoicelist.len, initial(pref.pdachoice)) pref.ringtone = sanitize(pref.ringtone, 20) @@ -123,6 +130,7 @@ var/global/list/valid_ringtones = list( . += " [gt.get_contents(get_metadata(UWC.name, gt))]" . += "
" + . += "Headset Type: [GLOB.headsetlist[pref.headset]]
" . += "Backpack Type: [backbaglist[pref.backbag]]
" . += "PDA Type: [pdachoicelist[pref.pdachoice]]
" . += "Communicator Visibility: [(pref.communicator_visibility) ? "Yes" : "No"]
" @@ -149,6 +157,12 @@ var/global/list/valid_ringtones = list( /datum/category_item/player_setup_item/general/equipment/OnTopic(var/href,var/list/href_list, var/mob/user) + if(href_list["change_headset"]) + var/new_headset = tgui_input_list(user, "Choose your character's style of headset:", "Character Preference", GLOB.headsetlist, GLOB.headsetlist[pref.headset]) + if(!isnull(new_headset) && CanUseTopic(user)) + pref.headset = GLOB.headsetlist.Find(new_headset) + return TOPIC_REFRESH_UPDATE_PREVIEW + if(href_list["change_backpack"]) var/new_backbag = tgui_input_list(user, "Choose your character's style of bag:", "Character Preference", backbaglist, backbaglist[pref.backbag]) if(!isnull(new_backbag) && CanUseTopic(user)) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index a6fbe93881..31899796a2 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -47,6 +47,7 @@ var/list/preferences_datums = list() var/spawnpoint = "Arrivals Shuttle" //where this character will spawn (0-2). var/b_type = "A+" //blood type (not-chooseable) var/blood_reagents = "default" //blood restoration reagents + var/headset = 1 //headset type var/backbag = 2 //backpack type var/pdachoice = 1 //PDA type var/shoe_hater = FALSE //RS ADD - if true, will spawn with no shoes diff --git a/code/modules/economy/vending_machines.dm b/code/modules/economy/vending_machines.dm index 7942381c9d..052cab2a26 100644 --- a/code/modules/economy/vending_machines.dm +++ b/code/modules/economy/vending_machines.dm @@ -1615,7 +1615,7 @@ /obj/item/clothing/head/soft/purple = 5, /obj/item/clothing/head/beret/purple = 5, /obj/item/clothing/head/headband/maid = 5, - /obj/item/radio/headset/headset_service = 5, + /obj/item/radio/headset/service = 5, /obj/item/clothing/under/rank/janitor = 5, /obj/item/clothing/under/dress/maid/janitor = 5, /obj/item/clothing/suit/storage/hooded/wintercoat/janitor = 5, diff --git a/code/modules/economy/vending_machines_vr.dm b/code/modules/economy/vending_machines_vr.dm index 800c386d9d..cc91773128 100644 --- a/code/modules/economy/vending_machines_vr.dm +++ b/code/modules/economy/vending_machines_vr.dm @@ -343,7 +343,7 @@ /obj/item/storage/box/syndie_kit/chameleon = 1, /obj/item/clothing/mask/bandana = 1, /obj/item/clothing/glasses/sunglasses = 1, - /obj/item/radio/headset/syndicate/alt = 1, + /obj/item/radio/headset/syndicate = 1, /obj/item/pda = 1, /obj/item/communicator = 1, /obj/item/tape_roll = 2, diff --git a/code/modules/mob/living/carbon/human/ai_controlled/ai_controlled.dm b/code/modules/mob/living/carbon/human/ai_controlled/ai_controlled.dm index b1608dc51f..54df0bdb0b 100644 --- a/code/modules/mob/living/carbon/human/ai_controlled/ai_controlled.dm +++ b/code/modules/mob/living/carbon/human/ai_controlled/ai_controlled.dm @@ -126,7 +126,7 @@ to_wear_helmet = /obj/item/clothing/head/helmet/dermal to_wear_glasses = /obj/item/clothing/glasses/goggles to_wear_mask = /obj/item/clothing/mask/gas/half - to_wear_l_radio = /obj/item/radio/headset/headset_rob + to_wear_l_radio = /obj/item/radio/headset to_wear_r_radio = null to_wear_uniform = /obj/item/clothing/under/color/grey to_wear_suit = /obj/item/clothing/suit/armor/vest diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index d182593d1f..8dca9ab08f 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -54,6 +54,7 @@ var/list/all_underwear = list() var/list/all_underwear_metadata = list() var/list/hide_underwear = list() + var/headset = 1 //Which headset type the player has chosen. var/backbag = 2 //Which backpack type the player has chosen. var/pdachoice = 1 //Which PDA type the player has chosen. diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm index 54a5f2cf29..b2a03e9cf9 100644 --- a/code/modules/mob/new_player/preferences_setup.dm +++ b/code/modules/mob/new_player/preferences_setup.dm @@ -29,6 +29,7 @@ all_underwear[WRC.name] = WRI.name + headset = rand(1,3) backbag = rand(1,6) pdachoice = rand(1,7) age = rand(current_species.min_age, current_species.max_age) diff --git a/code/modules/vehicles/rover_vr.dm b/code/modules/vehicles/rover_vr.dm index 12094f58c6..9ad03c25bf 100644 --- a/code/modules/vehicles/rover_vr.dm +++ b/code/modules/vehicles/rover_vr.dm @@ -292,12 +292,15 @@ if(!istype(C, /mob/living/carbon/human)) return 0 + . = ..(C) + + if(!.) + return + if(ismob(C)) buckle_mob(C) C.alpha = 0 - return ..() - /obj/vehicle/train/rover/engine/unload(var/mob/user, var/direction) var/mob/living/carbon/human/C = load diff --git a/code/modules/vehicles/vehicle.dm b/code/modules/vehicles/vehicle.dm index 97e9dfa746..963faa32f8 100644 --- a/code/modules/vehicles/vehicle.dm +++ b/code/modules/vehicles/vehicle.dm @@ -340,7 +340,7 @@ C.pixel_y += load_offset_y C.layer = layer + 0.1 - if(ismob(C)) + if(ismob(C) && user) user_buckle_mob(C, user) return 1 diff --git a/icons/inventory/ears/mob.dmi b/icons/inventory/ears/mob.dmi index 95ec0e9c8a..016c3d081d 100644 Binary files a/icons/inventory/ears/mob.dmi and b/icons/inventory/ears/mob.dmi differ diff --git a/icons/inventory/ears/mob_teshari.dmi b/icons/inventory/ears/mob_teshari.dmi index d41f5d871f..69b6b42b0b 100644 Binary files a/icons/inventory/ears/mob_teshari.dmi and b/icons/inventory/ears/mob_teshari.dmi differ diff --git a/icons/obj/radio_vr.dmi b/icons/obj/radio_vr.dmi index 480e3bcbff..a4e69892f6 100644 Binary files a/icons/obj/radio_vr.dmi and b/icons/obj/radio_vr.dmi differ diff --git a/maps/cynosure/cynosure-6.dmm b/maps/cynosure/cynosure-6.dmm index 56fe694d8c..95ac6376a5 100644 --- a/maps/cynosure/cynosure-6.dmm +++ b/maps/cynosure/cynosure-6.dmm @@ -10652,10 +10652,10 @@ /area/beach) "lQh" = ( /obj/structure/table/standard, -/obj/item/radio/headset/syndicate/alt, -/obj/item/radio/headset/syndicate/alt, -/obj/item/radio/headset/syndicate/alt, -/obj/item/radio/headset/syndicate/alt, +/obj/item/radio/headset/alt/syndicate, +/obj/item/radio/headset/alt/syndicate, +/obj/item/radio/headset/alt/syndicate, +/obj/item/radio/headset/alt/syndicate, /turf/unsimulated/floor{ icon_state = "lino" }, diff --git a/maps/submaps/admin_use_vr/kk_mercship.dmm b/maps/submaps/admin_use_vr/kk_mercship.dmm index ae2921fbf7..7a8048d4fa 100644 --- a/maps/submaps/admin_use_vr/kk_mercship.dmm +++ b/maps/submaps/admin_use_vr/kk_mercship.dmm @@ -6594,10 +6594,10 @@ /obj/item/radio/headset/syndicate, /obj/item/radio/headset/syndicate, /obj/item/radio/headset/syndicate, -/obj/item/radio/headset/syndicate/alt, -/obj/item/radio/headset/syndicate/alt, -/obj/item/radio/headset/syndicate/alt, -/obj/item/radio/headset/syndicate/alt, +/obj/item/radio/headset/alt/syndicate, +/obj/item/radio/headset/alt/syndicate, +/obj/item/radio/headset/alt/syndicate, +/obj/item/radio/headset/alt/syndicate, /obj/effect/floor_decal/techfloor{ dir = 10 }, diff --git a/maps/submaps/depreciated_vr/mercbase.dmm b/maps/submaps/depreciated_vr/mercbase.dmm index 1c3ea488ff..234417b727 100644 --- a/maps/submaps/depreciated_vr/mercbase.dmm +++ b/maps/submaps/depreciated_vr/mercbase.dmm @@ -419,10 +419,10 @@ /obj/item/radio/headset/syndicate, /obj/item/radio/headset/syndicate, /obj/item/radio/headset/syndicate, -/obj/item/radio/headset/syndicate/alt, -/obj/item/radio/headset/syndicate/alt, -/obj/item/radio/headset/syndicate/alt, -/obj/item/radio/headset/syndicate/alt, +/obj/item/radio/headset/alt/syndicate, +/obj/item/radio/headset/alt/syndicate, +/obj/item/radio/headset/alt/syndicate, +/obj/item/radio/headset/alt/syndicate, /turf/unsimulated/floor{ icon_state = "lino" }, diff --git a/vorestation.dme b/vorestation.dme index b356b34d55..c344ac7c6f 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -1356,7 +1356,6 @@ #include "code\game\objects\items\devices\radio\encryptionkey.dm" #include "code\game\objects\items\devices\radio\encryptionkey_vr.dm" #include "code\game\objects\items\devices\radio\headset.dm" -#include "code\game\objects\items\devices\radio\headset_vr.dm" #include "code\game\objects\items\devices\radio\intercom.dm" #include "code\game\objects\items\devices\radio\jammer.dm" #include "code\game\objects\items\devices\radio\jammer_vr.dm"