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