diff --git a/code/datums/spells/construct_spells.dm b/code/datums/spells/construct_spells.dm index 7c4054f35d6..afc91f922ab 100644 --- a/code/datums/spells/construct_spells.dm +++ b/code/datums/spells/construct_spells.dm @@ -61,6 +61,11 @@ summon_type = list(/obj/item/soulstone) +/obj/effect/proc_holder/spell/aoe_turf/conjure/soulstone/holy + action_icon_state = "summonsoulstone_holy" + + summon_type = list(/obj/item/soulstone/anybody/purified) + /obj/effect/proc_holder/spell/aoe_turf/conjure/pylon name = "Cult Pylon" desc = "This spell conjures a fragile crystal from Nar'Sie's realm. Makes for a convenient light source." diff --git a/code/game/gamemodes/wizard/soulstone.dm b/code/game/gamemodes/wizard/soulstone.dm index 49b04c9c07f..324ecae1c0a 100644 --- a/code/game/gamemodes/wizard/soulstone.dm +++ b/code/game/gamemodes/wizard/soulstone.dm @@ -145,7 +145,7 @@ return /obj/item/soulstone/attackby(obj/item/O, mob/user) - if(istype(O, /obj/item/storage/bible) && !iscultist(user)) + if(istype(O, /obj/item/storage/bible) && !iscultist(user) && user.mind.isholy) if(purified) return to_chat(user, "You begin to exorcise [src].") @@ -342,7 +342,12 @@ set_light(3, 5, LIGHT_COLOR_DARK_BLUE) name = "Holy [name]" real_name = "Holy [real_name]" - if(iscultist(src) && !SS.purified) // Re-grant cult actions, lost in the transfer + + // Replace regular soulstone summoning with purified soulstones + RemoveSpell(/obj/effect/proc_holder/spell/aoe_turf/conjure/soulstone) + AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/conjure/soulstone/holy) + + else if(iscultist(src)) // Re-grant cult actions, lost in the transfer var/datum/action/innate/cult/comm/CC = new var/datum/action/innate/cult/check_progress/D = new CC.Grant(src) diff --git a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm index 96d60cdca2b..adb20e65203 100644 --- a/code/modules/mob/living/simple_animal/constructs.dm +++ b/code/modules/mob/living/simple_animal/constructs.dm @@ -1,7 +1,6 @@ /mob/living/simple_animal/hostile/construct name = "Construct" real_name = "Construct" - desc = "" speak_emote = list("hisses") emote_hear = list("wails","screeches") response_help = "thinks better of touching" @@ -21,25 +20,25 @@ pressure_resistance = 100 universal_speak = 1 AIStatus = AI_OFF //normal constructs don't have AI - var/const_type = "shade" - var/list/construct_spells = list() - var/playstyle_string = "You are a generic construct! Your job is to not exist, and you should probably adminhelp this." loot = list(/obj/item/reagent_containers/food/snacks/ectoplasm) del_on_death = 1 deathmessage = "collapses in a shattered heap." + var/construct_type = "shade" + var/list/construct_spells = list() + var/playstyle_string = "You are a generic construct! Your job is to not exist, and you should probably adminhelp this." /mob/living/simple_animal/hostile/construct/New() . = ..() if(!SSticker.mode)//work around for maps with runes and cultdat is not loaded all the way - name = "[const_type] ([rand(1, 1000)])" - real_name = const_type - icon_living = const_type - icon_state = const_type + name = "[construct_type] ([rand(1, 1000)])" + real_name = construct_type + icon_living = construct_type + icon_state = construct_type else - name = "[SSticker.cultdat.get_name(const_type)] ([rand(1, 1000)])" - real_name = SSticker.cultdat.get_name(const_type) - icon_living = SSticker.cultdat.get_icon(const_type) - icon_state = SSticker.cultdat.get_icon(const_type) + name = "[SSticker.cultdat.get_name(construct_type)] ([rand(1, 1000)])" + real_name = SSticker.cultdat.get_name(construct_type) + icon_living = SSticker.cultdat.get_icon(construct_type) + icon_state = SSticker.cultdat.get_icon(construct_type) for(var/spell in construct_spells) AddSpell(new spell(null)) @@ -113,7 +112,7 @@ environment_smash = 2 attack_sound = 'sound/weapons/punch3.ogg' status_flags = 0 - const_type = "juggernaut" + construct_type = "juggernaut" mob_size = MOB_SIZE_LARGE construct_spells = list(/obj/effect/proc_holder/spell/targeted/night_vision, /obj/effect/proc_holder/spell/aoe_turf/conjure/lesserforcewall) force_threshold = 11 @@ -158,7 +157,7 @@ melee_damage_upper = 25 attacktext = "slashes" attack_sound = 'sound/weapons/bladeslice.ogg' - const_type = "wraith" + construct_type = "wraith" construct_spells = list(/obj/effect/proc_holder/spell/targeted/night_vision, /obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift) retreat_distance = 2 //AI wraiths will move in and out of combat playstyle_string = "You are a Wraith. Though relatively fragile, you are fast, deadly, and even able to phase through walls." @@ -189,14 +188,14 @@ retreat_distance = 10 minimum_distance = 10 //AI artificers will flee like fuck attack_sound = 'sound/weapons/punch2.ogg' - const_type = "builder" + construct_type = "builder" construct_spells = list(/obj/effect/proc_holder/spell/targeted/night_vision, + /obj/effect/proc_holder/spell/targeted/projectile/magic_missile/lesser, /obj/effect/proc_holder/spell/aoe_turf/conjure/construct/lesser, /obj/effect/proc_holder/spell/aoe_turf/conjure/wall, /obj/effect/proc_holder/spell/aoe_turf/conjure/floor, /obj/effect/proc_holder/spell/aoe_turf/conjure/pylon, - /obj/effect/proc_holder/spell/aoe_turf/conjure/soulstone, - /obj/effect/proc_holder/spell/targeted/projectile/magic_missile/lesser) + /obj/effect/proc_holder/spell/aoe_turf/conjure/soulstone) playstyle_string = "You are an Artificer. You are incredibly weak and fragile, but you are able to construct fortifications, \ use magic missile, repair allied constructs (by clicking on them), \ @@ -269,7 +268,7 @@ environment_smash = 2 attack_sound = 'sound/weapons/punch4.ogg' force_threshold = 11 - const_type = "behemoth" + construct_type = "behemoth" var/energy = 0 var/max_energy = 1000 @@ -298,7 +297,7 @@ attacktext = "prods" environment_smash = ENVIRONMENT_SMASH_RWALLS attack_sound = 'sound/weapons/tap.ogg' - const_type = "harvester" + construct_type = "harvester" construct_spells = list(/obj/effect/proc_holder/spell/targeted/night_vision, /obj/effect/proc_holder/spell/aoe_turf/conjure/wall, /obj/effect/proc_holder/spell/aoe_turf/conjure/floor, diff --git a/icons/mob/actions/actions.dmi b/icons/mob/actions/actions.dmi index 643bea3d835..a8f226c2f01 100644 Binary files a/icons/mob/actions/actions.dmi and b/icons/mob/actions/actions.dmi differ