diff --git a/code/game/objects/items/weapons/RCD.dm b/code/game/objects/items/weapons/RCD.dm
index 0bacbaa161e..67f15bb3fe1 100644
--- a/code/game/objects/items/weapons/RCD.dm
+++ b/code/game/objects/items/weapons/RCD.dm
@@ -7,7 +7,7 @@ RCD
/obj/item/weapon/rcd
name = "rapid-construction-device (RCD)"
desc = "A device used to rapidly build and deconstruct walls and floors."
- icon = 'icons/obj/items.dmi'
+ icon = 'icons/obj/tools.dmi'
icon_state = "rcd"
opacity = 0
density = 0
diff --git a/code/game/objects/items/weapons/RSF.dm b/code/game/objects/items/weapons/RSF.dm
index 7cbe5783a9a..47cf88f9bbc 100644
--- a/code/game/objects/items/weapons/RSF.dm
+++ b/code/game/objects/items/weapons/RSF.dm
@@ -6,8 +6,8 @@ RSF
/obj/item/weapon/rsf
name = "\improper Rapid-Service-Fabricator"
desc = "A device used to rapidly deploy service items."
- icon = 'icons/obj/items.dmi'
- icon_state = "rcd"
+ icon = 'icons/obj/tools.dmi'
+ icon_state = "rsf"
opacity = 0
density = 0
anchored = 0.0
diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm
index b7f5e370b95..402453f8007 100644
--- a/code/game/objects/items/weapons/tools.dm
+++ b/code/game/objects/items/weapons/tools.dm
@@ -12,47 +12,42 @@
* Revolver Conversion Kit
*/
-/*
- * Wrench
- */
+//Wrench
/obj/item/weapon/wrench
name = "wrench"
desc = "A wrench with common uses. Can be found in your hand."
- icon = 'icons/obj/items.dmi'
+ icon = 'icons/obj/tools.dmi'
icon_state = "wrench"
flags = CONDUCT
slot_flags = SLOT_BELT
- force = 5.0
- throwforce = 7.0
+ force = 5
+ throwforce = 7
w_class = 2
materials = list(MAT_METAL=150)
origin_tech = "materials=1;engineering=1"
attack_verb = list("bashed", "battered", "bludgeoned", "whacked")
-
-/*
- * Screwdriver
- */
+//Screwdriver
/obj/item/weapon/screwdriver
name = "screwdriver"
desc = "You can be totally screwy with this."
- icon = 'icons/obj/items.dmi'
+ icon = 'icons/obj/tools.dmi'
icon_state = "screwdriver"
flags = CONDUCT
slot_flags = SLOT_BELT
- force = 5.0
+ force = 5
w_class = 1
- throwforce = 5.0
+ throwforce = 5
throw_speed = 3
throw_range = 5
materials = list(MAT_METAL=75)
attack_verb = list("stabbed")
hitsound = 'sound/weapons/bladeslice.ogg'
- suicide_act(mob/user)
- to_chat(viewers(user), pick("[user] is stabbing the [src.name] into \his temple! It looks like \he's trying to commit suicide.", \
- "[user] is stabbing the [src.name] into \his heart! It looks like \he's trying to commit suicide."))
- return(BRUTELOSS)
+/obj/item/weapon/screwdriver/suicide_act(mob/user)
+ to_chat(viewers(user), pick("[user] is stabbing the [name] into \his temple! It looks like \he's trying to commit suicide.", \
+ "[user] is stabbing the [name] into \his heart! It looks like \he's trying to commit suicide."))
+ return(BRUTELOSS)
/obj/item/weapon/screwdriver/New()
switch(pick("red","blue","purple","brown","green","cyan","yellow"))
@@ -82,7 +77,7 @@
src.pixel_y = rand(0, 16)
return
-/obj/item/weapon/screwdriver/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob)
+/obj/item/weapon/screwdriver/attack(mob/living/carbon/M, mob/living/carbon/user)
if(!istype(M) || user.a_intent == I_HELP)
return ..()
if(user.zone_sel.selecting != "eyes" && user.zone_sel.selecting != "head")
@@ -91,17 +86,15 @@
M = user
return eyestab(M,user)
-/*
- * Wirecutters
- */
+//Wirecutters
/obj/item/weapon/wirecutters
name = "wirecutters"
desc = "This cuts wires."
- icon = 'icons/obj/items.dmi'
+ icon = 'icons/obj/tools.dmi'
icon_state = "cutters"
flags = CONDUCT
slot_flags = SLOT_BELT
- force = 6.0
+ force = 6
throw_speed = 3
throw_range = 7
w_class = 2
@@ -112,51 +105,40 @@
sharp = 1
edge = 1
-/obj/item/weapon/wirecutters/New(loc, var/param_color = null)
+/obj/item/weapon/wirecutters/New(loc, param_color = null)
..()
if((!param_color && prob(50)) || param_color == "yellow")
icon_state = "cutters-y"
item_state = "cutters_yellow"
-/obj/item/weapon/wirecutters/attack(mob/living/carbon/human/C as mob, mob/user as mob)
- if(istype(C) && C.handcuffed)
- if(istype(C.handcuffed, /obj/item/weapon/restraints/handcuffs/cable))
- usr.visible_message("\The [usr] cuts \the [C]'s restraints with \the [src]!",\
- "You cut \the [C]'s restraints with \the [src]!",\
+/obj/item/weapon/wirecutters/attack(mob/living/carbon/human/H, mob/user)
+ if(istype(H) && H.handcuffed)
+ if(istype(H.handcuffed, /obj/item/weapon/restraints/handcuffs/cable))
+ usr.visible_message("\The [usr] cuts \the [H]'s restraints with \the [src]!",\
+ "You cut \the [H]'s restraints with \the [src]!",\
"You hear cable being cut.")
- C.handcuffed = null
- if(C.buckled && C.buckled.buckle_requires_restraints)
- C.buckled.unbuckle_mob()
- C.update_handcuffed()
+ H.handcuffed = null
+ if(H.buckled && H.buckled.buckle_requires_restraints)
+ H.buckled.unbuckle_mob()
+ H.update_handcuffed()
return
else
..()
-/*
- * Welding Tool
- */
+//Welding Tool
/obj/item/weapon/weldingtool
name = "welding tool"
- icon = 'icons/obj/items.dmi'
+ icon = 'icons/obj/tools.dmi'
icon_state = "welder"
- item_state = "welder"
flags = CONDUCT
slot_flags = SLOT_BELT
-
- //Amount of OUCH when it's thrown
force = 3
throwforce = 5
throw_speed = 3
throw_range = 5
w_class = 2
-
- //Cost to make in the autolathe
materials = list(MAT_METAL=70, MAT_GLASS=30)
-
- //R&D tech level
origin_tech = "engineering=1"
-
- //Welding tool specific stuff
var/welding = 0 //Whether or not the welding tool is off(0), on(1) or currently welding(2)
var/status = 1 //Whether the welder is secured or unsecured (able to attach rods to it to make a flamethrower)
var/max_fuel = 20 //The max amount of fuel the welder can hold
@@ -198,8 +180,8 @@
update_torch()
return
-/obj/item/weapon/weldingtool/attackby(obj/item/I as obj, mob/user as mob, params)
- if(istype(I, /obj/item/weapon/screwdriver))
+/obj/item/weapon/weldingtool/attackby(obj/item/I, mob/user, params)
+ if(isscrewdriver(I))
flamethrower_screwdriver(I, user)
if(istype(I, /obj/item/stack/rods))
flamethrower_rods(I, user)
@@ -231,7 +213,7 @@
if(isturf(location))
location.hotspot_expose(700, 5)
-/obj/item/weapon/weldingtool/attack(mob/M as mob, mob/user as mob)
+/obj/item/weapon/weldingtool/attack(mob/M, mob/user)
if(ishuman(M))
var/mob/living/carbon/human/H = M
var/obj/item/organ/external/S = H.organs_by_name[user.zone_sel.selecting]
@@ -289,7 +271,7 @@
return reagents.get_reagent_amount("fuel")
//Removes fuel from the welding tool. If a mob is passed, it will try to flash the mob's eyes. This should probably be renamed to use()
-/obj/item/weapon/weldingtool/proc/remove_fuel(var/amount = 1, var/mob/living/M = null)
+/obj/item/weapon/weldingtool/proc/remove_fuel(amount = 1, mob/living/M = null)
if(!welding || !check_fuel())
return 0
if(get_fuel() >= amount)
@@ -379,6 +361,7 @@
name = "Industrial Welding Tool"
desc = "A slightly larger welder with a larger tank."
icon_state = "indwelder"
+ icon_state = "welder"
max_fuel = 40
materials = list(MAT_METAL=70, MAT_GLASS=60)
origin_tech = "engineering=2"
@@ -402,9 +385,8 @@
/obj/item/weapon/weldingtool/hugetank
name = "Upgraded Welding Tool"
- desc = "An upgraded welder based of the industrial welder."
+ desc = "An upgraded welder based off the industrial welder."
icon_state = "upindwelder"
- item_state = "upindwelder"
max_fuel = 80
w_class = 3
materials = list(MAT_METAL=70, MAT_GLASS=120)
@@ -414,15 +396,14 @@
name = "Experimental Welding Tool"
desc = "An experimental welder capable of self-fuel generation and less harmful to the eyes."
icon_state = "exwelder"
- item_state = "exwelder"
max_fuel = 40
w_class = 3
materials = list(MAT_METAL=70, MAT_GLASS=120)
origin_tech = "engineering=4;plasmatech=3"
- var/last_gen = 0
change_icons = 0
can_off_process = 1
light_intensity = 1
+ var/last_gen = 0
/obj/item/weapon/weldingtool/experimental/proc/fuel_gen()
if(!welding && !last_gen)
@@ -436,19 +417,16 @@
if(reagents.total_volume < max_fuel)
fuel_gen()
-/*
- * Crowbar
- */
-
+//Crowbar
/obj/item/weapon/crowbar
name = "pocket crowbar"
desc = "A small crowbar. This handy tool is useful for lots of things, such as prying floor tiles or opening unpowered doors."
- icon = 'icons/obj/items.dmi'
+ icon = 'icons/obj/tools.dmi'
icon_state = "crowbar"
flags = CONDUCT
slot_flags = SLOT_BELT
- force = 5.0
- throwforce = 7.0
+ force = 5
+ throwforce = 7
item_state = "crowbar"
w_class = 2
materials = list(MAT_METAL=50)
@@ -456,7 +434,6 @@
attack_verb = list("attacked", "bashed", "battered", "bludgeoned", "whacked")
/obj/item/weapon/crowbar/red
- icon = 'icons/obj/items.dmi'
icon_state = "red_crowbar"
item_state = "crowbar_red"
@@ -480,14 +457,14 @@
origin_tech = "combat=2"
var/open = 0
- New()
- ..()
- update_icon()
-
+/obj/item/weapon/conversion_kit/New()
+ ..()
update_icon()
- icon_state = "[initial(icon_state)]_[open]"
- attack_self(mob/user as mob)
- open = !open
- to_chat(user, "\blue You [open?"open" : "close"] the conversion kit.")
- update_icon()
+/obj/item/weapon/conversion_kit/update_icon()
+ icon_state = "[initial(icon_state)]_[open]"
+
+/obj/item/weapon/conversion_kit/attack_self(mob/user)
+ open = !open
+ to_chat(user, "\blue You [open?"open" : "close"] the conversion kit.")
+ update_icon()
diff --git a/icons/mob/inhands/items_lefthand.dmi b/icons/mob/inhands/items_lefthand.dmi
index cecb8427e84..5c12ccecd5b 100644
Binary files a/icons/mob/inhands/items_lefthand.dmi and b/icons/mob/inhands/items_lefthand.dmi differ
diff --git a/icons/mob/inhands/items_righthand.dmi b/icons/mob/inhands/items_righthand.dmi
index fe42152fb5f..2a9a6774d27 100644
Binary files a/icons/mob/inhands/items_righthand.dmi and b/icons/mob/inhands/items_righthand.dmi differ
diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi
index 1e8b80b314e..186e7d05232 100644
Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ
diff --git a/icons/obj/tools.dmi b/icons/obj/tools.dmi
new file mode 100644
index 00000000000..332afbbdb71
Binary files /dev/null and b/icons/obj/tools.dmi differ