From 56bba877c712abffe4e31ea7af815e4c386f5483 Mon Sep 17 00:00:00 2001 From: Profakos Date: Thu, 24 Oct 2024 17:01:34 +0200 Subject: [PATCH] Adds a spraycan to robotics (#87412) ## About The Pull Request This PR adds a single spraycan to every roboticist office, and a screentip that should tell the player that they can restyle augments with it, should they hover over one. This spraycan has a new sprite, which is a small edit of the existing spray can, just wearing the colours of the roboticist jumpsuit. The can's description also mentions restyling robotic limbs. ![image](https://github.com/user-attachments/assets/e851a4a8-e916-41c6-850e-1d4814068d23) This PR also fixes a bug: Peg limbs also brought up the restyling menu, albeit, every radial button was empty, and clicking on one runtimes. Now you can no longer do such a thing. Future improvement: perhaps making augment restyling cheaper would be nice, but I did not want to add that into this PR. ## Why It's Good For The Game This is a rarely used feature, some folks thought it has been removed when the augment painter has been removed from the game. Putting it in front of the players will make it used more often, and might result in new augment styles. ## Changelog :cl: add: Adds a roboticist spraycan, and adds one of them to robotics on every map qol: adds a screentip to spraycans that tells you that it can restyle robotic limbs fix: fixes peg legs bringing up the augment restyle menu /:cl: --- _maps/map_files/Birdshot/birdshot.dmm | 1 + .../map_files/Deltastation/DeltaStation2.dmm | 1 + .../map_files/IceBoxStation/IceBoxStation.dmm | 1 + _maps/map_files/MetaStation/MetaStation.dmm | 1 + _maps/map_files/NorthStar/north_star.dmm | 1 + _maps/map_files/tramstation/tramstation.dmm | 1 + _maps/map_files/wawastation/wawastation.dmm | 1 + code/game/objects/items/crayons.dm | 17 +++++++++++++++-- icons/obj/art/crayons.dmi | Bin 2865 -> 5457 bytes 9 files changed, 22 insertions(+), 2 deletions(-) diff --git a/_maps/map_files/Birdshot/birdshot.dmm b/_maps/map_files/Birdshot/birdshot.dmm index 427310fd0a7..ceffd84f67d 100644 --- a/_maps/map_files/Birdshot/birdshot.dmm +++ b/_maps/map_files/Birdshot/birdshot.dmm @@ -34190,6 +34190,7 @@ /obj/item/clothing/glasses/welding, /obj/item/radio/intercom/directional/north, /obj/item/clothing/head/utility/welding, +/obj/item/toy/crayon/spraycan/roboticist, /turf/open/floor/iron, /area/station/science/robotics/lab) "lEa" = ( diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index 4200fe13d15..92854ca2a62 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -69865,6 +69865,7 @@ dir = 8 }, /obj/machinery/light/small/directional/south, +/obj/item/toy/crayon/spraycan/roboticist, /turf/open/floor/iron, /area/station/science/robotics/lab) "ryt" = ( diff --git a/_maps/map_files/IceBoxStation/IceBoxStation.dmm b/_maps/map_files/IceBoxStation/IceBoxStation.dmm index 6cbcb15e08e..141895206a5 100644 --- a/_maps/map_files/IceBoxStation/IceBoxStation.dmm +++ b/_maps/map_files/IceBoxStation/IceBoxStation.dmm @@ -70674,6 +70674,7 @@ /obj/item/multitool{ pixel_x = 3 }, +/obj/item/toy/crayon/spraycan/roboticist, /turf/open/floor/iron, /area/station/science/robotics/lab) "utA" = ( diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 865e1ea3444..8c009275626 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -23637,6 +23637,7 @@ /obj/item/multitool, /obj/item/clothing/head/utility/welding, /obj/item/clothing/glasses/welding, +/obj/item/toy/crayon/spraycan/roboticist, /turf/open/floor/iron, /area/station/science/robotics/lab) "iwL" = ( diff --git a/_maps/map_files/NorthStar/north_star.dmm b/_maps/map_files/NorthStar/north_star.dmm index 2fc187c626d..0fa17fa43bf 100644 --- a/_maps/map_files/NorthStar/north_star.dmm +++ b/_maps/map_files/NorthStar/north_star.dmm @@ -6123,6 +6123,7 @@ /area/station/maintenance/floor1/starboard/fore) "bxk" = ( /obj/structure/rack, +/obj/item/toy/crayon/spraycan/roboticist, /turf/open/floor/iron/dark/smooth_large, /area/station/science/robotics/lab) "bxl" = ( diff --git a/_maps/map_files/tramstation/tramstation.dmm b/_maps/map_files/tramstation/tramstation.dmm index 9c97fd61253..a0c0bc0964b 100644 --- a/_maps/map_files/tramstation/tramstation.dmm +++ b/_maps/map_files/tramstation/tramstation.dmm @@ -5979,6 +5979,7 @@ /obj/item/clothing/glasses/welding, /obj/item/radio/intercom/directional/north, /obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/item/toy/crayon/spraycan/roboticist, /turf/open/floor/iron/dark, /area/station/science/robotics/lab) "aUc" = ( diff --git a/_maps/map_files/wawastation/wawastation.dmm b/_maps/map_files/wawastation/wawastation.dmm index f71639d9986..af981152629 100644 --- a/_maps/map_files/wawastation/wawastation.dmm +++ b/_maps/map_files/wawastation/wawastation.dmm @@ -12657,6 +12657,7 @@ /obj/item/clothing/head/utility/welding, /obj/item/clothing/glasses/welding, /obj/machinery/airalarm/directional/south, +/obj/item/toy/crayon/spraycan/roboticist, /turf/open/floor/iron/dark/textured, /area/station/science/robotics/lab) "exR" = ( diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index 221e73f8596..1412ad41a25 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -819,7 +819,13 @@ return . context[SCREENTIP_CONTEXT_LMB] = "Paint" - context[SCREENTIP_CONTEXT_RMB] = "Copy color" + + if(isbodypart(target)) + var/obj/item/bodypart/limb = target + if(IS_ROBOTIC_LIMB(limb)) + context[SCREENTIP_CONTEXT_RMB] = "Restyle robotic limb" + else + context[SCREENTIP_CONTEXT_RMB] = "Copy color" return CONTEXTUAL_SCREENTIP_SET @@ -981,7 +987,7 @@ if(isbodypart(interacting_with) && actually_paints) var/obj/item/bodypart/limb = interacting_with - if(!IS_ORGANIC_LIMB(limb)) + if(IS_ROBOTIC_LIMB(limb)) var/list/skins = list() var/static/list/style_list_icons = list("standard" = 'icons/mob/augmentation/augments.dmi', "engineer" = 'icons/mob/augmentation/augments_engineer.dmi', "security" = 'icons/mob/augmentation/augments_security.dmi', "mining" = 'icons/mob/augmentation/augments_mining.dmi') for(var/skin_option in style_list_icons) @@ -1093,6 +1099,13 @@ charges = INFINITE_CHARGES desc = "Now with 30% more bluespace technology." +/obj/item/toy/crayon/spraycan/roboticist + name = "roboticist spraycan" + desc = "Paint for restyling unattached robotic limbs. Sadly doesn't shine like chrome." + icon_state = "robocan" + icon_capped = "robocan_cap" + icon_uncapped = "robocan" + #undef RANDOM_GRAFFITI #undef RANDOM_LETTER #undef RANDOM_PUNCTUATION diff --git a/icons/obj/art/crayons.dmi b/icons/obj/art/crayons.dmi index dd686329a147107e68a09a58eecda2cbb6aca51a..26f601f454a50128bdfffaf49d7a4a394aea102b 100644 GIT binary patch literal 5457 zcmai2c{CL6*TGKKiclI%;2Y%_-Nm1K?V#=e#%WT}S87Gp4$ zNJgn)h{4P>3}as3bAIQ%?;r2?egAl#=bn3>=X1}w_j5kyJ~!3Q#*~v?h@F9ffz#Z~ z==SNkdb;{qnNN3-gpdUW2F6PXVqeWiIS0$=|iSE_w`60!WZJTEOw?B%tmR5gR zAVGR*{;k%kJE9Y{KnDek*dd_$5Vj2(oh38zw z&cBIM9s9AbsghAGi5!=|>z@5luqDvVosyOMPTQ zk&Ws0AI@*MUtT_Y-Q)U=oAGx>gYC|LwqTtmog1XG@)~|QYh=RuP#_PergAGZW~-@8 zs7dVBhRYmfYm-X9;q8bmYKDKqog5(>cP_Ce-#o*RC1FWrV%Swv5odVPAJ4$b1Yi

J(=M5WS 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 Ai2wiq