mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-22 03:27:05 +01:00
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:
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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>")
|
||||
|
||||
@@ -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)))
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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%)
|
||||
|
||||
@@ -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
|
||||
/*
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user