mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-23 03:57:13 +01:00
Standardize mutation constants, remove ambiguity, remove non-implemented muts.
Conflicts: code/_onclick/click.dm code/game/dna/genes/powers.dm code/game/machinery/wishgranter.dm code/modules/mob/living/carbon/alien/alien.dm code/modules/mob/living/carbon/alien/humanoid/life.dm code/modules/mob/living/carbon/alien/larva/life.dm code/modules/mob/living/carbon/human/examine.dm code/modules/mob/living/carbon/human/human.dm code/modules/mob/living/carbon/human/human_movement.dm code/modules/mob/living/carbon/human/life.dm code/modules/mob/living/carbon/human/update_icons.dm code/modules/mob/living/carbon/monkey/life.dm code/modules/mob/living/carbon/species.dm code/modules/mob/living/damage_procs.dm code/modules/mob/living/living.dm code/modules/power/lighting.dm code/modules/reagents/Chemistry-Recipes.dm code/setup.dm maps/RandomZLevels/wildwest.dm
This commit is contained in:
@@ -171,7 +171,7 @@
|
||||
if((LASER in mutations) && a_intent == "harm")
|
||||
LaserEyes(A) // moved into a proc below
|
||||
return
|
||||
else if(TK in mutations)
|
||||
else if(M_TK in mutations)
|
||||
switch(get_dist(src,A))
|
||||
if(0)
|
||||
;
|
||||
|
||||
@@ -160,7 +160,7 @@
|
||||
if (istype(location, /turf/simulated))
|
||||
location:add_blood_floor(M)
|
||||
if("fire")
|
||||
if (!(COLD_RESISTANCE in M.mutations))
|
||||
if (!(M_RESIST_COLD in M.mutations))
|
||||
M.take_organ_damage(0, power)
|
||||
M << "Aargh it burns!"
|
||||
M.updatehealth()
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
else if(istype(G) && G.Touch(A,0)) // for magic gloves
|
||||
return
|
||||
|
||||
else if(TK in mutations)
|
||||
else if(M_TK in mutations)
|
||||
switch(get_dist(src,A))
|
||||
if(1 to 5) // not adjacent may mean blocked by window
|
||||
next_move += 2
|
||||
|
||||
@@ -39,13 +39,13 @@ var/const/tk_maxrange = 15
|
||||
|
||||
/obj/item/attack_tk(mob/user)
|
||||
if(user.stat || !isturf(loc)) return
|
||||
if((TK in user.mutations) && !user.get_active_hand()) // both should already be true to get here
|
||||
if((M_TK in user.mutations) && !user.get_active_hand()) // both should already be true to get here
|
||||
var/obj/item/tk_grab/O = new(src)
|
||||
user.put_in_active_hand(O)
|
||||
O.host = user
|
||||
O.focus_object(src)
|
||||
else
|
||||
warning("Strange attack_tk(): TK([TK in user.mutations]) empty hand([!user.get_active_hand()])")
|
||||
warning("Strange attack_tk(): TK([M_TK in user.mutations]) empty hand([!user.get_active_hand()])")
|
||||
return
|
||||
|
||||
|
||||
@@ -101,7 +101,7 @@ var/const/tk_maxrange = 15
|
||||
if(!host || host != user)
|
||||
del(src)
|
||||
return
|
||||
if(!(TK in host.mutations))
|
||||
if(!(M_TK in host.mutations))
|
||||
del(src)
|
||||
return
|
||||
if(isobj(target) && !isturf(target.loc))
|
||||
@@ -198,7 +198,7 @@ var/const/tk_maxrange = 15
|
||||
//equip_to_slot_or_del(obj/item/W, slot, del_on_fail = 1)
|
||||
/*
|
||||
if(istype(user, /mob/living/carbon))
|
||||
if(user:mutations & TK && get_dist(source, user) <= 7)
|
||||
if(user:mutations & M_TK && get_dist(source, user) <= 7)
|
||||
if(user:get_active_hand()) return 0
|
||||
var/X = source:x
|
||||
var/Y = source:y
|
||||
|
||||
+1
-1
@@ -292,7 +292,7 @@ its easier to just keep the beam vertical.
|
||||
add_fibers(M)
|
||||
|
||||
//He has no prints!
|
||||
if (mFingerprints in M.mutations)
|
||||
if (M_FINGERPRINTS in M.mutations)
|
||||
if(fingerprintslast != M.key)
|
||||
fingerprintshidden += "(Has no fingerprints) Real name: [M.real_name], Key: [M.key]"
|
||||
fingerprintslast = M.key
|
||||
|
||||
@@ -69,57 +69,57 @@
|
||||
var/forced = (flags & MUTCHK_FORCED) == MUTCHK_FORCED
|
||||
|
||||
if(M.dna.GetSEState(NOBREATHBLOCK))
|
||||
if(forced || probinj(45,inj) || (mNobreath in old_mutations))
|
||||
if(forced || probinj(45,inj) || (M_NO_BREATH in old_mutations))
|
||||
M << "\blue You feel no need to breathe."
|
||||
M.mutations.Add(mNobreath)
|
||||
M.mutations.Add(M_NO_BREATH)
|
||||
if(M.dna.GetSEState(REMOTEVIEWBLOCK))
|
||||
if(forced || probinj(45,inj) || (mRemote in old_mutations))
|
||||
if(forced || probinj(45,inj) || (M_REMOTE_VIEW in old_mutations))
|
||||
M << "\blue Your mind expands"
|
||||
M.mutations.Add(mRemote)
|
||||
M.mutations.Add(M_REMOTE_VIEW)
|
||||
M.verbs += /mob/living/carbon/human/proc/remoteobserve
|
||||
if(M.dna.GetSEState(REGENERATEBLOCK))
|
||||
if(forced || probinj(45,inj) || (mRegen in old_mutations))
|
||||
if(forced || probinj(45,inj) || (M_REGEN in old_mutations))
|
||||
M << "\blue You feel better"
|
||||
M.mutations.Add(mRegen)
|
||||
M.mutations.Add(M_REGEN)
|
||||
if(M.dna.GetSEState(INCREASERUNBLOCK))
|
||||
if(forced || probinj(45,inj) || (mRun in old_mutations))
|
||||
if(forced || probinj(45,inj) || (M_RUN in old_mutations))
|
||||
M << "\blue Your leg muscles pulsate."
|
||||
M.mutations.Add(mRun)
|
||||
M.mutations.Add(M_RUN)
|
||||
if(M.dna.GetSEState(REMOTETALKBLOCK))
|
||||
if(forced || probinj(45,inj) || (mRemotetalk in old_mutations))
|
||||
if(forced || probinj(45,inj) || (M_REMOTE_TALK in old_mutations))
|
||||
M << "\blue You expand your mind outwards"
|
||||
M.mutations.Add(mRemotetalk)
|
||||
M.mutations.Add(M_REMOTE_TALK)
|
||||
M.verbs += /mob/living/carbon/human/proc/remotesay
|
||||
if(M.dna.GetSEState(MORPHBLOCK))
|
||||
if(forced || probinj(45,inj) || (mMorph in old_mutations))
|
||||
M.mutations.Add(mMorph)
|
||||
if(forced || probinj(45,inj) || (M_MORPH in old_mutations))
|
||||
M.mutations.Add(M_MORPH)
|
||||
M << "\blue Your skin feels strange"
|
||||
M.verbs += /mob/living/carbon/human/proc/morph
|
||||
if(M.dna.GetSEState(COLDBLOCK))
|
||||
if(!(COLD_RESISTANCE in old_mutations))
|
||||
if(forced || probinj(15,inj) || (mHeatres in old_mutations))
|
||||
M.mutations.Add(mHeatres)
|
||||
if(!(M_RESIST_COLD in old_mutations))
|
||||
if(forced || probinj(15,inj) || (M_RESIST_HEAT in old_mutations))
|
||||
M.mutations.Add(M_RESIST_HEAT)
|
||||
M << "\blue Your skin is icy to the touch"
|
||||
else
|
||||
if(forced || probinj(5,inj) || (mHeatres in old_mutations))
|
||||
M.mutations.Add(mHeatres)
|
||||
if(forced || probinj(5,inj) || (M_RESIST_HEAT in old_mutations))
|
||||
M.mutations.Add(M_RESIST_HEAT)
|
||||
M << "\blue Your skin is icy to the touch"
|
||||
if(M.dna.GetSEState(HALLUCINATIONBLOCK))
|
||||
if(forced || probinj(45,inj) || (mHallucination in old_mutations))
|
||||
M.mutations.Add(mHallucination)
|
||||
if(forced || probinj(45,inj) || (M_HALLUCINATE in old_mutations))
|
||||
M.mutations.Add(M_HALLUCINATE)
|
||||
M << "\red Your mind says 'Hello'"
|
||||
if(M.dna.GetSEState(NOPRINTSBLOCK))
|
||||
if(forced || probinj(45,inj) || (mFingerprints in old_mutations))
|
||||
M.mutations.Add(mFingerprints)
|
||||
if(forced || probinj(45,inj) || (M_FINGERPRINTS in old_mutations))
|
||||
M.mutations.Add(M_FINGERPRINTS)
|
||||
M << "\blue Your fingers feel numb"
|
||||
if(M.dna.GetSEState(SHOCKIMMUNITYBLOCK))
|
||||
if(forced || probinj(45,inj) || (mShock in old_mutations))
|
||||
M.mutations.Add(mShock)
|
||||
if(forced || probinj(45,inj) || (M_NO_SHOCK in old_mutations))
|
||||
M.mutations.Add(M_NO_SHOCK)
|
||||
M << "\blue Your skin feels strange"
|
||||
if(M.dna.GetSEState(SMALLSIZEBLOCK))
|
||||
if(forced || probinj(45,inj) || (mSmallsize in old_mutations))
|
||||
if(forced || probinj(45,inj) || (M_DWARF in old_mutations))
|
||||
M << "\blue Your skin feels rubbery"
|
||||
M.mutations.Add(mSmallsize)
|
||||
M.mutations.Add(M_DWARF)
|
||||
M.pass_flags |= 1
|
||||
|
||||
|
||||
@@ -160,21 +160,21 @@
|
||||
M.disabilities |= NERVOUS
|
||||
M << "\red You feel nervous."
|
||||
if (M.dna.GetSEState(FIREBLOCK))
|
||||
if(!(mHeatres in old_mutations))
|
||||
if(forced || probinj(30,inj) || (COLD_RESISTANCE in old_mutations))
|
||||
if(!(M_RESIST_HEAT in old_mutations))
|
||||
if(forced || probinj(30,inj) || (M_RESIST_COLD in old_mutations))
|
||||
M << "\blue Your body feels warm."
|
||||
M.mutations.Add(COLD_RESISTANCE)
|
||||
M.mutations.Add(M_RESIST_COLD)
|
||||
else
|
||||
if(forced || probinj(5,inj) || (COLD_RESISTANCE in old_mutations))
|
||||
if(forced || probinj(5,inj) || (M_RESIST_COLD in old_mutations))
|
||||
M << "\blue Your body feels warm."
|
||||
M.mutations.Add(COLD_RESISTANCE)
|
||||
M.mutations.Add(M_RESIST_COLD)
|
||||
if (M.dna.GetSEState(BLINDBLOCK))
|
||||
M.sdisabilities |= BLIND
|
||||
M << "\red You can't seem to see anything."
|
||||
if (M.dna.GetSEState(TELEBLOCK))
|
||||
if(forced || probinj(15,inj) || (TK in old_mutations))
|
||||
if(forced || probinj(15,inj) || (M_TK in old_mutations))
|
||||
M << "\blue You feel smarter."
|
||||
M.mutations.Add(TK)
|
||||
M.mutations.Add(M_TK)
|
||||
if (M.dna.GetSEState(DEAFBLOCK))
|
||||
M.sdisabilities |= DEAF
|
||||
M.ear_deaf = 1
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
/proc/randmutg(var/mob/living/M)
|
||||
if(!M) return
|
||||
M.dna.check_integrity()
|
||||
var/block = pick(HULKBLOCK,XRAYBLOCK,FIREBLOCK,TELEBLOCK,NOBREATHBLOCK,REMOTEVIEWBLOCK,REGENERATEBLOCK,INCREASERUNBLOCK,REMOTETALKBLOCK,MORPHBLOCK,NOPRINTSBLOCK,SHOCKIMMUNITYBLOCK,SMALLSIZEBLOCK)
|
||||
var/block = pick(HULKBLOCK,XRAYBLOCK,FIREBLOCK,COLDBLOCK,TELEBLOCK,NOBREATHBLOCK,REMOTEVIEWBLOCK,REGENERATEBLOCK,INCREASERUNBLOCK,REMOTETALKBLOCK,MORPHBLOCK,NOPRINTSBLOCK,SHOCKIMMUNITYBLOCK,SMALLSIZEBLOCK)
|
||||
M.dna.SetSEState(block, 1)
|
||||
|
||||
// Random Appearance Mutation
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
/datum/dna/gene/disability/hallucinate
|
||||
name="Hallucinate"
|
||||
activation_message="Your mind says 'Hello'."
|
||||
mutation=mHallucination
|
||||
mutation=M_HALLUCINATE
|
||||
|
||||
New()
|
||||
block=HALLUCINATIONBLOCK
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
/datum/dna/gene/basic/nobreath
|
||||
name="No Breathing"
|
||||
activation_messages=list("You feel no need to breathe.")
|
||||
mutation=mNobreath
|
||||
mutation=M_NO_BREATH
|
||||
|
||||
New()
|
||||
block=NOBREATHBLOCK
|
||||
@@ -13,7 +13,7 @@
|
||||
/datum/dna/gene/basic/remoteview
|
||||
name="Remote Viewing"
|
||||
activation_messages=list("Your mind expands.")
|
||||
mutation=mRemote
|
||||
mutation=M_REMOTE_VIEW
|
||||
|
||||
New()
|
||||
block=REMOTEVIEWBLOCK
|
||||
@@ -25,7 +25,7 @@
|
||||
/datum/dna/gene/basic/regenerate
|
||||
name="Regenerate"
|
||||
activation_messages=list("You feel better.")
|
||||
mutation=mRegen
|
||||
mutation=M_REGEN
|
||||
|
||||
New()
|
||||
block=REGENERATEBLOCK
|
||||
@@ -33,7 +33,7 @@
|
||||
/datum/dna/gene/basic/increaserun
|
||||
name="Super Speed"
|
||||
activation_messages=list("Your leg muscles pulsate.")
|
||||
mutation=mRun
|
||||
mutation=M_RUN
|
||||
|
||||
New()
|
||||
block=INCREASERUNBLOCK
|
||||
@@ -41,7 +41,7 @@
|
||||
/datum/dna/gene/basic/remotetalk
|
||||
name="Telepathy"
|
||||
activation_messages=list("You expand your mind outwards.")
|
||||
mutation=mRemotetalk
|
||||
mutation=M_REMOTE_TALK
|
||||
|
||||
New()
|
||||
block=REMOTETALKBLOCK
|
||||
@@ -53,7 +53,7 @@
|
||||
/datum/dna/gene/basic/morph
|
||||
name="Morph"
|
||||
activation_messages=list("Your skin feels strange.")
|
||||
mutation=mMorph
|
||||
mutation=M_MORPH
|
||||
|
||||
New()
|
||||
block=MORPHBLOCK
|
||||
@@ -62,11 +62,29 @@
|
||||
..(M)
|
||||
M.verbs += /mob/living/carbon/human/proc/morph
|
||||
|
||||
/datum/dna/gene/basic/heat_resist
|
||||
name="Heat Resistance"
|
||||
activation_messages=list("Your skin is icy to the touch.")
|
||||
mutation=M_RESIST_HEAT
|
||||
|
||||
New()
|
||||
block=COLDBLOCK
|
||||
|
||||
can_activate(var/mob/M,var/flags)
|
||||
// Probability check
|
||||
var/_prob = 15
|
||||
if(M_RESIST_COLD in M.mutations)
|
||||
_prob=5
|
||||
if(probinj(_prob,(flags&MUTCHK_FORCED)))
|
||||
return 1
|
||||
|
||||
OnDrawUnderlays(var/mob/M,var/g,var/fat)
|
||||
return "cold[fat]_s"
|
||||
|
||||
/datum/dna/gene/basic/cold_resist
|
||||
name="Cold Resistance"
|
||||
activation_messages=list("Your body is filled with warmth.")
|
||||
mutation=COLD_RESISTANCE
|
||||
mutation=M_RESIST_COLD
|
||||
|
||||
New()
|
||||
block=FIREBLOCK
|
||||
@@ -74,6 +92,8 @@
|
||||
can_activate(var/mob/M,var/flags)
|
||||
// Probability check
|
||||
var/_prob=30
|
||||
if(M_RESIST_HEAT in M.mutations)
|
||||
_prob=5
|
||||
if(probinj(_prob,(flags&MUTCHK_FORCED)))
|
||||
return 1
|
||||
|
||||
@@ -83,7 +103,7 @@
|
||||
/datum/dna/gene/basic/noprints
|
||||
name="No Prints"
|
||||
activation_messages=list("Your fingers feel numb.")
|
||||
mutation=mFingerprints
|
||||
mutation=M_FINGERPRINTS
|
||||
|
||||
New()
|
||||
block=NOPRINTSBLOCK
|
||||
@@ -91,7 +111,7 @@
|
||||
/datum/dna/gene/basic/noshock
|
||||
name="Shock Immunity"
|
||||
activation_messages=list("Your skin feels strange.")
|
||||
mutation=mShock
|
||||
mutation=M_NO_SHOCK
|
||||
|
||||
New()
|
||||
block=SHOCKIMMUNITYBLOCK
|
||||
@@ -99,7 +119,7 @@
|
||||
/datum/dna/gene/basic/midget
|
||||
name="Midget"
|
||||
activation_messages=list("Your skin feels rubbery.")
|
||||
mutation=mSmallsize
|
||||
mutation=M_DWARF
|
||||
|
||||
New()
|
||||
block=SMALLSIZEBLOCK
|
||||
@@ -124,7 +144,7 @@
|
||||
|
||||
can_activate(var/mob/M,var/flags)
|
||||
// Can't be big and small.
|
||||
if(mSmallsize in M.mutations)
|
||||
if(M_DWARF in M.mutations)
|
||||
return 0
|
||||
return ..(M,flags)
|
||||
|
||||
@@ -155,7 +175,7 @@
|
||||
/datum/dna/gene/basic/tk
|
||||
name="Telekenesis"
|
||||
activation_messages=list("You feel smarter.")
|
||||
mutation=TK
|
||||
mutation=M_TK
|
||||
activation_prob=15
|
||||
|
||||
New()
|
||||
|
||||
@@ -49,6 +49,7 @@
|
||||
INCREASERUNBLOCK = getAssignedBlock("INCREASERUN", numsToAssign, DNA_HARDER_BOUNDS)
|
||||
REMOTETALKBLOCK = getAssignedBlock("REMOTETALK", numsToAssign, DNA_HARDER_BOUNDS)
|
||||
MORPHBLOCK = getAssignedBlock("MORPH", numsToAssign, DNA_HARDER_BOUNDS)
|
||||
COLDBLOCK = getAssignedBlock("COLD", numsToAssign)
|
||||
HALLUCINATIONBLOCK = getAssignedBlock("HALLUCINATION", numsToAssign)
|
||||
NOPRINTSBLOCK = getAssignedBlock("NOPRINTS", numsToAssign, DNA_HARD_BOUNDS)
|
||||
SHOCKIMMUNITYBLOCK = getAssignedBlock("SHOCKIMMUNITY", numsToAssign)
|
||||
|
||||
@@ -48,14 +48,19 @@
|
||||
user.see_in_dark = 8
|
||||
user.see_invisible = SEE_INVISIBLE_LEVEL_TWO
|
||||
|
||||
if (!(COLD_RESISTANCE in user.mutations))
|
||||
user.mutations.Add(COLD_RESISTANCE)
|
||||
if (!(M_RESIST_COLD in user.mutations))
|
||||
user.mutations.Add(M_RESIST_COLD)
|
||||
|
||||
if (!(TK in user.mutations))
|
||||
user.mutations.Add(TK)
|
||||
if (!(M_RESIST_HEAT in user.mutations))
|
||||
user.mutations.Add(M_RESIST_HEAT)
|
||||
|
||||
if (!(M_TK in user.mutations))
|
||||
user.mutations.Add(M_TK)
|
||||
|
||||
/* Not used
|
||||
if(!(HEAL in user.mutations))
|
||||
user.mutations.Add(HEAL)
|
||||
*/
|
||||
|
||||
user.update_mutations()
|
||||
|
||||
|
||||
+1
-1
@@ -59,7 +59,7 @@ var/REGENERATEBLOCK = 0
|
||||
var/INCREASERUNBLOCK = 0
|
||||
var/REMOTETALKBLOCK = 0
|
||||
var/MORPHBLOCK = 0
|
||||
var/BLENDBLOCK = 0
|
||||
var/COLDBLOCK = 0
|
||||
var/HALLUCINATIONBLOCK = 0
|
||||
var/NOPRINTSBLOCK = 0
|
||||
var/SHOCKIMMUNITYBLOCK = 0
|
||||
|
||||
@@ -116,7 +116,7 @@
|
||||
/mob/living/carbon/alien/proc/handle_mutations_and_radiation()
|
||||
|
||||
if(getFireLoss())
|
||||
if((COLD_RESISTANCE in mutations) || prob(5))
|
||||
if((M_RESIST_HEAT in mutations) || prob(5))
|
||||
adjustFireLoss(-1)
|
||||
|
||||
// Aliens love radiation nom nom nom
|
||||
@@ -221,4 +221,4 @@ Des: Removes all infected images from the alien.
|
||||
hud_used.alien_plasma_display.maptext = "<div align='center' valign='middle' style='position:relative; top:0px; left:6px'> <font color='magenta'>[storedPlasma]</font></div>"
|
||||
|
||||
/mob/living/carbon/alien/larva/updatePlasmaDisplay()
|
||||
return
|
||||
return
|
||||
|
||||
@@ -193,7 +193,7 @@
|
||||
breath.toxins -= toxins_used
|
||||
breath.oxygen += toxins_used
|
||||
|
||||
if(breath.temperature > (T0C+66) && !(COLD_RESISTANCE in mutations)) // Hot air hurts :(
|
||||
if(breath.temperature > (T0C+66) && !(M_RESIST_HEAT in mutations)) // Hot air hurts :(
|
||||
if(prob(20))
|
||||
src << "\red You feel a searing heat in your lungs!"
|
||||
fire_alert = max(fire_alert, 1)
|
||||
@@ -239,7 +239,7 @@
|
||||
thermal_protection += 0.2
|
||||
if(wear_suit && (wear_suit.flags & SUITSPACE))
|
||||
thermal_protection += 3
|
||||
if(COLD_RESISTANCE in mutations)
|
||||
if(M_RESIST_COLD in mutations)
|
||||
thermal_protection += 5
|
||||
|
||||
return thermal_protection
|
||||
|
||||
@@ -166,7 +166,7 @@
|
||||
breath.toxins -= toxins_used
|
||||
breath.oxygen += toxins_used
|
||||
|
||||
if(breath.temperature > (T0C+66) && !(COLD_RESISTANCE in mutations)) // Hot air hurts :(
|
||||
if(breath.temperature > (T0C+66) && !(M_RESIST_HEAT in mutations)) // Hot air hurts :(
|
||||
if(prob(20))
|
||||
src << "\red You feel a searing heat in your lungs!"
|
||||
fire_alert = max(fire_alert, 1)
|
||||
|
||||
@@ -203,8 +203,8 @@
|
||||
if(suiciding)
|
||||
msg += "<span class='warning'>[t_He] appears to have commited suicide... there is no hope of recovery.</span>\n"
|
||||
|
||||
if(mSmallsize in mutations)
|
||||
msg += "[t_He] [t_is] small halfling!\n"
|
||||
if(M_DWARF in mutations)
|
||||
msg += "[t_He] [t_is] a halfling!\n"
|
||||
|
||||
var/distance = get_dist(usr,src)
|
||||
if(istype(usr, /mob/dead/observer) || usr.stat == 2) // ghosts can see anything
|
||||
@@ -483,4 +483,4 @@
|
||||
else
|
||||
return 0
|
||||
else
|
||||
return 0
|
||||
return 0
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
|
||||
/mob/living/carbon/human/grey/New()
|
||||
set_species("Grey")
|
||||
mutations.Add(mRemotetalk)
|
||||
mutations.Add(M_REMOTE_TALK)
|
||||
verbs += /mob/living/carbon/human/proc/remotesay
|
||||
..()
|
||||
|
||||
@@ -525,9 +525,9 @@
|
||||
if(gloves)
|
||||
var/obj/item/clothing/gloves/G = gloves
|
||||
siemens_coeff = G.siemens_coefficient
|
||||
//If they have shock immunity mutation
|
||||
if(mShock in src.mutations)
|
||||
siemens_coeff = 0
|
||||
//If they have shock immunity mutation
|
||||
if(M_NO_SHOCK in src.mutations)
|
||||
siemens_coeff = 0
|
||||
return ..(shock_damage,source,siemens_coeff)
|
||||
|
||||
|
||||
@@ -953,7 +953,7 @@
|
||||
remoteview_target = null
|
||||
return
|
||||
|
||||
if(!(mMorph in mutations))
|
||||
if(!(M_MORPH in mutations))
|
||||
src.verbs -= /mob/living/carbon/human/proc/morph
|
||||
return
|
||||
|
||||
@@ -1032,7 +1032,7 @@
|
||||
remoteview_target = null
|
||||
return
|
||||
|
||||
if(!(mRemotetalk in src.mutations))
|
||||
if(!(M_REMOTE_TALK in src.mutations))
|
||||
src.verbs -= /mob/living/carbon/human/proc/remotesay
|
||||
return
|
||||
var/list/creatures = list()
|
||||
@@ -1043,7 +1043,7 @@
|
||||
return
|
||||
|
||||
var/say = input ("What do you wish to say")
|
||||
if(mRemotetalk in target.mutations)
|
||||
if(M_REMOTE_TALK in target.mutations)
|
||||
target.show_message("\blue You hear [src.real_name]'s voice: [say]")
|
||||
else
|
||||
target.show_message("\blue You hear a voice that seems to echo around the room: [say]")
|
||||
@@ -1060,7 +1060,7 @@
|
||||
reset_view(0)
|
||||
return
|
||||
|
||||
if(!(mRemote in src.mutations))
|
||||
if(!(M_REMOTE_VIEW in src.mutations))
|
||||
remoteview_target = null
|
||||
reset_view(0)
|
||||
src.verbs -= /mob/living/carbon/human/proc/remoteobserve
|
||||
|
||||
@@ -12,6 +12,10 @@
|
||||
|
||||
if(reagents.has_reagent("nuka_cola")) return -1
|
||||
|
||||
if((M_RUN in mutations)) return -1
|
||||
|
||||
if (istype(loc, /turf/space)) return -1 // It's hard to be slowed down in space by... anything
|
||||
|
||||
var/health_deficiency = (100 - health - halloss)
|
||||
if(health_deficiency >= 40) tally += (health_deficiency / 25)
|
||||
|
||||
@@ -44,7 +48,7 @@
|
||||
if (bodytemperature < 283.222)
|
||||
tally += (283.222 - bodytemperature) / 10 * 1.75
|
||||
|
||||
if(mRun in mutations)
|
||||
if(M_RUN in mutations)
|
||||
tally = 0
|
||||
|
||||
return (tally+config.human_delay)
|
||||
|
||||
@@ -256,7 +256,7 @@
|
||||
proc/handle_mutations_and_radiation()
|
||||
|
||||
if(getFireLoss())
|
||||
if((COLD_RESISTANCE in mutations) || (prob(1)))
|
||||
if((M_RESIST_HEAT in mutations) || (prob(1)))
|
||||
heal_organ_damage(0,1)
|
||||
|
||||
|
||||
@@ -334,7 +334,7 @@
|
||||
|
||||
proc/breathe()
|
||||
if(reagents.has_reagent("lexorin")) return
|
||||
if(mNobreath in mutations) return // No breath mutation means no breathing.
|
||||
if(M_NO_BREATH in mutations) return // No breath mutation means no breathing.
|
||||
if(istype(loc, /obj/machinery/atmospherics/unary/cryo_cell)) return
|
||||
if(species && species.flags & NO_BREATHE) return
|
||||
|
||||
@@ -563,7 +563,7 @@
|
||||
spawn(0) emote(pick("giggle", "laugh"))
|
||||
SA.moles = 0
|
||||
|
||||
if( (abs(310.15 - breath.temperature) > 50) && !(COLD_RESISTANCE in mutations)) // Hot air hurts :(
|
||||
if( (abs(310.15 - breath.temperature) > 50) && !(M_RESIST_HEAT in mutations)) // Hot air hurts :(
|
||||
if(status_flags & GODMODE) return 1 //godmode
|
||||
if(breath.temperature < species.cold_level_1)
|
||||
if(prob(20))
|
||||
@@ -681,7 +681,7 @@
|
||||
else if(adjusted_pressure >= species.hazard_low_pressure)
|
||||
pressure_alert = -1
|
||||
else
|
||||
if( !(COLD_RESISTANCE in mutations))
|
||||
if( !(M_RESIST_COLD in mutations))
|
||||
adjustBruteLoss( LOW_PRESSURE_DAMAGE )
|
||||
pressure_alert = -2
|
||||
else
|
||||
@@ -770,6 +770,8 @@
|
||||
var/thermal_protection_flags = get_heat_protection_flags(temperature)
|
||||
|
||||
var/thermal_protection = 0.0
|
||||
if(M_RESIST_HEAT in mutations)
|
||||
return 1
|
||||
if(thermal_protection_flags)
|
||||
if(thermal_protection_flags & HEAD)
|
||||
thermal_protection += THERMAL_PROTECTION_HEAD
|
||||
@@ -825,7 +827,7 @@
|
||||
|
||||
proc/get_cold_protection(temperature)
|
||||
|
||||
if(COLD_RESISTANCE in mutations)
|
||||
if(M_RESIST_COLD in mutations)
|
||||
return 1 //Fully protected from the cold.
|
||||
|
||||
temperature = max(temperature, 2.7) //There is an occasional bug where the temperature is miscalculated in ares with a small amount of gas on them, so this is necessary to ensure that that bug does not affect this calculation. Space's temperature is 2.7K and most suits that are intended to protect against any cold, protect down to 2.0K.
|
||||
@@ -1036,7 +1038,7 @@
|
||||
silent = 0
|
||||
else //ALIVE. LIGHTS ARE ON
|
||||
|
||||
if(mRegen in mutations)
|
||||
if(M_REGEN in mutations)
|
||||
if(nutrition)
|
||||
if(prob(10))
|
||||
var/randumb = rand(1,5)
|
||||
@@ -1444,7 +1446,7 @@
|
||||
if(!machine.check_eye(src)) reset_view(null)
|
||||
else
|
||||
var/isRemoteObserve = 0
|
||||
if((mRemote in mutations) && remoteview_target)
|
||||
if((M_REMOTE_VIEW in mutations) && remoteview_target)
|
||||
isRemoteObserve = 1
|
||||
// Is he unconscious or dead?
|
||||
if(remoteview_target.stat!=CONSCIOUS)
|
||||
|
||||
@@ -400,9 +400,12 @@ proc/get_damage_icon_part(damage_state, body_part)
|
||||
else
|
||||
standing.underlays += "hulk_[g]_s"
|
||||
add_image = 1
|
||||
if(COLD_RESISTANCE)
|
||||
if(M_RESIST_COLD)
|
||||
standing.underlays += "fire[fat]_s"
|
||||
add_image = 1
|
||||
if(M_RESIST_HEAT)
|
||||
standing.underlays += "cold[fat]_s"
|
||||
add_image = 1
|
||||
if(TK)
|
||||
standing.underlays += "telekinesishead[fat]_s"
|
||||
add_image = 1
|
||||
@@ -410,6 +413,10 @@ proc/get_damage_icon_part(damage_state, body_part)
|
||||
if(LASER)
|
||||
standing.overlays += "lasereyes_s"
|
||||
add_image = 1
|
||||
if((M_RESIST_COLD in mutations) && (M_RESIST_HEAT in mutations))
|
||||
standing.underlays -= "cold[fat]_s"
|
||||
standing.underlays -= "fire[fat]_s"
|
||||
standing.underlays += "coldfire[fat]_s"
|
||||
if(add_image)
|
||||
overlays_standing[MUTATIONS_LAYER] = standing
|
||||
else
|
||||
|
||||
@@ -903,7 +903,7 @@ mob/living/carbon/slime/var/temperature_resistance = T0C+75
|
||||
max_heat_protection_temperature = FIRE_HELMET_MAX_HEAT_PROTECITON_TEMPERATURE
|
||||
armor = list(melee = 80, bullet = 20, laser = 20, energy = 10, bomb = 0, bio = 0, rad = 0)
|
||||
|
||||
/obj/effect/golemrune
|
||||
/obj/effect/goleM_RUNe
|
||||
anchored = 1
|
||||
desc = "a strange rune used to create golems. It glows when spirits are nearby."
|
||||
name = "rune"
|
||||
|
||||
@@ -109,7 +109,7 @@
|
||||
proc/handle_mutations_and_radiation()
|
||||
|
||||
if(getFireLoss())
|
||||
if((COLD_RESISTANCE in mutations) || prob(50))
|
||||
if((M_RESIST_HEAT in mutations) || prob(50))
|
||||
switch(getFireLoss())
|
||||
if(1 to 50)
|
||||
adjustFireLoss(-1)
|
||||
@@ -421,7 +421,7 @@
|
||||
if(HAZARD_LOW_PRESSURE to WARNING_LOW_PRESSURE)
|
||||
pressure_alert = -1
|
||||
else
|
||||
if( !(COLD_RESISTANCE in mutations) )
|
||||
if( !(M_RESIST_COLD in mutations) )
|
||||
adjustBruteLoss( LOW_PRESSURE_DAMAGE )
|
||||
pressure_alert = -2
|
||||
else
|
||||
@@ -682,4 +682,4 @@
|
||||
return
|
||||
adjustFireLoss(6)
|
||||
return
|
||||
//END FIRE CODE
|
||||
//END FIRE CODE
|
||||
|
||||
@@ -197,5 +197,5 @@
|
||||
flags = WHITELISTED | HAS_LIPS | HAS_UNDERWEAR | CAN_BE_FAT
|
||||
|
||||
// Both must be set or it's only a 45% chance of manifesting.
|
||||
default_mutations=list(mRemotetalk)
|
||||
default_block_names=list("REMOTETALK")
|
||||
default_mutations=list(M_REMOTE_TALK)
|
||||
default_block_names=list("REMOTETALK")
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
if(BRUTE)
|
||||
adjustBruteLoss(damage/(blocked+1))
|
||||
if(BURN)
|
||||
if(COLD_RESISTANCE in mutations) damage = 0
|
||||
if(M_RESIST_HEAT in mutations) damage = 0
|
||||
adjustFireLoss(damage/(blocked+1))
|
||||
if(TOX)
|
||||
adjustToxLoss(damage/(blocked+1))
|
||||
|
||||
@@ -47,9 +47,9 @@
|
||||
/mob/living/proc/burn_skin(burn_amount)
|
||||
if(istype(src, /mob/living/carbon/human))
|
||||
//world << "DEBUG: burn_skin(), mutations=[mutations]"
|
||||
if(mShock in src.mutations) //shockproof
|
||||
if(M_NO_SHOCK in src.mutations) //shockproof
|
||||
return 0
|
||||
if (COLD_RESISTANCE in src.mutations) //fireproof
|
||||
if (M_RESIST_HEAT in src.mutations) //fireproof
|
||||
return 0
|
||||
var/mob/living/carbon/human/H = src //make this damage method divide the damage to be done among all the body parts, then burn each body part for that much damage. will have better effect then just randomly picking a body part
|
||||
var/divided_damage = (burn_amount)/(H.organs.len)
|
||||
@@ -61,7 +61,7 @@
|
||||
H.updatehealth()
|
||||
return 1
|
||||
else if(istype(src, /mob/living/carbon/monkey))
|
||||
if (COLD_RESISTANCE in src.mutations) //fireproof
|
||||
if (M_RESIST_HEAT in src.mutations) //fireproof
|
||||
return 0
|
||||
var/mob/living/carbon/monkey/M = src
|
||||
M.adjustFireLoss(burn_amount)
|
||||
|
||||
@@ -386,7 +386,7 @@
|
||||
continue
|
||||
M.show_message("[user.name] smashed the light!", 3, "You hear a tinkle of breaking glass", 2)
|
||||
if(on && (W.flags & CONDUCT))
|
||||
//if(!user.mutations & COLD_RESISTANCE)
|
||||
//if(!user.mutations & M_RESIST_COLD)
|
||||
if (prob(12))
|
||||
electrocute_mob(user, get_area(src), src, 0.3)
|
||||
broken()
|
||||
@@ -422,7 +422,7 @@
|
||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
||||
s.set_up(3, 1, src)
|
||||
s.start()
|
||||
//if(!user.mutations & COLD_RESISTANCE)
|
||||
//if(!user.mutations & M_RESIST_COLD)
|
||||
if (prob(75))
|
||||
electrocute_mob(user, get_area(src), src, rand(0.7,1.0))
|
||||
|
||||
@@ -498,9 +498,9 @@
|
||||
else
|
||||
prot = 1
|
||||
|
||||
if(prot > 0 || (COLD_RESISTANCE in user.mutations))
|
||||
if(prot > 0 || (M_RESIST_HEAT in user.mutations))
|
||||
user << "You remove the light [fitting]"
|
||||
else if(TK in user.mutations)
|
||||
else if(M_TK in user.mutations)
|
||||
user << "You telekinetically remove the light [fitting]."
|
||||
else
|
||||
user << "You try to remove the light [fitting], but it's too hot and you don't want to burn your hand."
|
||||
|
||||
@@ -1372,8 +1372,9 @@ datum
|
||||
required_container = /obj/item/slime_extract/adamantine
|
||||
required_other = 1
|
||||
on_reaction(var/datum/reagents/holder)
|
||||
var/obj/effect/golemrune/Z = new /obj/effect/golemrune
|
||||
Z.loc = get_turf_loc(holder.my_atom)
|
||||
feedback_add_details("slime_cores_used","[replacetext(name," ","_")]")
|
||||
var/obj/effect/goleM_RUNe/Z = new /obj/effect/goleM_RUNe
|
||||
Z.loc = get_turf(holder.my_atom)
|
||||
Z.announce_to_ghosts()
|
||||
//////////////////////////////////////////FOOD MIXTURES////////////////////////////////////
|
||||
|
||||
|
||||
+36
-32
@@ -129,7 +129,7 @@
|
||||
#define PLASMA_MINIMUM_OXYGEN_PLASMA_RATIO 20
|
||||
#define PLASMA_OXYGEN_FULLBURN 10
|
||||
|
||||
#define T0C 273.15 // 0degC
|
||||
#define T0C 273.15 // 0degC
|
||||
#define T20C 293.15 // 20degC
|
||||
#define TCMB 2.7 // -270.3degC
|
||||
|
||||
@@ -316,9 +316,13 @@ var/MAX_EXPLOSION_RANGE = 14
|
||||
#define DISABILITY_FLAG_EPILEPTIC 4
|
||||
#define DISABILITY_FLAG_DEAF 8
|
||||
|
||||
// Generic mutations:
|
||||
#define TK 1
|
||||
#define COLD_RESISTANCE 2
|
||||
///////////////////////////////////////
|
||||
// MUTATIONS
|
||||
///////////////////////////////////////
|
||||
|
||||
// Generic mutations:
|
||||
#define M_TK 1
|
||||
#define M_RESIST_COLD 2
|
||||
#define XRAY 3
|
||||
#define HULK 4
|
||||
#define CLUMSY 5
|
||||
@@ -327,43 +331,43 @@ var/MAX_EXPLOSION_RANGE = 14
|
||||
#define NOCLONE 8
|
||||
|
||||
|
||||
// Extra powers:
|
||||
// Extra powers:
|
||||
#define LASER 9 // harm intent - click anywhere to shoot lasers from eyes
|
||||
#define HEAL 10 // healing people with hands
|
||||
#define SHADOW 11 // shadow teleportation (create in/out portals anywhere) (25%)
|
||||
#define SCREAM 12 // supersonic screaming (25%)
|
||||
#define EXPLOSIVE 13 // exploding on-demand (15%)
|
||||
#define REGENERATION 14 // superhuman regeneration (30%)
|
||||
#define REPROCESSOR 15 // eat anything (50%)
|
||||
#define SHAPESHIFTING 16 // take on the appearance of anything (40%)
|
||||
#define PHASING 17 // ability to phase through walls (40%)
|
||||
#define SHIELD 18 // shielding from all projectile attacks (30%)
|
||||
#define SHOCKWAVE 19 // attack a nearby tile and cause a massive shockwave, knocking most people on their asses (25%)
|
||||
#define ELECTRICITY 20 // ability to shoot electric attacks (15%)
|
||||
//#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%)
|
||||
//#define EXPLOSIVE 13 // (Not implemented) exploding on-demand (15%)
|
||||
//#define REGENERATION 14 // (Not implemented) superhuman regeneration (30%)
|
||||
//#define REPROCESSOR 15 // (Not implemented) eat anything (50%)
|
||||
//#define SHAPESHIFTING 16 // (Not implemented) take on the appearance of anything (40%)
|
||||
//#define PHASING 17 // (Not implemented) ability to phase through walls (40%)
|
||||
//#define SHIELD 18 // (Not implemented) shielding from all projectile attacks (30%)
|
||||
//#define SHOCKWAVE 19 // (Not implemented) attack a nearby tile and cause a massive shockwave, knocking most people on their asses (25%)
|
||||
//#define ELECTRICITY 20 // (Not implemented) ability to shoot electric attacks (15%)
|
||||
|
||||
//2spooky
|
||||
#define SKELETON 29
|
||||
#define PLANT 30
|
||||
|
||||
// Other Mutations:
|
||||
#define mNobreath 100 // no need to breathe
|
||||
#define mRemote 101 // remote viewing
|
||||
#define mRegen 102 // health regen
|
||||
#define mRun 103 // no slowdown
|
||||
#define mRemotetalk 104 // remote talking
|
||||
#define mMorph 105 // changing appearance
|
||||
#define mBlend 106 // nothing (seriously nothing)
|
||||
#define mHallucination 107 // hallucinations
|
||||
#define mFingerprints 108 // no fingerprints
|
||||
#define mShock 109 // insulated hands
|
||||
#define mSmallsize 110 // table climbing
|
||||
#define M_NO_BREATH 100 // no need to breathe
|
||||
#define M_REMOTE_VIEW 101 // remote viewing
|
||||
#define M_REGEN 102 // health regen
|
||||
#define M_RUN 103 // no slowdown
|
||||
#define M_REMOTE_TALK 104 // remote talking
|
||||
#define M_MORPH 105 // changing appearance
|
||||
#define M_RESIST_HEAT 106 // heat resistance
|
||||
#define M_HALLUCINATE 107 // hallucinations
|
||||
#define M_FINGERPRINTS 108 // no fingerprints
|
||||
#define M_NO_SHOCK 109 // insulated hands
|
||||
#define M_DWARF 110 // table climbing
|
||||
|
||||
// Goon muts
|
||||
#define M_OBESITY 200
|
||||
#define M_TOXIC_FARTS 201
|
||||
#define M_STRONG 202
|
||||
#define M_SOBER 203
|
||||
#define M_PSY_RESIST 204
|
||||
#define M_OBESITY 200 // Decreased metabolism
|
||||
#define M_TOXIC_FARTS 201 // Duh
|
||||
#define M_STRONG 202 // (Nothing)
|
||||
#define M_SOBER 203 // Increased alcohol metabolism
|
||||
#define M_PSY_RESIST 204 // Block remoteview
|
||||
|
||||
//disabilities
|
||||
#define NEARSIGHTED 1
|
||||
|
||||
@@ -0,0 +1,177 @@
|
||||
/* 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 << "<B>Your wish is granted, but at a terrible cost...</B>"
|
||||
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 (!(XRAY in user.mutations))
|
||||
user.mutations.Add(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 << "<B>Your wish is granted, but at a terrible cost...</B>"
|
||||
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 << "<B>Your wish is granted, but at a terrible cost...</B>"
|
||||
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 << "<B>Your wish is granted, but at a terrible cost...</B>"
|
||||
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 << "<B>Your inhibitions are swept away, the bonds of loyalty broken, you are free to murder as you please!</B>"
|
||||
var/obj_count = 1
|
||||
for(var/datum/objective/OBJ in user.mind.objectives)
|
||||
user << "<B>Objective #[obj_count]</B>: [OBJ.explanation_text]"
|
||||
obj_count++
|
||||
user.dna.mutantrace = "shadow"
|
||||
user.update_mutantrace()
|
||||
if("Peace")
|
||||
user << "<B>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.</B>"
|
||||
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 << "<font color='red'>[M] triggered the \icon[src] [src]</font>"
|
||||
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 << "<span class='notice'>You're not dead yet!</span>"
|
||||
return
|
||||
C << "<span class='notice'>Death is not your end!</span>"
|
||||
|
||||
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 << "<span class='notice'>You have regenerated.</span>"
|
||||
C.visible_message("<span class='warning'>[usr] appears to wake from the dead, having healed all wounds.</span>")
|
||||
C.update_canmove()
|
||||
return 1
|
||||
Reference in New Issue
Block a user