diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm
index dfabe23025..7e6f488a47 100644
--- a/code/_onclick/hud/alert.dm
+++ b/code/_onclick/hud/alert.dm
@@ -271,8 +271,7 @@ or shoot a gun to move around via Newton's 3rd Law of Motion."
/obj/screen/alert/bloodsense/Initialize()
. = ..()
- if(!narnar)
- narnar = new('icons/mob/screen_alert.dmi', "mini_nar")
+ narnar = new('icons/mob/screen_alert.dmi', "mini_nar")
START_PROCESSING(SSprocessing, src)
/obj/screen/alert/bloodsense/Destroy()
diff --git a/code/game/gamemodes/wizard/soulstone.dm b/code/game/gamemodes/wizard/soulstone.dm
index c72152668d..4c25d221ff 100644
--- a/code/game/gamemodes/wizard/soulstone.dm
+++ b/code/game/gamemodes/wizard/soulstone.dm
@@ -3,6 +3,7 @@
icon = 'icons/obj/wizard.dmi'
icon_state = "soulstone"
item_state = "electronic"
+ layer = HIGH_OBJ_LAYER
desc = "A fragment of the legendary treasure known simply as the 'Soul Stone'. The shard still flickers with a fraction of the full artefact's power."
w_class = WEIGHT_CLASS_TINY
slot_flags = SLOT_BELT
@@ -213,12 +214,12 @@
var/obj/screen/alert/bloodsense/BS
if(newstruct.mind && ((stoner && iscultist(stoner)) || cultoverride) && SSticker && SSticker.mode)
SSticker.mode.add_cultist(newstruct.mind, 0)
- BS = newstruct.alerts.Find("bloodsense")
if(iscultist(stoner) || cultoverride)
to_chat(newstruct, "You are still bound to serve the cult[stoner ? " and [stoner]":""], follow their orders and help them complete their goals at all costs.")
else if(stoner)
to_chat(newstruct, "You are still bound to serve your creator, [stoner], follow their orders and help them complete their goals at all costs.")
- BS = newstruct.throw_alert("bloodsense", /obj/screen/alert/bloodsense)
+ newstruct.clear_alert("bloodsense")
+ BS = newstruct.throw_alert("bloodsense", /obj/screen/alert/bloodsense)
if(BS)
BS.Cviewer = newstruct
newstruct.cancel_camera()
diff --git a/code/game/objects/effects/forcefields.dm b/code/game/objects/effects/forcefields.dm
index 045673b019..7ade1b707f 100644
--- a/code/game/objects/effects/forcefields.dm
+++ b/code/game/objects/effects/forcefields.dm
@@ -10,6 +10,7 @@
/obj/effect/forcefield/cult
desc = "An unholy shield that blocks all attacks."
name = "glowing wall"
+ icon = 'icons/effects/cult_effects.dmi'
icon_state = "cultshield"
///////////Mimewalls///////////
diff --git a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm
index 6fe1c5db53..afcf1d4c33 100644
--- a/code/modules/mob/living/simple_animal/constructs.dm
+++ b/code/modules/mob/living/simple_animal/constructs.dm
@@ -386,7 +386,6 @@
background_icon_state = "bg_demon"
buttontooltipstyle = "cult"
button_icon_state = "cult_mark"
- var/tracking = FALSE
var/mob/living/simple_animal/hostile/construct/harvester/the_construct
/datum/action/innate/seek_prey/Grant(var/mob/living/C)
@@ -396,12 +395,10 @@
/datum/action/innate/seek_prey/Activate()
if(GLOB.cult_narsie == null)
return
- if(tracking)
+ if(the_construct.seeking)
desc = "None can hide from Nar'Sie, activate to track a survivor attempting to flee the red harvest!"
button_icon_state = "cult_mark"
- tracking = FALSE
the_construct.seeking = FALSE
- the_construct.master = GLOB.cult_narsie
to_chat(the_construct, "You are now tracking Nar'Sie, return to reap the harvest!")
return
else
@@ -413,7 +410,6 @@
return
desc = "Activate to track Nar'Sie!"
button_icon_state = "sintouch"
- tracking = TRUE
the_construct.seeking = TRUE
diff --git a/code/modules/spells/spell.dm b/code/modules/spells/spell.dm
index d47a5b268c..f022e0338f 100644
--- a/code/modules/spells/spell.dm
+++ b/code/modules/spells/spell.dm
@@ -203,7 +203,8 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th
charge_counter-- //returns the charge if the targets selecting fails
if("holdervar")
adjust_var(user, holder_var_type, holder_var_amount)
-
+ if(action)
+ action.UpdateButtonIcon()
return 1
/obj/effect/proc_holder/spell/proc/invocation(mob/user = usr) //spelling the spell out and setting it on recharge/reducing charges amount
@@ -249,16 +250,13 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th
return TRUE
/obj/effect/proc_holder/spell/proc/start_recharge()
- if(action)
- action.UpdateButtonIcon()
recharging = TRUE
- if(action)
- action.UpdateButtonIcon()
/obj/effect/proc_holder/spell/process()
if(recharging && charge_type == "recharge" && (charge_counter < charge_max))
charge_counter += 2 //processes 5 times per second instead of 10.
if(charge_counter >= charge_max)
+ action.UpdateButtonIcon()
charge_counter = charge_max
recharging = FALSE
@@ -276,6 +274,8 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th
else
cast(targets,user=user)
after_cast(targets)
+ if(action)
+ action.UpdateButtonIcon()
/obj/effect/proc_holder/spell/proc/before_cast(list/targets)
if(overlay)
@@ -332,6 +332,8 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th
charge_counter++
if("holdervar")
adjust_var(user, holder_var_type, -holder_var_amount)
+ if(action)
+ action.UpdateButtonIcon()
/obj/effect/proc_holder/spell/proc/adjust_var(mob/living/target = usr, type, amount) //handles the adjustment of the var when the spell is used. has some hardcoded types
if (!istype(target))
diff --git a/html/changelogs/AutoChangeLog-pr-1110.yml b/html/changelogs/AutoChangeLog-pr-1110.yml
new file mode 100644
index 0000000000..ba60502d77
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-1110.yml
@@ -0,0 +1,8 @@
+author: "Robustin"
+delete-after: True
+changes:
+ - rscadd: "Added a sexy new icon for the harvester's AOE conversion spell"
+ - bugfix: "Fixed construct's forcewall being invisible"
+ - bugfix: "Fixed cult constructs \"Locate Master\" and \"Locate Prey\" not functioning"
+ - bugfix: "Fixed spell action buttons not showing their actual availability status"
+ - tweak: "Changed the duration of a few frames for the new Cult ending"
diff --git a/icons/effects/station_explosion.dmi b/icons/effects/station_explosion.dmi
index bddc66e137..385818b011 100644
Binary files a/icons/effects/station_explosion.dmi and b/icons/effects/station_explosion.dmi differ
diff --git a/icons/mob/actions.dmi b/icons/mob/actions.dmi
index 7f6f85b004..c8fc98d4f5 100644
Binary files a/icons/mob/actions.dmi and b/icons/mob/actions.dmi differ