diff --git a/code/datums/spell.dm b/code/datums/spell.dm
index ec1c34fee60..236b7c8e9b1 100644
--- a/code/datums/spell.dm
+++ b/code/datums/spell.dm
@@ -65,7 +65,9 @@ var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin
caster.reset_view(0)
return 0
- if((user.z in config.admin_levels) && !centcom_cancast) //Certain spells are not allowed on the centcom zlevel
+ if(user.z == ZLEVEL_CENTCOMM && !centcom_cancast) //Certain spells are not allowed on the centcom zlevel
+ return 0
+ if(user.z == ZLEVEL_CENTCOMM && ticker.mode.name == "ragin' mages")
return 0
if(!skipcharge)
diff --git a/code/game/gamemodes/wizard/raginmages.dm b/code/game/gamemodes/wizard/raginmages.dm
index 7092469efd1..77703c53715 100644
--- a/code/game/gamemodes/wizard/raginmages.dm
+++ b/code/game/gamemodes/wizard/raginmages.dm
@@ -1,5 +1,5 @@
/datum/game_mode/wizard/raginmages
- name = "Ragin' Mages"
+ name = "ragin' mages"
config_tag = "raginmages"
required_players = 1
required_players_secret = 15
diff --git a/code/game/gamemodes/wizard/rightandwrong.dm b/code/game/gamemodes/wizard/rightandwrong.dm
index d0c6f059f26..b6052320615 100644
--- a/code/game/gamemodes/wizard/rightandwrong.dm
+++ b/code/game/gamemodes/wizard/rightandwrong.dm
@@ -1,15 +1,19 @@
/mob/proc/rightandwrong(var/summon_type) //0 = Summon Guns, 1 = Summon Magic
- var/list/gunslist = list("taser","egun","laser","revolver","detective","c20r","nuclear","deagle","gyrojet","pulse","silenced","cannon","doublebarrel","shotgun","combatshotgun","bulldog","mateba","sabr","crossbow","saw","car","boltaction","arg")
- var/list/magiclist = list("fireball","smoke","blind","mindswap","forcewall","knock","horsemask","charge", "summonitem", "wandnothing", "wanddeath", "wandresurrection", "wandpolymorph", "wandteleport", "wanddoor", "wandfireball", "staffhealing", "armor", "scrying", "staffdoor", "special","voodoo")
+ var/list/gunslist = list("taser","egun","laser","revolver","detective","c20r","nuclear","deagle","gyrojet","pulse","suppressed","cannon","doublebarrel","shotgun","combatshotgun","bulldog","mateba","sabr","crossbow","saw","car","boltaction","arg","uzi","turret","pulsecarbine","decloner","mindflayer","hyperkinetic","advplasmacutter","wormhole","wt550","grenadelauncher","medibeam")
+ var/list/magiclist = list("fireball","smoke","blind","mindswap","forcewall","knock","horsemask","charge", "summonitem", "wandnothing", "wanddeath", "wandresurrection", "wandpolymorph", "wandteleport", "wanddoor", "wandfireball", "staffhealing", "armor", "scrying", "staffdoor", "special","voodoo","special")
var/list/magicspeciallist = list("staffchange","staffanimation", "wandbelt", "contract", "staffchaos","necromantic")
+
usr << "You summoned [summon_type ? "magic" : "guns"]!"
message_admins("[key_name_admin(usr)] summoned [summon_type ? "magic" : "guns"]!")
+
for(var/mob/living/carbon/human/H in player_list)
- if(H.stat == 2 || !(H.client)) continue
+ if(H.stat == 2 || !(H.client))
+ continue
if(H.mind)
- if(H.mind.special_role == "Wizard" || H.mind.special_role == "apprentice") continue
+ if(H.mind.special_role == "Wizard" || H.mind.special_role == "apprentice")
+ continue
var/randomizeguns = pick(gunslist)
var/randomizemagic = pick(magiclist)
var/randomizemagicspecial = pick(magicspeciallist)
@@ -25,43 +29,65 @@
new /obj/item/weapon/gun/projectile/revolver(get_turf(H))
if("detective")
new /obj/item/weapon/gun/projectile/revolver/detective(get_turf(H))
- if("c20r")
- new /obj/item/weapon/gun/projectile/automatic/c20r(get_turf(H))
- if("nuclear")
- new /obj/item/weapon/gun/energy/gun/nuclear(get_turf(H))
if("deagle")
new /obj/item/weapon/gun/projectile/automatic/pistol/deagle/camo(get_turf(H))
if("gyrojet")
new /obj/item/weapon/gun/projectile/automatic/gyropistol(get_turf(H))
if("pulse")
new /obj/item/weapon/gun/energy/pulse_rifle(get_turf(H))
- if("silenced")
+ if("suppressed")
new /obj/item/weapon/gun/projectile/automatic/pistol(get_turf(H))
new /obj/item/weapon/suppressor(get_turf(H))
- if("cannon")
- new /obj/item/weapon/gun/energy/lasercannon(get_turf(H))
if("doublebarrel")
new /obj/item/weapon/gun/projectile/revolver/doublebarrel(get_turf(H))
if("shotgun")
- new /obj/item/weapon/gun/projectile/shotgun/(get_turf(H))
+ new /obj/item/weapon/gun/projectile/shotgun(get_turf(H))
if("combatshotgun")
new /obj/item/weapon/gun/projectile/shotgun/automatic/combat(get_turf(H))
- if("bulldog")
- new /obj/item/weapon/gun/projectile/automatic/shotgun/bulldog(get_turf(H))
if("arg")
new /obj/item/weapon/gun/projectile/automatic/ar(get_turf(H))
if("mateba")
new /obj/item/weapon/gun/projectile/revolver/mateba(get_turf(H))
+ if("boltaction")
+ new /obj/item/weapon/gun/projectile/shotgun/boltaction(get_turf(H))
+ if("uzi")
+ new /obj/item/weapon/gun/projectile/automatic/mini_uzi(get_turf(H))
+ if("cannon")
+ new /obj/item/weapon/gun/energy/lasercannon(get_turf(H))
+ if("crossbow")
+ new /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow/large(get_turf(H))
+ if("nuclear")
+ new /obj/item/weapon/gun/energy/gun/nuclear(get_turf(H))
if("sabr")
new /obj/item/weapon/gun/projectile/automatic/proto(get_turf(H))
- if("crossbow")
- new /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow(get_turf(H))
+ if("bulldog")
+ new /obj/item/weapon/gun/projectile/automatic/shotgun/bulldog(get_turf(H))
+ if("c20r")
+ new /obj/item/weapon/gun/projectile/automatic/c20r(get_turf(H))
if("saw")
new /obj/item/weapon/gun/projectile/automatic/l6_saw(get_turf(H))
if("car")
new /obj/item/weapon/gun/projectile/automatic/m90(get_turf(H))
- if("boltaction")
- new /obj/item/weapon/gun/projectile/shotgun/boltaction(get_turf(H))
+ if("turret")
+ new /obj/item/weapon/gun/energy/gun/turret(get_turf(H))
+ if("pulsecarbine")
+ new /obj/item/weapon/gun/energy/pulse_rifle/carbine(get_turf(H))
+ if("decloner")
+ new /obj/item/weapon/gun/energy/decloner(get_turf(H))
+ if("mindflayer")
+ new /obj/item/weapon/gun/energy/mindflayer(get_turf(H))
+ if("hyperkinetic")
+ new /obj/item/weapon/gun/energy/kinetic_accelerator/hyper(get_turf(H))
+ if("advplasmacutter")
+ new /obj/item/weapon/gun/energy/plasmacutter/adv(get_turf(H))
+ if("wormhole")
+ new /obj/item/weapon/gun/energy/wormhole_projector(get_turf(H))
+ if("wt550")
+ new /obj/item/weapon/gun/projectile/automatic/wt550(get_turf(H))
+ if("grenadelauncher")
+ new /obj/item/weapon/gun/projectile/revolver/grenadelauncher(get_turf(H))
+ if("medibeam")
+ new /obj/item/weapon/gun/medbeam(get_turf(H))
else
switch (randomizemagic)
if("fireball")
@@ -80,6 +106,8 @@
new /obj/item/weapon/spellbook/oneuse/horsemask(get_turf(H))
if("charge")
new /obj/item/weapon/spellbook/oneuse/charge(get_turf(H))
+ if("summonitem")
+ new /obj/item/weapon/spellbook/oneuse/summonitem(get_turf(H))
if("wandnothing")
new /obj/item/weapon/gun/magic/wand(get_turf(H))
if("wanddeath")
@@ -109,10 +137,8 @@
H.see_in_dark = 8
H.see_invisible = SEE_INVISIBLE_LEVEL_TWO
H << "The walls suddenly disappear."
-
if("voodoo")
new /obj/item/voodoo(get_turf(H))
-
if("special")
magiclist -= "special" //only one super OP item per summoning max
switch (randomizemagicspecial)
diff --git a/code/game/gamemodes/wizard/spellbook.dm b/code/game/gamemodes/wizard/spellbook.dm
index 1f91e489934..83c23311297 100644
--- a/code/game/gamemodes/wizard/spellbook.dm
+++ b/code/game/gamemodes/wizard/spellbook.dm
@@ -412,6 +412,12 @@
cost = 0
log_name = "SG"
+/datum/spellbook_entry/summon/guns/IsAvailible()
+ if(ticker.mode.name == "ragin' mages")
+ return 0
+ else
+ return 1
+
/datum/spellbook_entry/summon/guns/Buy(var/mob/living/carbon/human/user,var/obj/item/weapon/spellbook/book)
feedback_add_details("wizard_spell_learned",log_name)
user.rightandwrong(0)
@@ -427,6 +433,12 @@
cost = 0
log_name = "SU"
+/datum/spellbook_entry/summon/magic/IsAvailible()
+ if(ticker.mode.name == "ragin' mages")
+ return 0
+ else
+ return 1
+
/datum/spellbook_entry/summon/magic/Buy(var/mob/living/carbon/human/user,var/obj/item/weapon/spellbook/book)
feedback_add_details("wizard_spell_learned",log_name)
user.rightandwrong(1)