From 45b8010edfdbf2f06fbe37ade742d198ca6434c5 Mon Sep 17 00:00:00 2001
From: JimKil3 <47290811+JimKil3@users.noreply.github.com>
Date: Tue, 19 Sep 2023 14:18:59 -0400
Subject: [PATCH] Oblivion Enforcer Admin Loadout (#22348)
* enforcer stuff
* the outfit
* henri review
* Update code/game/gamemodes/wizard/wizloadouts.dm
* Update code/datums/outfits/outfit_admin.dm
---------
Co-authored-by: S34N <12197162+S34NW@users.noreply.github.com>
---
code/datums/outfits/outfit_admin.dm | 39 +++++++++++++++++++++++
code/game/gamemodes/wizard/artefact.dm | 19 +++++++++++
code/game/gamemodes/wizard/wizloadouts.dm | 3 +-
3 files changed, 60 insertions(+), 1 deletion(-)
diff --git a/code/datums/outfits/outfit_admin.dm b/code/datums/outfits/outfit_admin.dm
index 7d69c82ae3b..50d034ba23e 100644
--- a/code/datums/outfits/outfit_admin.dm
+++ b/code/datums/outfits/outfit_admin.dm
@@ -1395,3 +1395,42 @@
mask = /obj/item/clothing/mask/breath/vox
belt = /obj/item/tank/internals/emergency_oxygen/double/vox
box = /obj/item/storage/box/survival_vox
+
+/datum/outfit/admin/enforcer
+ name = "Oblivion Enforcer"
+
+ uniform = /obj/item/clothing/under/color/white/enforcer
+ shoes = /obj/item/clothing/shoes/white/enforcer
+ back = /obj/item/storage/backpack/satchel
+ id = /obj/item/card/id/data
+ //The hood on this gets enabled on the after-equip proc.
+ suit = /obj/item/clothing/suit/hooded/oblivion
+ gloves = /obj/item/clothing/gloves/color/white/supermatter_immune
+ mask = /obj/item/clothing/mask/gas/voice_modulator/oblivion
+ l_ear = /obj/item/radio/headset
+ suit_store = /obj/item/supermatter_halberd
+ r_pocket = /obj/item/tank/internals/emergency_oxygen/double
+ box = /obj/item/storage/box/wizard
+
+ //The spells that the enforcer has.
+ var/list/spell_paths = list(/obj/effect/proc_holder/spell/aoe/conjure/summon_supermatter,
+ /obj/effect/proc_holder/spell/charge_up/bounce/lightning, /obj/effect/proc_holder/spell/summonitem)
+
+/datum/outfit/admin/enforcer/post_equip(mob/living/carbon/human/H)
+ . = ..()
+
+ ADD_TRAIT(H, SM_HALLUCINATION_IMMUNE, MAGIC_TRAIT)
+
+ H.real_name = "Unknown" //Enforcers sacrifice their name to Oblivion for their power
+
+ for(var/spell_path in spell_paths)
+ var/S = new spell_path
+ H.mind.AddSpell(S)
+
+ var/obj/item/clothing/suit/hooded/oblivion/robes = H.wear_suit
+ if(istype(robes))
+ robes.ToggleHood()
+
+ var/obj/item/card/id/I = H.wear_id
+ if(istype(I))
+ apply_to_card(I, H, get_all_accesses(), "Oblivion Enforcer")
diff --git a/code/game/gamemodes/wizard/artefact.dm b/code/game/gamemodes/wizard/artefact.dm
index ec45a9d8525..7977631e32c 100644
--- a/code/game/gamemodes/wizard/artefact.dm
+++ b/code/game/gamemodes/wizard/artefact.dm
@@ -920,3 +920,22 @@ GLOBAL_LIST_EMPTY(multiverse)
"Unathi" = 'icons/mob/clothing/species/unathi/mask.dmi',
"Vulpkanin" = 'icons/mob/clothing/species/vulpkanin/mask.dmi'
)
+
+/obj/item/clothing/shoes/white/enforcer
+ name = "hypernobilium weave shoes"
+ desc = "They're surprisingly comfortable and designed to fit under an Oblivion Enforcer's robes."
+ magical = TRUE
+
+/obj/item/clothing/shoes/white/enforcer/Initialize(mapload)
+ . = ..()
+ ADD_TRAIT(src, TRAIT_SUPERMATTER_IMMUNE, ROUNDSTART_TRAIT)
+
+/obj/item/clothing/under/color/white/enforcer
+ name = "hypernobilium weave jumpsuit"
+ desc = "A close-fitting, breathable jumpsuit, tailored for the dirty work of an Oblivion Enforcer."
+ has_sensor = FALSE
+ magical = TRUE
+
+/obj/item/clothing/under/color/white/enforcer/Initialize(mapload)
+ . = ..()
+ ADD_TRAIT(src, TRAIT_SUPERMATTER_IMMUNE, ROUNDSTART_TRAIT)
diff --git a/code/game/gamemodes/wizard/wizloadouts.dm b/code/game/gamemodes/wizard/wizloadouts.dm
index c306c4f1e8a..417806505bb 100644
--- a/code/game/gamemodes/wizard/wizloadouts.dm
+++ b/code/game/gamemodes/wizard/wizloadouts.dm
@@ -109,7 +109,8 @@
allow you to pick up and throw supermatter slivers, which your halberd can cut from the engine.
\
Provides a Supermatter Halberd, Oblivion Enforcer robes, and an air tank, as well as Instant Summons, Lightning Bolt, and Summon Supermatter Crystal."
items_path = list(/obj/item/supermatter_halberd, /obj/item/clothing/gloves/color/white/supermatter_immune, \
- /obj/item/clothing/suit/hooded/oblivion, /obj/item/clothing/mask/gas/voice_modulator/oblivion, /obj/item/tank/internals/emergency_oxygen/double)
+ /obj/item/clothing/suit/hooded/oblivion, /obj/item/clothing/mask/gas/voice_modulator/oblivion, /obj/item/tank/internals/emergency_oxygen/double, \
+ /obj/item/clothing/under/color/white/enforcer, /obj/item/clothing/shoes/white/enforcer)
spells_path = list(/obj/effect/proc_holder/spell/summonitem, /obj/effect/proc_holder/spell/charge_up/bounce/lightning, \
/obj/effect/proc_holder/spell/aoe/conjure/summon_supermatter)
category = "Unique"