diff --git a/baystation12.dme b/baystation12.dme
index 2c937cff3be..24a724f8d35 100644
--- a/baystation12.dme
+++ b/baystation12.dme
@@ -40,6 +40,7 @@
#define FILE_DIR "code/game/gamemodes/epidemic"
#define FILE_DIR "code/game/gamemodes/extended"
#define FILE_DIR "code/game/gamemodes/malfunction"
+#define FILE_DIR "code/game/gamemodes/meme"
#define FILE_DIR "code/game/gamemodes/meteor"
#define FILE_DIR "code/game/gamemodes/nuclear"
#define FILE_DIR "code/game/gamemodes/revolution"
@@ -440,6 +441,7 @@
#include "code\game\gamemodes\extended\extended.dm"
#include "code\game\gamemodes\malfunction\Malf_Modules.dm"
#include "code\game\gamemodes\malfunction\malfunction.dm"
+#include "code\game\gamemodes\meme\meme.dm"
#include "code\game\gamemodes\meteor\meteor.dm"
#include "code\game\gamemodes\meteor\meteors.dm"
#include "code\game\gamemodes\nuclear\nuclear.dm"
diff --git a/code/game/gamemodes/meme/meme.dm b/code/game/gamemodes/meme/meme.dm
index 39ac61d7aaa..745c490bb57 100644
--- a/code/game/gamemodes/meme/meme.dm
+++ b/code/game/gamemodes/meme/meme.dm
@@ -1,5 +1,7 @@
+/datum/game_mode/var/list/memes = list()
+
/datum/game_mode/meme
- name = "meme"
+ name = "Memetic Anomaly"
config_tag = "meme"
//required_players = 6
required_players = 2 // for testing
@@ -8,7 +10,6 @@
var
- list/memes = list()
var/datum/mind/first_host = null
const
@@ -53,6 +54,7 @@
modePlayer += meme
modePlayer += first_host
+ memes += meme
meme.assigned_role = "MODE" //So they aren't chosen for other jobs.
meme.special_role = "Meme"
@@ -68,7 +70,8 @@
for(var/datum/mind/meme in memes)
var/mob/living/parasite/meme/M = new
meme.transfer_to(M)
- M.enter_host(first_host)
+ M.enter_host(first_host.current)
+ forge_meme_objectives(meme, first_host)
break
// TODO: make it possible to have multiple memes with multiple hosts
@@ -79,7 +82,7 @@
return
-/datum/game_mode/proc/forge_meme_objectives(var/datum/mind/meme)
+/datum/game_mode/proc/forge_meme_objectives(var/datum/mind/meme, var/datum/mind/first_host)
// meme always needs to attune X hosts
var/datum/objective/meme_attune/attune_objective = new
attune_objective.owner = meme
@@ -122,12 +125,10 @@
/datum/game_mode/proc/auto_declare_completion_meme()
for(var/datum/mind/meme in memes)
var/memewin = 1
- var/meme_name
var/attuned = 0
if((meme.current) && istype(meme.current,/mob/living/parasite/meme))
- meme_name = "[meme.key] (The Meme)"
world << "The meme was [meme.current.key]."
- world << "The first host was [first_host.key]."
+ world << "The first host was [src:first_host.current.key]."
world << "The last host was [meme.current:host.key]."
world << "Hosts attuned: [attuned]"
@@ -143,7 +144,6 @@
count++
else
- meme_name = "[meme.key] (character destroyed)"
memewin = 0
if(memewin)