Enthralled subjects are now antagonists (they were before, but now actually show up in check antags) with a protect objective on their vampire. Yes, it's possible for the enthralled one to succeed while the vampire fails.

Made the traitor panel look less shit as far as Enthralled goes, it no longer sticks out compared to the rest by being the only one not italicized, and no longer colors the word NO.

Ghosts that can see huds now see the enthralled icon instead of the vamp icon for enthralled people.

Fixes round end report with Enthralled being badly formatted (missing a <br>).

I have tested this locally with a friend, it does what it says.
This commit is contained in:
Intigracy
2015-06-30 18:51:00 -07:00
parent 71b0b35fca
commit 2cd1665e5b
5 changed files with 54 additions and 9 deletions

View File

@@ -266,12 +266,12 @@
text += "<br>Objectives are empty! <a href='?src=\ref[src];vampire=autoobjectives'>Randomize!</a>"
else
text += "<a href='?src=\ref[src];vampire=vampire'>yes</a>|<b>NO</b>"
/** Enthralled ***/
text += "<br><b>enthralled</b>"
/** ENTHRALLED ***/
text += "<br><i><b>enthralled</b></i>: "
if(src in ticker.mode.enthralled)
text += " <b><font color='#FF0000'>YES</font></b> | no"
text += "<b><font color='#FF0000'>YES</font></b>|no"
else
text += " yes | <font color='#00FF00'>NO</font></b>"
text += "yes|<b>NO</b>"
sections["vampire"] = text
/** NUCLEAR ***/

View File

@@ -158,8 +158,10 @@
var/icon/logo = icon('icons/mob/mob.dmi', "thrall-logo")
end_icons += logo
var/tempstate = end_icons.len
text += {"<FONT size = 2><img src="logo_[tempstate].png"> <B>The Enthralled were:</B> <img src="logo_[tempstate].png"></FONT>"}
text += {"<br><FONT size = 2><img src="logo_[tempstate].png"> <B>The Enthralled were:</B> <img src="logo_[tempstate].png"></FONT>"}
for(var/datum/mind/Mind in enthralled)
var/traitorwin = 1
if(Mind.current)
var/icon/flat = getFlatIcon(Mind.current, SOUTH, 1, 1)
end_icons += flat
@@ -181,11 +183,33 @@
text += "body destroyed"
text += ")"
if(Mind.objectives.len)//If the traitor had no objectives, don't need to process this.
var/count = 1
for(var/datum/objective/objective in Mind.objectives)
if(objective.check_completion())
text += "<br><B>Objective #[count]</B>: [objective.explanation_text] <font color='green'><B>Success!</B></font>"
feedback_add_details("traitor_objective","[objective.type]|SUCCESS")
else
text += "<br><B>Objective #[count]</B>: [objective.explanation_text] <font color='red'>Fail.</font>"
feedback_add_details("traitor_objective","[objective.type]|FAIL")
traitorwin = 0
count++
var/special_role_text
if(Mind.special_role)
special_role_text = lowertext(Mind.special_role)
else
special_role_text = "antagonist"
if(Mind.total_TC)
if(Mind.spent_TC)
text += "<br><span class='sinister'>TC Remaining: [Mind.total_TC - Mind.spent_TC]/[Mind.total_TC] - The tools used by the Enthralled were: [list2text(Mind.uplink_items_bought, ", ")]</span>"
else
text += "<span class='sinister'>The Enthralled was a smooth operator this round (did not purchase any uplink items)</span>"
if(traitorwin)
text += "<br><font color='green'><B>The [special_role_text] was successful!</B></font>"
feedback_add_details("traitor_success","SUCCESS")
else
text += "<br><font color='red'><B>The [special_role_text] has failed!</B></font>"
feedback_add_details("traitor_success","FAIL")
text += "<BR><HR>"
else
if(text)

View File

@@ -374,7 +374,7 @@
if(!C.vampire_affected(mind))
C.visible_message("<span class='warning'>[C] seems to resist the takeover!</span>", "<span class='notice'>Your faith of [ticker.Bible_deity_name] has kept your mind clear of all evil</span>")
if(!ishuman(C))
src << "<span class='warning'>You can only enthrall humans!"
src << "<span class='warning'>You can only enthrall humanoids!"
return 0
return 1
@@ -387,10 +387,15 @@
ticker.mode.thralls[ref] = list(H.mind)
else
ticker.mode.thralls[ref] += H.mind
var/datum/objective/protect/new_objective = new /datum/objective/protect
new_objective.owner = H.mind
new_objective.target = src.mind
new_objective.explanation_text = "You have been Enthralled by [src.name], the vampire. Follow their every command."
H.mind.objectives += new_objective
ticker.mode.enthralled.Add(H.mind)
ticker.mode.enthralled[H.mind] = src.mind
H.mind.special_role = "VampThrall"
H << "<span class='sinister'>You have been Enthralled by [name]. Follow their every command.</span>"
H << "<span class='sinister'>You have been Enthralled by [src.name]. Follow their every command.</span>"
src << "<span class='warning'>You have successfully Enthralled [H.name]. <i>If they refuse to do as you say just adminhelp.</i></span>"
ticker.mode.update_vampire_icons_added(H.mind)
ticker.mode.update_vampire_icons_added(src.mind)

View File

@@ -628,6 +628,22 @@
// END AUTOFIX
else
dat += "<tr><td><i>Vampire not found!</i></td></tr>"
if(ticker.mode.enthralled.len > 0)
dat += "<br><table cellspacing=5><tr><td><B>Thralls</B></td><td></td><td></td></tr>"
for(var/datum/mind/Mind in ticker.mode.enthralled)
var/mob/M = Mind.current
if(M)
// AUTOFIXED BY fix_string_idiocy.py
// C:\Users\Rob\Documents\Projects\vgstation13\code\modules\admin\player_panel.dm:521: dat += "<tr><td><a href='?src=\ref[src];adminplayeropts=\ref[M]'>[M.real_name]</a>[M.client ? "" : " <i>(logged out)</i>"][M.stat == 2 ? " <b><font color=red>(DEAD)</font></b>" : ""]</td>"
dat += {"<tr><td><a href='?src=\ref[src];adminplayeropts=\ref[M]'>[M.real_name]</a>[M.client ? "" : " <i>(logged out)</i>"][M.stat == 2 ? " <b><font color=red>(DEAD)</font></b>" : ""]</td>
<td><A href='?src=\ref[usr];priv_msg=\ref[M]'>PM</A></td>
<td><A HREF='?src=\ref[src];traitor=\ref[M]'>Show Objective</A></td></tr>"}
// END AUTOFIX
else
dat += "<tr><td><i>Enthralled not found!</i></td></tr>"
if(ticker.mode.traitors.len > 0)
dat += "<br><table cellspacing=5><tr><td><B>Traitors</B></td><td></td><td></td></tr>"
for(var/datum/mind/traitor in ticker.mode.traitors)

View File

@@ -256,7 +256,7 @@ Works together with spawning an observer, noted above.
if("Vampire")
U.client.images += image(tempHud,target,"vampire")
if("VampThrall")
U.client.images += image(tempHud,target,"vampire")
U.client.images += image(tempHud,target,"vampthrall")
else//If we don't know what role they have but they have one.
U.client.images += image(tempHud,target,"hudunknown1")
else if(issilicon(target))//If the silicon mob has no law datum, no inherent laws, or a law zero, add them to the hud.