diff --git a/code/modules/antagonists/wizard/equipment/spellbook.dm b/code/modules/antagonists/wizard/equipment/spellbook.dm
index bb7ffdc85d..ab37997e50 100644
--- a/code/modules/antagonists/wizard/equipment/spellbook.dm
+++ b/code/modules/antagonists/wizard/equipment/spellbook.dm
@@ -482,6 +482,10 @@
/datum/spellbook_entry/summon/guns/IsAvailible()
if(!SSticker.mode) // In case spellbook is placed on map
return 0
+ if(istype(SSticker.mode,/datum/game_mode/dynamic))
+ var/datum/game_mode/dynamic/mode = SSticker.mode
+ if(mode.threat < CONFIG_GET(number/dynamic_summon_guns_requirement))
+ return 0
return !CONFIG_GET(flag/no_summon_guns)
/datum/spellbook_entry/summon/guns/Buy(mob/living/carbon/human/user,obj/item/spellbook/book)
@@ -490,6 +494,9 @@
active = 1
playsound(get_turf(user), 'sound/magic/castsummon.ogg', 50, 1)
to_chat(user, "You have cast summon guns!")
+ if(istype(SSticker.mode,/datum/game_mode/dynamic))
+ var/datum/game_mode/dynamic/mode = SSticker.mode
+ mode.spend_threat(CONFIG_GET(number/dynamic_summon_guns_cost))
return 1
/datum/spellbook_entry/summon/magic
@@ -499,6 +506,10 @@
/datum/spellbook_entry/summon/magic/IsAvailible()
if(!SSticker.mode) // In case spellbook is placed on map
return 0
+ if(istype(SSticker.mode,/datum/game_mode/dynamic))
+ var/datum/game_mode/dynamic/mode = SSticker.mode
+ if(mode.threat < CONFIG_GET(number/dynamic_summon_magic_requirement))
+ return 0
return !CONFIG_GET(flag/no_summon_magic)
/datum/spellbook_entry/summon/magic/Buy(mob/living/carbon/human/user,obj/item/spellbook/book)
@@ -507,6 +518,9 @@
active = 1
playsound(get_turf(user), 'sound/magic/castsummon.ogg', 50, 1)
to_chat(user, "You have cast summon magic!")
+ if(istype(SSticker.mode,/datum/game_mode/dynamic))
+ var/datum/game_mode/dynamic/mode = SSticker.mode
+ mode.spend_threat(CONFIG_GET(number/dynamic_summon_magic_cost))
return 1
/datum/spellbook_entry/summon/events
@@ -517,6 +531,10 @@
/datum/spellbook_entry/summon/events/IsAvailible()
if(!SSticker.mode) // In case spellbook is placed on map
return 0
+ if(istype(SSticker.mode,/datum/game_mode/dynamic) && times == 0)
+ var/datum/game_mode/dynamic/mode = SSticker.mode
+ if(mode.threat < CONFIG_GET(number/dynamic_summon_events_requirement))
+ return 0
return !CONFIG_GET(flag/no_summon_events)
/datum/spellbook_entry/summon/events/Buy(mob/living/carbon/human/user,obj/item/spellbook/book)
@@ -525,6 +543,9 @@
times++
playsound(get_turf(user), 'sound/magic/castsummon.ogg', 50, 1)
to_chat(user, "You have cast summon events.")
+ if(istype(SSticker.mode,/datum/game_mode/dynamic) && times == 0)
+ var/datum/game_mode/dynamic/mode = SSticker.mode
+ mode.spend_threat(CONFIG_GET(number/dynamic_summon_events_cost))
return 1
/datum/spellbook_entry/summon/events/GetInfo()
diff --git a/html/changelogs/AutoChangeLog-pr-9574.yml b/html/changelogs/AutoChangeLog-pr-9574.yml
new file mode 100644
index 0000000000..240d5ad0af
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-9574.yml
@@ -0,0 +1,4 @@
+author: "r4d6"
+delete-after: True
+changes:
+ - rscadd: "Added Departements Winter Coats to the loadout list."
diff --git a/modular_citadel/code/modules/client/loadout/suit.dm b/modular_citadel/code/modules/client/loadout/suit.dm
index 5a12a6bf0b..d3a8258fc0 100644
--- a/modular_citadel/code/modules/client/loadout/suit.dm
+++ b/modular_citadel/code/modules/client/loadout/suit.dm
@@ -64,6 +64,64 @@
category = SLOT_WEAR_SUIT
path = /obj/item/clothing/suit/hooded/wintercoat
+/* Commented out until it is "balanced"
+/datum/gear/coat/sec
+ name = "Security winter coat"
+ category = SLOT_WEAR_SUIT
+ path = /obj/item/clothing/suit/hooded/wintercoat/security
+ restricted_roles = list("Head of Security", "Warden", "Detective", "Security Officer") // Reserve it to the Security Departement
+*/
+
+/datum/gear/coat/med
+ name = "Medical winter coat"
+ category = SLOT_WEAR_SUIT
+ path = /obj/item/clothing/suit/hooded/wintercoat/medical
+ restricted_roles = list("Chief Medical Officer", "Medical Doctor") // Reserve it to Medical Doctors and their boss, the Chief Medical Officer
+
+/* Commented out until there is a Chemistry Winter Coat
+/datum/gear/coat/med/chem
+ name = "Chemistry winter coat"
+ category = SLOT_WEAR_SUIT
+ path = /obj/item/clothing/suit/hooded/wintercoat/medical/chemistry
+ restricted_roles = list("Chief Medical Officer", "Chemist") // Reserve it to Chemists and their boss, the Chief Medical Officer
+*/
+
+/datum/gear/coat/sci
+ name = "Science winter coat"
+ category = SLOT_WEAR_SUIT
+ path = /obj/item/clothing/suit/hooded/wintercoat/science
+ restricted_roles = list("Research Director", "Scientist", "Roboticist") // Reserve it to the Science Departement
+
+/datum/gear/coat/eng
+ name = "Engineering winter coat"
+ category = SLOT_WEAR_SUIT
+ path = /obj/item/clothing/suit/hooded/wintercoat/engineering
+ restricted_roles = list("Chief Engineer", "Station Engineer") // Reserve it to Station Engineers and their boss, the Chief Engineer
+
+/datum/gear/coat/eng/atmos
+ name = "Atmospherics winter coat"
+ category = SLOT_WEAR_SUIT
+ path = /obj/item/clothing/suit/hooded/wintercoat/engineering/atmos
+ restricted_roles = list("Chief Engineer", "Atmospheric Technician") // Reserve it to Atmos Techs and their boss, the Chief Engineer
+
+/datum/gear/coat/hydro
+ name = "Hydroponics winter coat"
+ category = SLOT_WEAR_SUIT
+ path = /obj/item/clothing/suit/hooded/wintercoat/hydro
+ restricted_roles = list("Head of Personnel", "Botanist") // Reserve it to Botanists and their boss, the Head of Personnel
+
+/datum/gear/coat/cargo
+ name = "Cargo winter coat"
+ category = SLOT_WEAR_SUIT
+ path = /obj/item/clothing/suit/hooded/wintercoat/cargo
+ restricted_roles = list("Quartermaster", "Cargo Technician") // Reserve it to Cargo Techs and their boss, the Quartermaster
+
+/datum/gear/coat/miner
+ name = "Mining winter coat"
+ category = SLOT_WEAR_SUIT
+ path = /obj/item/clothing/suit/hooded/wintercoat/miner
+ restricted_roles = list("Quartermaster", "Shaft Miner") // Reserve it to Miners and their boss, the Quartermaster
+
/datum/gear/militaryjacket
name = "Military Jacket"
category = SLOT_WEAR_SUIT