diff --git a/code/datums/ert.dm b/code/datums/ert.dm
index cde9da65112..d2d2bbbf06e 100644
--- a/code/datums/ert.dm
+++ b/code/datums/ert.dm
@@ -71,3 +71,12 @@
rename_team = "Horde of Interns"
mission = "Assist in conflict resolution."
polldesc = "an unpaid internship opportunity with Nanotrasen"
+
+/datum/ert/erp
+ roles = list(/datum/antagonist/ert/security/party, /datum/antagonist/ert/clown/party, /datum/antagonist/ert/engineer/party, /datum/antagonist/ert/janitor/party)
+ leader_role = /datum/antagonist/ert/commander/party
+ opendoors = FALSE
+ rename_team = "Emergency Response Party"
+ mission = "Create entertainment for the crew."
+ polldesc = "a Code Rainbow Nanotrasen Emergency Response Party"
+ code = "Rainbow"
diff --git a/code/game/objects/items/cards_ids.dm b/code/game/objects/items/cards_ids.dm
index 3462ff1800b..e4008faed05 100644
--- a/code/game/objects/items/cards_ids.dm
+++ b/code/game/objects/items/cards_ids.dm
@@ -505,7 +505,7 @@ update_label()
desc = "An ID straight from Central Command."
icon_state = "centcom"
registered_name = "Central Command"
- assignment = "General"
+ assignment = "Central Command"
uses_overlays = FALSE
/obj/item/card/id/centcom/Initialize()
@@ -525,30 +525,30 @@ update_label()
access = get_all_accesses()+get_ert_access("commander")-ACCESS_CHANGE_IDS
. = ..()
-/obj/item/card/id/ert/Security
+/obj/item/card/id/ert/security
registered_name = "Security Response Officer"
assignment = "Security Response Officer"
icon_state = "ert_security"
-/obj/item/card/id/ert/Security/Initialize()
+/obj/item/card/id/ert/security/Initialize()
access = get_all_accesses()+get_ert_access("sec")-ACCESS_CHANGE_IDS
. = ..()
-/obj/item/card/id/ert/Engineer
- registered_name = "Engineer Response Officer"
- assignment = "Engineer Response Officer"
+/obj/item/card/id/ert/engineer
+ registered_name = "Engineering Response Officer"
+ assignment = "Engineering Response Officer"
icon_state = "ert_engineer"
-/obj/item/card/id/ert/Engineer/Initialize()
+/obj/item/card/id/ert/engineer/Initialize()
access = get_all_accesses()+get_ert_access("eng")-ACCESS_CHANGE_IDS
. = ..()
-/obj/item/card/id/ert/Medical
+/obj/item/card/id/ert/medical
registered_name = "Medical Response Officer"
assignment = "Medical Response Officer"
icon_state = "ert_medic"
-/obj/item/card/id/ert/Medical/Initialize()
+/obj/item/card/id/ert/medical/Initialize()
access = get_all_accesses()+get_ert_access("med")-ACCESS_CHANGE_IDS
. = ..()
@@ -561,15 +561,33 @@ update_label()
access = get_all_accesses()+get_ert_access("sec")-ACCESS_CHANGE_IDS
. = ..()
-/obj/item/card/id/ert/Janitor
+/obj/item/card/id/ert/janitor
registered_name = "Janitorial Response Officer"
assignment = "Janitorial Response Officer"
icon_state = "ert_janitor"
-/obj/item/card/id/ert/Janitor/Initialize()
+/obj/item/card/id/ert/janitor/Initialize()
access = get_all_accesses()
. = ..()
+/obj/item/card/id/ert/clown
+ registered_name = "Entertainment Response Officer"
+ assignment = "Entertainment Response Officer"
+ icon_state = "ert_clown"
+
+/obj/item/card/id/ert/clown/Initialize()
+ access = get_all_accesses()
+ . = ..()
+
+/obj/item/card/id/ert/deathsquad
+ name = "\improper Death Squad ID"
+ id_type_name = "\improper Death Squad ID"
+ desc = "A Death Squad ID card."
+ icon_state = "deathsquad" //NO NO SIR DEATH SQUADS ARENT A PART OF NANOTRASEN AT ALL
+ registered_name = "Death Commando"
+ assignment = "Death Commando"
+ uses_overlays = FALSE
+
/obj/item/card/id/debug
name = "\improper Debug ID"
desc = "A debug ID card. Has ALL the all access, you really shouldn't have this."
diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm
index 0120b3ce5a4..d1aafe990ab 100644
--- a/code/game/objects/items/storage/backpack.dm
+++ b/code/game/objects/items/storage/backpack.dm
@@ -204,6 +204,15 @@
desc = "A spacious backpack with lots of pockets, worn by Engineers of an Emergency Response Team."
icon_state = "ert_engineering"
+/obj/item/storage/backpack/ert/janitor
+ name = "emergency response team janitor backpack"
+ desc = "A spacious backpack with lots of pockets, worn by Janitors of an Emergency Response Team."
+ icon_state = "ert_janitor"
+
+/obj/item/storage/backpack/ert/clown
+ name = "emergency response team clown backpack"
+ desc = "A spacious backpack with lots of pockets, worn by Clowns of an Emergency Response Team."
+ icon_state = "ert_clown"
/*
* Satchel Types
*/
diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm
index 59a33cec997..11ff20a6e13 100644
--- a/code/game/objects/items/storage/belt.dm
+++ b/code/game/objects/items/storage/belt.dm
@@ -336,7 +336,7 @@
name = "championship belt"
desc = "Proves to the world that you are the strongest!"
icon_state = "championbelt"
- item_state = "champion"
+ item_state = "championbelt"
custom_materials = list(/datum/material/gold=400)
/obj/item/storage/belt/champion/ComponentInitialize()
diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm
index 9c720f2d752..f4ae19125be 100644
--- a/code/modules/admin/verbs/one_click_antag.dm
+++ b/code/modules/admin/verbs/one_click_antag.dm
@@ -260,7 +260,7 @@
var/datum/antagonist/ert/ert = antag
mannequin.equipOutfit(initial(ert.outfit), TRUE)
else if (ispath(antag, /datum/antagonist/official))
- mannequin.equipOutfit(/datum/outfit/centcom_official, TRUE)
+ mannequin.equipOutfit(/datum/outfit/centcom/centcom_official, TRUE)
/datum/admins/proc/makeERTPreviewIcon(list/settings)
// Set up the dummy for its photoshoot
diff --git a/code/modules/antagonists/ert/ert.dm b/code/modules/antagonists/ert/ert.dm
index 513e276661c..bdb71b0a44a 100644
--- a/code/modules/antagonists/ert/ert.dm
+++ b/code/modules/antagonists/ert/ert.dm
@@ -7,10 +7,11 @@
name = "Emergency Response Officer"
var/datum/team/ert/ert_team
var/leader = FALSE
- var/datum/outfit/outfit = /datum/outfit/ert/security
+ var/datum/outfit/outfit = /datum/outfit/centcom/ert/security
var/role = "Security Officer"
var/list/name_source
var/random_names = TRUE
+ var/rip_and_tear = FALSE
show_in_antagpanel = FALSE
antag_moodlet = /datum/mood_event/focused
can_hijack = HIJACK_PREVENT
@@ -45,53 +46,54 @@
/datum/antagonist/ert/security // kinda handled by the base template but here for completion
/datum/antagonist/ert/security/red
- outfit = /datum/outfit/ert/security/alert
+ outfit = /datum/outfit/centcom/ert/security/alert
/datum/antagonist/ert/engineer
role = "Engineer"
- outfit = /datum/outfit/ert/engineer
+ outfit = /datum/outfit/centcom/ert/engineer
/datum/antagonist/ert/engineer/red
- outfit = /datum/outfit/ert/engineer/alert
+ outfit = /datum/outfit/centcom/ert/engineer/alert
/datum/antagonist/ert/medic
role = "Medical Officer"
- outfit = /datum/outfit/ert/medic
+ outfit = /datum/outfit/centcom/ert/medic
/datum/antagonist/ert/medic/red
- outfit = /datum/outfit/ert/medic/alert
+ outfit = /datum/outfit/centcom/ert/medic/alert
/datum/antagonist/ert/commander
role = "Commander"
- outfit = /datum/outfit/ert/commander
+ outfit = /datum/outfit/centcom/ert/commander
/datum/antagonist/ert/commander/red
- outfit = /datum/outfit/ert/commander/alert
+ outfit = /datum/outfit/centcom/ert/commander/alert
/datum/antagonist/ert/deathsquad
name = "Deathsquad Trooper"
- outfit = /datum/outfit/death_commando
+ outfit = /datum/outfit/centcom/death_commando
role = "Trooper"
+ rip_and_tear = TRUE
/datum/antagonist/ert/medic/inquisitor
- outfit = /datum/outfit/ert/medic/inquisitor
+ outfit = /datum/outfit/centcom/ert/medic/inquisitor
/datum/antagonist/ert/security/inquisitor
- outfit = /datum/outfit/ert/security/inquisitor
+ outfit = /datum/outfit/centcom/ert/security/inquisitor
/datum/antagonist/ert/chaplain
role = "Chaplain"
- outfit = /datum/outfit/ert/chaplain
+ outfit = /datum/outfit/centcom/ert/chaplain
/datum/antagonist/ert/chaplain/inquisitor
- outfit = /datum/outfit/ert/chaplain/inquisitor
+ outfit = /datum/outfit/centcom/ert/chaplain/inquisitor
/datum/antagonist/ert/chaplain/on_gain()
. = ..()
owner.isholy = TRUE
/datum/antagonist/ert/commander/inquisitor
- outfit = /datum/outfit/ert/commander/inquisitor
+ outfit = /datum/outfit/centcom/ert/commander/inquisitor
/datum/antagonist/ert/commander/inquisitor/on_gain()
. = ..()
@@ -99,28 +101,56 @@
/datum/antagonist/ert/janitor
role = "Janitor"
- outfit = /datum/outfit/ert/janitor
+ outfit = /datum/outfit/centcom/ert/janitor
/datum/antagonist/ert/janitor/heavy
role = "Heavy Duty Janitor"
- outfit = /datum/outfit/ert/janitor/heavy
+ outfit = /datum/outfit/centcom/ert/janitor/heavy
/datum/antagonist/ert/deathsquad/leader
name = "Deathsquad Officer"
- outfit = /datum/outfit/death_commando
+ outfit = /datum/outfit/centcom/death_commando
role = "Officer"
/datum/antagonist/ert/intern
name = "CentCom Intern"
- outfit = /datum/outfit/centcom_intern
+ outfit = /datum/outfit/centcom/centcom_intern
random_names = FALSE
role = "Intern"
/datum/antagonist/ert/intern/leader
name = "CentCom Head Intern"
- outfit = /datum/outfit/centcom_intern/leader
+ outfit = /datum/outfit/centcom/centcom_intern/leader
role = "Head Intern"
+/datum/antagonist/ert/clown
+ role = "Clown"
+ outfit = /datum/outfit/centcom/ert/clown
+
+/datum/antagonist/ert/clown/New()
+ . = ..()
+ name_source = GLOB.clown_names
+
+/datum/antagonist/ert/janitor/party
+ role = "Party Cleaning Service"
+ outfit = /datum/outfit/centcom/ert/janitor/party
+
+/datum/antagonist/ert/security/party
+ role = "Party Bouncer"
+ outfit = /datum/outfit/centcom/ert/security/party
+
+/datum/antagonist/ert/engineer/party
+ role = "Party Constructor"
+ outfit = /datum/outfit/centcom/ert/engineer/party
+
+/datum/antagonist/ert/clown/party
+ role = "Party Comedian"
+ outfit = /datum/outfit/centcom/ert/clown/party
+
+/datum/antagonist/ert/commander/party
+ role = "Party Coordinator"
+ outfit = /datum/outfit/centcom/ert/commander/party
+
/datum/antagonist/ert/create_team(datum/team/ert/new_team)
if(istype(new_team))
ert_team = new_team
@@ -146,23 +176,8 @@
missiondesc += " Lead your squad to ensure the completion of the mission. Board the shuttle when your team is ready."
else
missiondesc += " Follow orders given to you by your squad leader."
-
+ if(!rip_and_tear)
missiondesc += "Avoid civilian casualties when possible."
missiondesc += "
Your Mission : [ert_team.mission.explanation_text]"
to_chat(owner,missiondesc)
-
-/datum/antagonist/ert/deathsquad/greet()
- if(!ert_team)
- return
-
- to_chat(owner, "You are the [name].")
-
- var/missiondesc = "Your squad is being sent on a mission to [station_name()] by Nanotrasen's Security Division."
- if(leader) //If Squad Leader
- missiondesc += " Lead your squad to ensure the completion of the mission. Board the shuttle when your team is ready."
- else
- missiondesc += " Follow orders given to you by your squad leader."
-
- missiondesc += "
Your Mission : [ert_team.mission.explanation_text]"
- to_chat(owner,missiondesc)
diff --git a/code/modules/antagonists/official/official.dm b/code/modules/antagonists/official/official.dm
index 77bba675ca6..a12d04b60d1 100644
--- a/code/modules/antagonists/official/official.dm
+++ b/code/modules/antagonists/official/official.dm
@@ -17,7 +17,7 @@
var/mob/living/carbon/human/H = owner.current
if(!istype(H))
return
- H.equipOutfit(/datum/outfit/centcom_official)
+ H.equipOutfit(/datum/outfit/centcom/centcom_official)
if(CONFIG_GET(flag/enforce_human_authority))
H.set_species(/datum/species/human)
diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm
index 090c00afc8f..1b7181528de 100644
--- a/code/modules/clothing/head/misc.dm
+++ b/code/modules/clothing/head/misc.dm
@@ -442,3 +442,10 @@
desc = "A horrifying mix of beanie and softcap in CentCom green. You'd have to be pretty desperate for power over your peers to agree to wear this."
icon_state = "intern_hat"
item_state = "intern_hat"
+
+/obj/item/clothing/head/coordinator
+ name = "coordinator cap"
+ desc = "A cap for a party ooordinator, stylish!."
+ icon_state = "capcap"
+ item_state = "that"
+ armor = list("melee" = 25, "bullet" = 15, "laser" = 25, "energy" = 35, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50)
diff --git a/code/modules/clothing/masks/hailer.dm b/code/modules/clothing/masks/hailer.dm
index 158d6965978..7ddccf1b1bc 100644
--- a/code/modules/clothing/masks/hailer.dm
+++ b/code/modules/clothing/masks/hailer.dm
@@ -49,10 +49,10 @@ GLOBAL_LIST_INIT(hailer_phrases, list(
icon_state = "sechailer"
item_state = "sechailer"
clothing_flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS
- flags_inv = HIDEFACIALHAIR|HIDEFACE
+ flags_inv = HIDEFACIALHAIR | HIDEFACE
w_class = WEIGHT_CLASS_SMALL
visor_flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS
- visor_flags_inv = HIDEFACE
+ visor_flags_inv = HIDEFACIALHAIR | HIDEFACE
flags_cover = MASKCOVERSMOUTH | MASKCOVERSEYES | PEPPERPROOF
visor_flags_cover = MASKCOVERSMOUTH | MASKCOVERSEYES | PEPPERPROOF
var/aggressiveness = AGGR_BAD_COP
diff --git a/code/modules/clothing/outfits/ert.dm b/code/modules/clothing/outfits/ert.dm
index ab09425ea43..e809d8ba4dc 100644
--- a/code/modules/clothing/outfits/ert.dm
+++ b/code/modules/clothing/outfits/ert.dm
@@ -1,18 +1,16 @@
-/datum/outfit/ert
+/datum/outfit/centcom/ert
name = "ERT Common"
+ mask = /obj/item/clothing/mask/gas/sechailer
uniform = /obj/item/clothing/under/rank/centcom/officer
shoes = /obj/item/clothing/shoes/combat/swat
gloves = /obj/item/clothing/gloves/combat
ears = /obj/item/radio/headset/headset_cent/alt
-/datum/outfit/ert/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
+/datum/outfit/centcom/ert/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
if(visualsOnly)
return
- var/obj/item/implant/mindshield/L = new/obj/item/implant/mindshield(H)
- L.implant(H, null, 1)
-
var/obj/item/radio/R = H.ears
R.set_frequency(FREQ_CENTCOM)
R.freqlock = TRUE
@@ -20,8 +18,9 @@
var/obj/item/card/id/W = H.wear_id
W.registered_name = H.real_name
W.update_label()
+ ..()
-/datum/outfit/ert/commander
+/datum/outfit/centcom/ert/commander
name = "ERT Commander"
id = /obj/item/card/id/ert
@@ -31,11 +30,10 @@
belt = /obj/item/storage/belt/security/full
backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\
/obj/item/melee/baton/loaded=1,\
- /obj/item/clothing/mask/gas/sechailer=1,\
/obj/item/gun/energy/e_gun=1)
l_pocket = /obj/item/switchblade
-/datum/outfit/ert/commander/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
+/datum/outfit/centcom/ert/commander/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
..()
if(visualsOnly)
@@ -44,31 +42,30 @@
R.keyslot = new /obj/item/encryptionkey/heads/captain
R.recalculateChannels()
-/datum/outfit/ert/commander/alert
+/datum/outfit/centcom/ert/commander/alert
name = "ERT Commander - High Alert"
+ mask = /obj/item/clothing/mask/gas/sechailer/swat
glasses = /obj/item/clothing/glasses/thermal/eyepatch
backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\
/obj/item/melee/baton/loaded=1,\
- /obj/item/clothing/mask/gas/sechailer/swat=1,\
/obj/item/gun/energy/pulse/pistol/loyalpin=1)
l_pocket = /obj/item/melee/transforming/energy/sword/saber
-/datum/outfit/ert/security
+/datum/outfit/centcom/ert/security
name = "ERT Security"
- id = /obj/item/card/id/ert/Security
+ id = /obj/item/card/id/ert/security
suit = /obj/item/clothing/suit/space/hardsuit/ert/sec
glasses = /obj/item/clothing/glasses/hud/security/sunglasses
back = /obj/item/storage/backpack/ert/security
belt = /obj/item/storage/belt/security/full
backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\
/obj/item/storage/box/handcuffs=1,\
- /obj/item/clothing/mask/gas/sechailer=1,\
/obj/item/gun/energy/e_gun/stun=1,\
/obj/item/melee/baton/loaded=1)
-/datum/outfit/ert/security/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
+/datum/outfit/centcom/ert/security/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
..()
if(visualsOnly)
@@ -78,20 +75,20 @@
R.keyslot = new /obj/item/encryptionkey/heads/hos
R.recalculateChannels()
-/datum/outfit/ert/security/alert
+/datum/outfit/centcom/ert/security/alert
name = "ERT Security - High Alert"
+ mask = /obj/item/clothing/mask/gas/sechailer/swat
backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\
/obj/item/storage/box/handcuffs=1,\
- /obj/item/clothing/mask/gas/sechailer/swat=1,\
/obj/item/melee/baton/loaded=1,\
/obj/item/gun/energy/pulse/carbine/loyalpin=1)
-/datum/outfit/ert/medic
+/datum/outfit/centcom/ert/medic
name = "ERT Medic"
- id = /obj/item/card/id/ert/Medical
+ id = /obj/item/card/id/ert/medical
suit = /obj/item/clothing/suit/space/hardsuit/ert/med
glasses = /obj/item/clothing/glasses/hud/health
back = /obj/item/storage/backpack/ert/medical
@@ -99,12 +96,11 @@
r_hand = /obj/item/storage/firstaid/regular
backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\
/obj/item/melee/baton/loaded=1,\
- /obj/item/clothing/mask/gas/sechailer=1,\
/obj/item/gun/energy/e_gun=1,\
/obj/item/reagent_containers/hypospray/combat=1,\
/obj/item/gun/medbeam=1)
-/datum/outfit/ert/medic/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
+/datum/outfit/centcom/ert/medic/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
..()
if(visualsOnly)
@@ -114,20 +110,20 @@
R.keyslot = new /obj/item/encryptionkey/heads/cmo
R.recalculateChannels()
-/datum/outfit/ert/medic/alert
+/datum/outfit/centcom/ert/medic/alert
name = "ERT Medic - High Alert"
+ mask = /obj/item/clothing/mask/gas/sechailer/swat
backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\
/obj/item/melee/baton/loaded=1,\
- /obj/item/clothing/mask/gas/sechailer/swat=1,\
/obj/item/gun/energy/pulse/pistol/loyalpin=1,\
/obj/item/reagent_containers/hypospray/combat/nanites=1,\
/obj/item/gun/medbeam=1)
-/datum/outfit/ert/engineer
+/datum/outfit/centcom/ert/engineer
name = "ERT Engineer"
- id = /obj/item/card/id/ert/Engineer
+ id = /obj/item/card/id/ert/engineer
suit = /obj/item/clothing/suit/space/hardsuit/ert/engi
glasses = /obj/item/clothing/glasses/meson/engine
back = /obj/item/storage/backpack/ert/engineer
@@ -136,11 +132,10 @@
r_hand = /obj/item/storage/firstaid/regular
backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\
/obj/item/melee/baton/loaded=1,\
- /obj/item/clothing/mask/gas/sechailer=1,\
/obj/item/gun/energy/e_gun=1,\
/obj/item/construction/rcd/loaded=1)
-/datum/outfit/ert/engineer/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
+/datum/outfit/centcom/ert/engineer/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
..()
if(visualsOnly)
@@ -150,17 +145,17 @@
R.keyslot = new /obj/item/encryptionkey/heads/ce
R.recalculateChannels()
-/datum/outfit/ert/engineer/alert
+/datum/outfit/centcom/ert/engineer/alert
name = "ERT Engineer - High Alert"
+ mask = /obj/item/clothing/mask/gas/sechailer/swat
backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\
/obj/item/melee/baton/loaded=1,\
- /obj/item/clothing/mask/gas/sechailer/swat=1,\
/obj/item/gun/energy/pulse/pistol/loyalpin=1,\
/obj/item/construction/rcd/combat=1)
-/datum/outfit/centcom_official
+/datum/outfit/centcom/centcom_official
name = "CentCom Official"
uniform = /obj/item/clothing/under/rank/centcom/officer
@@ -175,7 +170,7 @@
l_hand = /obj/item/clipboard
id = /obj/item/card/id/centcom
-/datum/outfit/centcom_official/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
+/datum/outfit/centcom/centcom_official/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
if(visualsOnly)
return
@@ -190,51 +185,39 @@
W.assignment = "CentCom Official"
W.registered_name = H.real_name
W.update_label()
+ ..()
-/datum/outfit/ert/commander/inquisitor
+/datum/outfit/centcom/ert/commander/inquisitor
name = "Inquisition Commander"
r_hand = /obj/item/nullrod/scythe/talking/chainsword
suit = /obj/item/clothing/suit/space/hardsuit/ert/paranormal
backpack_contents = list(/obj/item/storage/box/survival/engineer=1,
- /obj/item/clothing/mask/gas/sechailer=1,
/obj/item/gun/energy/e_gun=1)
-/datum/outfit/ert/security/inquisitor
+/datum/outfit/centcom/ert/security/inquisitor
name = "Inquisition Security"
suit = /obj/item/clothing/suit/space/hardsuit/ert/paranormal/inquisitor
backpack_contents = list(/obj/item/storage/box/survival/engineer=1,
/obj/item/storage/box/handcuffs=1,
- /obj/item/clothing/mask/gas/sechailer=1,
/obj/item/gun/energy/e_gun/stun=1,
/obj/item/melee/baton/loaded=1,
/obj/item/construction/rcd/loaded=1)
-/datum/outfit/ert/medic/inquisitor
+/datum/outfit/centcom/ert/medic/inquisitor
name = "Inquisition Medic"
suit = /obj/item/clothing/suit/space/hardsuit/ert/paranormal/inquisitor
backpack_contents = list(/obj/item/storage/box/survival/engineer=1,
/obj/item/melee/baton/loaded=1,
- /obj/item/clothing/mask/gas/sechailer=1,
/obj/item/gun/energy/e_gun=1,
/obj/item/reagent_containers/hypospray/combat=1,
/obj/item/reagent_containers/hypospray/combat/heresypurge=1,
/obj/item/gun/medbeam=1)
-/datum/outfit/ert/chaplain/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
- ..()
-
- if(visualsOnly)
- return
-
- var/obj/item/radio/R = H.ears
- R.keyslot = new /obj/item/encryptionkey/heads/hop
- R.recalculateChannels()
-
-/datum/outfit/ert/chaplain
+/datum/outfit/centcom/ert/chaplain
name = "ERT Chaplain"
suit = /obj/item/clothing/suit/space/hardsuit/ert/paranormal/inquisitor // Chap role always gets this suit
@@ -244,30 +227,34 @@
belt = /obj/item/storage/belt/soulstone
backpack_contents = list(/obj/item/storage/box/survival/engineer=1,
/obj/item/nullrod=1,
- /obj/item/clothing/mask/gas/sechailer=1,
/obj/item/gun/energy/e_gun=1,
)
-/datum/outfit/ert/chaplain/inquisitor
- name = "Inquisition Chaplain"
+/datum/outfit/centcom/ert/chaplain/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
+ ..()
+ if(visualsOnly)
+ return
+ var/obj/item/radio/R = H.ears
+ R.keyslot = new /obj/item/encryptionkey/heads/hop
+ R.recalculateChannels()
- suit = /obj/item/clothing/suit/space/hardsuit/ert/paranormal/inquisitor
+/datum/outfit/centcom/ert/chaplain/inquisitor
+ name = "Inquisition Chaplain"
belt = /obj/item/storage/belt/soulstone/full/chappy
backpack_contents = list(/obj/item/storage/box/survival/engineer=1,
/obj/item/grenade/chem_grenade/holy=1,
/obj/item/nullrod=1,
- /obj/item/clothing/mask/gas/sechailer=1,
/obj/item/gun/energy/e_gun=1,
)
-/datum/outfit/ert/janitor
+/datum/outfit/centcom/ert/janitor
name = "ERT Janitor"
- id = /obj/item/card/id/ert/Janitor
+ id = /obj/item/card/id/ert/janitor
suit = /obj/item/clothing/suit/space/hardsuit/ert/jani
glasses = /obj/item/clothing/glasses/night
- back = /obj/item/storage/backpack
+ back = /obj/item/storage/backpack/ert/janitor
belt = /obj/item/storage/belt/janitor/full
r_pocket = /obj/item/grenade/chem_grenade/cleaner
l_pocket = /obj/item/grenade/chem_grenade/cleaner
@@ -275,12 +262,11 @@
backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\
/obj/item/storage/box/lights/mixed=1,\
/obj/item/melee/baton/loaded=1,\
- /obj/item/clothing/mask/gas/sechailer=1,\
/obj/item/mop/advanced=1,\
/obj/item/reagent_containers/glass/bucket=1,\
/obj/item/grenade/clusterbuster/cleaner=1)
-/datum/outfit/ert/janitor/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
+/datum/outfit/centcom/ert/janitor/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
..()
if(visualsOnly)
@@ -290,16 +276,45 @@
R.keyslot = new /obj/item/encryptionkey/headset_service
R.recalculateChannels()
-/datum/outfit/ert/janitor/heavy
+/datum/outfit/centcom/ert/janitor/heavy
name = "ERT Janitor - Heavy Duty"
+
+ mask = /obj/item/clothing/mask/gas/sechailer/swat
r_hand = /obj/item/reagent_containers/spray/chemsprayer/janitor
backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\
/obj/item/storage/box/lights/mixed=1,\
/obj/item/melee/baton/loaded=1,\
- /obj/item/clothing/mask/gas/sechailer=1,\
/obj/item/grenade/clusterbuster/cleaner=3)
-/datum/outfit/centcom_intern
+/datum/outfit/centcom/ert/clown
+ name = "ERT Clown"
+
+ suit = /obj/item/clothing/suit/space/hardsuit/ert/clown
+ mask = /obj/item/clothing/mask/gas/clown_hat
+ id = /obj/item/card/id/ert/clown
+ glasses = /obj/item/clothing/glasses/godeye
+ back = /obj/item/storage/backpack/ert/clown
+ belt = /obj/item/storage/belt/champion
+ shoes = /obj/item/clothing/shoes/clown_shoes/combat
+ r_pocket = /obj/item/bikehorn/golden
+ l_pocket = /obj/item/reagent_containers/food/snacks/grown/banana
+ backpack_contents = list(/obj/item/storage/box/hug/survival=1,\
+ /obj/item/melee/transforming/energy/sword/bananium=1,\
+ /obj/item/shield/energy/bananium=1,\
+ /obj/item/gun/ballistic/revolver/reverse=1)
+
+/datum/outfit/centcom/ert/clown/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
+ ..()
+ if(visualsOnly)
+ return
+ var/obj/item/radio/R = H.ears
+ R.keyslot = new /obj/item/encryptionkey/headset_service
+ R.recalculateChannels()
+ H.dna.add_mutation(CLOWNMUT)
+ for(var/datum/mutation/human/clumsy/M in H.dna.mutations)
+ M.mutadone_proof = TRUE
+
+/datum/outfit/centcom/centcom_intern
name = "CentCom Intern"
uniform = /obj/item/clothing/under/rank/centcom/intern
@@ -315,7 +330,7 @@
id = /obj/item/card/id/centcom
backpack_contents = list(/obj/item/storage/box/survival = 1)
-/datum/outfit/centcom_intern/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
+/datum/outfit/centcom/centcom_intern/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
if(visualsOnly)
return
@@ -326,10 +341,79 @@
W.registered_name = H.real_name
W.update_label()
-/datum/outfit/centcom_intern/leader
+/datum/outfit/centcom/centcom_intern/leader
name = "CentCom Head Intern"
belt = /obj/item/melee/baton/loaded
suit = /obj/item/clothing/suit/armor/vest
suit_store = /obj/item/gun/ballistic/rifle/boltaction
r_hand = /obj/item/megaphone
head = /obj/item/clothing/head/intern
+
+/datum/outfit/centcom/ert/janitor/party
+ name = "ERP Cleaning Service"
+
+ uniform = /obj/item/clothing/under/misc/overalls
+ mask = /obj/item/clothing/mask/bandana/blue
+ suit = /obj/item/clothing/suit/apron
+ glasses = /obj/item/clothing/glasses/meson
+ belt = /obj/item/storage/belt/janitor/full
+ r_pocket = /obj/item/grenade/chem_grenade/cleaner
+ l_pocket = /obj/item/grenade/chem_grenade/cleaner
+ l_hand = /obj/item/storage/bag/trash
+ backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\
+ /obj/item/storage/box/lights/mixed=1,\
+ /obj/item/mop/advanced=1,\
+ /obj/item/reagent_containers/glass/bucket=1)
+
+/datum/outfit/centcom/ert/security/party
+ name = "ERP Bouncer"
+
+ uniform = /obj/item/clothing/under/misc/bouncer
+ suit = /obj/item/clothing/suit/armor/vest
+ belt = /obj/item/melee/classic_baton/telescopic
+ l_pocket = /obj/item/assembly/flash
+ r_pocket = /obj/item/storage/wallet
+ backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\
+ /obj/item/clothing/head/helmet/police=1,\
+ /obj/item/storage/box/handcuffs=1)
+
+
+/datum/outfit/centcom/ert/engineer/party
+ name = "ERP Constructor"
+
+ uniform = /obj/item/clothing/under/rank/engineering/engineer/hazard
+ mask = /obj/item/clothing/mask/gas/atmos
+ head = /obj/item/clothing/head/hardhat/weldhat
+ suit = /obj/item/clothing/suit/hazardvest
+ r_hand = /obj/item/areaeditor/blueprints
+ backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\
+ /obj/item/stack/sheet/metal/fifty=1,\
+ /obj/item/stack/sheet/glass/fifty=1,\
+ /obj/item/stack/sheet/plasteel/twenty=1,\
+ /obj/item/etherealballdeployer=1,\
+ /obj/item/stack/light_w=30,\
+ /obj/item/construction/rcd/loaded=1)
+
+/datum/outfit/centcom/ert/clown/party
+ name = "ERP Comedian"
+
+ uniform = /obj/item/clothing/under/rank/civilian/clown
+ head = /obj/item/clothing/head/chameleon
+ suit = /obj/item/clothing/suit/chameleon
+ glasses = /obj/item/clothing/glasses/chameleon
+ backpack_contents = list(/obj/item/storage/box/hug/survival=1,\
+ /obj/item/shield/energy/bananium=1,\
+ /obj/item/instrument/piano_synth=1)
+
+/datum/outfit/centcom/ert/commander/party
+ name = "ERP Coordinator"
+
+ uniform = /obj/item/clothing/under/misc/coordinator
+ head = /obj/item/clothing/head/coordinator
+ suit = /obj/item/clothing/suit/coordinator
+ belt = /obj/item/storage/belt/sabre
+ r_hand = /obj/item/toy/balloon
+ l_pocket = /obj/item/kitchen/knife
+ backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\
+ /obj/item/storage/box/fireworks=3,\
+ /obj/item/reagent_containers/food/snacks/store/cake/birthday=1)
diff --git a/code/modules/clothing/outfits/standard.dm b/code/modules/clothing/outfits/standard.dm
index de0c4ee5480..8043ec758c9 100644
--- a/code/modules/clothing/outfits/standard.dm
+++ b/code/modules/clothing/outfits/standard.dm
@@ -1,4 +1,11 @@
-/datum/outfit/spec_ops
+/datum/outfit/centcom/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
+ if(visualsOnly)
+ return
+
+ var/obj/item/implant/mindshield/L = new/obj/item/implant/mindshield(H)//hmm lets have centcom officials become revs
+ L.implant(H, null, 1)
+
+/datum/outfit/centcom/spec_ops
name = "Special Ops Officer"
uniform = /obj/item/clothing/under/syndicate
@@ -14,7 +21,7 @@
back = /obj/item/storage/backpack/satchel/leather
id = /obj/item/card/id/centcom
-/datum/outfit/spec_ops/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
+/datum/outfit/centcom/spec_ops/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
if(visualsOnly)
return
@@ -28,6 +35,7 @@
var/obj/item/radio/headset/R = H.ears
R.set_frequency(FREQ_CENTCOM)
R.freqlock = TRUE
+ ..()
/datum/outfit/space
name = "Standard Space Gear"
@@ -257,6 +265,7 @@
W.assignment = "CentCom Commander"
W.registered_name = H.real_name
W.update_label()
+ ..()
/datum/outfit/ghost_cultist
name = "Cultist Ghost"
@@ -307,7 +316,7 @@
shoes = /obj/item/clothing/shoes/sandal/marisa
head = /obj/item/clothing/head/wizard/marisa
-/datum/outfit/soviet
+/datum/outfit/centcom/soviet
name = "Soviet Admiral"
uniform = /obj/item/clothing/under/costume/soviet
@@ -322,7 +331,7 @@
id = /obj/item/card/id/centcom
-/datum/outfit/soviet/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
+/datum/outfit/centcom/soviet/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
if(visualsOnly)
return
@@ -332,6 +341,7 @@
W.assignment = "Admiral"
W.registered_name = H.real_name
W.update_label()
+ ..()
/datum/outfit/mobster
name = "Mobster"
@@ -362,7 +372,7 @@
r_hand= /obj/item/tank/internals/plasmaman/belt/full
mask = /obj/item/clothing/mask/breath
-/datum/outfit/death_commando
+/datum/outfit/centcom/death_commando
name = "Death Commando"
uniform = /obj/item/clothing/under/rank/centcom/commander
@@ -377,36 +387,32 @@
suit_store = /obj/item/tank/internals/emergency_oxygen/double
belt = /obj/item/gun/ballistic/revolver/mateba
r_hand = /obj/item/gun/energy/pulse/loyalpin
- id = /obj/item/card/id/centcom
+ id = /obj/item/card/id/ert/deathsquad
ears = /obj/item/radio/headset/headset_cent/alt
- backpack_contents = list(/obj/item/storage/box=1,\
+ backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\
/obj/item/ammo_box/a357=1,\
/obj/item/storage/firstaid/regular=1,\
/obj/item/storage/box/flashbangs=1,\
/obj/item/flashlight=1,\
/obj/item/grenade/c4/x4=1)
-/datum/outfit/death_commando/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
+/datum/outfit/centcom/death_commando/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
if(visualsOnly)
return
var/obj/item/radio/R = H.ears
R.set_frequency(FREQ_CENTCOM)
R.freqlock = TRUE
-
- var/obj/item/implant/mindshield/L = new/obj/item/implant/mindshield(H)//Here you go Deuryn
- L.implant(H, null, 1)
-
-
var/obj/item/card/id/W = H.wear_id
W.access = get_all_accesses()//They get full station access.
W.access += get_centcom_access("Death Commando")//Let's add their alloted CentCom access.
W.assignment = "Death Commando"
W.registered_name = H.real_name
W.update_label()
+ ..()
-/datum/outfit/death_commando/officer
+/datum/outfit/centcom/death_commando/officer
name = "Death Commando Officer"
head = /obj/item/clothing/head/helmet/space/beret
diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm
index fe9ef9197ca..aff8f601fe7 100644
--- a/code/modules/clothing/spacesuits/miscellaneous.dm
+++ b/code/modules/clothing/spacesuits/miscellaneous.dm
@@ -246,7 +246,23 @@ Contains:
icon_state = "ert_janitor"
item_state = "ert_janitor"
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/jani
- allowed = list(/obj/item/storage/bag/trash, /obj/item/melee/flyswatter, /obj/item/mop, /obj/item/holosign_creator, /obj/item/reagent_containers/glass/bucket, /obj/item/reagent_containers/spray/chemsprayer/janitor)
+ allowed = list(/obj/item/tank/internals, /obj/item/storage/bag/trash, /obj/item/melee/flyswatter, /obj/item/mop, /obj/item/holosign_creator, /obj/item/reagent_containers/glass/bucket, /obj/item/reagent_containers/spray/chemsprayer/janitor)
+
+ //ERT Clown
+/obj/item/clothing/head/helmet/space/hardsuit/ert/clown
+ name = "emergency response team clown helmet"
+ desc = "The integrated helmet of an ERT hardsuit, this one is colourful!"
+ icon_state = "hardsuit0-ert_clown"
+ item_state = "hardsuit0-ert_clown"
+ hardsuit_type = "ert_clown"
+
+/obj/item/clothing/suit/space/hardsuit/ert/clown
+ name = "emergency response team clown hardsuit"
+ desc = "The non-standard issue hardsuit of the ERT, this one is colourful! Offers superb protection against environmental hazards. Does not offer superb protection against a ravaging crew."
+ icon_state = "ert_clown"
+ item_state = "ert_clown"
+ helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/clown
+ allowed = list(/obj/item/tank/internals, /obj/item/bikehorn, /obj/item/instrument, /obj/item/reagent_containers/food/snacks/grown/banana, /obj/item/grown/bananapeel)
/obj/item/clothing/suit/space/eva
name = "EVA suit"
diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm
index 854889fcea0..8091e1f63e9 100644
--- a/code/modules/clothing/suits/miscellaneous.dm
+++ b/code/modules/clothing/suits/miscellaneous.dm
@@ -733,3 +733,10 @@
item_state = "mystichood"
body_parts_covered = HEAD
flags_inv = HIDEHAIR|HIDEEARS|HIDEFACIALHAIR|HIDEFACE|HIDEMASK
+
+/obj/item/clothing/suit/coordinator
+ name = "coordinator jacket"
+ desc = "A jacket for a party ooordinator, stylish!."
+ icon_state = "capformal"
+ item_state = "capspacesuit"
+ armor = list("melee" = 25, "bullet" = 15, "laser" = 25, "energy" = 35, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50)
diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm
index 33ed895c8ca..f0fb36e26cb 100644
--- a/code/modules/clothing/under/miscellaneous.dm
+++ b/code/modules/clothing/under/miscellaneous.dm
@@ -139,3 +139,20 @@
item_state = "durathread"
can_adjust = FALSE
armor = list("melee" = 10, "laser" = 10, "fire" = 40, "acid" = 10, "bomb" = 5)
+
+/obj/item/clothing/under/misc/bouncer
+ name = "bouncer uniform"
+ desc = "A uniform made from a little bit more resistant fibers, makes you seem like a cool guy."
+ icon_state = "bouncer"
+ item_state = "bouncer"
+ can_adjust = FALSE
+ armor = list("melee" = 5, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 30, "acid" = 30)
+
+/obj/item/clothing/under/misc/coordinator
+ name = "coordinator jumpsuit"
+ desc = "A jumpsuit made by party people, from party people, for party people."
+ icon = 'icons/obj/clothing/under/captain.dmi'
+ mob_overlay_icon = 'icons/mob/clothing/under/captain.dmi'
+ icon_state = "captain_parade"
+ item_state = "by_suit"
+ can_adjust = FALSE
diff --git a/code/modules/jobs/access.dm b/code/modules/jobs/access.dm
index f2af09397e4..7741ac03eb5 100644
--- a/code/modules/jobs/access.dm
+++ b/code/modules/jobs/access.dm
@@ -362,10 +362,10 @@
"Research Director", "Scientist", "Roboticist", "Head of Security", "Warden", "Detective", "Security Officer")
/proc/get_all_job_icons() //For all existing HUD icons
- return get_all_jobs() + list("Prisoner")
+ return get_all_jobs() + list("Prisoner", "Entertainment Response Officer", "Religious Response Officer", "Janitorial Response Officer", "Death Commando")
/proc/get_all_centcom_jobs()
- return list("VIP Guest","Custodian","Thunderdome Overseer","CentCom Official","Medical Officer","Death Commando","Research Officer","Special Ops Officer","Admiral","CentCom Commander","Emergency Response Team Commander","Security Response Officer","Engineer Response Officer", "Medical Response Officer","CentCom Bartender")
+ return list("Central Command","VIP Guest","Custodian","Thunderdome Overseer","CentCom Official","Medical Officer","Research Officer","Special Ops Officer","Admiral","CentCom Commander","Emergency Response Team Commander","Security Response Officer","Engineering Response Officer", "Medical Response Officer","CentCom Bartender")
/obj/item/proc/GetJobName() //Used in secHUD icon generation
var/obj/item/card/id/I = GetID()
diff --git a/icons/mob/clothing/back.dmi b/icons/mob/clothing/back.dmi
index 062564f27cf..f5ff53dfd5e 100644
Binary files a/icons/mob/clothing/back.dmi and b/icons/mob/clothing/back.dmi differ
diff --git a/icons/mob/clothing/belt.dmi b/icons/mob/clothing/belt.dmi
index 2132a7ebac1..efbea555c56 100644
Binary files a/icons/mob/clothing/belt.dmi and b/icons/mob/clothing/belt.dmi differ
diff --git a/icons/mob/clothing/head.dmi b/icons/mob/clothing/head.dmi
index 61dbd495988..e02dd38adda 100644
Binary files a/icons/mob/clothing/head.dmi and b/icons/mob/clothing/head.dmi differ
diff --git a/icons/mob/clothing/suit.dmi b/icons/mob/clothing/suit.dmi
index 4a9f11cd4b5..7ed1cc720ab 100644
Binary files a/icons/mob/clothing/suit.dmi and b/icons/mob/clothing/suit.dmi differ
diff --git a/icons/mob/clothing/under/misc.dmi b/icons/mob/clothing/under/misc.dmi
index c9b63732efd..9cef7924af2 100644
Binary files a/icons/mob/clothing/under/misc.dmi and b/icons/mob/clothing/under/misc.dmi differ
diff --git a/icons/mob/hud.dmi b/icons/mob/hud.dmi
index d42f1e2143c..383b353e6b4 100644
Binary files a/icons/mob/hud.dmi and b/icons/mob/hud.dmi differ
diff --git a/icons/mob/inhands/equipment/belt_lefthand.dmi b/icons/mob/inhands/equipment/belt_lefthand.dmi
index fdc444f956a..0a5a460a910 100644
Binary files a/icons/mob/inhands/equipment/belt_lefthand.dmi and b/icons/mob/inhands/equipment/belt_lefthand.dmi differ
diff --git a/icons/mob/inhands/equipment/belt_righthand.dmi b/icons/mob/inhands/equipment/belt_righthand.dmi
index b31ca252c02..568aa3d08e3 100644
Binary files a/icons/mob/inhands/equipment/belt_righthand.dmi and b/icons/mob/inhands/equipment/belt_righthand.dmi differ
diff --git a/icons/obj/card.dmi b/icons/obj/card.dmi
index 9998a62ae29..e90f357ac93 100644
Binary files a/icons/obj/card.dmi and b/icons/obj/card.dmi differ
diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi
index 3f4cd75c66f..a8fb053b44f 100644
Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ
diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi
index c94d5566705..03ba2336719 100644
Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ
diff --git a/icons/obj/clothing/under/misc.dmi b/icons/obj/clothing/under/misc.dmi
index 8e0dbd728e8..0843b21d2ca 100644
Binary files a/icons/obj/clothing/under/misc.dmi and b/icons/obj/clothing/under/misc.dmi differ
diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi
index 816c1d767ce..504e7e6c2c8 100644
Binary files a/icons/obj/storage.dmi and b/icons/obj/storage.dmi differ