diff --git a/code/defines/procs/helpers.dm b/code/defines/procs/helpers.dm index 61dc65dbc3b..bae8943f02d 100644 --- a/code/defines/procs/helpers.dm +++ b/code/defines/procs/helpers.dm @@ -868,6 +868,8 @@ Turf and target are seperate in case you want to teleport some distance from a t temp_list.Add(M) for(var/mob/living/carbon/human/M in world) temp_list.Add(M) + for(var/mob/living/parasite/P in M.parasites) + temp_list.Add(P) for(var/mob/living/carbon/brain/M in world) temp_list.Add(M) for(var/mob/living/carbon/alien/M in world) diff --git a/code/game/gamemodes/meme/meme.dm b/code/game/gamemodes/meme/meme.dm index 745c490bb57..988cc90d664 100644 --- a/code/game/gamemodes/meme/meme.dm +++ b/code/game/gamemodes/meme/meme.dm @@ -96,6 +96,8 @@ o.owner = meme meme.objectives += o + greet_meme() + return /datum/game_mode/proc/greet_meme(var/datum/mind/meme, var/you_are=1) diff --git a/code/modules/mob/living/carbon/human/whisper.dm b/code/modules/mob/living/carbon/human/whisper.dm index 2d5f675b973..a17d81795ef 100644 --- a/code/modules/mob/living/carbon/human/whisper.dm +++ b/code/modules/mob/living/carbon/human/whisper.dm @@ -62,11 +62,11 @@ if (O) O.hear_talk(src, message) - var/list/listening = hearers(message_range, src) + var/list/listening = get_mobs_in_view(message_range, src) // listening -= src // listening += src // WAT. - var/list/eavesdropping = hearers(2, src) + var/list/eavesdropping = get_mobs_in_view(message_range, src) eavesdropping -= src eavesdropping -= listening var/list/watching = hearers(5, src) diff --git a/code/modules/mob/living/parasite/meme.dm b/code/modules/mob/living/parasite/meme.dm index 53bf995f0db..f0b2ae61a4d 100644 --- a/code/modules/mob/living/parasite/meme.dm +++ b/code/modules/mob/living/parasite/meme.dm @@ -35,6 +35,7 @@ mob/living/parasite/proc/enter_host(mob/living/carbon/host) return 0 src.host = host + src.loc = host host.parasites.Add(src) if(client) client.eye = host @@ -44,6 +45,7 @@ mob/living/parasite/proc/enter_host(mob/living/carbon/host) mob/living/parasite/proc/exit_host() src.host.parasites.Remove(src) src.host = null + src.loc = null return 1 @@ -68,8 +70,8 @@ mob/living/parasite/meme/Life() if(!host) return // recover meme points slowly - var/gain = 1 - if(dormant) gain = 3 // dormant recovers points faster + var/gain = 2 + if(dormant) gain = 6 // dormant recovers points faster meme_points = min(meme_points + gain, MAXIMUM_MEME_POINTS) @@ -435,17 +437,17 @@ mob/living/parasite/meme/verb/Possession() host << "\red Everything goes black.." spawn - var/mob/dummy = new - var/client/host_key = host.key - var/client/meme_key = src.key + var/mob/living/dummy = new + var/datum/mind/host_mind = host.mind + var/datum/mind/meme_mind = src.mind - dummy.key = host_key - host.key = meme_key + host_mind.transfer_to(dummy) + meme_mind.transfer_to(host) sleep(600) - src.key = meme_key - host.key = host_key + meme_mind.transfer_to(src) + host_mind.transfer_to(host) src << "\red You lose control.." del dummy @@ -468,6 +470,11 @@ mob/living/parasite/meme/verb/Dormant() usr << "\red You have regained all points and exited dormant mode!" +mob/living/parasite/meme/verb/Show_Points() + set category = "Meme" + + usr << "Meme Points: [src.meme_points]/[MAXIMUM_MEME_POINTS]" + // Game mode helpers, used for theft objectives // -------------------------------------------- mob/living/parasite/check_contents_for(t)