diff --git a/code/__DEFINES/equipment.dm b/code/__DEFINES/equipment.dm index 82e91c5680..5f8f27a657 100644 --- a/code/__DEFINES/equipment.dm +++ b/code/__DEFINES/equipment.dm @@ -551,3 +551,8 @@ var/global/list/uniform_categories = list( #define PHONE_MARINE "Marine" #define PHONE_UPP_SOLDIER "Soldier" #define PHONE_IO "IO" + +#define PHONE_DND_FORCED 2 +#define PHONE_DND_ON 1 +#define PHONE_DND_OFF 0 +#define PHONE_DND_FORBIDDEN -1 diff --git a/code/datums/disease.dm b/code/datums/disease.dm index e9c399c7b8..92986b668b 100644 --- a/code/datums/disease.dm +++ b/code/datums/disease.dm @@ -121,10 +121,10 @@ var/list/diseases = typesof(/datum/disease) - /datum/disease check_range = 1 // everything else, like infect-on-contact things, only infect things on top of it if(isturf(source.loc)) - for(var/mob/living/carbon/M in oview(check_range, source)) - if(isturf(M.loc)) - if(AStar(source.loc, M.loc, /turf/proc/AdjacentTurfs, /turf/proc/Distance, check_range)) - M.contract_disease(src, 0, 1, force_spread) + for(var/mob/living/carbon/victim in oview(check_range, source)) + if(isturf(victim.loc)) + if(AStar(source.loc, victim.loc, /turf/proc/AdjacentTurfs, /turf/proc/Distance, check_range)) + victim.contract_disease(src, 0, 1, force_spread) return @@ -173,8 +173,6 @@ var/list/diseases = typesof(/datum/disease) - /datum/disease var/mob/living/carbon/human/H = affected_mob H.med_hud_set_status() - - /datum/disease/New(process=TRUE)//process = 1 - adding the object to global list. List is processed by master controller. cure_list = list(cure_id) // to add more cures, add more vars to this list in the actual disease's New() if(process) // Viruses in list are considered active. diff --git a/code/datums/diseases/mob_procs.dm b/code/datums/diseases/mob_procs.dm index 7f9704c46f..c27efecdff 100644 --- a/code/datums/diseases/mob_procs.dm +++ b/code/datums/diseases/mob_procs.dm @@ -80,9 +80,6 @@ passed = check_disease_pass_clothes(target_zone) - if(!passed && spread_type == AIRBORNE && !internal) - passed = (prob((50*virus.permeability_mod) - 1)) - if(passed) AddDisease(virus) @@ -111,36 +108,39 @@ /mob/living/carbon/human/check_disease_pass_clothes(target_zone) var/obj/item/clothing/Cl + var/protection = 0 switch(target_zone) if(1) if(isobj(head) && !istype(head, /obj/item/paper)) Cl = head - . = prob((Cl.permeability_coefficient*100) - 1) - if(. && wear_mask) - . = prob((Cl.permeability_coefficient*100) - 1) + protection += (Cl.permeability_coefficient*100)-100 + if(isobj(wear_mask)) + Cl = wear_mask + protection += (Cl.permeability_coefficient*100)-100 if(2)//arms and legs included if(isobj(wear_suit)) Cl = wear_suit - . = prob((Cl.permeability_coefficient*100) - 1) - if(. && isobj(WEAR_BODY)) + protection += (Cl.permeability_coefficient*100)-100 + if(isobj(WEAR_BODY)) Cl = WEAR_BODY - . = prob((Cl.permeability_coefficient*100) - 1) + protection += (Cl.permeability_coefficient*100)-100 if(3) if(isobj(wear_suit) && wear_suit.flags_armor_protection & BODY_FLAG_HANDS) Cl = wear_suit - . = prob((Cl.permeability_coefficient*100) - 1) + protection += (Cl.permeability_coefficient*100)-100 - if(. && isobj(gloves)) + if(isobj(gloves)) Cl = gloves - . = prob((Cl.permeability_coefficient*100) - 1) + protection += (Cl.permeability_coefficient*100)-100 if(4) if(isobj(wear_suit) && wear_suit.flags_armor_protection & BODY_FLAG_FEET) Cl = wear_suit - . = prob((Cl.permeability_coefficient*100) - 1) + protection += (Cl.permeability_coefficient*100)-100 - if(. && isobj(shoes)) + if(isobj(shoes)) Cl = shoes - . = prob((Cl.permeability_coefficient*100) - 1) + protection += (Cl.permeability_coefficient*100)-100 else to_chat(src, "Something bad happened with disease target zone code, tell a dev or admin ") + return prob(clamp(protection, 5, 90)) diff --git a/code/game/machinery/vending/vendor_types/crew/senior_officers.dm b/code/game/machinery/vending/vendor_types/crew/senior_officers.dm index 88a3647777..56eeb2b8a6 100644 --- a/code/game/machinery/vending/vendor_types/crew/senior_officers.dm +++ b/code/game/machinery/vending/vendor_types/crew/senior_officers.dm @@ -284,7 +284,6 @@ GLOBAL_LIST_INIT(cm_vending_clothing_xo, list( list("M4A3 Service Pistol", 0, /obj/item/storage/belt/gun/m4a3/commander, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_REGULAR), list("Mod 88 Pistol", 0, /obj/item/storage/belt/gun/m4a3/mod88, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_REGULAR), list("M44 Revolver", 0, /obj/item/storage/belt/gun/m44/mp, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_REGULAR), - list("Ceremonial Sword", 0, /obj/item/storage/large_holster/ceremonial_sword/full, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_REGULAR), list("COMBAT EQUIPMENT (TAKE ALL)", 0, null, null, null), list("Officer M3 Armor", 0, /obj/item/clothing/suit/storage/marine/MP/SO, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY), diff --git a/code/game/machinery/vending/vendor_types/crew/synthetic.dm b/code/game/machinery/vending/vendor_types/crew/synthetic.dm index c48a7f3de5..472db608c0 100644 --- a/code/game/machinery/vending/vendor_types/crew/synthetic.dm +++ b/code/game/machinery/vending/vendor_types/crew/synthetic.dm @@ -188,9 +188,11 @@ GLOBAL_LIST_INIT(cm_vending_clothing_synth_snowflake, list( list("Medical Scrubs, White", 12, /obj/item/clothing/under/rank/medical, null, VENDOR_ITEM_REGULAR), list("USCM Service Uniform", 12, /obj/item/clothing/under/marine/officer/bridge, null, VENDOR_ITEM_REGULAR), list("USCM Flightsuit", 12, /obj/item/clothing/under/rank/synthetic/flight, null, VENDOR_ITEM_REGULAR), - list("USCM Engineers Uniform", 12, /obj/item/clothing/under/marine/engineer, null, VENDOR_ITEM_REGULAR), + list("USCM Engineers Uniform", 12, /obj/item/clothing/under/marine/engineer/standard, null, VENDOR_ITEM_REGULAR), + list("USCM Engineers Uniform (Darker)", 12, /obj/item/clothing/under/marine/engineer/darker, null, VENDOR_ITEM_REGULAR), list("USCM Engineering Officers Uniform", 12, /obj/item/clothing/under/marine/officer/engi, null, VENDOR_ITEM_REGULAR), - list("USCM Military Police Uniform", 12, /obj/item/clothing/under/marine/mp, null, VENDOR_ITEM_REGULAR), + list("USCM Military Police Uniform", 12, /obj/item/clothing/under/marine/mp/standard, null, VENDOR_ITEM_REGULAR), + list("USCM Military Police Uniform (Darker)", 12, /obj/item/clothing/under/marine/mp/darker, null, VENDOR_ITEM_REGULAR), list("NON-STANDARD UNIFORMS", 0, null, null, null), list("White T-Shirt and Brown Jeans", 12, /obj/item/clothing/under/tshirt/w_br, null, VENDOR_ITEM_REGULAR), @@ -235,6 +237,8 @@ GLOBAL_LIST_INIT(cm_vending_clothing_synth_snowflake, list( list("Beret, Red", 12, /obj/item/clothing/head/beret/cm/red, null, VENDOR_ITEM_REGULAR), list("Beret, Standard", 12, /obj/item/clothing/head/beret/cm, null, VENDOR_ITEM_REGULAR), list("Beret, Tan", 12, /obj/item/clothing/head/beret/cm/tan, null, VENDOR_ITEM_REGULAR), + list("Beret, Black", 12, /obj/item/clothing/head/beret/cm/black, null, VENDOR_ITEM_REGULAR), + list("Beret, White", 12, /obj/item/clothing/head/beret/cm/white, null, VENDOR_ITEM_REGULAR), list("Surgical Cap, Blue", 12, /obj/item/clothing/head/surgery/blue, null, VENDOR_ITEM_REGULAR), list("Surgical Cap, Blue", 12, /obj/item/clothing/head/surgery/purple, null, VENDOR_ITEM_REGULAR), list("Surgical Cap, Green", 12, /obj/item/clothing/head/surgery/green, null, VENDOR_ITEM_REGULAR), @@ -277,7 +281,13 @@ GLOBAL_LIST_INIT(cm_vending_clothing_synth_snowflake, list( list("Labcoat, Researcher", 12, /obj/item/clothing/suit/storage/labcoat/researcher, null, VENDOR_ITEM_REGULAR), list("Quartermaster Jacket", 12, /obj/item/clothing/suit/storage/RO, null, VENDOR_ITEM_REGULAR), list("Bio Suit", 12, /obj/item/clothing/suit/storage/synthbio, null, VENDOR_ITEM_REGULAR), - list("USCM Poncho", 12, /obj/item/clothing/accessory/poncho, null, VENDOR_ITEM_REGULAR), + list("USCM Poncho (Mission-Specific Camo)", 12, /obj/item/clothing/accessory/poncho, null, VENDOR_ITEM_REGULAR), + list("USCM Poncho (Green)", 12, /obj/item/clothing/accessory/poncho/green, null, VENDOR_ITEM_REGULAR), + list("USCM Poncho (Brown)", 12, /obj/item/clothing/accessory/poncho/brown, null, VENDOR_ITEM_REGULAR), + list("USCM Poncho (Black)", 12, /obj/item/clothing/accessory/poncho/black, null, VENDOR_ITEM_REGULAR), + list("USCM Poncho (Blue)", 12, /obj/item/clothing/accessory/poncho/blue, null, VENDOR_ITEM_REGULAR), + list("USCM Poncho (Purple)", 12, /obj/item/clothing/accessory/poncho/purple, null, VENDOR_ITEM_REGULAR), + list("BACKPACK", 0, null, null, null), list("Backpack, Industrial", 12, /obj/item/storage/backpack/industrial, null, VENDOR_ITEM_REGULAR), diff --git a/code/game/machinery/vending/vendor_types/squad_prep/squad_prep.dm b/code/game/machinery/vending/vendor_types/squad_prep/squad_prep.dm index 94768340c6..222cd4693c 100644 --- a/code/game/machinery/vending/vendor_types/squad_prep/squad_prep.dm +++ b/code/game/machinery/vending/vendor_types/squad_prep/squad_prep.dm @@ -148,6 +148,7 @@ list("MISCELLANEOUS", -1, null, null, null), list("Ballistic goggles", round(scale * 10), /obj/item/clothing/glasses/mgoggles, VENDOR_ITEM_REGULAR), + list("M1A1 Ballistic goggles", round(scale * 10), /obj/item/clothing/glasses/mgoggles/v2, VENDOR_ITEM_REGULAR), list("Prescription ballistic goggles", round(scale * 10), /obj/item/clothing/glasses/mgoggles/prescription, VENDOR_ITEM_REGULAR), list("Marine RPG glasses", round(scale * 10), /obj/item/clothing/glasses/regular, VENDOR_ITEM_REGULAR), list("M5 Integrated Gas Mask", round(scale * 10), /obj/item/prop/helmetgarb/helmet_gasmask, VENDOR_ITEM_REGULAR), diff --git a/code/game/objects/effects/spawners/prop_gun_spawner.dm b/code/game/objects/effects/spawners/prop_gun_spawner.dm index b04f6cffff..5e620994e7 100644 --- a/code/game/objects/effects/spawners/prop_gun_spawner.dm +++ b/code/game/objects/effects/spawners/prop_gun_spawner.dm @@ -17,7 +17,7 @@ stack_trace("[src] using incorrect typepath, \"[prop_gun_type]\".") //Can't make a prop gun of something not a gun qdel(src) return - if(!spawn_prob) + if(!prob(spawn_prob)) qdel(src) return if(!mapload) @@ -71,6 +71,7 @@ pixel_x = source_gun.pixel_x pixel_y = source_gun.pixel_y layer = source_gun.layer + overlays = source_gun.overlays /obj/item/prop/prop_gun/attack_self(mob/user) //Mimic wielding of real guns . = ..() diff --git a/code/modules/client/preferences_gear.dm b/code/modules/client/preferences_gear.dm index 68028c3007..c6c06a123b 100644 --- a/code/modules/client/preferences_gear.dm +++ b/code/modules/client/preferences_gear.dm @@ -62,6 +62,10 @@ var/global/list/gear_datums_by_name = list() display_name = "Ballistic goggles, orange" path = /obj/item/clothing/glasses/mgoggles/orange +/datum/gear/eyewear/goggles2 + display_name = "Ballistic goggles, M1A1" + path = /obj/item/clothing/glasses/mgoggles/v2 + /datum/gear/eyewear/bimex_shades display_name = "BiMex personal shades" path = /obj/item/clothing/glasses/sunglasses/big @@ -205,6 +209,14 @@ var/global/list/gear_datums_by_name = list() display_name = "USCM beret, tan" path = /obj/item/clothing/head/beret/cm/tan +/datum/gear/headwear/uscm/beret_black + display_name = "USCM beret, black" + path = /obj/item/clothing/head/beret/cm/black + +/datum/gear/headwear/uscm/beret_white + display_name = "USCM beret, white" + path = /obj/item/clothing/head/beret/cm/white + /datum/gear/headwear/uscm/boonie_olive display_name = "USCM boonie hat, olive" path = /obj/item/clothing/head/cmcap/boonie diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm index b31e6281db..779d8212f3 100644 --- a/code/modules/clothing/glasses/glasses.dm +++ b/code/modules/clothing/glasses/glasses.dm @@ -411,6 +411,13 @@ active_icon_state = "mgogglesorg_down" inactive_icon_state = "mgogglesorg" +/obj/item/clothing/glasses/mgoggles/v2 + name = "M1A1 marine ballistic goggles" + desc = "Newer issue USCM goggles. While commonly found mounted atop M10 pattern helmets, they are also capable of preventing insects, dust, and other things from getting into one's eyes. This version has larger lenses." + icon_state = "mgoggles2_down" + active_icon_state = "mgoggles2_down" + inactive_icon_state = "mgoggles2" + /obj/item/clothing/glasses/mgoggles/on_enter_storage(obj/item/storage/internal/S) ..() diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm index 9d18c44aff..e6c8391ac0 100644 --- a/code/modules/clothing/gloves/miscellaneous.dm +++ b/code/modules/clothing/gloves/miscellaneous.dm @@ -46,7 +46,7 @@ icon_state = "latex" item_state = "lgloves" siemens_coefficient = 0.30 - permeability_coefficient = 0.01 + permeability_coefficient = 0.35 /obj/item/clothing/gloves/botanic_leather desc = "These leather gloves protect against thorns, barbs, prickles, spikes and other harmful objects of floral origin." diff --git a/code/modules/clothing/head/head.dm b/code/modules/clothing/head/head.dm index 5135dad6b3..f16b6ff42c 100644 --- a/code/modules/clothing/head/head.dm +++ b/code/modules/clothing/head/head.dm @@ -75,6 +75,12 @@ /obj/item/clothing/head/beret/cm/red icon_state = "beretred" +/obj/item/clothing/head/beret/cm/white + icon_state = "s_beret" + +/obj/item/clothing/head/beret/cm/black + icon_state = "beret_black" + /obj/item/clothing/head/beret/cm/squadberet name = "USCM Squad Beret" desc = "For those who want to show pride and have nothing to lose (in their head, at least)." @@ -236,6 +242,7 @@ /obj/item/clothing/glasses/mgoggles/prescription = HAT_GARB_RELAY_ICON_STATE, /obj/item/clothing/glasses/mgoggles/black = HAT_GARB_RELAY_ICON_STATE, /obj/item/clothing/glasses/mgoggles/orange = HAT_GARB_RELAY_ICON_STATE, + /obj/item/clothing/glasses/mgoggles/v2 = HAT_GARB_RELAY_ICON_STATE, /obj/item/prop/helmetgarb/helmet_nvg = HAT_GARB_RELAY_ICON_STATE, /obj/item/prop/helmetgarb/helmet_nvg/cosmetic = HAT_GARB_RELAY_ICON_STATE, /obj/item/prop/helmetgarb/helmet_nvg/marsoc = HAT_GARB_RELAY_ICON_STATE, diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index 585a651582..da0f580888 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -246,6 +246,7 @@ GLOBAL_LIST_INIT(allowed_helmet_items, list( // EYEWEAR /obj/item/clothing/glasses/mgoggles = HELMET_GARB_RELAY_ICON_STATE, + /obj/item/clothing/glasses/mgoggles/v2 = HELMET_GARB_RELAY_ICON_STATE, /obj/item/clothing/glasses/mgoggles/prescription = HELMET_GARB_RELAY_ICON_STATE, /obj/item/clothing/glasses/mgoggles/black = HELMET_GARB_RELAY_ICON_STATE, /obj/item/clothing/glasses/mgoggles/orange = HELMET_GARB_RELAY_ICON_STATE, diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index d4b1d6f3dd..b13fab0ae5 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -11,7 +11,7 @@ w_class = SIZE_SMALL item_state = "gas_alt" gas_transfer_coefficient = 0.01 - permeability_coefficient = 0.01 + permeability_coefficient = 0.9 armor_melee = CLOTHING_ARMOR_NONE armor_bullet = CLOTHING_ARMOR_NONE armor_laser = CLOTHING_ARMOR_NONE diff --git a/code/modules/clothing/masks/miscellaneous.dm b/code/modules/clothing/masks/miscellaneous.dm index 0d4572c729..c39e6a6208 100644 --- a/code/modules/clothing/masks/miscellaneous.dm +++ b/code/modules/clothing/masks/miscellaneous.dm @@ -17,7 +17,7 @@ flags_inventory = COVERMOUTH flags_armor_protection = 0 gas_transfer_coefficient = 0.90 - permeability_coefficient = 0.01 + permeability_coefficient = 0.3 armor_melee = CLOTHING_ARMOR_NONE armor_bullet = CLOTHING_ARMOR_NONE armor_laser = CLOTHING_ARMOR_NONE diff --git a/code/modules/clothing/suits/bio.dm b/code/modules/clothing/suits/bio.dm index 963e4efa3a..59e0918550 100644 --- a/code/modules/clothing/suits/bio.dm +++ b/code/modules/clothing/suits/bio.dm @@ -3,7 +3,7 @@ name = "bio hood" icon_state = "bio" desc = "A hood that protects the head and face from biological contaminants." - permeability_coefficient = 0.01 + permeability_coefficient = 0.2 armor_melee = CLOTHING_ARMOR_NONE armor_bullet = CLOTHING_ARMOR_NONE armor_laser = CLOTHING_ARMOR_NONE @@ -30,7 +30,7 @@ item_state = "bio_suit" w_class = SIZE_LARGE//bulky item gas_transfer_coefficient = 0.01 - permeability_coefficient = 0.01 + permeability_coefficient = 0.2 flags_armor_protection = BODY_FLAG_CHEST|BODY_FLAG_GROIN|BODY_FLAG_LEGS|BODY_FLAG_FEET|BODY_FLAG_ARMS|BODY_FLAG_HANDS slowdown = 1 armor_melee = CLOTHING_ARMOR_NONE diff --git a/code/modules/clothing/under/marine_uniform.dm b/code/modules/clothing/under/marine_uniform.dm index 585f415f2b..d9d8d7da45 100644 --- a/code/modules/clothing/under/marine_uniform.dm +++ b/code/modules/clothing/under/marine_uniform.dm @@ -62,6 +62,14 @@ worn_state = "marine_engineer" specialty = "USCM Combat Technician" +/obj/item/clothing/under/marine/engineer/standard + flags_atom = NO_SNOW_TYPE + +/obj/item/clothing/under/marine/engineer/darker + icon_state = "d_marine_engineer" + worn_state = "d_marine_engineer" + flags_atom = NO_SNOW_TYPE + /obj/item/clothing/under/marine/rto name = "\improper USCM radio telephone operator uniform" desc = "Standard-issue RTO fatigues. They have shards of light Kevlar to help protect against stabbing weapons and bullets." @@ -105,6 +113,14 @@ flags_jumpsuit = UNIFORM_SLEEVE_ROLLABLE|UNIFORM_SLEEVE_CUTTABLE|UNIFORM_JACKET_REMOVABLE specialty = "military police" +/obj/item/clothing/under/marine/mp/standard + flags_atom = NO_SNOW_TYPE + +/obj/item/clothing/under/marine/mp/darker + icon_state = "d_MP_jumpsuit" + worn_state = "d_MP_jumpsuit" + flags_atom = NO_SNOW_TYPE + /obj/item/clothing/under/marine/warden name = "military warden jumpsuit" desc = "Standard-issue Military Warden uniform. It has shards of light Kevlar to help protect against stabbing weapons and bullets." diff --git a/code/modules/clothing/under/ties.dm b/code/modules/clothing/under/ties.dm index cd413f4afd..24eec4f1e3 100644 --- a/code/modules/clothing/under/ties.dm +++ b/code/modules/clothing/under/ties.dm @@ -381,6 +381,22 @@ inv_overlay = image("icon" = 'icons/obj/items/clothing/ties_overlay.dmi', "icon_state" = "[icon_state]") update_icon() +/obj/item/clothing/accessory/poncho/green + icon_state = "poncho" + +/obj/item/clothing/accessory/poncho/brown + icon_state = "d_poncho" + +/obj/item/clothing/accessory/poncho/black + icon_state = "u_poncho" + +/obj/item/clothing/accessory/poncho/blue + icon_state = "c_poncho" + +/obj/item/clothing/accessory/poncho/purple + icon_state = "s_poncho" + + //Ties that can store stuff /obj/item/storage/internal/accessory diff --git a/code/modules/cm_marines/dropship_ammo.dm b/code/modules/cm_marines/dropship_ammo.dm index 264400caa0..ef59e643e4 100644 --- a/code/modules/cm_marines/dropship_ammo.dm +++ b/code/modules/cm_marines/dropship_ammo.dm @@ -18,10 +18,10 @@ var/ammo_count /// Maximal ammunition count var/max_ammo_count - /// What to call the ammo in the ammo transfering message + /// What to call the ammo in the ammo transferring message var/ammo_name = "round" var/ammo_id - /// Whether the ammo inside this magazine can be transfered to another magazine. + /// Whether the ammo inside this magazine can be transferred to another magazine. var/transferable_ammo = FALSE /// How many tiles the ammo can deviate from the laser target var/accuracy_range = 3 @@ -136,7 +136,7 @@ /obj/structure/ship_ammo/heavygun name = "\improper PGU-100 Multi-Purpose 30mm ammo crate" icon_state = "30mm_crate" - desc = "A crate full of PGU-100 30mm Multi-Purpose ammo designed to penetrate light (non reinforced) structures, as well as shred infantry, IAVs, LAVs, IMVs, and MRAPs. Works in large areas for use on Class 4 and superior alien insectoid infestations, as well as fitting within the armaments allowed for use against a tier 4 insurgency as well as higher tiers. However, it lacks armor penetrating capabilities, for which Anti-Tank 30mm ammo is needed." + desc = "A crate full of PGU-100 30mm Multi-Purpose ammo designed to penetrate light (non reinforced) structures, as well as shred infantry, IAVs, LAVs, IMVs, and MRAPs. Works in large areas for use on Class 4 and superior alien insectoid infestations, as well as fitting within the armaments allowed for use against a tier 4 insurgency as well as higher tiers. However, it lacks armor penetrating capabilities, for which Anti-Tank 30mm ammo is needed. Can be loaded into the GAU-21 30mm cannon." equipment_type = /obj/structure/dropship_equipment/weapon/heavygun ammo_count = 400 max_ammo_count = 400 @@ -146,7 +146,7 @@ fire_mission_delay = 2 var/bullet_spread_range = 4 //how far from the real impact turf can bullets land var/shrapnel_type = /datum/ammo/bullet/shrapnel/gau //For siming 30mm bullet impacts. - var/directhit_damage = 105 //how much damage is to be inficted to a mob, this is here so that we can hit resting mobs. + var/directhit_damage = 105 //how much damage is to be inflicted to a mob, this is here so that we can hit resting mobs. var/penetration = 10 //AP value pretty much /obj/structure/ship_ammo/heavygun/get_examine_text(mob/user) @@ -193,9 +193,9 @@ /obj/structure/ship_ammo/heavygun/antitank - name = "PGU-105 30mm Anti-tank ammo crate" + name = "\improper PGU-105 30mm Anti-tank ammo crate" icon_state = "30mm_crate_hv" - desc = "A crate full of PGU-105 Specialized 30mm APFSDS Titanium-Tungsten alloy penetrators, made for countering peer and near peer APCs, IFVs, and MBTs in CAS support. It's designed to penetrate up to the equivalent 1350mm of RHA when launched from a GAU-21. It is much less effective against soft targets however, in which case 30mm ball ammunition is recommended. WARNING: discarding petals from the ammunition can be harmful if the dropship does not pull out at the needed speeds. Please consult page 3574 of the manual, available for order at any ARMAT store." + desc = "A crate full of PGU-105 Specialized 30mm APFSDS Titanium-Tungsten alloy penetrators, made for countering peer and near peer APCs, IFVs, and MBTs in CAS support. It is designed to penetrate up to the equivalent 1350mm of RHA when launched from a GAU-21. It is much less effective against soft targets however, in which case 30mm ball ammunition is recommended. WARNING: discarding petals from the ammunition can be harmful if the dropship does not pull out at the needed speeds. Please consult page 3574 of the manual, available for order at any ARMAT store. Can be loaded into the GAU-21 30mm cannon." travelling_time = 60 ammo_count = 400 max_ammo_count = 400 @@ -204,15 +204,15 @@ point_cost = 325 fire_mission_delay = 2 shrapnel_type = /datum/ammo/bullet/shrapnel/gau/at - directhit_damage = 80 //how much damage is to be inficted to a mob, this is here so that we can hit resting mobs. + directhit_damage = 80 //how much damage is to be inflicted to a mob, this is here so that we can hit resting mobs. penetration = 40 //AP value pretty much //laser battery /obj/structure/ship_ammo/laser_battery - name = "high-capacity laser battery" + name = "\improper BTU-17/LW Hi-Cap Laser Battery" icon_state = "laser_battery" - desc = "A high-capacity laser battery used to power laser beam weapons." + desc = "A high-capacity laser battery used to power laser beam weapons. Can be loaded into the LWU-6B Laser Cannon." travelling_time = 10 ammo_count = 100 max_ammo_count = 100 @@ -283,8 +283,8 @@ //this one is air-to-air only /obj/structure/ship_ammo/rocket/widowmaker - name = "\improper AIM-224/B 'Widowmaker'" - desc = "The AIM-224/B missile is a retrofit of the latest in air-to-air missile technology. Earning the nickname of 'Widowmaker' from various dropship pilots after improvements to its guidance warhead prevents it from being jammed leading to its high kill rate. Not well suited for ground bombardment but its high velocity makes it reach its target quickly. This one has been modified to be a free-fall bomb as a result of dropship ammo shortages." + name = "\improper AIM-224B 'Widowmaker'" + desc = "The AIM-224B missile is a retrofit of the latest in air-to-air missile technology. Earning the nickname of 'Widowmaker' from various dropship pilots after improvements to its guidance warhead prevents it from being jammed leading to its high kill rate. Not well suited for ground bombardment but its high velocity makes it reach its target quickly. This one has been modified to be a free-fall bomb as a result of dropship ammo shortages. Can be loaded into the LAU-444 Guided Missile Launcher." icon_state = "single" travelling_time = 30 //not powerful, but reaches target fast ammo_id = "" @@ -298,7 +298,7 @@ /obj/structure/ship_ammo/rocket/banshee name = "\improper AGM-227 'Banshee'" - desc = "The AGM-227 missile is a mainstay of the overhauled dropship fleet against any mobile or armored ground targets. It's earned the nickname of 'Banshee' from the sudden wail that it emits right before hitting a target. Useful to clear out large areas." + desc = "The AGM-227 missile is a mainstay of the overhauled dropship fleet against any mobile or armored ground targets. It's earned the nickname of 'Banshee' from the sudden wail that it emits right before hitting a target. Useful to clear out large areas. Can be loaded into the LAU-444 Guided Missile Launcher." icon_state = "banshee" ammo_id = "b" point_cost = 300 @@ -312,7 +312,7 @@ /obj/structure/ship_ammo/rocket/keeper name = "\improper GBU-67 'Keeper II'" - desc = "The GBU-67 'Keeper II' is the latest in a generation of laser guided weaponry that spans all the way back to the 20th century. Earning its nickname from a shortening of 'Peacekeeper' which comes from the program that developed its guidance system and the various uses of it during peacekeeping conflicts. Its payload is designed to devastate armored targets." + desc = "The GBU-67 'Keeper II' is the latest in a generation of laser guided weaponry that spans all the way back to the 20th century. Earning its nickname from a shortening of 'Peacekeeper' which comes from the program that developed its guidance system and the various uses of it during peacekeeping conflicts. Its payload is designed to devastate armored targets. Can be loaded into the LAU-444 Guided Missile Launcher." icon_state = "paveway" travelling_time = 20 //A fast payload due to its very tight blast zone ammo_id = "k" @@ -325,8 +325,8 @@ QDEL_IN(src, 0.5 SECONDS) /obj/structure/ship_ammo/rocket/harpoon - name = "\improper AGM-84 'Harpoon'" - desc = "The AGM-84 Harpoon is an Anti-Ship Missile, designed and used to effectively take down enemy ships with a huge blast wave with low explosive power. This one is modified to use ground signals." + name = "\improper AGM-184 'Harpoon II'" + desc = "The AGM-184 Harpoon II is an Anti-Ship Missile, designed and used to effectively take down enemy ships with a huge blast wave with low explosive power. This one is modified to use ground signals. Can be loaded into the LAU-444 Guided Missile Launcher." icon_state = "harpoon" ammo_id = "s" travelling_time = 50 @@ -340,8 +340,8 @@ QDEL_IN(src, 0.5 SECONDS) /obj/structure/ship_ammo/rocket/napalm - name = "\improper XN-99 'Napalm'" - desc = "The XN-99 'Napalm' is an incendiary missile used to turn specific targeted areas into giant balls of fire for a long time." + name = "\improper AGM-99 'Napalm'" + desc = "The AGM-99 'Napalm' is an incendiary missile used to turn specific targeted areas into giant balls of fire for a long time. Can be loaded into the LAU-444 Guided Missile Launcher." icon_state = "napalm" ammo_id = "n" point_cost = 500 @@ -355,7 +355,7 @@ /obj/structure/ship_ammo/rocket/thermobaric name = "\improper BLU-200 'Dragons Breath'" - desc = "The BLU-200 Dragons Breath a thermobaric fuel-air bomb. The aerosolized fuel mixture creates a vacuum when ignited causing serious damage to those in its way." + desc = "The BLU-200 Dragons Breath a thermobaric fuel-air bomb. The aerosolized fuel mixture creates a vacuum when ignited causing serious damage to those in its way. Can be loaded into the LAU-444 Guided Missile Launcher." icon_state = "fatty" ammo_id = "f" travelling_time = 50 @@ -373,8 +373,8 @@ //minirockets /obj/structure/ship_ammo/minirocket - name = "mini rocket stack" - desc = "A pack of laser guided mini rockets." + name = "\improper AGR-59 'Mini-Mike'" + desc = "The AGR-59 'Mini-Mike' minirocket is a cheap and efficient means of putting hate down range. Though rockets lack a guidance package, it makes up for it in ammunition count. Can be loaded into the LAU-229 Rocket Pod." icon_state = "minirocket" icon = 'icons/obj/structures/props/almayer_props.dmi' equipment_type = /obj/structure/dropship_equipment/weapon/minirocket_pod @@ -410,8 +410,8 @@ /obj/structure/ship_ammo/minirocket/incendiary - name = "incendiary mini rocket stack" - desc = "A pack of laser guided incendiary mini rockets." + name = "\improper AGR-59-I 'Mini-Mike'" + desc = "The AGR-59-I 'Mini-Mike' incendiary minirocket is a cheap and efficient means of putting hate down range AND setting them on fire! Though rockets lack a guidance package, it makes up for it in ammunition count. Can be loaded into the LAU-229 Rocket Pod." icon_state = "minirocket_inc" point_cost = 500 fire_mission_delay = 3 //high cooldown @@ -422,8 +422,8 @@ fire_spread(impact, create_cause_data(initial(name), source_mob), 3, 25, 20, "#EE6515") /obj/structure/ship_ammo/sentry - name = "multi-purpose area denial sentry" - desc = "An omni-directional sentry, capable of defending an area from lightly armored hostile incursion." + name = "\improper A/C-49-P Air Deployable Sentry" + desc = "An omni-directional sentry, capable of defending an area from lightly armored hostile incursion. Can be loaded into the LAG-14 Internal Sentry Launcher." icon_state = "launchable_sentry" equipment_type = /obj/structure/dropship_equipment/weapon/launch_bay ammo_count = 1 diff --git a/code/modules/cm_marines/dropship_equipment.dm b/code/modules/cm_marines/dropship_equipment.dm index b9061de625..f12966b471 100644 --- a/code/modules/cm_marines/dropship_equipment.dm +++ b/code/modules/cm_marines/dropship_equipment.dm @@ -1,5 +1,5 @@ -/// Dropship equipments, mainly weaponry but also utility implements +/// Dropship equipment, mainly weaponry but also utility implements /obj/structure/dropship_equipment density = TRUE anchored = TRUE @@ -153,7 +153,7 @@ /// Turret holder for dropship automated sentries /obj/structure/dropship_equipment/sentry_holder equip_categories = list(DROPSHIP_WEAPON, DROPSHIP_CREW_WEAPON) - name = "sentry deployment system" + name = "\improper A/A-32-P Sentry Defense System" desc = "A box that deploys a sentry turret. Fits on both the external weapon and crew compartment attach points of dropships. You need a powerloader to lift it." density = FALSE health = null @@ -284,7 +284,7 @@ /// Holder for the dropship mannable machinegun system /obj/structure/dropship_equipment/mg_holder - name = "machine gun deployment system" + name = "\improper MTU-4B Door Gunner Hardpoint System" desc = "A box that deploys a crew-served scoped M56D heavy machine gun. Fits on both the external weapon and crew compartment attach points of dropships. You need a powerloader to lift it." density = FALSE equip_categories = list(DROPSHIP_WEAPON, DROPSHIP_CREW_WEAPON) @@ -419,13 +419,13 @@ /obj/structure/dropship_equipment/fuel/fuel_enhancer - name = "fuel enhancer" + name = "\improper fuel enhancer" desc = "A fuel enhancement system for dropships. It improves the thrust produced by the fuel combustion for faster travels. Fits inside the engine attach points. You need a powerloader to lift it." icon_state = "fuel_enhancer" point_cost = 800 /obj/structure/dropship_equipment/fuel/cooling_system - name = "cooling system" + name = "\improper cooling system" desc = "A cooling system for dropships. It produces additional cooling reducing delays between launch. Fits inside the engine attach points. You need a powerloader to lift it." icon_state = "cooling_system" point_cost = 800 @@ -437,7 +437,7 @@ equip_categories = list(DROPSHIP_ELECTRONICS) /obj/structure/dropship_equipment/electronics/chaff_launcher - name = "chaff launcher" + name = "\improper AN/ALE-203 Chaff Launcher" icon_state = "chaff_launcher" point_cost = 0 @@ -445,7 +445,7 @@ #define LIGHTING_MAX_LUMINOSITY_SHIPLIGHTS 12 /obj/structure/dropship_equipment/electronics/spotlights - name = "spotlight" + name = "\improper AN/LEN-15 Spotlight" icon_state = "spotlights" desc = "A set of high-powered spotlights to illuminate large areas. Fits on electronics attach points of dropships. Moving this will require a powerloader." is_interactable = TRUE @@ -490,12 +490,12 @@ /obj/structure/dropship_equipment/electronics/flare_launcher - name = "flare launcher" + name = "\improper AN/ALE-557 Flare Launcher" icon_state = "flare_launcher" point_cost = 0 /obj/structure/dropship_equipment/electronics/targeting_system - name = "targeting system" + name = "\improper AN/AAQ-178 Weapon Targeting System" icon_state = "targeting_system" desc = "A targeting system for dropships. It improves firing accuracy on laser targets. Fits on electronics attach points. You need a powerloader to lift this." point_cost = 800 @@ -507,7 +507,7 @@ icon_state = initial(icon_state) /obj/structure/dropship_equipment/electronics/landing_zone_detector - name = "\improper LZ detector" + name = "\improper AN/AVD-60 LZ detector" desc = "An electronic device linked to the dropship's camera system that lets you observe your landing zone mid-flight." icon_state = "lz_detector" point_cost = 50 @@ -559,7 +559,7 @@ /obj/structure/dropship_equipment/adv_comp/docking - name = "docking computer" + name = "\improper AN/AKW-222 Docking Computer" icon_state = "docking_comp" point_cost = 0 @@ -686,7 +686,7 @@ /obj/structure/dropship_equipment/weapon/heavygun name = "\improper GAU-21 30mm cannon" - desc = "A dismounted GAU-21 'Rattler' 30mm rotary cannon. It seems to be missing its feed links and has exposed connection wires. Capable of firing 5200 rounds a minute, feared by many for its power. Earned the nickname 'Rattler' from the vibrations it would cause on dropships in its initial production run." + desc = "A dismounted GAU-21 'Rattler' 30mm rotary cannon. It seems to be missing its feed links and has exposed connection wires. Capable of firing 5200 rounds a minute, feared by many for its power. Earned the nickname 'Rattler' from the vibrations it would cause on dropships in its initial production run. Accepts PGU-100/PGU-105 ammo crates" icon_state = "30mm_cannon" firing_sound = 'sound/effects/gau_incockpit.ogg' point_cost = 400 @@ -702,9 +702,9 @@ /obj/structure/dropship_equipment/weapon/rocket_pod - name = "missile pod" - icon_state = "rocket_pod" - desc = "A missile pod weapon system capable of launching a single laser-guided missile. Moving this will require some sort of lifter." + name = "\improper LAU-444 Guided Missile Launcher" + icon_state = "rocket_pod" //I want to force whoever used rocket and missile interchangeably to come back and look at this god damn mess. + desc = "A missile pod weapon system capable of launching a single laser-guided missile. Moving this will require some sort of lifter. Accepts AGM, AIM, BLU, and GBU missile systems." firing_sound = 'sound/effects/rocketpod_fire.ogg' firing_delay = 5 point_cost = 600 @@ -722,9 +722,9 @@ /obj/structure/dropship_equipment/weapon/minirocket_pod - name = "minirocket pod" + name = "\improper LAU-229 Rocket Pod" icon_state = "minirocket_pod" - desc = "A mini rocket pod capable of launching six laser-guided mini rockets. Moving this will require some sort of lifter." + desc = "A rocket pod capable of launching six laser-guided mini rockets. Moving this will require some sort of lifter. Accepts the AGR-59 series of minirockets." icon = 'icons/obj/structures/props/almayer_props64.dmi' firing_sound = 'sound/effects/rocketpod_fire.ogg' firing_delay = 10 //1 seconds @@ -743,9 +743,9 @@ ammo_equipped = null /obj/structure/dropship_equipment/weapon/laser_beam_gun - name = "laser beam gun" + name = "\improper LWU-6B Laser Cannon" icon_state = "laser_beam" - desc = "State of the art technology recently acquired by the USCM, it fires a battery-fed pulsed laser beam at near lightspeed setting on fire everything it touches. Moving this will require some sort of lifter." + desc = "State of the art technology recently acquired by the USCM, it fires a battery-fed pulsed laser beam at near lightspeed setting on fire everything it touches. Moving this will require some sort of lifter. Accepts the BTU-17/LW Hi-Cap Laser Batteries." icon = 'icons/obj/structures/props/almayer_props64.dmi' firing_sound = 'sound/effects/phasein.ogg' firing_delay = 50 //5 seconds @@ -761,9 +761,9 @@ else icon_state = "laser_beam" /obj/structure/dropship_equipment/weapon/launch_bay - name = "launch bay" + name = "\improper LAG-14 Internal Sentry Launcher" icon_state = "launch_bay" - desc = "A launch bay to drop special ordnance. Fits inside the dropship's crew weapon emplacement. Moving this will require some sort of lifter." + desc = "A launch bay to drop special ordnance. Fits inside the dropship's crew weapon emplacement. Moving this will require some sort of lifter. Accepts the A/C-49-P Air Deployable Sentry as ammunition." icon = 'icons/obj/structures/props/almayer_props.dmi' firing_sound = 'sound/weapons/gun_flare_explode.ogg' firing_delay = 10 //1 seconds @@ -782,7 +782,7 @@ /obj/structure/dropship_equipment/medevac_system - name = "medevac system" + name = "\improper RMU-4M Medevac System" desc = "A winch system to lift injured marines on medical stretchers onto the dropship. Acquire lift target through the dropship equipment console." equip_categories = list(DROPSHIP_CREW_WEAPON) icon_state = "medevac_system" @@ -1014,7 +1014,7 @@ // Fulton extraction system /obj/structure/dropship_equipment/fulton_system - name = "fulton recovery system" + name = "\improper RMU-19 Fulton Recovery System" desc = "A winch system to collect any fulton recovery balloons in high altitude. Make sure you turn it on!" equip_categories = list(DROPSHIP_CREW_WEAPON) icon_state = "fulton_system" @@ -1131,7 +1131,7 @@ // Rappel deployment system /obj/structure/dropship_equipment/rappel_system - name = "rappel deployment system" + name = "\improper HPU-1 Rappel Deployment System" equip_categories = list(DROPSHIP_CREW_WEAPON) icon_state = "rappel_module_packaged" point_cost = 50 diff --git a/code/modules/cm_phone/phone.dm b/code/modules/cm_phone/phone.dm index a99bb5603d..fd9c8aa02d 100644 --- a/code/modules/cm_phone/phone.dm +++ b/code/modules/cm_phone/phone.dm @@ -24,7 +24,8 @@ GLOBAL_LIST_EMPTY_TYPED(transmitters, /obj/structure/transmitter) var/range = 7 var/enabled = TRUE - var/callable = TRUE + /// Whether or not the phone is receiving calls or not. Varies between on/off or forcibly on/off. + var/do_not_disturb = PHONE_DND_OFF var/base_icon_state @@ -35,7 +36,7 @@ GLOBAL_LIST_EMPTY_TYPED(transmitters, /obj/structure/transmitter) var/list/networks_transmit = list(FACTION_MARINE) /obj/structure/transmitter/hidden - callable = FALSE + do_not_disturb = PHONE_DND_FORCED /obj/structure/transmitter/Initialize(mapload, ...) . = ..() @@ -80,7 +81,11 @@ GLOBAL_LIST_EMPTY_TYPED(transmitters, /obj/structure/transmitter) for(var/possible_phone in GLOB.transmitters) var/obj/structure/transmitter/target_phone = possible_phone - if(TRANSMITTER_UNAVAILABLE(target_phone) || !target_phone.callable) // Phone not available + var/current_dnd = FALSE + switch(target_phone.do_not_disturb) + if(PHONE_DND_ON, PHONE_DND_FORCED) + current_dnd = TRUE + if(TRANSMITTER_UNAVAILABLE(target_phone) || current_dnd) // Phone not available continue var/net_link = FALSE for(var/network in networks_transmit) @@ -124,9 +129,18 @@ GLOBAL_LIST_EMPTY_TYPED(transmitters, /obj/structure/transmitter) call_phone(user, params["phone_id"]) . = TRUE SStgui.close_uis(src) + if("toggle_dnd") + toggle_dnd(user) update_icon() +/obj/structure/transmitter/ui_data(mob/user) + var/list/data = list() + + data["availability"] = do_not_disturb + + return data + /obj/structure/transmitter/ui_static_data(mob/user) . = list() @@ -172,6 +186,18 @@ GLOBAL_LIST_EMPTY_TYPED(transmitters, /obj/structure/transmitter) user.put_in_hands(attached_to) +/obj/structure/transmitter/proc/toggle_dnd(mob/living/carbon/human/user) + switch(do_not_disturb) + if(PHONE_DND_ON) + do_not_disturb = PHONE_DND_OFF + to_chat(user, SPAN_NOTICE("Do Not Disturb has been disabled. You can now receive calls.")) + if(PHONE_DND_OFF) + do_not_disturb = PHONE_DND_ON + to_chat(user, SPAN_WARNING("Do Not Disturb has been enabled. No calls will be received.")) + else + return FALSE + return TRUE + /obj/structure/transmitter/attack_hand(mob/user) . = ..() @@ -543,12 +569,18 @@ GLOBAL_LIST_EMPTY_TYPED(transmitters, /obj/structure/transmitter) UnregisterSignal(attached_to, COMSIG_MOVABLE_MOVED) reset_tether() +/obj/structure/transmitter/no_dnd + do_not_disturb = PHONE_DND_FORBIDDEN + //rotary desk phones (need a touch tone handset at some point) /obj/structure/transmitter/rotary name = "rotary telephone" icon_state = "rotary_phone" desc = "The finger plate is a little stiff." +/obj/structure/transmitter/rotary/no_dnd + do_not_disturb = PHONE_DND_FORBIDDEN + /obj/structure/transmitter/touchtone name = "touch-tone telephone" icon_state = "rotary_phone"//placeholder diff --git a/code/modules/hydroponics/hydro_tray.dm b/code/modules/hydroponics/hydro_tray.dm index 24097e1f8e..4d175c5a6f 100644 --- a/code/modules/hydroponics/hydro_tray.dm +++ b/code/modules/hydroponics/hydro_tray.dm @@ -1,4 +1,5 @@ #define HYDRO_SPEED_MULTIPLIER 1 +#define HYDRO_WATER_CONSUMPTION_MULTIPLIER 1.5 /obj/structure/machinery/portable_atmospherics/hydroponics name = "hydroponics tray" @@ -206,7 +207,7 @@ if(seed.nutrient_consumption > 0 && nutrilevel > 0 && prob(25)) nutrilevel -= max(0,seed.nutrient_consumption * HYDRO_SPEED_MULTIPLIER) if(seed.water_consumption > 0 && waterlevel > 0 && prob(25)) - waterlevel -= max(0,seed.water_consumption * HYDRO_SPEED_MULTIPLIER) + waterlevel -= round(max(0,(seed.water_consumption * HYDRO_WATER_CONSUMPTION_MULTIPLIER) * HYDRO_SPEED_MULTIPLIER)) // Make sure the plant is not starving or thirsty. Adequate // water and nutrients will cause a plant to become healthier. @@ -219,17 +220,9 @@ if(nutrilevel < 1) plant_health = 0 - // Check that pressure, heat and light are all within bounds. + // Check that pressure, heat are all within bounds. // First, handle an open system or an unconnected closed system. - var/turf/T = loc - - // Handle light requirements. - if(T) - var/light_available = T.get_lumcount(0, 10) - if(abs(light_available - seed.ideal_light) > seed.light_tolerance) - plant_health -= healthmod - // Toxin levels beyond the plant's tolerance cause damage, but // toxins are sucked up each tick and slowly reduce over time. if(toxins > 0) @@ -606,6 +599,25 @@ else to_chat(user, SPAN_DANGER("This plot is completely devoid of weeds. It doesn't need uprooting.")) + else if (istype(O, /obj/item/tool/shovel/spade)) + if(isnull(seed)) + return + user.visible_message(SPAN_DANGER("[user] starts to uproot the plant."), SPAN_DANGER("You begin removing plant from [src]...")) + if(!do_after(user, 1 SECONDS, INTERRUPT_NO_NEEDHAND|BEHAVIOR_IMMOBILE, BUSY_ICON_FRIENDLY, src, INTERRUPT_MOVED, BUSY_ICON_FRIENDLY)) + return + to_chat(user, SPAN_NOTICE("You remove the plant from [src].")) + seed = null + dead = 0 + sampled = 0 + age = 0 + harvest = 0 + toxins = 0 + yield_mod = 0 + mutation_mod = 0 + + check_level_sanity() + update_icon() + else if (istype(O, /obj/item/storage/bag/plants)) attack_hand(user) @@ -663,20 +675,9 @@ return info -/obj/structure/machinery/portable_atmospherics/hydroponics/soil/show_hydro_info(mob/user as mob) - var/info = ..() - var/turf/T = loc - var/area/A = T.loc - var/light_available - if(A) - light_available = max(0,min(10,T.dynamic_lumcount)-5) - - info += "The tray's sensor suite is reporting a light level of [light_available] lumens.\n" - return info - /obj/structure/machinery/portable_atmospherics/hydroponics/attack_hand(mob/user as mob) - if(istype(usr,/mob/living/silicon)) + if(istype(user, /mob/living/silicon)) return if(harvest) @@ -684,19 +685,7 @@ else if(dead) remove_dead(user) else - to_chat(usr, show_hydro_info(user)) - -/obj/structure/machinery/portable_atmospherics/hydroponics/verb/close_lid() - set name = "Toggle Tray Lid" - set category = "Object" - set src in view(1) - - if(!usr || usr.stat || usr.is_mob_restrained()) - return - - closed_system = !closed_system - to_chat(usr, "You [closed_system ? "close" : "open"] the tray's lid.") - update_icon() + to_chat(user, show_hydro_info(user)) /obj/structure/machinery/portable_atmospherics/hydroponics/verb/flush() //used to reset the tray set name = "Flush Tray" @@ -716,7 +705,7 @@ toxins = 0 yield_mod = 0 mutation_mod = 0 - waterlevel = 100 + waterlevel = 0 nutrilevel = 0 pestlevel = 0 weedlevel = 0 @@ -743,8 +732,5 @@ else ..() -/obj/structure/machinery/portable_atmospherics/hydroponics/soil/Initialize() - . = ..() - verbs -= /obj/structure/machinery/portable_atmospherics/hydroponics/verb/close_lid - #undef HYDRO_SPEED_MULTIPLIER +#undef HYDRO_WATER_CONSUMPTION_MULTIPLIER diff --git a/code/modules/projectiles/guns/shotguns.dm b/code/modules/projectiles/guns/shotguns.dm index 9a4b155173..edecce85cc 100644 --- a/code/modules/projectiles/guns/shotguns.dm +++ b/code/modules/projectiles/guns/shotguns.dm @@ -266,14 +266,18 @@ can cause issues with ammo types getting mixed up during the burst. /obj/item/weapon/gun/shotgun/combat/handle_starting_attachment() ..() - var/obj/item/attachable/attached_gun/grenade/G = new(src) - G.flags_attach_features &= ~ATTACH_REMOVABLE - G.hidden = TRUE - G.Attach(src) - update_attachable(G.slot) + var/obj/item/attachable/attached_gun/grenade/ugl = new(src) + var/obj/item/attachable/stock/tactical/stock = new(src) + ugl.flags_attach_features &= ~ATTACH_REMOVABLE + ugl.hidden = TRUE + ugl.Attach(src) + update_attachable(ugl.slot) + stock.hidden = FALSE + stock.Attach(src) + update_attachable(stock.slot) /obj/item/weapon/gun/shotgun/combat/set_gun_attachment_offsets() - attachable_offset = list("muzzle_x" = 33, "muzzle_y" = 19,"rail_x" = 10, "rail_y" = 21, "under_x" = 14, "under_y" = 16, "stock_x" = 14, "stock_y" = 16) + attachable_offset = list("muzzle_x" = 33, "muzzle_y" = 19,"rail_x" = 10, "rail_y" = 21, "under_x" = 14, "under_y" = 16, "stock_x" = 11, "stock_y" = 13.) diff --git a/html/changelogs/AutoChangeLog-pr-4505.yml b/html/changelogs/AutoChangeLog-pr-4505.yml deleted file mode 100644 index 3c8e780fd8..0000000000 --- a/html/changelogs/AutoChangeLog-pr-4505.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Drathek" -delete-after: True -changes: - - bugfix: "Fix getFlatIcon not resizing its template nor respect appearance_flags of RESET_COLOR and RESET_ALPHA" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4514.yml b/html/changelogs/AutoChangeLog-pr-4514.yml deleted file mode 100644 index 63d0be8b3d..0000000000 --- a/html/changelogs/AutoChangeLog-pr-4514.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Drathek" -delete-after: True -changes: - - rscadd: "Restore the stat panel options menu to change the stat panel font size" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4535.yml b/html/changelogs/AutoChangeLog-pr-4535.yml deleted file mode 100644 index 8d5cc11d59..0000000000 --- a/html/changelogs/AutoChangeLog-pr-4535.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Morrow" -delete-after: True -changes: - - bugfix: "Fixed floodlight stacking to make mostly invincible walls" - - refactor: "Refactored 90% of the floodlight code" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4545.yml b/html/changelogs/AutoChangeLog-pr-4545.yml deleted file mode 100644 index 93c8b1697d..0000000000 --- a/html/changelogs/AutoChangeLog-pr-4545.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Steelpoint" -delete-after: True -changes: - - ui: "Added personnel job titles to the handheld crew monitor, to make it easier to tell find out exactly what role's you are looking for. Also slightly expands the default monitor screen size to accommodate the entire personnel text on screen." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4549.yml b/html/changelogs/AutoChangeLog-pr-4549.yml deleted file mode 100644 index 3402407291..0000000000 --- a/html/changelogs/AutoChangeLog-pr-4549.yml +++ /dev/null @@ -1,12 +0,0 @@ -author: "Morrow" -delete-after: True -changes: - - rscadd: "Added NVG optics" - - rscadd: "Added a hotkey to cycle optics" - - rscadd: "Added special marine raider optic" - - rscadd: "Added examine text for optics" - - rscadd: "Added research publication to advanced medical optic" - - rscdel: "Removed functional tube NVGs from gameplay" - - refactor: "Moved some optics code around to make it less redundant" - - bugfix: "Fixed a bug with duplicate optic actions" - - bugfix: "Fixed a reported bug where HUDs would stay on forever with destruction of a helmet" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4571.yml b/html/changelogs/AutoChangeLog-pr-4571.yml deleted file mode 100644 index bd51c77a8f..0000000000 --- a/html/changelogs/AutoChangeLog-pr-4571.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Morrow" -delete-after: True -changes: - - balance: "Comms relays now have a five minute cooldown to be re-pylon'd after a pylon was destroyed" - - bugfix: "Pylons now account for stored larva" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4582.yml b/html/changelogs/AutoChangeLog-pr-4582.yml deleted file mode 100644 index e52313696f..0000000000 --- a/html/changelogs/AutoChangeLog-pr-4582.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Morrow" -delete-after: True -changes: - - bugfix: "Fixed req door accesses" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4598.yml b/html/changelogs/AutoChangeLog-pr-4598.yml new file mode 100644 index 0000000000..4d7973cbf2 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-4598.yml @@ -0,0 +1,4 @@ +author: "CapCamIII" +delete-after: True +changes: + - rscdel: "XO can no longer take a sword as their personal weapon in their vendor." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4601.yml b/html/changelogs/AutoChangeLog-pr-4601.yml new file mode 100644 index 0000000000..4f4c63c8d6 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-4601.yml @@ -0,0 +1,4 @@ +author: "BeagleGaming1" +delete-after: True +changes: + - code_imp: "prop guns will copy attachments" \ No newline at end of file diff --git a/html/changelogs/archive/2023-10.yml b/html/changelogs/archive/2023-10.yml index 3d9b9b3270..5e0d2a5e50 100644 --- a/html/changelogs/archive/2023-10.yml +++ b/html/changelogs/archive/2023-10.yml @@ -54,3 +54,67 @@ - bugfix: Candle boxes can now only hold candles blackdragonTOW: - sounddel: removed 300+ ancient and unused Piano and Violin notes. +2023-10-05: + Drathek: + - rscadd: Restore the stat panel options menu to change the stat panel font size + - bugfix: Fix getFlatIcon not resizing its template nor respect appearance_flags + of RESET_COLOR and RESET_ALPHA + Morrow: + - bugfix: Fixed req door accesses + - rscadd: Added NVG optics + - rscadd: Added a hotkey to cycle optics + - rscadd: Added special marine raider optic + - rscadd: Added examine text for optics + - rscadd: Added research publication to advanced medical optic + - rscdel: Removed functional tube NVGs from gameplay + - refactor: Moved some optics code around to make it less redundant + - bugfix: Fixed a bug with duplicate optic actions + - bugfix: Fixed a reported bug where HUDs would stay on forever with destruction + of a helmet + - balance: Comms relays now have a five minute cooldown to be re-pylon'd after a + pylon was destroyed + - bugfix: Pylons now account for stored larva + - bugfix: Fixed floodlight stacking to make mostly invincible walls + - refactor: Refactored 90% of the floodlight code + Steelpoint: + - ui: Added personnel job titles to the handheld crew monitor, to make it easier + to tell find out exactly what role's you are looking for. Also slightly expands + the default monitor screen size to accommodate the entire personnel text on + screen. +2023-10-06: + blackdragonTOW: + - bugfix: fixed spider dead sprite to not have white space (is transparent instead) +2023-10-08: + Kivts: + - rscadd: You can partially protect yourself from flu and other disease by wearing + a mask and other PPE. Doesnt affect Black Goo. + Steelpoint: + - rscadd: Black and white beret's have been added as loadout options for all characters + as headwear. + - rscadd: More cosmetic options are on offer for Synthetics. Includes white and + black berets, standard or darker engineering and mp uniforms and all camo options + for the poncho. + - rscadd: The Synth Councillor and Synth Utility uniforms can now roll their sleeves. + blackdragonTOW: + - spellcheck: Altered inconsistent dropship ammo names + irRegularGuy646: + - rscadd: Added new "M1A1" ballistic goggle reskin + kiVts: + - rscadd: Spades can now remove botany plants. + - rscadd: Plants now globally take more water to grow. + - code_imp: removed all mention of lighting in botany trays. + - bugfix: Research computer no longer shows "for" for every simulation result. + realforest2001: + - rscadd: Added a Do Not Disturb feature for MOST phones. (Overwatch and a couple + others excluded). + spartanbobby: + - maptweak: Fixes floating Cameras and Light in the maint tunnels north of south + of brig + - maptweak: Fixes incorrect Shower tiles in maint shower north of engineering + - maptweak: Fixes incorrect area in maint south of VC bunk + - maptweak: Removes Piano from USS Almayer upper lifeboat area +2023-10-09: + SpartanBobby, esselnek: + - rscadd: tactical shotguns now come standard with their stock. Yes you can remove + it if you dont want it + - rscadd: new tactical shotgun stock sprite done by esselnek diff --git a/icons/mob/animal.dmi b/icons/mob/animal.dmi index 2fa8d67345..8246bb4f70 100644 Binary files a/icons/mob/animal.dmi and b/icons/mob/animal.dmi differ diff --git a/icons/mob/humans/onmob/eyes.dmi b/icons/mob/humans/onmob/eyes.dmi index 2be8eb8d6f..bda5bec0f0 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/head_1.dmi b/icons/mob/humans/onmob/head_1.dmi index b41eab22a2..dad985c1e1 100644 Binary files a/icons/mob/humans/onmob/head_1.dmi and b/icons/mob/humans/onmob/head_1.dmi differ diff --git a/icons/mob/humans/onmob/helmet_garb.dmi b/icons/mob/humans/onmob/helmet_garb.dmi index 645223618d..9e4cbf4629 100644 Binary files a/icons/mob/humans/onmob/helmet_garb.dmi and b/icons/mob/humans/onmob/helmet_garb.dmi differ diff --git a/icons/mob/humans/onmob/mask.dmi b/icons/mob/humans/onmob/mask.dmi index badd31ad72..6f7e998139 100644 Binary files a/icons/mob/humans/onmob/mask.dmi and b/icons/mob/humans/onmob/mask.dmi differ diff --git a/icons/mob/humans/onmob/uniform_0.dmi b/icons/mob/humans/onmob/uniform_0.dmi index 6d944f4fa6..873c325a56 100644 Binary files a/icons/mob/humans/onmob/uniform_0.dmi and b/icons/mob/humans/onmob/uniform_0.dmi differ diff --git a/icons/obj/items/clothing/cm_hats.dmi b/icons/obj/items/clothing/cm_hats.dmi index 9c4ed5bf46..1595402fef 100644 Binary files a/icons/obj/items/clothing/cm_hats.dmi and b/icons/obj/items/clothing/cm_hats.dmi differ diff --git a/icons/obj/items/clothing/glasses.dmi b/icons/obj/items/clothing/glasses.dmi index b5a175e448..13dd0c542c 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/weapons/guns/attachments/stock.dmi b/icons/obj/items/weapons/guns/attachments/stock.dmi index a15409b808..d3a95284a2 100644 Binary files a/icons/obj/items/weapons/guns/attachments/stock.dmi and b/icons/obj/items/weapons/guns/attachments/stock.dmi differ diff --git a/maps/map_files/BigRed/BigRed.dmm b/maps/map_files/BigRed/BigRed.dmm index b22a08e3f6..b29802bd65 100644 --- a/maps/map_files/BigRed/BigRed.dmm +++ b/maps/map_files/BigRed/BigRed.dmm @@ -29757,7 +29757,7 @@ /area/bigredv2/outside/filtration_plant) "htp" = ( /obj/structure/transmitter/colony_net{ - callable = 0; + do_not_disturb = 1; dir = 4; phone_category = "Lambda Labs"; phone_color = "red"; diff --git a/maps/map_files/USS_Almayer/USS_Almayer.dmm b/maps/map_files/USS_Almayer/USS_Almayer.dmm index 5939075b1b..fb842c754d 100644 --- a/maps/map_files/USS_Almayer/USS_Almayer.dmm +++ b/maps/map_files/USS_Almayer/USS_Almayer.dmm @@ -2371,11 +2371,18 @@ }, /area/almayer/living/offices/flight) "ahX" = ( -/obj/structure/machinery/light/small{ - dir = 4 +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out" }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/hull/upper_hull/u_f_s) +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_y = 1 + }, +/obj/structure/machinery/door/airlock/almayer/maint, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/hull/upper_hull/u_a_s) "ahY" = ( /obj/structure/machinery/light, /obj/structure/surface/table/woodentable/fancy, @@ -3482,6 +3489,15 @@ /obj/item/device/radio, /turf/open/floor/wood/ship, /area/almayer/living/commandbunks) +"alv" = ( +/obj/structure/machinery/camera/autoname/almayer{ + dir = 8; + name = "ship-grade camera" + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/hull/upper_hull/u_f_p) "alw" = ( /obj/structure/machinery/door/airlock/almayer/generic{ dir = 2; @@ -7820,7 +7836,7 @@ pixel_y = 15 }, /obj/structure/machinery/light, -/obj/structure/transmitter/rotary{ +/obj/structure/transmitter/rotary/no_dnd{ name = "Bravo Overwatch Telephone"; phone_category = "Command"; phone_id = "Bravo Overwatch" @@ -8508,7 +8524,7 @@ pixel_y = -5; req_one_access_txt = "1;4" }, -/obj/structure/transmitter/rotary{ +/obj/structure/transmitter/rotary/no_dnd{ name = "Combat Information Center Telephone"; phone_category = "Command"; phone_id = "Combat Information Center"; @@ -8918,6 +8934,7 @@ /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Port Railguns and Viewing Room" }, +/obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ icon_state = "test_floor4" }, @@ -8959,7 +8976,7 @@ /obj/structure/machinery/light{ dir = 1 }, -/obj/structure/transmitter/rotary{ +/obj/structure/transmitter/rotary/no_dnd{ name = "Charlie Overwatch Telephone"; phone_category = "Command"; phone_id = "Charlie Overwatch" @@ -9111,9 +9128,7 @@ /obj/structure/sink{ pixel_y = 24 }, -/turf/open/floor/almayer{ - icon_state = "sterile" - }, +/turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_a_s) "aCv" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -9216,9 +9231,7 @@ pixel_y = 16 }, /obj/item/tool/soap, -/turf/open/floor/almayer{ - icon_state = "sterile" - }, +/turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_a_s) "aDg" = ( /obj/structure/machinery/light/small{ @@ -12149,8 +12162,15 @@ }, /area/almayer/medical/upper_medical) "aQA" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, /turf/open/floor/almayer{ - icon_state = "sterile" + icon_state = "dark_sterile" }, /area/almayer/hull/upper_hull/u_a_s) "aQF" = ( @@ -12278,8 +12298,15 @@ /obj/structure/mirror{ pixel_x = 28 }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, /turf/open/floor/almayer{ - icon_state = "sterile" + icon_state = "dark_sterile" }, /area/almayer/hull/upper_hull/u_a_s) "aRo" = ( @@ -17001,9 +17028,7 @@ /obj/structure/toilet{ dir = 1 }, -/turf/open/floor/almayer{ - icon_state = "sterile" - }, +/turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_a_s) "bph" = ( /obj/structure/bed/chair/comfy/orange, @@ -17466,9 +17491,7 @@ /area/almayer/living/bridgebunks) "brT" = ( /obj/structure/machinery/light, -/turf/open/floor/almayer{ - icon_state = "sterile" - }, +/turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_a_s) "brW" = ( /obj/structure/disposalpipe/segment, @@ -17520,11 +17543,11 @@ /turf/open/floor/wood/ship, /area/almayer/command/corporateliason) "bsf" = ( -/obj/structure/largecrate/random, /obj/structure/machinery/camera/autoname/almayer{ dir = 8; name = "ship-grade camera" }, +/obj/structure/largecrate/random, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -24088,6 +24111,13 @@ icon_state = "blue" }, /area/almayer/squads/delta) +"bVr" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/hull/upper_hull/u_f_p) "bVt" = ( /obj/structure/machinery/door_control{ id = "laddersoutheast"; @@ -32527,7 +32557,7 @@ /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/living/tankerbunks) +/area/almayer/hull/lower_hull/l_f_p) "eim" = ( /obj/structure/pipes/vents/pump{ dir = 1 @@ -32712,6 +32742,7 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, /turf/open/floor/almayer, /area/almayer/shipboard/brig/cic_hallway) "elq" = ( @@ -33966,8 +33997,8 @@ pixel_y = -32 }, /obj/structure/sign/safety/rewire{ - pixel_y = -32; - pixel_x = 14 + pixel_x = 14; + pixel_y = -32 }, /turf/open/floor/almayer{ icon_state = "mono" @@ -34208,7 +34239,7 @@ pixel_x = -17; pixel_y = -17 }, -/obj/structure/transmitter/rotary{ +/obj/structure/transmitter/rotary/no_dnd{ name = "Delta Overwatch Telephone"; phone_category = "Command"; phone_id = "Delta Overwatch" @@ -35567,15 +35598,13 @@ }, /area/almayer/living/starboard_garden) "fwF" = ( -/obj/structure/largecrate/random/case/double, -/obj/structure/machinery/camera/autoname/almayer{ - dir = 8; - name = "ship-grade camera" +/obj/structure/machinery/light/small{ + dir = 4 }, /turf/open/floor/almayer{ icon_state = "plate" }, -/area/almayer/hull/upper_hull/u_f_p) +/area/almayer/hull/upper_hull/u_f_s) "fwY" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -36530,6 +36559,7 @@ /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 }, +/obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ icon_state = "plate" }, @@ -37369,11 +37399,11 @@ "gjL" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/crew/alt, -/obj/structure/transmitter/rotary{ +/obj/structure/transmitter/rotary/no_dnd{ name = "Brig Cells Telephone"; phone_category = "Almayer"; phone_id = "Brig Cells"; - pixel_x = 15 + pixel_x = 15; }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/processing) @@ -38381,7 +38411,7 @@ pixel_x = -17; pixel_y = 16 }, -/obj/structure/transmitter/rotary{ +/obj/structure/transmitter/rotary/no_dnd{ name = "Alpha Overwatch Telephone"; phone_category = "Command"; phone_id = "Alpha Overwatch" @@ -43558,12 +43588,14 @@ }, /area/almayer/hull/lower_hull/l_f_p) "iVY" = ( -/obj/effect/decal/hefa_cult_decals/d32, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "orange" +/obj/structure/pipes/standard/manifold/hidden/supply{ + dir = 8 }, -/area/almayer/engineering/upper_engineering/starboard) +/obj/structure/disposalpipe/junction{ + dir = 1 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/cic_hallway) "iVZ" = ( /obj/structure/surface/table/woodentable/fancy, /obj/item/folder/black, @@ -55713,6 +55745,16 @@ icon_state = "dark_sterile" }, /area/almayer/engineering/laundry) +"odM" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/shipboard/brig/cic_hallway) "odN" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/firedoor/border_only/almayer, @@ -57123,6 +57165,7 @@ "oIm" = ( /obj/structure/prop/server_equipment/broken, /turf/open/floor/almayer{ + dir = 1; icon_state = "orange" }, /area/almayer/engineering/upper_engineering/starboard) @@ -59313,9 +59356,9 @@ }, /area/almayer/medical/lower_medical_medbay) "pLv" = ( -/obj/structure/device/broken_moog, /obj/effect/decal/cleanable/blood/splatter, /turf/open/floor/almayer{ + dir = 1; icon_state = "orange" }, /area/almayer/engineering/upper_engineering/starboard) @@ -60180,8 +60223,8 @@ pixel_y = 32 }, /obj/structure/sign/safety/rewire{ - pixel_y = 32; - pixel_x = 14 + pixel_x = 14; + pixel_y = 32 }, /turf/open/floor/almayer{ icon_state = "mono" @@ -63503,6 +63546,7 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, /turf/open/floor/almayer, /area/almayer/shipboard/brig/cic_hallway) "rzN" = ( @@ -64482,11 +64526,11 @@ /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_f_s) "rTY" = ( -/obj/structure/transmitter{ +/obj/structure/transmitter/no_dnd{ name = "Requisition Telephone"; phone_category = "Almayer"; phone_id = "Requisition"; - pixel_y = 30 + pixel_y = 30; }, /turf/open/floor/almayer{ dir = 5; @@ -75687,11 +75731,15 @@ }, /area/almayer/command/airoom) "wyK" = ( -/obj/structure/pipes/standard/simple/hidden/supply, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, /turf/open/floor/almayer{ - icon_state = "orangecorner" + dir = 1; + icon_state = "silvercorner" }, -/area/almayer/hallways/stern_hallway) +/area/almayer/shipboard/brig/cic_hallway) "wyO" = ( /obj/structure/largecrate/random/barrel/red, /obj/structure/prop/invuln/overhead_pipe{ @@ -94544,7 +94592,7 @@ bdH aad aag pCi -nfI +wcn rPC cQv cQv @@ -94747,8 +94795,8 @@ aaf aag aag pCi -bsf -ahX +hKi +wcn aFN wcn cXZ @@ -94785,7 +94833,7 @@ kIV hUc wNU mnm -fwF +sIk xEF aag aag @@ -94950,8 +94998,8 @@ adG adG adG adG -rPC -rPC +bsf +fwF dav rPC rPC @@ -94988,7 +95036,7 @@ mnm kIV wNU kIV -kIV +alv tuA tuA tuA @@ -96603,13 +96651,13 @@ vGA uwN pYX xuZ -jnD +wyK elh rzM aBN fQS -tJo -tJo +bVr +bVr bpd bqT vZv @@ -96805,8 +96853,8 @@ awz vSN mPj rWs -mIy -eEw +iVY +odM lPC mgy wWT @@ -104103,7 +104151,7 @@ yjM qbO aqw hnI -ayT +bYe amO wZM aPm @@ -104712,7 +104760,7 @@ aiX aKG amb aiX -bYe +ayT amO avj qFl @@ -105924,10 +105972,10 @@ bbL bbL kij bbL -bbL -bbL -yfv bYe +bYe +yfv +bbL aWl bbL bbL @@ -106356,8 +106404,8 @@ baw baw baw mnA -aJU -aJU +baw +baw qVM iBt iBt @@ -106958,7 +107006,7 @@ coa aoe ahr akU -ajC +bYe xCX csz vGk @@ -118527,7 +118575,7 @@ dxv cnS cnv ajt -anf +bYe xCX csz csz @@ -123196,7 +123244,7 @@ fDG alL alG aYD -wyK +aTS qgK tEB uBM @@ -126003,7 +126051,7 @@ pVZ xlX psm psm -jFX +ahX psm psm fnZ @@ -133926,7 +133974,7 @@ aaa aaa uMc iKc -iVY +uiG cMN trB nVX diff --git a/maps/templates/clf_ert_station.dmm b/maps/templates/clf_ert_station.dmm index 9d6ccd92aa..7347be914d 100644 --- a/maps/templates/clf_ert_station.dmm +++ b/maps/templates/clf_ert_station.dmm @@ -1658,7 +1658,7 @@ name = "CLF Outpost"; phone_category = "CLF"; phone_id = "CLF Outpost"; - callable = 0; + do_not_disturb = 2; pixel_y = 10 }, /turf/open/floor/wood, diff --git a/maps/templates/upp_ert_station.dmm b/maps/templates/upp_ert_station.dmm index d78a900f2c..ae2a8ad40c 100644 --- a/maps/templates/upp_ert_station.dmm +++ b/maps/templates/upp_ert_station.dmm @@ -880,7 +880,7 @@ name = "UPP Station"; phone_category = "UPP"; phone_id = "UPP Station"; - callable = 0 + do_not_disturb = 2 }, /turf/open/floor/strata{ icon_state = "floor2" diff --git a/maps/templates/weyland_ert_station.dmm b/maps/templates/weyland_ert_station.dmm index 414eee0bcb..1937aa6a61 100644 --- a/maps/templates/weyland_ert_station.dmm +++ b/maps/templates/weyland_ert_station.dmm @@ -2795,7 +2795,7 @@ "Js" = ( /obj/structure/surface/table/reinforced/black, /obj/structure/transmitter/rotary{ - callable = 0; + do_not_disturb = 2; name = "Weyland-Yutani Station CiC"; phone_category = "W-Y"; phone_id = "W-Y Station CiC" @@ -3588,7 +3588,7 @@ "SE" = ( /obj/structure/surface/table/woodentable/fancy, /obj/structure/transmitter/rotary{ - callable = 0; + do_not_disturb = 2; name = "Weyland-Yutani Station Meeting Room"; phone_category = "W-Y"; phone_id = "W-Y Station Meeting Room" diff --git a/tgui/packages/tgui/interfaces/PhoneMenu.js b/tgui/packages/tgui/interfaces/PhoneMenu.js index 657757dd67..9a2edf9437 100644 --- a/tgui/packages/tgui/interfaces/PhoneMenu.js +++ b/tgui/packages/tgui/interfaces/PhoneMenu.js @@ -15,6 +15,7 @@ export const PhoneMenu = (props, context) => { const GeneralPanel = (props, context) => { const { act, data } = useBackend(context); + const { availability } = data; const available_transmitters = Object.keys(data.available_transmitters); const transmitters = data.transmitters.filter((val1) => available_transmitters.includes(val1.phone_id) @@ -46,6 +47,21 @@ const GeneralPanel = (props, context) => { categories[0] ); + let dnd_tooltip = 'Do Not Disturb is DISABLED'; + let dnd_locked = 'No'; + let dnd_icon = 'volume-high'; + if (availability === 1) { + dnd_tooltip = 'Do Not Disturb is ENABLED'; + dnd_icon = 'volume-xmark'; + } else if (availability >= 2) { + dnd_tooltip = 'Do Not Disturb is ENABLED (LOCKED)'; + dnd_locked = 'Yes'; + dnd_icon = 'volume-xmark'; + } else if (availability < 0) { + dnd_tooltip = 'Do Not Disturb is DISABLED (LOCKED)'; + dnd_locked = 'Yes'; + } + return (
@@ -115,6 +131,18 @@ const GeneralPanel = (props, context) => { /> )} + +
); diff --git a/tgui/packages/tgui/interfaces/ResearchTerminal.tsx b/tgui/packages/tgui/interfaces/ResearchTerminal.tsx index c40af65ea4..efa0724bf2 100644 --- a/tgui/packages/tgui/interfaces/ResearchTerminal.tsx +++ b/tgui/packages/tgui/interfaces/ResearchTerminal.tsx @@ -153,9 +153,15 @@ const CompoundRecord = (props: CompoundRecordProps, context) => { - - {compound.type.document.split(' ')[2]} - + {compound.type.document.split(' ')[0] === 'Simulation' ? ( + + {compound.type.document.split(' ')[3]} + + ) : ( + + {compound.type.document.split(' ')[2]} + + )}