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

@@ -394,9 +394,7 @@
spawn()
for(var/i = 0;i < 2;i++)
for(var/turf/T in drain_turflist)
var/obj/effect/tracker/drain/Tr = getFromPool(/obj/effect/tracker/drain, T)
Tr.target = user
Tr.icon_state = pick("soul1","soul2","soul3")
make_tracker_effects(T, user, 1, "soul", 3, /obj/effect/tracker/drain)
sleep(1)
if(user.bhunger)

View File

@@ -310,17 +310,9 @@
if(add_target && add_target.loc)
T2 = get_turf(add_target)
spawn()
for(var/i = 0;i < 10;i++)
var/obj/effect/tracker/soul/Tr = getFromPool(/obj/effect/tracker/soul, T1)
Tr.target = user
Tr.icon_state = pick("soul1","soul2","soul3")
if(T2)
var/obj/effect/tracker/soul/Tr2 = getFromPool(/obj/effect/tracker/soul, T2)
Tr2.target = user
Tr2.icon_state = pick("soul1","soul2","soul3")
sleep(1)
make_tracker_effects(T1, user)
if(T2)
make_tracker_effects(T2, user)
//Cleaning up the corpse
qdel(target)

View File

@@ -91,3 +91,16 @@
/obj/effect/tracker/singularity_pull()
return
/proc/make_tracker_effects(tr_source, tr_destination, var/tr_number = 10, var/custom_icon_state = "soul", var/number_of_icons = 3, var/tr_type = /obj/effect/tracker/soul)
spawn()
var/list/possible_icons = list()
if(custom_icon_state)
for(var/i = 1;i <= number_of_icons;i++)
possible_icons.Add("[custom_icon_state][i]")
for(var/i = 0;i < tr_number;i++)
var/obj/effect/tracker/Tr = getFromPool(tr_type, tr_source)
Tr.target = tr_destination
if(custom_icon_state)
Tr.icon_state = pick(possible_icons)
sleep(1)

View File

@@ -64,11 +64,6 @@
if(empstun < 0)
empstun = 0
/obj/structure/bed/chair/vehicle/buckle_mob(mob/M as mob, mob/user as mob)
if(isanimal(M)) return //Animals can't buckle
..()
/obj/structure/bed/chair/vehicle/attackby(obj/item/W, mob/user)
if (istype(W, /obj/item/weapon/weldingtool))
var/obj/item/weapon/weldingtool/WT = W
@@ -222,6 +217,12 @@
/obj/structure/bed/chair/vehicle/proc/can_buckle(mob/M, mob/user)
if(M != user || !ishuman(user) || !Adjacent(user) || user.restrained() || user.lying || user.stat || user.locked_to || destroyed || occupant)
return 0
if(ishuman(M))
var/mob/living/carbon/human/H = M
if(H.mind && H.mind.special_role == HIGHLANDER)
if(user == M)
to_chat(user, "<span class='warning'>A true highlander has no need for a mount!</span>")
return 0
return 1
/obj/structure/bed/chair/vehicle/buckle_mob(mob/M, mob/user)

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)

View File

@@ -1843,4 +1843,4 @@
if(lying)
layer = MOB_LAYER - 0.1 //so we move under bedsheets
else
layer = MOB_LAYER
layer = MOB_LAYER

View File

@@ -625,7 +625,7 @@ Note that amputating the affected organ does in fact remove the infection from t
src.status &= ~ORGAN_BLEEDING
src.status &= ~ORGAN_SPLINTED
src.status &= ~ORGAN_DEAD
for(var/implant in implants)
qdel(implant)
@@ -1382,6 +1382,15 @@ obj/item/weapon/organ/head/New(loc, mob/living/carbon/human/H)
brainmob.stat = 2
brainmob.death()
if(brainmob.mind && brainmob.mind.special_role == HIGHLANDER)
if(H.lastattacker && istype(H.lastattacker, /mob/living/carbon/human))
var/mob/living/carbon/human/L = H.lastattacker
if(L.mind && L.mind.special_role == HIGHLANDER)
L.revive(0)
to_chat(L, "<span class='notice'>You absorb \the [brainmob]'s power!</span>")
var/turf/T1 = get_turf(H)
make_tracker_effects(T1, L)
obj/item/weapon/organ/head/proc/transfer_identity(var/mob/living/carbon/human/H)//Same deal as the regular brain proc. Used for human-->head
brainmob = new(src)
brainmob.name = H.real_name

View File

@@ -1504,4 +1504,6 @@ var/proccalls = 1
#define CANCER_STAGE_METASTASIS 1200 //Cancer has maximal effects, growing out of control in the organ, and can start "colonizing" other organs very quickly, dooming the patient. 30 minutes
#define EVENT_OBJECT_INDEX "o"
#define EVENT_PROC_INDEX "p"
#define EVENT_PROC_INDEX "p"
#define HIGHLANDER "highlander"

View File

@@ -0,0 +1,9 @@
author: Shadowmech88
delete-after: True
changes:
- rscadd: A highlander will be fully healed if he decapitates another highlander.
- rscadd: Highlanders are now perma-hulked, making them immune to stuns.
- tweak: Plasmamen and vox will now retain the gear that they require to survive when they're made into highlanders.
- tweak: Upon pressing the highlander button, all silicons will be made into humans so that they can also be highlanders.
- rscdel: Highlanders can no longer use guns as a result of their hulk power.
- rscdel: Highlanders can no longer be buckled to vehicles.