Highlander Changes (#9931)

* Highlanders will now receive a full heal if they decapitate another highlander. Highlanders can no longer use machinery, guns, or vehicles. Silicons will now become humans when the highlander button is pressed.

* Fixes stuff.

* Adds string define for "highlander". Puts the code for making a tracker effect into its own proc. All highlanders are now permahulks.

* Plasmamen no longer lose their suits, helmets, tanks, or masks when made into highlanders. Vox no longer lose their tanks or masks.
This commit is contained in:
Shadowmech88
2016-05-27 00:28:06 -04:00
committed by clusterfack
parent f2e569f9cb
commit 7be148b98f
10 changed files with 81 additions and 28 deletions

View File

@@ -771,7 +771,7 @@ var/global/floorIsLava = 0
<A href='?src=\ref[src];secretsfun=prisonwarp'>Warp all Players to Prison</A><BR>
<A href='?src=\ref[src];secretsfun=tripleAI'>Triple AI mode (needs to be used in the lobby)</A><BR>
<A href='?src=\ref[src];secretsfun=traitor_all'>Everyone is the traitor</A><BR>
<A href='?src=\ref[src];secretsfun=onlyone'>There can only be one!</A><BR>
<A href='?src=\ref[src];secretsfun=onlyone'>There can be only one!</A><BR>
<A href='?src=\ref[src];secretsfun=flicklights'>Ghost Mode</A><BR>
<A href='?src=\ref[src];secretsfun=retardify'>Make all players retarded</A><BR>
<A href='?src=\ref[src];secretsfun=fakeguns'>Make all items look like guns</A><BR>

View File

@@ -3,12 +3,33 @@
alert("The game hasn't started yet!")
return
for(var/mob/living/silicon/S in player_list) //All silicons get made into humans so they can be highlanders, too.
if(S.isDead() || !S.client) continue
if(is_special_character(S)) continue
var/mob/living/carbon/human/new_human = new /mob/living/carbon/human(S.loc, delay_ready_dna=1)
new_human.setGender(pick(MALE, FEMALE)) //The new human's gender will be random
var/datum/preferences/A = new() //Randomize appearance for the human
A.randomize_appearance_for(new_human)
new_human.generate_name()
new_human.languages |= S.languages
if(S.default_language) new_human.default_language = S.default_language
if(S.mind)
S.mind.transfer_to(new_human)
else
new_human.key = S.key
qdel(S)
for(var/mob/living/carbon/human/H in player_list)
if(H.stat == 2 || !(H.client)) continue
if(H.isDead() || !H.client) continue
if(is_special_character(H)) continue
ticker.mode.traitors += H.mind
H.mind.special_role = "traitor"
H.mind.special_role = HIGHLANDER
H.mutations.Add(M_HULK) //all highlanders are permahulks
H.update_mutations()
H.update_body()
/* This never worked.
var/datum/objective/steal/steal_objective = new
@@ -21,7 +42,7 @@
hijack_objective.owner = H.mind
H.mind.objectives += hijack_objective
to_chat(H, "<B>You are the traitor.</B>")
to_chat(H, "<B>You are a highlander!</B>")
var/obj_count = 1
for(var/datum/objective/OBJ in H.mind.objectives)
to_chat(H, "<B>Objective #[obj_count]</B>: [OBJ.explanation_text]")
@@ -30,11 +51,19 @@
for (var/obj/item/I in H)
if (istype(I, /obj/item/weapon/implant))
continue
del(I)
if(isplasmaman(H)) //Plasmamen don't lose their plasma gear since they need it to live.
if(!(istype(I, /obj/item/clothing/suit/space/plasmaman) || istype(I, /obj/item/clothing/head/helmet/space/plasmaman) || istype(I, /obj/item/weapon/tank/plasma/plasmaman) || istype(I, /obj/item/clothing/mask/breath)))
qdel(I)
else if(isvox(H)) //Vox don't lose their N2 gear since they need it to live.
if(!(istype(I, /obj/item/weapon/tank/nitrogen) || istype(I, /obj/item/clothing/mask/breath/vox)))
qdel(I)
else
qdel(I)
H.equip_to_slot_or_del(new /obj/item/clothing/under/kilt(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain(H), slot_ears)
H.equip_to_slot_or_del(new /obj/item/clothing/head/beret(H), slot_head)
if(!isplasmaman(H)) //Plasmamen don't get a beret since they need their helmet to not burn to death.
H.equip_to_slot_or_del(new /obj/item/clothing/head/beret(H), slot_head)
H.equip_to_slot_or_del(new /obj/item/weapon/claymore(H), slot_l_hand)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(H), slot_shoes)
H.equip_to_slot_or_del(new /obj/item/weapon/pinpointer(H.loc), slot_l_store)