Merge pull request #4127 from Fox-McCloud/traitor-vamp

Traitor Vamp
This commit is contained in:
TheDZD
2016-04-09 22:17:15 -04:00
6 changed files with 65 additions and 10 deletions
+14 -5
View File
@@ -139,7 +139,7 @@
"cult",
"wizard",
"changeling",
"vampire",
"vampire", // "traitorvamp",
"nuclear",
"traitor", // "traitorchan",
"malfunction",
@@ -257,7 +257,7 @@
/** VAMPIRE ***/
text = "vampire"
if (ticker.mode.config_tag=="vampire")
if (ticker.mode.config_tag=="vampire" || ticker.mode.config_tag=="traitorvamp")
text = uppertext(text)
text = "<i><b>[text]</b></i>: "
if (src in ticker.mode.vampires)
@@ -267,13 +267,14 @@
else
text += "<a href='?src=\ref[src];vampire=vampire'>yes</a>|<b>NO</b>"
/** Enthralled ***/
text += "<br><b>enthralled</b>"
text = "<i><b>[text]</b></i>: "
if(src in ticker.mode.vampire_enthralled)
text += "<b><font color='#FF0000'>YES</font></b>|no"
else
text += "yes|<font color='#00FF00'>NO</font></b>"
/** Enthralled ***/
text += "<br><b>enthralled</b>"
sections["vampire"] = text
@@ -305,7 +306,7 @@
/** TRAITOR ***/
text = "traitor"
if (ticker.mode.config_tag=="traitor" || ticker.mode.config_tag=="traitorchan")
if (ticker.mode.config_tag=="traitor" || ticker.mode.config_tag=="traitorchan" || ticker.mode.config_tag=="traitorvamp")
text = uppertext(text)
text = "<i><b>[text]</b></i>: "
if (isloyal(H))
@@ -375,6 +376,14 @@
out += sections["changeling"]+"<br>"
sections -= "traitor"
sections -= "changeling"
if (ticker.mode.config_tag == "traitorvamp")
if (sections["traitor"])
out += sections["traitor"]+"<br>"
if (sections["vampire"])
out += sections["vampire"]+"<br>"
sections -= "traitor"
sections -= "vampire"
else
if (sections[ticker.mode.config_tag])
out += sections[ticker.mode.config_tag]+"<br>"
@@ -3,9 +3,9 @@
config_tag = "traitorchan"
traitors_possible = 3 //hard limit on traitors if scaling is turned off
restricted_jobs = list("AI", "Cyborg")
required_players = 3
required_players = 10
required_players_secret = 10
required_enemies = 2
required_enemies = 1 // how many of each type are required
recommended_enemies = 3
var/protected_species_changeling = list("Machine", "Slime People")
@@ -24,9 +24,8 @@
if((player.mind in possible_changelings) && (player.client.prefs.species in protected_species_changeling))
possible_changelings -= player.mind
if(possible_changelings.len>0)
if(possible_changelings.len > 0)
var/datum/mind/changeling = pick(possible_changelings)
//possible_changelings-=changeling
changelings += changeling
modePlayer += changelings
changeling.restricted_roles = restricted_jobs
@@ -681,7 +681,7 @@
if (G.summoner == user)
to_chat(user, "You already have a [mob_name]!")
return
if(user.mind && user.mind.changeling)
if(user.mind && (user.mind.changeling || user.mind.vampire))
to_chat(user, "[ling_failure]")
return
if(used == TRUE)
@@ -0,0 +1,45 @@
/datum/game_mode/traitor/vampire
name = "traitor+vampire"
config_tag = "traitorvamp"
traitors_possible = 3 //hard limit on traitors if scaling is turned off
restricted_jobs = list("AI", "Cyborg")
required_players = 10
required_players_secret = 10
required_enemies = 1 // how many of each type are required
recommended_enemies = 3
var/protected_species_vampire = list("Machine")
/datum/game_mode/traitor/vampire/announce()
to_chat(world, "<B>The current game mode is - Traitor+Vampire!</B>")
to_chat(world, "<B>There is a Vampire from Space Transylvania on the station along with some syndicate operatives out for their own gain! Do not let the vampire and the traitors succeed!</B>")
/datum/game_mode/traitor/vampire/pre_setup()
if(config.protect_roles_from_antagonist)
restricted_jobs += protected_jobs
var/list/datum/mind/possible_vampires = get_players_for_role(ROLE_VAMPIRE)
for(var/mob/new_player/player in player_list)
if((player.mind in possible_vampires) && (player.client.prefs.species in protected_species_vampire))
possible_vampires -= player.mind
if(possible_vampires.len > 0)
var/datum/mind/vampire = pick(possible_vampires)
vampires += vampire
modePlayer += vampires
var/datum/mindslaves/slaved = new()
slaved.masters += vampire
vampire.som = slaved //we MIGT want to mindslave someone
vampire.restricted_roles = restricted_jobs
return ..()
else
return 0
/datum/game_mode/traitor/vampire/post_setup()
for(var/datum/mind/vampire in vampires)
grant_vampire_powers(vampire.current)
vampire.special_role = "Vampire"
forge_vampire_objectives(vampire)
greet_vampire(vampire)
..()