diff --git a/code/datums/greyscale/config_types/greyscale_configs.dm b/code/datums/greyscale/config_types/greyscale_configs.dm index a217ca104e2..5f370f87666 100644 --- a/code/datums/greyscale/config_types/greyscale_configs.dm +++ b/code/datums/greyscale/config_types/greyscale_configs.dm @@ -517,3 +517,25 @@ name = "Material Airlock" icon_file = 'icons/obj/doors/airlocks/material/material.dmi' json_config = 'code/datums/greyscale/json_configs/material_airlock.json' + +/datum/greyscale_config/vape + name = "Vape" + icon_file = 'icons/obj/clothing/masks.dmi' + json_config = 'code/datums/greyscale/json_configs/vape.json' + +/datum/greyscale_config/vape/worn + name = "Worn Vape" + icon_file = 'icons/mob/clothing/mask.dmi' + json_config = 'code/datums/greyscale/json_configs/vape_worn.json' + +/datum/greyscale_config/vape/open_low + name = "Open Vape Low" + json_config = 'code/datums/greyscale/json_configs/vape_open_low.json' + +/datum/greyscale_config/vape/open_med + name = "Open Vape Medium" + json_config = 'code/datums/greyscale/json_configs/vape_open_med.json' + +/datum/greyscale_config/vape/open_high + name = "Open Vape High" + json_config = 'code/datums/greyscale/json_configs/vape_open_high.json' diff --git a/code/datums/greyscale/json_configs/vape.json b/code/datums/greyscale/json_configs/vape.json new file mode 100644 index 00000000000..36dcc765cae --- /dev/null +++ b/code/datums/greyscale/json_configs/vape.json @@ -0,0 +1,15 @@ +{ + "vape": [ + { + "type": "icon_state", + "icon_state": "vapeOutlet", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "vapeInput", + "blend_mode": "overlay" + } + ] +} diff --git a/code/datums/greyscale/json_configs/vape_open_high.json b/code/datums/greyscale/json_configs/vape_open_high.json new file mode 100644 index 00000000000..65a0400d003 --- /dev/null +++ b/code/datums/greyscale/json_configs/vape_open_high.json @@ -0,0 +1,20 @@ +{ + "vape_open_high": [ + { + "type": "icon_state", + "icon_state": "vapeOutlet", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "vapeInput", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "vapeopen_high", + "blend_mode": "overlay" + } + ] +} diff --git a/code/datums/greyscale/json_configs/vape_open_low.json b/code/datums/greyscale/json_configs/vape_open_low.json new file mode 100644 index 00000000000..3ad5971bc37 --- /dev/null +++ b/code/datums/greyscale/json_configs/vape_open_low.json @@ -0,0 +1,20 @@ +{ + "vape_open_low": [ + { + "type": "icon_state", + "icon_state": "vapeOutlet", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "vapeInput", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "vapeopen_low", + "blend_mode": "overlay" + } + ] +} diff --git a/code/datums/greyscale/json_configs/vape_open_med.json b/code/datums/greyscale/json_configs/vape_open_med.json new file mode 100644 index 00000000000..f26302edd77 --- /dev/null +++ b/code/datums/greyscale/json_configs/vape_open_med.json @@ -0,0 +1,20 @@ +{ + "vape_open_med": [ + { + "type": "icon_state", + "icon_state": "vapeOutlet", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "vapeInput", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "vapeopen_med", + "blend_mode": "overlay" + } + ] +} diff --git a/code/datums/greyscale/json_configs/vape_worn.json b/code/datums/greyscale/json_configs/vape_worn.json new file mode 100644 index 00000000000..662083958ef --- /dev/null +++ b/code/datums/greyscale/json_configs/vape_worn.json @@ -0,0 +1,15 @@ +{ + "vape_worn": [ + { + "type": "icon_state", + "icon_state": "vapeWorn", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "vapeVapor", + "blend_mode": "overlay" + } + ] +} diff --git a/code/game/objects/items/cigs_lighters.dm b/code/game/objects/items/cigs_lighters.dm index f5745958ecb..220b44ab6fb 100644 --- a/code/game/objects/items/cigs_lighters.dm +++ b/code/game/objects/items/cigs_lighters.dm @@ -910,10 +910,14 @@ CIGARETTE PACKETS ARE IN FANCY.DM /obj/item/clothing/mask/vape name = "\improper E-Cigarette" desc = "A classy and highly sophisticated electronic cigarette, for classy and dignified gentlemen. A warning label reads \"Warning: Do not fill with flammable materials.\""//<<< i'd vape to that. - icon = 'icons/obj/clothing/masks.dmi' - icon_state = "red_vape" + icon_state = "vape" + worn_icon_state = "vape_worn" + greyscale_config = /datum/greyscale_config/vape + greyscale_config_worn = /datum/greyscale_config/vape/worn + greyscale_colors = "#2e2e2e" inhand_icon_state = null w_class = WEIGHT_CLASS_TINY + flags_1 = IS_PLAYER_COLORABLE_1 /// The capacity of the vape. var/chem_volume = 100 @@ -926,14 +930,10 @@ CIGARETTE PACKETS ARE IN FANCY.DM /// Whether the vape has been overloaded to spread smoke. var/super = FALSE -/obj/item/clothing/mask/vape/Initialize(mapload, param_color) +/obj/item/clothing/mask/vape/Initialize(mapload) . = ..() create_reagents(chem_volume, NO_REACT) reagents.add_reagent(/datum/reagent/drug/nicotine, 50) - if(!param_color) - param_color = pick("red","blue","black","white","green","purple","yellow","orange") - icon_state = "[param_color]_vape" - inhand_icon_state = "[param_color]_vape" /obj/item/clothing/mask/vape/suicide_act(mob/user) user.visible_message(span_suicide("[user] is puffin hard on dat vape, [user.p_they()] trying to join the vape life on a whole notha plane!"))//it doesn't give you cancer, it is cancer @@ -945,30 +945,34 @@ CIGARETTE PACKETS ARE IN FANCY.DM to_chat(user, span_notice("You open the cap on [src].")) reagents.flags |= OPENCONTAINER if(obj_flags & EMAGGED) - add_overlay("vapeopen_high") + icon_state = "vape_open_high" + set_greyscale(new_config = /datum/greyscale_config/vape/open_high) else if(super) - add_overlay("vapeopen_med") + icon_state = "vape_open_med" + set_greyscale(new_config = /datum/greyscale_config/vape/open_med) else - add_overlay("vapeopen_low") + icon_state = "vape_open_low" + set_greyscale(new_config = /datum/greyscale_config/vape/open_low) else screw = FALSE to_chat(user, span_notice("You close the cap on [src].")) reagents.flags &= ~(OPENCONTAINER) - cut_overlays() + icon_state = initial(icon_state) + set_greyscale(new_config = initial(greyscale_config)) /obj/item/clothing/mask/vape/multitool_act(mob/living/user, obj/item/tool) . = TRUE if(screw && !(obj_flags & EMAGGED))//also kinky if(!super) - cut_overlays() super = TRUE to_chat(user, span_notice("You increase the voltage of [src].")) - add_overlay("vapeopen_med") + icon_state = "vape_open_med" + set_greyscale(new_config = /datum/greyscale_config/vape/open_med) else - cut_overlays() super = FALSE to_chat(user, span_notice("You decrease the voltage of [src].")) - add_overlay("vapeopen_low") + icon_state = "vape_open_low" + set_greyscale(new_config = /datum/greyscale_config/vape/open_low) if(screw && (obj_flags & EMAGGED)) to_chat(user, span_warning("[src] can't be modified!")) @@ -976,11 +980,11 @@ CIGARETTE PACKETS ARE IN FANCY.DM /obj/item/clothing/mask/vape/emag_act(mob/user)// I WON'T REGRET WRITTING THIS, SURLY. if(screw) if(!(obj_flags & EMAGGED)) - cut_overlays() obj_flags |= EMAGGED super = FALSE to_chat(user, span_warning("You maximize the voltage of [src].")) - add_overlay("vapeopen_high") + icon_state = "vape_open_high" + set_greyscale(new_config = /datum/greyscale_config/vape/open_high) var/datum/effect_system/spark_spread/sp = new /datum/effect_system/spark_spread //for effect sp.set_up(5, 1, src) sp.start() @@ -1074,3 +1078,35 @@ CIGARETTE PACKETS ARE IN FANCY.DM puff.start() handle_reagents() + +/obj/item/clothing/mask/vape/red + greyscale_colors = "#A02525" + flags_1 = NONE + +/obj/item/clothing/mask/vape/blue + greyscale_colors = "#294A98" + flags_1 = NONE + +/obj/item/clothing/mask/vape/purple + greyscale_colors = "#9900CC" + flags_1 = NONE + +/obj/item/clothing/mask/vape/green + greyscale_colors = "#3D9829" + flags_1 = NONE + +/obj/item/clothing/mask/vape/yellow + greyscale_colors = "#DAC20E" + flags_1 = NONE + +/obj/item/clothing/mask/vape/orange + greyscale_colors = "#da930e" + flags_1 = NONE + +/obj/item/clothing/mask/vape/black + greyscale_colors = "#2e2e2e" + flags_1 = NONE + +/obj/item/clothing/mask/vape/white + greyscale_colors = "#DCDCDC" + flags_1 = NONE diff --git a/icons/mob/clothing/mask.dmi b/icons/mob/clothing/mask.dmi index 41f47a51a34..cb0ed57241f 100644 Binary files a/icons/mob/clothing/mask.dmi and b/icons/mob/clothing/mask.dmi differ diff --git a/icons/obj/clothing/masks.dmi b/icons/obj/clothing/masks.dmi index c4ffb726c65..53ce2527249 100644 Binary files a/icons/obj/clothing/masks.dmi and b/icons/obj/clothing/masks.dmi differ