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