diff --git a/code/_globalvars/special_traits/traits.dm b/code/_globalvars/special_traits/traits.dm index 274ef5d6b6a..c0f35d58d92 100644 --- a/code/_globalvars/special_traits/traits.dm +++ b/code/_globalvars/special_traits/traits.dm @@ -76,13 +76,13 @@ ADD_TRAIT(character, TRAIT_NOMOOD, "[type]") ADD_TRAIT(character, TRAIT_NOSTINK, "[type]") -/datum/special_trait/latentmagic - name = "Latent Magic" - greet_text = span_notice("I have innate magical potential.") - weight = 25 +// /datum/special_trait/latentmagic +// name = "Latent Magic" +// greet_text = span_notice("I have innate magical potential.") +// weight = 25 -/datum/special_trait/latentmagic/on_apply(mob/living/carbon/human/character, silent) - character.adjust_skillrank(/datum/skill/magic/arcane, 1, TRUE) +// /datum/special_trait/latentmagic/on_apply(mob/living/carbon/human/character, silent) +// character.adjust_skillrank(/datum/skill/magic/arcane, 1, TRUE) /datum/special_trait/value name = "Coin Counter" @@ -565,20 +565,20 @@ allowed_jobs = list(/datum/job/lord) weight = 25 //Should be fine. -/datum/special_trait/thinker/on_apply(mob/living/carbon/human/character, silent) - character.change_stat("strength", -3) - character.change_stat("intelligence", 6) - character.change_stat("constitution", -1) - character.change_stat("endurance", -1) - character.adjust_skillrank(/datum/skill/magic/arcane, 5, TRUE) - character.set_skillrank(/datum/skill/combat/swords, 2, TRUE) //Average only. - character.mind.adjust_spellpoints(14) //Less points than Court Mage, why do Court mage get 17 points? what even? - character.mind.AddSpell(new /obj/effect/proc_holder/spell/self/learnspell) - character.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/touch/prestidigitation) - character.generate_random_attunements(rand(4,6)) - character.mana_pool.set_intrinsic_recharge(MANA_ALL_LEYLINES) - character.mana_pool.adjust_mana(100) //I don't know, they don't spawn with their full mana bar, so we give them a bit more mana at the start. - new /obj/item/book/granter/spellbook/master(get_turf(character)) +// /datum/special_trait/thinker/on_apply(mob/living/carbon/human/character, silent) +// character.change_stat("strength", -3) +// character.change_stat("intelligence", 6) +// character.change_stat("constitution", -1) +// character.change_stat("endurance", -1) +// character.adjust_skillrank(/datum/skill/magic/arcane, 5, TRUE) +// character.set_skillrank(/datum/skill/combat/swords, 2, TRUE) //Average only. +// character.mind.adjust_spellpoints(14) //Less points than Court Mage, why do Court mage get 17 points? what even? +// character.mind.AddSpell(new /obj/effect/proc_holder/spell/self/learnspell) +// character.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/touch/prestidigitation) +// character.generate_random_attunements(rand(4,6)) +// character.mana_pool.set_intrinsic_recharge(MANA_ALL_LEYLINES) +// character.mana_pool.adjust_mana(100) //I don't know, they don't spawn with their full mana bar, so we give them a bit more mana at the start. +// new /obj/item/book/granter/spellbook/master(get_turf(character)) /datum/special_trait/skeleton name = "Skeleton" diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index 506c5419abc..3b4ac24508b 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -1791,25 +1791,6 @@ icon = 'icons/mob/rogueheat.dmi' screen_loc = mana_loc -/atom/movable/screen/mana/extra_info(mob/user) - var/info = "" - for(var/datum/attunement/attunement as anything in user?.mana_pool.attunements) - var/value = user.mana_pool.attunements[attunement] - if(!value) - continue - - switch(value) - if(0.01 to 0.4) - info += "
Minor [initial(attunement.name)] Attunment" - if(0.41 to 0.7) - info += "
Moderate [initial(attunement.name)] Attunment" - if(0.71 to 1.2) - info += "
Major [initial(attunement.name)] Attunment" - if(1.21 to INFINITY) - info += "
Apex [initial(attunement.name)] Attunment" - - return info - /atom/movable/screen/stamina name = "stamina" icon_state = "fat100" diff --git a/code/datums/components/use_mana.dm b/code/datums/components/use_mana.dm index 5da445aaf1b..0be38004655 100644 --- a/code/datums/components/use_mana.dm +++ b/code/datums/components/use_mana.dm @@ -16,8 +16,6 @@ var/datum/callback/get_user_callback var/datum/callback/get_mana_required_callback - var/list/datum/attunement/attunements - var/pre_use_check_with_feedback_comsig var/pre_use_check_comsig var/post_use_comsig @@ -31,7 +29,6 @@ pre_use_check_comsig, post_use_comsig, datum/callback/mana_required, - list/datum/attunement/attunements, ) . = ..() @@ -50,7 +47,6 @@ else if (isnum(mana_required)) src.mana_required = mana_required - src.attunements = attunements src.pre_use_check_with_feedback_comsig = pre_use_check_with_feedback_comsig src.post_use_comsig = post_use_comsig @@ -68,7 +64,7 @@ UnregisterSignal(parent, post_use_comsig) // TODO: Do I need the vararg? -/// Should return the numerical value of mana needed to use whatever it is we're using. Unaffected by attunements. +/// Should return the numerical value of mana needed to use whatever it is we're using. /datum/component/uses_mana/proc/get_mana_required(atom/caster, ...) // Get the mana required to cast the spell. if (!isnull(get_mana_required_callback)) return get_mana_required_callback?.Invoke(arglist(args)) @@ -105,7 +101,7 @@ for (var/datum/mana_pool/iterated_pool as anything in provided_mana) - total_effective_mana += iterated_pool.get_attuned_amount(attunements, caster) + total_effective_mana += iterated_pool.get_attuned_amount(caster) if (total_effective_mana > required_mana) return TRUE else @@ -117,26 +113,18 @@ var/mob/user = get_user_callback?.Invoke() var/mana_consumed = -get_mana_required(arglist(args)) - var/total_mana_consumed = -mana_consumed if (isnull(mana_consumed)) stack_trace("mana_consumed after get_mana_required is null!") return var/list/datum/mana_pool/available_pools = get_mana_to_use() var/mob/living/caster = get_parent_user() - var/attunement_total_value = 0 var/total_damage = 0 - for(var/datum/attunement/attunement as anything in attunements) - attunement_total_value += attunements[attunement] while (mana_consumed <= -0.05) var/mult var/attuned_cost for (var/datum/mana_pool/pool as anything in available_pools) - mult = pool.get_overall_attunement_mults(attunements, user) - attuned_cost = (mana_consumed * mult) - if (pool.amount < attuned_cost) - attuned_cost = (pool.amount) var/mana_adjusted = SAFE_DIVIDE(pool.adjust_mana((attuned_cost)), mult) * (has_world_trait(/datum/world_trait/noc_wisdom) ? 0.8 : 1) mana_consumed -= mana_adjusted record_featured_stat(FEATURED_STATS_MAGES, user, abs(mana_adjusted)) @@ -144,12 +132,6 @@ if (available_pools.Find(pool) == available_pools.len && mana_consumed <= -0.05) // if we're at the end of the list and mana_consumed is not 0 or near 0 (floating points grrr) stack_trace("cost: [mana_consumed] was not 0 after drain_mana on [src]! This could've been an infinite loop!") mana_consumed = 0 // lets terminate the loop to be safe - if(pool.parent == caster) - for(var/datum/attunement/attunement as anything in attunements) - if(pool.negative_attunements[attunement] < 0) - var/composition_gain = attunement_total_value / attunements[attunement] - var/negative_impact_mana = total_mana_consumed * composition_gain - total_damage += round(negative_impact_mana * 0.1,1) if(total_damage) caster.mana_pool.mana_backlash(total_damage) @@ -197,7 +179,6 @@ pre_use_check_comsig, post_use_comsig = COMSIG_SPELL_AFTER_CAST, datum/callback/mana_required, - list/datum/attunement/attunements ) . = ..() diff --git a/code/datums/mana/living_mana.dm b/code/datums/mana/living_mana.dm index f2e1a8ba82b..8771d6c2116 100644 --- a/code/datums/mana/living_mana.dm +++ b/code/datums/mana/living_mana.dm @@ -74,15 +74,6 @@ /mob/living/carbon/get_initial_mana_pool_type() return /datum/mana_pool/mob -/mob/living/carbon/proc/generate_random_attunements(amount = rand(2, 3)) - var/list/attunements = subtypesof(/datum/attunement) - for(var/i = 1 to amount) - var/datum/attunement/picked = pick(attunements) - mana_pool?.adjust_attunement(picked, rand(1, 3) * 0.1) - -/mob/living/carbon/after_manapool_init() - generate_random_attunements() - /mob/living/carbon/human/dummy has_initial_mana_pool = FALSE diff --git a/code/datums/rituals/ritual_runes.dm b/code/datums/rituals/ritual_runes.dm index dc4d7f01513..15cf62b4ad9 100644 --- a/code/datums/rituals/ritual_runes.dm +++ b/code/datums/rituals/ritual_runes.dm @@ -822,35 +822,5 @@ GLOBAL_LIST(teleport_runes) return . = ..() -/obj/effect/decal/cleanable/roguerune/arcyne/attunement - name = "arcyne attunement matrix" - desc = "A large matrix designed to imbue the energies of materials." - icon = 'icons/effects/160x160.dmi' - icon_state = "imbuement" - tier = 2 - req_invokers = 2 - invocation = "Xel’thix un’oral!" - ritual_number = FALSE - req_keyword = TRUE - runesize = 2 - pixel_x = -64 //So the big ol' 96x96 sprite shows up right - pixel_y = -64 - pixel_z = 0 - can_be_scribed = TRUE - associated_ritual = /datum/runerituals/attunement - takes_all_items = TRUE - -/obj/effect/decal/cleanable/roguerune/arcyne/attunement/invoke(list/invokers, datum/runerituals/runeritual) - runeritual = associated_ritual - if(!..()) //VERY important. Calls parent and checks if it fails. parent/invoke has all the checks for ingredients - return - var/mob/living/user = invokers[1] //the first invoker is always the user - var/datum/runerituals/attunement/attune_ritual = pickritual - - var/list/attunements = attune_ritual.attunement_modifiers - - for(var/datum/attunement/attunement as anything in attunements) - user.mana_pool?.adjust_attunement(attunement, attunements[attunement]) - pickritual.cleanup_atoms(selected_atoms) do_invoke_glow() diff --git a/code/modules/crafting/quality_of_crafting/books.dm b/code/modules/crafting/quality_of_crafting/books.dm index 10691c9721b..beaa2ddcb48 100644 --- a/code/modules/crafting/quality_of_crafting/books.dm +++ b/code/modules/crafting/quality_of_crafting/books.dm @@ -768,7 +768,6 @@ types = list( /datum/book_entry/grimoire, - /datum/book_entry/attunement, /datum/book_entry/mana_sources, /datum/repeatable_crafting_recipe/arcyne, /datum/slapcraft_recipe/arcyne, diff --git a/code/modules/jobs/job_types/apprentices/wapprentice.dm b/code/modules/jobs/job_types/apprentices/wapprentice.dm index 8f6ba35f4ce..dabf03a627d 100644 --- a/code/modules/jobs/job_types/apprentices/wapprentice.dm +++ b/code/modules/jobs/job_types/apprentices/wapprentice.dm @@ -15,6 +15,7 @@ allowed_races = RACES_PLAYER_ALL allowed_sexes = list(MALE, FEMALE) allowed_ages = list(AGE_CHILD, AGE_ADULT) + allowed_patrons = list(/datum/patron/divine/noc, /datum/patron/inhumen/zizo) outfit = /datum/outfit/job/wapprentice diff --git a/code/modules/jobs/job_types/nobility/magician.dm b/code/modules/jobs/job_types/nobility/magician.dm index 6236fd5cc32..7f551f43d71 100644 --- a/code/modules/jobs/job_types/nobility/magician.dm +++ b/code/modules/jobs/job_types/nobility/magician.dm @@ -81,5 +81,3 @@ H.mind?.AddSpell(new /obj/effect/proc_holder/spell/targeted/ethereal_jaunt) H.mind?.AddSpell(new /obj/effect/proc_holder/spell/self/learnspell) H.mind?.AddSpell(new /obj/effect/proc_holder/spell/targeted/touch/prestidigitation) - - H?.generate_random_attunements(rand(4,6)) diff --git a/code/modules/mob/living/stats.dm b/code/modules/mob/living/stats.dm index cc6d1bf40ad..114cec051a4 100644 --- a/code/modules/mob/living/stats.dm +++ b/code/modules/mob/living/stats.dm @@ -52,10 +52,8 @@ return FALSE if(patron && !ispath(patron)) patron.on_remove(src) - mana_pool?.remove_attunements(patron) patron = new_patron patron.on_gain(src) - mana_pool?.set_attunements(patron) return TRUE ///Rolls random stats base 10, +-1, for SPECIAL, and applies species stats and age stats. diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index e8207e02df4..c530929361a 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -642,7 +642,7 @@ if(istype(ranged_ability, /obj/effect/proc_holder/spell)) var/obj/effect/proc_holder/spell/ability = ranged_ability if(!ability.miracle && ability.uses_mana) - mmb_intent.AddComponent(/datum/component/uses_mana/spell,CALLBACK(mmb_intent, TYPE_PROC_REF(/datum/intent, spell_cannot_activate)),CALLBACK(mmb_intent, TYPE_PROC_REF(/datum/intent, get_owner)),COMSIG_SPELL_BEFORE_CAST,null,COMSIG_SPELL_AFTER_CAST,CALLBACK(ranged_ability, TYPE_PROC_REF(/obj/effect/proc_holder, get_fatigue_drain)),ranged_ability.attunements) + mmb_intent.AddComponent(/datum/component/uses_mana/spell,CALLBACK(mmb_intent, TYPE_PROC_REF(/datum/intent, spell_cannot_activate)),CALLBACK(mmb_intent, TYPE_PROC_REF(/datum/intent, get_owner)),COMSIG_SPELL_BEFORE_CAST,null,COMSIG_SPELL_AFTER_CAST,CALLBACK(ranged_ability, TYPE_PROC_REF(/obj/effect/proc_holder, get_fatigue_drain)),ranged_ability) hud_used.quad_intents?.switch_intent(input) diff --git a/code/modules/spells/spell.dm b/code/modules/spells/spell.dm index 3e0385d1042..18e7a3d58e6 100644 --- a/code/modules/spells/spell.dm +++ b/code/modules/spells/spell.dm @@ -27,9 +27,6 @@ var/obj/inhand_requirement = null var/overlay_state = null - var/list/attunements - var/attuned_strength = 1 - /obj/effect/proc_holder/Initialize() . = ..() if(has_action) @@ -389,18 +386,6 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th charge_counter = recharge_time recharging = FALSE -/obj/effect/proc_holder/spell/proc/set_attuned_strength(list/incoming_attunements) - var/total_value = 1 - for(var/datum/attunement/attunement as anything in attunements) - if(!(attunement in incoming_attunements)) - continue - if(attunements[attunement] < 0) - total_value += incoming_attunements[attunement] + attunements[attunement] - else - total_value += incoming_attunements[attunement] - attunements[attunement] - attuned_strength = total_value - return - /obj/effect/proc_holder/spell/proc/perform(list/targets, recharge = TRUE, mob/user = usr) //if recharge is started is important for the trigger spells if(length(targets) && miracle && healing_miracle) var/mob/living/target = targets[1] @@ -421,15 +406,6 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th if (!isnull(user.mana_pool)) usable_pools += user.mana_pool - var/list/total_attunements = GLOB.default_attunements.Copy() - - for(var/datum/mana_pool/pool as anything in usable_pools) - for(var/negative_attunement in pool.negative_attunements) - total_attunements[negative_attunement] += pool.negative_attunements[negative_attunement] - for(var/attunement in pool.attunements) - total_attunements[attunement] += pool.attunements[attunement] - - set_attuned_strength(total_attunements) if(user && user.ckey) create_logs(user, targets) if(recharge) diff --git a/code/modules/spells/spell_types/blindness.dm b/code/modules/spells/spell_types/blindness.dm index edd76a2a87c..5e00eb81fde 100644 --- a/code/modules/spells/spell_types/blindness.dm +++ b/code/modules/spells/spell_types/blindness.dm @@ -13,9 +13,6 @@ antimagic_allowed = TRUE recharge_time = 2 MINUTES associated_skill = /datum/skill/magic/arcane - attunements = list( - /datum/attunement/arcyne = 0.1 - ) /obj/effect/proc_holder/spell/invoked/blindness/cast(list/targets, mob/user = usr) if(isliving(targets[1])) diff --git a/code/modules/spells/spell_types/ethereal_jaunt.dm b/code/modules/spells/spell_types/ethereal_jaunt.dm index 2b00c5eb4e5..e822a1d89db 100644 --- a/code/modules/spells/spell_types/ethereal_jaunt.dm +++ b/code/modules/spells/spell_types/ethereal_jaunt.dm @@ -15,9 +15,6 @@ var/jaunt_in_type = /obj/effect/temp_visual/wizard var/jaunt_out_type = /obj/effect/temp_visual/wizard/out associated_skill = /datum/skill/magic/arcane - attunements = list( - /datum/attunement/arcyne = 0.4, - ) /obj/effect/proc_holder/spell/targeted/ethereal_jaunt/cast(list/targets,mob/user = usr) //magnets, so mostly hardcoded . = ..() diff --git a/code/modules/spells/spell_types/invoked/acolyte/dendor.dm b/code/modules/spells/spell_types/invoked/acolyte/dendor.dm index ba63c8b049a..190983969df 100644 --- a/code/modules/spells/spell_types/invoked/acolyte/dendor.dm +++ b/code/modules/spells/spell_types/invoked/acolyte/dendor.dm @@ -22,10 +22,6 @@ invocation_type = "shout" //can be none, whisper, emote and shout miracle = TRUE devotion_cost = 15 - attunements = list( - /datum/attunement/earth = 0.5, - /datum/attunement/life = 0.5, - ) /obj/effect/proc_holder/spell/targeted/blesscrop/cast(list/targets,mob/user = usr) . = ..() @@ -59,9 +55,6 @@ releasedrain = 30 miracle = TRUE devotion_cost = 15 - attunements = list( - /datum/attunement/earth = 0.5, - ) /obj/effect/proc_holder/spell/self/beastsense/cast(list/targets,mob/living/user = usr) playsound(get_turf(user), 'sound/vo/smokedrag.ogg', 100, TRUE) @@ -96,9 +89,7 @@ invocation_type = "whisper" //can be none, whisper, emote and shout miracle = TRUE devotion_cost = 60 - attunements = list( - /datum/attunement/earth = 1, - ) + var/static/list/pet_commands = list( /datum/pet_command/idle, /datum/pet_command/free, @@ -256,9 +247,7 @@ req_items = list(/obj/item/clothing/neck/psycross/silver/dendor) invocation = "Treefather light the way." invocation_type = "whisper" //can be none, whisper, emote and shout - attunements = list( - /datum/attunement/earth = 0.6, - ) + miracle = TRUE /obj/effect/proc_holder/spell/targeted/conjure_kneestingers/cast(list/targets,mob/user = usr) @@ -293,10 +282,6 @@ releasedrain = 100 miracle = TRUE devotion_cost = 100 - attunements = list( - /datum/attunement/earth = 0.7, - /datum/attunement/polymorph = 0.5, - ) /obj/effect/proc_holder/spell/self/trollshape/cast(list/targets,mob/living/user = usr) . = ..() diff --git a/code/modules/spells/spell_types/invoked/necromancer.dm b/code/modules/spells/spell_types/invoked/necromancer.dm index 60caa826165..f3e09467f7c 100644 --- a/code/modules/spells/spell_types/invoked/necromancer.dm +++ b/code/modules/spells/spell_types/invoked/necromancer.dm @@ -12,10 +12,6 @@ antimagic_allowed = TRUE recharge_time = 15 SECONDS miracle = FALSE - attunements = list( - /datum/attunement/dark = 0.4, - /datum/attunement/death = 0.5, - ) /obj/effect/proc_holder/spell/invoked/strengthen_undead/cast(list/targets, mob/living/user) . = ..() @@ -52,9 +48,6 @@ antimagic_allowed = TRUE recharge_time = 15 SECONDS miracle = FALSE - attunements = list( - /datum/attunement/dark = 0.4, - ) /obj/effect/proc_holder/spell/invoked/eyebite/cast(list/targets, mob/living/user) . = ..() @@ -81,11 +74,6 @@ chargedloop = /datum/looping_sound/invokegen associated_skill = /datum/skill/magic/arcane recharge_time = 30 SECONDS - attunements = list( - /datum/attunement/dark = 0.4, - /datum/attunement/death = 1, - ) - /** * Raises a minion from a corpse. Prioritizing ownership to original player > ghosts > npc. @@ -256,10 +244,6 @@ chargedloop = /datum/looping_sound/invokegen associated_skill = /datum/skill/magic/arcane recharge_time = 15 SECONDS - attunements = list( - /datum/attunement/dark = 0.4, - /datum/attunement/blood = 0.5, - ) /obj/effect/proc_holder/spell/self/command_undead name = "Command Undead" diff --git a/code/modules/spells/spell_types/invoked/vampire.dm b/code/modules/spells/spell_types/invoked/vampire.dm index 06012b5e9e1..c4e78768f4a 100644 --- a/code/modules/spells/spell_types/invoked/vampire.dm +++ b/code/modules/spells/spell_types/invoked/vampire.dm @@ -7,10 +7,6 @@ cooldown_min = 50 die_with_shapeshifted_form = FALSE shapeshift_type = /mob/living/simple_animal/hostile/retaliate/bat - attunements = list( - /datum/attunement/dark = 0.4, - /datum/attunement/polymorph = 0.5, - ) /obj/effect/proc_holder/spell/targeted/shapeshift/gaseousform name = "Mist Form" @@ -20,11 +16,6 @@ cooldown_min = 50 die_with_shapeshifted_form = FALSE shapeshift_type = /mob/living/simple_animal/hostile/retaliate/gaseousform - attunements = list( - /datum/attunement/dark = 0.4, - /datum/attunement/polymorph = 0.5, - /datum/attunement/aeromancy = 0.3, - ) /obj/effect/proc_holder/spell/targeted/mansion_portal name = "Mansion Portal" diff --git a/code/modules/spells/spell_types/knock.dm b/code/modules/spells/spell_types/knock.dm index c89f40f8bb9..f6fd07c7ebd 100644 --- a/code/modules/spells/spell_types/knock.dm +++ b/code/modules/spells/spell_types/knock.dm @@ -10,9 +10,6 @@ invocation_type = "whisper" range = 3 cooldown_min = 0.5 MINUTES //20 deciseconds reduction per rank - attunements = list( - /datum/attunement/aeromancy = 0.2, - ) /obj/effect/proc_holder/spell/aoe_turf/knock/cast(list/targets,mob/user = usr) // SEND_SOUND(user, sound('sound/blank.ogg')) diff --git a/code/modules/spells/spell_types/wizard/buffs/arcyne_eye.dm b/code/modules/spells/spell_types/wizard/buffs/arcyne_eye.dm index 8c729a74c14..efae3b0261e 100644 --- a/code/modules/spells/spell_types/wizard/buffs/arcyne_eye.dm +++ b/code/modules/spells/spell_types/wizard/buffs/arcyne_eye.dm @@ -11,16 +11,12 @@ movement_interrupt = TRUE chargedloop = /datum/looping_sound/invokegen associated_skill = /datum/skill/magic/arcane - attunements = list( - /datum/attunement/arcyne = 0.1 - ) cost = 1 overlay_state = "transfix" /obj/effect/proc_holder/spell/self/arcyne_eye/cast(list/targets, mob/living/user) playsound(get_turf(user), 'sound/vo/smokedrag.ogg', 100, TRUE) - var/duration_increase = min(0, attuned_strength * 1.5 MINUTES) - user.apply_status_effect(/datum/status_effect/buff/duration_modification/arcyne_eye, duration_increase) + user.apply_status_effect(/datum/status_effect/buff/duration_modification/arcyne_eye,) return TRUE /datum/status_effect/buff/duration_modification/arcyne_eye diff --git a/code/modules/spells/spell_types/wizard/buffs/bladeward.dm b/code/modules/spells/spell_types/wizard/buffs/bladeward.dm index 44c6c325d81..92604419192 100644 --- a/code/modules/spells/spell_types/wizard/buffs/bladeward.dm +++ b/code/modules/spells/spell_types/wizard/buffs/bladeward.dm @@ -24,24 +24,13 @@ invocation = "Blades, be dulled!" invocation_type = "shout" //can be none, whisper, emote and shout - attunements = list( - /datum/attunement/arcyne = 0.3, - ) // Notes: Bard, Sorcerer, Warlock, Wizard /obj/effect/proc_holder/spell/self/bladeward5e/cast(mob/user = usr) var/mob/living/target = user - var/duration_increase = min(0, attuned_strength * 1.5 MINUTES) - target.apply_status_effect(/datum/status_effect/buff/duration_modification/bladeward5e, duration_increase) + target.apply_status_effect(/datum/status_effect/buff/duration_modification/bladeward5e) user.visible_message("[user] traces a warding sigil in the air.", "I trace a a sigil of warding in the air.") - if(attuned_strength > 1.5) - for(var/mob/living/extra_target in range(FLOOR(attuned_strength, 1))) - if(extra_target == target) - continue - extra_target.apply_status_effect(/datum/status_effect/buff/duration_modification/bladeward5e, duration_increase) - extra_target.visible_message("[extra_target] has a sigil of warding appear over them.", "I see a sigil of warding floating over me.") - return TRUE /datum/status_effect/buff/duration_modification/bladeward5e diff --git a/code/modules/spells/spell_types/wizard/buffs/darkvision.dm b/code/modules/spells/spell_types/wizard/buffs/darkvision.dm index 87c3a1f397a..0fd11c190aa 100644 --- a/code/modules/spells/spell_types/wizard/buffs/darkvision.dm +++ b/code/modules/spells/spell_types/wizard/buffs/darkvision.dm @@ -9,13 +9,6 @@ associated_skill = /datum/skill/magic/arcane hand_path = /obj/item/melee/touch_attack/darkvision cost = 2 - attunements = list( - /datum/attunement/light = 0.6, - ) - -/obj/effect/proc_holder/spell/targeted/touch/darkvision/adjust_hand_charges() - var/increase = FLOOR(attuned_strength * 1.5, 1) - attached_hand.charges += increase /obj/item/melee/touch_attack/darkvision name = "\improper arcyne focus" @@ -35,8 +28,7 @@ var/mob/living/spelltarget = target if(!do_after(user, 5 SECONDS, spelltarget)) return - var/duration_increase = min(0, attached_spell.attuned_strength * 2 MINUTES) - spelltarget.apply_status_effect(/datum/status_effect/buff/duration_modification/darkvision, duration_increase) + spelltarget.apply_status_effect(/datum/status_effect/buff/duration_modification/darkvision,) user.adjust_stamina(80) if(spelltarget != user) user.visible_message("[user] draws a glyph in the air and touches [spelltarget] with an arcyne focus.") diff --git a/code/modules/spells/spell_types/wizard/buffs/featherfall.dm b/code/modules/spells/spell_types/wizard/buffs/featherfall.dm index 131cae1bd4b..44a401b49f4 100644 --- a/code/modules/spells/spell_types/wizard/buffs/featherfall.dm +++ b/code/modules/spells/spell_types/wizard/buffs/featherfall.dm @@ -14,15 +14,11 @@ chargedloop = /datum/looping_sound/invokegen associated_skill = /datum/skill/magic/arcane overlay_state = "jump" - attunements = list( - /datum/attunement/aeromancy = 0.5, - ) /obj/effect/proc_holder/spell/invoked/featherfall/cast(list/targets, mob/user = usr) user.visible_message("[user] mutters an incantation and a dim pulse of light radiates out from them.") - var/duration_increase = min(0, attuned_strength * 90 SECONDS) - for(var/mob/living/L in range(max(1, FLOOR(attuned_strength, 1)), usr)) - L.apply_status_effect(/datum/status_effect/buff/duration_modification/featherfall, duration_increase) + for(var/mob/living/L in range(1, usr)) + L.apply_status_effect(/datum/status_effect/buff/duration_modification/featherfall,) return TRUE diff --git a/code/modules/spells/spell_types/wizard/buffs/guidance.dm b/code/modules/spells/spell_types/wizard/buffs/guidance.dm index 4b62c16210d..7d635194f8b 100644 --- a/code/modules/spells/spell_types/wizard/buffs/guidance.dm +++ b/code/modules/spells/spell_types/wizard/buffs/guidance.dm @@ -14,9 +14,7 @@ charging_slowdown = 2 chargedloop = /datum/looping_sound/invokegen associated_skill = /datum/skill/magic/arcane - attunements = list( - /datum/attunement/arcyne = 1, - ) + /obj/effect/proc_holder/spell/invoked/guidance/cast(list/targets, mob/user) var/atom/A = targets[1] @@ -25,8 +23,6 @@ var/mob/living/spelltarget = A - var/duration_increase = min(0, attuned_strength * 60 SECONDS) //basically 1 minute extra per 1 attunement level since its a strong effect - spelltarget.apply_status_effect(/datum/status_effect/buff/duration_modification/guidance, duration_increase) playsound(get_turf(spelltarget), 'sound/magic/haste.ogg', 80, TRUE, soundping = TRUE) if(spelltarget != user) diff --git a/code/modules/spells/spell_types/wizard/buffs/haste.dm b/code/modules/spells/spell_types/wizard/buffs/haste.dm index 2fc78686494..b7ffc15a5e0 100644 --- a/code/modules/spells/spell_types/wizard/buffs/haste.dm +++ b/code/modules/spells/spell_types/wizard/buffs/haste.dm @@ -13,9 +13,6 @@ charging_slowdown = 2 chargedloop = /datum/looping_sound/invokegen associated_skill = /datum/skill/magic/arcane - attunements = list( - /datum/attunement/aeromancy = 0.5, - ) /obj/effect/proc_holder/spell/invoked/haste/cast(list/targets, mob/user) var/atom/A = targets[1] @@ -24,8 +21,7 @@ return var/mob/living/spelltarget = A - var/duration_increase = min(0, attuned_strength * 30 SECONDS) - spelltarget.apply_status_effect(/datum/status_effect/buff/duration_modification/haste, duration_increase) + spelltarget.apply_status_effect(/datum/status_effect/buff/duration_modification/haste,) playsound(get_turf(spelltarget), 'sound/magic/haste.ogg', 80, TRUE, soundping = TRUE) if(spelltarget != user) diff --git a/code/modules/spells/spell_types/wizard/buffs/longstrider.dm b/code/modules/spells/spell_types/wizard/buffs/longstrider.dm index 32e4c50be1d..56f75337785 100644 --- a/code/modules/spells/spell_types/wizard/buffs/longstrider.dm +++ b/code/modules/spells/spell_types/wizard/buffs/longstrider.dm @@ -12,22 +12,15 @@ charging_slowdown = 1 chargedloop = /datum/looping_sound/invokegen associated_skill = /datum/skill/magic/arcane - attunements = list( - /datum/attunement/aeromancy = 0.8, - ) /obj/effect/proc_holder/spell/invoked/longstrider/cast(list/targets, mob/user = usr) . = ..() user.visible_message("[user] mutters an incantation and a dim pulse of light radiates out from them.") - var/duration_increase = min(0, attuned_strength * 2 MINUTES) - for(var/mob/living/L in range(1, usr)) - L.apply_status_effect(/datum/status_effect/buff/duration_modification/longstrider, duration_increase) - /datum/status_effect/buff/duration_modification/longstrider id = "longstrider" alert_type = /atom/movable/screen/alert/status_effect/buff/longstrider - duration = 5 MINUTES + duration = 6 MINUTES /datum/status_effect/buff/duration_modification/longstrider/on_apply() . = ..() diff --git a/code/modules/spells/spell_types/wizard/buffs/nondetection.dm b/code/modules/spells/spell_types/wizard/buffs/nondetection.dm index b410725a4d5..f9d4d6286c4 100644 --- a/code/modules/spells/spell_types/wizard/buffs/nondetection.dm +++ b/code/modules/spells/spell_types/wizard/buffs/nondetection.dm @@ -9,13 +9,6 @@ associated_skill = /datum/skill/magic/arcane hand_path = /obj/item/melee/touch_attack/nondetection cost = 1 - attunements = list( - /datum/attunement/illusion = 0.4, - ) - -/obj/effect/proc_holder/spell/targeted/touch/nondetection/adjust_hand_charges() - var/increase = FLOOR(attuned_strength * 1.5, 1) - attached_hand.charges += increase /obj/item/melee/touch_attack/nondetection name = "\improper arcyne focus" diff --git a/code/modules/spells/spell_types/wizard/buffs/primal_savagery.dm b/code/modules/spells/spell_types/wizard/buffs/primal_savagery.dm index 9a08cfcb92a..dc4733ae42b 100644 --- a/code/modules/spells/spell_types/wizard/buffs/primal_savagery.dm +++ b/code/modules/spells/spell_types/wizard/buffs/primal_savagery.dm @@ -20,10 +20,6 @@ associated_skill = /datum/skill/magic/druidic //can be arcane, druidic, blood, holy cost = 1 - attunements = list( - /datum/attunement/earth = 0.3, - ) - miracle = FALSE invocation = "Teeth of a serpent." @@ -32,19 +28,10 @@ /obj/effect/proc_holder/spell/self/primalsavagery5e/cast(mob/user = usr) var/mob/living/target = user - var/duration_increase = min(0, attuned_strength * 1 MINUTES) - target.apply_status_effect(/datum/status_effect/buff/duration_increase/primalsavagery5e, duration_increase) + target.apply_status_effect(/datum/status_effect/buff/duration_increase/primalsavagery5e,) ADD_TRAIT(target, TRAIT_POISONBITE, TRAIT_GENERIC) user.visible_message(span_info("[user] looks more primal!"), span_info("You feel more primal.")) - if(attuned_strength > 1.5) - for(var/mob/living/extra_target in range(FLOOR(attuned_strength, 1))) - if(extra_target == target) - continue - extra_target.apply_status_effect(/datum/status_effect/buff/duration_increase/primalsavagery5e, duration_increase) - ADD_TRAIT(extra_target, TRAIT_POISONBITE, TRAIT_GENERIC) - extra_target.visible_message(span_info("[extra_target] looks more primal!"), span_info("You feel more primal.")) - return TRUE /datum/status_effect/buff/duration_increase/primalsavagery5e diff --git a/code/modules/spells/spell_types/wizard/damage/acid_splash.dm b/code/modules/spells/spell_types/wizard/damage/acid_splash.dm index c44d3487c65..40a9ee55d19 100644 --- a/code/modules/spells/spell_types/wizard/damage/acid_splash.dm +++ b/code/modules/spells/spell_types/wizard/damage/acid_splash.dm @@ -18,11 +18,7 @@ charging_slowdown = 3 chargedloop = /datum/looping_sound/invokegen associated_skill = /datum/skill/magic/arcane //can be arcane, druidic, blood, holy - cost = 1 - attunements = list( - /datum/attunement/blood = 0.3, - /datum/attunement/death = 0.4, - ) + cost = 2 /obj/effect/proc_holder/spell/self/acidsplash5e/cast(mob/user = usr) var/mob/living/target = user diff --git a/code/modules/spells/spell_types/wizard/damage/arcane_bolt.dm b/code/modules/spells/spell_types/wizard/damage/arcane_bolt.dm index c58ac80475d..69a73b74818 100644 --- a/code/modules/spells/spell_types/wizard/damage/arcane_bolt.dm +++ b/code/modules/spells/spell_types/wizard/damage/arcane_bolt.dm @@ -17,9 +17,6 @@ chargedloop = /datum/looping_sound/invokegen associated_skill = /datum/skill/magic/arcane cost = 2 - attunements = list( - /datum/attunement/arcyne = 0.7, - ) /obj/projectile/energy/rogue3 name = "arcane bolt" diff --git a/code/modules/spells/spell_types/wizard/damage/arcyne_storm.dm b/code/modules/spells/spell_types/wizard/damage/arcyne_storm.dm index 6079dc1c864..dde1f2d1b92 100644 --- a/code/modules/spells/spell_types/wizard/damage/arcyne_storm.dm +++ b/code/modules/spells/spell_types/wizard/damage/arcyne_storm.dm @@ -2,7 +2,7 @@ /obj/effect/proc_holder/spell/invoked/arcyne_storm name = "Arcyne storm" desc = "Conjure ripples of force into existance over a large area, injuring any who enter" - cost = 2 + cost = 8 releasedrain = 50 chargedrain = 1 chargetime = 12 SECONDS @@ -15,9 +15,6 @@ associated_skill = /datum/skill/magic/arcane overlay_state = "hierophant" range = 4 - attunements = list( - /datum/attunement/arcyne = 1.2 - ) var/damage = 10 /obj/effect/proc_holder/spell/invoked/arcyne_storm/cast(list/targets, mob/user = usr) diff --git a/code/modules/spells/spell_types/wizard/damage/blade_burst.dm b/code/modules/spells/spell_types/wizard/damage/blade_burst.dm index 554a1956ba0..ce8fc6a4bc8 100644 --- a/code/modules/spells/spell_types/wizard/damage/blade_burst.dm +++ b/code/modules/spells/spell_types/wizard/damage/blade_burst.dm @@ -13,9 +13,6 @@ chargedloop = /datum/looping_sound/invokegen associated_skill = /datum/skill/magic/arcane overlay_state = "blade_burst" - attunements = list( - /datum/attunement/earth = 0.4, - ) var/delay = 7 var/damage = 45 diff --git a/code/modules/spells/spell_types/wizard/damage/blood_lightning.dm b/code/modules/spells/spell_types/wizard/damage/blood_lightning.dm index 04651e9762e..2d5e01998bb 100644 --- a/code/modules/spells/spell_types/wizard/damage/blood_lightning.dm +++ b/code/modules/spells/spell_types/wizard/damage/blood_lightning.dm @@ -16,10 +16,6 @@ charging_slowdown = 3 chargedloop = /datum/looping_sound/invokegen associated_skill = /datum/skill/magic/blood - attunements = list( - /datum/attunement/electric = 0.3, - /datum/attunement/blood = 0.7, - ) /obj/projectile/magic/bloodlightning name = "blood bolt" diff --git a/code/modules/spells/spell_types/wizard/damage/blood_steal.dm b/code/modules/spells/spell_types/wizard/damage/blood_steal.dm index 4732be12c95..362e800e039 100644 --- a/code/modules/spells/spell_types/wizard/damage/blood_steal.dm +++ b/code/modules/spells/spell_types/wizard/damage/blood_steal.dm @@ -15,9 +15,6 @@ charging_slowdown = 3 chargedloop = /datum/looping_sound/invokegen associated_skill = /datum/skill/magic/blood - attunements = list( - /datum/attunement/blood = 0.7, - ) /obj/projectile/magic/bloodsteal name = "blood steal" diff --git a/code/modules/spells/spell_types/wizard/damage/booming_blade.dm b/code/modules/spells/spell_types/wizard/damage/booming_blade.dm index c1092ad2123..7a4097da81c 100644 --- a/code/modules/spells/spell_types/wizard/damage/booming_blade.dm +++ b/code/modules/spells/spell_types/wizard/damage/booming_blade.dm @@ -1,6 +1,6 @@ /obj/effect/proc_holder/spell/invoked/boomingblade5e name = "Booming Blade" - desc = "Causes explosions to ripple out from your target when they move." + desc = "A spell which uses a weapon as a focus. Causes the target to endure a blinding explosion upon movement." overlay_state = "blade_burst" releasedrain = 50 chargetime = 3 @@ -23,9 +23,6 @@ invocation = "Stay still!" // Incantation should explain a confusing spell's mechanic. invocation_type = "shout" //can be none, whisper, emote and shout - attunements = list( - /datum/attunement/earth = 0.3, - ) /obj/effect/proc_holder/spell/invoked/boomingblade5e/cast(list/targets, mob/living/user) if(isliving(targets[1])) diff --git a/code/modules/spells/spell_types/wizard/damage/eldritch_blast.dm b/code/modules/spells/spell_types/wizard/damage/eldritch_blast.dm index 01f88b7f416..9ba71c259bb 100644 --- a/code/modules/spells/spell_types/wizard/damage/eldritch_blast.dm +++ b/code/modules/spells/spell_types/wizard/damage/eldritch_blast.dm @@ -26,9 +26,6 @@ invocation = "Eldritch blast!" // Bad incantation but it's funny. invocation_type = "shout" - attunements = list( - /datum/attunement/dark = 0.3, - ) /obj/projectile/magic/eldritchblast5e diff --git a/code/modules/spells/spell_types/wizard/damage/fireball.dm b/code/modules/spells/spell_types/wizard/damage/fireball.dm index c3e728eafa9..516985aa168 100644 --- a/code/modules/spells/spell_types/wizard/damage/fireball.dm +++ b/code/modules/spells/spell_types/wizard/damage/fireball.dm @@ -15,10 +15,7 @@ movement_interrupt = TRUE chargedloop = /datum/looping_sound/invokefire associated_skill = /datum/skill/magic/arcane - attunements = list( - /datum/attunement/fire = 0.5 - ) - cost = 4 + cost = 5 /obj/projectile/magic/aoe/fireball/rogue name = "fireball" diff --git a/code/modules/spells/spell_types/wizard/damage/frostbolt.dm b/code/modules/spells/spell_types/wizard/damage/frostbolt.dm index 3b94e10450d..1c28c32a823 100644 --- a/code/modules/spells/spell_types/wizard/damage/frostbolt.dm +++ b/code/modules/spells/spell_types/wizard/damage/frostbolt.dm @@ -19,10 +19,7 @@ charging_slowdown = 3 chargedloop = /datum/looping_sound/invokegen associated_skill = /datum/skill/magic/arcane //can be arcane, druidic, blood, holy - cost = 1 - attunements = list( - /datum/attunement/ice = 0.7, - ) + cost = 2 /obj/effect/proc_holder/spell/self/frostbolt/cast(mob/user = usr) var/mob/living/target = user diff --git a/code/modules/spells/spell_types/wizard/damage/greater_fireball.dm b/code/modules/spells/spell_types/wizard/damage/greater_fireball.dm index 5d1cd97d150..ef6c6095ca9 100644 --- a/code/modules/spells/spell_types/wizard/damage/greater_fireball.dm +++ b/code/modules/spells/spell_types/wizard/damage/greater_fireball.dm @@ -15,9 +15,6 @@ movement_interrupt = TRUE chargedloop = /datum/looping_sound/invokefire cost = 10 - attunements = list( - /datum/attunement/fire = 1.1, - ) /obj/projectile/magic/aoe/fireball/rogue/great name = "fireball" diff --git a/code/modules/spells/spell_types/wizard/damage/greenflame_blade.dm b/code/modules/spells/spell_types/wizard/damage/greenflame_blade.dm index d93fe28776c..52c849757a0 100644 --- a/code/modules/spells/spell_types/wizard/damage/greenflame_blade.dm +++ b/code/modules/spells/spell_types/wizard/damage/greenflame_blade.dm @@ -1,6 +1,6 @@ /obj/effect/proc_holder/spell/invoked/greenflameblade5e name = "Green-Flame Blade" - desc = "An attack that burns all in an aoe around your target." + desc = "A spell which uses a weapon as it's focus to scorch your target briefly." overlay_state = "null" releasedrain = 50 chargetime = 3 @@ -22,10 +22,6 @@ invocation = "Green flame blade!" invocation_type = "shout" //can be none, whisper, emote and shout - attunements = list( - /datum/attunement/fire = 0.3, - ) - /obj/effect/proc_holder/spell/invoked/greenflameblade5e/cast(list/targets, mob/living/user) if(isliving(targets[1])) var/mob/living/carbon/target = targets[1] diff --git a/code/modules/spells/spell_types/wizard/damage/lightning_bolt.dm b/code/modules/spells/spell_types/wizard/damage/lightning_bolt.dm index 5038512e946..47e85edc6f6 100644 --- a/code/modules/spells/spell_types/wizard/damage/lightning_bolt.dm +++ b/code/modules/spells/spell_types/wizard/damage/lightning_bolt.dm @@ -18,10 +18,7 @@ associated_skill = /datum/skill/magic/arcane sparks_spread = 3 sparks_amt = 5 - cost = 3 - attunements = list( - /datum/attunement/electric = 0.5, - ) + cost = 6 /obj/projectile/magic/lightning name = "bolt of lightning" diff --git a/code/modules/spells/spell_types/wizard/damage/lightning_lure.dm b/code/modules/spells/spell_types/wizard/damage/lightning_lure.dm index 3ca241cbce6..40d6996e6b7 100644 --- a/code/modules/spells/spell_types/wizard/damage/lightning_lure.dm +++ b/code/modules/spells/spell_types/wizard/damage/lightning_lure.dm @@ -13,16 +13,13 @@ sound = 'sound/magic/whiteflame.ogg' chargedloop = /datum/looping_sound/invokegen associated_skill = /datum/skill/magic/arcane //can be arcane, druidic, blood, holy - cost = 2 // might even deserve a cost of 3 + cost = 4 // might even deserve a cost of 3 miracle = FALSE invocation = "" invocation_type = "shout" //can be none, whisper, emote and shout include_user = FALSE - attunements = list( - /datum/attunement/electric = 1.2 - ) var/delay = 3 SECONDS var/sprite_changes = 10 diff --git a/code/modules/spells/spell_types/wizard/damage/meteor.dm b/code/modules/spells/spell_types/wizard/damage/meteor.dm index 7288666cb26..db503af1e68 100644 --- a/code/modules/spells/spell_types/wizard/damage/meteor.dm +++ b/code/modules/spells/spell_types/wizard/damage/meteor.dm @@ -2,19 +2,16 @@ name = "Meteor storm" desc = "Summons forth dangerous meteors from the sky to scatter and smash foes." cost = 8 - releasedrain = 110 - chargedrain = 1 + releasedrain = 250 + chargedrain = 20 chargetime = 25 SECONDS - recharge_time = 50 SECONDS + recharge_time = 100 SECONDS warnie = "spellwarning" no_early_release = TRUE movement_interrupt = TRUE charging_slowdown = 2 chargedloop = /datum/looping_sound/invokegen associated_skill = /datum/skill/magic/arcane - attunements = list( - /datum/attunement/fire = 1.2 - ) /obj/effect/proc_holder/spell/invoked/meteor_storm/cast(list/targets, mob/user = usr) var/turf/T = get_turf(targets[1]) @@ -25,26 +22,13 @@ create_meteors(T) return TRUE -/obj/effect/proc_holder/spell/invoked/meteor_storm/set_attuned_strength(list/incoming_attunements) - var/total_value = 1 - for(var/datum/attunement/attunement as anything in attunements) - if(istype(attunement, /datum/attunement/blood)) - total_value -= incoming_attunements[attunement] * 0.5 - if(!(attunement in incoming_attunements)) - continue - total_value += incoming_attunements[attunement] - attunements[attunement] - - attuned_strength = total_value - attuned_strength = max(attuned_strength, 0.5) - return - //meteor storm and lightstorm. /obj/effect/proc_holder/spell/invoked/meteor_storm/proc/create_meteors(atom/target) if(!target) return target.visible_message(span_boldwarning("Fire rains from the sky!")) var/turf/targetturf = get_turf(target) - var/value = 20 * attuned_strength + var/value = 20 while(value > 0) for(var/turf/turf as anything in RANGE_TURFS(6,targetturf)) if(prob(min(20, value))) diff --git a/code/modules/spells/spell_types/wizard/damage/mind_sliver.dm b/code/modules/spells/spell_types/wizard/damage/mind_sliver.dm index 289b5f25822..7c2a6d942fa 100644 --- a/code/modules/spells/spell_types/wizard/damage/mind_sliver.dm +++ b/code/modules/spells/spell_types/wizard/damage/mind_sliver.dm @@ -16,10 +16,6 @@ associated_skill = /datum/skill/magic/arcane //can be arcane, druidic, blood, holy cost = 1 - attunements = list( - /datum/attunement/dark = 0.5, - ) - miracle = FALSE invocation = "Steal their thoughts!" diff --git a/code/modules/spells/spell_types/wizard/damage/ray_of_frost.dm b/code/modules/spells/spell_types/wizard/damage/ray_of_frost.dm index 9e0cd8a6350..dade074853f 100644 --- a/code/modules/spells/spell_types/wizard/damage/ray_of_frost.dm +++ b/code/modules/spells/spell_types/wizard/damage/ray_of_frost.dm @@ -21,11 +21,6 @@ associated_skill = /datum/skill/magic/arcane //can be arcane, druidic, blood, holy cost = 1 - - attunements = list( - /datum/attunement/ice = 0.6, - ) - miracle = FALSE invocation = "Chill!" diff --git a/code/modules/spells/spell_types/wizard/damage/spitfire.dm b/code/modules/spells/spell_types/wizard/damage/spitfire.dm index 7a52673b604..3dc646d6fd6 100644 --- a/code/modules/spells/spell_types/wizard/damage/spitfire.dm +++ b/code/modules/spells/spell_types/wizard/damage/spitfire.dm @@ -17,9 +17,6 @@ chargedloop = /datum/looping_sound/invokefire associated_skill = /datum/skill/magic/arcane cost = 3 - attunements = list( - /datum/attunement/fire = 0.3, - ) /obj/projectile/magic/aoe/fireball/rogue2 name = "spitfire" diff --git a/code/modules/spells/spell_types/wizard/damage/sundering_lightning.dm b/code/modules/spells/spell_types/wizard/damage/sundering_lightning.dm index 95c1dab95fa..7e04aaf73a3 100644 --- a/code/modules/spells/spell_types/wizard/damage/sundering_lightning.dm +++ b/code/modules/spells/spell_types/wizard/damage/sundering_lightning.dm @@ -13,9 +13,6 @@ chargedloop = /datum/looping_sound/invokegen associated_skill = /datum/skill/magic/arcane range = 4 - attunements = list( - /datum/attunement/electric = 0.9 - ) /obj/effect/proc_holder/spell/invoked/sundering_lightning/cast(list/targets, mob/user = usr) var/turf/T = get_turf(targets[1]) diff --git a/code/modules/spells/spell_types/wizard/debuffs/decompose.dm b/code/modules/spells/spell_types/wizard/debuffs/decompose.dm index 6ac73eede3a..5af50e334e9 100644 --- a/code/modules/spells/spell_types/wizard/debuffs/decompose.dm +++ b/code/modules/spells/spell_types/wizard/debuffs/decompose.dm @@ -22,9 +22,6 @@ invocation = "Return to rot." invocation_type = "whisper" - attunements = list( - /datum/attunement/death = 0.3, - ) /obj/effect/proc_holder/spell/invoked/decompose5e/cast(list/targets, mob/living/user) if(!isliving(targets[1])) diff --git a/code/modules/spells/spell_types/wizard/debuffs/frostbite.dm b/code/modules/spells/spell_types/wizard/debuffs/frostbite.dm index 58a7319e066..d797c85d88d 100644 --- a/code/modules/spells/spell_types/wizard/debuffs/frostbite.dm +++ b/code/modules/spells/spell_types/wizard/debuffs/frostbite.dm @@ -21,9 +21,6 @@ invocation = "" invocation_type = "shout" //can be none, whisper, emote and shout - attunements = list( - /datum/attunement/ice = 0.9 - ) /obj/effect/proc_holder/spell/invoked/frostbite5e/cast(list/targets, mob/living/user) if(isliving(targets[1])) diff --git a/code/modules/spells/spell_types/wizard/debuffs/gravity.dm b/code/modules/spells/spell_types/wizard/debuffs/gravity.dm index 008eee0f622..12934037b3e 100644 --- a/code/modules/spells/spell_types/wizard/debuffs/gravity.dm +++ b/code/modules/spells/spell_types/wizard/debuffs/gravity.dm @@ -12,9 +12,7 @@ charging_slowdown = 2 chargedloop = /datum/looping_sound/invokegen associated_skill = /datum/skill/magic/arcane - attunements = list( - /datum/attunement/dark = 0.6, - ) + var/delay = 3 var/damage = 0 // damage based off your str var/area_of_effect = 0 diff --git a/code/modules/spells/spell_types/wizard/debuffs/infestation.dm b/code/modules/spells/spell_types/wizard/debuffs/infestation.dm index d7e4ddc8cd5..0e140f899ef 100644 --- a/code/modules/spells/spell_types/wizard/debuffs/infestation.dm +++ b/code/modules/spells/spell_types/wizard/debuffs/infestation.dm @@ -21,12 +21,6 @@ invocation = "Rot, take them!" invocation_type = "shout" //can be none, whisper, emote and shout - attunements = list( - /datum/attunement/dark = 0.3, - /datum/attunement/death = 0.3, - ) - - /obj/effect/proc_holder/spell/invoked/infestation5e/cast(list/targets, mob/living/user) if(isliving(targets[1])) var/mob/living/carbon/target = targets[1] diff --git a/code/modules/spells/spell_types/wizard/debuffs/snapfreeze.dm b/code/modules/spells/spell_types/wizard/debuffs/snapfreeze.dm index 4c20818eb4e..90d56817647 100644 --- a/code/modules/spells/spell_types/wizard/debuffs/snapfreeze.dm +++ b/code/modules/spells/spell_types/wizard/debuffs/snapfreeze.dm @@ -15,10 +15,7 @@ charging_slowdown = 2 chargedloop = /datum/looping_sound/invokegen associated_skill = /datum/skill/magic/arcane - attunements = list( - /datum/attunement/blood = 0.3, - /datum/attunement/ice = 0.4, - ) + var/delay = 3 var/damage = 50 // less then fireball, more then lighting bolt var/area_of_effect = 2 diff --git a/code/modules/spells/spell_types/wizard/learn_spell.dm b/code/modules/spells/spell_types/wizard/learn_spell.dm index c4abe278e89..2d698bca7d1 100644 --- a/code/modules/spells/spell_types/wizard/learn_spell.dm +++ b/code/modules/spells/spell_types/wizard/learn_spell.dm @@ -10,56 +10,61 @@ /obj/effect/proc_holder/spell/self/learnspell/cast(list/targets, mob/user = usr) . = ..() //list of spells you can learn, it may be good to move this somewhere else eventually + //spells ported from azure are in modular_azure //TODO: make GLOB list of spells, give them a true/false tag for learning, run through that list to generate choices var/list/choices = list() var/list/obj/effect/proc_holder/spell/spell_choices = list( - /obj/effect/proc_holder/spell/invoked/projectile/fireball,// 4 cost - /obj/effect/proc_holder/spell/invoked/projectile/lightningbolt,// 3 cost + //Offensive Spells: Organized by Elemental type (Please follow this!) /obj/effect/proc_holder/spell/invoked/projectile/spitfire, - /obj/effect/proc_holder/spell/invoked/forcewall_weak, - /obj/effect/proc_holder/spell/invoked/slowdown_spell_aoe, - /obj/effect/proc_holder/spell/invoked/haste, + /obj/effect/proc_holder/spell/invoked/projectile/fireball,// 5 cost + /obj/effect/proc_holder/spell/targeted/lightninglure, + /obj/effect/proc_holder/spell/invoked/projectile/lightningbolt,// 6 cost + /obj/effect/proc_holder/spell/invoked/sundering_lightning, + /obj/effect/proc_holder/spell/invoked/projectile/arcanebolt, + /obj/effect/proc_holder/spell/invoked/blade_burst, + /obj/effect/proc_holder/spell/invoked/arcyne_storm, + /obj/effect/proc_holder/spell/invoked/projectile/frostbolt, + /obj/effect/proc_holder/spell/invoked/frostbite5e, + /obj/effect/proc_holder/spell/invoked/snap_freeze, + /obj/effect/proc_holder/spell/invoked/projectile/acidsplash5e, + /obj/effect/proc_holder/spell/invoked/greenflameblade5e, + /obj/effect/proc_holder/spell/invoked/boomingblade5e, + /obj/effect/proc_holder/spell/invoked/chilltouch5e, + /obj/effect/proc_holder/spell/invoked/decompose5e, /obj/effect/proc_holder/spell/invoked/findfamiliar, - /obj/effect/proc_holder/spell/self/primalsavagery5e, - /obj/effect/proc_holder/spell/invoked/projectile/bloodlightning, -// /obj/effect/proc_holder/spell/invoked/push_spell, -// /obj/effect/proc_holder/spell/targeted/ethereal_jaunt, -// /obj/effect/proc_holder/spell/aoe_turf/knock, + //Status Spells /obj/effect/proc_holder/spell/targeted/touch/darkvision,// 2 cost - /obj/effect/proc_holder/spell/self/message, - /obj/effect/proc_holder/spell/invoked/blade_burst, - /obj/effect/proc_holder/spell/invoked/projectile/fetch, - /obj/effect/proc_holder/spell/invoked/projectile/arcanebolt, /obj/effect/proc_holder/spell/targeted/touch/nondetection, // 1 cost - /obj/effect/proc_holder/spell/targeted/touch/prestidigitation, + /obj/effect/proc_holder/spell/self/bladeward5e, + /obj/effect/proc_holder/spell/invoked/longstrider, + /obj/effect/proc_holder/spell/invoked/guidance, /obj/effect/proc_holder/spell/invoked/featherfall, - /obj/effect/proc_holder/spell/invoked/projectile/acidsplash5e, //spells ported from azure in modular_azure - /obj/effect/proc_holder/spell/invoked/snap_freeze, - /obj/effect/proc_holder/spell/invoked/projectile/frostbolt, + /obj/effect/proc_holder/spell/invoked/slowdown_spell_aoe, /obj/effect/proc_holder/spell/invoked/gravity, + /obj/effect/proc_holder/spell/invoked/haste, + //Utility spells + /obj/effect/proc_holder/spell/targeted/touch/prestidigitation, /obj/effect/proc_holder/spell/invoked/projectile/repel, - /obj/effect/proc_holder/spell/invoked/longstrider, - /obj/effect/proc_holder/spell/invoked/guidance, - /obj/effect/proc_holder/spell/self/arcyne_eye, - /obj/effect/proc_holder/spell/invoked/meteor_storm, - /obj/effect/proc_holder/spell/invoked/boomingblade5e, - /obj/effect/proc_holder/spell/invoked/arcyne_storm, - /obj/effect/proc_holder/spell/invoked/frostbite5e, - /obj/effect/proc_holder/spell/invoked/sundering_lightning, + /obj/effect/proc_holder/spell/invoked/push_spell, + /obj/effect/proc_holder/spell/invoked/projectile/fetch, + /obj/effect/proc_holder/spell/invoked/forcewall_weak, /obj/effect/proc_holder/spell/invoked/poisonspray5e, - /obj/effect/proc_holder/spell/invoked/greenflameblade5e, - /obj/effect/proc_holder/spell/invoked/chilltouch5e, - /obj/effect/proc_holder/spell/invoked/infestation5e, - /obj/effect/proc_holder/spell/invoked/magicstone5e, - /obj/effect/proc_holder/spell/invoked/decompose5e, + /obj/effect/proc_holder/spell/self/arcyne_eye, + /obj/effect/proc_holder/spell/self/message, /obj/effect/proc_holder/spell/targeted/encodethoughts5e, - /obj/effect/proc_holder/spell/invoked/mindsliver5e, - /obj/effect/proc_holder/spell/invoked/guidance, /obj/effect/proc_holder/spell/self/light5e, - /obj/effect/proc_holder/spell/self/bladeward5e, /obj/effect/proc_holder/spell/aoe_turf/conjure/createbonfire5e, - /obj/effect/proc_holder/spell/invoked/projectile/rayoffrost5e, - /obj/effect/proc_holder/spell/invoked/projectile/eldritchblast5e, +// Unused or unlearnable spells + // /obj/effect/proc_holder/spell/targeted/ethereal_jaunt, //locked to CM + // /obj/effect/proc_holder/spell/aoe_turf/knock, //locked to CM + // /obj/effect/proc_holder/spell/invoked/meteor_storm, //locked to CM + // /obj/effect/proc_holder/spell/invoked/projectile/bloodlightning, //antag only + // /obj/effect/proc_holder/spell/invoked/projectile/rayoffrost5e, + // /obj/effect/proc_holder/spell/invoked/projectile/eldritchblast5e, + // /obj/effect/proc_holder/spell/invoked/mindsliver5e, + // /obj/effect/proc_holder/spell/self/primalsavagery5e, //more of a druid spell. Moving to them. + // /obj/effect/proc_holder/spell/invoked/infestation5e, //ditto + // /obj/effect/proc_holder/spell/invoked/magicstone5e, //has anyone even fucking used this? ) for(var/i = 1, i <= spell_choices.len, i++) diff --git a/code/modules/spells/spell_types/wizard/summoning/find_familiar.dm b/code/modules/spells/spell_types/wizard/summoning/find_familiar.dm index dc86273617a..72fd51aa911 100644 --- a/code/modules/spells/spell_types/wizard/summoning/find_familiar.dm +++ b/code/modules/spells/spell_types/wizard/summoning/find_familiar.dm @@ -16,9 +16,6 @@ chargedloop = /datum/looping_sound/invokegen associated_skill = /datum/skill/magic/arcane cost = 3 - attunements = list( - /datum/attunement/arcyne = 0.4, - ) /obj/effect/proc_holder/spell/invoked/findfamiliar/cast(list/targets,mob/user = usr) . = ..() diff --git a/code/modules/spells/spell_types/wizard/utility/chill_touch.dm b/code/modules/spells/spell_types/wizard/utility/chill_touch.dm index f9da14a4ae7..cb96881fab2 100644 --- a/code/modules/spells/spell_types/wizard/utility/chill_touch.dm +++ b/code/modules/spells/spell_types/wizard/utility/chill_touch.dm @@ -13,7 +13,7 @@ sound = 'sound/magic/whiteflame.ogg' chargedloop = /datum/looping_sound/invokegen associated_skill = /datum/skill/magic/arcane //can be arcane, druidic, blood, holy - cost = 1 + cost = 4 miracle = FALSE @@ -21,11 +21,6 @@ invocation = "Be torn apart!" invocation_type = "shout" - attunements = list( - /datum/attunement/ice = 0.3, - ) - - // Notes: sorcerer, warlock, wizard /obj/effect/proc_holder/spell/invoked/chilltouch5e/cast(list/targets, mob/living/user) if(isliving(targets[1])) diff --git a/code/modules/spells/spell_types/wizard/utility/create_bonfire.dm b/code/modules/spells/spell_types/wizard/utility/create_bonfire.dm index e8785547e43..8848d0b4e09 100644 --- a/code/modules/spells/spell_types/wizard/utility/create_bonfire.dm +++ b/code/modules/spells/spell_types/wizard/utility/create_bonfire.dm @@ -32,9 +32,6 @@ summon_amt = 1 action_icon_state = "the_traps" - attunements = list( - /datum/attunement/fire = 0.3, - ) /obj/machinery/light/fueled/campfire/createbonfire5e name = "magical bonfire" diff --git a/code/modules/spells/spell_types/wizard/utility/enchant_stone.dm b/code/modules/spells/spell_types/wizard/utility/enchant_stone.dm index 8e4015d86b8..c42fd2d892e 100644 --- a/code/modules/spells/spell_types/wizard/utility/enchant_stone.dm +++ b/code/modules/spells/spell_types/wizard/utility/enchant_stone.dm @@ -17,10 +17,6 @@ miracle = FALSE - attunements = list( - /datum/attunement/earth = 0.3, - ) - invocation = "Stay sharp and strong." invocation_type = "whisper" //can be none, whisper, emote and shout var/magic_color = "#c8daff" diff --git a/code/modules/spells/spell_types/wizard/utility/encode_thoughts.dm b/code/modules/spells/spell_types/wizard/utility/encode_thoughts.dm index c4d48e6d687..9ef5d11912c 100644 --- a/code/modules/spells/spell_types/wizard/utility/encode_thoughts.dm +++ b/code/modules/spells/spell_types/wizard/utility/encode_thoughts.dm @@ -21,12 +21,9 @@ miracle = FALSE invocation = "" - invocation_type = "shout" //can be none, whisper, emote and shout + invocation_type = "none" //can be none, whisper, emote and shout include_user = FALSE - attunements = list( - /datum/attunement/dark = 0.5, - ) /obj/effect/proc_holder/spell/targeted/encodethoughts5e/cast(list/targets, mob/user) . = ..() diff --git a/code/modules/spells/spell_types/wizard/utility/ensnare.dm b/code/modules/spells/spell_types/wizard/utility/ensnare.dm index ff044be6a7f..1879d0a7cd3 100644 --- a/code/modules/spells/spell_types/wizard/utility/ensnare.dm +++ b/code/modules/spells/spell_types/wizard/utility/ensnare.dm @@ -15,12 +15,9 @@ associated_skill = /datum/skill/magic/arcane range = 6 overlay_state = "ensnare" - attunements = list( - /datum/attunement/time = 0.3, - /datum/attunement/arcyne = 0.4, - ) + var/area_of_effect = 1 - var/duration = 4 SECONDS + var/duration = 8 SECONDS var/delay = 0.8 SECONDS /obj/effect/proc_holder/spell/invoked/slowdown_spell_aoe/cast(list/targets, mob/user = usr) diff --git a/code/modules/spells/spell_types/wizard/utility/fetch.dm b/code/modules/spells/spell_types/wizard/utility/fetch.dm index 865b2bfbc69..bd929becfe2 100644 --- a/code/modules/spells/spell_types/wizard/utility/fetch.dm +++ b/code/modules/spells/spell_types/wizard/utility/fetch.dm @@ -15,9 +15,6 @@ chargedloop = /datum/looping_sound/invokegen associated_skill = /datum/skill/magic/arcane cost = 2 - attunements = list( - /datum/attunement/aeromancy = 0.3, - ) /obj/projectile/magic/fetch/on_hit(target) . = ..() diff --git a/code/modules/spells/spell_types/wizard/utility/forcewall.dm b/code/modules/spells/spell_types/wizard/utility/forcewall.dm index 584f098b4cf..04a811009c0 100644 --- a/code/modules/spells/spell_types/wizard/utility/forcewall.dm +++ b/code/modules/spells/spell_types/wizard/utility/forcewall.dm @@ -19,9 +19,6 @@ associated_skill = /datum/skill/magic/arcane var/wall_type = /obj/structure/forcefield_weak/caster cost = 3 - attunements = list( - /datum/attunement/illusion = 0.3, - ) //adapted from forcefields.dm, this needs to be destructible /obj/structure/forcefield_weak diff --git a/code/modules/spells/spell_types/wizard/utility/light.dm b/code/modules/spells/spell_types/wizard/utility/light.dm index 5fba1325cba..a7e3dae5b2b 100644 --- a/code/modules/spells/spell_types/wizard/utility/light.dm +++ b/code/modules/spells/spell_types/wizard/utility/light.dm @@ -17,16 +17,11 @@ associated_skill = /datum/skill/magic/arcane //can be arcane, druidic, blood, holy cost = 1 - miracle = FALSE invocation = "Let there be light." invocation_type = "whisper" //can be none, whisper, emote and shout - attunements = list( - /datum/attunement/light = 0.3, - ) - var/obj/item/item var/item_type = /obj/item/flashlight/flare/light5e var/delete_old = TRUE //TRUE to delete the last summoned object if it's still there, FALSE for infinite item stream weeeee diff --git a/code/modules/spells/spell_types/wizard/utility/mending.dm b/code/modules/spells/spell_types/wizard/utility/mending.dm index c62c92bf37a..317709375e2 100644 --- a/code/modules/spells/spell_types/wizard/utility/mending.dm +++ b/code/modules/spells/spell_types/wizard/utility/mending.dm @@ -20,9 +20,7 @@ miracle = FALSE invocation = "" - attunements = list( - /datum/attunement/life = 1.2 - ) + invocation_type = "shout" //can be none, whisper, emote and shout /obj/effect/proc_holder/spell/invoked/mending/cast(list/targets, mob/living/user) diff --git a/code/modules/spells/spell_types/wizard/utility/mimicry.dm b/code/modules/spells/spell_types/wizard/utility/mimicry.dm index 4a516b5ce31..9fd1a846d84 100644 --- a/code/modules/spells/spell_types/wizard/utility/mimicry.dm +++ b/code/modules/spells/spell_types/wizard/utility/mimicry.dm @@ -11,10 +11,7 @@ movement_interrupt = FALSE sound = 'sound/misc/area.ogg' associated_skill = /datum/skill/magic/arcane - attunements = list( - /datum/attunement/dark = 0.4, - /datum/attunement/polymorph = 1.2, - ) + var/datum/dna/old_dna var/old_hair var/old_hair_color diff --git a/code/modules/spells/spell_types/wizard/utility/poison_spray.dm b/code/modules/spells/spell_types/wizard/utility/poison_spray.dm index 63327fb317e..3cd3a37c5f8 100644 --- a/code/modules/spells/spell_types/wizard/utility/poison_spray.dm +++ b/code/modules/spells/spell_types/wizard/utility/poison_spray.dm @@ -1,6 +1,6 @@ /obj/effect/proc_holder/spell/invoked/poisonspray5e - name = "Poison Cloud" //renamed to better reflect wtf this does -- vide - desc = "Hold a container in your hand, it's contents turn into a 3-radius smoke" + name = "Aresolize" //renamed to better reflect wtf this does -- vide + desc = "Hold a container in your hand, it's contents turn intoing a cloud covering a three by three square." overlay_state = "null" releasedrain = 50 chargetime = 3 @@ -18,14 +18,9 @@ associated_skill = /datum/skill/magic/arcane //can be arcane, druidic, blood, holy cost = 1 - attunements = list( - /datum/attunement/blood = 0.3, - /datum/attunement/death = 0.3, - ) - miracle = FALSE - invocation = "Poison Cloud!" + invocation = "Evaporate!" invocation_type = "shout" //can be none, whisper, emote and shout /obj/effect/proc_holder/spell/invoked/poisonspray5e/cast(list/targets, mob/living/user) diff --git a/code/modules/spells/spell_types/wizard/utility/prestidigitation.dm b/code/modules/spells/spell_types/wizard/utility/prestidigitation.dm index 661c6631f84..6edbeb9105a 100644 --- a/code/modules/spells/spell_types/wizard/utility/prestidigitation.dm +++ b/code/modules/spells/spell_types/wizard/utility/prestidigitation.dm @@ -16,9 +16,6 @@ associated_skill = /datum/skill/magic/arcane hand_path = /obj/item/melee/touch_attack/prestidigitation cost = 1 - attunements = list( - /datum/attunement/arcyne = 0.2, - ) /obj/item/melee/touch_attack/prestidigitation name = "\improper prestidigitating touch" diff --git a/code/modules/spells/spell_types/wizard/utility/repel.dm b/code/modules/spells/spell_types/wizard/utility/repel.dm index 8ceb2693914..f57cc7bad0a 100644 --- a/code/modules/spells/spell_types/wizard/utility/repel.dm +++ b/code/modules/spells/spell_types/wizard/utility/repel.dm @@ -16,9 +16,6 @@ chargedloop = /datum/looping_sound/invokegen associated_skill = /datum/skill/magic/arcane cost = 2 - attunements = list( - /datum/attunement/aeromancy = 0.6, - ) /obj/effect/proc_holder/spell/invoked/projectile/repel/fire_projectile(mob/living/user, atom/target) if(iscarbon(user)) diff --git a/code/modules/spells/spell_types/wizard/utility/repulse.dm b/code/modules/spells/spell_types/wizard/utility/repulse.dm index 844fd5a8242..36df303d13e 100644 --- a/code/modules/spells/spell_types/wizard/utility/repulse.dm +++ b/code/modules/spells/spell_types/wizard/utility/repulse.dm @@ -65,9 +65,7 @@ charging_slowdown = 2 chargedloop = /datum/looping_sound/invokegen associated_skill = /datum/skill/magic/arcane - attunements = list( - /datum/attunement/aeromancy = 0.4, - ) + var/stun_amt = 5 var/maxthrow = 3 var/sparkle_path = /obj/effect/temp_visual/gravpush diff --git a/code/modules/spells/spell_types/wizard/utility/shadow_step.dm b/code/modules/spells/spell_types/wizard/utility/shadow_step.dm index 73f261f97f2..c73eb0203b3 100644 --- a/code/modules/spells/spell_types/wizard/utility/shadow_step.dm +++ b/code/modules/spells/spell_types/wizard/utility/shadow_step.dm @@ -11,9 +11,7 @@ movement_interrupt = FALSE sound = 'sound/misc/area.ogg' associated_skill = /datum/skill/misc/sneaking - attunements = list( - /datum/attunement/dark = 0.4 - ) + cost = 1 /obj/effect/proc_holder/spell/invoked/shadowstep/cast(list/targets, mob/living/user) diff --git a/vanderlin.dme b/vanderlin.dme index 117bd5a85f8..58bd09b0f48 100644 --- a/vanderlin.dme +++ b/vanderlin.dme @@ -1731,7 +1731,6 @@ #include "code\modules\crafting\artificer\_base.dm" #include "code\modules\crafting\artificer\misc.dm" #include "code\modules\crafting\book_entries\_base.dm" -#include "code\modules\crafting\book_entries\attunement_matrix.dm" #include "code\modules\crafting\book_entries\container_craft.dm" #include "code\modules\crafting\book_entries\grimoire.dm" #include "code\modules\crafting\book_entries\mana_sources.dm"