Skip to content

Commit

Permalink
Merge pull request #8 from DopplerShift13/pockets-please
Browse files Browse the repository at this point in the history
gives jackets pockets & ports some nova jackets
  • Loading branch information
kittysmooch authored Aug 26, 2024
2 parents 8d05cea + 5650cc2 commit 1fbdaa8
Show file tree
Hide file tree
Showing 7 changed files with 335 additions and 0 deletions.
95 changes: 95 additions & 0 deletions modular_doppler/modular_cosmetics/code/jacket_pockets.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
//the pockets themselves

/datum/storage/pockets/jacket
max_slots = 2
max_total_storage = 5

/datum/storage/pockets/jacket/New(
atom/parent,
max_slots,
max_specific_storage,
max_total_storage,
)
. = ..()
set_holdable(list(
/obj/item/,
))

/datum/storage/pockets/jacket/jumbo
max_specific_storage = WEIGHT_CLASS_NORMAL
max_slots = 3
max_total_storage = 6

/datum/storage/pockets/jacket/jumbo/New(
atom/parent,
max_slots,
max_specific_storage,
max_total_storage,
)
. = ..()
set_holdable(list(
/obj/item/,
))

//overrides for existing tg jackets to get pockets and neckslotability

/obj/item/clothing/suit/jacket //we give all jackets neckslotability and basic pockets and override individually when we want jumbo pockets or no pockets
slot_flags = ITEM_SLOT_OCLOTHING|ITEM_SLOT_NECK
/obj/item/clothing/suit/jacket/Initialize(mapload)
. = ..()
create_storage(storage_type = /datum/storage/pockets/jacket)

/obj/item/clothing/suit/jacket/oversized/Initialize(mapload)
. = ..()
create_storage(storage_type = /datum/storage/pockets/jacket/jumbo)

/obj/item/clothing/suit/jacket/bomber/Initialize(mapload)
. = ..()
create_storage(storage_type = /datum/storage/pockets/jacket/jumbo)

/obj/item/clothing/suit/jacket/miljacket/Initialize(mapload)
. = ..()
create_storage(storage_type = /datum/storage/pockets/jacket/jumbo)

/obj/item/clothing/suit/jacket/letterman_syndie/Initialize(mapload)
. = ..()
create_storage(storage_type = /datum/storage/pockets/jacket/jumbo)

// suit/toggle objects are basically deprecated but there's a few desirable sprites. we override individually
// because otherwise we would put pockets on suspenders

/obj/item/clothing/suit/toggle/cargo_tech
slot_flags = ITEM_SLOT_OCLOTHING|ITEM_SLOT_NECK
/obj/item/clothing/suit/toggle/cargo_tech/Initialize(mapload)
. = ..()
create_storage(storage_type = /datum/storage/pockets/jacket/jumbo)

/obj/item/clothing/suit/toggle/chef
slot_flags = ITEM_SLOT_OCLOTHING|ITEM_SLOT_NECK
/obj/item/clothing/suit/toggle/chef/Initialize(mapload)
. = ..()
create_storage(storage_type = /datum/storage/pockets/jacket/jumbo)

/obj/item/clothing/suit/toggle/labcoat
slot_flags = ITEM_SLOT_OCLOTHING|ITEM_SLOT_NECK
/obj/item/clothing/suit/toggle/labcoat/Initialize(mapload)
. = ..()
create_storage(storage_type = /datum/storage/pockets/jacket/jumbo)

/obj/item/clothing/suit/toggle/lawyer
slot_flags = ITEM_SLOT_OCLOTHING|ITEM_SLOT_NECK
/obj/item/clothing/suit/toggle/lawyer/Initialize(mapload)
. = ..()
create_storage(storage_type = /datum/storage/pockets/jacket/jumbo)

// some wintercoats come with pretty significant armor, so we only give them pockets and not neckslots to stave off a meta

/obj/item/clothing/suit/hooded/wintercoat/Initialize(mapload)
. = ..()
create_storage(storage_type = /datum/storage/pockets/jacket/jumbo)

// most costumes don't have pockets, but neckslotability is probably fine.

/obj/item/clothing/suit/costume
slot_flags = ITEM_SLOT_OCLOTHING|ITEM_SLOT_NECK

238 changes: 238 additions & 0 deletions modular_doppler/modular_cosmetics/code/suits/jacket.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,238 @@
/obj/item/clothing/suit/jacket/doppler
icon = 'modular_doppler/modular_cosmetics/icons/obj/suit/jacket.dmi'
worn_icon = 'modular_doppler/modular_cosmetics/icons/mob/suit/jacket.dmi'
slot_flags = ITEM_SLOT_OCLOTHING|ITEM_SLOT_NECK

/obj/item/clothing/suit/jacket/doppler/Initialize(mapload)
. = ..()
create_storage(storage_type = /datum/storage/pockets/jacket)

/obj/item/clothing/suit/hooded/doppler
icon = 'modular_doppler/modular_cosmetics/icons/obj/suit/jacket.dmi'
worn_icon = 'modular_doppler/modular_cosmetics/icons/mob/suit/jacket.dmi'
slot_flags = ITEM_SLOT_OCLOTHING|ITEM_SLOT_NECK

/obj/item/clothing/suit/hooded/doppler/Initialize(mapload)
. = ..()
create_storage(storage_type = /datum/storage/pockets/jacket)

/datum/armor/jacket_armor //because our jackets can go in the neck slot, they should have little to no armor
melee = 0
bullet = 0
laser = 0
energy = 0
bomb = 0
bio = 10
fire = 0
acid = 10
wound = 5

////////////////////////
//DEPARTMENTAL JACKETS//
////////////////////////

/obj/item/clothing/suit/jacket/doppler/departmental_jacket
name = "work jacket"
desc = "A simple and practical jacket for labor with a center front zipper closure, two handwarmer pockets, \
and two interior pockets. A venerable old design in cutting edge textile fiber."
icon_state = "off_dep_jacket"
allowed = list(
/obj/item/flashlight,
/obj/item/tank/internals/emergency_oxygen,
/obj/item/tank/internals/plasmaman,
/obj/item/toy,
/obj/item/storage/fancy/cigarettes,
/obj/item/lighter,
/obj/item/radio,
)
body_parts_covered = CHEST|ARMS|GROIN
cold_protection = CHEST|ARMS|GROIN
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT

/obj/item/clothing/suit/jacket/doppler/departmental_jacket/Initialize(mapload)
. = ..()
AddComponent(/datum/component/toggle_icon, "zipper")

/obj/item/clothing/suit/jacket/doppler/departmental_jacket/engi
name = "engineering department jacket"
desc = "A simple jacket emblazoned with the ship's engineering team insignia, it features tape-welded seams \
and expanded pockets."
icon_state = "engi_dep_jacket"
armor_type = /datum/armor/jacket_armor
allowed = list(
/obj/item/flashlight,
/obj/item/tank/internals/emergency_oxygen,
/obj/item/tank/internals/plasmaman,
/obj/item/t_scanner,
/obj/item/construction/rcd,
/obj/item/pipe_dispenser,
/obj/item/toy,
/obj/item/storage/fancy/cigarettes,
/obj/item/lighter,
)

/obj/item/clothing/suit/jacket/doppler/departmental_jacket/engi/Initialize(mapload)
. = ..()
AddComponent(/datum/component/toggle_icon, "zipper")
create_storage(storage_type = /datum/storage/pockets/jacket/jumbo)

/obj/item/clothing/suit/jacket/doppler/departmental_jacket/sci
name = "science department jacket"
desc = "A spill-proof Harrington style jacket denoting employment in the R&D division."
icon_state = "sci_dep_jacket"
armor_type = /datum/armor/jacket_armor

/obj/item/clothing/suit/jacket/doppler/departmental_jacket/med
name = "medical department jacket"
desc = "A basic Harrington style jacket in stain-resistant and washable hyperpoly fibers. It isn't \
apparent from looking at it, but this style is cut with wider sleeves and relaxed cuffs, to better \
allow for pushing them up past the elbows."
icon_state = "med_dep_jacket"
armor_type = /datum/armor/jacket_armor

/obj/item/clothing/suit/jacket/doppler/departmental_jacket/supply
name = "cargo department jacket"
desc = "A hardwearing jacket for chilly warehouses and cargo holds. By popular and incessant request \
these are fitted with extra large pockets."
icon_state = "supply_dep_jacket"

/obj/item/clothing/suit/jacket/doppler/departmental_jacket/supply/Initialize(mapload)
. = ..()
AddComponent(/datum/component/toggle_icon, "zipper")
create_storage(storage_type = /datum/storage/pockets/jacket/jumbo)

/obj/item/clothing/suit/jacket/doppler/departmental_jacket/sec
name = "blue security department jacket"
desc = "A basic style of jacket cut just so to ensure that the plate carrier beneath it doesn't imprint \
on the shell, and to readily accomodate a holstered weapon."
icon_state = "sec_dep_jacket"
armor_type = /datum/armor/jacket_armor

/obj/item/clothing/suit/jacket/doppler/departmental_jacket/sec/Initialize(mapload)
. = ..()
AddComponent(/datum/component/toggle_icon, "zipper")
allowed = GLOB.security_vest_allowed
create_storage(storage_type = /datum/storage/pockets/jacket/jumbo)

/obj/item/clothing/suit/jacket/doppler/departmental_jacket/sec/red
name = "red security department jacket"
desc = "A basic style of jacket cut just so to ensure that the plate carrier beneath it doesn't imprint \
on the shell, and to readily accomodate a holstered weapon."
icon_state = "sec_dep_jacket_old"

/obj/item/clothing/suit/jacket/doppler/sec_medic
name = "security medic jacket"
desc = "A tight synthetic knit protects the wearer from errant needlestabs, though the sleeves are often rolled \
away from the forarm. Its pockets are very generous."
icon_state = "secmed_labcoat_blue"

/obj/item/clothing/suit/jacket/doppler/sec_medic/Initialize(mapload)
. = ..()
allowed = GLOB.security_vest_allowed
create_storage(storage_type = /datum/storage/pockets/jacket/jumbo)

////////////////////
//MORE SEC JACKETS//
////////////////////

/obj/item/clothing/suit/jacket/doppler/peacekeeper_jacket
name = "peacekeeper jacket"
desc = "A slightly vintage canvas and aramid jacket; hi-vis checkers included. Armored and stylish? Implausible."
icon_state = "peacekeeper_jacket"
body_parts_covered = CHEST|GROIN|ARMS
cold_protection = CHEST|GROIN|ARMS
heat_protection = CHEST|GROIN|ARMS
armor_type = /datum/armor/jacket_armor

/obj/item/clothing/suit/jacket/doppler/peacekeeper_jacket/Initialize(mapload)
. = ..()
AddComponent(/datum/component/toggle_icon, "zipper")
allowed = GLOB.security_vest_allowed
create_storage(storage_type = /datum/storage/pockets/jacket/jumbo)

/obj/item/clothing/suit/jacket/doppler/peacekeeper_jacket/badged
name = "badged peacekeeper jacket"
desc = "A slightly vintage canvas and aramid jacket; hi-vis checkers and chevron badge included. Armored and stylish? Implausible."
icon_state = "peacekeeper_jacket_badge"

/obj/item/clothing/suit/jacket/doppler/peacekeeper_jacket/hazard
name = "security hazard vest"
desc = "Strips of retroreflective tape bind dayglo mesh into a visually protective vest."
icon_state = "hazardbg"

/obj/item/clothing/suit/jacket/doppler/runner_coat
name = "runner coat"
desc = "A weighty coat of thick synthshearling still bears the patternmaking concessions to the limited size \
of pre-printed sheepskin. What was once a style of necessity has become a matter of authenticity."
icon_state = "runner_coat"
armor_type = /datum/armor/jacket_armor

/obj/item/clothing/suit/jacket/doppler/runner_coat/Initialize(mapload)
. = ..()
allowed = GLOB.security_vest_allowed
create_storage(storage_type = /datum/storage/pockets/jacket/jumbo)

////////////////
//MORE JACKETS//
////////////////

/obj/item/clothing/suit/jacket/doppler/field_jacket
name = "venerable old field jacket"
desc = "Something like this style of gabardine jacket has been in and out of style for military forces for \
centuries. Simple drab is sometimes used where camoflauge would be irrelevant even now."
icon_state = "field_jacket"

/obj/item/clothing/suit/jacket/doppler/field_jacket/Initialize(mapload)
. = ..()
AddComponent(/datum/component/toggle_icon, "zipper")
create_storage(storage_type = /datum/storage/pockets/jacket/jumbo)

/obj/item/clothing/suit/jacket/doppler/field_jacket/tan
name = "venerable old tan jacket"
desc = "A lightened field jacket with ample pockets, intended for arid deployments some decades now and now \
serving a second life as a fashion item."
icon_state = "tan_field_jacket"

/obj/item/clothing/suit/hooded/doppler/leather_hoodie
name = "leather jacket with hoodie"
desc = ""
icon_state = "leatherhoodie"
body_parts_covered = CHEST|GROIN|ARMS
hoodtype = /obj/item/clothing/head/hooded/leather

/obj/item/clothing/head/hooded/leather
name = "sweatshirt hood"
desc = "A hood attached to a hoodie, nothing special."
icon_state = "leatherhood"
icon = 'modular_doppler/modular_cosmetics/icons/obj/head/hoods.dmi'
worn_icon = 'modular_doppler/modular_cosmetics/icons/mob/head/hoods.dmi'
flags_inv = HIDEHAIR
armor_type = /datum/armor/jacket_armor

/////////
//COATS//
/////////

/obj/item/clothing/suit/jacket/doppler/fur_coat
name = "rugged fur coat"
desc = "Even in an age where any large mammal can be grown in situ at industrial levels some insist on having \
the pelts of 'real' creatures to wear. The unnecessary suffering gives this coat a grim aura."
icon_state = "fur_coat"
armor_type = /datum/armor/jacket_armor

/obj/item/clothing/suit/jacket/doppler/wrap_coat
name = "chic wrap coat"
desc = "A jacket possessed of measured asymmetry, its fly-front closure conceals its fasteners as if the single \
wide belt is all that holds it closed. Surprisingly warm."
icon_state = "wrap_coat"

/obj/item/clothing/suit/jacket/doppler/red_trench
name = "Marsian PLA trenchcoat by Alpha Atelier"
desc = "An exhaustive and expensive reproduction of trenchcoats favored by the vanguards of a Marsian revolutionary \
movement who would likely shoot its wearer if they were alive to see the price tag."
icon_state = "red_trench"
armor_type = /datum/armor/jacket_armor

/obj/item/clothing/suit/jacket/doppler/red_trench/Initialize(mapload)
. = ..()
create_storage(storage_type = /datum/storage/pockets/jacket/jumbo)
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
2 changes: 2 additions & 0 deletions tgstation.dme
Original file line number Diff line number Diff line change
Expand Up @@ -6362,6 +6362,8 @@
#include "modular_doppler\emotes\code\added_emotes\robot_sounds.dm"
#include "modular_doppler\face_mouse_preferences\code\face_mouse_pref.dm"
#include "modular_doppler\languages\language_datums.dm"
#include "modular_doppler\modular_cosmetics\code\jacket_pockets.dm"
#include "modular_doppler\modular_cosmetics\code\suits\jacket.dm"
#include "modular_doppler\wargaming\code\game_kit.dm"
#include "modular_doppler\wargaming\code\holograms.dm"
#include "modular_doppler\wargaming\code\projectors.dm"
Expand Down

0 comments on commit 1fbdaa8

Please sign in to comment.