[READY] Makes plasmaman helmets have visors. (#45606)

About The Pull Request

See title.
Why It's Good For The Game

Plasmamen get the same welding protection as everyone else, that is with welding helmets, with the same trade-off and negatives. Goggles are rather hard to obtain for most roles, (provided #45460 is reverted, which is kind of ought to be) and plasmamen aren't able to use helmets.

Basically nullifies the concept of using this as flash protection unless used by a particularly quick-witted plasmaman, (or someone willing to always be half-blind) while still offering welding protection.

I might consider re-adding transparent helmets but only if humans wear them, as it doesn't look good on plasmamen, which is the whole point of the helmet.
Changelog

cl
balance: Plasmaman helmets now have welding visors, which can't stack with their torches in the helmet and are visible.
fix: Clicking on the helmet with any item no longer tells you that someone's already drawn a face on it, you can't put infinite faces on it.
tweak: Plasmaman helmets hide masks again, the sprites are no longer transparent. Mind, the original bounty just wanted it so you could see faces through it, not for it to be transparent.
tweak:Plasmaman helmets now have special smile sprites rather than pulling from the EVA one, as the visors are different sizes.
balance: You can't eat through plasmaman helmets anymore.
/cl
This commit is contained in:
pireamaineach
2019-08-09 11:02:37 +12:00
committed by oranges
parent 79239383d4
commit 6048d747c2
5 changed files with 88 additions and 17 deletions
+8
View File
@@ -257,6 +257,14 @@
if(istype(H))
H.toggle_welding_screen(owner)
/datum/action/item_action/toggle_welding_screen/plasmaman
name = "Toggle Welding Screen"
/datum/action/item_action/toggle_welding_screen/plasmaman/Trigger()
var/obj/item/clothing/head/helmet/space/plasmaman/H = target
if(istype(H))
H.toggle_welding_screen(owner)
/datum/action/item_action/toggle_headphones
name = "Toggle Headphones"
desc = "UNTZ UNTZ UNTZ"
+9
View File
@@ -297,6 +297,15 @@ BLIND // can't see anything
if(visor_vars_to_toggle & VISOR_TINT)
tint ^= initial(tint)
/obj/item/clothing/head/helmet/space/plasmaman/visor_toggling() //handles all the actual toggling of flags
up = !up
clothing_flags ^= visor_flags
flags_inv ^= visor_flags_inv
icon_state = "[initial(icon_state)]"
if(visor_vars_to_toggle & VISOR_FLASHPROTECT)
flash_protect ^= initial(flash_protect)
if(visor_vars_to_toggle & VISOR_TINT)
tint ^= initial(tint)
/obj/item/clothing/proc/can_use(mob/user)
if(user && ismob(user))
+71 -17
View File
@@ -41,35 +41,81 @@
icon_state = "plasmaman-helm"
item_state = "plasmaman-helm"
strip_delay = 80
flash_protect = 0
flash_protect = 2
tint = 2
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 0, "fire" = 100, "acid" = 75)
flags_inv = HIDEEARS|HIDEHAIR|HIDEFACIALHAIR
resistance_flags = FIRE_PROOF
var/brightness_on = 4 //luminosity when the light is on
var/on = FALSE
var/smile = FALSE
var/smile_color = "#FF0000"
var/visor_icon = "envisor"
var/smile_state = "envirohelm_smile"
actions_types = list(/datum/action/item_action/toggle_helmet_light, /datum/action/item_action/toggle_welding_screen/plasmaman)
visor_vars_to_toggle = VISOR_FLASHPROTECT | VISOR_TINT
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
flags_cover = HEADCOVERSMOUTH|HEADCOVERSEYES
visor_flags_inv = HIDEEYES|HIDEFACE|HIDEFACIALHAIR
/obj/item/clothing/head/helmet/space/plasmaman/Initialize()
. = ..()
visor_toggling()
update_icon()
cut_overlays()
/obj/item/clothing/head/helmet/space/plasmaman/AltClick(mob/user)
if(user.canUseTopic(src, BE_CLOSE))
toggle_welding_screen(user)
/obj/item/clothing/head/helmet/space/plasmaman/proc/toggle_welding_screen(mob/living/user)
if(weldingvisortoggle(user))
if(on)
to_chat(user, "<span class='notice'>Your helmet's torch can't pass through your welding visor!</span>")
on = FALSE
playsound(src, 'sound/mecha/mechmove03.ogg', 50, 1) //Visors don't just come from nothing
update_icon()
else
playsound(src, 'sound/mecha/mechmove03.ogg', 50, 1) //Visors don't just come from nothing
update_icon()
/obj/item/clothing/head/helmet/space/plasmaman/worn_overlays(isinhands)
. = ..()
if(!isinhands && !up)
. += mutable_appearance('icons/mob/head.dmi', visor_icon)
else
cut_overlays()
/obj/item/clothing/head/helmet/space/plasmaman/update_icon()
cut_overlays()
add_overlay(visor_icon)
..()
actions_types = list(/datum/action/item_action/toggle_helmet_light)
/obj/item/clothing/head/helmet/space/plasmaman/attackby(obj/item/C, mob/living/user)
. = ..()
if(istype(C, /obj/item/toy/crayon))
var/obj/item/toy/crayon/CR = C
to_chat(user, "You start drawing a smiley face on the helmet's visor..")
if(do_after(user, 25, target = src))
smile = TRUE
smile_color = CR.paint_color
to_chat(user, "You draw a smiley on the helmet visor.")
update_icon()
return
to_chat(user, "Seems like someone already drew something on this helmet's visor.")
if(smile == FALSE)
var/obj/item/toy/crayon/CR = C
to_chat(user, "<span class='notice'>You start drawing a smiley face on the helmet's visor..</span>")
if(do_after(user, 25, target = src))
smile = TRUE
smile_color = CR.paint_color
to_chat(user, "You draw a smiley on the helmet visor.")
update_icon()
return
if(smile == TRUE)
to_chat(user, "<span class='notice'>Seems like someone already drew something on this helmet's visor.</span>")
/obj/item/clothing/head/helmet/space/plasmaman/worn_overlays(isinhands)
. = ..()
if(!isinhands && smile)
var/mutable_appearance/M = mutable_appearance('icons/mob/head.dmi', "eva_smile_overlay")
var/mutable_appearance/M = mutable_appearance('icons/mob/head.dmi', smile_state)
M.color = smile_color
. += M
if(!isinhands && !up)
. += mutable_appearance('icons/mob/head.dmi', visor_icon)
else
cut_overlays()
/obj/item/clothing/head/helmet/space/plasmaman/ComponentInitialize()
. = ..()
@@ -88,7 +134,11 @@
user.update_inv_head() //So the mob overlay updates
if(on)
set_light(brightness_on)
if(!up)
to_chat(user, "<span class='notice'>Your helmet's torch can't pass through your welding visor!</span>")
set_light(0)
else
set_light(brightness_on)
else
set_light(0)
@@ -169,6 +219,7 @@
desc = "A khaki helmet given to plasmamen miners operating on lavaland."
icon_state = "explorer_envirohelm"
item_state = "explorer_envirohelm"
visor_icon = "explorer_envisor"
/obj/item/clothing/head/helmet/space/plasmaman/chaplain
name = "chaplain's plasma envirosuit helmet"
@@ -187,7 +238,9 @@
desc = "A slight modification on a tradiational voidsuit helmet, this helmet was Nano-Trasen's first solution to the *logistical problems* that come with employing plasmamen. Despite their limitations, these helmets still see use by historian and old-styled plasmamen alike."
icon_state = "prototype_envirohelm"
item_state = "prototype_envirohelm"
actions_types = list()
actions_types = list(/datum/action/item_action/toggle_welding_screen/plasmaman)
smile_state = "prototype_smile"
visor_icon = "prototype_envisor"
/obj/item/clothing/head/helmet/space/plasmaman/botany
name = "botany plasma envirosuit helmet"
@@ -204,13 +257,14 @@
/obj/item/clothing/head/helmet/space/plasmaman/mime
name = "mime envirosuit helmet"
desc = "The make-up is painted on, it's a miracle it doesn't chip. It's not very colourful."
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
icon_state = "mime_envirohelm"
item_state = "mime_envirohelm"
visor_icon = "mime_envisor"
/obj/item/clothing/head/helmet/space/plasmaman/clown
name = "clown envirosuit helmet"
desc = "The make-up is painted on, it's a miracle it doesn't chip. <i>'HONK!'</i>"
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
icon_state = "clown_envirohelm"
item_state = "clown_envirohelm"
item_state = "clown_envirohelm"
visor_icon = "clown_envisor"
smile_state = "clown_smile"
Binary file not shown.

Before

Width:  |  Height:  |  Size: 194 KiB

After

Width:  |  Height:  |  Size: 193 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 94 KiB

After

Width:  |  Height:  |  Size: 94 KiB