[MIRROR] Wizard DLC - Tower of Babel [MDB IGNORE] (#16978)

* Wizard DLC - Tower of Babel (#69629)

About The Pull Request

This adds a new status effect called - Tower of Babel

Any carbon mob afflicted by the status effect will lose knowledge of every known language and gain a randomized one as a replacement. The affected mob will also be hit with a depressing moodlet that lasts for 15 seconds. Silicons are immune to all effects.

This effect is implemented in several ways:

    Tower of Babel wizard event (all crew on the station z level are affected. The wizard is not and gains mastery of every language to taunt their victims)
    Admin smite option
    Admin secret event (can be reversed)
    Staff of Babel (formerly the Staff of Sapping) will spawn during spawn magic wizard event
    Magicarp will randomly shoot bolts of babel
    Staff of Chaos will randomly shoot bolts of babel
    Overdosing on Mushroom Hallucinogen will temporarily and sporadically acquire the effect

The effect can be blocked or cured in several ways:

    Curators are given immunity
    Reading a book of babel (via lavaland loot) cures and gives immunity
    Reading a language book cures and gives immunity ONLY for that particular language

Note - The Tower of Babel does not allow tongueless, mute, or tongue tied people the ability to speak

* Wizard DLC - Tower of Babel

Co-authored-by: Tim <timothymtorres@gmail.com>
This commit is contained in:
SkyratBot
2022-10-19 12:25:29 +01:00
committed by GitHub
co-authored by Tim
parent 8c9e5fbd46
commit 2853e3ffef
25 changed files with 281 additions and 47 deletions
@@ -71,8 +71,8 @@
/obj/item/ammo_casing/magic/antimagic
projectile_type = /obj/projectile/magic/antimagic
/obj/item/ammo_casing/magic/sapping
projectile_type = /obj/projectile/magic/sapping
/obj/item/ammo_casing/magic/babel
projectile_type = /obj/projectile/magic/babel
/obj/item/ammo_casing/magic/necropotence
projectile_type = /obj/projectile/magic/necropotence
+7 -7
View File
@@ -137,7 +137,7 @@
/obj/projectile/magic/locker,
/obj/projectile/magic/necropotence,
/obj/projectile/magic/resurrection,
/obj/projectile/magic/sapping,
/obj/projectile/magic/babel,
/obj/projectile/magic/spellblade,
/obj/projectile/magic/teleport,
/obj/projectile/magic/wipe,
@@ -241,14 +241,14 @@
worn_icon_state = "flightstaff"
school = SCHOOL_EVOCATION
/obj/item/gun/magic/staff/sapping
name = "staff of sapping"
desc = "An artefact that spits bolts of sapping magic that can make something sad."
/obj/item/gun/magic/staff/babel
name = "staff of babel"
desc = "An artefact that spits bolts of confusion magic that can make something depressed and incoherent."
fire_sound = 'sound/magic/staff_change.ogg'
ammo_type = /obj/item/ammo_casing/magic/sapping
icon_state = "staffofsapping"
ammo_type = /obj/item/ammo_casing/magic/babel
icon_state = "staffofbabel"
inhand_icon_state = "staffofdoor"
worn_icon_state = "sapstaff"
worn_icon_state = "babelstaff"
school = SCHOOL_FORBIDDEN //evil
/obj/item/gun/magic/staff/necropotence
+7 -6
View File
@@ -366,14 +366,15 @@
var/atom/throw_target = get_edge_target_turf(target, get_dir(target, firer))
target.throw_at(throw_target, 200, 4)
/obj/projectile/magic/sapping
name = "bolt of sapping"
icon_state = "sapping"
/obj/projectile/magic/babel
name = "bolt of babel"
icon_state = "babel"
/obj/projectile/magic/sapping/on_hit(mob/living/target)
/obj/projectile/magic/babel/on_hit(mob/living/carbon/target)
. = ..()
if(isliving(target))
target.add_mood_event(REF(src), /datum/mood_event/sapped)
if(iscarbon(target))
if(curse_of_babel(target))
target.add_mood_event("curse_of_babel", /datum/mood_event/tower_of_babel)
/obj/projectile/magic/necropotence
name = "bolt of necropotence"