mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-15 17:13:46 +01:00
Fixes Tajarans and all mutant races spawning with no hair, etc. Partially fixes morph mutation. Fixes mutations.
This commit is contained in:
@@ -26,6 +26,11 @@
|
||||
|
||||
..()
|
||||
|
||||
spawn(33)
|
||||
update_clothing()
|
||||
update_body()
|
||||
update_face()
|
||||
|
||||
/mob/living/carbon/human/tajaran/rebuild_appearance()
|
||||
update_clothing()
|
||||
|
||||
|
||||
@@ -110,7 +110,7 @@
|
||||
//Fibers~
|
||||
add_fibers(M)
|
||||
//He has no prints!
|
||||
if (mFingerprints in M.mutations)
|
||||
if (MFINGERPRINTS in M.mutations)
|
||||
if(fingerprintslast != M.key)
|
||||
fingerprintshidden += "(Has no fingerprints) Real name: [M.real_name], Key: [M.key]"
|
||||
fingerprintslast = M.key
|
||||
|
||||
@@ -134,7 +134,7 @@
|
||||
if(istype(M) && M.lying) //Pulling lying down people is slower
|
||||
tally += 3
|
||||
|
||||
if(mRun in mutations)
|
||||
if(MINCREASERUN in mutations)
|
||||
tally = 0
|
||||
|
||||
return tally
|
||||
|
||||
@@ -136,6 +136,9 @@
|
||||
lying_icon = new /icon('human.dmi', "body_[g]_l")
|
||||
icon = stand_icon
|
||||
rebuild_appearance()
|
||||
update_clothing()
|
||||
update_body()
|
||||
update_face()
|
||||
|
||||
src << "\blue Your icons have been generated!"
|
||||
|
||||
@@ -151,9 +154,10 @@
|
||||
|
||||
..()
|
||||
|
||||
spawn(5) // Failsafe for.. weirdness.
|
||||
update_clothing()
|
||||
spawn(33)
|
||||
update_body()
|
||||
update_clothing()
|
||||
update_face()
|
||||
|
||||
/*var/known_languages = list()
|
||||
known_languages.Add("english")*/
|
||||
@@ -315,7 +319,7 @@
|
||||
if(istype(M) && M.lying) //Pulling lying down people is slower
|
||||
tally += 3
|
||||
|
||||
if(mRun in mutations)
|
||||
if(MINCREASERUN in mutations)
|
||||
tally = 0
|
||||
|
||||
return tally
|
||||
@@ -2692,7 +2696,7 @@ It can still be worn/put on as normal.
|
||||
/mob/living/carbon/human/proc/morph()
|
||||
set name = "Morph"
|
||||
set category = "Superpower"
|
||||
if(!(mMorph in mutations))
|
||||
if(!(MMORPH in mutations))
|
||||
src.verbs -= /mob/living/carbon/human/proc/morph
|
||||
return
|
||||
|
||||
@@ -2772,17 +2776,21 @@ It can still be worn/put on as normal.
|
||||
gender = MALE
|
||||
else
|
||||
gender = FEMALE
|
||||
rebuild_appearance()
|
||||
update_body()
|
||||
check_dna()
|
||||
|
||||
for(var/mob/M in view())
|
||||
visible_message("\blue \The [src] morphs and changes [get_visible_gender() == MALE ? "his" : get_visible_gender() == FEMALE ? "her" : "their"] appearance!", "\blue You change your appearance!", "\red Oh, god! What the hell was that? It sounded like flesh getting squished and bone ground into a different shape!")
|
||||
|
||||
spawn(10)
|
||||
rebuild_appearance()
|
||||
update_body()
|
||||
update_clothing()
|
||||
update_face()
|
||||
|
||||
/mob/living/carbon/human/proc/remotesay()
|
||||
set name = "Project mind"
|
||||
set category = "Superpower"
|
||||
if(!(mRemotetalk in src.mutations))
|
||||
if(!(MREMOTETALK in src.mutations))
|
||||
src.verbs -= /mob/living/carbon/human/proc/remotesay
|
||||
return
|
||||
var/list/creatures = list()
|
||||
@@ -2793,7 +2801,7 @@ It can still be worn/put on as normal.
|
||||
return
|
||||
|
||||
var/say = input ("What do you wish to say")
|
||||
if(mRemotetalk in target.mutations)
|
||||
if(MREMOTETALK 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]")
|
||||
@@ -2807,7 +2815,7 @@ It can still be worn/put on as normal.
|
||||
set name = "Remote View"
|
||||
set category = "Superpower"
|
||||
|
||||
if(!(mRemote in src.mutations))
|
||||
if(!(MREMOTEVIEW in src.mutations))
|
||||
reset_view(0)
|
||||
remoteobserve = null
|
||||
src.verbs -= /mob/living/carbon/human/proc/remoteobserve
|
||||
|
||||
@@ -56,19 +56,20 @@
|
||||
|
||||
if (stat != 2) //still breathing
|
||||
|
||||
if(!(MNOBREATH in mutations)) //No breathing needed
|
||||
|
||||
//First, resolve location and get a breath
|
||||
//First, resolve location and get a breath
|
||||
|
||||
if(air_master.current_cycle%4==2)
|
||||
//Only try to take a breath every 4 seconds, unless suffocating
|
||||
spawn(0) breathe()
|
||||
if(air_master.current_cycle%4==2)
|
||||
//Only try to take a breath every 4 seconds, unless suffocating
|
||||
spawn(0) breathe()
|
||||
|
||||
else //Still give containing object the chance to interact
|
||||
if(istype(loc, /obj/))
|
||||
var/obj/location_as_object = loc
|
||||
location_as_object.handle_internal_lifeform(src, 0)
|
||||
else //Still give containing object the chance to interact
|
||||
if(istype(loc, /obj/))
|
||||
var/obj/location_as_object = loc
|
||||
location_as_object.handle_internal_lifeform(src, 0)
|
||||
|
||||
src.handle_shock()
|
||||
src.handle_shock()
|
||||
|
||||
//Apparently, the person who wrote this code designed it so that
|
||||
//blinded get reset each cycle and then get activated later in the
|
||||
@@ -168,7 +169,7 @@
|
||||
|
||||
|
||||
handle_disabilities()
|
||||
if(mHallucination in mutations)
|
||||
if(MHALLUCINATION in mutations)
|
||||
hallucination = 100
|
||||
halloss = 0
|
||||
|
||||
@@ -198,7 +199,7 @@
|
||||
Paralyse(15)
|
||||
setHalLoss(99)
|
||||
|
||||
if(mSmallsize in mutations)
|
||||
if(MSMALLSIZE in mutations)
|
||||
if(!(pass_flags & PASSTABLE))
|
||||
pass_flags |= PASSTABLE
|
||||
else
|
||||
@@ -207,7 +208,7 @@
|
||||
|
||||
|
||||
|
||||
if (mRegen in mutations)
|
||||
if (MREGENERATE in mutations)
|
||||
adjustBruteLoss(-2)
|
||||
adjustToxLoss(-2)
|
||||
adjustOxyLoss(-2)
|
||||
@@ -215,24 +216,24 @@
|
||||
updatehealth()
|
||||
|
||||
if(!(/mob/living/carbon/human/proc/morph in src.verbs))
|
||||
if(mMorph in mutations)
|
||||
if(MMORPH in mutations)
|
||||
src.verbs += /mob/living/carbon/human/proc/morph
|
||||
else
|
||||
if(!(mMorph in mutations))
|
||||
if(!(MMORPH in mutations))
|
||||
src.verbs -= /mob/living/carbon/human/proc/morph
|
||||
|
||||
if(!(/mob/living/carbon/human/proc/remoteobserve in src.verbs))
|
||||
if(mRemote in mutations)
|
||||
if(MREMOTEVIEW in mutations)
|
||||
src.verbs += /mob/living/carbon/human/proc/remoteobserve
|
||||
else
|
||||
if(!(mRemote in mutations))
|
||||
if(!(MREMOTEVIEW in mutations))
|
||||
src.verbs -= /mob/living/carbon/human/proc/remoteobserve
|
||||
|
||||
if(!(/mob/living/carbon/human/proc/remotesay in src.verbs))
|
||||
if(mRemotetalk in mutations)
|
||||
if(MREMOTETALK in mutations)
|
||||
src.verbs += /mob/living/carbon/human/proc/remotesay
|
||||
else
|
||||
if(!(mRemotetalk in mutations))
|
||||
if(!(MREMOTETALK in mutations))
|
||||
src.verbs -= /mob/living/carbon/human/proc/remotesay
|
||||
|
||||
|
||||
@@ -380,6 +381,7 @@
|
||||
**/
|
||||
breathe()
|
||||
|
||||
if(MNOBREATH in mutations) return
|
||||
if(reagents.has_reagent("lexorin")) return
|
||||
if(istype(loc, /obj/machinery/atmospherics/unary/cryo_cell)) return
|
||||
|
||||
@@ -487,7 +489,7 @@
|
||||
canmove = 1
|
||||
|
||||
handle_breath(datum/gas_mixture/breath)
|
||||
if(nodamage || REBREATHER in augmentations || (mNobreath in mutations))
|
||||
if(nodamage || REBREATHER in augmentations || MNOBREATH in mutations)
|
||||
return
|
||||
|
||||
if(!breath || (breath.total_moles == 0))
|
||||
@@ -1456,7 +1458,7 @@
|
||||
if (machine)
|
||||
if (!( machine.check_eye(src) ))
|
||||
reset_view(null)
|
||||
else if(!(mRemote in mutations) && !client.adminobs)
|
||||
else if(!(MREMOTEVIEW in mutations) && !client.adminobs)
|
||||
reset_view(null)
|
||||
if(remoteobserve)
|
||||
remoteobserve = null
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
//sort of a legacy burn method for /electrocute, /shock, and the e_chair
|
||||
/mob/living/proc/burn_skin(burn_amount, used_weapon = null)
|
||||
if(istype(src, /mob/living/carbon/human))
|
||||
if(mShock in src.mutations)
|
||||
if(MSHOCK in src.mutations)
|
||||
return 0
|
||||
//world << "DEBUG: burn_skin(), mutations=[mutations]"
|
||||
if (COLD_RESISTANCE in src.mutations) //fireproof
|
||||
|
||||
@@ -358,14 +358,17 @@
|
||||
preferences.randomize_appearance_for(new_character)
|
||||
else
|
||||
preferences.copy_to(new_character)
|
||||
if((preferences.species == "Soghun") && (is_alien_whitelisted(src, "Soghun"))) //This probably shouldn't be here, but I can't think of any other way
|
||||
if((preferences.species == "Soghun") && ((is_alien_whitelisted(src, "Soghun")) || !config.usealienwhitelist)) //This probably shouldn't be here, but I can't think of any other way
|
||||
new_character.mutantrace = "lizard"
|
||||
new_character.soghun_talk_understand = 1
|
||||
new_character.voice_name = "Soghun"
|
||||
if((preferences.species == "Skrell") && (is_alien_whitelisted(src, "Skrell")))
|
||||
if((preferences.species == "Skrell") && ((is_alien_whitelisted(src, "Skrell")) || !config.usealienwhitelist))
|
||||
new_character.mutantrace = "skrell"
|
||||
new_character.skrell_talk_understand = 1
|
||||
new_character.voice_name = "Skrell"
|
||||
new_character.update_clothing()
|
||||
new_character.update_body()
|
||||
new_character.update_face() //Hotfix for non-updating sprites.
|
||||
src << sound(null, repeat = 0, wait = 0, volume = 85, channel = 1)
|
||||
|
||||
new_character.dna.ready_dna(new_character)
|
||||
|
||||
+11
-11
@@ -305,17 +305,17 @@ var/MAX_EXPLOSION_RANGE = 14
|
||||
#define NANOREGEN 28 // regenerative nanobots, -3 all damage types per second
|
||||
|
||||
// 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 MNOBREATH 100 // no need to breathe
|
||||
#define MREMOTEVIEW 101 // remote viewing
|
||||
#define MREGENERATE 102 // health regen
|
||||
#define MINCREASERUN 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
|
||||
|
||||
//mob/var/stat things
|
||||
#define CONSCIOUS 0
|
||||
|
||||
Reference in New Issue
Block a user