From 7ef528dcdcc4cae3f18447e027506f752e8693e1 Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Thu, 24 Dec 2015 11:28:40 -0500 Subject: [PATCH] Medibeam and Guardian Fixes --- .../living/simple_animal/guardian/guardian.dm | 13 +++++++++-- code/modules/projectiles/medbeam.dm | 21 +++++------------- icons/effects/beam.dmi | Bin 5106 -> 6547 bytes 3 files changed, 16 insertions(+), 18 deletions(-) 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 dd4f405e1cd2bd10c15fb1ae8a0fdba1932c3db5..657a2d4341899a5ac566d86b7b1a40a7c4cf010f 100644 GIT binary patch literal 6547 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 BN9X_m literal 5106 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