diff --git a/code/WorkInProgress/organs/organs.dm b/code/WorkInProgress/organs/organs.dm
index a7b7c16d079..de845f1dfeb 100644
--- a/code/WorkInProgress/organs/organs.dm
+++ b/code/WorkInProgress/organs/organs.dm
@@ -103,72 +103,11 @@
/obj/organ/torso
name = "torso"
var/maxHealth = 50 //right now, the mob's (only humans for now) health depends only on it. Will be fixed later
- var/ear_damage = null//Carbon
- var/cloneloss = 0//Carbon
- var/nodamage = 0
-// flags = NOREACT //uncomment this out later
- var/viruses = list() // replaces var/datum/disease/virus
- var/list/resistances = list()
- var/datum/disease/virus = null
- var/emote_allowed = 1
- var/sdisabilities = 0//Carbon
- var/disabilities = 0//Carbon
- var/monkeyizing = null//Carbon
- var/lying = 0.0
- var/resting = 0.0//Carbon
- var/sleeping = 0.0//Carbon
- var/oxyloss = 0.0//Living
- var/toxloss = 0.0//Living
- var/fireloss = 0.0//Living
- var/bruteloss = 0.0//Living
- var/timeofdeath = 0.0//Living
- var/rejuv = null
- var/antitoxs = null
- var/plasma = null
- var/cpr_time = 1.0//Carbon
- var/health = 100//Living
- var/bodytemperature = 310.055 //98.7 F
- var/bhunger = 0//Carbon
- var/nutrition = 400.0//Carbon
- var/overeatduration = 0 // How long this guy is overeating //Carbon
- var/paralysis = 0.0
- var/stunned = 0.0
- var/weakened = 0.0
- var/losebreath = 0.0//Carbon
-
- var/obj/item/weapon/storage/s_active = null//Carbon
- var/inertia_dir = 0
- var/datum/dna/dna = null//Carbon
- var/radiation = 0.0//Carbon
- var/mutations = 0//Carbon
- //telekinesis = 1
- //firemut = 2
- //xray = 4
- //hulk = 8
- //clumsy = 16
- //obese = 32
- //husk = 64
-/*For ninjas and others. This variable is checked when a mob moves and I guess it was supposed to allow the mob to move
-through dense areas, such as walls. Setting density to 0 does the same thing. The difference here is that
-the mob is also allowed to move without any sort of restriction. For instance, in space or out of holder objects.*/
-//0 is off, 1 is normal, 2 is for ninjas.
- var/incorporeal_move = 0
-//The last mob/living/carbon to push/drag/grab this mob (mostly used by Metroids friend recognition)
- var/mob/living/carbon/LAssailant = null
-
-
-
-
/obj/organ/torso/human
name = "human torso"
species = "human"
maxHealth = 100
- var/underwear = 1//Human
- var/obj/item/weapon/back = null//Human/Monkey
- var/obj/item/weapon/tank/internal = null//Human/Monkey
- var/alien_egg_flag = 0//Have you been infected?
- var/last_special = 0
New()
..()
@@ -196,14 +135,6 @@ the mob is also allowed to move without any sort of restriction. For instance, i
var/minDamage = 5 //punching damage
var/maxDamage = 5
- var/atom/movable/pulling = null
- var/hand = null
- var/obj/item/weapon/handcuffs/handcuffed = null//Living
- var/obj/item/l_hand = null//Living
- var/obj/item/r_hand = null//Living
- var/in_throw_mode = 0
-// var/strangleDelay = 1 //The code is a bit too complicated for that right now
-
/obj/organ/limb/arms/alien
name = "alien arms"
species = "alien"
@@ -220,15 +151,6 @@ the mob is also allowed to move without any sort of restriction. For instance, i
/obj/organ/limb/legs
name = "legs"
- var/moveRunDelay = 1 //not sure about how that works
- var/moveWalkDelay = 7
- //var/knockdownResist = 0
- var/next_move = null
- var/prev_move = null
- var/canmove = 1.0
- var/obj/structure/stool/buckled = null//Living
- var/footstep = 1
-
/obj/organ/limb/legs/human
name = "human legs"
species = "human"
@@ -241,47 +163,9 @@ the mob is also allowed to move without any sort of restriction. For instance, i
/obj/organ/head
name = "head"
- var/stuttering = null//Carbon
- var/druggy = 0//Carbon
- var/confused = 0//Carbon
- var/drowsyness = 0.0//Carbon
- var/dizziness = 0//Carbon
- var/is_dizzy = 0
- var/is_jittery = 0
- var/jitteriness = 0//Carbon
- var/r_epil = 0
- var/r_ch_cou = 0
- var/r_Tourette = 0//Carbon
- var/miming = null //checks if the guy is a mime//Human
- var/silent = null //Can't talk. Value goes down every life proc.//Human
- var/voice_name = "unidentifiable voice"
- var/voice_message = null // When you are not understood by others (replaced with just screeches, hisses, chimpers etc.)
- var/say_message = null // When you are understood by others. Currently only used by aliens and monkeys in their say_quote procs
- var/coughedtime = null
- var/job = null//Living
- var/const/blindness = 1//Carbon
- var/const/deafness = 2//Carbon
- var/const/muteness = 4//Carbon
- var/brainloss = 0//Carbon
- var/robot_talk_understand = 0
- var/alien_talk_understand = 0
- var/taj_talk_understand = 0
- var/universal_speak = 0 // Set to 1 to enable the mob to speak to everyone -- TLE
- var/ear_deaf = null//Carbon
- var/eye_blind = null//Carbon
- var/eye_blurry = null//Carbon
- var/eye_stat = null//Living, potentially Carbon
- var/blinded = null
- var/shakecamera = 0
-//Wizard mode, but can be used in other modes thanks to the brand new "Give Spell" badmin button
- var/obj/proc_holder/spell/list/spell_list = list()
-
-
-
/obj/organ/head/human
name = "human head"
species = "human"
- var/obj/item/clothing/mask/wear_mask = null//Carbon
/obj/organ/head/alien
name = "alien head"
diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm
index 0d769c83559..76b19a0965c 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm
@@ -121,7 +121,7 @@
ear_damage += 15
ear_deaf += 60
- bruteloss += b_loss
+ adjustBruteLoss(b_loss)
adjustFireLoss(f_loss)
updatehealth()
@@ -224,7 +224,7 @@
if ((M.client && !( M.blinded )))
M.show_message(text("\red [] has been hit by []", src, O), 1)
if (health > 0)
- bruteloss += (istype(O, /obj/effect/meteor/small) ? 10 : 25)
+ adjustFireLoss((istype(O, /obj/effect/meteor/small) ? 10 : 25))
adjustFireLoss(30)
updatehealth()
@@ -472,7 +472,7 @@
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
O.show_message(text("\red [M.name] has bit []!", src), 1)
- bruteloss += rand(1, 3)
+ adjustBruteLoss(rand(1, 3))
updatehealth()
return
@@ -501,7 +501,7 @@
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
O.show_message(text("\red [M.name] has bit [src]!"), 1)
- bruteloss += rand(1, 3)
+ adjustBruteLoss(rand(1, 3))
updatehealth()
return
@@ -526,7 +526,7 @@
else
damage = rand(5, 35)
- bruteloss += damage
+ adjustBruteLoss(damage)
if(M.powerlevel > 0)
var/stunprob = 10
@@ -566,6 +566,16 @@
return
+/mob/living/carbon/alien/humanoid/attack_animal(mob/living/simple_animal/M as mob)
+ if(M.melee_damage_upper == 0)
+ M.emote("[M.friendly] [src]")
+ else
+ for(var/mob/O in viewers(src, null))
+ O.show_message("\red [M] [M.attacktext] [src]!", 1)
+ var/damage = rand(M.melee_damage_lower, M.melee_damage_upper)
+ adjustBruteLoss(damage)
+ updatehealth()
+
/mob/living/carbon/alien/humanoid/attack_hand(mob/living/carbon/human/M as mob)
if (!ticker)
M << "You cannot attack people before the game has started."
@@ -672,7 +682,7 @@
for(var/mob/O in viewers(M, null))
if ((O.client && !( O.blinded )))
O.show_message(text("\red [] has weakened []!", M, src), 1, "\red You hear someone fall.", 2)
- bruteloss += damage
+ adjustBruteLoss(damage)
updatehealth()
else
if(M.type != /mob/living/carbon/human/tajaran)
@@ -741,7 +751,7 @@ In all, this is a lot like the monkey code. /N
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
O.show_message(text("\red [M.name] has bit []!", src), 1)
- bruteloss += damage
+ adjustBruteLoss(damage)
updatehealth()
else
M << "\green [name] is too injured for that."
diff --git a/code/modules/mob/living/carbon/alien/humanoid/life.dm b/code/modules/mob/living/carbon/alien/humanoid/life.dm
index 9d1f29246f5..3a0d3b6121e 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/life.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/life.dm
@@ -413,7 +413,7 @@
if(src.health <= 20 && prob(1)) spawn(0) emote("gasp")
//if(!src.rejuv) src.oxyloss++
- if(!src.reagents.has_reagent("inaprovaline")) src.oxyloss++
+ if(!src.reagents.has_reagent("inaprovaline")) src.adjustOxyLoss(1)
if(src.stat != 2) src.stat = 1
Paralyse(5)
@@ -585,5 +585,5 @@
continue
if(air_master.current_cycle%3==1)
if(!M.nodamage)
- M.bruteloss += 5
+ M.adjustBruteLoss(5)
src.nutrition += 10
diff --git a/code/modules/mob/living/carbon/alien/humanoid/queen.dm b/code/modules/mob/living/carbon/alien/humanoid/queen.dm
index ebc027a2411..0fe1620a7a1 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/queen.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/queen.dm
@@ -75,7 +75,7 @@
if(health >= 250)
adjustToxLoss(20)
else
- bruteloss -= 5
+ adjustBruteLoss(-5)
adjustFireLoss(-5)
handle_regular_status_updates()
@@ -99,7 +99,7 @@
if(src.health <= 20 && prob(1)) spawn(0) emote("gasp")
//if(!src.rejuv) src.oxyloss++
- if(!src.reagents.has_reagent("inaprovaline")) src.oxyloss++
+ if(!src.reagents.has_reagent("inaprovaline")) src.adjustOxyLoss(1)
if(src.stat != 2) src.stat = 1
Paralyse(5)
diff --git a/code/modules/mob/living/carbon/alien/larva/life.dm b/code/modules/mob/living/carbon/alien/larva/life.dm
index 1f1e446b401..74fee11c9f1 100644
--- a/code/modules/mob/living/carbon/alien/larva/life.dm
+++ b/code/modules/mob/living/carbon/alien/larva/life.dm
@@ -274,7 +274,7 @@
if(health >= 25)
adjustToxLoss(5)
else
- bruteloss -= 5
+ adjustBruteLoss(-5)
adjustFireLoss(-5)
return
@@ -338,7 +338,7 @@
if(health <= 20 && prob(1)) spawn(0) emote("gasp")
//if(!rejuv) oxyloss++
- if(!reagents.has_reagent("inaprovaline")) oxyloss++
+ if(!reagents.has_reagent("inaprovaline")) adjustOxyLoss(1)
if(stat != 2) stat = 1
Paralyse(5)
@@ -514,5 +514,5 @@
continue
if(air_master.current_cycle%3==1)
if(!M.nodamage)
- M.bruteloss += 5
+ M.adjustBruteLoss(5)
nutrition += 10
diff --git a/code/modules/mob/living/carbon/metroid/life.dm b/code/modules/mob/living/carbon/metroid/life.dm
index 85f435aa96a..13ec9d07430 100644
--- a/code/modules/mob/living/carbon/metroid/life.dm
+++ b/code/modules/mob/living/carbon/metroid/life.dm
@@ -414,16 +414,16 @@
// if(src.health <= 20 && prob(1)) spawn(0) emote("gasp")
//if(!src.rejuv) src.oxyloss++
- if(!src.reagents.has_reagent("inaprovaline")) src.oxyloss+=10
+ if(!src.reagents.has_reagent("inaprovaline")) src.adjustOxyLoss(10)
if(src.stat != DEAD) src.stat = UNCONSCIOUS
if(prob(30))
- if(getOxyLoss()>0) oxyloss = max(getOxyLoss()-1, 0)
- if(getToxLoss()>0) adjustToxLoss(-1)
- if(getFireLoss()>0) adjustFireLoss(-1)
- if(cloneloss>0) cloneloss = max(cloneloss-1,0)
- if(getBruteLoss()>0) bruteloss = max(getBruteLoss()-1,0)
+ adjustOxyLoss(-1)
+ adjustToxLoss(-1)
+ adjustFireLoss(-1)
+ adjustCloneLoss(-1)
+ adjustBruteLoss(-1)
if (src.stat == DEAD)
diff --git a/code/modules/mob/living/carbon/metroid/metroid.dm b/code/modules/mob/living/carbon/metroid/metroid.dm
index 7cf25f4b493..912b88aa8c4 100644
--- a/code/modules/mob/living/carbon/metroid/metroid.dm
+++ b/code/modules/mob/living/carbon/metroid/metroid.dm
@@ -174,7 +174,7 @@
if(3.0)
b_loss += 30
- bruteloss += b_loss
+ adjustBruteLoss(b_loss)
adjustFireLoss(f_loss)
updatehealth()
@@ -214,7 +214,7 @@
if ((M.client && !( M.blinded )))
M.show_message(text("\red [] has been hit by []", src, O), 1)
if (health > 0)
- bruteloss += (istype(O, /obj/effect/meteor/small) ? 10 : 25)
+ adjustBruteLoss((istype(O, /obj/effect/meteor/small) ? 10 : 25))
adjustFireLoss(30)
updatehealth()
@@ -341,13 +341,24 @@
else
damage = rand(1, 3)
- bruteloss += damage
+ adjustBruteLoss(damage)
updatehealth()
return
+
+/mob/living/carbon/metroid/attack_animal(mob/living/simple_animal/M as mob)
+ if(M.melee_damage_upper == 0)
+ M.emote("[M.friendly] [src]")
+ else
+ for(var/mob/O in viewers(src, null))
+ O.show_message("\red [M] [M.attacktext] [src]!", 1)
+ var/damage = rand(M.melee_damage_lower, M.melee_damage_upper)
+ adjustBruteLoss(damage)
+ updatehealth()
+
/mob/living/carbon/metroid/attack_paw(mob/living/carbon/monkey/M as mob)
if(!(istype(M, /mob/living/carbon/monkey))) return//Fix for aliens receiving double messages when attacking other aliens.
@@ -531,7 +542,7 @@
if ((O.client && !( O.blinded )))
O.show_message(text("\red [] has [attack_verb]ed []!", M, src), 1)
- bruteloss += damage
+ adjustBruteLoss(damage)
updatehealth()
else
if(M.type != /mob/living/carbon/human/tajaran)
@@ -575,7 +586,7 @@
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
O.show_message(text("\red [] has wounded [name]!", M), 1)
- bruteloss += damage
+ adjustBruteLoss(damage)
updatehealth()
else
playsound(loc, 'slashmiss.ogg', 25, 1, -1)
@@ -638,7 +649,7 @@
for(var/mob/O in viewers(src, null))
if ((O.client && !( O.blinded )))
O.show_message(text("\red [] has disarmed [name]!", M), 1)
- bruteloss += damage
+ adjustBruteLoss(damage)
updatehealth()
return