diff --git a/code/WorkInProgress/Cib/amorph/life.dm b/code/WorkInProgress/Cib/amorph/life.dm index 14c4d41ccab..e3eae759756 100644 --- a/code/WorkInProgress/Cib/amorph/life.dm +++ b/code/WorkInProgress/Cib/amorph/life.dm @@ -396,7 +396,7 @@ handle_regular_hud_updates() - if (src.stat == 2 || (XRAY in mutations)) + if (src.stat == 2 || (M_XRAY in mutations)) src.sight |= SEE_TURFS src.sight |= SEE_MOBS src.sight |= SEE_OBJS diff --git a/code/game/dna/dna2_domutcheck.dm b/code/game/dna/dna2_domutcheck.dm index 71f7e0aca5f..7d847dc4b73 100644 --- a/code/game/dna/dna2_domutcheck.dm +++ b/code/game/dna/dna2_domutcheck.dm @@ -150,12 +150,12 @@ M.disabilities |= TOURETTES M << "\red You twitch." if (M.dna.GetSEState(XRAYBLOCK)) - if(forced || probinj(30,inj) || (XRAY in old_mutations)) + if(forced || probinj(30,inj) || (M_XRAY in old_mutations)) M << "\blue The walls suddenly disappear." // M.sight |= (SEE_MOBS|SEE_OBJS|SEE_TURFS) // M.see_in_dark = 8 // M.see_invisible = 2 - M.mutations.Add(XRAY) + M.mutations.Add(M_XRAY) if (M.dna.GetSEState(NERVOUSBLOCK)) M.disabilities |= NERVOUS M << "\red You feel nervous." diff --git a/code/game/dna/genes/powers.dm b/code/game/dna/genes/powers.dm index dc38f464af4..f339bb73733 100644 --- a/code/game/dna/genes/powers.dm +++ b/code/game/dna/genes/powers.dm @@ -167,7 +167,7 @@ /datum/dna/gene/basic/xray name="X-Ray Vision" activation_messages=list("The walls suddenly disappear.") - mutation=XRAY + mutation=M_XRAY New() block=XRAYBLOCK diff --git a/code/game/machinery/wishgranter.dm b/code/game/machinery/wishgranter.dm index 15256590eff..fde7b0d076a 100644 --- a/code/game/machinery/wishgranter.dm +++ b/code/game/machinery/wishgranter.dm @@ -42,8 +42,8 @@ if (!(LASER in user.mutations)) user.mutations.Add(LASER) - if (!(XRAY in user.mutations)) - user.mutations.Add(XRAY) + 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 diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index cc651af199d..05bd557d1e0 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -77,7 +77,7 @@ if(istype(M, /mob/living/carbon/human) || istype(M, /mob/living/carbon/monkey)) //robots and aliens are unaffected if(M.stat == DEAD || M.sdisabilities & BLIND) //mob is dead or fully blind user << "[M] pupils does not react to the light!" - else if(XRAY in M.mutations) //mob has X-RAY vision + else if(M_XRAY in M.mutations) //mob has X-RAY vision flick("flash", M.flash) //Yes, you can still get flashed wit X-Ray. user << "[M] pupils give an eerie glow!" else //they're okay! diff --git a/code/modules/mob/living/carbon/alien/humanoid/life.dm b/code/modules/mob/living/carbon/alien/humanoid/life.dm index 25c823fa199..65f02608354 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/life.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/life.dm @@ -380,7 +380,7 @@ proc/handle_regular_hud_updates() - if (stat == 2 || (XRAY in mutations)) + if (stat == 2 || (M_XRAY in mutations)) sight |= SEE_TURFS sight |= SEE_MOBS sight |= SEE_OBJS diff --git a/code/modules/mob/living/carbon/alien/larva/life.dm b/code/modules/mob/living/carbon/alien/larva/life.dm index cdae216d5c5..076df1370f8 100644 --- a/code/modules/mob/living/carbon/alien/larva/life.dm +++ b/code/modules/mob/living/carbon/alien/larva/life.dm @@ -293,7 +293,7 @@ proc/handle_regular_hud_updates() - if (stat == 2 || (XRAY in mutations)) + if (stat == 2 || (M_XRAY in mutations)) sight |= SEE_TURFS sight |= SEE_MOBS sight |= SEE_OBJS diff --git a/code/modules/mob/living/carbon/brain/life.dm b/code/modules/mob/living/carbon/brain/life.dm index bcf3a4f5acb..6e5561c917c 100644 --- a/code/modules/mob/living/carbon/brain/life.dm +++ b/code/modules/mob/living/carbon/brain/life.dm @@ -206,7 +206,7 @@ proc/handle_regular_hud_updates() - if (stat == 2 || (XRAY in src.mutations)) + if (stat == 2 || (M_XRAY in src.mutations)) sight |= SEE_TURFS sight |= SEE_MOBS sight |= SEE_OBJS diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 5c90dbf9c26..ee516ac8be2 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -1283,8 +1283,8 @@ if((VAMP_FULL in mind.vampire.powers)) sight |= SEE_TURFS|SEE_MOBS|SEE_OBJS see_in_dark = 8 - if(!druggy) see_invisible = SEE_INVISIBLE_LEVEL_TWO - if(XRAY in mutations) + if(!druggy) see_invisible = SEE_INVISIBLE_LEVEL_TWO + if(M_XRAY in mutations) sight |= SEE_TURFS|SEE_MOBS|SEE_OBJS see_in_dark = 8 if(!druggy) see_invisible = SEE_INVISIBLE_LEVEL_TWO diff --git a/code/modules/mob/living/carbon/monkey/life.dm b/code/modules/mob/living/carbon/monkey/life.dm index 1c350dbbdb4..8637787474d 100644 --- a/code/modules/mob/living/carbon/monkey/life.dm +++ b/code/modules/mob/living/carbon/monkey/life.dm @@ -571,7 +571,7 @@ proc/handle_regular_hud_updates() - if (stat == 2 || (XRAY in mutations)) + if (stat == 2 || (M_XRAY in mutations)) sight |= SEE_TURFS sight |= SEE_MOBS sight |= SEE_OBJS diff --git a/code/modules/mob/living/silicon/mommi/life.dm b/code/modules/mob/living/silicon/mommi/life.dm index 5b9f8bd98c1..948d5967888 100644 --- a/code/modules/mob/living/silicon/mommi/life.dm +++ b/code/modules/mob/living/silicon/mommi/life.dm @@ -133,7 +133,7 @@ / /mob/living/silicon/robot/mommi/handle_regular_hud_updates() - if (src.stat == 2 || XRAY in mutations || src.sight_mode & BORGXRAY) + if (src.stat == 2 || M_XRAY in mutations || src.sight_mode & BORGXRAY) src.sight |= SEE_TURFS src.sight |= SEE_MOBS src.sight |= SEE_OBJS diff --git a/code/modules/mob/living/silicon/robot/life.dm b/code/modules/mob/living/silicon/robot/life.dm index 21fcd4f873d..62f27029eb5 100644 --- a/code/modules/mob/living/silicon/robot/life.dm +++ b/code/modules/mob/living/silicon/robot/life.dm @@ -140,7 +140,7 @@ /mob/living/silicon/robot/proc/handle_regular_hud_updates() - if (src.stat == 2 || XRAY in mutations || src.sight_mode & BORGXRAY) + if (src.stat == 2 || M_XRAY in mutations || src.sight_mode & BORGXRAY) src.sight |= SEE_TURFS src.sight |= SEE_MOBS src.sight |= SEE_OBJS diff --git a/code/setup.dm b/code/setup.dm index 77a251ed7d0..34eefde7662 100644 --- a/code/setup.dm +++ b/code/setup.dm @@ -323,7 +323,7 @@ var/MAX_EXPLOSION_RANGE = 14 // Generic mutations: #define M_TK 1 #define M_RESIST_COLD 2 -#define XRAY 3 +#define M_XRAY 3 #define HULK 4 #define CLUMSY 5 #define FAT 6 diff --git a/code/unused/hivebot/life.dm b/code/unused/hivebot/life.dm index 362328cb4dd..9ab6e8c3e89 100644 --- a/code/unused/hivebot/life.dm +++ b/code/unused/hivebot/life.dm @@ -116,7 +116,7 @@ handle_regular_hud_updates() - if (src.stat == 2 || XRAY in src.mutations) + if (src.stat == 2 || M_XRAY in src.mutations) src.sight |= SEE_TURFS src.sight |= SEE_MOBS src.sight |= SEE_OBJS diff --git a/maps/RandomZLevels/wildwest.dm b/maps/RandomZLevels/wildwest.dm index ec690435dbd..f7f82434713 100644 --- a/maps/RandomZLevels/wildwest.dm +++ b/maps/RandomZLevels/wildwest.dm @@ -1,3 +1,4 @@ +<<<<<<< HEAD /* Code for the Wild West map by Brotemis * Contains: * Wish Granter @@ -174,4 +175,182 @@ C << "You have regenerated." C.visible_message("[usr] appears to wake from the dead, having healed all wounds.") C.update_canmove() +======= +/* 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 (!(LASER in user.mutations)) + user.mutations.Add(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() +>>>>>>> da9b61b... Standardize XRAY. return 1 \ No newline at end of file