mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-30 16:47:13 +01:00
565 lines
19 KiB
Plaintext
565 lines
19 KiB
Plaintext
/// Map of names of clown mask types to clown mask icon states
|
|
GLOBAL_LIST_INIT(clown_mask_options, list(
|
|
"True Form" = "clown",
|
|
"The Coquette" = "sexyclown",
|
|
"The Madman" = "joker",
|
|
"The Rainbow Color" = "rainbow",
|
|
"The Dealer" = "cards"
|
|
))
|
|
|
|
/obj/item/clothing/mask/gas
|
|
name = "gas mask"
|
|
desc = "A face-covering mask that can be connected to an air supply. Good for concealing your identity and with a filter slot to help remove those toxins." //More accurate
|
|
icon_state = "gas_alt"
|
|
clothing_flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS | GAS_FILTERING
|
|
flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDEFACIALHAIR|HIDESNOUT
|
|
w_class = WEIGHT_CLASS_NORMAL
|
|
inhand_icon_state = "gas_alt"
|
|
armor_type = /datum/armor/mask_gas
|
|
flags_cover = MASKCOVERSEYES | MASKCOVERSMOUTH | PEPPERPROOF
|
|
resistance_flags = NONE
|
|
voice_filter = "lowpass=f=750,volume=2"
|
|
sound_vary = TRUE
|
|
pickup_sound = SFX_GAS_MASK_PICKUP
|
|
drop_sound = SFX_GAS_MASK_DROP
|
|
equip_sound = SFX_GAS_MASK_EQUIP
|
|
///Max numbers of installable filters
|
|
var/max_filters = 1
|
|
///List to keep track of each filter
|
|
var/list/gas_filters
|
|
///Type of filter that spawns on roundstart
|
|
var/starting_filter_type = /obj/item/gas_filter
|
|
///Cigarette in the mask
|
|
var/obj/item/cigarette/cig
|
|
///How much does this mask affect fishing difficulty
|
|
var/fishing_modifier = 2
|
|
///Applies clothing_dirt component to the pepperproof mask if true
|
|
var/pepper_tint = TRUE
|
|
///icon_state used by clothing_dirt
|
|
var/dirt_state = "gas_dirt"
|
|
|
|
/datum/armor/mask_gas
|
|
bio = 100
|
|
|
|
/obj/item/clothing/mask/gas/Initialize(mapload)
|
|
. = ..()
|
|
|
|
if((flags_cover & PEPPERPROOF) && pepper_tint)
|
|
AddComponent(/datum/component/clothing_dirt, dirt_state)
|
|
|
|
if(fishing_modifier)
|
|
AddElement(/datum/element/adjust_fishing_difficulty, fishing_modifier)
|
|
|
|
if(!max_filters || !starting_filter_type)
|
|
return
|
|
|
|
for(var/i in 1 to max_filters)
|
|
var/obj/item/gas_filter/inserted_filter = new starting_filter_type(src)
|
|
LAZYADD(gas_filters, inserted_filter)
|
|
has_filter = TRUE
|
|
|
|
/obj/item/clothing/mask/gas/separate_worn_overlays(mutable_appearance/standing, mutable_appearance/draw_target, isinhands, icon_file)
|
|
. = ..()
|
|
if(!isinhands && cig)
|
|
. += cig.build_worn_icon(default_layer = FACEMASK_LAYER, default_icon_file = 'icons/mob/clothing/mask.dmi')
|
|
|
|
/obj/item/clothing/mask/gas/Destroy()
|
|
QDEL_LAZYLIST(gas_filters)
|
|
return..()
|
|
|
|
/obj/item/clothing/mask/gas/equipped(mob/equipee, slot)
|
|
cig?.equipped(equipee, slot)
|
|
return ..()
|
|
|
|
/obj/item/clothing/mask/gas/adjust_visor(mob/living/user)
|
|
if(!isnull(cig))
|
|
balloon_alert(user, "cig in the way!")
|
|
return FALSE
|
|
return ..()
|
|
|
|
/obj/item/clothing/mask/gas/examine(mob/user)
|
|
. = ..()
|
|
if(cig)
|
|
. += span_notice("There is a [cig.name] jammed into the filter slot.")
|
|
if(max_filters > 0 && !cig)
|
|
. += span_notice("[src] has [max_filters] slot\s for filters.")
|
|
if(LAZYLEN(gas_filters) > 0)
|
|
. += span_notice("Currently there [LAZYLEN(gas_filters) == 1 ? "is" : "are"] [LAZYLEN(gas_filters)] filter\s with [get_filter_durability()]% durability.")
|
|
. += span_notice("The filters can be removed by right-clicking with an empty hand on [src].")
|
|
|
|
/obj/item/clothing/mask/gas/Exited(atom/movable/gone)
|
|
. = ..()
|
|
if(gone == cig)
|
|
cig = null
|
|
if(ismob(loc))
|
|
var/mob/wearer = loc
|
|
wearer.update_worn_mask()
|
|
|
|
/obj/item/clothing/mask/gas/attackby(obj/item/tool, mob/user)
|
|
var/valid_wearer = ismob(loc)
|
|
var/mob/wearer = loc
|
|
if(istype(tool, /obj/item/cigarette))
|
|
|
|
if(max_filters <= 0 || cig)
|
|
balloon_alert(user, "can't hold that!")
|
|
return ..()
|
|
|
|
if(has_filter)
|
|
balloon_alert(user, "filters in the mask!")
|
|
return ..()
|
|
|
|
cig = tool
|
|
if(valid_wearer)
|
|
cig.equipped(loc, wearer.get_slot_by_item(cig))
|
|
|
|
cig.forceMove(src)
|
|
if(valid_wearer)
|
|
wearer.update_worn_mask()
|
|
return TRUE
|
|
|
|
if(cig)
|
|
var/cig_attackby = cig.attackby(tool, user)
|
|
if(valid_wearer)
|
|
wearer.update_worn_mask()
|
|
return cig_attackby
|
|
if(!istype(tool, /obj/item/gas_filter))
|
|
return ..()
|
|
if(LAZYLEN(gas_filters) >= max_filters)
|
|
return ..()
|
|
if(!user.transferItemToLoc(tool, src))
|
|
return ..()
|
|
LAZYADD(gas_filters, tool)
|
|
has_filter = TRUE
|
|
return TRUE
|
|
|
|
/obj/item/clothing/mask/gas/attack_hand_secondary(mob/user, list/modifiers)
|
|
if(cig)
|
|
user.put_in_hands(cig)
|
|
cig = null
|
|
if(ismob(loc))
|
|
var/mob/wearer = loc
|
|
wearer.update_worn_mask()
|
|
return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN
|
|
if(!has_filter || !max_filters)
|
|
return SECONDARY_ATTACK_CONTINUE_CHAIN
|
|
for(var/i in 1 to max_filters)
|
|
var/obj/item/gas_filter/filter = locate() in src
|
|
if(!filter)
|
|
continue
|
|
user.put_in_hands(filter)
|
|
LAZYREMOVE(gas_filters, filter)
|
|
if(LAZYLEN(gas_filters) <= 0)
|
|
has_filter = FALSE
|
|
return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN
|
|
|
|
///Check _masks.dm for this one
|
|
/obj/item/clothing/mask/gas/consume_filter(datum/gas_mixture/breath)
|
|
if(LAZYLEN(gas_filters) <= 0 || max_filters == 0)
|
|
return breath
|
|
var/obj/item/gas_filter/gas_filter = pick(gas_filters)
|
|
var/datum/gas_mixture/filtered_breath = gas_filter.reduce_filter_status(breath)
|
|
if(gas_filter.filter_status <= 0)
|
|
LAZYREMOVE(gas_filters, gas_filter)
|
|
qdel(gas_filter)
|
|
if(LAZYLEN(gas_filters) <= 0)
|
|
has_filter = FALSE
|
|
return filtered_breath
|
|
|
|
/**
|
|
* Getter for overall filter durability, takes into consideration all filters filter_status
|
|
*/
|
|
/obj/item/clothing/mask/gas/proc/get_filter_durability()
|
|
var/max_filters_durability = LAZYLEN(gas_filters) * 100
|
|
var/current_filters_durability
|
|
for(var/obj/item/gas_filter/gas_filter as anything in gas_filters)
|
|
current_filters_durability += gas_filter.filter_status
|
|
var/durability = (current_filters_durability / max_filters_durability) * 100
|
|
return durability
|
|
|
|
/obj/item/clothing/mask/gas/atmos
|
|
name = "atmospheric gas mask"
|
|
desc = "Improved gas mask utilized by atmospheric technicians. It's flameproof!"
|
|
icon_state = "gas_atmos"
|
|
inhand_icon_state = "gas_atmos"
|
|
armor_type = /datum/armor/gas_atmos
|
|
resistance_flags = FIRE_PROOF
|
|
max_filters = 3
|
|
|
|
/datum/armor/gas_atmos
|
|
bio = 100
|
|
fire = 20
|
|
acid = 10
|
|
|
|
/obj/item/clothing/mask/gas/atmos/plasmaman
|
|
starting_filter_type = /obj/item/gas_filter/plasmaman
|
|
|
|
/obj/item/clothing/mask/gas/atmos/captain
|
|
name = "captain's gas mask"
|
|
desc = "Nanotrasen cut corners and repainted a spare atmospheric gas mask, but don't tell anyone."
|
|
icon_state = "gas_cap"
|
|
inhand_icon_state = "gasmask_captain"
|
|
resistance_flags = FIRE_PROOF | ACID_PROOF
|
|
|
|
/obj/item/clothing/mask/gas/atmos/centcom
|
|
name = "\improper CentCom gas mask"
|
|
desc = "Oooh, gold and green. Fancy! This should help as you sit in your office."
|
|
icon = 'icons/obj/clothing/masks.dmi'
|
|
worn_icon = 'icons/mob/clothing/mask.dmi'
|
|
worn_icon_state = "gas_centcom"
|
|
icon_state = "gas_centcom"
|
|
inhand_icon_state = "gas_centcom"
|
|
resistance_flags = FIRE_PROOF | ACID_PROOF
|
|
|
|
// **** Welding gas mask ****
|
|
|
|
/obj/item/clothing/mask/gas/welding
|
|
name = "welding mask"
|
|
desc = "A gas mask with built-in welding goggles and a face shield. Looks like a skull - clearly designed by a nerd."
|
|
icon_state = "weldingmask"
|
|
flash_protect = FLASH_PROTECTION_WELDER
|
|
custom_materials = list(/datum/material/iron=SHEET_MATERIAL_AMOUNT*2, /datum/material/glass=SHEET_MATERIAL_AMOUNT)
|
|
tint = 2
|
|
toggle_message = "You pull the visor down."
|
|
alt_toggle_message = "You push the visor up."
|
|
armor_type = /datum/armor/gas_welding
|
|
actions_types = list(/datum/action/item_action/toggle)
|
|
flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDESNOUT
|
|
flags_cover = MASKCOVERSEYES|MASKCOVERSMOUTH|PEPPERPROOF
|
|
visor_flags_inv = HIDEEYES
|
|
visor_flags_cover = MASKCOVERSEYES|MASKCOVERSMOUTH|PEPPERPROOF
|
|
visor_vars_to_toggle = VISOR_FLASHPROTECT | VISOR_TINT
|
|
resistance_flags = FIRE_PROOF
|
|
clothing_flags = parent_type::clothing_flags | INTERNALS_ADJUST_EXEMPT
|
|
fishing_modifier = 8
|
|
dirt_state = "welding_dirt"
|
|
|
|
/datum/armor/gas_welding
|
|
melee = 10
|
|
bio = 100
|
|
fire = 100
|
|
acid = 55
|
|
|
|
/obj/item/clothing/mask/gas/welding/attack_self(mob/user)
|
|
adjust_visor(user)
|
|
|
|
/obj/item/clothing/mask/gas/welding/adjust_visor(mob/living/user)
|
|
. = ..()
|
|
if(.)
|
|
playsound(src, up ? SFX_VISOR_UP : SFX_VISOR_DOWN, 50, TRUE)
|
|
if(!fishing_modifier)
|
|
return
|
|
if(up)
|
|
RemoveElement(/datum/element/adjust_fishing_difficulty)
|
|
else
|
|
AddElement(/datum/element/adjust_fishing_difficulty, fishing_modifier)
|
|
|
|
/obj/item/clothing/mask/gas/welding/update_icon_state()
|
|
. = ..()
|
|
icon_state = "[initial(icon_state)][up ? "up" : ""]"
|
|
|
|
/obj/item/clothing/mask/gas/welding/up/Initialize(mapload)
|
|
. = ..()
|
|
visor_toggling()
|
|
|
|
// ********************************************************************
|
|
|
|
//Plague Dr suit can be found in clothing/suits/bio.dm
|
|
/obj/item/clothing/mask/gas/plaguedoctor
|
|
name = "plague doctor mask"
|
|
desc = "A modernised version of the classic design, this mask will not only protect you from exposure to the Pestilence but it can also be connected to an air supply."
|
|
icon_state = "plaguedoctor"
|
|
flags_inv = HIDEEYES|HIDEFACE|HIDEFACIALHAIR|HIDESNOUT
|
|
inhand_icon_state = "gas_mask"
|
|
clothing_flags = BLOCK_GAS_SMOKE_EFFECT|MASKINTERNALS
|
|
dirt_state = "plague_dirt"
|
|
|
|
/obj/item/clothing/mask/gas/syndicate
|
|
name = "syndicate mask"
|
|
desc = "A close-fitting tactical mask that can be connected to an air supply."
|
|
icon_state = "syndicate"
|
|
inhand_icon_state = "syndicate_gasmask"
|
|
resistance_flags = FIRE_PROOF | ACID_PROOF
|
|
strip_delay = 6 SECONDS
|
|
w_class = WEIGHT_CLASS_SMALL
|
|
fishing_modifier = 0
|
|
pepper_tint = FALSE
|
|
|
|
/obj/item/clothing/mask/gas/syndicate/plasmaman
|
|
starting_filter_type = /obj/item/gas_filter/plasmaman
|
|
|
|
/obj/item/clothing/mask/gas/syndicate/cybersun
|
|
name = "\improper Cybersun mask"
|
|
desc = "It's really more about making a statement than protecting you from environmental hazards."
|
|
icon_state = "cybersun"
|
|
flags_cover = MASKCOVERSMOUTH
|
|
flags_inv = HIDEFACE|HIDEFACIALHAIR|HIDESNOUT
|
|
visor_flags_inv = HIDEFACE|HIDEFACIALHAIR|HIDESNOUT
|
|
visor_flags_cover = MASKCOVERSMOUTH
|
|
alternate_worn_layer = BENEATH_HAIR_LAYER
|
|
|
|
/obj/item/clothing/mask/gas/clown_hat
|
|
name = "clown wig and mask"
|
|
desc = "A true prankster's facial attire. A clown is incomplete without his wig and mask."
|
|
clothing_flags = MASKINTERNALS
|
|
icon_state = "clown"
|
|
inhand_icon_state = "clown_hat"
|
|
lefthand_file = 'icons/mob/inhands/clothing/hats_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/clothing/hats_righthand.dmi'
|
|
dye_color = DYE_CLOWN
|
|
w_class = WEIGHT_CLASS_SMALL
|
|
flags_cover = MASKCOVERSEYES
|
|
clothing_traits = list(TRAIT_PERCEIVED_AS_CLOWN)
|
|
resistance_flags = FLAMMABLE
|
|
actions_types = list(/datum/action/item_action/adjust_style)
|
|
dog_fashion = /datum/dog_fashion/head/clown
|
|
var/list/clownmask_designs = list()
|
|
voice_filter = null // performer masks expect to be talked through
|
|
fishing_modifier = 0
|
|
|
|
/obj/item/clothing/mask/gas/clown_hat/plasmaman
|
|
starting_filter_type = /obj/item/gas_filter/plasmaman
|
|
|
|
/obj/item/clothing/mask/gas/clown_hat/Initialize(mapload)
|
|
.=..()
|
|
clownmask_designs = list(
|
|
"True Form" = image(icon = src.icon, icon_state = "clown"),
|
|
"The Coquette" = image(icon = src.icon, icon_state = "sexyclown"),
|
|
"The Madman" = image(icon = src.icon, icon_state = "joker"),
|
|
"The Rainbow Color" = image(icon = src.icon, icon_state = "rainbow"),
|
|
"The Dealer" = image(icon = src.icon, icon_state = "cards"),
|
|
)
|
|
AddElement(/datum/element/swabable, CELL_LINE_TABLE_CLOWN, CELL_VIRUS_TABLE_GENERIC, rand(2,3), 0)
|
|
|
|
/obj/item/clothing/mask/gas/clown_hat/ui_action_click(mob/user)
|
|
if(!istype(user) || user.incapacitated)
|
|
return
|
|
|
|
var/choice = show_radial_menu(user,src, clownmask_designs, custom_check = FALSE, radius = 36, require_near = TRUE)
|
|
if(!choice)
|
|
return FALSE
|
|
|
|
if(src && choice && !user.incapacitated && in_range(user,src))
|
|
var/list/options = GLOB.clown_mask_options
|
|
icon_state = options[choice]
|
|
user.update_worn_mask()
|
|
update_item_action_buttons()
|
|
to_chat(user, span_notice("Your Clown Mask has now morphed into [choice], all praise the Honkmother!"))
|
|
return TRUE
|
|
|
|
/obj/item/clothing/mask/gas/sexyclown
|
|
name = "sexy-clown wig and mask"
|
|
desc = "A feminine clown mask for the dabbling crossdressers or female entertainers."
|
|
clothing_flags = MASKINTERNALS
|
|
icon_state = "sexyclown"
|
|
inhand_icon_state = "sexyclown_hat"
|
|
lefthand_file = 'icons/mob/inhands/clothing/hats_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/clothing/hats_righthand.dmi'
|
|
flags_cover = MASKCOVERSEYES
|
|
resistance_flags = FLAMMABLE
|
|
fishing_modifier = 0
|
|
|
|
/obj/item/clothing/mask/gas/jonkler
|
|
name = "gamer's wig and mask"
|
|
desc = "But I am a gamer, and no man; A reproach of men, and despised by the people."
|
|
clothing_flags = MASKINTERNALS
|
|
icon_state = "jonkler"
|
|
inhand_icon_state = null
|
|
flags_cover = MASKCOVERSEYES
|
|
resistance_flags = FLAMMABLE
|
|
|
|
/obj/item/clothing/mask/gas/mime
|
|
name = "mime mask"
|
|
desc = "The traditional mime's mask. It has an eerie facial posture."
|
|
clothing_flags = MASKINTERNALS
|
|
icon_state = "mime"
|
|
inhand_icon_state = null
|
|
w_class = WEIGHT_CLASS_SMALL
|
|
flags_cover = MASKCOVERSEYES
|
|
resistance_flags = FLAMMABLE
|
|
actions_types = list(/datum/action/item_action/adjust_style)
|
|
species_exception = list(/datum/species/golem)
|
|
fishing_modifier = 0
|
|
var/list/mimemask_designs = list()
|
|
|
|
/obj/item/clothing/mask/gas/mime/plasmaman
|
|
starting_filter_type = /obj/item/gas_filter/plasmaman
|
|
|
|
/obj/item/clothing/mask/gas/mime/Initialize(mapload)
|
|
.=..()
|
|
mimemask_designs = list(
|
|
"Blanc" = image(icon = src.icon, icon_state = "mime"),
|
|
"Excité" = image(icon = src.icon, icon_state = "sexymime"),
|
|
"Triste" = image(icon = src.icon, icon_state = "sadmime"),
|
|
"Effrayé" = image(icon = src.icon, icon_state = "scaredmime")
|
|
)
|
|
|
|
/obj/item/clothing/mask/gas/mime/ui_action_click(mob/user)
|
|
if(!istype(user) || user.incapacitated)
|
|
return
|
|
|
|
var/list/options = list()
|
|
options["Blanc"] = "mime"
|
|
options["Triste"] = "sadmime"
|
|
options["Effrayé"] = "scaredmime"
|
|
options["Excité"] ="sexymime"
|
|
|
|
var/choice = show_radial_menu(user,src, mimemask_designs, custom_check = FALSE, radius = 36, require_near = TRUE)
|
|
if(!choice)
|
|
return FALSE
|
|
|
|
if(src && choice && !user.incapacitated && in_range(user,src))
|
|
// SKYRAT EDIT ADDITION START - More mask variations
|
|
var/mob/living/carbon/human/human_user = user
|
|
if(human_user.dna.species.mutant_bodyparts[FEATURE_SNOUT])
|
|
icon = 'modular_skyrat/master_files/icons/obj/clothing/masks.dmi'
|
|
worn_icon = 'modular_skyrat/master_files/icons/mob/clothing/mask_muzzled.dmi'
|
|
var/list/avian_snouts = list("Beak", "Big Beak", "Corvid Beak")
|
|
if(human_user.dna.species.mutant_bodyparts[FEATURE_SNOUT][MUTANT_INDEX_NAME] in avian_snouts)
|
|
icon_state = "[options[choice]]_b"
|
|
else
|
|
icon = 'icons/obj/clothing/masks.dmi'
|
|
worn_icon = 'icons/mob/clothing/mask.dmi'
|
|
icon_state = options[choice]
|
|
/* SKYRAT EDIT ADDITION END
|
|
icon_state = options[choice]
|
|
*/
|
|
user.update_worn_mask()
|
|
update_item_action_buttons()
|
|
to_chat(user, span_notice("Your Mime Mask has now morphed into [choice]!"))
|
|
return TRUE
|
|
|
|
/obj/item/clothing/mask/gas/monkeymask
|
|
name = "monkey mask"
|
|
desc = "A mask used when acting as a monkey."
|
|
clothing_flags = MASKINTERNALS
|
|
icon_state = "monkeymask"
|
|
inhand_icon_state = "owl_mask"
|
|
flags_cover = MASKCOVERSEYES
|
|
resistance_flags = FLAMMABLE
|
|
fishing_modifier = 0
|
|
|
|
/obj/item/clothing/mask/gas/sexymime
|
|
name = "sexy mime mask"
|
|
desc = "A traditional female mime's mask."
|
|
clothing_flags = MASKINTERNALS
|
|
icon_state = "sexymime"
|
|
inhand_icon_state = null
|
|
flags_cover = MASKCOVERSEYES
|
|
resistance_flags = FLAMMABLE
|
|
species_exception = list(/datum/species/golem)
|
|
fishing_modifier = 0
|
|
|
|
/obj/item/clothing/mask/gas/cyborg
|
|
name = "cyborg visor"
|
|
desc = "Beep boop."
|
|
icon_state = "death"
|
|
resistance_flags = FLAMMABLE
|
|
flags_cover = MASKCOVERSEYES
|
|
fishing_modifier = 0
|
|
|
|
/obj/item/clothing/mask/gas/owl_mask
|
|
name = "owl mask"
|
|
desc = "Twoooo!"
|
|
icon_state = "owl"
|
|
inhand_icon_state = "owl_mask"
|
|
clothing_flags = MASKINTERNALS
|
|
flags_cover = MASKCOVERSEYES
|
|
resistance_flags = FLAMMABLE
|
|
fishing_modifier = -2
|
|
|
|
/obj/item/clothing/mask/gas/carp
|
|
name = "carp mask"
|
|
desc = "Gnash gnash."
|
|
icon_state = "carp_mask"
|
|
inhand_icon_state = null
|
|
flags_cover = MASKCOVERSEYES
|
|
clothing_flags = MASKINTERNALS | CARP_STYLE_FACTOR
|
|
fishing_modifier = -4
|
|
|
|
/obj/item/clothing/mask/gas/tiki_mask
|
|
name = "tiki mask"
|
|
desc = "A creepy wooden mask. Surprisingly expressive for a poorly carved bit of wood."
|
|
icon_state = "tiki_eyebrow"
|
|
inhand_icon_state = null
|
|
custom_materials = list(/datum/material/wood = SHEET_MATERIAL_AMOUNT * 2)
|
|
resistance_flags = FLAMMABLE
|
|
flags_cover = MASKCOVERSEYES
|
|
max_integrity = 100
|
|
actions_types = list(/datum/action/item_action/adjust_style)
|
|
dog_fashion = null
|
|
fishing_modifier = -4
|
|
var/list/tikimask_designs = list()
|
|
|
|
/obj/item/clothing/mask/gas/tiki_mask/Initialize(mapload)
|
|
.=..()
|
|
tikimask_designs = list(
|
|
"Original Tiki" = image(icon = src.icon, icon_state = "tiki_eyebrow"),
|
|
"Happy Tiki" = image(icon = src.icon, icon_state = "tiki_happy"),
|
|
"Confused Tiki" = image(icon = src.icon, icon_state = "tiki_confused"),
|
|
"Angry Tiki" = image(icon = src.icon, icon_state = "tiki_angry")
|
|
)
|
|
|
|
/obj/item/clothing/mask/gas/tiki_mask/ui_action_click(mob/user)
|
|
var/mob/M = usr
|
|
var/list/options = list()
|
|
options["Original Tiki"] = "tiki_eyebrow"
|
|
options["Happy Tiki"] = "tiki_happy"
|
|
options["Confused Tiki"] = "tiki_confused"
|
|
options["Angry Tiki"] ="tiki_angry"
|
|
|
|
var/choice = show_radial_menu(user,src, tikimask_designs, custom_check = FALSE, radius = 36, require_near = TRUE)
|
|
if(!choice)
|
|
return FALSE
|
|
|
|
if(src && choice && !M.stat && in_range(M,src))
|
|
icon_state = options[choice]
|
|
user.update_worn_mask()
|
|
update_item_action_buttons()
|
|
to_chat(M, span_notice("The Tiki Mask has now changed into the [choice] Mask!"))
|
|
return 1
|
|
|
|
/obj/item/clothing/mask/gas/tiki_mask/yalp_elor
|
|
icon_state = "tiki_yalp"
|
|
actions_types = list()
|
|
|
|
/obj/item/clothing/mask/gas/hunter
|
|
name = "bounty hunting mask"
|
|
desc = "A custom tactical mask with decals added."
|
|
icon_state = "hunter"
|
|
inhand_icon_state = "gas_atmos"
|
|
resistance_flags = FIRE_PROOF | ACID_PROOF
|
|
flags_inv = HIDEFACIALHAIR|HIDEFACE|HIDEEYES|HIDEEARS|HIDEHAIR|HIDESNOUT
|
|
fishing_modifier = -4
|
|
dirt_state = null
|
|
|
|
/obj/item/clothing/mask/gas/prop
|
|
name = "prop gas mask"
|
|
desc = "A prop gas mask designed for appearance. Unlike a normal gas mask this does not filter gasses or protect against pepper spray."
|
|
icon_state = "gas_prop"
|
|
inhand_icon_state = "gas_prop"
|
|
clothing_flags = NONE
|
|
flags_cover = MASKCOVERSMOUTH
|
|
resistance_flags = FLAMMABLE
|
|
fishing_modifier = 0
|
|
|
|
/obj/item/clothing/mask/gas/atmosprop
|
|
name = "prop atmospheric gas mask"
|
|
desc = "A prop atmospheric gas mask designed for appearance. Unlike a normal atmospheric gas mask this does not filter gasses or protect against pepper spray."
|
|
worn_icon_state = "gas_prop_atmos"
|
|
icon_state = "gas_atmos"
|
|
inhand_icon_state = "gas_atmos"
|
|
clothing_flags = NONE
|
|
flags_cover = MASKCOVERSMOUTH
|
|
resistance_flags = FLAMMABLE
|
|
fishing_modifier = 0
|
|
|
|
/obj/item/clothing/mask/gas/driscoll
|
|
name = "driscoll mask"
|
|
desc = "Great for train hijackings. Works like a normal full face gas mask, but won't conceal your identity."
|
|
icon_state = "driscoll_mask"
|
|
flags_inv = HIDEFACIALHAIR
|
|
flags_cover = MASKCOVERSMOUTH
|
|
w_class = WEIGHT_CLASS_NORMAL
|
|
inhand_icon_state = null
|
|
fishing_modifier = 0
|