Adds automatic GAGS icon generation for mapping and the loadout menu (#90940)

## About The Pull Request

Revival of https://github.com/tgstation/tgstation/pull/86482, which is
even more doable now that we have rustg iconforge generation.

What this PR does:

- Sets up every single GAGS icon in the game to have their own preview
icon autogenerated during compile. This is configurable to not run
during live. The icons are created in `icons/map_icons/..`
- This also has the side effect of providing accurate GAGS icons for
things like the loadout menu. No more having to create your own
previews.


![FOuGL6ofxC](https://github.com/user-attachments/assets/e5414971-7f13-4883-9f7f-a8a212b46fe8)

<details><summary>Mappers rejoice!</summary>


![StrongDMM_1oeMSoRHXT](https://github.com/user-attachments/assets/83dcfe4c-31be-4953-98f3-dff90268bbc4)


![StrongDMM_uyqu3CggPn](https://github.com/user-attachments/assets/7896f99e-2656-40e1-a9da-3a513882365a)

</details>

<details><summary>Uses iconforge so it does not take up much time during
init</summary>


![dreamdaemon_u4Md3Dqwge](https://github.com/user-attachments/assets/17baaff8-5d5e-4a4d-ba8f-9dd548024155)

</details>

---

### Copied from https://github.com/tgstation/tgstation/pull/86482 as
this still applies:

Note for Spriters:

After you've assigned the correct values to vars, you must run the game
through init on your local machine and commit the changes to the map
icon dmi files. Unit tests should catch all cases of forgetting to
assign the correct vars, or not running through init.

Note for Server Operators:

In order to not generate these icons on live I've added a new config
entry which should be disabled on live called GENERATE_ASSETS_IN_INIT in
the config.txt


## Why It's Good For The Game

No more error icons in SDMM and loadout.

## Changelog

🆑
refactor: preview icons for greyscale items are now automatically
generated, meaning you can see GAGS as they actually appear ingame while
mapping or viewing the loadout menu.
/🆑

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
This commit is contained in:
Bloop
2025-05-24 18:21:02 -04:00
committed by GitHub
parent 57b964a484
commit cb51a652a9
143 changed files with 1198 additions and 444 deletions
+1 -1
View File
@@ -2050,7 +2050,7 @@
/turf/open/floor/iron/showroomfloor,
/area/ruin/space/has_grav/film_studio/dorms)
"Ki" = (
/obj/item/clothing/head/frenchberet{
/obj/item/clothing/head/beret/frenchberet{
pixel_x = 15
},
/turf/open/floor/plating,
@@ -61,8 +61,8 @@
/obj/item/clothing/mask/gas/mime,
/obj/item/clothing/under/rank/civilian/mime,
/obj/item/clothing/under/rank/civilian/mime,
/obj/item/clothing/head/frenchberet,
/obj/item/clothing/head/frenchberet,
/obj/item/clothing/head/beret/frenchberet,
/obj/item/clothing/head/beret/frenchberet,
/obj/item/storage/backpack/mime,
/turf/open/floor/iron/checker/airless,
/area/ruin)
+2
View File
@@ -58,6 +58,8 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204
#define DECAL_INIT_UPDATE_EXPERIENCED_1 (1<<17)
/// This atom always returns its turf in get_turf_pixel instead of the turf from its offsets
#define IGNORE_TURF_PIXEL_OFFSET_1 (1<<18)
/// This atom does not need to generate its own preview icon for GAGS
#define NO_NEW_GAGS_PREVIEW_1 (1<<19)
// Update flags for [/atom/proc/update_appearance]
/// Update the atom's name
@@ -3,7 +3,7 @@
// All signals send the source datum of the signal as the first argument
///Subsystem signals
///From base of datum/controller/subsystem/Initialize
///From base of /datum/controller/master/init_subsystem()
#define COMSIG_SUBSYSTEM_POST_INITIALIZE "subsystem_post_initialize"
///Called when the ticker enters the pre-game phase
+4
View File
@@ -131,12 +131,16 @@ DEFINE_BITFIELD(flags_1, list(
"ALLOW_DARK_PAINTS_1" = ALLOW_DARK_PAINTS_1,
"ATMOS_IS_PROCESSING_1" = ATMOS_IS_PROCESSING_1,
"CAN_BE_DIRTY_1" = CAN_BE_DIRTY_1,
"DECAL_INIT_UPDATE_EXPERIENCED_1" = DECAL_INIT_UPDATE_EXPERIENCED_1,
"HAS_CONTEXTUAL_SCREENTIPS_1" = HAS_CONTEXTUAL_SCREENTIPS_1,
"HAS_DISASSOCIATED_STORAGE_1" = HAS_DISASSOCIATED_STORAGE_1,
"HOLOGRAM_1" = HOLOGRAM_1,
"HTML_USE_INITAL_ICON_1" = HTML_USE_INITAL_ICON_1,
"IGNORE_TURF_PIXEL_OFFSET_1" = IGNORE_TURF_PIXEL_OFFSET_1,
"INITIALIZED_1" = INITIALIZED_1,
"IS_ONTOP_1" = IS_ONTOP_1,
"IS_PLAYER_COLORABLE_1" = IS_PLAYER_COLORABLE_1,
"NO_NEW_GAGS_PREVIEW_1" = NO_NEW_GAGS_PREVIEW_1,
"NO_SCREENTIPS_1" = NO_SCREENTIPS_1,
"ON_BORDER_1" = ON_BORDER_1,
"PREVENT_CLICK_UNDER_1" = PREVENT_CLICK_UNDER_1,
@@ -785,3 +785,6 @@
// If set, enables the "Link forum account" OOC verb
/datum/config_entry/string/forum_link_uri
/datum/config_entry/flag/generate_assets_in_init
default = FALSE
-1
View File
@@ -514,7 +514,6 @@ ADMIN_VERB(cmd_controller_view_ui, R_SERVER|R_DEBUG, "Controller Overview", "Vie
if(result != SS_INIT_FAILURE)
// Some form of success, implicit failure, or the SS in unused.
subsystem.initialized = TRUE
SEND_SIGNAL(subsystem, COMSIG_SUBSYSTEM_POST_INITIALIZE)
else
// The subsystem officially reports that it failed to init and wishes to be treated as such.
+1 -1
View File
@@ -3,7 +3,7 @@ SUBSYSTEM_DEF(assets)
dependencies = list(
/datum/controller/subsystem/atoms,
/datum/controller/subsystem/persistent_paintings,
/datum/controller/subsystem/processing/greyscale,
/datum/controller/subsystem/greyscale_previews,
)
flags = SS_NO_FIRE
var/list/datum/asset_cache_item/cache = list()
+1
View File
@@ -162,6 +162,7 @@ SUBSYSTEM_DEF(atoms)
initialized = base_initialized
base_initialized = INITIALIZATION_INNEW_REGULAR
return
initialized = initialized_state[length(initialized_state)][2]
/// Returns TRUE if anything is currently being initialized
+6 -1
View File
@@ -7,7 +7,7 @@ SUBSYSTEM_DEF(early_assets)
name = "Early Assets"
dependencies = list(
/datum/controller/subsystem/processing/reagents,
/datum/controller/subsystem/processing/greyscale,
/datum/controller/subsystem/greyscale_previews,
)
dependents = list(
/datum/controller/subsystem/mapping,
@@ -17,6 +17,9 @@ SUBSYSTEM_DEF(early_assets)
flags = SS_NO_FIRE
/datum/controller/subsystem/early_assets/Initialize()
var/init_source = "early assets"
SSatoms.set_tracked_initalized(INITIALIZATION_INNEW_REGULAR, init_source)
for (var/datum/asset/asset_type as anything in subtypesof(/datum/asset))
if (initial(asset_type._abstract) == asset_type)
continue
@@ -29,4 +32,6 @@ SUBSYSTEM_DEF(early_assets)
CHECK_TICK
SSatoms.clear_tracked_initalize(init_source)
return SS_INIT_SUCCESS
@@ -0,0 +1,122 @@
/// If we are in unit tests OR if we are not using iconforge, then we should make sure the icons we are using are valid.
#if !defined(USE_RUSTG_ICONFORGE_GAGS) || defined(UNIT_TESTS)
#define CHECK_SPRITESHEET_ICON_VALIDITY
#endif
SUBSYSTEM_DEF(greyscale_previews)
name = "Greyscale Previews"
flags = SS_NO_FIRE
init_stage = INITSTAGE_EARLY
dependencies = list(
/datum/controller/subsystem/processing/greyscale,
)
/datum/controller/subsystem/greyscale_previews/Initialize()
#ifndef UNIT_TESTS // We want this to run during unit tests regardless of the config
if(!CONFIG_GET(flag/generate_assets_in_init))
return SS_INIT_SUCCESS
#endif
ExportMapPreviews()
return SS_INIT_SUCCESS
/datum/controller/subsystem/greyscale_previews/proc/ExportMapPreviews()
// Put subtypes before their parent or the parent file will take all the generated icons
var/static/list/types_that_get_their_own_file = list(
"turfs" = /turf, // None of these yet but it's harmless to be prepared
"mobs" = /mob, // Ditto
"clothing/accessory" = /obj/item/clothing/accessory,
"clothing/head/beret" = /obj/item/clothing/head/beret,
"clothing/head/_head" = /obj/item/clothing/head,
"clothing/mask" = /obj/item/clothing/mask,
"clothing/neck" = /obj/item/clothing/neck,
"clothing/shoes" = /obj/item/clothing/shoes,
"clothing/suit/costume" = /obj/item/clothing/suit/costume,
"clothing/suit/_suit" = /obj/item/clothing/suit,
"clothing/under/color" = /obj/item/clothing/under/color,
"clothing/under/costume" = /obj/item/clothing/under/costume,
"clothing/under/dress" = /obj/item/clothing/under/dress,
"clothing/under/_under" = /obj/item/clothing/under,
"clothing/_clothing" = /obj/item/clothing,
"items/encryptionkey" = /obj/item/encryptionkey,
"items/pda" = /obj/item/modular_computer/pda,
"items/_item" = /obj/item,
"objects" = /obj,
)
#ifdef UNIT_TESTS
if(!check_map_previews_filepath_order(types_that_get_their_own_file))
CRASH("The list 'types_that_get_their_own_file', used by ExportMapPreviews, is invalid. Please ensure that subtypes come BEFORE parent types in the list order.")
#endif
var/list/handled_types = list()
for(var/filename in types_that_get_their_own_file)
var/type_to_export = types_that_get_their_own_file[filename]
handled_types += ExportMapPreviewsForType(filename, type_to_export, handled_types)
ExportMapPreviewsForType("unsorted", /atom, handled_types)
/// Checks that we do not have any parent types coming before subtypes in the types_that_get_their_own_file list (which is an assoc list (filepath, typepath))
/datum/controller/subsystem/greyscale_previews/proc/check_map_previews_filepath_order(list/our_list)
var/list/type_paths_to_check = list()
for(var/filepath in our_list)
type_paths_to_check += our_list[filepath]
if(!length(type_paths_to_check))
return TRUE
for(var/i = 1 to length(type_paths_to_check))
var/path_i = type_paths_to_check[i]
for(var/j = i+1 to length(type_paths_to_check))
var/path_j = type_paths_to_check[j]
if(ispath(path_j, path_i))
stack_trace("Error: [path_j] (index [j]) is a subtype of [path_i] (index [i]) but appears after it.")
return FALSE
return TRUE
/datum/controller/subsystem/greyscale_previews/proc/ExportMapPreviewsForType(filename, atom/atom_typepath, list/type_blacklist)
var/list/handled_types = list()
var/list/icons = list()
for(var/atom/atom_type as anything in typesof(atom_typepath))
if(type_blacklist && type_blacklist[atom_type])
continue
handled_types[atom_type] = TRUE
var/greyscale_config = atom_type::greyscale_config
var/greyscale_colors = atom_type::greyscale_colors
if(!greyscale_config || !greyscale_colors || atom_type::flags_1 & NO_NEW_GAGS_PREVIEW_1)
continue
#ifdef CHECK_SPRITESHEET_ICON_VALIDITY
var/icon/map_icon = icon(SSgreyscale.GetColoredIconByType(greyscale_config, greyscale_colors))
if((map_icon.Height() > 32) || (map_icon.Width() > 32)) // No large icons, use icon_preview and icon_preview_state instead.
stack_trace("GAGS configuration is trying to generate a map preview graphic for '[atom_type]', which has a large icon. This is not suppoorted; implement icon_preview instead.")
continue
if(!(atom_type::post_init_icon_state in map_icon.IconStates()))
stack_trace("GAGS configuration missing icon state needed to generate map preview graphic for '[atom_type]'. Make sure the right greyscale_config is set up.")
continue
map_icon = icon(map_icon, atom_type::post_init_icon_state)
icons["[atom_type]"] = map_icon
#else // will be updated to use iconforge's new .dmi spritesheet generation instead
var/icon/map_icon = icon(SSgreyscale.GetColoredIconByType(greyscale_config, greyscale_colors))
map_icon = icon(map_icon, atom_type::post_init_icon_state)
icons["[atom_type]"] = map_icon
#endif
var/icon/holder = icon('icons/testing/greyscale_error.dmi')
for(var/state in icons)
holder.Insert(icons[state], state)
var/filepath = "icons/map_icons/[filename].dmi"
#ifdef UNIT_TESTS
var/old_md5 = rustg_hash_file(RUSTG_HASH_MD5, filepath)
#endif
fcopy(holder, filepath)
#ifdef UNIT_TESTS
var/new_md5 = rustg_hash_file(RUSTG_HASH_MD5, filepath)
if(old_md5 != new_md5)
stack_trace("Generated map icons were different than what is currently saved. If you see this in a CI run it means you need to run the game once through initialization and commit the resulting files in 'icons/map_icons/'")
#endif
return handled_types
#ifdef CHECK_SPRITESHEET_ICON_VALIDITY
#undef CHECK_SPRITESHEET_ICON_VALIDITY
#endif
@@ -17,8 +17,8 @@ PROCESSING_SUBSYSTEM_DEF(greyscale)
#endif
/datum/controller/subsystem/processing/greyscale/Initialize()
for(var/datum/greyscale_layer/fake_type as anything in subtypesof(/datum/greyscale_layer))
layer_types[initial(fake_type.layer_type)] = fake_type
for(var/datum/greyscale_layer/greyscale_layer as anything in subtypesof(/datum/greyscale_layer))
layer_types[initial(greyscale_layer.layer_type)] = greyscale_layer
for(var/greyscale_type in subtypesof(/datum/greyscale_config))
var/datum/greyscale_config/config = new greyscale_type()
@@ -70,7 +70,7 @@
RegisterSignal(parent, COMSIG_ITEM_POST_UNEQUIP, PROC_REF(remove_deployable))
RegisterSignal(parent, COMSIG_ITEM_EQUIPPED_AS_OUTFIT, PROC_REF(on_parent_equipped_outfit))
if (down_overlay_state_suffix)
var/overlay_state = "[initial(clothing_parent.icon_state)][down_overlay_state_suffix]"
var/overlay_state = "[initial(clothing_parent.post_init_icon_state) || initial(clothing_parent.icon_state)][down_overlay_state_suffix]"
undeployed_overlay = mutable_appearance(initial(clothing_parent.worn_icon), overlay_state, -SUIT_LAYER)
RegisterSignal(parent, COMSIG_ITEM_GET_WORN_OVERLAYS, PROC_REF(on_checked_overlays))
clothing_parent.update_slot_icon()
@@ -137,7 +137,7 @@
currently_deployed = TRUE
on_deployed?.Invoke(deployable)
if (parent_icon_state_suffix)
parent_gear.icon_state = "[initial(parent_gear.icon_state)][parent_icon_state_suffix]"
parent_gear.icon_state = "[initial(parent_gear.post_init_icon_state) || initial(parent_gear.icon_state)][parent_icon_state_suffix]"
parent_gear.worn_icon_state = parent_gear.icon_state
parent_gear.update_slot_icon()
wearer.update_mob_action_buttons()
@@ -201,7 +201,7 @@
if(destroy_on_removal)
QDEL_NULL(deployable)
if(parent_icon_state_suffix)
parent_gear.icon_state = "[initial(parent_gear.icon_state)]"
parent_gear.icon_state = "[initial(parent_gear.post_init_icon_state) || initial(parent_gear.icon_state)]"
parent_gear.worn_icon_state = parent_gear.icon_state
parent_gear.update_slot_icon()
parent_gear.update_item_action_buttons()
+1 -1
View File
@@ -18,7 +18,7 @@
atom_parent.flags_1 |= HAS_CONTEXTUAL_SCREENTIPS_1
src.toggle_noun = toggle_noun
src.base_icon_state = atom_parent.base_icon_state || atom_parent.icon_state
src.base_icon_state = atom_parent.base_icon_state || atom_parent.post_init_icon_state || atom_parent.icon_state
/datum/component/toggle_icon/RegisterWithParent()
RegisterSignal(parent, COMSIG_CLICK_ALT, PROC_REF(on_click_alt))
@@ -274,7 +274,7 @@
json_config = 'code/datums/greyscale/json_configs/vape.json'
/datum/greyscale_config/vape/worn
name = "Worn Vape"
name = "Vape (Worn)"
icon_file = 'icons/mob/clothing/mask.dmi'
json_config = 'code/datums/greyscale/json_configs/vape_worn.json'
@@ -315,12 +315,12 @@
json_config = 'code/datums/greyscale/json_configs/tape_piece_spikes.json'
/datum/greyscale_config/tape_piece/worn
name = "Worn Tape Piece"
name = "Tape Piece (Worn)"
icon_file = 'icons/obj/tapes.dmi'
json_config = 'code/datums/greyscale/json_configs/tape_piece_worn.json'
/datum/greyscale_config/tape_piece/worn/spikes
name = "Worn Spiked Tape Piece"
name = "Spiked Tape Piece (Worn)"
icon_file = 'icons/obj/tapes.dmi'
json_config = 'code/datums/greyscale/json_configs/tape_piece_spikes_worn.json'
@@ -347,7 +347,7 @@
json_config = 'code/datums/greyscale/json_configs/simple_flower.json'
/datum/greyscale_config/flower_simple_worn
name = "Flower Worn"
name = "Flower (Worn)"
icon_file = 'icons/mob/clothing/head/hydroponics.dmi'
json_config = 'code/datums/greyscale/json_configs/simple_flower_worn.json'
@@ -1,5 +1,5 @@
{
"": [
"wrap_paper": [
{
"type": "icon_state",
"icon_state": "wrap_paper_base",
@@ -6,7 +6,7 @@
gain_text = span_notice("Some of the words of the people around you certainly aren't common. Good thing you studied for this.")
lose_text = span_notice("You seem to have forgotten your second language.")
medical_record_text = "Patient speaks multiple languages."
mail_goodies = list(/obj/item/taperecorder, /obj/item/clothing/head/frenchberet, /obj/item/clothing/mask/fakemoustache/italian)
mail_goodies = list(/obj/item/taperecorder, /obj/item/clothing/head/beret/frenchberet, /obj/item/clothing/mask/fakemoustache/italian)
/datum/quirk_constant_data/bilingual
associated_typepath = /datum/quirk/bilingual
+3
View File
@@ -1,6 +1,9 @@
/atom
///overlays managed by [update_overlays][/atom/proc/update_overlays] to prevent removing overlays that weren't added by the same proc. Single items are stored on their own, not in a list.
var/list/managed_overlays
/// The icon state that will be switched to during initialization.
/// Mostly intended for things that have a special map icon.
var/post_init_icon_state
/**
* Updates the appearence of the icon
@@ -132,6 +132,9 @@
if (light_system == COMPLEX_LIGHT && light_power && light_range)
update_light()
if(post_init_icon_state)
icon_state = post_init_icon_state
SETUP_SMOOTHING()
if(uses_integrity)
+3 -2
View File
@@ -27,8 +27,9 @@
/obj/machinery/big_manipulator
name = "Big Manipulator"
desc = "Operates different objects. Truly, a groundbreaking innovation..."
icon = 'icons/obj/machines/big_manipulator_parts/big_manipulator_core.dmi'
icon_state = "core"
icon = 'icons/map_icons/objects.dmi'
icon_state = "/obj/machinery/big_manipulator"
post_init_icon_state = "core"
density = TRUE
circuit = /obj/item/circuitboard/machine/big_manipulator
greyscale_colors = "#d8ce13"
@@ -1,12 +1,13 @@
/obj/machinery/meter/monitored
/// The unique string that represents which atmos chamber to associate with.
var/chamber_id
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
/obj/machinery/meter/monitored/Initialize(mapload, new_piping_layer)
id_tag = assign_random_name()
if(mapload)
GLOB.map_loaded_sensors[chamber_id] = id_tag
. = ..()
return ..()
/obj/machinery/meter/monitored/layer2
target_layer = 2
@@ -23,8 +23,9 @@
safe_oxygen_min = 0
safe_oxygen_max = 15
icon = 'icons/obj/medical/organs/infuser_organs.dmi'
icon_state = "lungs"
icon = 'icons/map_icons/items/_item.dmi'
icon_state = "/obj/item/organ/lungs/carp"
post_init_icon_state = "lungs"
greyscale_config = /datum/greyscale_config/mutant_organ
greyscale_colors = CARP_COLORS
organ_traits = list(TRAIT_NODROWN)
@@ -42,8 +43,9 @@
say_mod = "gnashes"
icon = 'icons/obj/medical/organs/infuser_organs.dmi'
icon_state = "tongue"
icon = 'icons/map_icons/items/_item.dmi'
icon_state = "/obj/item/organ/tongue/carp"
post_init_icon_state = "tongue"
greyscale_config = /datum/greyscale_config/mutant_organ
greyscale_colors = CARP_COLORS
@@ -110,8 +112,9 @@
name = "mutated carp-brain"
desc = "Carp DNA infused into what was once a normal brain."
icon = 'icons/obj/medical/organs/infuser_organs.dmi'
icon_state = "brain"
icon = 'icons/map_icons/items/_item.dmi'
icon_state = "/obj/item/organ/brain/carp"
post_init_icon_state = "brain"
greyscale_config = /datum/greyscale_config/mutant_organ
greyscale_colors = CARP_COLORS
can_smoothen_out = FALSE
@@ -153,8 +156,9 @@
name = "mutated carp-heart"
desc = "Carp DNA infused into what was once a normal heart."
icon = 'icons/obj/medical/organs/infuser_organs.dmi'
icon_state = "heart"
icon = 'icons/map_icons/items/_item.dmi'
icon_state = "/obj/item/organ/heart/carp"
post_init_icon_state = "heart"
greyscale_config = /datum/greyscale_config/mutant_organ
greyscale_colors = CARP_COLORS
@@ -163,8 +163,9 @@
/obj/item/organ/tail/fish
name = "fish tail"
desc = "A severed tail from some sort of marine creature... or a fish-infused spaceman. It's smooth, faintly wet and definitely not flopping."
icon = 'icons/obj/medical/organs/infuser_organs.dmi'
icon_state = "fish_tail"
icon = 'icons/map_icons/items/_item.dmi'
icon_state = "/obj/item/organ/tail/fish"
post_init_icon_state = "fish_tail"
greyscale_config = /datum/greyscale_config/fish_tail
greyscale_colors = FISH_ORGAN_COLOR
@@ -382,8 +383,9 @@
/obj/item/organ/stomach/fish
name = "mutated fish-stomach"
desc = "Fish DNA infused into a stomach now permeated by the faint smell of salt and slightly putrefied fish."
icon = 'icons/obj/medical/organs/infuser_organs.dmi'
icon_state = "stomach"
icon = 'icons/map_icons/items/_item.dmi'
icon_state = "/obj/item/organ/stomach/fish"
post_init_icon_state = "stomach"
greyscale_config = /datum/greyscale_config/mutant_organ
greyscale_colors = FISH_COLORS
@@ -431,8 +433,9 @@
/obj/item/organ/liver/fish
name = "mutated fish-liver"
desc = "Fish DNA infused into a stomach that now uses tetrodotoxin as regenerative material. It also processes alcohol quite well."
icon = 'icons/obj/medical/organs/infuser_organs.dmi'
icon_state = "liver"
icon = 'icons/map_icons/items/_item.dmi'
icon_state = "/obj/item/organ/liver/fish"
post_init_icon_state = "liver"
greyscale_config = /datum/greyscale_config/mutant_organ
greyscale_colors = FISH_COLORS
@@ -16,9 +16,10 @@
name = "goliath eyes"
desc = "goliath DNA infused into what was once some normal eyes."
icon = 'icons/obj/medical/organs/infuser_organs.dmi'
icon_state = "eyes"
iris_overlay = null
icon = 'icons/map_icons/items/_item.dmi'
icon_state = "/obj/item/organ/eyes/night_vision/goliath"
post_init_icon_state = "eyes"
greyscale_config = /datum/greyscale_config/mutant_organ
greyscale_colors = GOLIATH_COLORS
@@ -40,8 +41,9 @@
name = "mutated goliath-lungs"
desc = "goliath DNA infused into what was once some normal lungs."
icon = 'icons/obj/medical/organs/infuser_organs.dmi'
icon_state = "lungs"
icon = 'icons/map_icons/items/_item.dmi'
icon_state = "/obj/item/organ/lungs/lavaland/goliath"
post_init_icon_state = "lungs"
greyscale_config = /datum/greyscale_config/mutant_organ
greyscale_colors = GOLIATH_COLORS
@@ -55,8 +57,9 @@
name = "mutated goliath-brain"
desc = "goliath DNA infused into what was once a normal brain."
icon = 'icons/obj/medical/organs/infuser_organs.dmi'
icon_state = "brain"
icon = 'icons/map_icons/items/_item.dmi'
icon_state = "/obj/item/organ/brain/goliath"
post_init_icon_state = "brain"
greyscale_config = /datum/greyscale_config/mutant_organ
greyscale_colors = GOLIATH_COLORS
can_smoothen_out = FALSE
@@ -165,8 +168,9 @@
name = "mutated goliath-heart"
desc = "goliath DNA infused into what was once a normal heart."
icon = 'icons/obj/medical/organs/infuser_organs.dmi'
icon_state = "heart"
icon = 'icons/map_icons/items/_item.dmi'
icon_state = "/obj/item/organ/heart/goliath"
post_init_icon_state = "heart"
greyscale_config = /datum/greyscale_config/mutant_organ
greyscale_colors = GOLIATH_COLORS
@@ -20,8 +20,9 @@ Fluoride Stare: After someone says 5 words, blah blah blah...
name = "mutated gondola-heart"
desc = "Gondola DNA infused into what was once a normal heart."
icon = 'icons/obj/medical/organs/infuser_organs.dmi'
icon_state = "heart"
icon = 'icons/map_icons/items/_item.dmi'
icon_state = "/obj/item/organ/heart/gondola"
post_init_icon_state = "heart"
greyscale_config = /datum/greyscale_config/mutant_organ
greyscale_colors = GONDOLA_COLORS
organ_traits = list(TRAIT_PACIFISM)
@@ -53,8 +54,9 @@ Fluoride Stare: After someone says 5 words, blah blah blah...
/obj/item/organ/tongue/gondola
name = "mutated gondola-tongue"
desc = "Gondola DNA infused into what was once a normal tongue."
icon = 'icons/obj/medical/organs/infuser_organs.dmi'
icon_state = "tongue"
icon = 'icons/map_icons/items/_item.dmi'
icon_state = "/obj/item/organ/tongue/gondola"
post_init_icon_state = "tongue"
greyscale_config = /datum/greyscale_config/mutant_organ
greyscale_colors = GONDOLA_COLORS
organ_traits = list(TRAIT_MUTE)
@@ -76,8 +78,9 @@ Fluoride Stare: After someone says 5 words, blah blah blah...
/obj/item/organ/liver/gondola
name = "mutated gondola-liver"
desc = "Gondola DNA infused into what was once a normal liver."
icon = 'icons/obj/medical/organs/infuser_organs.dmi'
icon_state = "liver"
icon = 'icons/map_icons/items/_item.dmi'
icon_state = "/obj/item/organ/liver/gondola"
post_init_icon_state = "liver"
greyscale_config = /datum/greyscale_config/mutant_organ
greyscale_colors = GONDOLA_COLORS
@@ -19,9 +19,10 @@
eye_color_left = COLOR_BLACK
eye_color_right = COLOR_BLACK
icon = 'icons/obj/medical/organs/infuser_organs.dmi'
icon_state = "eyes"
iris_overlay = null
icon = 'icons/map_icons/items/_item.dmi'
icon_state = "/obj/item/organ/eyes/night_vision/rat"
post_init_icon_state = "eyes"
greyscale_config = /datum/greyscale_config/mutant_organ
greyscale_colors = RAT_COLORS
low_light_cutoff = list(16, 11, 0)
@@ -39,8 +40,9 @@
desc = "Rat DNA infused into what was once a normal stomach."
disgust_metabolism = 3
icon = 'icons/obj/medical/organs/infuser_organs.dmi'
icon_state = "stomach"
icon = 'icons/map_icons/items/_item.dmi'
icon_state = "/obj/item/organ/stomach/rat"
post_init_icon_state = "stomach"
greyscale_config = /datum/greyscale_config/mutant_organ
greyscale_colors = RAT_COLORS
hunger_modifier = 10
@@ -54,8 +56,9 @@
/obj/item/organ/heart/rat
name = "mutated rat-heart"
desc = "Rat DNA infused into what was once a normal heart."
icon = 'icons/obj/medical/organs/infuser_organs.dmi'
icon_state = "heart"
icon = 'icons/map_icons/items/_item.dmi'
icon_state = "/obj/item/organ/heart/rat"
post_init_icon_state = "heart"
greyscale_config = /datum/greyscale_config/mutant_organ
greyscale_colors = RAT_COLORS
@@ -88,10 +91,11 @@
/obj/item/organ/tongue/rat
name = "mutated rat-tongue"
desc = "Rat DNA infused into what was once a normal tongue."
icon = 'icons/obj/medical/organs/infuser_organs.dmi'
icon_state = "tongue"
say_mod = "squeaks"
modifies_speech = TRUE
icon = 'icons/map_icons/items/_item.dmi'
icon_state = "/obj/item/organ/tongue/rat"
post_init_icon_state = "tongue"
greyscale_config = /datum/greyscale_config/mutant_organ
greyscale_colors = RAT_COLORS
liked_foodtypes = DAIRY //mmm, cheese. doesn't especially like anything else
@@ -44,8 +44,9 @@
desc = "Roach DNA infused into what was once a normal heart."
maxHealth = 2 * STANDARD_ORGAN_THRESHOLD
icon = 'icons/obj/medical/organs/infuser_organs.dmi'
icon_state = "heart"
icon = 'icons/map_icons/items/_item.dmi'
icon_state = "/obj/item/organ/heart/roach"
post_init_icon_state = "heart"
greyscale_config = /datum/greyscale_config/mutant_organ
greyscale_colors = ROACH_COLORS
@@ -161,8 +162,9 @@
metabolism_efficiency = 0.033 // Slightly worse at transferring reagents
hunger_modifier = 3
icon = 'icons/obj/medical/organs/infuser_organs.dmi'
icon_state = "stomach"
icon = 'icons/map_icons/items/_item.dmi'
icon_state = "/obj/item/organ/stomach/roach"
post_init_icon_state = "stomach"
greyscale_config = /datum/greyscale_config/mutant_organ
greyscale_colors = ROACH_COLORS
@@ -179,8 +181,9 @@
toxTolerance = 5 // More tolerance for toxins
liver_resistance = 0.25 // But if they manage to get in you're screwed
icon = 'icons/obj/medical/organs/infuser_organs.dmi'
icon_state = "liver"
icon = 'icons/map_icons/items/_item.dmi'
icon_state = "/obj/item/organ/liver/roach"
post_init_icon_state = "liver"
greyscale_config = /datum/greyscale_config/mutant_organ
greyscale_colors = ROACH_COLORS
@@ -211,8 +214,9 @@
desc = "Roach DNA infused into what was once a normal appendix. It could get <i>worse</i>?"
maxHealth = 2 * STANDARD_ORGAN_THRESHOLD
icon = 'icons/obj/medical/organs/infuser_organs.dmi'
icon_state = "appendix"
icon = 'icons/map_icons/items/_item.dmi'
icon_state = "/obj/item/organ/appendix/roach"
post_init_icon_state = "appendix"
greyscale_config = /datum/greyscale_config/mutant_organ
greyscale_colors = ROACH_COLORS
@@ -216,7 +216,7 @@
/obj/item/clothing/head/costume/deckers,
/obj/item/clothing/head/costume/yuri,
/obj/item/clothing/head/costume/allies,
/obj/item/clothing/head/frenchberet,
/obj/item/clothing/head/beret/frenchberet,
/obj/item/clothing/head/costume/crown,
/obj/item/clothing/head/fedora,
/obj/item/clothing/head/beanie/red,
+12 -2
View File
@@ -960,7 +960,9 @@ CIGARETTE PACKETS ARE IN FANCY.DM
/obj/item/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_state = "vape"
icon = 'icons/map_icons/items/_item.dmi'
icon_state = "/obj/item/vape"
post_init_icon_state = "vape"
worn_icon_state = "vape_worn"
greyscale_config = /datum/greyscale_config/vape
greyscale_config_worn = /datum/greyscale_config/vape/worn
@@ -1008,7 +1010,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
screw = FALSE
to_chat(user, span_notice("You close the cap on [src]."))
reagents.flags &= ~(OPENCONTAINER)
icon_state = initial(icon_state)
icon_state = initial(post_init_icon_state) || initial(icon_state)
set_greyscale(new_config = initial(greyscale_config))
/obj/item/vape/multitool_act(mob/living/user, obj/item/tool)
@@ -1138,33 +1140,41 @@ CIGARETTE PACKETS ARE IN FANCY.DM
handle_reagents()
/obj/item/vape/red
icon_state = "/obj/item/vape/red"
greyscale_colors = "#A02525"
flags_1 = NONE
/obj/item/vape/blue
icon_state = "/obj/item/vape/blue"
greyscale_colors = "#294A98"
flags_1 = NONE
/obj/item/vape/purple
icon_state = "/obj/item/vape/purple"
greyscale_colors = "#9900CC"
flags_1 = NONE
/obj/item/vape/green
icon_state = "/obj/item/vape/green"
greyscale_colors = "#3D9829"
flags_1 = NONE
/obj/item/vape/yellow
icon_state = "/obj/item/vape/yellow"
greyscale_colors = "#DAC20E"
flags_1 = NONE
/obj/item/vape/orange
icon_state = "/obj/item/vape/orange"
greyscale_colors = "#da930e"
flags_1 = NONE
/obj/item/vape/black
icon_state = "/obj/item/vape/black"
greyscale_colors = "#2e2e2e"
flags_1 = NONE
/obj/item/vape/white
icon_state = "/obj/item/vape/white"
greyscale_colors = "#DCDCDC"
flags_1 = NONE
+2
View File
@@ -8,6 +8,7 @@
var/mob/owner = null //Carp doesn't attack owner, set when using in hand
var/mobtype = /mob/living/basic/carp //So admins can change what mob spawns via var fuckery
var/swelling = FALSE
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
//Attack self
/obj/item/toy/plush/carpplushie/dehy_carp/attack_self(mob/user)
@@ -75,3 +76,4 @@
/obj/item/toy/plush/carpplushie/dehy_carp/peaceful
mobtype = /mob/living/basic/carp/passive
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
@@ -1,8 +1,9 @@
/obj/item/quantum_keycard
name = "quantum keycard"
desc = "A keycard able to link to a quantum pad's particle signature, allowing other quantum pads to travel there instead of their linked pad."
icon = 'icons/obj/devices/tool.dmi'
icon_state = "quantum_keycard_gags"
icon = 'icons/map_icons/items/_item.dmi'
icon_state = "/obj/item/quantum_keycard"
post_init_icon_state = "quantum_keycard_gags"
greyscale_config = /datum/greyscale_config/quantum_keycard
greyscale_colors = COLOR_WHITE
inhand_icon_state = "card-id"
@@ -1,11 +1,12 @@
/obj/item/encryptionkey
name = "standard encryption key"
icon = 'icons/map_icons/items/encryptionkey.dmi'
icon_state = "/obj/item/encryptionkey"
post_init_icon_state = "cypherkey_basic"
desc = "An encryption key for a radio headset."
icon = 'icons/obj/devices/circuitry_n_data.dmi'
icon_state = "cypherkey_basic"
icon_preview = 'icons/obj/fluff/previews.dmi'
icon_state_preview = "cypherkey"
w_class = WEIGHT_CLASS_TINY
greyscale_config = /datum/greyscale_config/encryptionkey_basic
greyscale_colors = "#820a16#3758c4"
/// What channels does this encryption key grant to the parent headset.
var/list/channels = list()
/// Flags for which "special" radio networks should be accessible
@@ -13,9 +14,6 @@
/// Assoc list of language to how well understood it is. 0 is invalid, 100 is perfect.
var/list/language_data
greyscale_config = /datum/greyscale_config/encryptionkey_basic
greyscale_colors = "#820a16#3758c4"
/obj/item/encryptionkey/examine(mob/user)
. = ..()
if(!LAZYLEN(channels) && !(special_channels & RADIO_SPECIAL_BINARY) && !LAZYLEN(language_data))
@@ -49,7 +47,9 @@
/obj/item/encryptionkey/syndicate
name = "syndicate encryption key"
icon_state = "cypherkey_syndicate"
icon = 'icons/map_icons/items/encryptionkey.dmi'
icon_state = "/obj/item/encryptionkey/syndicate"
post_init_icon_state = "cypherkey_syndicate"
channels = list(RADIO_CHANNEL_SYNDICATE = 1)
special_channels = RADIO_SPECIAL_SYNDIE
greyscale_config = /datum/greyscale_config/encryptionkey_syndicate
@@ -57,7 +57,9 @@
/obj/item/encryptionkey/binary
name = "binary translator key"
icon_state = "cypherkey_basic"
icon = 'icons/map_icons/items/encryptionkey.dmi'
icon_state = "/obj/item/encryptionkey/binary"
post_init_icon_state = "cypherkey_basic"
special_channels = RADIO_SPECIAL_BINARY
language_data = list(
/datum/language/machine = 100,
@@ -67,153 +69,199 @@
/obj/item/encryptionkey/headset_sec
name = "security radio encryption key"
icon_state = "cypherkey_security"
icon = 'icons/map_icons/items/encryptionkey.dmi'
icon_state = "/obj/item/encryptionkey/headset_sec"
post_init_icon_state = "cypherkey_security"
channels = list(RADIO_CHANNEL_SECURITY = 1)
greyscale_config = /datum/greyscale_config/encryptionkey_security
greyscale_colors = "#820a16#280b1a"
/obj/item/encryptionkey/headset_eng
name = "engineering radio encryption key"
icon_state = "cypherkey_engineering"
icon = 'icons/map_icons/items/encryptionkey.dmi'
icon_state = "/obj/item/encryptionkey/headset_eng"
post_init_icon_state = "cypherkey_engineering"
channels = list(RADIO_CHANNEL_ENGINEERING = 1)
greyscale_config = /datum/greyscale_config/encryptionkey_engineering
greyscale_colors = "#f8d860#dca01b"
/obj/item/encryptionkey/headset_rob
name = "robotics radio encryption key"
icon_state = "cypherkey_engineering"
icon = 'icons/map_icons/items/encryptionkey.dmi'
icon_state = "/obj/item/encryptionkey/headset_rob"
post_init_icon_state = "cypherkey_engineering"
channels = list(RADIO_CHANNEL_SCIENCE = 1, RADIO_CHANNEL_ENGINEERING = 1)
greyscale_config = /datum/greyscale_config/encryptionkey_engineering
greyscale_colors = "#793a80#dca01b"
/obj/item/encryptionkey/headset_med
name = "medical radio encryption key"
icon_state = "cypherkey_medical"
icon = 'icons/map_icons/items/encryptionkey.dmi'
icon_state = "/obj/item/encryptionkey/headset_med"
post_init_icon_state = "cypherkey_medical"
channels = list(RADIO_CHANNEL_MEDICAL = 1)
greyscale_config = /datum/greyscale_config/encryptionkey_medical
greyscale_colors = "#ebebeb#69abd1"
/obj/item/encryptionkey/headset_sci
name = "science radio encryption key"
icon_state = "cypherkey_research"
icon = 'icons/map_icons/items/encryptionkey.dmi'
icon_state = "/obj/item/encryptionkey/headset_sci"
post_init_icon_state = "cypherkey_research"
channels = list(RADIO_CHANNEL_SCIENCE = 1)
greyscale_config = /datum/greyscale_config/encryptionkey_research
greyscale_colors = "#793a80#bc4a9b"
/obj/item/encryptionkey/headset_medsci
name = "medical research radio encryption key"
icon_state = "cypherkey_medical"
icon = 'icons/map_icons/items/encryptionkey.dmi'
icon_state = "/obj/item/encryptionkey/headset_medsci"
post_init_icon_state = "cypherkey_medical"
channels = list(RADIO_CHANNEL_SCIENCE = 1, RADIO_CHANNEL_MEDICAL = 1)
greyscale_config = /datum/greyscale_config/encryptionkey_medical
greyscale_colors = "#ebebeb#9d1de8"
/obj/item/encryptionkey/headset_srvsec
name = "law and order radio encryption key"
icon_state = "cypherkey_service"
icon = 'icons/map_icons/items/encryptionkey.dmi'
icon_state = "/obj/item/encryptionkey/headset_srvsec"
post_init_icon_state = "cypherkey_service"
channels = list(RADIO_CHANNEL_SERVICE = 1, RADIO_CHANNEL_SECURITY = 1)
greyscale_config = /datum/greyscale_config/encryptionkey_service
greyscale_colors = "#820a16#3bca5a"
/obj/item/encryptionkey/headset_srvmed
name = "psychology radio encryption key"
icon_state = "cypherkey_service"
icon = 'icons/map_icons/items/encryptionkey.dmi'
icon_state = "/obj/item/encryptionkey/headset_srvmed"
post_init_icon_state = "cypherkey_service"
channels = list(RADIO_CHANNEL_MEDICAL = 1, RADIO_CHANNEL_SERVICE = 1)
greyscale_config = /datum/greyscale_config/encryptionkey_service
greyscale_colors = "#ebebeb#3bca5a"
/obj/item/encryptionkey/headset_srvent
name = "press radio encryption key"
icon_state = "cypherkey_service"
icon = 'icons/map_icons/items/encryptionkey.dmi'
icon_state = "/obj/item/encryptionkey/headset_srvent"
post_init_icon_state = "cypherkey_service"
channels = list(RADIO_CHANNEL_SERVICE = 1, RADIO_CHANNEL_ENTERTAINMENT = 0)
greyscale_config = /datum/greyscale_config/encryptionkey_service
greyscale_colors = "#83eb8f#3bca5a"
/obj/item/encryptionkey/headset_com
name = "command radio encryption key"
icon_state = "cypherkey_cube"
icon = 'icons/map_icons/items/encryptionkey.dmi'
icon_state = "/obj/item/encryptionkey/headset_com"
post_init_icon_state = "cypherkey_cube"
channels = list(RADIO_CHANNEL_COMMAND = 1)
greyscale_config = /datum/greyscale_config/encryptionkey_cube
greyscale_colors = "#2b2793#67a552"
/obj/item/encryptionkey/heads
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
/obj/item/encryptionkey/heads/captain
name = "\proper the captain's encryption key"
icon_state = "cypherkey_cube"
icon = 'icons/map_icons/items/encryptionkey.dmi'
icon_state = "/obj/item/encryptionkey/heads/captain"
post_init_icon_state = "cypherkey_cube"
channels = list(RADIO_CHANNEL_COMMAND = 1, RADIO_CHANNEL_SECURITY = 1, RADIO_CHANNEL_ENGINEERING = 0, RADIO_CHANNEL_SCIENCE = 0, RADIO_CHANNEL_MEDICAL = 0, RADIO_CHANNEL_SUPPLY = 0, RADIO_CHANNEL_SERVICE = 0)
greyscale_config = /datum/greyscale_config/encryptionkey_cube
greyscale_colors = "#2b2793#dca01b"
/obj/item/encryptionkey/heads/rd
name = "\proper the research director's encryption key"
icon_state = "cypherkey_research"
icon = 'icons/map_icons/items/encryptionkey.dmi'
icon_state = "/obj/item/encryptionkey/heads/rd"
post_init_icon_state = "cypherkey_research"
channels = list(RADIO_CHANNEL_SCIENCE = 1, RADIO_CHANNEL_COMMAND = 1)
greyscale_config = /datum/greyscale_config/encryptionkey_research
greyscale_colors = "#bc4a9b#793a80"
/obj/item/encryptionkey/heads/hos
name = "\proper the head of security's encryption key"
icon_state = "cypherkey_security"
icon = 'icons/map_icons/items/encryptionkey.dmi'
icon_state = "/obj/item/encryptionkey/heads/hos"
post_init_icon_state = "cypherkey_security"
channels = list(RADIO_CHANNEL_SECURITY = 1, RADIO_CHANNEL_COMMAND = 1)
greyscale_config = /datum/greyscale_config/encryptionkey_security
greyscale_colors = "#280b1a#820a16"
/obj/item/encryptionkey/heads/ce
name = "\proper the chief engineer's encryption key"
icon_state = "cypherkey_engineering"
icon = 'icons/map_icons/items/encryptionkey.dmi'
icon_state = "/obj/item/encryptionkey/heads/ce"
post_init_icon_state = "cypherkey_engineering"
channels = list(RADIO_CHANNEL_ENGINEERING = 1, RADIO_CHANNEL_COMMAND = 1)
greyscale_config = /datum/greyscale_config/encryptionkey_engineering
greyscale_colors = "#dca01b#f8d860"
/obj/item/encryptionkey/heads/cmo
name = "\proper the chief medical officer's encryption key"
icon_state = "cypherkey_medical"
icon = 'icons/map_icons/items/encryptionkey.dmi'
icon_state = "/obj/item/encryptionkey/heads/cmo"
post_init_icon_state = "cypherkey_medical"
channels = list(RADIO_CHANNEL_MEDICAL = 1, RADIO_CHANNEL_COMMAND = 1)
greyscale_config = /datum/greyscale_config/encryptionkey_medical
greyscale_colors = "#ebebeb#2b2793"
/obj/item/encryptionkey/heads/hop
name = "\proper the head of personnel's encryption key"
icon_state = "cypherkey_cube"
icon = 'icons/map_icons/items/encryptionkey.dmi'
icon_state = "/obj/item/encryptionkey/heads/hop"
post_init_icon_state = "cypherkey_cube"
channels = list(RADIO_CHANNEL_SERVICE = 1, RADIO_CHANNEL_COMMAND = 1)
greyscale_config = /datum/greyscale_config/encryptionkey_cube
greyscale_colors = "#2b2793#c2c1c9"
/obj/item/encryptionkey/heads/qm
name = "\proper the quartermaster's encryption key"
icon_state = "cypherkey_cargo"
icon = 'icons/map_icons/items/encryptionkey.dmi'
icon_state = "/obj/item/encryptionkey/heads/qm"
post_init_icon_state = "cypherkey_cargo"
channels = list(RADIO_CHANNEL_SUPPLY = 1, RADIO_CHANNEL_COMMAND = 1)
greyscale_config = /datum/greyscale_config/encryptionkey_cargo
greyscale_colors = "#49241a#dca01b"
/obj/item/encryptionkey/headset_cargo
name = "supply radio encryption key"
icon_state = "cypherkey_cargo"
icon = 'icons/map_icons/items/encryptionkey.dmi'
icon_state = "/obj/item/encryptionkey/headset_cargo"
post_init_icon_state = "cypherkey_cargo"
channels = list(RADIO_CHANNEL_SUPPLY = 1)
greyscale_config = /datum/greyscale_config/encryptionkey_cargo
greyscale_colors = "#49241a#7b3f2e"
/obj/item/encryptionkey/headset_mining
name = "mining radio encryption key"
icon_state = "cypherkey_cargo"
icon = 'icons/map_icons/items/encryptionkey.dmi'
icon_state = "/obj/item/encryptionkey/headset_mining"
post_init_icon_state = "cypherkey_cargo"
channels = list(RADIO_CHANNEL_SUPPLY = 1, RADIO_CHANNEL_SCIENCE = 1)
greyscale_config = /datum/greyscale_config/encryptionkey_cargo
greyscale_colors = "#49241a#bc4a9b"
/obj/item/encryptionkey/headset_service
name = "service radio encryption key"
icon_state = "cypherkey_service"
icon = 'icons/map_icons/items/encryptionkey.dmi'
icon_state = "/obj/item/encryptionkey/headset_service"
post_init_icon_state = "cypherkey_service"
channels = list(RADIO_CHANNEL_SERVICE = 1)
greyscale_config = /datum/greyscale_config/encryptionkey_service
greyscale_colors = "#3758c4#3bca5a"
/obj/item/encryptionkey/headset_cent
name = "\improper CentCom radio encryption key"
icon_state = "cypherkey_centcom"
icon = 'icons/map_icons/items/encryptionkey.dmi'
icon_state = "/obj/item/encryptionkey/headset_cent"
post_init_icon_state = "cypherkey_centcom"
special_channels = RADIO_SPECIAL_CENTCOM
channels = list(RADIO_CHANNEL_CENTCOM = 1)
greyscale_config = /datum/greyscale_config/encryptionkey_centcom
greyscale_colors = "#24a157#dca01b"
/obj/item/encryptionkey/ai //ported from NT, this goes 'inside' the AI.
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
channels = list(
RADIO_CHANNEL_COMMAND = 1,
RADIO_CHANNEL_SECURITY = 1,
@@ -228,6 +276,7 @@
/obj/item/encryptionkey/ai_with_binary
name = "ai encryption key"
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
channels = list(
RADIO_CHANNEL_COMMAND = 1,
RADIO_CHANNEL_SECURITY = 1,
@@ -246,7 +295,9 @@
/obj/item/encryptionkey/ai/evil //ported from NT, this goes 'inside' the AI.
name = "syndicate binary encryption key"
icon_state = "cypherkey_syndicate"
icon = 'icons/map_icons/items/encryptionkey.dmi'
icon_state = "/obj/item/encryptionkey/ai_with_binary"
post_init_icon_state = "cypherkey_syndicate"
channels = list(RADIO_CHANNEL_SYNDICATE = 1)
special_channels = RADIO_SPECIAL_SYNDIE
greyscale_config = /datum/greyscale_config/encryptionkey_syndicate
+3 -2
View File
@@ -521,8 +521,9 @@
/obj/item/melee/cleric_mace
name = "cleric mace"
desc = "The grandson of the club, yet the grandfather of the baseball bat. Most notably used by holy orders in days past."
icon = 'icons/obj/weapons/cleric_mace.dmi'
icon_state = "default"
icon = 'icons/map_icons/items/_item.dmi'
icon_state = "/obj/item/melee/cleric_mace"
post_init_icon_state = "default"
inhand_icon_state = "default"
worn_icon_state = "default_worn"
icon_angle = -45
+10 -5
View File
@@ -5,9 +5,10 @@
/obj/item/pet_carrier
name = "pet carrier"
desc = "A big white-and-blue pet carrier. Good for carrying <s>meat to the chef</s> cute animals around."
icon = 'icons/obj/pet_carrier.dmi'
icon = 'icons/map_icons/items/_item.dmi'
icon_state = "/obj/item/pet_carrier"
post_init_icon_state = "pet_carrier_open"
base_icon_state = "pet_carrier"
icon_state = "pet_carrier_open"
inhand_icon_state = "pet_carrier"
lefthand_file = 'icons/mob/inhands/items_lefthand.dmi'
righthand_file = 'icons/mob/inhands/items_righthand.dmi'
@@ -224,8 +225,10 @@
/obj/item/pet_carrier/biopod
name = "biopod"
desc = "Alien device used for undescribable purpose. Or carrying pets."
base_icon_state = "biopod"
icon = 'icons/obj/pet_carrier.dmi'
icon_state = "biopod_open"
post_init_icon_state = null
base_icon_state = "biopod"
inhand_icon_state = "biopod"
greyscale_config = null
greyscale_config_inhand_left = null
@@ -235,9 +238,11 @@
/obj/item/pet_carrier/small
name = "small pet carrier"
desc = "A small pet carrier for miniature sized animals."
icon = 'icons/obj/pet_carrier.dmi'
icon_state = "small_carrier_open"
post_init_icon_state = null
w_class = WEIGHT_CLASS_NORMAL
base_icon_state = "small_carrier"
icon_state = "small_carrier_open"
inhand_icon_state = "syringe_kit"
lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi'
@@ -252,8 +257,8 @@
/obj/item/pet_carrier/small/mouse
name = "small mouse carrier"
desc = "A small pet carrier for miniature sized animals. This looks prepared for a mouse."
open = FALSE
icon_state = "small_carrier_occupied_unlocked"
open = FALSE
/obj/item/pet_carrier/small/mouse/Initialize(mapload)
var/mob/living/basic/mouse/hero_mouse = new /mob/living/basic/mouse(src)
+6
View File
@@ -152,6 +152,9 @@
/obj/item/piggy_bank/museum
name = "Pigston Swinelord VI"
desc = "The museum's mascot piggy bank and favorite embezzler, known to carry donations between shifts without paying taxes. The space IRS hates him."
icon = 'icons/map_icons/items/_item.dmi'
icon_state = "/obj/item/piggy_bank/museum"
post_init_icon_state = "piggy_bank"
persistence_id = "museum_piggy"
greyscale_colors = COLOR_PINK
maximum_value = PAYCHECK_COMMAND * 100
@@ -164,6 +167,9 @@
/obj/item/piggy_bank/vault
name = "vault piggy bank"
desc = "A pig-shaped money container made of porkelain, containing the station's emergency funds carried between shifts, oink. <i>Do not throw.</i>"
icon = 'icons/map_icons/items/_item.dmi'
icon_state = "/obj/item/piggy_bank/vault"
post_init_icon_state = "piggy_bank"
persistence_id = "vault_piggy"
greyscale_colors = COLOR_LIGHT_ORANGE
maximum_value = PAYCHECK_COMMAND * 33
+18 -3
View File
@@ -388,7 +388,9 @@
/obj/item/toy/plush/carpplushie
name = "space carp plushie"
desc = "An adorable stuffed toy that resembles a space carp."
icon_state = "map_plushie_carp"
icon = 'icons/map_icons/items/_item.dmi'
icon_state = "/obj/item/toy/plush/carpplushie"
post_init_icon_state = "map_plushie_carp"
greyscale_config = /datum/greyscale_config/plush_carp
greyscale_colors = "#cc99ff#000000"
inhand_icon_state = "carp_plushie"
@@ -531,10 +533,16 @@
// Preset lizard plushie that uses the original lizard plush green. (Or close to it)
/obj/item/toy/plush/lizard_plushie/green
desc = "An adorable stuffed toy that resembles a green lizardperson. This one fills you with nostalgia and soul."
icon = 'icons/map_icons/items/_item.dmi'
icon_state = "/obj/item/toy/plush/lizard_plushie/green"
post_init_icon_state = "map_plushie_lizard"
greyscale_colors = "#66ff33#000000"
/obj/item/toy/plush/lizard_plushie/greyscale
desc = "An adorable stuffed toy that resembles a lizardperson. This one has been custom made."
icon = 'icons/map_icons/items/_item.dmi'
icon_state = "/obj/item/toy/plush/lizard_plushie/greyscale"
post_init_icon_state = "map_plushie_lizard"
greyscale_colors = "#d3d3d3#000000"
flags_1 = IS_PLAYER_COLORABLE_1
@@ -549,12 +557,17 @@
/obj/item/toy/plush/lizard_plushie/space/green
desc = "An adorable stuffed toy that resembles a very determined spacefaring green lizardperson. To infinity and beyond, little guy. This one fills you with nostalgia and soul."
icon = 'icons/map_icons/items/_item.dmi'
icon_state = "/obj/item/toy/plush/lizard_plushie/space/green"
post_init_icon_state = "map_plushie_spacelizard"
greyscale_colors = "#66ff33#000000"
/obj/item/toy/plush/snakeplushie
name = "snake plushie"
desc = "An adorable stuffed toy that resembles a snake. Not to be mistaken for the real thing."
icon_state = "map_plushie_snake"
icon = 'icons/map_icons/items/_item.dmi'
icon_state = "/obj/item/toy/plush/snakeplushie"
post_init_icon_state = "map_plushie_snake"
greyscale_config = /datum/greyscale_config/plush_snake
greyscale_colors = "#99ff99#000000"
inhand_icon_state = null
@@ -583,7 +596,9 @@
/obj/item/toy/plush/slimeplushie
name = "slime plushie"
desc = "An adorable stuffed toy that resembles a slime. It is practically just a hacky sack."
icon_state = "map_plushie_slime"
icon = 'icons/map_icons/items/_item.dmi'
icon_state = "/obj/item/toy/plush/slimeplushie"
post_init_icon_state = "map_plushie_slime"
greyscale_config = /datum/greyscale_config/plush_slime
greyscale_colors = "#aaaaff#000000"
inhand_icon_state = null
+6 -3
View File
@@ -2,8 +2,9 @@
name = "sticky tape"
singular_name = "sticky tape"
desc = "Used for sticking to things for sticking said things to people."
icon = 'icons/obj/tapes.dmi'
icon_state = "tape"
icon = 'icons/map_icons/items/_item.dmi'
icon_state = "/obj/item/stack/sticky_tape"
post_init_icon_state = "tape"
var/prefix = "sticky"
w_class = WEIGHT_CLASS_TINY
full_w_class = WEIGHT_CLASS_TINY
@@ -99,9 +100,11 @@
/obj/item/stack/sticky_tape/pointy
name = "pointy tape"
icon = 'icons/map_icons/items/_item.dmi'
icon_state = "/obj/item/stack/sticky_tape/pointy"
post_init_icon_state = "tape_spikes"
singular_name = "pointy tape"
desc = "Used for sticking to things for sticking said things inside people."
icon_state = "tape_spikes"
prefix = "pointy"
conferred_embed = /datum/embedding/pointy_tape
merge_type = /obj/item/stack/sticky_tape/pointy
+3
View File
@@ -63,6 +63,9 @@
//preset wrapping paper meant to fill the original color configuration
/obj/item/stack/wrapping_paper/xmas
icon = 'icons/map_icons/items/_item.dmi'
icon_state = "/obj/item/stack/wrapping_paper/xmas"
post_init_icon_state = "wrap_paper"
greyscale_colors = "#00FF00#FF0000"
/obj/item/stack/wrapping_paper/use(used, transfer, check = TRUE)
@@ -66,6 +66,7 @@
desc = "An ultrasonic screwdriver."
icon = 'icons/obj/antags/abductor.dmi'
icon_state = "screwdriver_a"
post_init_icon_state = null
inhand_icon_state = "screwdriver_nuke"
custom_materials = list(/datum/material/iron=HALF_SHEET_MATERIAL_AMOUNT*5, /datum/material/silver=SHEET_MATERIAL_AMOUNT*1.25, /datum/material/plasma =HALF_SHEET_MATERIAL_AMOUNT, /datum/material/titanium =SHEET_MATERIAL_AMOUNT, /datum/material/diamond =SHEET_MATERIAL_AMOUNT)
usesound = 'sound/items/pshoom/pshoom.ogg'
@@ -80,6 +81,7 @@
/obj/item/screwdriver/power
name = "hand drill"
desc = "A simple powered hand drill."
icon = 'icons/obj/tools.dmi'
icon_state = "drill"
inside_belt_icon_state = null
inhand_icon_state = "drill"
@@ -73,25 +73,31 @@ COLORED_SOFA(/obj/structure/chair/sofa, maroon, SOFA_MAROON)
/obj/structure/chair/sofa/bench
name = "bench"
desc = "Perfectly designed to be comfortable to sit on, and hellish to sleep on."
icon_state = "bench_middle"
icon = 'icons/map_icons/objects.dmi'
icon_state = "/obj/structure/chair/sofa/bench"
post_init_icon_state = "bench_middle"
greyscale_config = /datum/greyscale_config/bench_middle
greyscale_colors = "#af7d28"
has_armrest = FALSE
/obj/structure/chair/sofa/bench/left
icon_state = "bench_left"
icon_state = "/obj/structure/chair/sofa/bench/left"
post_init_icon_state = "bench_left"
greyscale_config = /datum/greyscale_config/bench_left
/obj/structure/chair/sofa/bench/right
icon_state = "bench_right"
icon_state = "/obj/structure/chair/sofa/bench/right"
post_init_icon_state = "bench_right"
greyscale_config = /datum/greyscale_config/bench_right
/obj/structure/chair/sofa/bench/corner
icon_state = "bench_corner"
icon_state = "/obj/structure/chair/sofa/bench/corner"
post_init_icon_state = "bench_corner"
greyscale_config = /datum/greyscale_config/bench_corner
/obj/structure/chair/sofa/bench/solo
icon_state = "bench_solo"
icon_state = "/obj/structure/chair/sofa/bench/solo"
post_init_icon_state = "bench_solo"
greyscale_config = /datum/greyscale_config/bench_solo
@@ -231,6 +231,7 @@ at the cost of risking a vicious bite.**/
/obj/item/clothing/under/pants/slacks/altar
name = "strange pants"
desc = "A pair of pants. They do not look or feel natural, and smell like fresh blood."
icon_state = "/obj/item/clothing/under/pants/slacks/altar"
greyscale_colors = "#ffffff#ffffff#ffffff"
flags_1 = NONE //If IS_PLAYER_COLORABLE gets added color-changing support (i.e. spraycans), these won't end up getting it too. Plus, it already has its own recolor.
+7 -2
View File
@@ -36,8 +36,13 @@
icon_file = style.icon
icon_state = style.icon_state
icon_file ||= initial(preview_item.icon_preview) || initial(preview_item.icon)
icon_state ||= initial(preview_item.icon_state_preview) || initial(preview_item.icon_state)
if(preview_item.greyscale_config)
var/datum/greyscale_config/greyscale_config = preview_item::greyscale_config
icon_file ||= preview_item::icon_preview || greyscale_config::icon_file
icon_state ||= preview_item::icon_state_preview || preview_item::post_init_icon_state || preview_item::icon_state
else
icon_file ||= preview_item::icon_preview || preview_item::icon
icon_state ||= preview_item::icon_state_preview || preview_item::icon_state
if(PERFORM_ALL_TESTS(focus_only/bad_cooking_crafting_icons))
if(!icon_exists_or_scream(icon_file, icon_state))
@@ -12,8 +12,8 @@
var/datum/icon_transformer/transform = null
if(initial(path.research_icon) && initial(path.research_icon_state)) //If the design has an icon replacement skip the rest
icon_file = initial(path.research_icon)
icon_state = initial(path.research_icon_state)
icon_file = path::research_icon
icon_state = path::research_icon_state
if (PERFORM_ALL_TESTS(focus_only/invalid_research_designs))
if(!icon_exists(icon_file, icon_state))
stack_trace("design [path] with icon '[icon_file]' missing state '[icon_state]'")
@@ -37,15 +37,15 @@
item = machine
// GAGS icon short-circuit the rest of the checks
if (initial(item.greyscale_config) && initial(item.greyscale_colors))
insert_icon(initial(path.id), gags_to_universal_icon(item))
if (item::greyscale_config && item::greyscale_colors)
insert_icon(path::id, gags_to_universal_icon(item))
continue
else
icon_file = initial(item.icon)
icon_file = item::icon
icon_state = initial(item.icon_state)
if(initial(item.color))
transform = color_transform(initial(item.color))
icon_state = item::icon_state
if(item::color)
transform = color_transform(item::color)
if (PERFORM_ALL_TESTS(focus_only/invalid_research_designs))
if(!icon_exists(icon_file, icon_state))
stack_trace("design [path] with icon '[icon_file]' missing state '[icon_state]'")
@@ -210,7 +210,7 @@
CRASH("gags_to_universal_icon() received an invalid path of \"[path]\"!")
var/datum/greyscale_config/config = initial(path.greyscale_config)
var/colors = initial(path.greyscale_colors)
var/datum/universal_icon/entry = SSgreyscale.GetColoredIconByTypeUniversalIcon(config, colors, initial(path.icon_state))
var/datum/universal_icon/entry = SSgreyscale.GetColoredIconByTypeUniversalIcon(config, colors, path::post_init_icon_state || path::icon_state)
return entry
/// Gets the relevant universal icon for an atom, when displayed in TGUI. (see: icon_state_preview)
@@ -1,13 +1,14 @@
#define TANK_PLATING_SHEETS 12
/obj/machinery/atmospherics/components/tank
icon = 'icons/obj/pipes_n_cables/stationary_canisters.dmi'
icon_state = "canister-0"
base_icon_state = "canister"
name = "pressure tank"
desc = "A large vessel containing pressurized gas."
icon = 'icons/map_icons/objects.dmi'
icon_state = "/obj/machinery/atmospherics/components/tank"
post_init_icon_state = "canister-0"
base_icon_state = "canister"
max_integrity = 800
integrity_failure = 0.2
density = TRUE
@@ -421,6 +422,7 @@
/obj/machinery/atmospherics/components/tank/air
name = "pressure tank (Air)"
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
/obj/machinery/atmospherics/components/tank/air/layer1
piping_layer = 1
@@ -441,63 +443,83 @@
/obj/machinery/atmospherics/components/tank/carbon_dioxide
gas_type = /datum/gas/carbon_dioxide
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
/obj/machinery/atmospherics/components/tank/plasma
gas_type = /datum/gas/plasma
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
/obj/machinery/atmospherics/components/tank/nitrogen
gas_type = /datum/gas/nitrogen
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
/obj/machinery/atmospherics/components/tank/oxygen
gas_type = /datum/gas/oxygen
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
/obj/machinery/atmospherics/components/tank/nitrous
gas_type = /datum/gas/nitrous_oxide
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
/obj/machinery/atmospherics/components/tank/bz
gas_type = /datum/gas/bz
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
/obj/machinery/atmospherics/components/tank/freon
gas_type = /datum/gas/freon
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
/obj/machinery/atmospherics/components/tank/halon
gas_type = /datum/gas/halon
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
/obj/machinery/atmospherics/components/tank/healium
gas_type = /datum/gas/healium
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
/obj/machinery/atmospherics/components/tank/hydrogen
gas_type = /datum/gas/hydrogen
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
/obj/machinery/atmospherics/components/tank/hypernoblium
gas_type = /datum/gas/hypernoblium
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
/obj/machinery/atmospherics/components/tank/miasma
gas_type = /datum/gas/miasma
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
/obj/machinery/atmospherics/components/tank/nitrium
gas_type = /datum/gas/nitrium
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
/obj/machinery/atmospherics/components/tank/pluoxium
gas_type = /datum/gas/pluoxium
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
/obj/machinery/atmospherics/components/tank/proto_nitrate
gas_type = /datum/gas/proto_nitrate
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
/obj/machinery/atmospherics/components/tank/tritium
gas_type = /datum/gas/tritium
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
/obj/machinery/atmospherics/components/tank/water_vapor
gas_type = /datum/gas/water_vapor
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
/obj/machinery/atmospherics/components/tank/zauker
gas_type = /datum/gas/zauker
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
/obj/machinery/atmospherics/components/tank/helium
gas_type = /datum/gas/helium
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
/obj/machinery/atmospherics/components/tank/antinoblium
gas_type = /datum/gas/antinoblium
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
///////////////////////////////////////////////////////////////////
// Tank Frame Structure
@@ -1,15 +1,16 @@
#define THERMOMACHINE_POWER_CONVERSION 0.01
/obj/machinery/atmospherics/components/unary/thermomachine
icon = 'icons/obj/machines/atmospherics/thermomachine.dmi'
icon_state = "thermo_base"
name = "Temperature control unit"
desc = "Heats or cools gas in connected pipes."
icon = 'icons/map_icons/objects.dmi'
icon_state = "/obj/machinery/atmospherics/components/unary/thermomachine"
post_init_icon_state = "thermo_base"
plane = GAME_PLANE
interaction_flags_atom = INTERACT_ATOM_ATTACK_HAND | INTERACT_ATOM_UI_INTERACT
name = "Temperature control unit"
desc = "Heats or cools gas in connected pipes."
density = TRUE
max_integrity = 300
armor_type = /datum/armor/unary_thermomachine
@@ -126,9 +127,7 @@
/obj/machinery/atmospherics/components/unary/thermomachine/update_overlays()
. = ..()
if(!initial(icon))
return
var/mutable_appearance/thermo_overlay = new(initial(icon))
var/mutable_appearance/thermo_overlay = new(icon)
var/image/pipe = get_pipe_image(thermo_overlay, "pipe", dir, pipe_color, piping_layer)
pipe.appearance_flags |= RESET_COLOR|KEEP_APART
. += pipe
@@ -334,6 +333,7 @@
return
/obj/machinery/atmospherics/components/unary/thermomachine/freezer
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
/obj/machinery/atmospherics/components/unary/thermomachine/freezer/layer1
piping_layer = 1
@@ -348,16 +348,19 @@
piping_layer = 5
/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on
icon_state = "/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on"
post_init_icon_state = "thermo_1"
flags_1 = /obj/machinery/atmospherics/components/unary/thermomachine::flags_1 // we want this one to generate a preview
on = TRUE
icon_state = "thermo_base_1"
/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on/Initialize(mapload)
. = ..()
if(target_temperature == initial(target_temperature))
target_temperature = min_temperature
/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on/coldroom
name = "Cold room temperature control unit"
icon_state = "thermo_base_1"
icon_state = "/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on/coldroom"
greyscale_colors = COLOR_CYAN
/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on/coldroom/Initialize(mapload)
@@ -365,6 +368,7 @@
target_temperature = COLD_ROOM_TEMP
/obj/machinery/atmospherics/components/unary/thermomachine/heater
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
/obj/machinery/atmospherics/components/unary/thermomachine/heater/layer1
piping_layer = 1
@@ -379,7 +383,8 @@
piping_layer = 5
/obj/machinery/atmospherics/components/unary/thermomachine/heater/on
icon_state = "/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on" // same icon as the freezer
post_init_icon_state = "thermo_1"
on = TRUE
icon_state = "thermo_base_1"
#undef THERMOMACHINE_POWER_CONVERSION
@@ -1,8 +1,9 @@
/obj/machinery/meter
name = "gas flow meter"
desc = "It measures something."
icon = 'icons/obj/pipes_n_cables/meter.dmi'
icon_state = "meter"
icon = 'icons/map_icons/objects.dmi'
icon_state = "/obj/machinery/meter"
post_init_icon_state = "meter"
layer = HIGH_PIPE_LAYER
power_channel = AREA_USAGE_ENVIRON
idle_power_usage = BASE_MACHINE_IDLE_CONSUMPTION * 0.05
@@ -198,12 +199,15 @@
// TURF METER - REPORTS A TILE'S AIR CONTENTS
// why are you yelling?
/obj/machinery/meter/turf
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
/obj/machinery/meter/turf/reattach_to_layer()
target = loc
/obj/machinery/meter/layer2
target_layer = 2
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
/obj/machinery/meter/layer4
target_layer = 4
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
@@ -6,8 +6,9 @@
/obj/machinery/portable_atmospherics/canister
name = "canister"
desc = "A canister for the storage of gas."
icon = 'icons/obj/pipes_n_cables/canisters.dmi'
icon_state = "#mapme"
icon = 'icons/map_icons/objects.dmi'
icon_state = "/obj/machinery/portable_atmospherics/canister"
post_init_icon_state = ""
greyscale_config = /datum/greyscale_config/canister
greyscale_colors = "#6b6b80"
density = TRUE
@@ -115,6 +116,8 @@
/obj/machinery/portable_atmospherics/canister/air
name = "Air canister"
desc = "Pre-mixed air."
icon_state = "/obj/machinery/portable_atmospherics/canister/air"
post_init_icon_state = ""
greyscale_config = /datum/greyscale_config/canister
greyscale_colors = "#c6c0b5"
@@ -122,18 +125,24 @@
name = "Antinoblium canister"
gas_type = /datum/gas/antinoblium
filled = 1
icon_state = "/obj/machinery/portable_atmospherics/canister/antinoblium"
post_init_icon_state = ""
greyscale_config = /datum/greyscale_config/canister/double_stripe
greyscale_colors = "#333333#fefb30"
/obj/machinery/portable_atmospherics/canister/bz
name = "\improper BZ canister"
gas_type = /datum/gas/bz
icon_state = "/obj/machinery/portable_atmospherics/canister/bz"
post_init_icon_state = ""
greyscale_config = /datum/greyscale_config/canister/double_stripe
greyscale_colors = "#9b5d7f#d0d2a0"
/obj/machinery/portable_atmospherics/canister/carbon_dioxide
name = "Carbon dioxide canister"
gas_type = /datum/gas/carbon_dioxide
icon_state = "/obj/machinery/portable_atmospherics/canister/carbon_dioxide"
post_init_icon_state = ""
greyscale_config = /datum/greyscale_config/canister/double_stripe
greyscale_colors = "#4e4c48#eaeaea"
@@ -141,6 +150,8 @@
name = "Freon canister"
gas_type = /datum/gas/freon
filled = 1
icon_state = "/obj/machinery/portable_atmospherics/canister/freon"
post_init_icon_state = ""
greyscale_config = /datum/greyscale_config/canister/double_stripe
greyscale_colors = "#6696ee#fefb30"
@@ -148,6 +159,8 @@
name = "Halon canister"
gas_type = /datum/gas/halon
filled = 1
icon_state = "/obj/machinery/portable_atmospherics/canister/halon"
post_init_icon_state = ""
greyscale_config = /datum/greyscale_config/canister/double_stripe
greyscale_colors = "#9b5d7f#368bff"
@@ -155,6 +168,8 @@
name = "Healium canister"
gas_type = /datum/gas/healium
filled = 1
icon_state = "/obj/machinery/portable_atmospherics/canister/healium"
post_init_icon_state = ""
greyscale_config = /datum/greyscale_config/canister/double_stripe
greyscale_colors = "#009823#ff0e00"
@@ -162,6 +177,8 @@
name = "Helium canister"
gas_type = /datum/gas/helium
filled = 1
icon_state = "/obj/machinery/portable_atmospherics/canister/helium"
post_init_icon_state = ""
greyscale_config = /datum/greyscale_config/canister/double_stripe
greyscale_colors = "#9b5d7f#368bff"
@@ -169,6 +186,8 @@
name = "Hydrogen canister"
gas_type = /datum/gas/hydrogen
filled = 1
icon_state = "/obj/machinery/portable_atmospherics/canister/hydrogen"
post_init_icon_state = ""
greyscale_config = /datum/greyscale_config/canister/double_stripe
greyscale_colors = "#eaeaea#be3455"
@@ -176,42 +195,56 @@
name = "Miasma canister"
gas_type = /datum/gas/miasma
filled = 1
icon_state = "/obj/machinery/portable_atmospherics/canister/miasma"
post_init_icon_state = ""
greyscale_config = /datum/greyscale_config/canister/double_stripe
greyscale_colors = "#009823#f7d5d3"
/obj/machinery/portable_atmospherics/canister/nitrogen
name = "Nitrogen canister"
gas_type = /datum/gas/nitrogen
icon_state = "/obj/machinery/portable_atmospherics/canister/nitrogen"
post_init_icon_state = ""
greyscale_config = /datum/greyscale_config/canister/double_stripe
greyscale_colors = "#e9ff5c#f4fce8"
/obj/machinery/portable_atmospherics/canister/nitrous_oxide
name = "Nitrous oxide canister"
gas_type = /datum/gas/nitrous_oxide
icon_state = "/obj/machinery/portable_atmospherics/canister/nitrous_oxide"
post_init_icon_state = ""
greyscale_config = /datum/greyscale_config/canister/double_stripe
greyscale_colors = "#c63e3b#f7d5d3"
/obj/machinery/portable_atmospherics/canister/nitrium
name = "Nitrium canister"
gas_type = /datum/gas/nitrium
icon_state = "/obj/machinery/portable_atmospherics/canister/nitrium"
post_init_icon_state = ""
greyscale_config = /datum/greyscale_config/canister
greyscale_colors = "#7b4732"
/obj/machinery/portable_atmospherics/canister/nob
name = "Hyper-noblium canister"
gas_type = /datum/gas/hypernoblium
icon_state = "/obj/machinery/portable_atmospherics/canister/nob"
post_init_icon_state = ""
greyscale_config = /datum/greyscale_config/canister/double_stripe
greyscale_colors = "#6399fc#b2b2b2"
/obj/machinery/portable_atmospherics/canister/oxygen
name = "Oxygen canister"
gas_type = /datum/gas/oxygen
icon_state = "/obj/machinery/portable_atmospherics/canister/oxygen"
post_init_icon_state = ""
greyscale_config = /datum/greyscale_config/canister/stripe
greyscale_colors = "#2786e5#e8fefe"
/obj/machinery/portable_atmospherics/canister/pluoxium
name = "Pluoxium canister"
gas_type = /datum/gas/pluoxium
icon_state = "/obj/machinery/portable_atmospherics/canister/pluoxium"
post_init_icon_state = ""
greyscale_config = /datum/greyscale_config/canister
greyscale_colors = "#2786e5"
@@ -219,18 +252,24 @@
name = "Proto Nitrate canister"
gas_type = /datum/gas/proto_nitrate
filled = 1
icon_state = "/obj/machinery/portable_atmospherics/canister/proto_nitrate"
post_init_icon_state = ""
greyscale_config = /datum/greyscale_config/canister/double_stripe
greyscale_colors = "#008200#33cc33"
/obj/machinery/portable_atmospherics/canister/plasma
name = "Plasma canister"
gas_type = /datum/gas/plasma
icon_state = "/obj/machinery/portable_atmospherics/canister/plasma"
post_init_icon_state = ""
greyscale_config = /datum/greyscale_config/canister/hazard
greyscale_colors = "#f62800#000000"
/obj/machinery/portable_atmospherics/canister/tritium
name = "Tritium canister"
gas_type = /datum/gas/tritium
icon_state = "/obj/machinery/portable_atmospherics/canister/tritium"
post_init_icon_state = ""
greyscale_config = /datum/greyscale_config/canister/hazard
greyscale_colors = "#3fcd40#000000"
@@ -238,6 +277,8 @@
name = "Water vapor canister"
gas_type = /datum/gas/water_vapor
filled = 1
icon_state = "/obj/machinery/portable_atmospherics/canister/water_vapor"
post_init_icon_state = ""
greyscale_config = /datum/greyscale_config/canister/double_stripe
greyscale_colors = "#4c4e4d#f7d5d3"
@@ -245,6 +286,8 @@
name = "Zauker canister"
gas_type = /datum/gas/zauker
filled = 1
icon_state = "/obj/machinery/portable_atmospherics/canister/zauker"
post_init_icon_state = ""
greyscale_config = /datum/greyscale_config/canister/double_stripe
greyscale_colors = "#009a00#006600"
@@ -266,6 +309,8 @@
/obj/machinery/portable_atmospherics/canister/anesthetic_mix
name = "Anesthetic mix"
desc = "A mixture of N2O and Oxygen"
icon_state = "/obj/machinery/portable_atmospherics/canister/anesthetic_mix"
post_init_icon_state = ""
greyscale_config = /datum/greyscale_config/canister/double_stripe
greyscale_colors = "#9fba6c#3d4680"
@@ -629,7 +674,7 @@
var/datum/greyscale_modify_menu/menu = new(
src, usr, list("[initial_config]"), CALLBACK(src, PROC_REF(recolor)),
starting_icon_state = initial(icon_state),
starting_icon_state = initial(post_init_icon_state) || initial(icon_state),
starting_config = initial_config,
starting_colors = initial(greyscale_colors)
)
@@ -122,6 +122,7 @@
/obj/item/clothing/mask/facescarf/rogue
name = "cloth of DOOM"
icon_state = "/obj/item/clothing/mask/facescarf/rogue"
greyscale_colors = "#292929"
/obj/item/clothing/glasses/eyepatch
+14 -3
View File
@@ -190,12 +190,13 @@
/obj/item/clothing/suit/armor/vest/ctf
name = "white shielded vest"
desc = "Standard issue vest for playing capture the flag."
icon = 'icons/mob/clothing/suits/ctf.dmi'
worn_icon = 'icons/mob/clothing/suits/ctf.dmi'
icon_state = "standard"
// Adding TRAIT_NODROP is done when the CTF spawner equips people
armor_type = /datum/armor/none
allowed = null
icon = 'icons/map_icons/clothing/suit/_suit.dmi'
icon_state = "/obj/item/clothing/suit/armor/vest/ctf"
post_init_icon_state = "standard"
greyscale_config = /datum/greyscale_config/ctf_standard
greyscale_config_worn = /datum/greyscale_config/ctf_standard/worn
greyscale_colors = "#ffffff"
@@ -227,7 +228,9 @@
/obj/item/clothing/suit/armor/vest/ctf/light
name = "light white shielded vest"
desc = "Lightweight vest for playing capture the flag."
icon_state = "light"
icon = 'icons/map_icons/clothing/suit/_suit.dmi'
icon_state = "/obj/item/clothing/suit/armor/vest/ctf/light"
post_init_icon_state = "light"
greyscale_config = /datum/greyscale_config/ctf_light
greyscale_config_worn = /datum/greyscale_config/ctf_light/worn
slowdown = -0.25
@@ -484,6 +487,7 @@
// Regular
/obj/item/clothing/suit/armor/vest/ctf/red
name = "red shielded vest"
icon_state = "/obj/item/clothing/suit/armor/vest/ctf/red"
inhand_icon_state = null
team_shield_icon = "shield-red"
greyscale_colors = COLOR_VIVID_RED
@@ -491,6 +495,7 @@
// Light
/obj/item/clothing/suit/armor/vest/ctf/light/red
name = "light red shielded vest"
icon_state = "/obj/item/clothing/suit/armor/vest/ctf/light/red"
inhand_icon_state = null
team_shield_icon = "shield-red"
greyscale_colors = COLOR_VIVID_RED
@@ -500,6 +505,7 @@
// Regular
/obj/item/clothing/suit/armor/vest/ctf/blue
name = "blue shielded vest"
icon_state = "/obj/item/clothing/suit/armor/vest/ctf/blue"
inhand_icon_state = null
team_shield_icon = "shield-old"
greyscale_colors = COLOR_DARK_CYAN
@@ -507,6 +513,7 @@
// Light
/obj/item/clothing/suit/armor/vest/ctf/light/blue
name = "light blue shielded vest"
icon_state = "/obj/item/clothing/suit/armor/vest/ctf/light/blue"
inhand_icon_state = null
team_shield_icon = "shield-old"
greyscale_colors = COLOR_DARK_CYAN
@@ -516,6 +523,7 @@
// Regular
/obj/item/clothing/suit/armor/vest/ctf/green
name = "green shielded vest"
icon_state = "/obj/item/clothing/suit/armor/vest/ctf/green"
inhand_icon_state = null
team_shield_icon = "shield-green"
greyscale_colors = COLOR_LIME
@@ -523,6 +531,7 @@
// Light
/obj/item/clothing/suit/armor/vest/ctf/light/green
name = "light green shielded vest"
icon_state = "/obj/item/clothing/suit/armor/vest/ctf/light/green"
inhand_icon_state = null
team_shield_icon = "shield-green"
greyscale_colors = COLOR_LIME
@@ -532,6 +541,7 @@
// Regular
/obj/item/clothing/suit/armor/vest/ctf/yellow
name = "yellow shielded vest"
icon_state = "/obj/item/clothing/suit/armor/vest/ctf/yellow"
inhand_icon_state = null
team_shield_icon = "shield-yellow"
greyscale_colors = COLOR_VIVID_YELLOW
@@ -539,6 +549,7 @@
// Light
/obj/item/clothing/suit/armor/vest/ctf/light/yellow
name = "light yellow shielded vest"
icon_state = "/obj/item/clothing/suit/armor/vest/ctf/light/yellow"
inhand_icon_state = null
team_shield_icon = "shield-yellow"
greyscale_colors = COLOR_VIVID_YELLOW
@@ -62,8 +62,9 @@
/obj/item/ctf_flag/blue/medisim
name = "\improper Bluesworth Hold Fair Maiden"
desc = "Protect your maiden, and capture theirs!"
icon = 'icons/obj/toys/plushes.dmi'
icon_state = "map_plushie_slime"
icon = 'icons/map_icons/items/_item.dmi'
icon_state = "/obj/item/ctf_flag/blue/medisim"
post_init_icon_state = "map_plushie_slime"
greyscale_config = /datum/greyscale_config/plush_slime
greyscale_colors = "#3399ff#000000"
force = 0
+1 -1
View File
@@ -159,7 +159,7 @@
/obj/item/clothing/shoes/sneakers/black,
/obj/item/clothing/gloves/color/white,
/obj/item/clothing/mask/gas/mime,
/obj/item/clothing/head/frenchberet,
/obj/item/clothing/head/beret/frenchberet,
/obj/item/clothing/suit/toggle/suspenders,
/obj/item/reagent_containers/cup/glass/bottle/bottleofnothing,
/obj/item/storage/backpack/mime,
@@ -93,9 +93,9 @@
chameleon_typecache |= typecacheof(type_to_add)
for(var/obj/item/item_type as anything in chameleon_typecache)
if(chameleon_blacklist[item_type] || (initial(item_type.item_flags) & ABSTRACT) || !initial(item_type.icon_state))
if(chameleon_blacklist[item_type] || (item_type::item_flags & ABSTRACT) || !item_type::icon_state)
continue
var/chameleon_item_name = "[initial(item_type.name)] ([initial(item_type.icon_state)])"
var/chameleon_item_name = "[item_type::name] ([item_type::post_init_icon_state || item_type::icon_state])"
chameleon_list[chameleon_item_name] = item_type
@@ -125,53 +125,53 @@
PROTECTED_PROC(TRUE) // Call update_look, not this!
var/atom/atom_target = target
atom_target.name = initial(picked_item.name)
atom_target.desc = initial(picked_item.desc)
atom_target.icon_state = initial(picked_item.icon_state)
atom_target.name = picked_item::name
atom_target.desc = picked_item::desc
atom_target.icon_state = picked_item::post_init_icon_state || picked_item::icon_state
if(isitem(atom_target))
var/obj/item/item_target = target
item_target.worn_icon = initial(picked_item.worn_icon)
item_target.lefthand_file = initial(picked_item.lefthand_file)
item_target.righthand_file = initial(picked_item.righthand_file)
item_target.worn_icon = picked_item::worn_icon
item_target.lefthand_file = picked_item::lefthand_file
item_target.righthand_file = picked_item::righthand_file
item_target.worn_icon_state = initial(picked_item.worn_icon_state)
item_target.inhand_icon_state = initial(picked_item.inhand_icon_state)
item_target.worn_icon_state = picked_item::worn_icon_state
item_target.inhand_icon_state = picked_item::inhand_icon_state
if(initial(picked_item.greyscale_colors))
if(initial(picked_item.greyscale_config_worn))
if(picked_item::greyscale_colors)
if(picked_item.greyscale_config_worn)
item_target.worn_icon = SSgreyscale.GetColoredIconByType(
initial(picked_item.greyscale_config_worn),
initial(picked_item.greyscale_colors),
picked_item::greyscale_config_worn,
picked_item::greyscale_colors,
)
if(initial(picked_item.greyscale_config_inhand_left))
if(picked_item::greyscale_config_inhand_left)
item_target.lefthand_file = SSgreyscale.GetColoredIconByType(
initial(picked_item.greyscale_config_inhand_left),
initial(picked_item.greyscale_colors),
picked_item::greyscale_config_inhand_left,
picked_item::greyscale_colors,
)
if(initial(picked_item.greyscale_config_inhand_right))
if(picked_item::greyscale_config_inhand_right)
item_target.righthand_file = SSgreyscale.GetColoredIconByType(
initial(picked_item.greyscale_config_inhand_right),
initial(picked_item.greyscale_colors),
picked_item::greyscale_config_inhand_right,
picked_item::greyscale_colors,
)
item_target.flags_inv = initial(picked_item.flags_inv)
item_target.hair_mask = initial(picked_item.hair_mask)
item_target.transparent_protection = initial(picked_item.transparent_protection)
item_target.flags_inv = picked_item::flags_inv
item_target.hair_mask = picked_item::hair_mask
item_target.transparent_protection = picked_item::transparent_protection
if(isclothing(item_target) && ispath(picked_item, /obj/item/clothing))
var/obj/item/clothing/clothing_target = item_target
var/obj/item/clothing/picked_clothing = picked_item
clothing_target.flags_cover = initial(picked_clothing.flags_cover)
clothing_target.flags_cover = picked_clothing::flags_cover
if(initial(picked_item.greyscale_config) && initial(picked_item.greyscale_colors))
if((picked_item::greyscale_config) && picked_item::greyscale_colors)
atom_target.icon = SSgreyscale.GetColoredIconByType(
initial(picked_item.greyscale_config),
initial(picked_item.greyscale_colors),
picked_item::greyscale_config,
picked_item::greyscale_colors,
)
else
atom_target.icon = initial(picked_item.icon)
atom_target.icon = picked_item::icon
/datum/action/item_action/chameleon/change/do_effect(trigger_flags)
select_look(owner)
@@ -18,12 +18,15 @@ do { \
/obj/item/clothing/under/chameleon
name = "black jumpsuit"
desc = "It's a plain jumpsuit. It has a small dial on the wrist."
icon_state = "jumpsuit"
greyscale_colors = "#3f3f3f"
icon = 'icons/map_icons/clothing/under/color.dmi'
icon_state = "/obj/item/clothing/under/color"
post_init_icon_state = "jumpsuit"
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
greyscale_config = /datum/greyscale_config/jumpsuit
greyscale_config_worn = /datum/greyscale_config/jumpsuit/worn
greyscale_config_inhand_left = /datum/greyscale_config/jumpsuit/inhand_left
greyscale_config_inhand_right = /datum/greyscale_config/jumpsuit/inhand_right
greyscale_colors = "#3f3f3f"
sensor_mode = SENSOR_OFF //Hey who's this guy on the Syndicate Shuttle??
random_sensor = FALSE
resistance_flags = NONE
@@ -225,14 +228,16 @@ do { \
/obj/item/clothing/shoes/chameleon
name = "black shoes"
desc = "A pair of black shoes."
icon_state = "sneakers"
icon = 'icons/map_icons/clothing/shoes.dmi'
icon_state = "/obj/item/clothing/shoes/chameleon"
post_init_icon_state = "sneakers"
inhand_icon_state = "sneakers_back"
body_parts_covered = FEET|LEGS
greyscale_colors = "#545454#ffffff"
greyscale_config = /datum/greyscale_config/sneakers
greyscale_config_worn = /datum/greyscale_config/sneakers/worn
greyscale_config_inhand_left = /datum/greyscale_config/sneakers/inhand_left
greyscale_config_inhand_right = /datum/greyscale_config/sneakers/inhand_right
greyscale_colors = "#545454#ffffff"
resistance_flags = NONE
armor_type = /datum/armor/shoes_chameleon
actions_types = list(/datum/action/item_action/chameleon/change/shoes)
@@ -243,12 +248,14 @@ do { \
create_storage(storage_type = /datum/storage/pockets/shoes)
/obj/item/clothing/shoes/chameleon/broken
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
/obj/item/clothing/shoes/chameleon/broken/Initialize(mapload)
. = ..()
BREAK_CHAMELEON_ACTION(src)
/obj/item/clothing/shoes/chameleon/noslip
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
clothing_traits = list(TRAIT_NO_SLIP_WATER)
can_be_bloody = FALSE
@@ -269,6 +276,7 @@ do { \
ADD_TRAIT(src, TRAIT_CONTRABAND_BLOCKER, INNATE_TRAIT)
/obj/item/storage/backpack/chameleon/broken
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
/obj/item/storage/backpack/chameleon/broken/Initialize(mapload)
. = ..()
@@ -308,8 +316,10 @@ do { \
name = "tablet"
actions_types = list(/datum/action/item_action/chameleon/change/tablet)
action_slots = ALL
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
/obj/item/modular_computer/pda/chameleon/broken
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
/obj/item/modular_computer/pda/chameleon/broken/Initialize(mapload)
. = ..()
+11 -7
View File
@@ -6,46 +6,50 @@
/obj/item/clothing/head/beanie
name = "beanie"
desc = "A stylish beanie. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their heads."
icon = 'icons/obj/clothing/head/beanie.dmi'
icon = 'icons/map_icons/clothing/head/_head.dmi'
worn_icon = 'icons/mob/clothing/head/beanie.dmi'
icon_state = "beanie"
icon_preview = 'icons/obj/fluff/previews.dmi'
icon_state_preview = "beanie_cloth"
icon_state = "/obj/item/clothing/head/beanie"
post_init_icon_state = "beanie"
custom_price = PAYCHECK_CREW * 1.2
greyscale_colors = "#EEEEEE#EEEEEE"
greyscale_config = /datum/greyscale_config/beanie
greyscale_config_worn = /datum/greyscale_config/beanie/worn
greyscale_colors = "#EEEEEE#EEEEEE"
flags_1 = IS_PLAYER_COLORABLE_1
/obj/item/clothing/head/beanie/black
name = "black beanie"
icon_state = "/obj/item/clothing/head/beanie/black"
greyscale_colors = "#4A4A4B#4A4A4B"
/obj/item/clothing/head/beanie/red
name = "red beanie"
icon_state = "/obj/item/clothing/head/beanie/red"
greyscale_colors = "#D91414#D91414"
/obj/item/clothing/head/beanie/darkblue
name = "dark blue beanie"
icon_state = "/obj/item/clothing/head/beanie/darkblue"
greyscale_colors = "#1E85BC#1E85BC"
/obj/item/clothing/head/beanie/yellow
name = "yellow beanie"
icon_state = "/obj/item/clothing/head/beanie/yellow"
greyscale_colors = "#E0C14F#E0C14F"
/obj/item/clothing/head/beanie/orange
name = "orange beanie"
icon_state = "/obj/item/clothing/head/beanie/orange"
greyscale_colors = "#C67A4B#C67A4B"
/obj/item/clothing/head/beanie/christmas
name = "christmas beanie"
icon_state = "/obj/item/clothing/head/beanie/christmas"
greyscale_colors = "#038000#960000"
/obj/item/clothing/head/beanie/durathread
name = "durathread beanie"
desc = "A beanie made from durathread, its resilient fibres provide some protection to the wearer."
icon_preview = 'icons/obj/fluff/previews.dmi'
icon_state_preview = "beanie_durathread"
icon_state = "/obj/item/clothing/head/beanie/durathread"
greyscale_colors = "#8291A1#8291A1"
armor_type = /datum/armor/beanie_durathread
+8 -2
View File
@@ -67,12 +67,15 @@
/obj/item/clothing/head/collectable/beret
name = "collectable beret"
desc = "A collectable red beret. It smells faintly of garlic."
icon_state = "beret"
icon = 'icons/map_icons/clothing/head/beret.dmi'
icon_state = "/obj/item/clothing/head/beret"
post_init_icon_state = "beret"
greyscale_config = /datum/greyscale_config/beret
greyscale_config_worn = /datum/greyscale_config/beret/worn
greyscale_colors = "#972A2A"
dog_fashion = /datum/dog_fashion/head/beret
hair_mask = /datum/hair_mask/standard_hat_middle
flags_1 = NO_NEW_GAGS_PREVIEW_1
/obj/item/clothing/head/collectable/welding
name = "collectable welding helmet"
@@ -95,11 +98,14 @@
/obj/item/clothing/head/collectable/flatcap
name = "collectable flat cap"
desc = "A collectible farmer's flat cap!"
icon_state = "beret_flat"
icon = 'icons/map_icons/clothing/head/_head.dmi'
icon_state = "/obj/item/clothing/head/flatcap"
post_init_icon_state = "beret_flat"
greyscale_config = /datum/greyscale_config/beret
greyscale_config_worn = /datum/greyscale_config/beret/worn
greyscale_colors = "#8F7654"
inhand_icon_state = null
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
/obj/item/clothing/head/collectable/pirate
name = "collectable pirate hat"
+8 -4
View File
@@ -134,18 +134,22 @@
/obj/item/clothing/head/costume/fancy
name = "fancy hat"
icon_state = "fancy_hat"
greyscale_colors = "#E3C937#782A81"
icon = 'icons/map_icons/clothing/head/_head.dmi'
icon_state = "/obj/item/clothing/head/costume/fancy"
post_init_icon_state = "fancy_hat"
greyscale_config = /datum/greyscale_config/fancy_hat
greyscale_config_worn = /datum/greyscale_config/fancy_hat/worn
greyscale_colors = "#E3C937#782A81"
flags_1 = IS_PLAYER_COLORABLE_1
/obj/item/clothing/head/costume/football_helmet
name = "football helmet"
icon_state = "football_helmet"
greyscale_colors = "#D74722"
icon = 'icons/map_icons/clothing/head/_head.dmi'
icon_state = "/obj/item/clothing/head/costume/football_helmet"
post_init_icon_state = "football_helmet"
greyscale_config = /datum/greyscale_config/football_helmet
greyscale_config_worn = /datum/greyscale_config/football_helmet/worn
greyscale_colors = "#D74722"
flags_1 = IS_PLAYER_COLORABLE_1
/obj/item/clothing/head/costume/tv_head
+4 -2
View File
@@ -47,9 +47,11 @@
inhand_icon_state = null
/obj/item/clothing/head/fedora/greyscale
icon_state = "fedora_greyscale"
inhand_icon_state = null
greyscale_colors = "#F0DAB4#794D2E"
icon = 'icons/map_icons/clothing/head/_head.dmi'
icon_state = "/obj/item/clothing/head/fedora/greyscale"
post_init_icon_state = "fedora_greyscale"
greyscale_config = /datum/greyscale_config/fedora
greyscale_config_worn = /datum/greyscale_config/fedora/worn
greyscale_colors = "#F0DAB4#794D2E"
flags_1 = IS_PLAYER_COLORABLE_1
+8 -12
View File
@@ -1,23 +1,19 @@
/obj/item/clothing/head/frenchberet
/obj/item/clothing/head/beret/frenchberet
name = "french beret"
desc = "A quality beret, infused with the aroma of chain-smoking, wine-swilling Parisians. You feel less inclined to engage in military conflict, for some reason."
icon_state = "beret"
greyscale_config = /datum/greyscale_config/beret
greyscale_config_worn = /datum/greyscale_config/beret/worn
greyscale_colors = "#972A2A"
hair_mask = /datum/hair_mask/standard_hat_middle
flags_1 = NO_NEW_GAGS_PREVIEW_1
/obj/item/clothing/head/frenchberet/Initialize(mapload)
/obj/item/clothing/head/beret/frenchberet/Initialize(mapload)
. = ..()
AddComponent(/datum/component/speechmod, replacements = strings("french_replacement.json", "french"), end_string = list(" Honh honh honh!"," Honh!"," Zut Alors!"), end_string_chance = 3, slots = ITEM_SLOT_HEAD)
/obj/item/clothing/head/frenchberet/equipped(mob/M, slot)
/obj/item/clothing/head/beret/frenchberet/equipped(mob/user, slot, initial)
. = ..()
if (slot & ITEM_SLOT_HEAD)
ADD_TRAIT(M, TRAIT_GARLIC_BREATH, type)
ADD_TRAIT(user, TRAIT_GARLIC_BREATH, type)
else
REMOVE_TRAIT(M, TRAIT_GARLIC_BREATH, type)
REMOVE_TRAIT(user, TRAIT_GARLIC_BREATH, type)
/obj/item/clothing/head/frenchberet/dropped(mob/M)
/obj/item/clothing/head/beret/frenchberet/dropped(mob/user, silent)
. = ..()
REMOVE_TRAIT(M, TRAIT_GARLIC_BREATH, type)
REMOVE_TRAIT(user, TRAIT_GARLIC_BREATH, type)
+11 -7
View File
@@ -98,9 +98,9 @@
/obj/item/clothing/head/flatcap
name = "flat cap"
desc = "A working man's cap."
icon_state = "beret_flat"
icon_preview = 'icons/obj/clothing/head/beret.dmi'
icon_state_preview = "beret_flat"
icon = 'icons/map_icons/clothing/head/_head.dmi'
icon_state = "/obj/item/clothing/head/flatcap"
post_init_icon_state = "beret_flat"
greyscale_config = /datum/greyscale_config/beret
greyscale_config_worn = /datum/greyscale_config/beret/worn
greyscale_colors = "#8F7654"
@@ -200,19 +200,23 @@
/obj/item/clothing/head/costume/santa/gags
name = "santa hat"
desc = "On the first day of christmas my employer gave to me!"
icon_state = "santa_hat"
greyscale_colors = "#cc0000#f8f8f8"
icon = 'icons/map_icons/clothing/head/_head.dmi'
icon_state = "/obj/item/clothing/head/costume/santa/gags"
post_init_icon_state = "santa_hat"
greyscale_config = /datum/greyscale_config/santa_hat
greyscale_config_worn = /datum/greyscale_config/santa_hat/worn
greyscale_colors = "#cc0000#f8f8f8"
flags_1 = IS_PLAYER_COLORABLE_1
/obj/item/clothing/head/costume/jester
name = "jester hat"
desc = "A hat with bells, to add some merriness to the suit."
icon_state = "jester_map"
greyscale_colors = "#00ff00#ff0000"
icon = 'icons/map_icons/clothing/head/_head.dmi'
icon_state = "/obj/item/clothing/head/costume/jester"
post_init_icon_state = "jester_map"
greyscale_config = /datum/greyscale_config/jester_hat
greyscale_config_worn = /datum/greyscale_config/jester_hat/worn
greyscale_colors = "#00ff00#ff0000"
flags_1 = IS_PLAYER_COLORABLE_1
/obj/item/clothing/head/costume/jesteralt
+28 -12
View File
@@ -124,7 +124,9 @@
/obj/item/clothing/head/caphat/beret
name = "captain's beret"
desc = "For the Captains known for their sense of fashion."
icon_state = "beret_badge"
icon = 'icons/map_icons/clothing/head/_head.dmi'
icon_state = "/obj/item/clothing/head/caphat/beret"
post_init_icon_state = "beret_badge"
greyscale_config = /datum/greyscale_config/beret_badge
greyscale_config_worn = /datum/greyscale_config/beret_badge/worn
greyscale_colors = "#0070B7#FFCE5B"
@@ -383,10 +385,10 @@
/obj/item/clothing/head/beret
name = "beret"
desc = "A beret, a mime's favorite headwear."
icon_state = "beret"
icon_preview = 'icons/obj/clothing/head/beret.dmi'
icon_state_preview = "beret"
dog_fashion = /datum/dog_fashion/head/beret
icon = 'icons/map_icons/clothing/head/beret.dmi'
icon_state = "/obj/item/clothing/head/beret"
post_init_icon_state = "beret"
greyscale_config = /datum/greyscale_config/beret
greyscale_config_worn = /datum/greyscale_config/beret/worn
greyscale_colors = "#972A2A"
@@ -443,7 +445,9 @@
/obj/item/clothing/head/hats/hos/beret
name = "head of security's beret"
desc = "A robust beret for the Head of Security, for looking stylish while not sacrificing protection."
icon_state = "beret_badge"
icon = 'icons/map_icons/clothing/head/_head.dmi'
icon_state = "/obj/item/clothing/head/hats/hos/beret"
post_init_icon_state = "beret_badge"
greyscale_config = /datum/greyscale_config/beret_badge
greyscale_config_worn = /datum/greyscale_config/beret_badge/worn
greyscale_colors = "#39393f#f0cc8f"
@@ -452,6 +456,7 @@
/obj/item/clothing/head/hats/hos/beret/navyhos
name = "head of security's formal beret"
desc = "A special beret with the Head of Security's insignia emblazoned on it. A symbol of excellence, a badge of courage, a mark of distinction."
icon_state = "/obj/item/clothing/head/hats/hos/beret/navyhos"
greyscale_colors = "#638799#f0cc8f"
/obj/item/clothing/head/hats/hos/beret/syndicate
@@ -558,7 +563,8 @@
/obj/item/clothing/head/beret/sec
name = "security beret"
desc = "A robust beret with the security insignia emblazoned on it. Uses reinforced fabric to offer sufficient protection."
icon_state = "beret_badge"
icon_state = "/obj/item/clothing/head/beret/sec"
post_init_icon_state = "beret_badge"
greyscale_config = /datum/greyscale_config/beret_badge
greyscale_config_worn = /datum/greyscale_config/beret_badge/worn
greyscale_colors = "#a52f29#F2F2F2"
@@ -580,23 +586,27 @@
/obj/item/clothing/head/beret/sec/navywarden
name = "warden's beret"
desc = "A special beret with the Warden's insignia emblazoned on it. For wardens with class."
icon_state = "/obj/item/clothing/head/beret/sec/navywarden"
greyscale_colors = "#638799#ebebeb"
strip_delay = 60
/obj/item/clothing/head/beret/sec/navyofficer
desc = "A special beret with the security insignia emblazoned on it. For officers with class."
icon_state = "/obj/item/clothing/head/beret/sec/navyofficer"
greyscale_colors = "#638799#a52f29"
//Science
/obj/item/clothing/head/beret/science
name = "science beret"
desc = "A science-themed beret for our hardworking scientists."
icon_state = "/obj/item/clothing/head/beret/science"
greyscale_colors = "#8D008F"
flags_1 = NONE
/obj/item/clothing/head/beret/science/rd
desc = "A purple badge with the insignia of the Research Director attached. For the paper-shuffler in you!"
icon_state = "beret_badge"
icon_state = "/obj/item/clothing/head/beret/science/rd"
post_init_icon_state = "beret_badge"
greyscale_config = /datum/greyscale_config/beret_badge
greyscale_config_worn = /datum/greyscale_config/beret_badge/worn
greyscale_colors = "#7e1980#c9cbcb"
@@ -605,17 +615,20 @@
/obj/item/clothing/head/beret/medical
name = "medical beret"
desc = "A medical-flavored beret for the doctor in you!"
icon_state = "/obj/item/clothing/head/beret/medical"
greyscale_colors = COLOR_WHITE
flags_1 = NONE
/obj/item/clothing/head/beret/medical/paramedic
name = "paramedic beret"
desc = "For finding corpses in style!"
icon_state = "/obj/item/clothing/head/beret/medical/paramedic"
greyscale_colors = "#16313D"
/obj/item/clothing/head/beret/medical/cmo
name = "chief medical officer beret"
desc = "A beret in a distinct surgical turquoise!"
icon_state = "/obj/item/clothing/head/beret/medical/cmo"
greyscale_colors = "#5EB8B8"
/obj/item/clothing/head/utility/surgerycap
@@ -749,6 +762,7 @@
/obj/item/clothing/head/beret/engi
name = "engineering beret"
desc = "Might not protect you from radiation, but definitely will protect you from looking unfashionable!"
icon_state = "/obj/item/clothing/head/beret/engi"
greyscale_colors = "#FFBC30"
flags_1 = NONE
@@ -756,6 +770,7 @@
/obj/item/clothing/head/beret/cargo
name = "cargo beret"
desc = "No need to compensate when you can wear this beret!"
icon_state = "/obj/item/clothing/head/beret/cargo"
greyscale_colors = "#b7723d"
flags_1 = NONE
@@ -768,9 +783,8 @@
/obj/item/clothing/head/beret/durathread
name = "durathread beret"
desc = "A beret made from durathread, its resilient fibers provide some protection to the wearer."
icon_state = "beret_badge"
icon_preview = 'icons/obj/fluff/previews.dmi'
icon_state_preview = "beret_durathread"
icon_state = "/obj/item/clothing/head/beret/durathread"
post_init_icon_state = "beret_badge"
greyscale_config = /datum/greyscale_config/beret_badge
greyscale_config_worn = /datum/greyscale_config/beret_badge/worn
greyscale_colors = "#C5D4F3#ECF1F8"
@@ -798,7 +812,8 @@
/obj/item/clothing/head/beret/centcom_formal
name = "\improper CentCom Formal Beret"
desc = "Sometimes, a compromise between fashion and defense needs to be made. Thanks to Nanotrasen's most recent nano-fabric durability enhancements, this time, it's not the case."
icon_state = "beret_badge"
icon_state = "/obj/item/clothing/head/beret/centcom_formal"
post_init_icon_state = "beret_badge"
greyscale_config = /datum/greyscale_config/beret_badge
greyscale_config_worn = /datum/greyscale_config/beret_badge/worn
greyscale_colors = "#46b946#f2c42e"
@@ -826,7 +841,8 @@
/obj/item/clothing/head/beret/militia
name = "\improper Militia General's Beret"
desc = "A rallying cry for the inhabitants of the Spinward Sector, the heroes that wear this keep the horrors of the galaxy at bay. Call them, and they'll be there in a minute!"
icon_state = "beret_badge"
icon_state = "/obj/item/clothing/head/beret/militia"
post_init_icon_state = "beret_badge"
greyscale_config = /datum/greyscale_config/beret_badge
greyscale_config_worn = /datum/greyscale_config/beret_badge/worn
greyscale_colors = "#43523d#a2abb0"
+16 -8
View File
@@ -1,31 +1,39 @@
/obj/item/clothing/head/costume/sombrero
name = "sombrero"
desc = "You can practically taste the fiesta."
icon = 'icons/obj/clothing/head/sombrero.dmi'
icon_state = "sombrero"
inhand_icon_state = "sombrero"
desc = "You can practically taste the fiesta."
flags_inv = HIDEHAIR
dog_fashion = /datum/dog_fashion/head/sombrero
/obj/item/clothing/head/costume/sombrero/green
name = "green sombrero"
desc = "As elegant as a dancing cactus."
icon = 'icons/map_icons/clothing/head/_head.dmi'
icon_state = "/obj/item/clothing/head/costume/sombrero/green"
post_init_icon_state = "sombrero"
flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS
dog_fashion = null
greyscale_config = /datum/greyscale_config/sombrero
greyscale_config_worn = /datum/greyscale_config/sombrero/worn
greyscale_config_inhand_left = /datum/greyscale_config/sombrero/lefthand
greyscale_config_inhand_right = /datum/greyscale_config/sombrero/righthand
/obj/item/clothing/head/costume/sombrero/green
name = "green sombrero"
desc = "As elegant as a dancing cactus."
flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS
dog_fashion = null
greyscale_colors = "#13d968#ffffff"
flags_1 = IS_PLAYER_COLORABLE_1
/obj/item/clothing/head/costume/sombrero/shamebrero
name = "shamebrero"
icon_state = "shamebrero"
desc = "Once it's on, it never comes off."
icon = 'icons/map_icons/clothing/head/_head.dmi'
icon_state = "/obj/item/clothing/head/costume/sombrero/shamebrero"
post_init_icon_state = "shamebrero"
dog_fashion = null
greyscale_config = /datum/greyscale_config/sombrero
greyscale_config_worn = /datum/greyscale_config/sombrero/worn
greyscale_config_inhand_left = /datum/greyscale_config/sombrero/lefthand
greyscale_config_inhand_right = /datum/greyscale_config/sombrero/righthand
greyscale_colors = "#d565d3#f8db18"
flags_1 = IS_PLAYER_COLORABLE_1
+1 -1
View File
@@ -59,7 +59,7 @@
/obj/item/clothing/mask/update_icon_state()
. = ..()
icon_state = "[base_icon_state || initial(icon_state)][up ? "_up" : ""]"
icon_state = "[base_icon_state || initial(post_init_icon_state) || initial(icon_state)][up ? "_up" : ""]"
/**
* Proc called in lungs.dm to act if wearing a mask with filters, used to reduce the filters durability, return a changed gas mixture depending on the filter status
+33 -12
View File
@@ -1,4 +1,10 @@
/obj/item/clothing/mask/bandana
name = "bandana"
desc = "A fine bandana with nanotech lining."
icon = 'icons/map_icons/clothing/mask.dmi'
icon_state = "/obj/item/clothing/mask/bandana"
post_init_icon_state = "bandana"
inhand_icon_state = "greyscale_bandana"
w_class = WEIGHT_CLASS_TINY
flags_cover = MASKCOVERSMOUTH
flags_inv = HIDEFACE|HIDEFACIALHAIR|HIDESNOUT
@@ -9,11 +15,7 @@
species_exception = list(/datum/species/golem)
dying_key = DYE_REGISTRY_BANDANA
flags_1 = IS_PLAYER_COLORABLE_1
name = "bandana"
desc = "A fine bandana with nanotech lining."
icon_state = "bandana"
icon_state_preview = "bandana_cloth"
inhand_icon_state = "greyscale_bandana"
greyscale_config = /datum/greyscale_config/bandana
greyscale_config_worn = /datum/greyscale_config/bandana/worn
greyscale_config_inhand_left = /datum/greyscale_config/bandana/inhands_left
@@ -81,36 +83,42 @@
/obj/item/clothing/mask/bandana/red
name = "red bandana"
desc = "A fine red bandana with nanotech lining."
icon_state = "/obj/item/clothing/mask/bandana/red"
greyscale_colors = "#A02525"
flags_1 = NONE
/obj/item/clothing/mask/bandana/blue
name = "blue bandana"
desc = "A fine blue bandana with nanotech lining."
icon_state = "/obj/item/clothing/mask/bandana/blue"
greyscale_colors = "#294A98"
flags_1 = NONE
/obj/item/clothing/mask/bandana/purple
name = "purple bandana"
desc = "A fine purple bandana with nanotech lining."
icon_state = "/obj/item/clothing/mask/bandana/purple"
greyscale_colors = "#9900CC"
flags_1 = NONE
/obj/item/clothing/mask/bandana/green
name = "green bandana"
desc = "A fine green bandana with nanotech lining."
icon_state = "/obj/item/clothing/mask/bandana/green"
greyscale_colors = "#3D9829"
flags_1 = NONE
/obj/item/clothing/mask/bandana/gold
name = "gold bandana"
desc = "A fine gold bandana with nanotech lining."
icon_state = "/obj/item/clothing/mask/bandana/gold"
greyscale_colors = "#DAC20E"
flags_1 = NONE
/obj/item/clothing/mask/bandana/orange
name = "orange bandana"
desc = "A fine orange bandana with nanotech lining."
icon_state = "/obj/item/clothing/mask/bandana/orange"
greyscale_colors = "#da930e"
flags_1 = NONE
@@ -118,27 +126,29 @@
name = "black bandana"
desc = "A fine black bandana with nanotech lining."
greyscale_colors = "#2e2e2e"
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1 // Same color as the basetype
flags_1 = NONE
/obj/item/clothing/mask/bandana/white
name = "white bandana"
desc = "A fine white bandana with nanotech lining."
icon_state = "/obj/item/clothing/mask/bandana/white"
greyscale_colors = "#DCDCDC"
flags_1 = NONE
icon_state_preview = "bandana_cloth"
/obj/item/clothing/mask/bandana/durathread
name = "durathread bandana"
desc = "A bandana made from durathread, you wish it would provide some protection to its wearer, but it's far too thin..."
icon_state = "/obj/item/clothing/mask/bandana/durathread"
greyscale_colors = "#5c6d80"
flags_1 = NONE
icon_preview = 'icons/obj/fluff/previews.dmi'
icon_state_preview = "bandana_durathread"
/obj/item/clothing/mask/bandana/striped
name = "striped bandana"
desc = "A fine bandana with nanotech lining and a stripe across."
icon_state = "bandstriped"
icon = 'icons/map_icons/clothing/mask.dmi'
icon_state = "/obj/item/clothing/mask/bandana/striped"
post_init_icon_state = "bandstriped"
greyscale_config = /datum/greyscale_config/bandana/striped
greyscale_config_worn = /datum/greyscale_config/bandana/striped/worn
greyscale_config_inhand_left = /datum/greyscale_config/bandana/striped/inhands_left
@@ -149,49 +159,57 @@
/obj/item/clothing/mask/bandana/striped/black
name = "striped bandana"
desc = "A fine black and white bandana with nanotech lining and a stripe across."
greyscale_colors = "#2e2e2e#C6C6C6"
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1 // same exact icon/color as the base type
flags_1 = NONE
/obj/item/clothing/mask/bandana/striped/security
name = "striped security bandana"
desc = "A fine bandana with nanotech lining, a stripe across and security colors."
icon_state = "/obj/item/clothing/mask/bandana/striped/security"
greyscale_colors = "#A02525#2e2e2e"
flags_1 = NONE
/obj/item/clothing/mask/bandana/striped/science
name = "striped science bandana"
desc = "A fine bandana with nanotech lining, a stripe across and science colors."
icon_state = "/obj/item/clothing/mask/bandana/striped/science"
greyscale_colors = "#DCDCDC#8019a0"
flags_1 = NONE
/obj/item/clothing/mask/bandana/striped/engineering
name = "striped engineering bandana"
desc = "A fine bandana with nanotech lining, a stripe across and engineering colors."
icon_state = "/obj/item/clothing/mask/bandana/striped/engineering"
greyscale_colors = "#dab50e#ec7404"
flags_1 = NONE
/obj/item/clothing/mask/bandana/striped/medical
name = "striped medical bandana"
desc = "A fine bandana with nanotech lining, a stripe across and medical colors."
icon_state = "/obj/item/clothing/mask/bandana/striped/medical"
greyscale_colors = "#DCDCDC#5995BA"
flags_1 = NONE
/obj/item/clothing/mask/bandana/striped/cargo
name = "striped cargo bandana"
desc = "A fine bandana with nanotech lining, a stripe across and cargo colors."
icon_state = "/obj/item/clothing/mask/bandana/striped/cargo"
greyscale_colors = "#967032#5F350B"
flags_1 = NONE
/obj/item/clothing/mask/bandana/striped/botany
name = "striped botany bandana"
desc = "A fine bandana with nanotech lining, a stripe across and botany colors."
icon_state = "/obj/item/clothing/mask/bandana/striped/botany"
greyscale_colors = "#3D9829#294A98"
flags_1 = NONE
/obj/item/clothing/mask/bandana/skull
name = "skull bandana"
desc = "A fine bandana with nanotech lining and a skull emblem."
icon_state = "bandskull"
icon = 'icons/map_icons/clothing/mask.dmi'
icon_state = "/obj/item/clothing/mask/bandana/skull"
post_init_icon_state = "bandskull"
greyscale_config = /datum/greyscale_config/bandana/skull
greyscale_config_worn = /datum/greyscale_config/bandana/skull/worn
greyscale_config_inhand_left = /datum/greyscale_config/bandana/skull/inhands_left
@@ -201,6 +219,7 @@
/obj/item/clothing/mask/bandana/skull/black
desc = "A fine black bandana with nanotech lining and a skull emblem."
icon_state = "/obj/item/clothing/mask/bandana/skull/black"
greyscale_colors = "#2e2e2e#C6C6C6"
flags_1 = NONE
@@ -208,7 +227,6 @@
name = "facescarf"
desc = "Cover your face like in the cowboy movies. It also has breathtube so you can wear it everywhere!"
actions_types = list(/datum/action/item_action/adjust)
icon_state = "facescarf"
inhand_icon_state = "greyscale_facescarf"
alternate_worn_layer = BACK_LAYER
clothing_flags = BLOCK_GAS_SMOKE_EFFECT|MASKINTERNALS
@@ -220,6 +238,9 @@
visor_flags_cover = MASKCOVERSMOUTH
custom_price = PAYCHECK_CREW
greyscale_colors = "#eeeeee"
icon = 'icons/map_icons/clothing/mask.dmi'
icon_state = "/obj/item/clothing/mask/facescarf"
post_init_icon_state = "facescarf"
greyscale_config = /datum/greyscale_config/facescarf
greyscale_config_worn = /datum/greyscale_config/facescarf/worn
greyscale_config_inhand_left = /datum/greyscale_config/facescarf/inhands_left
+6 -2
View File
@@ -36,13 +36,15 @@
/obj/item/clothing/mask/kitsune
name = "kitsune mask"
desc = "Porcelain mask made in the style of the Sol-3 region. It is painted to look like a kitsune."
icon_state = "kitsune"
inhand_icon_state = null
w_class = WEIGHT_CLASS_SMALL
adjusted_flags = ITEM_SLOT_HEAD
flags_inv = HIDEFACE|HIDEFACIALHAIR
custom_price = PAYCHECK_CREW
greyscale_colors = "#EEEEEE#AA0000"
icon = 'icons/map_icons/clothing/mask.dmi'
icon_state = "/obj/item/clothing/mask/kitsune"
post_init_icon_state = "kitsune"
greyscale_config = /datum/greyscale_config/kitsune
greyscale_config_worn = /datum/greyscale_config/kitsune/worn
flags_1 = IS_PLAYER_COLORABLE_1
@@ -62,12 +64,14 @@
/obj/item/clothing/mask/rebellion
name = "rebellion mask"
desc = "Mask that is usually used during rebellions by insurgents. It covers the entire face and makes you unrecognizable."
icon_state = "rebellion_mask"
inhand_icon_state = null
w_class = WEIGHT_CLASS_SMALL
flags_inv = HIDEFACE|HIDEFACIALHAIR|HIDESNOUT
custom_price = PAYCHECK_CREW
greyscale_colors = COLOR_VERY_LIGHT_GRAY
icon = 'icons/map_icons/clothing/mask.dmi'
icon_state = "/obj/item/clothing/mask/rebellion"
post_init_icon_state = "rebellion_mask"
greyscale_config = /datum/greyscale_config/rebellion_mask
greyscale_config_worn = /datum/greyscale_config/rebellion_mask/worn
flags_1 = IS_PLAYER_COLORABLE_1
+9 -2
View File
@@ -41,13 +41,15 @@
/obj/item/clothing/mask/muzzle/tape
name = "tape piece"
desc = "A piece of tape that can be put over someone's mouth."
icon_state = "tape_piece"
worn_icon_state = "tape_piece_worn"
inhand_icon_state = null
w_class = WEIGHT_CLASS_TINY
clothing_flags = INEDIBLE_CLOTHING
equip_delay_other = 40
strip_delay = 40
icon = 'icons/map_icons/clothing/mask.dmi'
icon_state = "/obj/item/clothing/mask/muzzle/tape"
post_init_icon_state = "tape_piece"
greyscale_config = /datum/greyscale_config/tape_piece
greyscale_config_worn = /datum/greyscale_config/tape_piece/worn
greyscale_colors = "#B2B2B2"
@@ -92,12 +94,14 @@
/obj/item/clothing/mask/muzzle/tape/super
name = "super tape piece"
desc = "A piece of tape that can be put over someone's mouth. This one has extra strength."
icon_state = "/obj/item/clothing/mask/muzzle/tape/super"
greyscale_colors = "#4D4D4D"
strip_delay = 80
/obj/item/clothing/mask/muzzle/tape/surgical
name = "surgical tape piece"
desc = "A piece of tape that can be put over someone's mouth. As long as you apply this to your patient, you won't hear their screams of pain!"
icon_state = "/obj/item/clothing/mask/muzzle/tape/surgical"
greyscale_colors = "#70BAE7"
equip_delay_other = 30
strip_delay = 30
@@ -105,8 +109,10 @@
/obj/item/clothing/mask/muzzle/tape/pointy
name = "pointy tape piece"
desc = "A piece of tape that can be put over someone's mouth. Looks like it will hurt if this is ripped off."
icon_state = "tape_piece_spikes"
worn_icon_state = "tape_piece_spikes_worn"
icon = 'icons/map_icons/clothing/mask.dmi'
icon_state = "/obj/item/clothing/mask/muzzle/tape/pointy"
post_init_icon_state = "tape_piece_spikes"
greyscale_config = /datum/greyscale_config/tape_piece/spikes
greyscale_config_worn = /datum/greyscale_config/tape_piece/worn/spikes
greyscale_colors = "#E64539#AD2F45"
@@ -116,6 +122,7 @@
/obj/item/clothing/mask/muzzle/tape/pointy/super
name = "super pointy tape piece"
desc = "A piece of tape that can be put over someone's mouth. This thing could rip your face into a thousand pieces if ripped off."
icon_state = "/obj/item/clothing/mask/muzzle/tape/pointy/super"
greyscale_colors = "#8C0A00#300008"
strip_delay = 60
stripping_damage = 20
+49 -16
View File
@@ -26,11 +26,12 @@
/obj/item/clothing/neck/bowtie
name = "bow tie"
desc = "A small neosilk bowtie."
icon = 'icons/obj/clothing/neck.dmi'
icon_state = "bowtie_greyscale"
inhand_icon_state = "" //no inhands
w_class = WEIGHT_CLASS_SMALL
custom_price = PAYCHECK_CREW
icon = 'icons/map_icons/clothing/neck.dmi'
icon_state = "/obj/item/clothing/neck/bowtie"
post_init_icon_state = "bowtie_greyscale"
greyscale_config = /datum/greyscale_config/ties
greyscale_config_worn = /datum/greyscale_config/ties/worn
greyscale_colors = "#151516ff"
@@ -39,7 +40,9 @@
/obj/item/clothing/neck/bowtie/rainbow
name = "rainbow bow tie"
desc = "An extremely large neosilk rainbow-colored bowtie."
icon = 'icons/obj/clothing/neck.dmi'
icon_state = "bowtie_rainbow"
post_init_icon_state = null
greyscale_config = null
greyscale_config_worn = null
greyscale_colors = null
@@ -47,12 +50,13 @@
/obj/item/clothing/neck/tie
name = "slick tie"
desc = "A neosilk tie."
icon = 'icons/obj/clothing/neck.dmi'
icon_state = "tie_greyscale_tied"
inhand_icon_state = "" //no inhands
alternate_worn_layer = LOW_NECK_LAYER // So that it renders below suit jackets, MODsuits, etc
w_class = WEIGHT_CLASS_SMALL
custom_price = PAYCHECK_CREW
icon = 'icons/map_icons/clothing/neck.dmi'
icon_state = "/obj/item/clothing/neck/tie"
post_init_icon_state = "tie_greyscale_tied"
greyscale_config = /datum/greyscale_config/ties
greyscale_config_worn = /datum/greyscale_config/ties/worn
greyscale_colors = "#4d4e4e"
@@ -154,37 +158,45 @@
/obj/item/clothing/neck/tie/blue
name = "blue tie"
icon_state = "tie_greyscale_untied"
icon_state = "/obj/item/clothing/neck/tie/blue"
post_init_icon_state = "tie_greyscale_untied"
greyscale_colors = "#5275b6ff"
/obj/item/clothing/neck/tie/red
name = "red tie"
icon_state = "tie_greyscale_untied"
icon_state = "/obj/item/clothing/neck/tie/red"
post_init_icon_state = "tie_greyscale_untied"
greyscale_colors = "#c23838ff"
/obj/item/clothing/neck/tie/red/tied
is_tied = TRUE
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
/obj/item/clothing/neck/tie/red/hitman
desc = "This is a $47,000 custom-tailored Référence Du Tueur À Gages tie. The clot is from neosilkworms raised at a tie microfarm in Cookwell, from a secret pattern passed down by monk tailors since the twenty-first century!"
icon_state = "tie_greyscale_untied"
tie_timer = 1 SECONDS // You're a professional.
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
/obj/item/clothing/neck/tie/red/hitman/tied
is_tied = TRUE
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
/obj/item/clothing/neck/tie/black
name = "black tie"
icon_state = "tie_greyscale_untied"
icon_state = "/obj/item/clothing/neck/tie/black"
post_init_icon_state = "tie_greyscale_untied"
greyscale_colors = "#151516ff"
/obj/item/clothing/neck/tie/black/tied
is_tied = TRUE
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
/obj/item/clothing/neck/tie/horrible
name = "horrible tie"
desc = "A neosilk tie. This one is disgusting."
icon = 'icons/obj/clothing/neck.dmi'
icon_state = "horribletie"
post_init_icon_state = null
clip_on = TRUE
greyscale_config = null
greyscale_config_worn = null
@@ -192,7 +204,9 @@
/obj/item/clothing/neck/tie/disco
name = "horrific necktie"
icon = 'icons/obj/clothing/neck.dmi'
icon_state = "eldritch_tie"
post_init_icon_state = null
desc = "The necktie is adorned with a garish pattern. It's disturbingly vivid. Somehow you feel as if it would be wrong to ever take it off. It's your friend now. You will betray it if you change it for some boring scarf."
clip_on = TRUE
greyscale_config = null
@@ -202,7 +216,9 @@
/obj/item/clothing/neck/tie/detective
name = "loose tie"
desc = "A loosely tied necktie, a perfect accessory for the over-worked detective."
icon = 'icons/obj/clothing/neck.dmi'
icon_state = "detective"
post_init_icon_state = null
clip_on = TRUE
greyscale_config = null
greyscale_config_worn = null
@@ -349,10 +365,10 @@
/obj/item/clothing/neck/scarf
name = "scarf"
icon_state = "scarf"
icon_preview = 'icons/obj/fluff/previews.dmi'
icon_state_preview = "scarf_cloth"
desc = "A stylish scarf. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their necks."
icon = 'icons/map_icons/clothing/neck.dmi'
icon_state = "/obj/item/clothing/neck/scarf"
post_init_icon_state = "scarf"
w_class = WEIGHT_CLASS_TINY
custom_price = PAYCHECK_CREW
greyscale_colors = "#EEEEEE#EEEEEE"
@@ -362,81 +378,98 @@
/obj/item/clothing/neck/scarf/black
name = "black scarf"
icon_state = "/obj/item/clothing/neck/scarf/black"
greyscale_colors = "#4A4A4B#4A4A4B"
/obj/item/clothing/neck/scarf/pink
name = "pink scarf"
icon_state = "/obj/item/clothing/neck/scarf/pink"
greyscale_colors = "#F699CD#F699CD"
/obj/item/clothing/neck/scarf/red
name = "red scarf"
icon_state = "/obj/item/clothing/neck/scarf/red"
greyscale_colors = "#D91414#D91414"
/obj/item/clothing/neck/scarf/green
name = "green scarf"
icon_state = "/obj/item/clothing/neck/scarf/green"
greyscale_colors = "#5C9E54#5C9E54"
/obj/item/clothing/neck/scarf/darkblue
name = "dark blue scarf"
icon_state = "/obj/item/clothing/neck/scarf/darkblue"
greyscale_colors = "#1E85BC#1E85BC"
/obj/item/clothing/neck/scarf/purple
name = "purple scarf"
icon_state = "/obj/item/clothing/neck/scarf/purple"
greyscale_colors = "#9557C5#9557C5"
/obj/item/clothing/neck/scarf/yellow
name = "yellow scarf"
icon_state = "/obj/item/clothing/neck/scarf/yellow"
greyscale_colors = "#E0C14F#E0C14F"
/obj/item/clothing/neck/scarf/orange
name = "orange scarf"
icon_state = "/obj/item/clothing/neck/scarf/orange"
greyscale_colors = "#C67A4B#C67A4B"
/obj/item/clothing/neck/scarf/cyan
name = "cyan scarf"
icon_state = "/obj/item/clothing/neck/scarf/cyan"
greyscale_colors = "#54A3CE#54A3CE"
/obj/item/clothing/neck/scarf/zebra
name = "zebra scarf"
icon_state = "/obj/item/clothing/neck/scarf/zebra"
greyscale_colors = "#333333#EEEEEE"
/obj/item/clothing/neck/scarf/christmas
name = "christmas scarf"
icon_state = "/obj/item/clothing/neck/scarf/christmas"
greyscale_colors = "#038000#960000"
/obj/item/clothing/neck/large_scarf
name = "large scarf"
icon_state = "large_scarf"
icon_preview = 'icons/obj/fluff/previews.dmi'
icon_state_preview = "scarf_large"
icon = 'icons/map_icons/clothing/neck.dmi'
icon_state = "/obj/item/clothing/neck/large_scarf"
post_init_icon_state = "large_scarf"
w_class = WEIGHT_CLASS_TINY
custom_price = PAYCHECK_CREW
greyscale_colors = "#C6C6C6#EEEEEE"
greyscale_config = /datum/greyscale_config/scarf
greyscale_config_worn = /datum/greyscale_config/scarf/worn
greyscale_colors = "#C6C6C6#EEEEEE"
flags_1 = IS_PLAYER_COLORABLE_1
/obj/item/clothing/neck/large_scarf/red
name = "large red scarf"
icon_state = "/obj/item/clothing/neck/large_scarf/red"
greyscale_colors = "#8A2908#A06D66"
/obj/item/clothing/neck/large_scarf/green
name = "large green scarf"
icon_state = "/obj/item/clothing/neck/large_scarf/green"
greyscale_colors = "#525629#888674"
/obj/item/clothing/neck/large_scarf/blue
name = "large blue scarf"
icon_state = "/obj/item/clothing/neck/large_scarf/blue"
greyscale_colors = "#20396C#6F7F91"
/obj/item/clothing/neck/large_scarf/syndie
name = "suspicious looking striped scarf"
desc = "Ready to operate."
icon_state = "/obj/item/clothing/neck/large_scarf/syndie"
greyscale_colors = "#B40000#545350"
armor_type = /datum/armor/large_scarf_syndie
/obj/item/clothing/neck/infinity_scarf
name = "infinity scarf"
icon_state = "infinity_scarf"
icon = 'icons/map_icons/clothing/neck.dmi'
icon_state = "/obj/item/clothing/neck/infinity_scarf"
post_init_icon_state = "infinity_scarf"
w_class = WEIGHT_CLASS_TINY
custom_price = PAYCHECK_CREW
greyscale_colors = COLOR_VERY_LIGHT_GRAY
+8 -4
View File
@@ -70,11 +70,13 @@
/obj/item/clothing/shoes/glow
name = "glow shoes"
desc = "t3h c00L3st sh03z j00'LL 3v3r f1nd."
icon_state = "glow_shoes"
icon = 'icons/map_icons/clothing/shoes.dmi'
icon_state = "/obj/item/clothing/shoes/glow"
post_init_icon_state = "glow_shoes"
inhand_icon_state = null
greyscale_colors = "#4A3A40#8EEEEE"
greyscale_config = /datum/greyscale_config/glow_shoes
greyscale_config_worn = /datum/greyscale_config/glow_shoes/worn
greyscale_colors = "#4A3A40#8EEEEE"
flags_1 = IS_PLAYER_COLORABLE_1
/obj/item/clothing/shoes/glow/Initialize(mapload)
@@ -100,11 +102,13 @@
/obj/item/clothing/shoes/jester_shoes
name = "jester shoes"
desc = "Shoes that jingle with every step!!"
icon_state = "jester_map"
icon = 'icons/map_icons/clothing/shoes.dmi'
icon_state = "/obj/item/clothing/shoes/jester_shoes"
post_init_icon_state = "jester_map"
inhand_icon_state = null
greyscale_colors = "#00ff00#ff0000"
greyscale_config = /datum/greyscale_config/jester_shoes
greyscale_config_worn = /datum/greyscale_config/jester_shoes/worn
greyscale_colors = "#00ff00#ff0000"
flags_1 = IS_PLAYER_COLORABLE_1
/obj/item/clothing/shoes/jester_shoes/Initialize(mapload)
+28 -9
View File
@@ -1,14 +1,16 @@
/obj/item/clothing/shoes/sneakers
dying_key = DYE_REGISTRY_SNEAKERS
icon_state = "sneakers"
icon = 'icons/map_icons/clothing/shoes.dmi'
icon_state = "/obj/item/clothing/shoes/sneakers"
post_init_icon_state = "sneakers"
inhand_icon_state = "sneakers_back"
lefthand_file = 'icons/mob/inhands/clothing/shoes_lefthand.dmi'
righthand_file = 'icons/mob/inhands/clothing/shoes_righthand.dmi'
greyscale_colors = "#2d2d33#ffffff"
greyscale_config = /datum/greyscale_config/sneakers
greyscale_config_worn = /datum/greyscale_config/sneakers/worn
greyscale_config_inhand_left = /datum/greyscale_config/sneakers/inhand_left
greyscale_config_inhand_right = /datum/greyscale_config/sneakers/inhand_right
greyscale_colors = "#2d2d33#ffffff"
supports_variations_flags = CLOTHING_DIGITIGRADE_MASK
flags_1 = IS_PLAYER_COLORABLE_1
interaction_flags_mouse_drop = NEED_HANDS
@@ -20,6 +22,9 @@
/obj/item/clothing/shoes/sneakers/generate_digitigrade_icons(icon/base_icon, greyscale_colors)
return icon(SSgreyscale.GetColoredIconByType(/datum/greyscale_config/digitigrade, greyscale_colors), "sneakers_worn")
/obj/item/clothing/shoes/sneakers/random
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1 // same icon/color as base type
/obj/item/clothing/shoes/sneakers/random/Initialize(mapload)
. = ..()
greyscale_colors = "#" + random_color() + "#" + random_color()
@@ -28,6 +33,7 @@
/obj/item/clothing/shoes/sneakers/black
name = "black shoes"
desc = "A pair of black shoes."
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1 // same icon/color as base type
custom_price = PAYCHECK_CREW
cold_protection = FEET
@@ -38,10 +44,12 @@
/obj/item/clothing/shoes/sneakers/brown
name = "brown shoes"
desc = "A pair of brown shoes."
icon_state = "/obj/item/clothing/shoes/sneakers/brown"
greyscale_colors = "#472c21#ffffff"
/obj/item/clothing/shoes/sneakers/blue
name = "blue shoes"
icon_state = "/obj/item/clothing/shoes/sneakers/blue"
greyscale_colors = "#4f88df#ffffff"
armor_type = /datum/armor/sneakers_blue
@@ -50,26 +58,29 @@
/obj/item/clothing/shoes/sneakers/green
name = "green shoes"
icon_state = "/obj/item/clothing/shoes/sneakers/green"
greyscale_colors = "#3bca5a#ffffff"
/obj/item/clothing/shoes/sneakers/yellow
name = "yellow shoes"
icon_state = "/obj/item/clothing/shoes/sneakers/yellow"
greyscale_colors = "#deb63d#ffffff"
/obj/item/clothing/shoes/sneakers/purple
name = "purple shoes"
icon_state = "/obj/item/clothing/shoes/sneakers/purple"
greyscale_colors = "#7e1980#ffffff"
/obj/item/clothing/shoes/sneakers/red
name = "red shoes"
desc = "Stylish red shoes."
icon_state = "/obj/item/clothing/shoes/sneakers/red"
greyscale_colors = "#a52f29#ffffff"
/obj/item/clothing/shoes/sneakers/white
name = "white shoes"
icon_state = "/obj/item/clothing/shoes/sneakers/white"
greyscale_colors = "#ffffff#ffffff"
icon_preview = 'icons/obj/fluff/previews.dmi'
icon_state_preview = "shoes_cloth"
armor_type = /datum/armor/sneakers_white
/datum/armor/sneakers_white
@@ -78,7 +89,9 @@
/obj/item/clothing/shoes/sneakers/rainbow
name = "rainbow shoes"
desc = "Very gay shoes."
icon = 'icons/obj/clothing/shoes.dmi'
icon_state = "rain_bow"
post_init_icon_state = null
inhand_icon_state = "rainbow_sneakers"
greyscale_colors = null
@@ -90,13 +103,14 @@
/obj/item/clothing/shoes/sneakers/orange
name = "orange shoes"
icon_preview = 'icons/obj/fluff/previews.dmi'
icon_state_preview = "prisonshoes"
greyscale_colors = "#d15b1b#ffffff"
icon = 'icons/map_icons/clothing/shoes.dmi'
icon_state = "/obj/item/clothing/shoes/sneakers/orange"
post_init_icon_state = "sneakers"
greyscale_config = /datum/greyscale_config/sneakers_orange
greyscale_config_worn = /datum/greyscale_config/sneakers_orange/worn
greyscale_config_inhand_left = /datum/greyscale_config/sneakers_orange/inhand_left
greyscale_config_inhand_right = /datum/greyscale_config/sneakers_orange/inhand_right
greyscale_colors = "#d15b1b#ffffff"
flags_1 = NONE
var/obj/item/restraints/handcuffs/attached_cuffs
@@ -127,7 +141,7 @@
if(attached_cuffs)
icon_state = inhand_icon_state = "sneakers_chained"
else
icon_state = initial(icon_state)
icon_state = initial(post_init_icon_state) || initial(icon_state)
inhand_icon_state = initial(inhand_icon_state)
update_greyscale()
@@ -170,14 +184,18 @@
/obj/item/clothing/shoes/sneakers/mime
name = "mime shoes"
icon_state = "/obj/item/clothing/shoes/sneakers/mime"
greyscale_colors = "#ffffff#ffffff"
/obj/item/clothing/shoes/sneakers/marisa
desc = "A pair of magic black shoes."
name = "magic shoes"
greyscale_colors = "#2d2d33#ffffff"
icon = 'icons/map_icons/clothing/shoes.dmi'
icon_state = "/obj/item/clothing/shoes/sneakers/marisa"
post_init_icon_state = "sneakers"
greyscale_config = /datum/greyscale_config/sneakers_marisa
greyscale_config_worn = /datum/greyscale_config/sneakers_marisa/worn
greyscale_colors = "#2d2d33#ffffff"
strip_delay = 5
equip_delay_other = 50
fastening_type = SHOES_SLIPON
@@ -186,4 +204,5 @@
/obj/item/clothing/shoes/sneakers/cyborg
name = "cyborg boots"
desc = "Shoes for a cyborg costume."
icon_state = "/obj/item/clothing/shoes/sneakers/cyborg"
greyscale_colors = "#4e4e4e#4e4e4e"
+9 -3
View File
@@ -1,14 +1,16 @@
/obj/item/clothing/shoes/wheelys
name = "Wheely-Heels"
desc = "Uses patented retractable wheel technology. Never sacrifice speed for style - not that this provides much of either." //Thanks Fel
icon_state = "sneakers"
icon = 'icons/map_icons/clothing/shoes.dmi'
worn_icon = 'icons/mob/large-worn-icons/64x64/feet.dmi'
icon_state = "/obj/item/clothing/shoes/wheelys"
post_init_icon_state = "sneakers"
worn_icon_state = "wheelys"
inhand_icon_state = "sneakers_back"
greyscale_colors = "#545454#ffffff"
greyscale_config = /datum/greyscale_config/sneakers_wheelys
greyscale_config_inhand_left = /datum/greyscale_config/sneakers/inhand_left
greyscale_config_inhand_right = /datum/greyscale_config/sneakers/inhand_right
worn_icon = 'icons/mob/large-worn-icons/64x64/feet.dmi'
greyscale_colors = "#545454#ffffff"
worn_x_dimension = 64
worn_y_dimension = 64
clothing_flags = parent_type::clothing_flags | LARGE_WORN_ICON
@@ -61,7 +63,9 @@
/obj/item/clothing/shoes/wheelys/rollerskates
name = "roller skates"
desc = "An EightO brand pair of roller skates. The wheels are retractable, though're quite bulky to walk in."
icon = 'icons/obj/clothing/shoes.dmi'
icon_state = "rollerskates"
post_init_icon_state = null
inhand_icon_state = null
greyscale_colors = null
greyscale_config = null
@@ -74,7 +78,9 @@
/obj/item/clothing/shoes/wheelys/skishoes
name = "ski shoes"
desc = "A pair of shoes equipped with foldable skis! Very handy to move in snowy environments unimpeded."
icon = 'icons/obj/clothing/shoes.dmi'
icon_state = "skishoes"
post_init_icon_state = null
inhand_icon_state = null
greyscale_colors = null
greyscale_config = null
@@ -1,9 +1,11 @@
/obj/item/clothing/head/helmet/space/beret
name = "CentCom officer's beret"
desc = "An armored beret commonly used by special operations officers. Uses advanced force field technology to protect the head from space."
icon = 'icons/map_icons/clothing/head/_head.dmi'
icon_state = "/obj/item/clothing/head/helmet/space/beret"
post_init_icon_state = "beret_badge"
greyscale_config = /datum/greyscale_config/beret_badge
greyscale_config_worn = /datum/greyscale_config/beret_badge/worn
icon_state = "beret_badge"
inhand_icon_state = null
greyscale_colors = "#397F3F#FFCE5B"
clothing_flags = STOPSPRESSUREDAMAGE | THICKMATERIAL | SNUG_FIT
+6 -2
View File
@@ -606,7 +606,9 @@
/obj/item/clothing/suit/costume/hawaiian
name = "hawaiian overshirt"
desc = "A cool shirt for chilling on the beach."
icon_state = "hawaiian_shirt"
icon = 'icons/map_icons/clothing/suit/costume.dmi'
icon_state = "/obj/item/clothing/suit/costume/hawaiian"
post_init_icon_state = "hawaiian_shirt"
inhand_icon_state = null
greyscale_config = /datum/greyscale_config/hawaiian_shirt
greyscale_config_worn = /datum/greyscale_config/hawaiian_shirt/worn
@@ -621,7 +623,9 @@
/obj/item/clothing/suit/costume/football_armor
name = "football protective gear"
desc = "Given to members of the football team!"
icon_state = "football_armor"
icon = 'icons/map_icons/clothing/suit/costume.dmi'
icon_state = "/obj/item/clothing/suit/costume/football_armor"
post_init_icon_state = "football_armor"
body_parts_covered = CHEST|GROIN|LEGS|ARMS
greyscale_config = /datum/greyscale_config/football_armor
greyscale_config_worn = /datum/greyscale_config/football_armor/worn
+4 -2
View File
@@ -1,9 +1,10 @@
/obj/item/clothing/suit/hooded/ethereal_raincoat
name = "ethereal raincoat"
desc = " A raincoat commonly worn by travelers or tourists not too fond of Sprout's rainy weather."
icon = 'icons/obj/clothing/suits/ethereal.dmi'
icon_state = "eth_raincoat"
icon = 'icons/map_icons/clothing/suit/_suit.dmi'
worn_icon = 'icons/mob/clothing/suits/ethereal.dmi'
icon_state = "/obj/item/clothing/suit/hooded/ethereal_raincoat"
post_init_icon_state = "eth_raincoat"
greyscale_config = /datum/greyscale_config/eth_raincoat
greyscale_config_worn = /datum/greyscale_config/eth_raincoat/worn
greyscale_colors = "#4e7cc7"
@@ -28,6 +29,7 @@
/obj/item/clothing/suit/hooded/ethereal_raincoat/trailwarden
name = "trailwarden oilcoat"
desc = "A masterfully handcrafted oilslick coat, supposedly makes for excellent camouflage among Sprout's vegetation. You can hear a faint electrical buzz emanating from the luminescent pattern."
icon_state = "/obj/item/clothing/suit/hooded/ethereal_raincoat/trailwarden"
greyscale_colors = "#32a87d"
hoodtype = /obj/item/clothing/head/hooded/ethereal_rainhood/trailwarden
+15 -5
View File
@@ -37,7 +37,9 @@
/obj/item/clothing/suit/toggle/jacket/sweater
name = "sweater jacket"
desc = "A sweater jacket."
icon_state = "sweater"
icon = 'icons/map_icons/clothing/suit/_suit.dmi'
icon_state = "/obj/item/clothing/suit/toggle/jacket/sweater"
post_init_icon_state = "sweater"
greyscale_config = /datum/greyscale_config/sweater
greyscale_config_worn = /datum/greyscale_config/sweater/worn
greyscale_colors = "#414344"
@@ -46,7 +48,9 @@
/obj/item/clothing/suit/toggle/jacket/trenchcoat
name = "trenchcoat"
desc = "A multi-purpose trenchcoat."
icon_state = "trenchcoat"
icon = 'icons/map_icons/clothing/suit/_suit.dmi'
icon_state = "/obj/item/clothing/suit/toggle/jacket/trenchcoat"
post_init_icon_state = "trenchcoat"
greyscale_config = /datum/greyscale_config/trenchcoat
greyscale_config_worn = /datum/greyscale_config/trenchcoat/worn
greyscale_colors = "#414344"
@@ -57,7 +61,9 @@
/obj/item/clothing/suit/jacket/blazer
name = "blazer jacket"
desc = "A blazer jacket."
icon_state = "blazer"
icon = 'icons/map_icons/clothing/suit/_suit.dmi'
icon_state = "/obj/item/clothing/suit/jacket/blazer"
post_init_icon_state = "blazer"
greyscale_config = /datum/greyscale_config/blazer
greyscale_config_worn = /datum/greyscale_config/blazer/worn
greyscale_colors = "#414344"
@@ -66,7 +72,9 @@
/obj/item/clothing/suit/jacket/oversized
name = "oversized jacket"
desc = "An oversized jacket."
icon_state = "jacket_oversized"
icon = 'icons/map_icons/clothing/suit/_suit.dmi'
icon_state = "/obj/item/clothing/suit/jacket/oversized"
post_init_icon_state = "jacket_oversized"
greyscale_config = /datum/greyscale_config/jacket_oversized
greyscale_config_worn = /datum/greyscale_config/jacket_oversized/worn
greyscale_colors = "#414344"
@@ -75,7 +83,9 @@
/obj/item/clothing/suit/jacket/fancy
name = "fancy fur coat"
desc = "Rated 10 out of 10 in Cosmo for best coat brand."
icon_state = "fancy_coat"
icon = 'icons/map_icons/clothing/suit/_suit.dmi'
icon_state = "/obj/item/clothing/suit/jacket/fancy"
post_init_icon_state = "fancy_coat"
body_parts_covered = CHEST|GROIN|LEGS|ARMS
cold_protection = CHEST|GROIN|LEGS|ARMS
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
+9 -4
View File
@@ -44,7 +44,9 @@
/obj/item/clothing/suit/apron/overalls
name = "coveralls"
desc = "A set of overalls, good for protecting thinner clothes from the elements."
icon_state = "overalls"
icon = 'icons/map_icons/clothing/suit/_suit.dmi'
icon_state = "/obj/item/clothing/suit/apron/overalls"
post_init_icon_state = "overalls"
inhand_icon_state = ""
body_parts_covered = CHEST|GROIN|LEGS
species_exception = list(/datum/species/golem)
@@ -264,7 +266,9 @@
/obj/item/clothing/suit/toggle/lawyer/greyscale
name = "formal suit jacket"
icon_state = "jacket_lawyer"
icon = 'icons/map_icons/clothing/suit/_suit.dmi'
icon_state = "/obj/item/clothing/suit/toggle/lawyer/greyscale"
post_init_icon_state = "jacket_lawyer"
inhand_icon_state = ""
greyscale_config = /datum/greyscale_config/jacket_lawyer
greyscale_config_worn = /datum/greyscale_config/jacket_lawyer/worn
@@ -275,8 +279,9 @@
/obj/item/clothing/suit/toggle/suspenders
name = "suspenders"
desc = "They suspend the illusion of the mime's play."
icon = 'icons/obj/clothing/belts.dmi'
icon_state = "suspenders"
icon = 'icons/map_icons/clothing/suit/_suit.dmi'
icon_state = "/obj/item/clothing/suit/toggle/suspenders"
post_init_icon_state = "suspenders"
worn_icon = 'icons/mob/clothing/suits/utility.dmi'
worn_icon_state = "suspenders"
blood_overlay_type = "armor" //it's the less thing that I can put here
+21 -7
View File
@@ -72,7 +72,9 @@
/obj/item/clothing/suit/toggle/labcoat/genetics
name = "geneticist labcoat"
desc = "A suit that protects against minor chemical spills. Has a blue stripe on the shoulder."
icon_state = "labcoat_job"
icon = 'icons/map_icons/clothing/suit/_suit.dmi'
icon_state = "/obj/item/clothing/suit/toggle/labcoat/genetics"
post_init_icon_state = "labcoat_job"
greyscale_config = /datum/greyscale_config/labcoat
greyscale_config_worn = /datum/greyscale_config/labcoat/worn
greyscale_colors = "#EEEEEE#4A77A1#4A77A1#7095C2"
@@ -84,7 +86,9 @@
/obj/item/clothing/suit/toggle/labcoat/chemist
name = "chemist labcoat"
desc = "A suit that protects against minor chemical spills. Has an orange stripe on the shoulder."
icon_state = "labcoat_job"
icon = 'icons/map_icons/clothing/suit/_suit.dmi'
icon_state = "/obj/item/clothing/suit/toggle/labcoat/chemist"
post_init_icon_state = "labcoat_job"
greyscale_config = /datum/greyscale_config/labcoat
greyscale_config_worn = /datum/greyscale_config/labcoat/worn
greyscale_colors = "#EEEEEE#F17420#F17420#EB6F2C"
@@ -96,7 +100,9 @@
/obj/item/clothing/suit/toggle/labcoat/virologist
name = "virologist labcoat"
desc = "A suit that protects against minor chemical spills. Has a green stripe on the shoulder."
icon_state = "labcoat_job"
icon = 'icons/map_icons/clothing/suit/_suit.dmi'
icon_state = "/obj/item/clothing/suit/toggle/labcoat/virologist"
post_init_icon_state = "labcoat_job"
greyscale_config = /datum/greyscale_config/labcoat
greyscale_config_worn = /datum/greyscale_config/labcoat/worn
greyscale_colors = "#EEEEEE#198019#198019#40992E"
@@ -108,7 +114,9 @@
/obj/item/clothing/suit/toggle/labcoat/coroner
name = "coroner labcoat"
desc = "A suit that protects against minor chemical spills. Has a black stripe on the shoulder."
icon_state = "labcoat_job"
icon = 'icons/map_icons/clothing/suit/_suit.dmi'
icon_state = "/obj/item/clothing/suit/toggle/labcoat/coroner"
post_init_icon_state = "labcoat_job"
greyscale_config = /datum/greyscale_config/labcoat
greyscale_config_worn = /datum/greyscale_config/labcoat/worn
greyscale_colors = "#EEEEEE#2D2D33#2D2D33#39393F"
@@ -126,7 +134,9 @@
/obj/item/clothing/suit/toggle/labcoat/science
name = "scientist labcoat"
desc = "A suit that protects against minor chemical spills. Has a purple stripe on the shoulder."
icon_state = "labcoat_job"
icon = 'icons/map_icons/clothing/suit/_suit.dmi'
icon_state = "/obj/item/clothing/suit/toggle/labcoat/science"
post_init_icon_state = "labcoat_job"
greyscale_config = /datum/greyscale_config/labcoat
greyscale_config_worn = /datum/greyscale_config/labcoat/worn
greyscale_colors = "#EEEEEE#7E1980#7E1980#B347A1"
@@ -138,7 +148,9 @@
/obj/item/clothing/suit/toggle/labcoat/roboticist
name = "roboticist labcoat"
desc = "More like an eccentric coat than a labcoat. Helps pass off bloodstains as part of the aesthetic. Comes with red shoulder pads."
icon_state = "labcoat_job"
icon = 'icons/map_icons/clothing/suit/_suit.dmi'
icon_state = "/obj/item/clothing/suit/toggle/labcoat/roboticist"
post_init_icon_state = "labcoat_job"
greyscale_config = /datum/greyscale_config/labcoat
greyscale_config_worn = /datum/greyscale_config/labcoat/worn
greyscale_colors = "#EEEEEE#88242D#88242D#39393F"
@@ -146,7 +158,9 @@
/obj/item/clothing/suit/toggle/labcoat/interdyne
name = "interdyne labcoat"
desc = "More like an eccentric coat than a labcoat. Helps pass off bloodstains as part of the aesthetic. Comes with red shoulder pads."
icon_state = "labcoat_job"
icon = 'icons/map_icons/clothing/suit/_suit.dmi'
icon_state = "/obj/item/clothing/suit/toggle/labcoat/interdyne"
post_init_icon_state = "labcoat_job"
greyscale_config = /datum/greyscale_config/labcoat
greyscale_config_worn = /datum/greyscale_config/labcoat/worn
greyscale_colors = "#EEEEEE#88242D#88242D#39393F"
+7 -2
View File
@@ -1,7 +1,9 @@
/obj/item/clothing/suit/mothcoat
name = "mothic flightsuit"
desc = "This peculiar utility harness is a common sight among the moth fleet's crews due to its ability to fasten the wings to the body without impacting mobility inside cramped ship interiors. It looks somewhat crude yet it's surprisingly comfortable."
icon_state = "mothcoat"
icon = 'icons/map_icons/clothing/suit/_suit.dmi'
icon_state = "/obj/item/clothing/suit/mothcoat"
post_init_icon_state = "mothcoat"
greyscale_config = /datum/greyscale_config/mothcoat
greyscale_config_worn = /datum/greyscale_config/mothcoat/worn
greyscale_colors = "#eaeaea"
@@ -12,6 +14,7 @@
/obj/item/clothing/suit/mothcoat/original
desc = "An old-school flightsuit from the moth fleet. A perfect token of mothic survivalistic and adaptable attitude, yet a bitter reminder that with the loss of their home planet and institution of the fleet, their beloved wings remain as a burden to bear, condemned to never fly again."
icon_state = "/obj/item/clothing/suit/mothcoat/original"
greyscale_colors = "#dfa409"
/obj/item/clothing/suit/mothcoat/original/Initialize(mapload)
@@ -22,7 +25,9 @@
/obj/item/clothing/suit/mothcoat/winter
name = "mothic mantella"
desc = "A thick garment that keeps warm and protects those precious wings from harsh weather, also commonly used during festivities. Feels much heavier than it looks."
icon_state = "mothcoat_winter"
icon = 'icons/map_icons/clothing/suit/_suit.dmi'
icon_state = "/obj/item/clothing/suit/mothcoat/winter"
post_init_icon_state = "mothcoat_winter"
greyscale_config = /datum/greyscale_config/mothcoat_winter
greyscale_config_worn = /datum/greyscale_config/mothcoat_winter/worn
greyscale_colors = "#557979#795e55"
+24 -14
View File
@@ -1,8 +1,10 @@
/obj/item/clothing/suit/costume/wellworn_shirt
name = "well-worn shirt"
desc = "A worn out, curiously comfortable t-shirt. You wouldn't go so far as to say it feels like being hugged when you wear it, but it's pretty close. Good for sleeping in."
icon_state = "wellworn_shirt"
inhand_icon_state = null
icon = 'icons/map_icons/clothing/suit/costume.dmi'
icon_state = "/obj/item/clothing/suit/costume/wellworn_shirt"
post_init_icon_state = "wellworn_shirt"
greyscale_config = /datum/greyscale_config/wellworn_shirt
greyscale_config_worn = /datum/greyscale_config/wellworn_shirt/worn
greyscale_colors = COLOR_WHITE
@@ -24,70 +26,78 @@
/obj/item/clothing/suit/costume/wellworn_shirt/skub
name = "pro-skub shirt"
desc = "A worn out, curiously comfortable t-shirt proclaiming your pro-skub stance. Fuck those anti-skubbies."
icon_state = "wellworn_shirt_pro_skub"
greyscale_colors = "#FFFF4D"
icon_state = "/obj/item/clothing/suit/costume/wellworn_shirt/skub"
post_init_icon_state = "wellworn_shirt_pro_skub"
greyscale_config = /datum/greyscale_config/wellworn_shirt_skub
greyscale_config_worn = /datum/greyscale_config/wellworn_shirt_skub/worn
/obj/item/clothing/suit/costume/wellworn_shirt/skub/anti
name = "anti-skub shirt"
desc = "A worn out, curiously comfortable t-shirt proclaiming your anti-skub stance. Fuck those pro-skubbies."
icon_state = "wellworn_shirt_anti_skub"
icon_state = "/obj/item/clothing/suit/costume/wellworn_shirt/skub/anti"
post_init_icon_state = "wellworn_shirt_anti_skub"
/obj/item/clothing/suit/costume/wellworn_shirt/graphic
name = "well-worn graphic shirt"
desc = "A worn out, curiously comfortable t-shirt with a character from Phanic the Weasel on the front. It adds some charm points to itself and the wearer, and reminds you of when the series was still good; way back in 2500."
icon_state = "wellworn_shirt_gamer"
greyscale_colors = "#FFFFFF#46B45B"
icon_state = "/obj/item/clothing/suit/costume/wellworn_shirt/graphic"
post_init_icon_state = "wellworn_shirt_gamer"
greyscale_config = /datum/greyscale_config/wellworn_shirt_graphic
greyscale_config_worn = /datum/greyscale_config/wellworn_shirt_graphic/worn
/obj/item/clothing/suit/costume/wellworn_shirt/graphic/ian
name = "well-worn ian shirt"
desc = "A worn out, curiously comfortable t-shirt with a picture of Ian the Corgi. You wouldn't go so far as to say it feels like being hugged when you wear it, but it's pretty close. Good for sleeping in."
icon_state = "wellworn_shirt_ian"
icon_state = "/obj/item/clothing/suit/costume/wellworn_shirt/graphic/ian"
post_init_icon_state = "wellworn_shirt_ian"
greyscale_colors = "#FFFFFF#E1B26C"
/obj/item/clothing/suit/costume/wellworn_shirt/wornout
name = "worn-out shirt"
desc = "A pretty grubby, yet still comfortable t-shirt. You've been sleeping in this one for a bit too long."
icon_state = "wornout_shirt"
icon_state = "/obj/item/clothing/suit/costume/wellworn_shirt/wornout"
post_init_icon_state = "wornout_shirt"
/obj/item/clothing/suit/costume/wellworn_shirt/wornout/graphic
name = "worn-out graphic shirt"
desc = "A pretty grubby, yet still comfortable t-shirt with a character from Phanic the Weasel on the front. The slightly raggedy nature recalls that one horrid title where they made him a vampire. You should get cheevos for sleeping in it this many days straight."
icon_state = "wornout_shirt_gamer"
greyscale_colors = "#FFFFFF#46B45B"
icon_state = "/obj/item/clothing/suit/costume/wellworn_shirt/wornout/graphic"
post_init_icon_state = "wornout_shirt_gamer"
greyscale_config = /datum/greyscale_config/wornout_shirt_graphic
greyscale_config_worn = /datum/greyscale_config/wornout_shirt_graphic/worn
/obj/item/clothing/suit/costume/wellworn_shirt/wornout/graphic/ian
name = "worn-out ian shirt"
desc = "A pretty grubby, yet still comfortable t-shirt with a picture of Ian the Corgi. It's gone past 'a bit worn' to 'well-loved;' excellent for use as pajamas."
icon_state = "wornout_shirt_ian"
icon_state = "/obj/item/clothing/suit/costume/wellworn_shirt/wornout/graphic/ian"
post_init_icon_state = "wornout_shirt_ian"
greyscale_colors = "#FFFFFF#E1B26C"
/obj/item/clothing/suit/costume/wellworn_shirt/messy
name = "messy worn-out shirt"
desc = "This worn-out, somehow comfortable t-shirt has reached a more thorough understanding of grime; maybe the fact that it's still gone unwashed could function as a sort of camo?"
icon_state = "messyworn_shirt"
icon_state = "/obj/item/clothing/suit/costume/wellworn_shirt/messy"
post_init_icon_state = "messyworn_shirt"
/obj/item/clothing/suit/costume/wellworn_shirt/messy/graphic
name = "messy graphic shirt"
desc = "This worn-out, somehow comfortable t-shirt has reached a more thorough understanding of grime. Normies will never understand that this is a collector's item, and your sense of fashion absolutely mogs theirs. Phanic Phorever."
icon_state = "messyworn_shirt_gamer"
greyscale_colors = "#FFFFFF#46B45B"
icon_state = "/obj/item/clothing/suit/costume/wellworn_shirt/messy/graphic"
post_init_icon_state = "messyworn_shirt_gamer"
greyscale_config = /datum/greyscale_config/messyworn_shirt_graphic
greyscale_config_worn = /datum/greyscale_config/messyworn_shirt_graphic/worn
greyscale_colors = "#FFFFFF#46B45B"
/obj/item/clothing/suit/costume/wellworn_shirt/messy/graphic/ian
name = "messy ian shirt"
desc = "This worn-out, somehow comfortable t-shirt has reached a more thorough understanding of grime. You get the feeling like you understand how it's like to be a stray dog, yet Ian's face still comforts you."
icon_state = "messyworn_shirt_ian"
icon_state = "/obj/item/clothing/suit/costume/wellworn_shirt/messy/graphic/ian"
post_init_icon_state = "messyworn_shirt_ian"
greyscale_colors = "#FFFFFF#E1B26C"
/obj/item/clothing/suit/costume/wellworn_shirt/messy/graphic/gamer
name = "gamer shirt"
desc = "A baggy, extremely well-used shirt with vintage game character Phanic the Weasel far-too-boldly displayed on the chest. Your mind cannot hope to withstand the assault of remembering the Phanic Phanart you've seen; let alone the stench of this top."
icon_state = "messyworn_shirt_gamer"
greyscale_colors = "#FFFFFF#46B45B"
+5 -2
View File
@@ -50,7 +50,7 @@
/obj/item/clothing/suit/hooded/wintercoat/click_alt(mob/user)
zipped = !zipped
playsound(src, 'sound/items/zip/zip_up.ogg', 30, TRUE, -3)
worn_icon_state = "[initial(icon_state)][zipped ? "_t" : ""]"
worn_icon_state = "[initial(post_init_icon_state) || initial(icon_state)][zipped ? "_t" : ""]"
balloon_alert(user, "[zipped ? "" : "un"]zipped")
if(ishuman(loc))
@@ -656,10 +656,13 @@
/obj/item/clothing/suit/hooded/wintercoat/custom
name = "tailored winter coat"
desc = "A heavy jacket made from 'synthetic' animal furs, with custom colors."
icon = 'icons/map_icons/clothing/suit/_suit.dmi'
icon_state = "/obj/item/clothing/suit/hooded/wintercoat/custom"
post_init_icon_state = "coatwinter"
hood_down_overlay_suffix = ""
greyscale_colors = "#ffffff#ffffff#808080#808080#808080#808080"
greyscale_config = /datum/greyscale_config/winter_coats
greyscale_config_worn = /datum/greyscale_config/winter_coats/worn
greyscale_colors = "#ffffff#ffffff#808080#808080#808080#808080"
hoodtype = /obj/item/clothing/head/hooded/winterhood/custom
flags_1 = IS_PLAYER_COLORABLE_1
+5 -2
View File
@@ -70,10 +70,12 @@
/obj/item/clothing/head/wizard/marisa
name = "witch hat"
desc = "Strange-looking hat-wear. Makes you want to cast fireballs."
icon_state = "witch_hat"
greyscale_colors = "#343640#e0cab8#e0cab8"
icon = 'icons/map_icons/clothing/head/_head.dmi'
icon_state = "/obj/item/clothing/head/wizard/marisa"
post_init_icon_state = "witch_hat"
greyscale_config = /datum/greyscale_config/witch_hat
greyscale_config_worn = /datum/greyscale_config/witch_hat/worn
greyscale_colors = "#343640#e0cab8#e0cab8"
flags_1 = IS_PLAYER_COLORABLE_1
dog_fashion = null
@@ -198,6 +200,7 @@
/obj/item/clothing/head/wizard/marisa/fake
name = "witch hat"
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
armor_type = /datum/armor/none
resistance_flags = FLAMMABLE
fishing_modifier = -2
@@ -2,7 +2,9 @@
/obj/item/clothing/accessory/waistcoat
name = "waistcoat"
desc = "For some classy, murderous fun."
icon_state = "waistcoat"
icon = 'icons/map_icons/clothing/accessory.dmi'
icon_state = "/obj/item/clothing/accessory/waistcoat"
post_init_icon_state = "waistcoat"
inhand_icon_state = "wcoat"
lefthand_file = 'icons/mob/inhands/clothing/suits_lefthand.dmi'
righthand_file = 'icons/mob/inhands/clothing/suits_righthand.dmi'
+50 -6
View File
@@ -1,24 +1,26 @@
/obj/item/clothing/under/color
name = "jumpsuit"
desc = "A standard issue colored jumpsuit. Variety is the spice of life!"
icon = 'icons/map_icons/clothing/under/color.dmi'
icon_state = "/obj/item/clothing/under/color"
post_init_icon_state = "jumpsuit"
inhand_icon_state = "jumpsuit"
worn_icon_state = "jumpsuit"
worn_icon = 'icons/mob/clothing/under/color.dmi'
dying_key = DYE_REGISTRY_UNDER
greyscale_colors = "#3f3f3f"
greyscale_config = /datum/greyscale_config/jumpsuit
greyscale_config_worn = /datum/greyscale_config/jumpsuit/worn
greyscale_config_inhand_left = /datum/greyscale_config/jumpsuit/inhand_left
greyscale_config_inhand_right = /datum/greyscale_config/jumpsuit/inhand_right
icon = 'icons/obj/clothing/under/color.dmi'
icon_state = "jumpsuit"
inhand_icon_state = "jumpsuit"
worn_icon_state = "jumpsuit"
worn_icon = 'icons/mob/clothing/under/color.dmi'
flags_1 = IS_PLAYER_COLORABLE_1
/obj/item/clothing/under/color/jumpskirt
icon_state = "/obj/item/clothing/under/color/jumpskirt"
post_init_icon_state = "jumpskirt"
body_parts_covered = CHEST|GROIN|ARMS
dying_key = DYE_REGISTRY_JUMPSKIRT
female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY
icon_state = "jumpskirt"
supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON
/// Returns a random, acceptable jumpsuit typepath
@@ -33,7 +35,9 @@
)
/obj/item/clothing/under/color/random
icon = 'icons/obj/clothing/under/color.dmi'
icon_state = "random_jumpsuit"
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
/obj/item/clothing/under/color/random/Initialize(mapload)
..()
@@ -54,7 +58,9 @@
)
/obj/item/clothing/under/color/jumpskirt/random
icon = 'icons/obj/clothing/under/color.dmi'
icon_state = "random_jumpsuit" //Skirt variant needed
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
/obj/item/clothing/under/color/jumpskirt/random/Initialize(mapload)
..()
@@ -69,9 +75,11 @@
/obj/item/clothing/under/color/black
name = "black jumpsuit"
resistance_flags = NONE
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
/obj/item/clothing/under/color/jumpskirt/black
name = "black jumpskirt"
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
/obj/item/clothing/under/color/black/ghost
item_flags = DROPDEL
@@ -83,17 +91,21 @@
/obj/item/clothing/under/color/grey
name = "grey jumpsuit"
desc = "A tasteful grey jumpsuit that reminds you of the good old days."
icon_state = "/obj/item/clothing/under/color/grey"
greyscale_colors = "#b3b3b3"
/obj/item/clothing/under/color/jumpskirt/grey
name = "grey jumpskirt"
desc = "A tasteful grey jumpskirt that reminds you of the good old days."
icon_state = "/obj/item/clothing/under/color/jumpskirt/grey"
greyscale_colors = "#b3b3b3"
/obj/item/clothing/under/color/grey/ancient
name = "ancient jumpsuit"
desc = "A terribly ragged and frayed grey jumpsuit. It looks like it hasn't been washed in over a decade."
icon = 'icons/obj/clothing/under/color.dmi'
icon_state = "grey_ancient"
post_init_icon_state = null
inhand_icon_state = "gy_suit"
greyscale_config = null
greyscale_config_inhand_left = null
@@ -103,122 +115,152 @@
/obj/item/clothing/under/color/blue
name = "blue jumpsuit"
icon_state = "/obj/item/clothing/under/color/blue"
greyscale_colors = "#52aecc"
/obj/item/clothing/under/color/jumpskirt/blue
name = "blue jumpskirt"
icon_state = "/obj/item/clothing/under/color/jumpskirt/blue"
greyscale_colors = "#52aecc"
/obj/item/clothing/under/color/green
name = "green jumpsuit"
icon_state = "/obj/item/clothing/under/color/green"
greyscale_colors = "#9ed63a"
/obj/item/clothing/under/color/jumpskirt/green
name = "green jumpskirt"
icon_state = "/obj/item/clothing/under/color/jumpskirt/green"
greyscale_colors = "#9ed63a"
/obj/item/clothing/under/color/orange
name = "orange jumpsuit"
desc = "Don't wear this near paranoid security officers."
icon_state = "/obj/item/clothing/under/color/orange"
greyscale_colors = "#ff8c19"
/obj/item/clothing/under/color/jumpskirt/orange
name = "orange jumpskirt"
icon_state = "/obj/item/clothing/under/color/jumpskirt/orange"
greyscale_colors = "#ff8c19"
/obj/item/clothing/under/color/pink
name = "pink jumpsuit"
desc = "Just looking at this makes you feel <i>fabulous</i>."
icon_state = "/obj/item/clothing/under/color/pink"
greyscale_colors = "#ffa69b"
/obj/item/clothing/under/color/jumpskirt/pink
name = "pink jumpskirt"
icon_state = "/obj/item/clothing/under/color/jumpskirt/pink"
greyscale_colors = "#ffa69b"
/obj/item/clothing/under/color/red
name = "red jumpsuit"
icon_state = "/obj/item/clothing/under/color/red"
greyscale_colors = "#eb0c07"
/obj/item/clothing/under/color/jumpskirt/red
name = "red jumpskirt"
icon_state = "/obj/item/clothing/under/color/jumpskirt/red"
greyscale_colors = "#eb0c07"
/obj/item/clothing/under/color/white
name = "white jumpsuit"
icon_state = "/obj/item/clothing/under/color/white"
greyscale_colors = "#ffffff"
/obj/item/clothing/under/color/jumpskirt/white
name = "white jumpskirt"
icon_state = "/obj/item/clothing/under/color/jumpskirt/white"
greyscale_colors = "#ffffff"
/obj/item/clothing/under/color/yellow
name = "yellow jumpsuit"
icon_state = "/obj/item/clothing/under/color/yellow"
greyscale_colors = "#ffe14d"
/obj/item/clothing/under/color/jumpskirt/yellow
name = "yellow jumpskirt"
icon_state = "/obj/item/clothing/under/color/jumpskirt/yellow"
greyscale_colors = "#ffe14d"
/obj/item/clothing/under/color/darkblue
name = "dark blue jumpsuit"
icon_state = "/obj/item/clothing/under/color/darkblue"
greyscale_colors = "#3285ba"
/obj/item/clothing/under/color/jumpskirt/darkblue
name = "dark blue jumpskirt"
icon_state = "/obj/item/clothing/under/color/jumpskirt/darkblue"
greyscale_colors = "#3285ba"
/obj/item/clothing/under/color/teal
name = "teal jumpsuit"
icon_state = "/obj/item/clothing/under/color/teal"
greyscale_colors = "#77f3b7"
/obj/item/clothing/under/color/jumpskirt/teal
name = "teal jumpskirt"
icon_state = "/obj/item/clothing/under/color/jumpskirt/teal"
greyscale_colors = "#77f3b7"
/obj/item/clothing/under/color/lightpurple
name = "light purple jumpsuit"
icon_state = "/obj/item/clothing/under/color/lightpurple"
greyscale_colors = "#9f70cc"
/obj/item/clothing/under/color/jumpskirt/lightpurple
name = "light purple jumpskirt"
icon_state = "/obj/item/clothing/under/color/jumpskirt/lightpurple"
greyscale_colors = "#9f70cc"
/obj/item/clothing/under/color/darkgreen
name = "dark green jumpsuit"
icon_state = "/obj/item/clothing/under/color/darkgreen"
greyscale_colors = "#6fbc22"
/obj/item/clothing/under/color/jumpskirt/darkgreen
name = "dark green jumpskirt"
icon_state = "/obj/item/clothing/under/color/jumpskirt/darkgreen"
greyscale_colors = "#6fbc22"
/obj/item/clothing/under/color/lightbrown
name = "light brown jumpsuit"
icon_state = "/obj/item/clothing/under/color/lightbrown"
greyscale_colors = "#c59431"
/obj/item/clothing/under/color/jumpskirt/lightbrown
name = "light brown jumpskirt"
icon_state = "/obj/item/clothing/under/color/jumpskirt/lightbrown"
greyscale_colors = "#c59431"
/obj/item/clothing/under/color/brown
name = "brown jumpsuit"
icon_state = "/obj/item/clothing/under/color/brown"
greyscale_colors = "#a17229"
/obj/item/clothing/under/color/jumpskirt/brown
name = "brown jumpskirt"
icon_state = "/obj/item/clothing/under/color/jumpskirt/brown"
greyscale_colors = "#a17229"
/obj/item/clothing/under/color/maroon
name = "maroon jumpsuit"
icon_state = "/obj/item/clothing/under/color/maroon"
greyscale_colors = "#cc295f"
/obj/item/clothing/under/color/jumpskirt/maroon
name = "maroon jumpskirt"
icon_state = "/obj/item/clothing/under/color/jumpskirt/maroon"
greyscale_colors = "#cc295f"
/obj/item/clothing/under/color/rainbow
name = "rainbow jumpsuit"
desc = "A multi-colored jumpsuit!"
icon = 'icons/obj/clothing/under/color.dmi'
icon_state = "rainbow"
post_init_icon_state = null
inhand_icon_state = "rainbow"
greyscale_config = null
greyscale_config_inhand_left = null
@@ -233,7 +275,9 @@
/obj/item/clothing/under/color/jumpskirt/rainbow
name = "rainbow jumpskirt"
desc = "A multi-colored jumpskirt!"
icon = 'icons/obj/clothing/under/color.dmi'
icon_state = "rainbow_skirt"
post_init_icon_state = null
inhand_icon_state = "rainbow"
greyscale_config = null
greyscale_config_inhand_left = null
+19 -6
View File
@@ -311,19 +311,24 @@
/obj/item/clothing/under/costume/buttondown/slacks
name = "button-down shirt with slacks"
desc = "A fancy button-down shirt with slacks."
icon_state = "buttondown_slacks"
icon = 'icons/map_icons/clothing/under/costume.dmi'
icon_state = "/obj/item/clothing/under/costume/buttondown/slacks"
post_init_icon_state = "buttondown_slacks"
greyscale_config = /datum/greyscale_config/buttondown_slacks
greyscale_config_worn = /datum/greyscale_config/buttondown_slacks/worn
greyscale_colors = "#EEEEEE#EE8E2E#222227#D8D39C"
flags_1 = IS_PLAYER_COLORABLE_1
/obj/item/clothing/under/costume/buttondown/slacks/service //preset one to be a formal white shirt and black pants
icon_state = "/obj/item/clothing/under/costume/buttondown/slacks/service"
greyscale_colors = "#EEEEEE#CBDBFC#17171B#222227"
/obj/item/clothing/under/costume/buttondown/shorts
name = "button-down shirt with shorts"
desc = "A fancy button-down shirt with shorts."
icon_state = "buttondown_shorts"
icon = 'icons/map_icons/clothing/under/costume.dmi'
icon_state = "/obj/item/clothing/under/costume/buttondown/shorts"
post_init_icon_state = "buttondown_shorts"
greyscale_config = /datum/greyscale_config/buttondown_shorts
greyscale_config_worn = /datum/greyscale_config/buttondown_shorts/worn
greyscale_colors = "#EEEEEE#EE8E2E#222227#D8D39C"
@@ -332,7 +337,9 @@
/obj/item/clothing/under/costume/buttondown/skirt
name = "button-down shirt with skirt"
desc = "A fancy button-down shirt with skirt."
icon_state = "buttondown_skirt"
icon = 'icons/map_icons/clothing/under/costume.dmi'
icon_state = "/obj/item/clothing/under/costume/buttondown/skirt"
post_init_icon_state = "buttondown_skirt"
greyscale_config = /datum/greyscale_config/buttondown_skirt
greyscale_config_worn = /datum/greyscale_config/buttondown_skirt/worn
greyscale_colors = "#EEEEEE#EE8E2E#222227#D8D39C"
@@ -342,6 +349,7 @@
supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON
/obj/item/clothing/under/costume/buttondown/skirt/service //preset one to be a formal white shirt and black skirt
icon_state = "/obj/item/clothing/under/costume/buttondown/skirt/service"
greyscale_colors = "#EEEEEE#CBDBFC#17171B#222227"
/obj/item/clothing/under/costume/jackbros
@@ -359,7 +367,9 @@
/obj/item/clothing/under/costume/football_suit
name = "football uniform"
icon_state = "football_suit"
icon = 'icons/map_icons/clothing/under/costume.dmi'
icon_state = "/obj/item/clothing/under/costume/football_suit"
post_init_icon_state = "football_suit"
can_adjust = FALSE
greyscale_config = /datum/greyscale_config/football_suit
greyscale_config_worn = /datum/greyscale_config/football_suit/worn
@@ -419,7 +429,9 @@
/obj/item/clothing/under/costume/gi
name = "martial gi"
desc = "Assistant, nukie, whatever. You can beat anyone; it's called hard work!"
icon_state = "martial_arts_gi"
icon = 'icons/map_icons/clothing/under/costume.dmi'
icon_state = "/obj/item/clothing/under/costume/gi"
post_init_icon_state = "martial_arts_gi"
greyscale_config = /datum/greyscale_config/gi
greyscale_config_worn = /datum/greyscale_config/gi/worn
greyscale_colors = "#f1eeee#000000"
@@ -436,7 +448,8 @@
/obj/item/clothing/under/costume/gi/goku
name = "sacred gi"
desc = "Created by a man who touched the hearts and lives of many."
icon_state = "martial_arts_gi_goku"
icon_state = "/obj/item/clothing/under/costume/gi/goku"
post_init_icon_state = "martial_arts_gi_goku"
greyscale_colors = "#f89925#3e6dd7"
/obj/item/clothing/under/costume/traditional
+4 -2
View File
@@ -1,9 +1,10 @@
/obj/item/clothing/under/ethereal_tunic
name = "ethereal tunic"
desc = "A simple sleeveless tunic worn over an undersuit, it glows in the dark!"
icon_state = "eth_tunic"
icon = 'icons/obj/clothing/under/ethereal.dmi'
icon = 'icons/map_icons/clothing/under/_under.dmi'
worn_icon = 'icons/mob/clothing/under/ethereal.dmi'
icon_state = "/obj/item/clothing/under/ethereal_tunic"
post_init_icon_state = "eth_tunic"
greyscale_colors = "#4e7cc7"
greyscale_config = /datum/greyscale_config/eth_tunic
greyscale_config_worn = /datum/greyscale_config/eth_tunic/worn
@@ -26,6 +27,7 @@
/obj/item/clothing/under/ethereal_tunic/trailwarden
name = "trailwarden tunic"
desc = "Farmers and pilgrims would commonly find their clothes permanently stained from years of wading through the mud and bioluminescent flora of Sprout, eventually it became customary to dye clothes to replicate this effect purposefully."
icon_state = "/obj/item/clothing/under/ethereal_tunic/trailwarden"
greyscale_colors = "#32a87d"
/obj/item/clothing/under/ethereal_tunic/trailwarden/equipped(mob/living/user, slot)
@@ -180,9 +180,10 @@
/obj/item/clothing/under/rank/civilian/lawyer/bluesuit
name = "blue buttondown suit"
icon = 'icons/obj/clothing/under/shorts_pants_shirts.dmi'
worn_icon = 'icons/mob/clothing/under/shorts_pants_shirts.dmi'
icon_state = "buttondown_slacks"
icon = 'icons/map_icons/clothing/under/_under.dmi'
icon_state = "/obj/item/clothing/under/rank/civilian/lawyer/bluesuit"
post_init_icon_state = "buttondown_slacks"
greyscale_config = /datum/greyscale_config/buttondown_slacks
greyscale_config_worn = /datum/greyscale_config/buttondown_slacks/worn
greyscale_colors = "#EEEEEE#CBDBFC#17171B#2B65A8"
@@ -191,7 +192,9 @@
/obj/item/clothing/under/rank/civilian/lawyer/bluesuit/skirt
name = "blue buttondown suitskirt"
icon_state = "buttondown_skirt"
icon = 'icons/map_icons/clothing/under/_under.dmi'
icon_state = "/obj/item/clothing/under/rank/civilian/lawyer/bluesuit/skirt"
post_init_icon_state = "buttondown_skirt"
greyscale_config = /datum/greyscale_config/buttondown_skirt
greyscale_config_worn = /datum/greyscale_config/buttondown_skirt/worn
body_parts_covered = CHEST|GROIN|ARMS
@@ -77,10 +77,12 @@
/obj/item/clothing/under/rank/civilian/clown/jester
name = "jester suit"
desc = "A jolly dress, well suited to entertain your master, nuncle."
icon_state = "jester_map"
greyscale_colors = "#00ff00#ff0000"
icon = 'icons/map_icons/clothing/under/_under.dmi'
icon_state = "/obj/item/clothing/under/rank/civilian/clown/jester"
post_init_icon_state = "jester_map"
greyscale_config = /datum/greyscale_config/jester_suit
greyscale_config_worn = /datum/greyscale_config/jester_suit/worn
greyscale_colors = "#00ff00#ff0000"
flags_1 = IS_PLAYER_COLORABLE_1
/obj/item/clothing/under/rank/civilian/clown/jesteralt
@@ -35,13 +35,16 @@
/obj/item/clothing/under/rank/civilian/curator/nasa
name = "\improper NASA jumpsuit"
desc = "It has a NASA logo on it and is made of space-proofed materials."
icon_state = "jumpsuit"
icon = 'icons/map_icons/clothing/under/color.dmi'
icon_state = "/obj/item/clothing/under/color"
post_init_icon_state = "jumpsuit"
inhand_icon_state = "jumpsuit"
greyscale_colors = "#3f3f3f"
flags_1 = parent_type::flags_1 | NO_NEW_GAGS_PREVIEW_1
greyscale_config = /datum/greyscale_config/jumpsuit
greyscale_config_worn = /datum/greyscale_config/jumpsuit/worn
greyscale_config_inhand_left = /datum/greyscale_config/jumpsuit/inhand_left
greyscale_config_inhand_right = /datum/greyscale_config/jumpsuit/inhand_right
greyscale_colors = "#3f3f3f"
w_class = WEIGHT_CLASS_BULKY
armor_type = /datum/armor/clothing_under/curator_nasa
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
+6 -3
View File
@@ -36,9 +36,10 @@
/obj/item/clothing/under/rank/rnd/research_director/alt
name = "research director's tan suit"
desc = "Maybe you'll engineer your own half-man, half-pig creature some day. Its fabric provides minor protection from biological contaminants."
icon = 'icons/obj/clothing/under/shorts_pants_shirts.dmi'
icon = 'icons/map_icons/clothing/under/_under.dmi'
worn_icon = 'icons/mob/clothing/under/shorts_pants_shirts.dmi'
icon_state = "buttondown_slacks"
icon_state = "/obj/item/clothing/under/rank/rnd/research_director/alt"
post_init_icon_state = "buttondown_slacks"
greyscale_config = /datum/greyscale_config/buttondown_slacks
greyscale_config_worn = /datum/greyscale_config/buttondown_slacks/worn
greyscale_colors = "#ffeeb6#c2d3da#402912#615233"
@@ -47,7 +48,9 @@
/obj/item/clothing/under/rank/rnd/research_director/alt/skirt
name = "research director's tan suitskirt"
icon_state = "buttondown_skirt"
icon = 'icons/map_icons/clothing/under/_under.dmi'
icon_state = "/obj/item/clothing/under/rank/rnd/research_director/alt/skirt"
post_init_icon_state = "buttondown_skirt"
greyscale_config = /datum/greyscale_config/buttondown_skirt
greyscale_config_worn = /datum/greyscale_config/buttondown_skirt/worn
body_parts_covered = CHEST|GROIN|ARMS
+8 -8
View File
@@ -230,15 +230,15 @@
/obj/item/clothing/under/rank/prisoner
name = "prison jumpsuit"
desc = "Standardised Nanotrasen prisoner-wear. Its suit sensors are stuck in the \"Fully On\" position."
icon_state = "jumpsuit"
icon_preview = 'icons/obj/fluff/previews.dmi'
icon_state_preview = "prisonsuit"
icon = 'icons/map_icons/clothing/under/_under.dmi'
icon_state = "/obj/item/clothing/under/rank/prisoner"
post_init_icon_state = "jumpsuit"
inhand_icon_state = "jumpsuit"
greyscale_colors = "#ff8300"
greyscale_config = /datum/greyscale_config/jumpsuit/prison
greyscale_config_worn = /datum/greyscale_config/jumpsuit/prison/worn
greyscale_config_inhand_left = /datum/greyscale_config/jumpsuit/prison/inhand_left
greyscale_config_inhand_right = /datum/greyscale_config/jumpsuit/prison/inhand_right
greyscale_colors = "#ff8300"
has_sensor = LOCKED_SENSORS
sensor_mode = SENSOR_COORDS
random_sensor = FALSE
@@ -251,14 +251,14 @@
/obj/item/clothing/under/rank/prisoner/skirt
name = "prison jumpskirt"
desc = "Standardised Nanotrasen prisoner-wear. Its suit sensors are stuck in the \"Fully On\" position."
icon_state = "jumpskirt"
icon_preview = 'icons/obj/fluff/previews.dmi'
icon_state_preview = "prisonskirt"
greyscale_colors = "#ff8300"
icon = 'icons/map_icons/clothing/under/_under.dmi'
icon_state = "/obj/item/clothing/under/rank/prisoner/skirt"
post_init_icon_state = "jumpskirt"
greyscale_config = /datum/greyscale_config/jumpsuit/prison
greyscale_config_worn = /datum/greyscale_config/jumpsuit/prison/worn
greyscale_config_inhand_left = /datum/greyscale_config/jumpsuit/prison/inhand_left
greyscale_config_inhand_right = /datum/greyscale_config/jumpsuit/prison/inhand_right
greyscale_colors = "#ff8300"
body_parts_covered = CHEST|GROIN|ARMS
dying_key = DYE_REGISTRY_JUMPSKIRT
female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY
+6 -2
View File
@@ -11,7 +11,9 @@
/obj/item/clothing/under/pants/slacks
name = "slacks"
desc = "A pair of comfy slacks."
icon_state = "slacks"
icon = 'icons/map_icons/clothing/under/_under.dmi'
icon_state = "/obj/item/clothing/under/pants/slacks"
post_init_icon_state = "slacks"
greyscale_config = /datum/greyscale_config/slacks
greyscale_config_worn = /datum/greyscale_config/slacks/worn
greyscale_colors = "#575757#3E3E3E#75634F"
@@ -20,7 +22,9 @@
/obj/item/clothing/under/pants/jeans
name = "jeans"
desc = "A nondescript pair of tough jeans."
icon_state = "jeans"
icon = 'icons/map_icons/clothing/under/_under.dmi'
icon_state = "/obj/item/clothing/under/pants/jeans"
post_init_icon_state = "jeans"
greyscale_config = /datum/greyscale_config/jeans
greyscale_config_worn = /datum/greyscale_config/jeans/worn
greyscale_colors = "#787878#723E0E#4D7EAC"
+12 -2
View File
@@ -1,7 +1,9 @@
/obj/item/clothing/under/shorts
name = "shorts"
desc = "A pair of comfy shorts."
icon_state = "shorts"
icon = 'icons/map_icons/clothing/under/_under.dmi'
icon_state = "/obj/item/clothing/under/shorts"
post_init_icon_state = "shorts"
greyscale_config = /datum/greyscale_config/shorts
greyscale_config_worn = /datum/greyscale_config/shorts/worn
greyscale_colors = "#575757#3E3E3E#75634F"
@@ -16,7 +18,9 @@
/obj/item/clothing/under/shorts/jeanshorts
name = "jean shorts"
desc = "A nondescript pair of tough jean shorts."
icon_state = "jeanshorts"
icon = 'icons/map_icons/clothing/under/_under.dmi'
icon_state = "/obj/item/clothing/under/shorts/jeanshorts"
post_init_icon_state = "jeanshorts"
greyscale_config = /datum/greyscale_config/jeanshorts
greyscale_config_worn = /datum/greyscale_config/jeanshorts/worn
greyscale_colors = "#787878#723E0E#4D7EAC"
@@ -24,29 +28,35 @@
/obj/item/clothing/under/shorts/red
name = "athletic shorts"
desc = "95% Polyester, 5% Spandex!"
icon_state = "/obj/item/clothing/under/shorts/red"
greyscale_colors = "#E43F3F#A81818#A81818"
/obj/item/clothing/under/shorts/green
name = "athletic shorts"
desc = "95% Polyester, 5% Spandex!"
icon_state = "/obj/item/clothing/under/shorts/green"
greyscale_colors = "#68E43F#3CA818#3CA818"
/obj/item/clothing/under/shorts/blue
name = "athletic shorts"
desc = "95% Polyester, 5% Spandex!"
icon_state = "/obj/item/clothing/under/shorts/blue"
greyscale_colors = "#3F68E4#183CA8#183CA8"
/obj/item/clothing/under/shorts/black
name = "athletic shorts"
desc = "95% Polyester, 5% Spandex!"
icon_state = "/obj/item/clothing/under/shorts/black"
greyscale_colors = "#606060#353535#353535"
/obj/item/clothing/under/shorts/grey
name = "athletic shorts"
desc = "95% Polyester, 5% Spandex!"
icon_state = "/obj/item/clothing/under/shorts/grey"
greyscale_colors = "#EFEFEF#B2B2B2#B2B2B2"
/obj/item/clothing/under/shorts/purple
name = "athletic shorts"
desc = "95% Polyester, 5% Spandex!"
icon_state = "/obj/item/clothing/under/shorts/purple"
greyscale_colors = "#B847FF#8F36C6#8F36C6"
+23 -8
View File
@@ -14,9 +14,11 @@
/obj/item/clothing/under/dress/striped
name = "striped dress"
desc = "Fashion in space."
icon_state = "stripeddress"
inhand_icon_state = null
female_sprite_flags = FEMALE_UNIFORM_FULL
icon = 'icons/map_icons/clothing/under/dress.dmi'
icon_state = "/obj/item/clothing/under/dress/striped"
post_init_icon_state = "stripeddress"
greyscale_config = /datum/greyscale_config/striped_dress
greyscale_config_worn = /datum/greyscale_config/striped_dress/worn
flags_1 = IS_PLAYER_COLORABLE_1
@@ -25,8 +27,10 @@
/obj/item/clothing/under/dress/sailor
name = "sailor dress"
desc = "Formal wear for a leading lady."
icon_state = "sailor_dress"
alternate_worn_layer = UNDER_SUIT_LAYER
icon = 'icons/map_icons/clothing/under/dress.dmi'
icon_state = "/obj/item/clothing/under/dress/sailor"
post_init_icon_state = "sailor_dress"
greyscale_config = /datum/greyscale_config/sailor_dress
greyscale_config_worn = /datum/greyscale_config/sailor_dress/worn
greyscale_colors = "#0000ff#cc0000#eaeaea"
@@ -49,9 +53,11 @@
/obj/item/clothing/under/dress/eveninggown
name = "evening gown"
desc = "Fancy dress for space bar singers."
icon_state = "evening_gown"
alternate_worn_layer = UNDER_SUIT_LAYER
inhand_icon_state = null
icon = 'icons/map_icons/clothing/under/dress.dmi'
icon_state = "/obj/item/clothing/under/dress/eveninggown"
post_init_icon_state = "evening_gown"
greyscale_config = /datum/greyscale_config/evening_dress
greyscale_config_worn = /datum/greyscale_config/evening_dress/worn
flags_1 = IS_PLAYER_COLORABLE_1
@@ -64,7 +70,9 @@
/obj/item/clothing/under/dress/skirt
name = "cardigan skirt"
desc = "A nice skirt with a cute cardigan, very fancy!"
icon_state = "cardiganskirt"
icon = 'icons/map_icons/clothing/under/dress.dmi'
icon_state = "/obj/item/clothing/under/dress/skirt"
post_init_icon_state = "cardiganskirt"
greyscale_config = /datum/greyscale_config/cardiganskirt
greyscale_config_worn = /datum/greyscale_config/cardiganskirt/worn
greyscale_colors = "#bf504d#545454"
@@ -74,7 +82,8 @@
/obj/item/clothing/under/dress/skirt/plaid
name = "plaid skirt"
desc = "A preppy plaid skirt with a white blouse."
icon_state = "plaidskirt"
icon_state = "/obj/item/clothing/under/dress/skirt/plaid"
post_init_icon_state = "plaidskirt"
can_adjust = TRUE
alt_covers_chest = TRUE
custom_price = PAYCHECK_CREW
@@ -86,9 +95,11 @@
/obj/item/clothing/under/dress/skirt/turtleskirt
name = "turtleneck skirt"
desc = "A casual turtleneck skirt."
icon_state = "turtleskirt"
custom_price = PAYCHECK_CREW
greyscale_colors = "#cc0000#5f5f5f"
icon = 'icons/map_icons/clothing/under/dress.dmi'
icon_state = "/obj/item/clothing/under/dress/skirt/turtleskirt"
post_init_icon_state = "turtleskirt"
greyscale_config = /datum/greyscale_config/turtleskirt
greyscale_config_worn = /datum/greyscale_config/turtleskirt/worn
flags_1 = IS_PLAYER_COLORABLE_1
@@ -96,10 +107,12 @@
/obj/item/clothing/under/dress/tango
name = "tango dress"
desc = "Filled with Latin fire."
icon_state = "tango"
alternate_worn_layer = UNDER_SUIT_LAYER
custom_price = PAYCHECK_CREW
greyscale_colors = "#ff0000#1c1c1c"
icon = 'icons/map_icons/clothing/under/dress.dmi'
icon_state = "/obj/item/clothing/under/dress/tango"
post_init_icon_state = "tango"
greyscale_config = /datum/greyscale_config/tango
greyscale_config_worn = /datum/greyscale_config/tango/worn
flags_1 = IS_PLAYER_COLORABLE_1
@@ -107,9 +120,11 @@
/obj/item/clothing/under/dress/sundress
name = "sundress"
desc = "Makes you want to frolic in a field of daisies."
icon_state = "sundress"
custom_price = PAYCHECK_CREW
greyscale_colors = "#FFE60F#9194A5#1F243C"
icon = 'icons/map_icons/clothing/under/dress.dmi'
icon_state = "/obj/item/clothing/under/dress/sundress"
post_init_icon_state = "sundress"
greyscale_config = /datum/greyscale_config/sundress
greyscale_config_worn = /datum/greyscale_config/sundress/worn
flags_1 = IS_PLAYER_COLORABLE_1
+27 -12
View File
@@ -11,8 +11,10 @@
/obj/item/clothing/under/trek/command
name = "command uniform"
desc = "An outdated uniform worn by command officers."
icon_state = "trek_tos_com" //Shirt has gold wrist-bands
inhand_icon_state = "y_suit"
icon = 'icons/map_icons/clothing/under/_under.dmi'
icon_state = "/obj/item/clothing/under/trek/command"
post_init_icon_state = "trek_tos_com"
greyscale_config = /datum/greyscale_config/trek
greyscale_config_worn = /datum/greyscale_config/trek/worn
greyscale_colors = "#fab342"
@@ -20,7 +22,9 @@
/obj/item/clothing/under/trek/engsec
name = "engsec uniform"
desc = "An outdated uniform worn by engineering/security officers."
icon_state = "trek_tos_sec" //Tucked-in shirt
icon = 'icons/map_icons/clothing/under/_under.dmi'
icon_state = "/obj/item/clothing/under/trek/engsec"
post_init_icon_state = "trek_tos_sec"
inhand_icon_state = "r_suit"
greyscale_config = /datum/greyscale_config/trek
greyscale_config_worn = /datum/greyscale_config/trek/worn
@@ -29,7 +33,9 @@
/obj/item/clothing/under/trek/medsci
name = "medsci uniform"
desc = "An outdated worn by medical/science officers."
icon_state = "trek_tos"
icon = 'icons/map_icons/clothing/under/_under.dmi'
icon_state = "/obj/item/clothing/under/trek/medsci"
post_init_icon_state = "trek_tos"
inhand_icon_state = "b_suit"
greyscale_config = /datum/greyscale_config/trek
greyscale_config_worn = /datum/greyscale_config/trek/worn
@@ -39,40 +45,49 @@
* The Next Generation
*/
/obj/item/clothing/under/trek/command/next
icon_state = "trek_next" //Technically TNG had Command wearing red, but bc gold is closer to command roles for SS13 we're taking some liberties
icon_state = "/obj/item/clothing/under/trek/command/next"
post_init_icon_state = "trek_next" //Technically TNG had Command wearing red, but bc gold is closer to command roles for SS13 we're taking some liberties
/obj/item/clothing/under/trek/engsec/next
icon_state = "trek_next"
icon_state = "/obj/item/clothing/under/trek/engsec/next"
post_init_icon_state = "trek_next"
/obj/item/clothing/under/trek/medsci/next
icon_state = "trek_next"
icon_state = "/obj/item/clothing/under/trek/medsci/next"
post_init_icon_state = "trek_next"
/*
* Voyager
*/
/obj/item/clothing/under/trek/command/voy
icon_state = "trek_voy" //Same point applies as TNG
icon_state = "/obj/item/clothing/under/trek/command/voy"
post_init_icon_state = "trek_voy" //Same point applies as TNG
/obj/item/clothing/under/trek/engsec/voy
icon_state = "trek_voy"
icon_state = "/obj/item/clothing/under/trek/engsec/voy"
post_init_icon_state = "trek_voy"
/obj/item/clothing/under/trek/medsci/voy
icon_state = "trek_voy"
icon_state = "/obj/item/clothing/under/trek/medsci/voy"
post_init_icon_state = "trek_voy"
/*
* Enterprise
*/
/obj/item/clothing/under/trek/command/ent
icon_state = "trek_ent"
icon_state = "/obj/item/clothing/under/trek/command/ent"
post_init_icon_state = "trek_ent"
//Greyscale sprite note, the base of it can't be greyscaled lest I make a whole new .json, but the color bands are greyscale at least.
inhand_icon_state = "bl_suit"
/obj/item/clothing/under/trek/engsec/ent
icon_state = "trek_ent"
icon_state = "/obj/item/clothing/under/trek/engsec/ent"
post_init_icon_state = "trek_ent"
inhand_icon_state = "bl_suit"
/obj/item/clothing/under/trek/medsci/ent
icon_state = "trek_ent"
icon_state = "/obj/item/clothing/under/trek/medsci/ent"
post_init_icon_state = "trek_ent"
inhand_icon_state = "bl_suit"
//Q
@@ -124,9 +124,6 @@
desc = "A beautiful light pink flower."
icon_state = "fraxinella"
distill_reagent = /datum/reagent/ash
greyscale_config = null
greyscale_config_worn = null
greyscale_colors = null
// Harebell
/obj/item/seeds/harebell
@@ -23,7 +23,6 @@
seed = /obj/item/seeds/rainbow_bunch
name = "rainbow flower"
desc = "A beautiful flower capable of being used for most dyeing processes."
icon_state = "map_flower"
slot_flags = ITEM_SLOT_HEAD
alternate_worn_layer = ABOVE_BODY_FRONT_HEAD_LAYER
force = 0
@@ -34,6 +33,9 @@
attack_verb_continuous = list("pompfs")
attack_verb_simple = list("pompf")
greyscale_colors = COLOR_BLACK //only here for unit testing. overriden in initialize()
icon = 'icons/map_icons/items/_item.dmi'
icon_state = "/obj/item/food/grown/rainbow_flower"
post_init_icon_state = "map_flower"
greyscale_config = /datum/greyscale_config/flower_simple
greyscale_config_worn = /datum/greyscale_config/flower_simple_worn
@@ -578,8 +578,9 @@
/obj/item/nullrod/carp
name = "carp-sie plushie"
desc = "An adorable stuffed toy that resembles the god of all carp. The teeth look pretty sharp. Activate it to receive the blessing of Carp-Sie."
icon = 'icons/obj/toys/plushes.dmi'
icon_state = "map_plushie_carp"
icon = 'icons/map_icons/items/_item.dmi'
icon_state = "/obj/item/nullrod/carp"
post_init_icon_state = "map_plushie_carp"
greyscale_config = /datum/greyscale_config/plush_carp
greyscale_colors = "#cc99ff#000000"
inhand_icon_state = "carp_plushie"
+1 -1
View File
@@ -56,7 +56,7 @@
belt = /obj/item/modular_computer/pda/mime
ears = /obj/item/radio/headset/headset_srv
gloves = /obj/item/clothing/gloves/color/white
head = /obj/item/clothing/head/frenchberet
head = /obj/item/clothing/head/beret/frenchberet
mask = /obj/item/clothing/mask/gas/mime
shoes = /obj/item/clothing/shoes/laceup
@@ -55,14 +55,10 @@
/datum/loadout_item/pocket_items/plush/carp
name = "Plush (Carp)"
ui_icon = 'icons/obj/fluff/previews.dmi'
ui_icon_state = "plushie_carp"
item_path = /obj/item/toy/plush/carpplushie
/datum/loadout_item/pocket_items/plush/lizard_greyscale
name = "Plush (Lizard, Colorable)"
ui_icon = 'icons/obj/fluff/previews.dmi'
ui_icon_state = "plushie_lizard"
item_path = /obj/item/toy/plush/lizard_plushie/greyscale
/datum/loadout_item/pocket_items/plush/lizard_random
@@ -98,8 +94,6 @@
/datum/loadout_item/pocket_items/plush/snake
name = "Plush (Snake)"
ui_icon = 'icons/obj/fluff/previews.dmi'
ui_icon_state = "plushie_snake"
item_path = /obj/item/toy/plush/snakeplushie
/datum/loadout_item/pocket_items/plush/horse
@@ -8,6 +8,7 @@
toolspeed = 0.3
/obj/item/screwdriver/caravan
icon = 'icons/obj/tools.dmi'
icon_state = "screwdriver_caravan"
desc = "A prototype of a new screwdriver design, allegedly the red color scheme makes it go faster."
name = "experimental screwdriver"
@@ -15,6 +16,7 @@
random_color = FALSE
/obj/item/wirecutters/caravan
icon = 'icons/obj/tools.dmi'
icon_state = "cutters_caravan"
desc = "A prototype of a new wirecutter design, allegedly the red color scheme makes it go faster."
name = "experimental wirecutters"
@@ -27,7 +27,9 @@
/obj/item/clothing/suit/hooded/hostile_environment
name = "H.E.C.K. suit"
desc = "Hostile Environment Cross-Kinetic Suit: A suit designed to withstand the wide variety of hazards from Lavaland. It wasn't enough for its last owner."
icon_state = "hostile_env"
icon = 'icons/map_icons/clothing/suit/_suit.dmi'
icon_state = "/obj/item/clothing/suit/hooded/hostile_environment"
post_init_icon_state = "hostile_env"
hoodtype = /obj/item/clothing/head/hooded/hostile_environment
armor_type = /datum/armor/hooded_hostile_environment
cold_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
@@ -73,9 +75,10 @@
/obj/item/clothing/head/hooded/hostile_environment
name = "H.E.C.K. helmet"
desc = "Hostile Environment Cross-Kinetic Helmet: A helmet designed to withstand the wide variety of hazards from Lavaland. It wasn't enough for its last owner."
icon = 'icons/obj/clothing/head/helmet.dmi'
icon = 'icons/map_icons/clothing/head/_head.dmi'
icon_state = "/obj/item/clothing/head/hooded/hostile_environment"
post_init_icon_state = "hostile_env"
worn_icon = 'icons/mob/clothing/head/helmet.dmi'
icon_state = "hostile_env"
w_class = WEIGHT_CLASS_NORMAL
armor_type = /datum/armor/hooded_hostile_environment
cold_protection = HEAD

Some files were not shown because too many files have changed in this diff Show More