diff --git a/code/modules/spellbook/_spellbook.dm b/code/modules/spellbook/_spellbook.dm index 6f25daa7d35..c70142fef9d 100644 --- a/code/modules/spellbook/_spellbook.dm +++ b/code/modules/spellbook/_spellbook.dm @@ -66,7 +66,8 @@ GLOBAL_LIST_EMPTY(spells_by_categories) /obj/item/spellbook/interact(mob/living/user) var/dat = null - dat += "Your spell points: [user.mind.mana.spell_points].
" + dat += "Your spell power: [user.mind.mana.spell_points].
" + dat += "Your mana level: [user.mind.mana.mana_level] / [user.mind.mana.mana_level_max].
" dat += "Applied categories: [english_list(spell_categories, "None")].
" dat += "
" for(var/spell_type in allowed_spells) diff --git a/code/modules/spells/aimed/water_slash.dm b/code/modules/spells/aimed/water_slash.dm index bd235563bb6..dce594ffc6f 100644 --- a/code/modules/spells/aimed/water_slash.dm +++ b/code/modules/spells/aimed/water_slash.dm @@ -41,7 +41,7 @@ break var/dense_obj = FALSE for(var/obj/O in T) - if(O.density) + if(O.density && !istype(O, /obj/structure/table) && !istype(O, /obj/structure/railing)) dense_obj = TRUE break if(dense_obj) @@ -76,7 +76,7 @@ blood_col = H.species.blood_color // BLOOD BLOOD BLOOD for(var/i = 1 to min(round(slash_damage * 0.05), 15)) - new /obj/effect/temp_visual/bloodsplatter(LT, get_dir(LT, start_turf), blood_col) + new /obj/effect/temp_visual/bloodsplatter(LT, prob(25) ? pick(GLOB.alldirs) : get_dir(LT, start_turf), blood_col) if(!istype(LT)) continue LT.add_blood(L) diff --git a/code/modules/spells/general/end_of_everything.dm b/code/modules/spells/general/end_of_everything.dm new file mode 100644 index 00000000000..9bcc74b20f2 --- /dev/null +++ b/code/modules/spells/general/end_of_everything.dm @@ -0,0 +1,83 @@ +/datum/spell/end_of_everything + name = "End of Everything" + desc = "Forbidden art of summoning darkest energies from within the veil of magic itself. You are a part of \"everything\", so it might be a bad idea to do it..." + invocation_type = INVOKE_SHOUT + invocation = "Arcesso!" + spell_flags = NEEDSCLOTHES + charge_max = 2 MINUTES + categories = list(SPELL_CATEGORY_FORBIDDEN) + level_max = list(UPGRADE_TOTAL = 0, UPGRADE_SPEED = 0, UPGRADE_POWER = 0) + cast_sound = 'sound/magic/churchbell.ogg' + hud_state = "wiz_endall" + + spell_cost = 100 + mana_cost = 200 + + var/list/active_effects = list() + +/datum/spell/end_of_everything/Destroy() + ClearEffects() + return ..() + +/datum/spell/end_of_everything/cast(list/targets, mob/user) + if(!do_after(user, 10 SECONDS)) + to_chat(user, SPAN_NOTICE("You cancel the ritual!")) + ClearEffects() + return + if(!CastCheck(user)) + to_chat(user, SPAN_NOTICE("You cancel the ritual!")) + ClearEffects() + return + + user.say("Interitus!") + + if(!do_after(user, 10 SECONDS)) + to_chat(user, SPAN_NOTICE("You cancel the ritual!")) + ClearEffects() + return + if(!CastCheck(user)) + to_chat(user, SPAN_NOTICE("You cancel the ritual!")) + ClearEffects() + return + + user.say("Annihilatio!") + + if(!do_after(user, 10 SECONDS)) + to_chat(user, SPAN_NOTICE("You cancel the ritual!")) + ClearEffects() + return + if(!CastCheck(user)) + to_chat(user, SPAN_NOTICE("You cancel the ritual!")) + ClearEffects() + return + + user.say("Mors et aegritudo!") + + if(!do_after(user, 10 SECONDS)) + to_chat(user, SPAN_NOTICE("You cancel the ritual!")) + ClearEffects() + return + if(!CastCheck(user)) + to_chat(user, SPAN_NOTICE("You cancel the ritual!")) + ClearEffects() + return + + user.say("Cruel gods, end it all!!") + to_chat(user, SPAN_WARNING("You feel like you should run...")) + log_and_message_admins("finished casting [src] spell!", user) + + new /obj/effect/end_of_everything(get_turf(user)) + +/datum/spell/end_of_everything/proc/CastCheck(mob/user) + if(!user || QDELETED(user)) + return FALSE + if(user.stat) + return FALSE + return TRUE + +/datum/spell/end_of_everything/proc/ClearEffects() + for(var/datum/D in active_effects) + qdel(D) + active_effects = null + +/obj/effect/end_of_everything diff --git a/icons/mob/screen_spells.dmi b/icons/mob/screen_spells.dmi index 0c164f627fd..d46ff79ff9c 100644 Binary files a/icons/mob/screen_spells.dmi and b/icons/mob/screen_spells.dmi differ diff --git a/maps/away/wizard_den/wizard_den.dm b/maps/away/wizard_den/wizard_den.dm index c9f0f10e47d..8096acfd14b 100644 --- a/maps/away/wizard_den/wizard_den.dm +++ b/maps/away/wizard_den/wizard_den.dm @@ -24,7 +24,7 @@ /datum/map_template/ruin/away_site/wizard_den name = "Wizard Den" - description = "Three z-level map with a shrouded planet with big wizard den." + description = "Three z-level map on a shrouded planet with big wizard den." id = "wizard_den" spawn_cost = 4 suffixes = list("wizard_den/wizard_den-1.dmm") diff --git a/sound/magic/churchbell.ogg b/sound/magic/churchbell.ogg new file mode 100644 index 00000000000..ad9c4ee3c1b Binary files /dev/null and b/sound/magic/churchbell.ogg differ