Standardize LASER, NOCLONE, and HUSK

Conflicts:
	code/game/gamemodes/changeling/changeling_powers.dm
	code/modules/mob/living/carbon/human/death.dm
	maps/RandomZLevels/wildwest.dm
This commit is contained in:
Rob Nelson
2014-01-21 22:59:53 -05:00
committed by ZomgPonies
parent f44ff1d7aa
commit 7892eeb7cc
23 changed files with 214 additions and 34 deletions
+1 -1
View File
@@ -168,7 +168,7 @@
*/
/mob/proc/RangedAttack(var/atom/A, var/params)
if(!mutations.len) return
if((LASER in mutations) && a_intent == "harm")
if((M_LASER in mutations) && a_intent == "harm")
LaserEyes(A) // moved into a proc below
return
else if(M_TK in mutations)
+2 -2
View File
@@ -347,8 +347,8 @@
src.hand_al(usr, usr.hand)
else
// ------- YOU ARE CLICKING ON AN OBJECT THAT'S INACCESSIBLE TO YOU AND IS NOT YOUR HUD -------
if((LASER in usr:mutations) && usr:a_intent == "harm" && world.time >= usr.next_move)
// ------- YOU HAVE THE LASER MUTATION, YOUR INTENT SET TO HURT AND IT'S BEEN MORE THAN A DECISECOND SINCE YOU LAS TATTACKED -------
if((M_LASER in usr:mutations) && usr:a_intent == "harm" && world.time >= usr.next_move)
// ------- YOU HAVE THE M_LASER MUTATION, YOUR INTENT SET TO HURT AND IT'S BEEN MORE THAN A DECISECOND SINCE YOU LAS TATTACKED -------
var/turf/T = get_turf(usr)
var/turf/U = get_turf(src)
+1 -1
View File
@@ -23,7 +23,7 @@
/mob/living/carbon/human/RangedAttack(var/atom/A)
if(!gloves && !mutations.len) return
var/obj/item/clothing/gloves/G = gloves
if((LASER in mutations) && a_intent == "harm")
if((M_LASER in mutations) && a_intent == "harm")
LaserEyes(A) // moved into a proc below
else if(istype(G) && G.Touch(A,0)) // for magic gloves
+1 -1
View File
@@ -45,7 +45,7 @@
range = -1
include_user = 1
mutations = list(LASER, M_HULK)
mutations = list(M_LASER, M_HULK)
duration = 300
cooldown_min = 300 //25 deciseconds reduction per rank
+2 -2
View File
@@ -62,8 +62,8 @@
M.mutations.Add(SKELETON)
if(M_FAT in old_mutations)
M.mutations.Add(M_FAT)
if(HUSK in old_mutations)
M.mutations.Add(HUSK)
if(M_HUSK in old_mutations)
M.mutations.Add(M_HUSK)
var/inj = (flags & MUTCHK_FROM_INJECTOR) == MUTCHK_FROM_INJECTOR
var/forced = (flags & MUTCHK_FORCED) == MUTCHK_FORCED
+2 -2
View File
@@ -504,7 +504,7 @@
occupantData["name"] = connected.occupant.name
occupantData["stat"] = connected.occupant.stat
occupantData["isViableSubject"] = 1
if (NOCLONE in connected.occupant.mutations || !src.connected.occupant.dna)
if (M_NOCLONE in connected.occupant.mutations || !src.connected.occupant.dna)
occupantData["isViableSubject"] = 0
occupantData["health"] = connected.occupant.health
occupantData["maxHealth"] = connected.occupant.maxHealth
@@ -843,7 +843,7 @@
return 1
if (bufferOption == "transfer")
if (!src.connected.occupant || (NOCLONE in src.connected.occupant.mutations) || !src.connected.occupant.dna)
if (!src.connected.occupant || (M_NOCLONE in src.connected.occupant.mutations) || !src.connected.occupant.dna)
return
irradiating = 2
@@ -83,7 +83,8 @@
src << "<span class='warning'>[T] is not compatible with our biology.</span>"
return
if((NOCLONE || SKELETON) in T.mutations)
if((M_NOCLONE || SKELETON) in T.mutations)
src << "<span class='warning'>This creature's DNA is ruined beyond useability!</span>"
return
@@ -727,7 +728,7 @@ var/list/datum/dna/hivemind_bank = list()
var/mob/living/carbon/T = changeling_sting(40,/mob/proc/changeling_transformation_sting)
if(!T) return 0
if((HUSK in T.mutations) || (!ishuman(T) && !ismonkey(T)))
if((M_HUSK in T.mutations) || (!ishuman(T) && !ismonkey(T)))
src << "<span class='warning'>Our sting appears ineffective against its DNA.</span>"
return 0
T.visible_message("<span class='warning'>[T] transforms!</span>")
+1 -1
View File
@@ -353,7 +353,7 @@
if ((!subject.ckey) || (!subject.client))
scantemp = "Error: Mental interface failure."
return
if (NOCLONE in subject.mutations)
if (M_NOCLONE in subject.mutations)
scantemp = "Error: Mental interface failure."
return
if (!isnull(find_record(subject.ckey)))
+1 -1
View File
@@ -103,7 +103,7 @@
if(!istype(T)) return
if(!T.dna)
return
if(NOCLONE in T.mutations)
if(M_NOCLONE in T.mutations)
return
if(T.species && T.species.flags & NO_BLOOD)
+2 -2
View File
@@ -39,8 +39,8 @@
if (!(M_HULK in user.mutations))
user.mutations.Add(M_HULK)
if (!(LASER in user.mutations))
user.mutations.Add(LASER)
if (!(M_LASER in user.mutations))
user.mutations.Add(M_LASER)
if (!(M_XRAY in user.mutations))
user.mutations.Add(M_XRAY)
+1 -1
View File
@@ -141,7 +141,7 @@
H.updatehealth() //forces a health update, otherwise the oxyloss adjustment wouldnt do anything
M.visible_message("\red [M]'s body convulses a bit.")
var/datum/organ/external/temp = H.get_organ("head")
if(H.health > -100 && !(temp.status & ORGAN_DESTROYED) && !(NOCLONE in H.mutations) && !H.suiciding)
if(H.health > -100 && !(temp.status & ORGAN_DESTROYED) && !(M_NOCLONE in H.mutations) && !H.suiciding)
viewers(M) << "\blue [src] beeps: Resuscitation successful."
spawn(0)
H.stat = 1
@@ -63,7 +63,7 @@
if(istype(M,/mob/living))
M.radiation += rand(5,20)
if (!(NOCLONE in M.mutations)) // prevents drained people from having their DNA changed
if (!(M_NOCLONE in M.mutations)) // prevents drained people from having their DNA changed
if (buf.types & DNA2_BUF_UI)
if (!block) //isolated block?
M.UpdateAppearance(buf.dna.UI.Copy())
@@ -399,7 +399,7 @@ LOOK FOR SURGERY.DM*/
if(!istype(M))
return ..()
//if(M.mutations & HUSK) return ..()
//if(M.mutations & M_HUSK) return ..()
if((M_CLUMSY in user.mutations) && prob(50))
M = user
+1 -1
View File
@@ -517,7 +517,7 @@ client/proc/one_click_antag()
new_vox.mind_initialize()
new_vox.mind.assigned_role = "MODE"
new_vox.mind.special_role = "Vox Raider"
new_vox.mutations |= NOCLONE //Stops the station crew from messing around with their DNA.
new_vox.mutations |= M_NOCLONE //Stops the station crew from messing around with their DNA.
ticker.mode.traitors += new_vox.mind
new_vox.equip_vox_raider()
@@ -33,7 +33,7 @@
M.client.mob = new/mob/living/carbon/alien/humanoid/special/snakeman(new/obj/effect/snake_egg(src.loc))
visible_message("[src] injects [M] with an egg.")
visible_message("The egg absorbs [M]")
M.mutations |= NOCLONE
M.mutations |= M_NOCLONE
M.update_body()
M.death()
else
@@ -118,7 +118,7 @@
return
/mob/living/carbon/human/proc/ChangeToHusk()
if(HUSK in mutations) return
if(M_HUSK in mutations) return
if(f_style)
f_style = "Shaved" //we only change the icon_state of the hair datum, so it doesn't mess up their UI/UE
@@ -126,7 +126,7 @@
h_style = "Bald"
update_hair(0)
mutations.Add(HUSK)
mutations.Add(M_HUSK)
status_flags |= DISFIGURED //makes them unknown without fucking up other stuff like admintools
update_body(0)
update_mutantrace()
@@ -134,5 +134,5 @@
/mob/living/carbon/human/proc/Drain()
ChangeToHusk()
//mutations |= NOCLONE
mutations |= M_NOCLONE
return
@@ -496,7 +496,7 @@
//Returns "Unknown" if facially disfigured and real_name if not. Useful for setting name when polyacided or when updating a human's name variable
/mob/living/carbon/human/proc/get_face_name()
var/datum/organ/external/head/head = get_organ("head")
if( !head || head.disfigured || (head.status & ORGAN_DESTROYED) || !real_name || (HUSK in mutations) ) //disfigured. use id-name if possible
if( !head || head.disfigured || (head.status & ORGAN_DESTROYED) || !real_name || (M_HUSK in mutations) ) //disfigured. use id-name if possible
return "Unknown"
return real_name
@@ -230,7 +230,7 @@ proc/get_damage_icon_part(damage_state, body_part)
var/hulk_color_mod = rgb(48,224,40)
var/necrosis_color_mod = rgb(10,50,0)
var/husk = (HUSK in src.mutations) //100% unnecessary -Agouri //nope, do you really want to iterate through src.mutations repeatedly? -Pete
var/husk = (M_HUSK in src.mutations) //100% unnecessary -Agouri //nope, do you really want to iterate through src.mutations repeatedly? -Pete
var/fat = (M_FAT in src.mutations)
var/hulk = (M_HULK in src.mutations)
var/skeleton = (SKELETON in src.mutations)
@@ -410,7 +410,7 @@ proc/get_damage_icon_part(damage_state, body_part)
standing.underlays += "telekinesishead[fat]_s"
add_image = 1
*/
if(LASER)
if(M_LASER)
standing.overlays += "lasereyes_s"
add_image = 1
if((M_RESIST_COLD in mutations) && (M_RESIST_HEAT in mutations))
@@ -84,7 +84,7 @@
if(!T.dna)
usr << "You are unable to locate any blood. (To be specific, your target seems to be missing their DNA datum)"
return
if(NOCLONE in T.mutations) //target done been et, no more blood in him
if(M_NOCLONE in T.mutations) //target done been et, no more blood in him
user << "\red You are unable to locate any blood."
return
+3 -3
View File
@@ -327,12 +327,12 @@ var/MAX_EXPLOSION_RANGE = 14
#define M_HULK 4
#define M_CLUMSY 5
#define M_FAT 6
#define HUSK 7
#define NOCLONE 8
#define M_HUSK 7
#define M_NOCLONE 8
// Extra powers:
#define LASER 9 // harm intent - click anywhere to shoot lasers from eyes
#define M_LASER 9 // harm intent - click anywhere to shoot lasers from eyes
//#define HEAL 10 // (Not implemented) healing people with hands
//#define SHADOW 11 // (Not implemented) shadow teleportation (create in/out portals anywhere) (25%)
//#define SCREAM 12 // (Not implemented) supersonic screaming (25%)
+1 -1
View File
@@ -57,7 +57,7 @@ This system could be expanded to migrate all of our current mutations to. Maybe.
get_mutation(var/mob/living/carbon/M)
M << "\blue You feel a searing heat inside your eyes!"
M.mutations.Add(LASER)
M.mutations.Add(M_LASER)
Healing
/*
+3 -3
View File
@@ -502,10 +502,10 @@
usr << text("\blue You feel strong! You feel pressure building behind your eyes!")
if (!(M_HULK in usr.mutations))
usr.mutations.Add(M_HULK)
if (!(LASER in usr.mutations))
usr.mutations.Add(LASER)
if (!(M_LASER in usr.mutations))
usr.mutations.Add(M_LASER)
spawn (300)
if (LASER in usr.mutations) usr.mutations.Remove(LASER)
if (M_LASER in usr.mutations) usr.mutations.Remove(M_LASER)
if (M_HULK in usr.mutations) usr.mutations.Remove(M_HULK)
return