Files
kiwistation/code/modules/events/wizard/imposter.dm
T
Incoming 6f0a50381c Adds an antag hud system for wizards.
The huds won't be activated when there's just one wizard, but when another magic user is brought in the huds will appear for both of them to allow for easy identification in the face of rampant mindswaps and/or identity shinanagans and/or getting turned into a cow by a staff of change.

The huds are on by default in ragin' mages.
2015-01-13 00:14:05 -05:00

53 lines
2.2 KiB
Plaintext

/datum/round_event_control/wizard/imposter //Mirror Mania
name = "Imposter Wizard"
weight = 1
typepath = /datum/round_event/wizard/imposter/
max_occurrences = 1
earliest_start = 0
/datum/round_event/wizard/imposter/start()
for(var/datum/mind/M in ticker.mode.wizards)
if(!ishuman(M.current)) continue
var/mob/living/carbon/human/W = M.current
var/list/candidates = get_candidates(BE_WIZARD)
if(!candidates) return //Sad Trombone
var/client/C = pick(candidates)
new /obj/effect/effect/harmless_smoke(W.loc)
var/mob/living/carbon/human/I = new /mob/living/carbon/human(W.loc)
I.real_name = W.real_name
I.dna.unique_enzymes = W.dna.unique_enzymes
I.name = W.real_name
I.dna.blood_type = W.dna.blood_type
I.dna.uni_identity = W.dna.uni_identity
I.dna.struc_enzymes = W.dna.struc_enzymes
updateappearance(I)
if(W.ears) I.equip_to_slot_or_del(new W.ears.type, slot_ears)
if(W.w_uniform) I.equip_to_slot_or_del(new W.w_uniform.type , slot_w_uniform)
if(W.shoes) I.equip_to_slot_or_del(new W.shoes.type, slot_shoes)
if(W.wear_suit) I.equip_to_slot_or_del(new W.wear_suit.type, slot_wear_suit)
if(W.head) I.equip_to_slot_or_del(new W.head.type, slot_head)
if(W.back) I.equip_to_slot_or_del(new W.back.type, slot_back)
I.key = C.key
//Operation: Fuck off and scare people
I.mind.spell_list += new /obj/effect/proc_holder/spell/targeted/area_teleport/teleport(null)
I.mind.spell_list += new /obj/effect/proc_holder/spell/targeted/turf_teleport/blink(null)
I.mind.spell_list += new /obj/effect/proc_holder/spell/targeted/ethereal_jaunt(null)
ticker.mode.traitors += I.mind
I.mind.special_role = "imposter"
var/datum/objective/protect/protect_objective = new /datum/objective/protect
protect_objective.owner = I.mind
protect_objective.target = W.mind
protect_objective.explanation_text = "Protect [W.real_name], the wizard."
I.mind.objectives += protect_objective
ticker.mode.update_wiz_icons_added(I.mind)
I.attack_log += "\[[time_stamp()]\] <font color='red'>Is an imposter!</font>"
I << "<B>You are an imposter! Trick and confuse the crew to misdirect malice from your handsome original!</B>"
I << sound('sound/effects/magic.ogg')