Removes unused wizard_clothes.dm and moves wizard_weapons.dm into artefact.dm (#94731)

## About The Pull Request
This PR removes unused wizard_clothes.dm which has a duplicate path
overriding the magus helm armor values
This PR moves wizard_weapons which includes the singularity hammer and
mjollnir into the wizard antag module
This PR moves wizard_robe into wizard antag module

## Why It's Good For The Game

So things are easier to find

## Changelog
🆑 Ezel
fix: fixes the armour value of the magus helm to be the same as all
other wizard gear
/🆑
This commit is contained in:
Nick
2026-01-05 17:17:20 -05:00
committed by GitHub
parent 19fd272ef7
commit 4d31f35668
5 changed files with 9 additions and 34 deletions
@@ -0,0 +1,305 @@
/obj/item/clothing/head/wizard
name = "wizard hat"
desc = "Strange-looking hat-wear that most certainly belongs to a real magic user."
icon = 'icons/obj/clothing/head/wizard.dmi'
worn_icon = 'icons/mob/clothing/head/wizard.dmi'
icon_state = "wizard"
inhand_icon_state = "wizhat"
armor_type = /datum/armor/head_wizard
strip_delay = 5 SECONDS
equip_delay_other = 5 SECONDS
clothing_flags = SNUG_FIT | CASTING_CLOTHES
resistance_flags = FIRE_PROOF | ACID_PROOF
dog_fashion = /datum/dog_fashion/head/blue_wizard
///How much this hat affects fishing difficulty
var/fishing_modifier = -6
/obj/item/clothing/head/wizard/Initialize(mapload)
. = ..()
AddElement(/datum/element/adjust_fishing_difficulty, fishing_modifier) //A wizard always practices his casting (ba dum tsh)
/datum/armor/head_wizard
melee = 30
bullet = 20
laser = 20
energy = 30
bomb = 20
bio = 100
fire = 100
acid = 100
wound = 20
/obj/item/clothing/head/wizard/red
name = "red wizard hat"
desc = "Strange-looking red hat-wear that most certainly belongs to a real magic user."
icon_state = "redwizard"
dog_fashion = /datum/dog_fashion/head/red_wizard
/obj/item/clothing/head/wizard/yellow
name = "yellow wizard hat"
desc = "Strange-looking yellow hat-wear that most certainly belongs to a powerful magic user."
icon_state = "yellowwizard"
dog_fashion = null
/obj/item/clothing/head/wizard/black
name = "black wizard hat"
desc = "Strange-looking black hat-wear that most certainly belongs to a real skeleton. Spooky."
icon_state = "blackwizard"
dog_fashion = null
/obj/item/clothing/head/wizard/fake
name = "wizard hat"
desc = "It has WIZZARD written across it in sequins. Comes with a cool beard."
icon_state = "wizard-fake"
armor_type = /datum/armor/none
resistance_flags = FLAMMABLE
dog_fashion = /datum/dog_fashion/head/blue_wizard
fishing_modifier = -2
/obj/item/clothing/head/wizard/chanterelle
name = "chanterelle hat"
desc = "An oversized chanterelle with hollow out space to fit a head in. Kinda looks like wizard's hat."
icon_state = "chanterelle"
inhand_icon_state = "chanterellehat"
armor_type = /datum/armor/none
resistance_flags = FLAMMABLE
/obj/item/clothing/head/wizard/chanterelle/fr
resistance_flags = FIRE_PROOF
/obj/item/clothing/head/wizard/marisa
name = "witch hat"
desc = "Strange-looking hat-wear. Makes you want to cast fireballs."
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
/obj/item/clothing/head/wizard/tape
name = "tape hat"
desc = "A magically attuned hat made exclusively from duct tape. You can barely see."
icon_state = "tapehat"
inhand_icon_state = "tapehat"
dog_fashion = null
worn_y_offset = 6
body_parts_covered = HEAD //this used to also cover HAIR, but that was never valid code as HAIR is not actually a body_part define!
flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
/obj/item/clothing/head/wizard/magus
name = "\improper Magus helm"
icon_state = "magus"
desc = "A mysterious helmet that hums with an unearthly power."
flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDEEARS|HIDEEYES|HIDESNOUT
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
inhand_icon_state = null
dog_fashion = null
/obj/item/clothing/head/wizard/santa
name = "Santa's hat"
desc = "Ho ho ho. Merrry X-mas!"
icon_state = "santahat"
inhand_icon_state = "santahat"
flags_inv = HIDEHAIR|HIDEFACIALHAIR
dog_fashion = null
/obj/item/clothing/head/wizard/hood
name = "wizard hood"
icon_state = "wizhood"
/obj/item/clothing/suit/wizrobe
name = "wizard robe"
desc = "A magnificent, gem-lined robe that seems to radiate power."
icon = 'icons/obj/clothing/suits/wizard.dmi'
icon_state = "wizard"
worn_icon = 'icons/mob/clothing/suits/wizard.dmi'
inhand_icon_state = "wizrobe"
body_parts_covered = CHEST|GROIN|ARMS|LEGS
armor_type = /datum/armor/suit_wizrobe
allowed = list(/obj/item/teleportation_scroll, /obj/item/highfrequencyblade/wizard)
flags_inv = HIDEJUMPSUIT
strip_delay = 5 SECONDS
equip_delay_other = 5 SECONDS
clothing_flags = CASTING_CLOTHES
resistance_flags = FIRE_PROOF | ACID_PROOF
///How much this robe affects fishing difficulty
var/fishing_modifier = -7
/obj/item/clothing/suit/wizrobe/Initialize(mapload)
. = ..()
AddElement(/datum/element/adjust_fishing_difficulty, fishing_modifier) //A wizard always practices his casting (ba dum tsh)
/datum/armor/suit_wizrobe
melee = 30
bullet = 20
laser = 20
energy = 30
bomb = 20
bio = 100
fire = 100
acid = 100
wound = 20
/obj/item/clothing/suit/wizrobe/red
name = "red wizard robe"
desc = "A magnificent red gem-lined robe that seems to radiate power."
icon_state = "redwizard"
inhand_icon_state = null
/obj/item/clothing/suit/wizrobe/yellow
name = "yellow wizard robe"
desc = "A magnificent yellow gem-lined robe that seems to radiate power."
icon_state = "yellowwizard"
inhand_icon_state = null
/obj/item/clothing/suit/wizrobe/black
name = "black wizard robe"
desc = "An unnerving black gem-lined robe that reeks of death and decay."
icon_state = "blackwizard"
inhand_icon_state = null
/obj/item/clothing/suit/wizrobe/marisa
name = "witch robe"
desc = "Magic is all about the spell power, ZE!"
icon_state = "marisa"
inhand_icon_state = null
/obj/item/clothing/suit/wizrobe/tape
name = "tape robe"
desc = "A fine robe made from magically attuned duct tape."
icon_state = "taperobe"
inhand_icon_state = "taperobe"
/obj/item/clothing/suit/wizrobe/magusblue
name = "\improper Magus robe"
desc = "A set of armored robes that seem to radiate a dark power."
icon_state = "magusblue"
inhand_icon_state = null
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
/obj/item/clothing/suit/wizrobe/magusred
name = "\improper Magus robe"
desc = "A set of armored robes that seem to radiate a dark power."
icon_state = "magusred"
inhand_icon_state = null
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
/obj/item/clothing/suit/wizrobe/santa
name = "Santa's suit"
desc = "Festive!"
icon_state = "santa"
inhand_icon_state = "santa"
/obj/item/clothing/suit/wizrobe/fake
name = "wizard robe"
desc = "A rather dull blue robe meant to mimic real wizard robes."
icon_state = "wizard-fake"
inhand_icon_state = "wizrobe"
armor_type = /datum/armor/none
resistance_flags = FLAMMABLE
fishing_modifier = -3
/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
/obj/item/clothing/head/wizard/tape/fake
name = "tape hat"
desc = "A hat designed exclusively from duct tape. You can barely see."
armor_type = /datum/armor/none
resistance_flags = FLAMMABLE
fishing_modifier = -2
/obj/item/clothing/suit/wizrobe/marisa/fake
name = "witch robe"
desc = "Magic is all about the spell power, ZE!"
icon_state = "marisa"
inhand_icon_state = null
armor_type = /datum/armor/none
resistance_flags = FLAMMABLE
fishing_modifier = -3
/obj/item/clothing/suit/wizrobe/tape/fake
name = "tape robe"
desc = "An outfit designed exclusively from duct tape. It was hard to put on."
armor_type = /datum/armor/none
resistance_flags = FLAMMABLE
fishing_modifier = -3
/obj/item/clothing/suit/wizrobe/durathread
name = "durathread robe"
desc = "A rather dull durathread robe; not quite as protective as a proper piece of armour, but much more stylish."
icon_state = "durathread-fake"
inhand_icon_state = null
armor_type = /datum/armor/robe_durathread
allowed = /obj/item/clothing/suit/apron::allowed
fishing_modifier = -6
/datum/armor/robe_durathread
melee = 15
bullet = 5
laser = 25
energy = 30
bomb = 10
fire = 30
acid = 40
/obj/item/clothing/suit/wizrobe/durathread/fire
name = "pyromancer robe"
desc = "A rather dull durathread robe; not quite as protective as woven armour, but much more stylish."
icon_state = "durathread-fire"
/obj/item/clothing/suit/wizrobe/durathread/ice
name = "pyromancer robe"
desc = "A rather dull durathread robe; not quite as protective as woven armour, but much more stylish."
icon_state = "durathread-ice"
/obj/item/clothing/suit/wizrobe/durathread/electric
name = "electromancer robe"
desc = "Doesn't actually conduit or isolate from electricity. Though it does have some durability on account of being made from durathread."
icon_state = "durathread-electric"
/obj/item/clothing/suit/wizrobe/durathread/earth
name = "geomancer robe"
desc = "A rather dull durathread robe; not quite as protective as woven armour, but much more stylish."
icon_state = "durathread-earth"
/obj/item/clothing/suit/wizrobe/durathread/necro
name = "necromancer robe"
desc = "A rather dull durathread robe; not quite as protective as woven armour, but much more stylish."
icon_state = "durathread-necro"
/obj/item/clothing/suit/wizrobe/paper
name = "papier-mache robe" // no non-latin characters!
desc = "A robe held together by various bits of clear-tape and paste."
icon_state = "wizard-paper"
inhand_icon_state = null
COOLDOWN_DECLARE(summoning_cooldown)
actions_types = list(/datum/action/item_action/stickmen)
/obj/item/clothing/suit/wizrobe/paper/ui_action_click(mob/user, action)
if(!ishuman(user))
return
if(!COOLDOWN_FINISHED(src, summoning_cooldown))
user.balloon_alert(user, "robe recharging!")
return
conjure_stickmen(user)
/obj/item/clothing/suit/wizrobe/paper/proc/conjure_stickmen(mob/living/carbon/human/summoner)
summoner.force_say()
summoner.say("Rise, my creation! Off your page into this realm!", forced = "stickman summoning")
playsound(src, 'sound/effects/magic/summon_magic.ogg', 50, TRUE, TRUE)
var/mob/living/stickman = new /mob/living/basic/stickman/lesser(get_turf(summoner))
stickman.faction |= summoner.faction - FACTION_NEUTRAL //These bad boys shouldn't inherit the neutral faction from the crew
COOLDOWN_START(src, summoning_cooldown, 3 SECONDS)
@@ -0,0 +1,129 @@
/////////////////////////////////////////Singularity Hammer///////////////////
/obj/item/singularityhammer
name = "singularity hammer"
desc = "The pinnacle of close combat technology, the hammer harnesses the power of a miniaturized singularity to deal crushing blows."
icon = 'icons/obj/weapons/hammer.dmi'
icon_state = "singularity_hammer0"
base_icon_state = "singularity_hammer"
icon_angle = -45
lefthand_file = 'icons/mob/inhands/weapons/hammers_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/hammers_righthand.dmi'
worn_icon_state = "singularity_hammer"
obj_flags = CONDUCTS_ELECTRICITY
slot_flags = ITEM_SLOT_BACK
force = 5
throwforce = 15
throw_range = 1
w_class = WEIGHT_CLASS_HUGE
armor_type = /datum/armor/item_singularityhammer
resistance_flags = FIRE_PROOF | ACID_PROOF
force_string = "LORD SINGULOTH HIMSELF"
///Is it able to pull shit right now?
var/charged = TRUE
/datum/armor/item_singularityhammer
melee = 50
bullet = 50
laser = 50
bomb = 50
fire = 100
acid = 100
/obj/item/singularityhammer/Initialize(mapload)
. = ..()
AddElement(/datum/element/kneejerk)
AddComponent(/datum/component/two_handed, \
force_multiplier = 4, \
icon_wielded = "[base_icon_state]1", \
)
/obj/item/singularityhammer/update_icon_state()
icon_state = "[base_icon_state]0"
return ..()
/obj/item/singularityhammer/proc/vortex(turf/pull, mob/wielder)
for(var/atom/X in orange(5,pull))
if(ismovable(X))
var/atom/movable/A = X
if(A == wielder)
continue
if(isliving(A))
var/mob/living/vortexed_mob = A
if(vortexed_mob.mob_negates_gravity())
continue
else
vortexed_mob.Paralyze(2 SECONDS)
if(!A.anchored && !isobserver(A))
step_towards(A,pull)
step_towards(A,pull)
step_towards(A,pull)
/obj/item/singularityhammer/afterattack(atom/target, mob/user, list/modifiers, list/attack_modifiers)
if(!HAS_TRAIT(src, TRAIT_WIELDED))
return
if(!charged)
return
charged = FALSE
if(isliving(target) && !QDELETED(target))
var/mob/living/smacked = target
smacked.take_bodypart_damage(20, 0)
playsound(user, 'sound/items/weapons/marauder.ogg', 50, TRUE)
vortex(get_turf(target), user)
addtimer(VARSET_CALLBACK(src, charged, TRUE), 10 SECONDS)
/////////////////////////////////////////Mjollnir///////////////////
/obj/item/mjollnir
name = "Mjollnir"
desc = "A weapon worthy of a god, able to strike with the force of a lightning bolt. It crackles with barely contained energy."
icon = 'icons/obj/weapons/hammer.dmi'
icon_state = "mjollnir0"
base_icon_state = "mjollnir"
worn_icon_state = "mjollnir"
icon_angle = -45
lefthand_file = 'icons/mob/inhands/weapons/hammers_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/hammers_righthand.dmi'
obj_flags = CONDUCTS_ELECTRICITY
slot_flags = ITEM_SLOT_BACK
force = 5
throwforce = 30
throw_range = 7
w_class = WEIGHT_CLASS_HUGE
/obj/item/mjollnir/Initialize(mapload)
. = ..()
AddComponent(/datum/component/two_handed, \
force_multiplier = 5, \
icon_wielded = "[base_icon_state]1", \
attacksound = SFX_SPARKS, \
)
/obj/item/mjollnir/update_icon_state()
icon_state = "[base_icon_state]0"
return ..()
/obj/item/mjollnir/proc/shock(mob/living/target)
target.Stun(1.5 SECONDS)
target.Knockdown(10 SECONDS)
var/datum/effect_system/lightning_spread/s = new /datum/effect_system/lightning_spread
s.set_up(5, 1, target.loc)
s.start()
target.visible_message(span_danger("[target.name] is shocked by [src]!"), \
span_userdanger("You feel a powerful shock course through your body sending you flying!"), \
span_hear("You hear a heavy electrical crack!"))
var/atom/throw_target = get_edge_target_turf(target, get_dir(src, get_step_away(target, src)))
target.throw_at(throw_target, 200, 4)
/obj/item/mjollnir/attack(mob/living/target_mob, mob/user)
..()
if(QDELETED(target_mob))
return
if(HAS_TRAIT(user, TRAIT_PACIFISM))
return
if(HAS_TRAIT(src, TRAIT_WIELDED))
shock(target_mob)
/obj/item/mjollnir/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum)
. = ..()
if(!QDELETED(hit_atom) && isliving(hit_atom))
shock(hit_atom)