diff --git a/aurorastation.dme b/aurorastation.dme index dbea183f1a1..6f9bfe94771 100644 --- a/aurorastation.dme +++ b/aurorastation.dme @@ -1473,6 +1473,7 @@ #include "code\modules\clothing\factions\vysoka.dm" #include "code\modules\clothing\glasses\glasses.dm" #include "code\modules\clothing\glasses\hud.dm" +#include "code\modules\clothing\gloves\attackby.dm" #include "code\modules\clothing\gloves\boxing.dm" #include "code\modules\clothing\gloves\color.dm" #include "code\modules\clothing\gloves\miscellaneous.dm" diff --git a/code/game/machinery/vending_types.dm b/code/game/machinery/vending_types.dm index 06f2999be84..7cd282de851 100644 --- a/code/game/machinery/vending_types.dm +++ b/code/game/machinery/vending_types.dm @@ -913,7 +913,7 @@ ) contraband = list( /obj/item/weldingtool/hugetank = 2, - /obj/item/clothing/gloves/fyellow = 2 + /obj/item/clothing/gloves/yellow/budget = 2 ) premium = list( /obj/item/clothing/gloves/yellow = 1 diff --git a/code/game/objects/random/random.dm b/code/game/objects/random/random.dm index 6f69f381003..9ff19d18af7 100644 --- a/code/game/objects/random/random.dm +++ b/code/game/objects/random/random.dm @@ -128,7 +128,7 @@ /obj/item/stack/packageWrap = 1, /obj/random/bomb_supply = 2, /obj/item/extinguisher = 1, - /obj/item/clothing/gloves/fyellow = 1, + /obj/item/clothing/gloves/yellow/budget = 1, /obj/item/stack/cable_coil = 3, /obj/random/toolbox = 2, /obj/item/storage/belt/utility = 2, @@ -994,7 +994,7 @@ /obj/item/clothing/gloves/boxing/green = 0.3, /obj/item/clothing/gloves/captain = 0.1, /obj/item/clothing/gloves/combat = 0.2, - /obj/item/clothing/gloves/fyellow = 1.2, + /obj/item/clothing/gloves/yellow/budget = 1.2, /obj/item/clothing/gloves/latex = 0.5, /obj/item/clothing/gloves/latex/nitrile = 0.4, /obj/item/clothing/gloves/yellow = 0.9 diff --git a/code/game/objects/structures/trash_pile.dm b/code/game/objects/structures/trash_pile.dm index 8d2c27c6dc0..3fa8e57589f 100644 --- a/code/game/objects/structures/trash_pile.dm +++ b/code/game/objects/structures/trash_pile.dm @@ -151,7 +151,7 @@ /obj/item/storage/box/donkpockets = 3, /obj/item/storage/box/mousetraps = 3, /obj/item/storage/wallet = 3, - /obj/item/clothing/gloves/fyellow = 2, + /obj/item/clothing/gloves/yellow/budget = 2, /obj/item/clothing/gloves/latex = 2, /obj/item/clothing/head/welding = 2, /obj/item/clothing/mask/gas/alt = 2, diff --git a/code/modules/clothing/gloves/attackby.dm b/code/modules/clothing/gloves/attackby.dm new file mode 100644 index 00000000000..aefbb0475a2 --- /dev/null +++ b/code/modules/clothing/gloves/attackby.dm @@ -0,0 +1,6 @@ +/obj/item/clothing/gloves/attackby(obj/item/W, mob/user) + if(W.ismultitool()) + var/siemens_percentage = 100 * siemens_coefficient + to_chat(user, SPAN_NOTICE("You probe \the [src] with \the [W]. The gloves will let [siemens_percentage]% of an electric shock through.")) + return + return ..() \ No newline at end of file diff --git a/code/modules/clothing/gloves/color.dm b/code/modules/clothing/gloves/color.dm index ddb2917c0c9..1d19a1b4f0b 100644 --- a/code/modules/clothing/gloves/color.dm +++ b/code/modules/clothing/gloves/color.dm @@ -8,19 +8,15 @@ drop_sound = 'sound/items/drop/rubber.ogg' pickup_sound = 'sound/items/pickup/rubber.ogg' -/obj/item/clothing/gloves/fyellow //Cheap Chinese Crap - desc = "These gloves are cheap copies of the coveted gloves, no way this can end badly." +/obj/item/clothing/gloves/yellow/budget name = "budget insulated gloves" - icon_state = "yellow" - item_state = "yellow" - siemens_coefficient = 1 //Set to a default of 1, gets overridden in New() - permeability_coefficient = 0.05 - drop_sound = 'sound/items/drop/rubber.ogg' - pickup_sound = 'sound/items/pickup/rubber.ogg' + desc = "These gloves are cheap copies of the coveted gloves, no way this can end badly." + siemens_coefficient = 1 - New() - //average of 0.5, somewhat better than regular gloves' 0.75 - siemens_coefficient = pick(0,0.1,0.3,0.5,0.5,0.75,1.35) +/obj/item/clothing/gloves/yellow/budget/Initialize(mapload, material_key) + . = ..() + // average of 0.5, somewhat better than regular gloves' 0.75 + siemens_coefficient = pick(0, 0.1, 0.3, 0.5, 0.5, 0.75, 1.35) /obj/item/clothing/gloves/black desc = "These work gloves are thick and fire-resistant." diff --git a/code/modules/item_worth/worths_list.dm b/code/modules/item_worth/worths_list.dm index 3614df329e4..282c0c76341 100644 --- a/code/modules/item_worth/worths_list.dm +++ b/code/modules/item_worth/worths_list.dm @@ -440,7 +440,7 @@ var/list/worths = list( //GLOVES, /obj/item/clothing/gloves/boxing = 60, /obj/item/clothing/gloves/yellow = 300, - /obj/item/clothing/gloves/fyellow = 25, //cheap cheap cheap, + /obj/item/clothing/gloves/yellow/budget = 25, //cheap cheap cheap, /obj/item/clothing/gloves/captain = 100, /obj/item/clothing/gloves/swat = 125, /obj/item/clothing/gloves/combat = 400, diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm index c21bc70bbbb..05768fe3c32 100644 --- a/code/modules/power/cell.dm +++ b/code/modules/power/cell.dm @@ -89,7 +89,6 @@ to_chat(user, "This power cell has an exciting chrome finish, as it is an uber-capacity cell type! It has a power rating of [maxcharge]J!\nThe charge meter reads [round(src.percent() )]%.") /obj/item/cell/attackby(obj/item/W, mob/user) - ..() if(istype(W, /obj/item/reagent_containers/syringe)) var/obj/item/reagent_containers/syringe/S = W @@ -103,6 +102,7 @@ message_admins("[key_name_admin(user)] injected a power cell with phoron, rigging it to explode.") S.reagents.clear_reagents() + return else if(istype(W, /obj/item/device/assembly_holder)) var/obj/item/device/assembly_holder/assembly = W if (istype(assembly.a_left, /obj/item/device/assembly/signaler) && istype(assembly.a_right, /obj/item/device/assembly/signaler)) @@ -113,6 +113,22 @@ new /obj/item/device/radiojammer/improvised(assembly, src, user) else to_chat(user, "You'd need both devices to be signallers for this to work.") + return + else if(W.ismultitool() && ishuman(user) && user.get_inactive_hand() == src) + if(charge < 10) + to_chat(user, SPAN_WARNING("\The [src] doesn't have enough charge to produce sufficient current!")) + return + var/mob/living/carbon/human/H = user + var/siemens_coeff = 1 + if(H.gloves) + siemens_coeff = H.gloves.siemens_coefficient + if(siemens_coeff >= 0.75 && prob(10 * siemens_coeff)) + to_chat(H, SPAN_WARNING("You probe \the [src] with \the [W] and feel a jolt of electricity shoot through you! It reads out that [100 * siemens_coeff]% of the current was let through.")) + H.electrocute_act(5, src, siemens_coeff, H.hand ? BP_R_HAND : BP_L_HAND) // hand holding the battery gets shocked + else + to_chat(H, SPAN_NOTICE("You probe \the [src] with \the [W]. It reads out that [100 * siemens_coeff]% of the current was let through.")) + return + return ..() /obj/item/cell/proc/explode() var/turf/T = get_turf(src.loc) diff --git a/html/changelogs/geeves-siemens_checking.yml b/html/changelogs/geeves-siemens_checking.yml new file mode 100644 index 00000000000..8ac3f941a52 --- /dev/null +++ b/html/changelogs/geeves-siemens_checking.yml @@ -0,0 +1,6 @@ +author: Geeves + +delete-after: True + +changes: + - rscadd: "You can now test the siemens coefficient of gloves in two ways. The first way is simply probing them with a multitool, the second, holding a battery cell in one hand, the multitool in the other, then probing the cell with your multitool." \ No newline at end of file