diff --git a/code/modules/mob/living/simple_animal/guardian/guardian.dm b/code/modules/mob/living/simple_animal/guardian/guardian.dm
index 3eb964db6cf..fefd94092b0 100644
--- a/code/modules/mob/living/simple_animal/guardian/guardian.dm
+++ b/code/modules/mob/living/simple_animal/guardian/guardian.dm
@@ -9,6 +9,7 @@
icon = 'icons/mob/mob.dmi'
icon_state = "stand"
icon_living = "stand"
+ icon_dead = "stand"
speed = 0
a_intent = I_HARM
stop_automated_movement = 1
@@ -69,6 +70,10 @@
visible_message("The [src] jumps back to its user.")
Recall()
+/mob/living/simple_animal/hostile/guardian/death()
+ ..()
+ summoner << "Your [name] died somehow!"
+ summoner.death()
/mob/living/simple_animal/hostile/guardian/adjustBruteLoss(amount) //The spirit is invincible, but passes on damage to the summoner
var/damage = amount * damage_transfer
@@ -172,6 +177,8 @@
set name = "Reset Guardian Player (One Use)"
set category = "Guardian"
set desc = "Re-rolls which ghost will control your Guardian. One use."
+
+ src.verbs -= /mob/living/proc/guardian_reset
for(var/mob/living/simple_animal/hostile/guardian/G in mob_list)
if(G.summoner == src)
var/list/mob/dead/observer/candidates = pollCandidates("Do you want to play as [G.real_name]?", "pAI", null, FALSE, 100)
@@ -181,11 +188,11 @@
G << "Your user reset you, and your body was taken over by a ghost. Looks like they weren't happy with your performance."
src << "Your guardian has been successfully reset."
message_admins("[key_name_admin(new_stand)] has taken control of ([key_name_admin(G)])")
- G.ghostize()
+ G.ghostize(0)
G.key = new_stand.key
- src.verbs -= /mob/living/proc/guardian_reset
else
src << "There were no ghosts willing to take control. Looks like you're stuck with your Guardian for now."
+ verbs += /mob/living/proc/guardian_reset
/mob/living/simple_animal/hostile/guardian/proc/ToggleLight()
@@ -677,6 +684,7 @@
G << "You are capable of manifesting or recalling to your master with verbs in the Guardian tab. You will also find a verb to communicate with them privately there."
G << "While personally invincible, you will die if [user.real_name] does, and any damage dealt to you will have a portion passed on to them as you feed upon them to sustain yourself."
G << "[G.playstyle_string]"
+ G.faction = user.faction
user.verbs += /mob/living/proc/guardian_comm
user.verbs += /mob/living/proc/guardian_recall
user.verbs += /mob/living/proc/guardian_reset
@@ -692,6 +700,7 @@
G.real_name = "[mob_name] [capitalize(colour)]"
G.icon_living = "parasite[colour]"
G.icon_state = "parasite[colour]"
+ G.icon_dead = "parasite[colour]"
G.animated_manifest = TRUE
user << "[G.tech_fluff_string]."
G.speak_emote = list("states")
diff --git a/code/modules/projectiles/medbeam.dm b/code/modules/projectiles/medbeam.dm
index e26a697f5a7..ba93e9703ba 100644
--- a/code/modules/projectiles/medbeam.dm
+++ b/code/modules/projectiles/medbeam.dm
@@ -31,36 +31,25 @@
if(active)
qdel(current_beam)
active = 0
- on_beam_relase(current_target)
+ on_beam_release(current_target)
current_target = null
/obj/item/weapon/gun/medbeam/Fire(atom/target as mob|obj|turf, mob/living/user as mob|obj, params)
add_fingerprint(user)
- if(!isliving(target))
- return
if(current_target)
LoseTarget()
+ if(!isliving(target))
+ return
current_target = target
active = 1
- current_beam = new(user,current_target,time=6000)
+ current_beam = new(user,current_target,time=6000,beam_icon_state="medbeam",btype=/obj/effect/ebeam/medical)
spawn(0)
current_beam.Start()
feedback_add_details("gun_fired","[src.type]")
-/obj/item/weapon/gun/medbeam/afterattack(obj/target, mob/user, proximity)
- if(target.loc == loc || target == user)
- return
-
- if(!current_target && isliving(target))
- current_target = target
- active = 1
- current_beam = new(user,current_target,time=6000)
- spawn(0)
- current_beam.Start()
-
/obj/item/weapon/gun/medbeam/process()
var/mob/living/carbon/human/H = loc
if(!istype(H))
@@ -120,7 +109,7 @@
E.perma_injury = 0
return
-/obj/item/weapon/gun/medbeam/proc/on_beam_relase(var/mob/living/target)
+/obj/item/weapon/gun/medbeam/proc/on_beam_release(var/mob/living/target)
return
/obj/effect/ebeam/medical
diff --git a/icons/effects/beam.dmi b/icons/effects/beam.dmi
index dd4f405e1cd..657a2d43418 100644
Binary files a/icons/effects/beam.dmi and b/icons/effects/beam.dmi differ