diff --git a/code/defines/obj.dm b/code/defines/obj.dm index 29cfe13024e..0ecd486e300 100644 --- a/code/defines/obj.dm +++ b/code/defines/obj.dm @@ -646,11 +646,24 @@ var/netnum = 0 name = "power cable" desc = "A flexible superconducting cable for heavy-duty power transfer." - icon = 'power_cond.dmi' + icon = 'power_cond_red.dmi' icon_state = "0-1" var/d1 = 0 var/d2 = 1 layer = 2.5 + var/color="red" + +/obj/cable/yellow + color="yellow" + icon = 'power_cond_yellow.dmi' + +/obj/cable/green + color="green" + icon = 'power_cond_green.dmi' + +/obj/cable/blue + color="blue" + icon = 'power_cond_blue.dmi' /obj/manifest name = "manifest" diff --git a/code/defines/obj/machinery.dm b/code/defines/obj/machinery.dm index a185b21be46..c44928de1d2 100644 --- a/code/defines/obj/machinery.dm +++ b/code/defines/obj/machinery.dm @@ -446,7 +446,7 @@ /* /obj/machinery/wire name = "wire" - icon = 'power_cond.dmi' + icon = 'power_cond_red.dmi' use_power = 1 idle_power_usage = 0 active_power_usage = 1 diff --git a/code/defines/obj/storage.dm b/code/defines/obj/storage.dm index 47ef3562e80..5ab28ed9586 100644 --- a/code/defines/obj/storage.dm +++ b/code/defines/obj/storage.dm @@ -24,7 +24,7 @@ new /obj/item/weapon/weldingtool(src) new /obj/item/weapon/crowbar(src) new /obj/item/weapon/wirecutters(src) - new /obj/item/weapon/cable_coil(src) + new /obj/item/weapon/cable_coil(src,30,pick("red","yellow")) /obj/item/weapon/storage/utilitybelt/medical diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index 113c1a88bac..9e2f2fc7e9b 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -465,21 +465,32 @@ #define MAXCOIL 30 /obj/item/weapon/cable_coil name = "cable coil" - var/amount = MAXCOIL icon = 'power.dmi' - icon_state = "coil" + icon_state = "coil_red" + var/amount = MAXCOIL + var/color = "red" desc = "A coil of power cable." throwforce = 10 w_class = 2.0 throw_speed = 2 throw_range = 5 flags = TABLEPASS|USEDELAY|FPRINT|CONDUCT - item_state = "coil" + item_state = "coil_red" /obj/item/weapon/cable_coil/cut - icon = 'power.dmi' - icon_state = "coil2" - origin_tech = "materials=1" + item_state = "coil_red2" + +/obj/item/weapon/cable_coil/yellow + color = "yellow" + icon_state = "coil_yellow" + +/obj/item/weapon/cable_coil/blue + color = "blue" + icon_state = "coil_blue" + +/obj/item/weapon/cable_coil/green + color = "green" + icon_state = "coil_green" /obj/item/weapon/crowbar name = "crowbar" diff --git a/code/game/objects/storage/toolbox.dm b/code/game/objects/storage/toolbox.dm index fb65c6c328a..7618b145f22 100644 --- a/code/game/objects/storage/toolbox.dm +++ b/code/game/objects/storage/toolbox.dm @@ -23,13 +23,14 @@ /obj/item/weapon/storage/toolbox/electrical/New() ..() + var/color = pick("red","yellow","green","blue") new /obj/item/weapon/screwdriver(src) new /obj/item/weapon/wirecutters(src) new /obj/item/device/t_scanner(src) new /obj/item/weapon/crowbar(src) - new /obj/item/weapon/cable_coil(src) - new /obj/item/weapon/cable_coil(src) + new /obj/item/weapon/cable_coil(src,30,color) + new /obj/item/weapon/cable_coil(src,30,color) if(prob(5)) new /obj/item/clothing/gloves/yellow(src) else - new /obj/item/weapon/cable_coil(src) \ No newline at end of file + new /obj/item/weapon/cable_coil(src,30,color) \ No newline at end of file diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index 86f5034cb93..83883dc314d 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -25,6 +25,21 @@ return var/obj/cable/NC = new(T) + + var/color = "red" + if(coil.color) + color = coil.color + NC.color = coil.color + switch(color) + if("red") + NC.icon = 'power_cond_red.dmi' + if("yellow") + NC.icon = 'power_cond_yellow.dmi' + if("green") + NC.icon = 'power_cond_green.dmi' + if("blue") + NC.icon = 'power_cond_blue.dmi' + NC.d1 = 0 NC.d2 = dirn NC.add_fingerprint() @@ -99,9 +114,9 @@ return if(src.d1) // 0-X cables are 1 unit, X-X cables are 2 units long - new/obj/item/weapon/cable_coil(T, 2) + new/obj/item/weapon/cable_coil(T, 2, color) else - new/obj/item/weapon/cable_coil(T, 1) + new/obj/item/weapon/cable_coil(T, 1, color) for(var/mob/O in viewers(src, null)) O.show_message("\red [user] cuts the cable.", 1) @@ -155,40 +170,45 @@ del(src) if(2.0) if (prob(50)) - new/obj/item/weapon/cable_coil(src.loc, src.d1 ? 2 : 1) + new/obj/item/weapon/cable_coil(src.loc, src.d1 ? 2 : 1, color) del(src) if(3.0) if (prob(25)) - new/obj/item/weapon/cable_coil(src.loc, src.d1 ? 2 : 1) + new/obj/item/weapon/cable_coil(src.loc, src.d1 ? 2 : 1, color) del(src) return // the cable coil object, used for laying cable -/obj/item/weapon/cable_coil/New(loc, length = MAXCOIL) +/obj/item/weapon/cable_coil/New(loc, length = MAXCOIL, var/param_color = null) + ..() src.amount = length + if (param_color) + color = param_color pixel_x = rand(-2,2) pixel_y = rand(-2,2) updateicon() - ..(loc) + /obj/item/weapon/cable_coil/cut/New(loc) - ..(loc) + ..() src.amount = rand(1,2) pixel_x = rand(-2,2) pixel_y = rand(-2,2) updateicon() /obj/item/weapon/cable_coil/proc/updateicon() + if (!color) + color = pick("red", "yellow", "blue", "green") if(amount == 1) - icon_state = "coil1" + icon_state = "coil_[color]1" name = "cable piece" else if(amount == 2) - icon_state = "coil2" + icon_state = "coil_[color]2" name = "cable piece" else - icon_state = "coil" + icon_state = "coil_[color]" name = "cable coil" /obj/item/weapon/cable_coil/examine() @@ -205,7 +225,7 @@ ..() if( istype(W, /obj/item/weapon/wirecutters) && src.amount > 1) src.amount-- - new/obj/item/weapon/cable_coil(user.loc, 1) + new/obj/item/weapon/cable_coil(user.loc, 1,color) user << "You cut a piece off the cable coil." src.updateicon() return @@ -270,6 +290,21 @@ return var/obj/cable/C = new(F) + + var/color_n = "red" + if(color) + color_n = color + C.color = color_n + switch(color) + if("red") + C.icon = 'power_cond_red.dmi' + if("yellow") + C.icon = 'power_cond_yellow.dmi' + if("green") + C.icon = 'power_cond_green.dmi' + if("blue") + C.icon = 'power_cond_blue.dmi' + C.d1 = 0 C.d2 = dirn C.add_fingerprint(user) @@ -315,11 +350,26 @@ var/fdirn = turn(dirn, 180) // the opposite direction for(var/obj/cable/LC in U) // check to make sure there's not a cable there already - if(LC.d1 == fdirn && LC.d2 == fdirn) + if(LC.d1 == fdirn || LC.d2 == fdirn) user << "There's already a cable at that position." return var/obj/cable/NC = new(U) + + var/color_n = "red" + if(color) + color_n = color + NC.color = color_n + switch(color) + if("red") + NC.icon = 'power_cond_red.dmi' + if("yellow") + NC.icon = 'power_cond_yellow.dmi' + if("green") + NC.icon = 'power_cond_green.dmi' + if("blue") + NC.icon = 'power_cond_blue.dmi' + NC.d1 = 0 NC.d2 = fdirn NC.add_fingerprint() @@ -349,6 +399,21 @@ C.shock(user, 25) del(C) var/obj/cable/NC = new(T) + + var/color_n = "red" + if(color) + color_n = color + NC.color = color_n + switch(color) + if("red") + NC.icon = 'power_cond_red.dmi' + if("yellow") + NC.icon = 'power_cond_yellow.dmi' + if("green") + NC.icon = 'power_cond_green.dmi' + if("blue") + NC.icon = 'power_cond_blue.dmi' + NC.d1 = nd1 NC.d2 = nd2 NC.add_fingerprint() diff --git a/icons/obj/power.dmi b/icons/obj/power.dmi index cd5d3ebd69f..f302f61be35 100644 Binary files a/icons/obj/power.dmi and b/icons/obj/power.dmi differ diff --git a/icons/obj/power_cond.dmi b/icons/obj/power_cond.dmi deleted file mode 100644 index 0e91e3be5b0..00000000000 Binary files a/icons/obj/power_cond.dmi and /dev/null differ diff --git a/icons/obj/power_cond_blue.dmi b/icons/obj/power_cond_blue.dmi new file mode 100644 index 00000000000..46c4917b40f Binary files /dev/null and b/icons/obj/power_cond_blue.dmi differ diff --git a/icons/obj/power_cond_green.dmi b/icons/obj/power_cond_green.dmi new file mode 100644 index 00000000000..9fb62fb6b6f Binary files /dev/null and b/icons/obj/power_cond_green.dmi differ diff --git a/icons/obj/power_cond_red.dmi b/icons/obj/power_cond_red.dmi new file mode 100644 index 00000000000..962936479ae Binary files /dev/null and b/icons/obj/power_cond_red.dmi differ diff --git a/icons/obj/power_cond_yellow.dmi b/icons/obj/power_cond_yellow.dmi new file mode 100644 index 00000000000..9607a1ce63c Binary files /dev/null and b/icons/obj/power_cond_yellow.dmi differ