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:
Rob Nelson
2014-01-21 22:36:19 -05:00
committed by ZomgPonies
parent 0f5f78fcc9
commit 95cc6a27b5
29 changed files with 353 additions and 132 deletions
+1 -1
View File
@@ -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)
;
+1 -1
View File
@@ -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()
+1 -1
View File
@@ -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
+4 -4
View File
@@ -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
View File
@@ -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
+32 -32
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+32 -12
View File
@@ -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()
+1
View File
@@ -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)
+9 -4
View File
@@ -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
View File
@@ -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)
+9 -7
View File
@@ -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
+2 -2
View File
@@ -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")
+1 -1
View File
@@ -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))
+3 -3
View File
@@ -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)
+4 -4
View File
@@ -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."
+3 -2
View File
@@ -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
View File
@@ -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
+177
View File
@@ -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