mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-02-09 16:18:54 +00:00
Merge pull request #6170 from Fox-McCloud/species-lever-options
Adds Species Levers
This commit is contained in:
@@ -39,11 +39,10 @@
|
||||
#define IS_PLANT 128
|
||||
#define CAN_BE_FAT 256
|
||||
#define NO_INTORGANS 512
|
||||
#define NO_POISON 1024
|
||||
#define RADIMMUNE 2048
|
||||
#define ALL_RPARTS 4096
|
||||
#define NOGUNS 8192
|
||||
#define NOTRANSSTING 16384
|
||||
#define RADIMMUNE 1024
|
||||
#define ALL_RPARTS 2048
|
||||
#define NOGUNS 4096
|
||||
#define NOTRANSSTING 8192
|
||||
|
||||
//Species clothing flags
|
||||
#define HAS_UNDERWEAR 1
|
||||
|
||||
@@ -304,6 +304,7 @@ Made by Xhuis
|
||||
|
||||
flags = NO_BLOOD | NO_BREATHE | RADIMMUNE | NOGUNS //Can't use guns due to muzzle flash
|
||||
burn_mod = 1.5 //1.5x burn damage, 2x is excessive
|
||||
oxy_mod = 0
|
||||
hot_env_multiplier = 1.5
|
||||
|
||||
silent_steps = 1
|
||||
@@ -341,6 +342,7 @@ Made by Xhuis
|
||||
|
||||
flags = NO_BLOOD | NO_BREATHE | RADIMMUNE
|
||||
burn_mod = 1.1
|
||||
oxy_mod = 0
|
||||
hot_env_multiplier = 1.1
|
||||
|
||||
/datum/species/shadow/ling/lesser/handle_life(var/mob/living/carbon/human/H)
|
||||
|
||||
@@ -116,12 +116,6 @@
|
||||
mmi_icon_state = "slime_mmi"
|
||||
// parent_organ = "chest" Hello I am from the ministry of rubber forehead aliens how are you
|
||||
|
||||
/obj/item/organ/internal/brain/slime/take_damage(var/amount, var/silent = 1)
|
||||
//Slimes are 150% more vulnerable to brain damage
|
||||
damage = between(0, src.damage + (1.5*amount), max_damage) //Since they take the damage twice, this is +150%
|
||||
return ..()
|
||||
|
||||
|
||||
/obj/item/organ/internal/brain/golem
|
||||
name = "Runic mind"
|
||||
desc = "A tightly furled roll of paper, covered with indecipherable runes."
|
||||
|
||||
@@ -35,9 +35,9 @@
|
||||
. = ..()
|
||||
if(.)
|
||||
if(nutrition && stat != DEAD)
|
||||
nutrition -= HUNGER_FACTOR/10
|
||||
nutrition -= hunger_drain / 10
|
||||
if(m_intent == "run")
|
||||
nutrition -= HUNGER_FACTOR/10
|
||||
nutrition -= hunger_drain / 10
|
||||
if((FAT in mutations) && m_intent == "run" && bodytemperature <= 360)
|
||||
bodytemperature += 2
|
||||
|
||||
@@ -942,7 +942,7 @@ var/list/ventcrawl_machinery = list(/obj/machinery/atmospherics/unary/vent_pump,
|
||||
var/fullness = nutrition + 10
|
||||
if(istype(toEat, /obj/item/weapon/reagent_containers/food/snacks))
|
||||
for(var/datum/reagent/consumable/C in reagents.reagent_list) //we add the nutrition value of what we're currently digesting
|
||||
fullness += C.nutriment_factor * C.volume / C.metabolization_rate
|
||||
fullness += C.nutriment_factor * C.volume / (C.metabolization_rate * metabolism_efficiency * digestion_ratio)
|
||||
if(user == src)
|
||||
if(istype(toEat, /obj/item/weapon/reagent_containers/food/drinks))
|
||||
if(!selfDrink(toEat))
|
||||
|
||||
@@ -1539,6 +1539,9 @@
|
||||
else
|
||||
see_invisible = SEE_INVISIBLE_LIVING
|
||||
|
||||
hunger_drain = species.hunger_drain
|
||||
digestion_ratio = species.digestion_ratio
|
||||
|
||||
if(species.base_color && default_colour)
|
||||
//Apply colour.
|
||||
r_skin = color2R(species.base_color)
|
||||
|
||||
@@ -28,13 +28,15 @@
|
||||
med_hud_set_status()
|
||||
handle_hud_icons()
|
||||
|
||||
/mob/living/carbon/human/adjustBrainLoss(var/amount)
|
||||
/mob/living/carbon/human/adjustBrainLoss(amount)
|
||||
if(status_flags & GODMODE)
|
||||
return 0 //godmode
|
||||
|
||||
if(species && species.has_organ["brain"])
|
||||
var/obj/item/organ/internal/brain/sponge = get_int_organ(/obj/item/organ/internal/brain)
|
||||
if(sponge)
|
||||
if(species)
|
||||
amount = amount * species.brain_mod
|
||||
sponge.take_damage(amount, 1)
|
||||
brainloss = sponge.damage
|
||||
else
|
||||
@@ -42,14 +44,16 @@
|
||||
else
|
||||
brainloss = 0
|
||||
|
||||
/mob/living/carbon/human/setBrainLoss(var/amount)
|
||||
/mob/living/carbon/human/setBrainLoss(amount)
|
||||
if(status_flags & GODMODE)
|
||||
return 0 //godmode
|
||||
|
||||
if(species && species.has_organ["brain"])
|
||||
var/obj/item/organ/internal/brain/sponge = get_int_organ(/obj/item/organ/internal/brain)
|
||||
if(sponge)
|
||||
sponge.damage = min(max(amount, 0),(maxHealth*2))
|
||||
if(species)
|
||||
amount = amount * species.brain_mod
|
||||
sponge.damage = min(max(amount, 0), (maxHealth*2))
|
||||
brainloss = sponge.damage
|
||||
else
|
||||
brainloss = 200
|
||||
@@ -84,25 +88,25 @@
|
||||
return amount
|
||||
|
||||
|
||||
/mob/living/carbon/human/adjustBruteLoss(var/amount)
|
||||
if(species && species.brute_mod)
|
||||
amount = amount*species.brute_mod
|
||||
/mob/living/carbon/human/adjustBruteLoss(amount)
|
||||
if(species)
|
||||
amount = amount * species.brute_mod
|
||||
if(amount > 0)
|
||||
take_overall_damage(amount, 0)
|
||||
else
|
||||
heal_overall_damage(-amount, 0)
|
||||
|
||||
/mob/living/carbon/human/adjustFireLoss(var/amount)
|
||||
if(species && species.burn_mod)
|
||||
amount = amount*species.burn_mod
|
||||
/mob/living/carbon/human/adjustFireLoss(amount)
|
||||
if(species)
|
||||
amount = amount * species.burn_mod
|
||||
if(amount > 0)
|
||||
take_overall_damage(0, amount)
|
||||
else
|
||||
heal_overall_damage(0, -amount)
|
||||
|
||||
/mob/living/carbon/human/proc/adjustBruteLossByPart(var/amount, var/organ_name, var/obj/damage_source = null)
|
||||
if(species && species.brute_mod)
|
||||
amount = amount*species.brute_mod
|
||||
/mob/living/carbon/human/proc/adjustBruteLossByPart(amount, organ_name, obj/damage_source = null)
|
||||
if(species)
|
||||
amount = amount * species.brute_mod
|
||||
|
||||
if(organ_name in organs_by_name)
|
||||
var/obj/item/organ/external/O = get_organ(organ_name)
|
||||
@@ -114,9 +118,9 @@
|
||||
O.heal_damage(-amount, 0, internal=0, robo_repair=(O.status & ORGAN_ROBOT))
|
||||
|
||||
|
||||
/mob/living/carbon/human/proc/adjustFireLossByPart(var/amount, var/organ_name, var/obj/damage_source = null)
|
||||
if(species && species.burn_mod)
|
||||
amount = amount*species.burn_mod
|
||||
/mob/living/carbon/human/proc/adjustFireLossByPart(amount, organ_name, obj/damage_source = null)
|
||||
if(species)
|
||||
amount = amount * species.burn_mod
|
||||
|
||||
if(organ_name in organs_by_name)
|
||||
var/obj/item/organ/external/O = get_organ(organ_name)
|
||||
@@ -134,13 +138,11 @@
|
||||
wearing_rig.notify_ai("<span class='danger'>Warning: user consciousness failure. Mobility control passed to integrated intelligence system.</span>")
|
||||
..()
|
||||
|
||||
/mob/living/carbon/human/adjustCloneLoss(var/amount)
|
||||
/mob/living/carbon/human/adjustCloneLoss(amount)
|
||||
if(species)
|
||||
amount = amount * species.clone_mod
|
||||
..()
|
||||
|
||||
if(species.flags & (NO_DNA))
|
||||
cloneloss = 0
|
||||
return
|
||||
|
||||
var/heal_prob = max(0, 80 - getCloneLoss())
|
||||
var/mut_prob = min(80, getCloneLoss() + 10)
|
||||
if(amount > 0) //cloneloss is being added
|
||||
@@ -176,44 +178,30 @@
|
||||
|
||||
|
||||
// Defined here solely to take species flags into account without having to recast at mob/living level.
|
||||
/mob/living/carbon/human/getOxyLoss()
|
||||
if(species.flags & NO_BREATHE)
|
||||
oxyloss = 0
|
||||
return ..()
|
||||
/mob/living/carbon/human/adjustOxyLoss(amount)
|
||||
if(species)
|
||||
amount = amount * species.oxy_mod
|
||||
..()
|
||||
|
||||
/mob/living/carbon/human/adjustOxyLoss(var/amount)
|
||||
if(species.flags & NO_BREATHE)
|
||||
oxyloss = 0
|
||||
else
|
||||
..()
|
||||
/mob/living/carbon/human/setOxyLoss(amount)
|
||||
if(species)
|
||||
amount = amount * species.oxy_mod
|
||||
..()
|
||||
|
||||
/mob/living/carbon/human/setOxyLoss(var/amount)
|
||||
if(species.flags & NO_BREATHE)
|
||||
oxyloss = 0 //this literally overrides three procs, excessive much?
|
||||
else
|
||||
..()
|
||||
/mob/living/carbon/human/adjustToxLoss(amount)
|
||||
if(species)
|
||||
amount = amount * species.tox_mod
|
||||
..()
|
||||
|
||||
/mob/living/carbon/human/getToxLoss()
|
||||
if(species.flags & NO_POISON)
|
||||
toxloss = 0
|
||||
return ..()
|
||||
|
||||
/mob/living/carbon/human/adjustToxLoss(var/amount)
|
||||
if(species.flags & NO_POISON)
|
||||
toxloss = 0
|
||||
else
|
||||
..()
|
||||
|
||||
/mob/living/carbon/human/setToxLoss(var/amount)
|
||||
if(species.flags & NO_POISON)
|
||||
toxloss = 0 //this *also* overrides three procs, definately excessive
|
||||
else
|
||||
..()
|
||||
/mob/living/carbon/human/setToxLoss(amount)
|
||||
if(species)
|
||||
amount = amount * species.tox_mod
|
||||
..()
|
||||
|
||||
////////////////////////////////////////////
|
||||
|
||||
//Returns a list of damaged organs
|
||||
/mob/living/carbon/human/proc/get_damaged_organs(var/brute, var/burn, var/flags = AFFECT_ALL_ORGANS)
|
||||
/mob/living/carbon/human/proc/get_damaged_organs(brute, burn, flags = AFFECT_ALL_ORGANS)
|
||||
var/list/obj/item/organ/external/parts = list()
|
||||
for(var/obj/item/organ/external/O in organs)
|
||||
if((brute && O.brute_dam) || (burn && O.burn_dam))
|
||||
@@ -235,7 +223,7 @@
|
||||
//Heals ONE external organ, organ gets randomly selected from damaged ones.
|
||||
//It automatically updates damage overlays if necesary
|
||||
//It automatically updates health status
|
||||
/mob/living/carbon/human/heal_organ_damage(var/brute, var/burn)
|
||||
/mob/living/carbon/human/heal_organ_damage(brute, burn)
|
||||
var/list/obj/item/organ/external/parts = get_damaged_organs(brute,burn)
|
||||
if(!parts.len)
|
||||
return
|
||||
@@ -247,7 +235,7 @@
|
||||
//Damages ONE external organ, organ gets randomly selected from damagable ones.
|
||||
//It automatically updates damage overlays if necesary
|
||||
//It automatically updates health status
|
||||
/mob/living/carbon/human/take_organ_damage(var/brute, var/burn, var/sharp = 0, var/edge = 0)
|
||||
/mob/living/carbon/human/take_organ_damage(brute, burn, sharp = 0, edge = 0)
|
||||
var/list/obj/item/organ/external/parts = get_damageable_organs()
|
||||
if(!parts.len)
|
||||
return
|
||||
@@ -259,7 +247,7 @@
|
||||
|
||||
|
||||
//Heal MANY external organs, in random order
|
||||
/mob/living/carbon/human/heal_overall_damage(var/brute, var/burn, var/internal=0, var/robotic=0)
|
||||
/mob/living/carbon/human/heal_overall_damage(brute, burn, internal=0, robotic=0)
|
||||
var/list/obj/item/organ/external/parts = get_damaged_organs(brute,burn)
|
||||
|
||||
var/update = 0
|
||||
@@ -282,7 +270,7 @@
|
||||
UpdateDamageIcon()
|
||||
|
||||
// damage MANY external organs, in random order
|
||||
/mob/living/carbon/human/take_overall_damage(var/brute, var/burn, var/sharp = 0, var/edge = 0, var/used_weapon = null)
|
||||
/mob/living/carbon/human/take_overall_damage(brute, burn, sharp = 0, edge = 0, used_weapon = null)
|
||||
if(status_flags & GODMODE)
|
||||
return //godmode
|
||||
var/list/obj/item/organ/external/parts = get_damageable_organs()
|
||||
@@ -337,7 +325,7 @@ This function restores all organs.
|
||||
return 0
|
||||
|
||||
|
||||
/mob/living/carbon/human/proc/get_organ(var/zone)
|
||||
/mob/living/carbon/human/proc/get_organ(zone)
|
||||
if(!zone)
|
||||
zone = "chest"
|
||||
if(zone in list("eyes", "mouth"))
|
||||
@@ -345,7 +333,7 @@ This function restores all organs.
|
||||
|
||||
return organs_by_name[zone]
|
||||
|
||||
/mob/living/carbon/human/apply_damage(var/damage = 0, var/damagetype = BRUTE, var/def_zone = null, var/blocked = 0, var/sharp = 0, var/edge = 0, var/obj/used_weapon = null)
|
||||
/mob/living/carbon/human/apply_damage(damage = 0, damagetype = BRUTE, def_zone = null, blocked = 0, sharp = 0, edge = 0, obj/used_weapon = null)
|
||||
//Handle other types of damage
|
||||
if((damagetype != BRUTE) && (damagetype != BURN))
|
||||
..(damage, damagetype, def_zone, blocked)
|
||||
@@ -373,7 +361,7 @@ This function restores all organs.
|
||||
switch(damagetype)
|
||||
if(BRUTE)
|
||||
damageoverlaytemp = 20
|
||||
if(species && species.brute_mod)
|
||||
if(species)
|
||||
damage = damage * species.brute_mod
|
||||
|
||||
if(organ.take_damage(damage, 0, sharp, edge, used_weapon))
|
||||
@@ -398,7 +386,7 @@ This function restores all organs.
|
||||
if(BURN)
|
||||
damageoverlaytemp = 20
|
||||
|
||||
if(species && species.burn_mod)
|
||||
if(species)
|
||||
damage = damage * species.burn_mod
|
||||
|
||||
if(organ.take_damage(0, damage, sharp, edge, used_weapon))
|
||||
@@ -406,4 +394,4 @@ This function restores all organs.
|
||||
|
||||
// Will set our damageoverlay icon to the next level, which will then be set back to the normal level the next mob.Life().
|
||||
updatehealth()
|
||||
return 1
|
||||
return 1
|
||||
@@ -675,14 +675,14 @@
|
||||
// nutrition decrease
|
||||
if(nutrition > 0 && stat != DEAD)
|
||||
// THEY HUNGER
|
||||
var/hunger_rate = HUNGER_FACTOR
|
||||
var/hunger_rate = hunger_drain
|
||||
if(satiety > 0)
|
||||
satiety--
|
||||
if(satiety < 0)
|
||||
satiety++
|
||||
if(prob(round(-satiety/40)))
|
||||
Jitter(5)
|
||||
hunger_rate = 3 * HUNGER_FACTOR
|
||||
hunger_rate = 3 * hunger_drain
|
||||
nutrition = max(0, nutrition - hunger_rate)
|
||||
|
||||
if(nutrition > NUTRITION_LEVEL_FULL)
|
||||
|
||||
@@ -11,6 +11,9 @@
|
||||
eyes = "blank_eyes"
|
||||
|
||||
flags = HAS_LIPS | NO_BLOOD | NO_BREATHE
|
||||
|
||||
oxy_mod = 0
|
||||
|
||||
virus_immune = 1
|
||||
clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT | HAS_SOCKS
|
||||
dietflags = DIET_OMNI
|
||||
|
||||
@@ -37,10 +37,12 @@
|
||||
"antennae" = /obj/item/organ/internal/wryn/hivenode
|
||||
)
|
||||
|
||||
flags = IS_WHITELISTED | HAS_LIPS | NO_BREATHE | HAS_SKIN_COLOR | NO_SCAN | NO_SCAN | HIVEMIND
|
||||
flags = IS_WHITELISTED | HAS_LIPS | NO_BREATHE | HAS_SKIN_COLOR | NO_SCAN | HIVEMIND
|
||||
clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT | HAS_SOCKS
|
||||
dietflags = DIET_HERB //bees feed off nectar, so bee people feed off plants too
|
||||
|
||||
oxy_mod = 0
|
||||
|
||||
reagent_tag = PROCESS_ORG
|
||||
base_color = "#704300"
|
||||
flesh_color = "#704300"
|
||||
@@ -97,6 +99,7 @@
|
||||
language = "Sol Common"
|
||||
burn_mod = 4 // holy shite, poor guys wont survive half a second cooking smores
|
||||
brute_mod = 2 // damn, double wham, double dam
|
||||
oxy_mod = 0
|
||||
flags = IS_WHITELISTED | NO_BREATHE | NO_BLOOD | NO_PAIN | HAS_LIPS | NO_SCAN
|
||||
dietflags = DIET_OMNI //still human at their core, so they maintain their eating habits and diet
|
||||
|
||||
|
||||
@@ -7,6 +7,9 @@
|
||||
|
||||
default_language = "Galactic Common"
|
||||
flags = NO_BREATHE | NO_BLOOD | RADIMMUNE | NOGUNS
|
||||
|
||||
oxy_mod = 0
|
||||
|
||||
virus_immune = 1
|
||||
dietflags = DIET_OMNI //golems can eat anything because they are magic or something
|
||||
reagent_tag = PROCESS_ORG
|
||||
|
||||
@@ -16,6 +16,9 @@
|
||||
)
|
||||
|
||||
flags = NO_BLOOD | NO_BREATHE | RADIMMUNE
|
||||
|
||||
oxy_mod = 0
|
||||
|
||||
virus_immune = 1
|
||||
dietflags = DIET_OMNI //the mutation process allowed you to now digest all foods regardless of initial race
|
||||
reagent_tag = PROCESS_ORG
|
||||
|
||||
@@ -14,6 +14,9 @@
|
||||
flesh_color = "#E6E6C6"
|
||||
|
||||
flags = NO_BREATHE | NO_BLOOD | RADIMMUNE
|
||||
|
||||
oxy_mod = 0
|
||||
|
||||
virus_immune = 1 //why is this a var and not a flag?
|
||||
dietflags = DIET_OMNI
|
||||
reagent_tag = PROCESS_ORG
|
||||
|
||||
@@ -43,6 +43,8 @@
|
||||
|
||||
var/body_temperature = 310.15 //non-IS_SYNTHETIC species will try to stabilize at this temperature. (also affects temperature processing)
|
||||
var/reagent_tag //Used for metabolizing reagents.
|
||||
var/hunger_drain = HUNGER_FACTOR
|
||||
var/digestion_ratio = 1 //How quickly the species digests/absorbs reagents.
|
||||
|
||||
var/siemens_coeff = 1 //base electrocution coefficient
|
||||
|
||||
@@ -66,8 +68,13 @@
|
||||
"sa_sleep" = 5
|
||||
)
|
||||
|
||||
var/brute_mod = null // Physical damage reduction/malus.
|
||||
var/burn_mod = null // Burn damage reduction/malus.
|
||||
var/brute_mod = 1 // Physical damage reduction/amplification
|
||||
var/burn_mod = 1 // Burn damage reduction/amplification
|
||||
var/tox_mod = 1 // Toxin damage reduction/amplification
|
||||
var/oxy_mod = 1 // Oxy damage reduction/amplification
|
||||
var/clone_mod = 1 // Clone damage reduction/amplification
|
||||
var/brain_mod = 1 // Brain damage damage reduction/amplification
|
||||
var/stun_mod = 1 // If a species is more/less impacated by stuns/weakens/paralysis
|
||||
|
||||
var/total_health = 100
|
||||
var/punchdamagelow = 0 //lowest possible punch damage
|
||||
@@ -657,4 +664,4 @@ It'll return null if the organ doesn't correspond, so include null checks when u
|
||||
H.see_invisible = SEE_INVISIBLE_MINIMUM
|
||||
|
||||
if(H.see_override) //Override all
|
||||
H.see_invisible = H.see_override
|
||||
H.see_invisible = H.see_override
|
||||
@@ -506,6 +506,9 @@
|
||||
cold_level_3 = 200
|
||||
cold_env_multiplier = 3
|
||||
|
||||
oxy_mod = 0
|
||||
brain_mod = 2.5
|
||||
|
||||
flags = IS_WHITELISTED | NO_BREATHE | HAS_LIPS | NO_INTORGANS | NO_SCAN
|
||||
clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT | HAS_SOCKS
|
||||
bodyflags = HAS_SKIN_COLOR | NO_EYES
|
||||
@@ -756,6 +759,8 @@
|
||||
clothing_flags = HAS_SOCKS
|
||||
dietflags = 0 //Diona regenerate nutrition in light, no diet necessary
|
||||
|
||||
oxy_mod = 0
|
||||
|
||||
body_temperature = T0C + 15 //make the plant people have a bit lower body temperature, why not
|
||||
blood_color = "#004400"
|
||||
flesh_color = "#907E4A"
|
||||
@@ -850,9 +855,12 @@
|
||||
eyes = "blank_eyes"
|
||||
brute_mod = 2.5 // 100% * 2.5 * 0.6 (robolimbs) ~= 150%
|
||||
burn_mod = 2.5 // So they take 50% extra damage from brute/burn overall.
|
||||
tox_mod = 0
|
||||
clone_mod = 0
|
||||
oxy_mod = 0
|
||||
death_message = "gives one shrill beep before falling limp, their monitor flashing blue before completely shutting off..."
|
||||
|
||||
flags = IS_WHITELISTED | NO_BREATHE | NO_SCAN | NO_BLOOD | NO_PAIN | NO_DNA | NO_POISON | RADIMMUNE | ALL_RPARTS | NOTRANSSTING
|
||||
flags = IS_WHITELISTED | NO_BREATHE | NO_SCAN | NO_BLOOD | NO_PAIN | NO_DNA | RADIMMUNE | ALL_RPARTS| NOTRANSSTING
|
||||
clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT | HAS_SOCKS
|
||||
bodyflags = HAS_SKIN_COLOR | HAS_HEAD_MARKINGS | HAS_HEAD_ACCESSORY
|
||||
dietflags = 0 //IPCs can't eat, so no diet
|
||||
@@ -1007,4 +1015,4 @@
|
||||
H.apply_damage(hot_env_multiplier*HEAT_GAS_DAMAGE_LEVEL_2, BURN, "head", used_weapon = "Excessive Heat")
|
||||
|
||||
if(heat_level_3_breathe to INFINITY)
|
||||
H.apply_damage(hot_env_multiplier*HEAT_GAS_DAMAGE_LEVEL_3, BURN, "head", used_weapon = "Excessive Heat")
|
||||
H.apply_damage(hot_env_multiplier*HEAT_GAS_DAMAGE_LEVEL_3, BURN, "head", used_weapon = "Excessive Heat")
|
||||
19
code/modules/mob/living/carbon/human/status_procs.dm
Normal file
19
code/modules/mob/living/carbon/human/status_procs.dm
Normal file
@@ -0,0 +1,19 @@
|
||||
/mob/living/carbon/human/SetStunned(amount, updating = 1, force = 0)
|
||||
if(species)
|
||||
amount = amount * species.stun_mod
|
||||
..()
|
||||
|
||||
/mob/living/carbon/human/SetWeakened(amount, updating = 1, force = 0)
|
||||
if(species)
|
||||
amount = amount * species.stun_mod
|
||||
..()
|
||||
|
||||
/mob/living/carbon/human/SetParalysis(amount, updating = 1, force = 0)
|
||||
if(species)
|
||||
amount = amount * species.stun_mod
|
||||
..()
|
||||
|
||||
/mob/living/carbon/human/SetSleeping(amount, updating = 1)
|
||||
if(species)
|
||||
amount = amount * species.stun_mod
|
||||
..()
|
||||
@@ -33,6 +33,7 @@
|
||||
var/floating = 0
|
||||
var/mob_size = MOB_SIZE_HUMAN
|
||||
var/metabolism_efficiency = 1 //more or less efficiency to metabolize helpful/harmful reagents and regulate body temperature..
|
||||
var/digestion_ratio = 1 //controls how quickly reagents metabolize; largely governered by species attributes.
|
||||
var/nightvision = 0
|
||||
|
||||
var/bloodcrawl = 0 //0 No blood crawling, 1 blood crawling, 2 blood crawling+mob devour
|
||||
|
||||
@@ -158,7 +158,7 @@ var/global/list/ts_spiderlist = list()
|
||||
var/can_poison = 1
|
||||
if(ishuman(G))
|
||||
var/mob/living/carbon/human/H = G
|
||||
if(!(H.species.reagent_tag & PROCESS_ORG) || (H.species.flags & NO_POISON))
|
||||
if(!(H.species.reagent_tag & PROCESS_ORG) || (!H.species.tox_mod))
|
||||
can_poison = 0
|
||||
spider_specialattack(G,can_poison)
|
||||
else
|
||||
|
||||
@@ -69,6 +69,7 @@
|
||||
var/charges = 0.0
|
||||
var/nutrition = NUTRITION_LEVEL_FED + 50 //Carbon
|
||||
var/satiety = 0 //Carbon
|
||||
var/hunger_drain = HUNGER_FACTOR // how quickly the mob gets hungry; largely utilized by species.
|
||||
|
||||
var/overeatduration = 0 // How long this guy is overeating //Carbon
|
||||
var/intent = null//Living
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
|
||||
/datum/reagent/proc/on_mob_life(mob/living/M)
|
||||
current_cycle++
|
||||
holder.remove_reagent(id, metabolization_rate * M.metabolism_efficiency) //By default it slowly disappears.
|
||||
holder.remove_reagent(id, metabolization_rate * M.metabolism_efficiency * M.digestion_ratio) //By default it slowly disappears.
|
||||
|
||||
/datum/reagent/proc/on_mob_death(mob/living/M) //use this to have chems have a "death-triggered" effect
|
||||
return
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
/datum/reagent/medicine/on_mob_life(mob/living/M)
|
||||
current_cycle++
|
||||
holder.remove_reagent(id, metabolization_rate / M.metabolism_efficiency) //medicine reagents stay longer if you have a better metabolism
|
||||
holder.remove_reagent(id, (metabolization_rate / M.metabolism_efficiency) * M.digestion_ratio) //medicine reagents stay longer if you have a better metabolism
|
||||
|
||||
/datum/reagent/medicine/hydrocodone
|
||||
name = "Hydrocodone"
|
||||
|
||||
@@ -1539,6 +1539,7 @@
|
||||
#include "code\modules\mob\living\carbon\human\login.dm"
|
||||
#include "code\modules\mob\living\carbon\human\npcs.dm"
|
||||
#include "code\modules\mob\living\carbon\human\say.dm"
|
||||
#include "code\modules\mob\living\carbon\human\status_procs.dm"
|
||||
#include "code\modules\mob\living\carbon\human\update_icons.dm"
|
||||
#include "code\modules\mob\living\carbon\human\whisper.dm"
|
||||
#include "code\modules\mob\living\carbon\human\interactive\functions.dm"
|
||||
@@ -1608,8 +1609,8 @@
|
||||
#include "code\modules\mob\living\silicon\robot\robot.dm"
|
||||
#include "code\modules\mob\living\silicon\robot\robot_damage.dm"
|
||||
#include "code\modules\mob\living\silicon\robot\robot_items.dm"
|
||||
#include "code\modules\mob\living\silicon\robot\robot_modules.dm"
|
||||
#include "code\modules\mob\living\silicon\robot\robot_module_actions.dm"
|
||||
#include "code\modules\mob\living\silicon\robot\robot_modules.dm"
|
||||
#include "code\modules\mob\living\silicon\robot\robot_movement.dm"
|
||||
#include "code\modules\mob\living\silicon\robot\update_status.dm"
|
||||
#include "code\modules\mob\living\silicon\robot\drone\drone.dm"
|
||||
|
||||
Reference in New Issue
Block a user