Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

A DigitiGrade-A Update #516

Merged
merged 14 commits into from
Nov 23, 2023
2 changes: 2 additions & 0 deletions code/__DEFINES/inventory.dm
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,8 @@
#define CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON (1<<2)
///has a sprite for monkeys
#define CLOTHING_MONKEY_VARIATION (1<<3)
///Has a sprite for snouted heads specifically.
#define CLOTHING_SNOUTED_VARIATION (1<<4)

//flags for covering body parts
#define GLASSESCOVERSEYES (1<<0)
Expand Down
11 changes: 8 additions & 3 deletions code/__DEFINES/species_clothing_paths.dm
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,13 @@

//DIGITIGRADE PATHS
///The dmi containing digitigrade uniforms
#define DIGITIGRADE_UNIFORM_FILE 'icons/mob/species/misc/digitigrade.dmi'
#define DIGITIGRADE_UNIFORM_FILE 'monkestation/icons/mob/species/misc/uniform_digi.dmi'
///The dmi containing digitigrade shoes
#define DIGITIGRADE_SHOES_FILE 'icons/mob/species/misc/digitigrade_shoes.dmi'
#define DIGITIGRADE_SHOES_FILE 'monkestation/icons/mob/species/misc/feet_digi.dmi'
///The dmi containing digitigrade oversuits
#define DIGITIGRADE_SUIT_FILE 'icons/mob/species/misc/digitigrade_suits.dmi'
#define DIGITIGRADE_SUIT_FILE 'monkestation/icons/mob/species/misc/suit_digi.dmi'

///The dmi containing snouted variation masks
#define SNOUTED_MASK_FILE 'monkestation/icons/mob/species/misc/mask_muzzled.dmi'
///The dmi containing snouted variation helmets
#define SNOUTED_HEAD_FILE 'monkestation/icons/mob/species/misc/head_muzzled.dmi'
1 change: 1 addition & 0 deletions code/_globalvars/bitfields.dm
Original file line number Diff line number Diff line change
Expand Up @@ -386,6 +386,7 @@ DEFINE_BITFIELD(bodytype, list(
"BODYTYPE_ROBOTIC" = BODYTYPE_ROBOTIC,
"BODYTYPE_SNOUTED" = BODYTYPE_SNOUTED,
"BODYTYPE_CUSTOM" = BODYTYPE_CUSTOM,
"BODYTYPE_SNOUTED" = BODYTYPE_SNOUTED,
))

DEFINE_BITFIELD(bodypart_flags, list(
Expand Down
2 changes: 2 additions & 0 deletions code/_globalvars/lists/flavor_misc.dm
Original file line number Diff line number Diff line change
Expand Up @@ -241,6 +241,8 @@ GLOBAL_LIST_INIT(backpacklist, list(

//Female Uniforms
GLOBAL_LIST_EMPTY(female_clothing_icons)
//Auto-generated 'fallback' clothing icons
GLOBAL_LIST_EMPTY(fallback_clothing_icons)

GLOBAL_LIST_INIT(scarySounds, list(
'sound/effects/footstep/clownstep1.ogg',
Expand Down
59 changes: 59 additions & 0 deletions code/datums/greyscale/config_types/greyscale_configs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1096,6 +1096,19 @@
name = "simian Hardsuit"
json_config = 'code/datums/greyscale/json_configs/simian_fallbacks/hardsuit.json'

/datum/greyscale_config/lizard
name = "lizard Clothing"
icon_file = 'monkestation/icons/mob/gags/clothing/lizard_fallbacks.dmi'
json_config = 'code/datums/greyscale/json_configs/lizard_fallbacks/shoes.json'

/datum/greyscale_config/lizard/shoes
name = "lizard Shoes"
json_config = 'code/datums/greyscale/json_configs/lizard_fallbacks/shoes.json'

/datum/greyscale_config/lizard/under
name = "lizard Under"
json_config = 'code/datums/greyscale/json_configs/lizard_fallbacks/under.json'


/datum/greyscale_config/polycloak
name = "cloak"
Expand Down Expand Up @@ -1141,3 +1154,49 @@
name = "Worn Fish Analyzer"
icon_file = 'icons/mob/clothing/belt.dmi'
json_config = 'code/datums/greyscale/json_configs/fish_analyzer_worn.json'

/*
* MASKS
*/

// BANDANAS

/datum/greyscale_config/bandana_worn/snouted
name = "Worn Bandana"
icon_file = SNOUTED_MASK_FILE

/datum/greyscale_config/bandstriped_worn/snouted
name = "Worn Striped Bandana"
icon_file = SNOUTED_MASK_FILE

/datum/greyscale_config/bandskull_worn/snouted
name = "Worn Skull Bandana"
icon_file = SNOUTED_MASK_FILE

/*
* SUITS
*/

// JUMPSUITS

/datum/greyscale_config/jumpsuit_worn/digitigrade
name = "Worn Jumpsuit - Digitigrade"
icon_file = DIGITIGRADE_UNIFORM_FILE

/datum/greyscale_config/jumpsuit_prison_worn/digitigrade
name = "Worn Prison Jumpsuit - Digitigrade"
icon_file = DIGITIGRADE_UNIFORM_FILE

/*
* SHOES
*/

// SNEAKERS

/datum/greyscale_config/sneakers_worn/digitigrade
name = "Worn Sneakers - Digitigrade"
icon_file = DIGITIGRADE_SHOES_FILE

/datum/greyscale_config/sneakers_orange_worn/digitigrade
name = "Worn Orange Sneakers - Digitigrade"
icon_file = DIGITIGRADE_SHOES_FILE
10 changes: 10 additions & 0 deletions code/datums/greyscale/json_configs/lizard_fallbacks/shoes.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"": [
{
"type": "icon_state",
"icon_state": "boots",
"blend_mode": "overlay",
"color_ids": [ 1 ]
}
]
}
16 changes: 16 additions & 0 deletions code/datums/greyscale/json_configs/lizard_fallbacks/under.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"": [
{
"type": "icon_state",
"icon_state": "jumpsuit",
"blend_mode": "overlay",
"color_ids": [ 1 ]
},
{
"type": "icon_state",
"icon_state": "jumpsuit_accessories",
"blend_mode": "overlay",
"color_ids": [ 2 ]
}
]
}
13 changes: 13 additions & 0 deletions code/game/objects/items.dm
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,15 @@
///The config type to use for greyscaled belt overlays. Both this and greyscale_colors must be assigned to work.
var/greyscale_config_belt

//Overrides for digitigrade and snouted clothing handling
//Icon file for mob worn overlays, if the user is digitigrade.
var/icon/worn_icon_digitigrade
//Same as above, but for if the user is snouted.
var/icon/worn_icon_snouted

var/greyscale_config_worn_digitigrade
var/greyscale_config_worn_snouted

/// Used for BODYTYPE_CUSTOM: Needs to follow this syntax: a list() with the x and y coordinates of the pixel you want to get the color from. Colors are filled in as GAGs values for fallback.
var/list/species_clothing_color_coords[3]
/* !!!!!!!!!!!!!!! IMPORTANT !!!!!!!!!!!!!!
Expand Down Expand Up @@ -363,6 +372,10 @@
return
if(greyscale_config_worn)
worn_icon = SSgreyscale.GetColoredIconByType(greyscale_config_worn, greyscale_colors)
if(greyscale_config_worn_digitigrade)
worn_icon_digitigrade = SSgreyscale.GetColoredIconByType(greyscale_config_worn_digitigrade, greyscale_colors)
if(greyscale_config_worn_snouted)
worn_icon_snouted = SSgreyscale.GetColoredIconByType(greyscale_config_worn_snouted, greyscale_colors)
if(greyscale_config_inhand_left)
lefthand_file = SSgreyscale.GetColoredIconByType(greyscale_config_inhand_left, greyscale_colors)
if(greyscale_config_inhand_right)
Expand Down
5 changes: 5 additions & 0 deletions code/game/objects/items/cigs_lighters.dm
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
body_parts_covered = null
grind_results = list()
heat = 1000
supports_variations_flags = CLOTHING_SNOUTED_VARIATION
throw_verb = "flick"
/// Whether this cigarette has been lit.
var/lit = FALSE
Expand Down Expand Up @@ -468,6 +469,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
chem_volume = 50
list_reagents = null
choke_time_max = 40 SECONDS
supports_variations_flags = CLOTHING_SNOUTED_VARIATION

/obj/item/clothing/mask/cigarette/rollie/Initialize(mapload)
name = pick(list(
Expand Down Expand Up @@ -587,6 +589,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
smoketime = 20 MINUTES
chem_volume = 80
list_reagents = list(/datum/reagent/drug/nicotine = 40)
supports_variations_flags = CLOTHING_SNOUTED_VARIATION

/obj/item/clothing/mask/cigarette/cigar/havana
name = "premium Havanian cigar"
Expand All @@ -597,6 +600,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
smoketime = 30 MINUTES
chem_volume = 60
list_reagents = list(/datum/reagent/drug/nicotine = 45)
supports_variations_flags = CLOTHING_SNOUTED_VARIATION

/obj/item/cigbutt
name = "cigarette butt"
Expand Down Expand Up @@ -629,6 +633,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
list_reagents = null
w_class = WEIGHT_CLASS_SMALL
choke_forever = TRUE
supports_variations_flags = CLOTHING_SNOUTED_VARIATION
///name of the stuff packed inside this pipe
var/packeditem

Expand Down
2 changes: 1 addition & 1 deletion code/modules/client/preferences/species_features/lizard.dm
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
/datum/preference/choiced/lizard_body_markings/init_possible_values()
var/list/values = list()

var/icon/lizard = icon('icons/mob/species/lizard/bodyparts.dmi', "lizard_chest_m")
var/icon/lizard = icon('icons/mob/species/lizard/bodyparts.dmi', "lizard_chest")

for (var/name in GLOB.body_markings_list)
var/datum/sprite_accessory/sprite_accessory = GLOB.body_markings_list[name]
Expand Down
1 change: 1 addition & 0 deletions code/modules/clothing/chameleon.dm
Original file line number Diff line number Diff line change
Expand Up @@ -607,6 +607,7 @@
flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDEFACIALHAIR|HIDESNOUT
flags_cover = MASKCOVERSEYES | MASKCOVERSMOUTH
w_class = WEIGHT_CLASS_SMALL
supports_variations_flags = CLOTHING_SNOUTED_VARIATION

var/voice_change = 1 ///This determines if the voice changer is on or off.

Expand Down
5 changes: 3 additions & 2 deletions code/modules/clothing/head/helmet.dm
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
clothing_flags = SNUG_FIT | PLASMAMAN_HELMET_EXEMPT
flags_cover = HEADCOVERSEYES
flags_inv = HIDEHAIR
supports_variations_flags = CLOTHING_SNOUTED_VARIATION

dog_fashion = /datum/dog_fashion/head/helmet

Expand Down Expand Up @@ -173,10 +174,10 @@
toggle_message = "You pull the visor down on"
alt_toggle_message = "You push the visor up on"
armor_type = /datum/armor/toggleable_riot
flags_inv = HIDEEARS|HIDEFACE|HIDESNOUT
flags_inv = HIDEEARS|HIDEFACE
strip_delay = 80
actions_types = list(/datum/action/item_action/toggle)
visor_flags_inv = HIDEFACE|HIDESNOUT
visor_flags_inv = HIDEFACE
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF
visor_flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF

Expand Down
5 changes: 3 additions & 2 deletions code/modules/clothing/head/welding.dm
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,13 @@
flash_protect = FLASH_PROTECTION_WELDER
tint = 2
armor_type = /datum/armor/utility_welding
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDESNOUT
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE
actions_types = list(/datum/action/item_action/toggle)
visor_flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDESNOUT
visor_flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE
visor_flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF
resistance_flags = FIRE_PROOF
clothing_flags = SNUG_FIT | PLASMAMAN_HELMET_EXEMPT
supports_variations_flags = CLOTHING_SNOUTED_VARIATION

/datum/armor/utility_welding
melee = 10
Expand Down
1 change: 1 addition & 0 deletions code/modules/clothing/masks/_masks.dm
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
slot_flags = ITEM_SLOT_MASK
strip_delay = 40
equip_delay_other = 40
supports_variations_flags = CLOTHING_SNOUTED_VARIATION
var/modifies_speech = FALSE
var/mask_adjusted = FALSE
var/adjusted_flags = null
Expand Down
8 changes: 6 additions & 2 deletions code/modules/clothing/masks/bandana.dm
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,11 @@
worn_icon_state = "bandana_worn"
greyscale_config = /datum/greyscale_config/bandana
greyscale_config_worn = /datum/greyscale_config/bandana_worn
greyscale_config_worn_snouted = /datum/greyscale_config/bandana_worn/snouted
greyscale_config_inhand_left = /datum/greyscale_config/bandana_inhands_left
greyscale_config_inhand_right = /datum/greyscale_config/bandana_inhands_right
greyscale_colors = "#2e2e2e"
supports_variations_flags = CLOTHING_SNOUTED_VARIATION

/obj/item/clothing/mask/bandana/attack_self(mob/user)
if(slot_flags & ITEM_SLOT_NECK)
Expand Down Expand Up @@ -51,8 +53,8 @@
else if(!user.is_holding(src))
to_chat(user, span_warning("You must be holding [src] in order to tie it!"))
return


if(slot_flags & ITEM_SLOT_MASK)
undyeable = TRUE
slot_flags = ITEM_SLOT_NECK
Expand Down Expand Up @@ -131,6 +133,7 @@
worn_icon_state = "bandstriped_worn"
greyscale_config = /datum/greyscale_config/bandstriped
greyscale_config_worn = /datum/greyscale_config/bandstriped_worn
greyscale_config_worn_snouted = /datum/greyscale_config/bandstriped_worn/snouted
greyscale_config_inhand_left = /datum/greyscale_config/bandana_striped_inhands_left
greyscale_config_inhand_right = /datum/greyscale_config/bandana_striped_inhands_right
greyscale_colors = "#2e2e2e#C6C6C6"
Expand Down Expand Up @@ -185,6 +188,7 @@
worn_icon_state = "bandskull_worn"
greyscale_config = /datum/greyscale_config/bandskull
greyscale_config_worn = /datum/greyscale_config/bandskull_worn
greyscale_config_worn_snouted = /datum/greyscale_config/bandskull_worn/snouted
greyscale_config_inhand_left = /datum/greyscale_config/bandana_skull_inhands_left
greyscale_config_inhand_right = /datum/greyscale_config/bandana_skull_inhands_right
greyscale_colors = "#2e2e2e#C6C6C6"
Expand Down
1 change: 1 addition & 0 deletions code/modules/clothing/masks/breath.dm
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
flags_cover = MASKCOVERSMOUTH
visor_flags_cover = MASKCOVERSMOUTH
resistance_flags = NONE
supports_variations_flags = CLOTHING_SNOUTED_VARIATION

/datum/armor/mask_breath
bio = 50
Expand Down
1 change: 1 addition & 0 deletions code/modules/clothing/masks/costume.dm
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
icon_state = "joy"
clothing_flags = MASKINTERNALS
flags_inv = HIDESNOUT
supports_variations_flags = CLOTHING_SNOUTED_VARIATION
unique_reskin = list(
"Joy" = "joy",
"Flushed" = "flushed",
Expand Down
1 change: 1 addition & 0 deletions code/modules/clothing/masks/gasmask.dm
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ GLOBAL_LIST_INIT(clown_mask_options, list(
armor_type = /datum/armor/mask_gas
flags_cover = MASKCOVERSEYES | MASKCOVERSMOUTH | PEPPERPROOF
resistance_flags = NONE
supports_variations_flags = CLOTHING_SNOUTED_VARIATION
///Max numbers of installable filters
var/max_filters = 1
///List to keep track of each filter
Expand Down
4 changes: 3 additions & 1 deletion code/modules/clothing/masks/hailer.dm
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ GLOBAL_LIST_INIT(hailer_phrases, list(
tint = 0
has_fov = FALSE
COOLDOWN_DECLARE(hailer_cooldown)
supports_variations_flags = CLOTHING_SNOUTED_VARIATION
var/aggressiveness = AGGR_BAD_COP
var/overuse_cooldown = FALSE
var/recent_uses = 0
Expand All @@ -79,6 +80,7 @@ GLOBAL_LIST_INIT(hailer_phrases, list(
flags_cover = MASKCOVERSMOUTH | MASKCOVERSEYES | PEPPERPROOF
visor_flags_cover = MASKCOVERSMOUTH | MASKCOVERSEYES | PEPPERPROOF
has_fov = TRUE
supports_variations_flags = CLOTHING_SNOUTED_VARIATION

/obj/item/clothing/mask/gas/sechailer/swat/spacepol
name = "spacepol mask"
Expand Down Expand Up @@ -216,7 +218,7 @@ GLOBAL_LIST_INIT(hailer_phrases, list(
COOLDOWN_DECLARE(horn_cooldown)

/obj/item/clothing/mask/party_horn/ui_action_click(mob/user, action)
if(!COOLDOWN_FINISHED(src, horn_cooldown))
if(!COOLDOWN_FINISHED(src, horn_cooldown))
return
COOLDOWN_START(src, horn_cooldown, 10 SECONDS)
playsound(src, 'sound/items/party_horn.ogg', 75, FALSE)
Expand Down
1 change: 1 addition & 0 deletions code/modules/clothing/masks/surgical.dm
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
visor_flags_cover = MASKCOVERSMOUTH
armor_type = /datum/armor/mask_surgical
actions_types = list(/datum/action/item_action/adjust)
supports_variations_flags = CLOTHING_SNOUTED_VARIATION

/datum/armor/mask_surgical
bio = 100
Expand Down
1 change: 1 addition & 0 deletions code/modules/clothing/shoes/_shoes.dm
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

body_parts_covered = FEET
slot_flags = ITEM_SLOT_FEET
supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION

armor_type = /datum/armor/clothing_shoes
slowdown = SHOES_SLOWDOWN
Expand Down
2 changes: 2 additions & 0 deletions code/modules/clothing/shoes/sneakers.dm
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
greyscale_colors = "#2d2d33#ffffff"
greyscale_config = /datum/greyscale_config/sneakers
greyscale_config_worn = /datum/greyscale_config/sneakers_worn
greyscale_config_worn_digitigrade = /datum/greyscale_config/sneakers_worn/digitigrade
greyscale_config_inhand_left = /datum/greyscale_config/sneakers_inhand_left
greyscale_config_inhand_right = /datum/greyscale_config/sneakers_inhand_right
flags_1 = IS_PLAYER_COLORABLE_1
Expand Down Expand Up @@ -81,6 +82,7 @@
greyscale_colors = "#d15b1b#ffffff"
greyscale_config = /datum/greyscale_config/sneakers_orange
greyscale_config_worn = /datum/greyscale_config/sneakers_orange_worn
greyscale_config_worn_digitigrade = /datum/greyscale_config/sneakers_orange_worn/digitigrade
greyscale_config_inhand_left = /datum/greyscale_config/sneakers_orange_inhand_left
greyscale_config_inhand_right = /datum/greyscale_config/sneakers_orange_inhand_right
flags_1 = NONE
Expand Down
1 change: 1 addition & 0 deletions code/modules/clothing/suits/_suits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
var/blood_overlay_type = "suit"
limb_integrity = 0 // disabled for most exo-suits
var/suittoggled = FALSE // sec duster toggling and more
supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION

/obj/item/clothing/suit/Initialize(mapload)
. = ..()
Expand Down
Loading
Loading