Skip to content

Commit

Permalink
Merge pull request #516 from KoboldCommando/Digitigrade-A
Browse files Browse the repository at this point in the history
A DigitiGrade-A Update
  • Loading branch information
dwasint authored Nov 23, 2023
2 parents 2ba42f3 + 64c7faa commit 0f7e1bf
Show file tree
Hide file tree
Showing 65 changed files with 393 additions and 89 deletions.
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

0 comments on commit 0f7e1bf

Please sign in to comment.