diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm
index 4b7ec0ab0ac..f4e4283fa59 100644
--- a/code/_onclick/click.dm
+++ b/code/_onclick/click.dm
@@ -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)
diff --git a/code/_onclick/oldcode.dm b/code/_onclick/oldcode.dm
index 2d52a26390a..f81c3f9e37f 100644
--- a/code/_onclick/oldcode.dm
+++ b/code/_onclick/oldcode.dm
@@ -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)
diff --git a/code/_onclick/other_mobs.dm b/code/_onclick/other_mobs.dm
index 08f33f62670..eceb3659fd2 100644
--- a/code/_onclick/other_mobs.dm
+++ b/code/_onclick/other_mobs.dm
@@ -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
diff --git a/code/datums/spells/wizard.dm b/code/datums/spells/wizard.dm
index 80d5f5d339a..34ddd01c87a 100644
--- a/code/datums/spells/wizard.dm
+++ b/code/datums/spells/wizard.dm
@@ -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
diff --git a/code/game/dna/dna2_domutcheck.dm b/code/game/dna/dna2_domutcheck.dm
index c527539a679..88adaf3305e 100644
--- a/code/game/dna/dna2_domutcheck.dm
+++ b/code/game/dna/dna2_domutcheck.dm
@@ -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
diff --git a/code/game/dna/dna_modifier.dm b/code/game/dna/dna_modifier.dm
index 8e490ba0f3f..edf33a17576 100644
--- a/code/game/dna/dna_modifier.dm
+++ b/code/game/dna/dna_modifier.dm
@@ -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
diff --git a/code/game/gamemodes/changeling/changeling_powers.dm b/code/game/gamemodes/changeling/changeling_powers.dm
index 715a75cdbbc..202dbf7ab76 100644
--- a/code/game/gamemodes/changeling/changeling_powers.dm
+++ b/code/game/gamemodes/changeling/changeling_powers.dm
@@ -83,7 +83,8 @@
src << "[T] is not compatible with our biology."
return
- if((NOCLONE || SKELETON) in T.mutations)
+
+ if((M_NOCLONE || SKELETON) in T.mutations)
src << "This creature's DNA is ruined beyond useability!"
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 << "Our sting appears ineffective against its DNA."
return 0
T.visible_message("[T] transforms!")
diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm
index 91d7fe633ba..39c3190d0e6 100644
--- a/code/game/machinery/computer/cloning.dm
+++ b/code/game/machinery/computer/cloning.dm
@@ -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)))
diff --git a/code/game/machinery/iv_drip.dm b/code/game/machinery/iv_drip.dm
index 237dbf01459..17127b65378 100644
--- a/code/game/machinery/iv_drip.dm
+++ b/code/game/machinery/iv_drip.dm
@@ -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)
diff --git a/code/game/machinery/wishgranter.dm b/code/game/machinery/wishgranter.dm
index 01431d9c4b5..e8871972626 100644
--- a/code/game/machinery/wishgranter.dm
+++ b/code/game/machinery/wishgranter.dm
@@ -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)
diff --git a/code/game/objects/items/weapons/defib.dm b/code/game/objects/items/weapons/defib.dm
index 5de43e8402b..3591dae589a 100644
--- a/code/game/objects/items/weapons/defib.dm
+++ b/code/game/objects/items/weapons/defib.dm
@@ -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
diff --git a/code/game/objects/items/weapons/dna_injector.dm b/code/game/objects/items/weapons/dna_injector.dm
index 38d0efb080b..4c65579abc7 100644
--- a/code/game/objects/items/weapons/dna_injector.dm
+++ b/code/game/objects/items/weapons/dna_injector.dm
@@ -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())
diff --git a/code/game/objects/items/weapons/surgery_tools.dm b/code/game/objects/items/weapons/surgery_tools.dm
index a43eb9b3125..0759fcfe323 100644
--- a/code/game/objects/items/weapons/surgery_tools.dm
+++ b/code/game/objects/items/weapons/surgery_tools.dm
@@ -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
diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm
index 7dbef460fc7..055cfc1e59c 100644
--- a/code/modules/admin/verbs/one_click_antag.dm
+++ b/code/modules/admin/verbs/one_click_antag.dm
@@ -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()
diff --git a/code/modules/mob/living/carbon/alien/special/snakeman.dm b/code/modules/mob/living/carbon/alien/special/snakeman.dm
index 7aa7b9d5db0..d1d55895d88 100644
--- a/code/modules/mob/living/carbon/alien/special/snakeman.dm
+++ b/code/modules/mob/living/carbon/alien/special/snakeman.dm
@@ -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
diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm
index f6ae00458fc..67a509e65f6 100644
--- a/code/modules/mob/living/carbon/human/death.dm
+++ b/code/modules/mob/living/carbon/human/death.dm
@@ -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
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index f12142f6be6..a13fb11e76f 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -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
diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm
index 0800baa3fbb..3409bd0458e 100644
--- a/code/modules/mob/living/carbon/human/update_icons.dm
+++ b/code/modules/mob/living/carbon/human/update_icons.dm
@@ -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))
diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm
index 2459b93fced..981e45b335d 100644
--- a/code/modules/reagents/reagent_containers/syringes.dm
+++ b/code/modules/reagents/reagent_containers/syringes.dm
@@ -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
diff --git a/code/setup.dm b/code/setup.dm
index 53830959c39..e5b5eb44d26 100644
--- a/code/setup.dm
+++ b/code/setup.dm
@@ -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%)
diff --git a/code/unused/dna_mutations.dm b/code/unused/dna_mutations.dm
index 006a57eff41..10671c634d7 100644
--- a/code/unused/dna_mutations.dm
+++ b/code/unused/dna_mutations.dm
@@ -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
/*
diff --git a/code/unused/spells.dm b/code/unused/spells.dm
index cf6e2685e1f..a1dbbb9e3e1 100644
--- a/code/unused/spells.dm
+++ b/code/unused/spells.dm
@@ -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
diff --git a/maps/RandomZLevels/wildwest.dm b/maps/RandomZLevels/wildwest.dm
index f7f82434713..f66d750c6fc 100644
--- a/maps/RandomZLevels/wildwest.dm
+++ b/maps/RandomZLevels/wildwest.dm
@@ -1,4 +1,5 @@
<<<<<<< HEAD
+<<<<<<< HEAD
/* Code for the Wild West map by Brotemis
* Contains:
* Wish Granter
@@ -353,4 +354,182 @@
C.visible_message("[usr] appears to wake from the dead, having healed all wounds.")
C.update_canmove()
>>>>>>> da9b61b... Standardize XRAY.
+=======
+/* Code for the Wild West map by Brotemis
+ * Contains:
+ * Wish Granter
+ * Meat Grinder
+ */
+
+/*
+ * Wish Granter
+ */
+/obj/machinery/wish_granter_dark
+ name = "Wish Granter"
+ desc = "You're not so sure about this, anymore..."
+ icon = 'icons/obj/device.dmi'
+ icon_state = "syndbeacon"
+
+ anchored = 1
+ density = 1
+ use_power = 0
+
+ var/chargesa = 1
+ var/insistinga = 0
+
+/obj/machinery/wish_granter_dark/attack_hand(var/mob/living/carbon/human/user as mob)
+ usr.set_machine(src)
+
+ if(chargesa <= 0)
+ user << "The Wish Granter lies silent."
+ return
+
+ else if(!istype(user, /mob/living/carbon/human))
+ user << "You feel a dark stirring inside of the Wish Granter, something you want nothing of. Your instincts are better than any man's."
+ return
+
+ else if(is_special_character(user))
+ user << "Even to a heart as dark as yours, you know nothing good will come of this. Something instinctual makes you pull away."
+
+ else if (!insistinga)
+ user << "Your first touch makes the Wish Granter stir, listening to you. Are you really sure you want to do this?"
+ insistinga++
+
+ else
+ chargesa--
+ insistinga = 0
+ var/wish = input("You want...","Wish") as null|anything in list("Power","Wealth","Immortality","To Kill","Peace")
+ switch(wish)
+ if("Power")
+ user << "Your wish is granted, but at a terrible cost..."
+ user << "The Wish Granter punishes you for your selfishness, claiming your soul and warping your body to match the darkness in your heart."
+ if (!(M_LASER in user.mutations))
+ user.mutations.Add(M_LASER)
+ user << "\blue You feel pressure building behind your eyes."
+ if (!(M_RESIST_COLD in user.mutations))
+ user.mutations.Add(M_RESIST_COLD)
+ user << "\blue Your body feels warm."
+ if (!(M_RESIST_HEAT in user.mutations))
+ user.mutations.Add(M_RESIST_HEAT)
+ user << "\blue Your skin feels icy to the touch."
+ if (!(M_XRAY in user.mutations))
+ user.mutations.Add(M_XRAY)
+ user.sight |= (SEE_MOBS|SEE_OBJS|SEE_TURFS)
+ user.see_in_dark = 8
+ user.see_invisible = SEE_INVISIBLE_LEVEL_TWO
+ user << "\blue The walls suddenly disappear."
+ user.dna.mutantrace = "shadow"
+ user.update_mutantrace()
+ if("Wealth")
+ user << "Your wish is granted, but at a terrible cost..."
+ user << "The Wish Granter punishes you for your selfishness, claiming your soul and warping your body to match the darkness in your heart."
+ new /obj/structure/closet/syndicate/resources/everything(loc)
+ user.dna.mutantrace = "shadow"
+ user.update_mutantrace()
+ if("Immortality")
+ user << "Your wish is granted, but at a terrible cost..."
+ user << "The Wish Granter punishes you for your selfishness, claiming your soul and warping your body to match the darkness in your heart."
+ user.verbs += /mob/living/carbon/proc/immortality
+ user.dna.mutantrace = "shadow"
+ user.update_mutantrace()
+ if("To Kill")
+ user << "Your wish is granted, but at a terrible cost..."
+ user << "The Wish Granter punishes you for your wickedness, claiming your soul and warping your body to match the darkness in your heart."
+ ticker.mode.traitors += user.mind
+ user.mind.special_role = "traitor"
+ var/datum/objective/hijack/hijack = new
+ hijack.owner = user.mind
+ user.mind.objectives += hijack
+ user << "Your inhibitions are swept away, the bonds of loyalty broken, you are free to murder as you please!"
+ var/obj_count = 1
+ for(var/datum/objective/OBJ in user.mind.objectives)
+ user << "Objective #[obj_count]: [OBJ.explanation_text]"
+ obj_count++
+ user.dna.mutantrace = "shadow"
+ user.update_mutantrace()
+ if("Peace")
+ user << "Whatever alien sentience that the Wish Granter possesses is satisfied with your wish. There is a distant wailing as the last of the Faithless begin to die, then silence."
+ user << "You feel as if you just narrowly avoided a terrible fate..."
+ for(var/mob/living/simple_animal/hostile/faithless/F in world)
+ F.health = -10
+ F.stat = 2
+ F.icon_state = "faithless_dead"
+
+
+///////////////Meatgrinder//////////////
+
+
+/obj/effect/meatgrinder
+ name = "Meat Grinder"
+ desc = "What is that thing?"
+ density = 1
+ anchored = 1
+ layer = 3
+ icon = 'icons/mob/critter.dmi'
+ icon_state = "blob"
+ var/triggerproc = "explode" //name of the proc thats called when the mine is triggered
+ var/triggered = 0
+
+/obj/effect/meatgrinder/New()
+ icon_state = "blob"
+
+/obj/effect/meatgrinder/HasEntered(AM as mob|obj)
+ Bumped(AM)
+
+/obj/effect/meatgrinder/Bumped(mob/M as mob|obj)
+
+ if(triggered) return
+
+ if(istype(M, /mob/living/carbon/human) || istype(M, /mob/living/carbon/monkey))
+ for(var/mob/O in viewers(world.view, src.loc))
+ O << "[M] triggered the \icon[src] [src]"
+ triggered = 1
+ call(src,triggerproc)(M)
+
+/obj/effect/meatgrinder/proc/triggerrad1(mob)
+ var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
+ for(var/mob/O in viewers(world.view, src.loc))
+ s.set_up(3, 1, src)
+ s.start()
+ explosion(mob, 1, 0, 0, 0)
+ spawn(0)
+ del(src)
+
+/obj/effect/meatgrinder
+ name = "Meat Grinder"
+ icon_state = "blob"
+ triggerproc = "triggerrad1"
+
+
+/////For the Wishgranter///////////
+
+/mob/living/carbon/proc/immortality()
+ set category = "Immortality"
+ set name = "Resurrection"
+
+ var/mob/living/carbon/C = usr
+ if(!C.stat)
+ C << "You're not dead yet!"
+ return
+ C << "Death is not your end!"
+
+ spawn(rand(800,1200))
+ if(C.stat == DEAD)
+ dead_mob_list -= C
+ living_mob_list += C
+ C.stat = CONSCIOUS
+ C.tod = null
+ C.setToxLoss(0)
+ C.setOxyLoss(0)
+ C.setCloneLoss(0)
+ C.SetParalysis(0)
+ C.SetStunned(0)
+ C.SetWeakened(0)
+ C.radiation = 0
+ C.heal_overall_damage(C.getBruteLoss(), C.getFireLoss())
+ C.reagents.clear_reagents()
+ C << "You have regenerated."
+ C.visible_message("[usr] appears to wake from the dead, having healed all wounds.")
+ C.update_canmove()
+>>>>>>> 337cdf0... Standardize LASER, NOCLONE, and HUSK
return 1
\ No newline at end of file