diff --git a/code/defines/mob/living/carbon/alien_humanoid.dm b/code/defines/mob/living/carbon/alien_humanoid.dm index fa620bc19ca..3dafed16b0a 100644 --- a/code/defines/mob/living/carbon/alien_humanoid.dm +++ b/code/defines/mob/living/carbon/alien_humanoid.dm @@ -6,7 +6,7 @@ var/obj/item/clothing/head/head = null // var/obj/item/weapon/r_store = null var/obj/item/weapon/l_store = null - var/alien_invis = 0 +// var/alien_invis = 0 var/caste = "" update_icon = 1 diff --git a/code/game/atom_procs.dm b/code/game/atom_procs.dm index 637084c080d..d056b7d8fae 100644 --- a/code/game/atom_procs.dm +++ b/code/game/atom_procs.dm @@ -939,6 +939,10 @@ var/using_new_click_proc = 0 //TODO ERRORAGE (This is temporary, while the DblCl if (istype(usr, /mob/living/carbon/monkey)) src.attack_paw(usr, usr.hand) else if (istype(usr, /mob/living/carbon/alien/humanoid)) + if(usr.m_intent == "walk" && istype(usr, /mob/living/carbon/alien/humanoid/hunter)) + usr.m_intent = "run" + usr.hud_used.move_intent.icon_state = "running" + usr.update_icons() src.attack_alien(usr, usr.hand) else if (istype(usr, /mob/living/silicon/ai) || istype(usr, /mob/living/silicon/robot)) src.attack_ai(usr, usr.hand) diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm index 4c35f9849da..810d4279c97 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm @@ -2,144 +2,61 @@ var/datum/reagents/R = new/datum/reagents(100) reagents = R R.my_atom = src - if(src.name == "alien hunter") - src.name = text("alien hunter ([rand(1, 1000)])") - src.real_name = src.name - src.verbs -= /mob/living/carbon/alien/humanoid/verb/corrode + if(name == "alien hunter") + name = text("alien hunter ([rand(1, 1000)])") + real_name = name + verbs -= /mob/living/carbon/alien/humanoid/verb/corrode /mob/living/carbon/alien/humanoid/hunter updatehealth() - if (src.nodamage == 0) + if(nodamage) + health = 150 + stat = CONSCIOUS + else //oxyloss is only used for suicide //toxloss isn't used for aliens, its actually used as alien powers!! - src.health = 150 - src.getOxyLoss() - src.getFireLoss() - src.getBruteLoss() - else - src.health = 150 - src.stat = 0 + health = 150 - getOxyLoss() - getFireLoss() - getBruteLoss() - getCloneLoss() + handle_regular_hud_updates() ..() //-Yvarov - if (src.healths) - if (src.stat != 2) + if (healths) + if (stat != 2) switch(health) if(150 to INFINITY) - src.healths.icon_state = "health0" + healths.icon_state = "health0" if(100 to 150) - src.healths.icon_state = "health1" + healths.icon_state = "health1" if(50 to 100) - src.healths.icon_state = "health2" + healths.icon_state = "health2" if(25 to 50) - src.healths.icon_state = "health3" + healths.icon_state = "health3" if(0 to 25) - src.healths.icon_state = "health4" + healths.icon_state = "health4" else - src.healths.icon_state = "health5" + healths.icon_state = "health5" else - src.healths.icon_state = "health6" + healths.icon_state = "health6" + handle_environment() + if(m_intent == "run" || resting) + //If there are alien weeds on the ground then heal if needed or give some toxins + if(locate(/obj/effect/alien/weeds) in loc) + if(health >= 150) + adjustToxLoss(5) + else + adjustBruteLoss(-5) + adjustFireLoss(-5) + else + adjustToxLoss(-5) - //If there are alien weeds on the ground then heal if needed or give some toxins - if(locate(/obj/effect/alien/weeds) in loc) - if(health >= 150) - adjustToxLoss(5) - - else - adjustBruteLoss(-5) - adjustFireLoss(-5) - - handle_regular_status_updates() - - health = 150 - (getOxyLoss() + getFireLoss() + getBruteLoss() + getCloneLoss()) - - if(getOxyLoss() > 50) Paralyse(3) - - if(src.sleeping) - Paralyse(3) - //if (prob(10) && health) spawn(0) emote("snore") Invalid Emote - src.sleeping-- - - if(src.resting) - Weaken(5) - - if(move_delay_add > 0) - move_delay_add = max(0, move_delay_add - rand(1, 2)) - - if(health < config.health_threshold_dead || src.brain_op_stage == 4.0) - death() - else if(src.health < config.health_threshold_crit) - if(src.health <= 20 && prob(1)) spawn(0) emote("gasp") - - //if(!src.rejuv) src.oxyloss++ - if(!src.reagents.has_reagent("inaprovaline")) src.adjustOxyLoss(1) - - if(src.stat != 2) src.stat = 1 - Paralyse(5) - - if (src.stat != 2) //Alive. - - if (src.paralysis || src.stunned || src.weakened) //Stunned etc. - if (src.stunned > 0) - AdjustStunned(-1) - src.stat = 0 - if (src.weakened > 0) - AdjustWeakened(-1) - src.lying = 1 - src.stat = 0 - if (src.paralysis > 0) - AdjustParalysis(-1) - src.blinded = 1 - src.lying = 1 - src.stat = 1 - var/h = src.hand - src.hand = 0 - drop_item() - src.hand = 1 - drop_item() - src.hand = h - - else //Not stunned. - src.lying = 0 - src.stat = 0 - - else //Dead. - src.lying = 1 - src.blinded = 1 - src.stat = 2 - - if (src.stuttering) src.stuttering-- - - if (src.eye_blind) - src.eye_blind-- - src.blinded = 1 - - if (src.ear_deaf > 0) src.ear_deaf-- - if (src.ear_damage < 25) - src.ear_damage -= 0.05 - src.ear_damage = max(src.ear_damage, 0) - - src.density = !( src.lying ) - - if ((src.sdisabilities & 1)) - src.blinded = 1 - if ((src.sdisabilities & 4)) - src.ear_deaf = 1 - - if (src.eye_blurry > 0) - src.eye_blurry-- - src.eye_blurry = max(0, src.eye_blurry) - - if (src.druggy > 0) - src.druggy-- - src.druggy = max(0, src.druggy) - - return 1 //Hunter verbs - +/* /mob/living/carbon/alien/humanoid/hunter/verb/invis() set name = "Invisibility (50)" set desc = "Makes you invisible for 15 seconds" @@ -161,7 +78,7 @@ update_icons() src << "\green You are no longer invisible." return - +*/ /mob/living/carbon/alien/humanoid/hunter/verb/regurgitate() set name = "Regurgitate" set desc = "Empties the contents of your stomach" diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm index 44b3af79170..72bad8ad24d 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm @@ -2,43 +2,44 @@ var/datum/reagents/R = new/datum/reagents(100) reagents = R R.my_atom = src - if(src.name == "alien sentinel") - src.name = text("alien sentinel ([rand(1, 1000)])") - src.real_name = src.name - src.verbs += /mob/living/carbon/alien/humanoid/proc/corrode_target + if(name == "alien sentinel") + name = text("alien sentinel ([rand(1, 1000)])") + real_name = name + verbs += /mob/living/carbon/alien/humanoid/proc/corrode_target /mob/living/carbon/alien/humanoid/sentinel updatehealth() - if (src.nodamage == 0) + if(nodamage) + health = 125 + stat = CONSCIOUS + else //oxyloss is only used for suicide //toxloss isn't used for aliens, its actually used as alien powers!! - src.health = 125 - src.getOxyLoss() - src.getFireLoss() - src.getBruteLoss() - else - src.health = 125 - src.stat = 0 + health = 125 - getOxyLoss() - getFireLoss() - getBruteLoss() - getCloneLoss() + handle_regular_hud_updates() ..() //-Yvarov - if (src.healths) - if (src.stat != 2) + if (healths) + if (stat != 2) switch(health) if(125 to INFINITY) - src.healths.icon_state = "health0" + healths.icon_state = "health0" if(100 to 125) - src.healths.icon_state = "health1" + healths.icon_state = "health1" if(75 to 100) - src.healths.icon_state = "health2" + healths.icon_state = "health2" if(25 to 75) - src.healths.icon_state = "health3" + healths.icon_state = "health3" if(0 to 25) - src.healths.icon_state = "health4" + healths.icon_state = "health4" else - src.healths.icon_state = "health5" + healths.icon_state = "health5" else - src.healths.icon_state = "health6" + healths.icon_state = "health6" handle_environment() @@ -46,99 +47,10 @@ if(locate(/obj/effect/alien/weeds) in loc) if(health >= 125) adjustToxLoss(10) - else adjustBruteLoss(-10) adjustFireLoss(-10) - - handle_regular_status_updates() - - health = 150 - (getOxyLoss() + getFireLoss() + getBruteLoss() + getCloneLoss()) - - if(getOxyLoss() > 50) Paralyse(3) - - if(src.sleeping) - Paralyse(3) - //if (prob(10) && health) spawn(0) emote("snore") Invalid Emote - src.sleeping-- - - if(src.resting) - Weaken(5) - - if(move_delay_add > 0) - move_delay_add = max(0, move_delay_add - rand(1, 2)) - - if(health < config.health_threshold_dead || src.brain_op_stage == 4.0) - death() - else if(src.health < config.health_threshold_crit) - if(src.health <= 20 && prob(1)) spawn(0) emote("gasp") - - //if(!src.rejuv) src.oxyloss++ - if(!src.reagents.has_reagent("inaprovaline")) src.adjustOxyLoss(1) - - if(src.stat != 2) src.stat = 1 - Paralyse(5) - - if (src.stat != 2) //Alive. - - if (src.paralysis || src.stunned || src.weakened) //Stunned etc. - if (src.stunned > 0) - AdjustStunned(-1) - src.stat = 0 - if (src.weakened > 0) - AdjustWeakened(-1) - src.lying = 1 - src.stat = 0 - if (src.paralysis > 0) - AdjustParalysis(-1) - src.blinded = 1 - src.lying = 1 - src.stat = 1 - var/h = src.hand - src.hand = 0 - drop_item() - src.hand = 1 - drop_item() - src.hand = h - - else //Not stunned. - src.lying = 0 - src.stat = 0 - - else //Dead. - src.lying = 1 - src.blinded = 1 - src.stat = 2 - - if (src.stuttering) src.stuttering-- - - if (src.eye_blind) - src.eye_blind-- - src.blinded = 1 - - if (src.ear_deaf > 0) src.ear_deaf-- - if (src.ear_damage < 25) - src.ear_damage -= 0.05 - src.ear_damage = max(src.ear_damage, 0) - - src.density = !( src.lying ) - - if ((src.sdisabilities & 1)) - src.blinded = 1 - if ((src.sdisabilities & 4)) - src.ear_deaf = 1 - - if (src.eye_blurry > 0) - src.eye_blurry-- - src.eye_blurry = max(0, src.eye_blurry) - - if (src.druggy > 0) - src.druggy-- - src.druggy = max(0, src.druggy) - - return 1 - //Sentinel verbs /mob/living/carbon/alien/humanoid/sentinel/verb/spit(mob/target as mob in oview()) @@ -166,7 +78,7 @@ if(!istype(T, /turf)) return if (U == T) - usr.bullet_act(src, src.get_organ_target()) + usr.bullet_act(src, get_organ_target()) return if(!istype(U, /turf)) return diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm index df4f065bd17..2d5e83f0f30 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm @@ -539,6 +539,6 @@ In all, this is a lot like the monkey code. /N else //oxyloss is only used for suicide //toxloss isn't used for aliens, its actually used as alien powers!! - health = 100 - getOxyLoss() - getFireLoss() - getBruteLoss() + health = 100 - getOxyLoss() - getFireLoss() - getBruteLoss() - getCloneLoss() diff --git a/code/modules/mob/living/carbon/alien/humanoid/queen.dm b/code/modules/mob/living/carbon/alien/humanoid/queen.dm index 29b8518e6e1..a38e75d47ef 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/queen.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/queen.dm @@ -54,89 +54,6 @@ adjustBruteLoss(-5) adjustFireLoss(-5) - handle_regular_status_updates() - - health = 250 - (getOxyLoss() + getFireLoss() + getBruteLoss() + getCloneLoss()) - - if(getOxyLoss() > 50) Paralyse(3) - - if(src.sleeping) - Paralyse(3) - //if (prob(10) && health) spawn(0) emote("snore") Invalid Emote - src.sleeping-- - - if(src.resting) - Weaken(5) - - if(health < config.health_threshold_dead || src.brain_op_stage == 4.0) - death() - else if(src.health < config.health_threshold_crit) - if(src.health <= 20 && prob(1)) spawn(0) emote("gasp") - - //if(!src.rejuv) src.oxyloss++ - if(!src.reagents.has_reagent("inaprovaline")) src.adjustOxyLoss(1) - - if(src.stat != 2) src.stat = 1 - Paralyse(5) - - if (src.stat != 2) //Alive. - - if (src.paralysis || src.stunned || src.weakened) //Stunned etc. - if (src.stunned > 0) - AdjustStunned(-1) - src.stat = 0 - if (src.weakened > 0) - AdjustWeakened(-1) - src.lying = 1 - src.stat = 0 - if (src.paralysis > 0) - AdjustParalysis(-1) - src.blinded = 1 - src.lying = 1 - src.stat = 1 - var/h = src.hand - src.hand = 0 - drop_item() - src.hand = 1 - drop_item() - src.hand = h - - else //Not stunned. - src.lying = 0 - src.stat = 0 - - else //Dead. - src.lying = 1 - src.blinded = 1 - src.stat = 2 - - if (src.stuttering) src.stuttering-- - - if (src.eye_blind) - src.eye_blind-- - src.blinded = 1 - - if (src.ear_deaf > 0) src.ear_deaf-- - if (src.ear_damage < 25) - src.ear_damage -= 0.05 - src.ear_damage = max(src.ear_damage, 0) - - src.density = !( src.lying ) - - if ((src.sdisabilities & 1)) - src.blinded = 1 - if ((src.sdisabilities & 4)) - src.ear_deaf = 1 - - if (src.eye_blurry > 0) - src.eye_blurry-- - src.eye_blurry = max(0, src.eye_blurry) - - if (src.druggy > 0) - src.druggy-- - src.druggy = max(0, src.druggy) - - return 1 //Queen verbs /mob/living/carbon/alien/humanoid/queen/verb/lay_egg() @@ -155,3 +72,13 @@ O.show_message(text("\green [src] has laid an egg!"), 1) new /obj/effect/alien/egg(loc) return + + +/mob/living/carbon/alien/humanoid/queen/updatehealth() + if(nodamage) + health = 250 + stat = CONSCIOUS + else + //oxyloss is only used for suicide + //toxloss isn't used for aliens, its actually used as alien powers!! + health = 250 - getOxyLoss() - getFireLoss() - getBruteLoss() - getCloneLoss() diff --git a/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm b/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm index 14bef583094..c9eddfdd634 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm @@ -20,13 +20,8 @@ for(var/image/I in overlays_lying) overlays += I else - if(alien_invis) - icon_state = "alienh_cloak" //this is such a crude solution. I'm sorry. - //indstead of all that fancy icon processing, it just replaces our base icon - //Aliens can't wear much anyway :P ~Carn - else - if(m_intent == "run") icon_state = "alien[caste]_running" - else icon_state = "alien[caste]_s" + if(m_intent == "run") icon_state = "alien[caste]_running" + else icon_state = "alien[caste]_s" for(var/image/I in overlays_standing) overlays += I diff --git a/code/modules/mob/living/carbon/alien/larva/life.dm b/code/modules/mob/living/carbon/alien/larva/life.dm index eab45d7a64f..34258153cd9 100644 --- a/code/modules/mob/living/carbon/alien/larva/life.dm +++ b/code/modules/mob/living/carbon/alien/larva/life.dm @@ -17,14 +17,11 @@ ..() - if (stat != 2) //still breathing - + if (stat != DEAD) //still breathing //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() - else //Still give containing object the chance to interact if(istype(loc, /obj/)) var/obj/location_as_object = loc @@ -352,7 +349,7 @@ ear_deaf = max(ear_deaf, 1) else if(ear_deaf) //deafness, heals slowly over time ear_deaf = max(ear_deaf-1, 0) - else if(ear_damage < 25) //ear damage heals slowly under this threshold. otherwise you'll need earmuffs + else if(ear_damage < 25) //ear damage heals slowly under this threshold. ear_damage = max(ear_damage-0.05, 0) //Other diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm index 3f58535769e..13672c0baf3 100644 --- a/code/modules/mob/living/carbon/human/human_damage.dm +++ b/code/modules/mob/living/carbon/human/human_damage.dm @@ -10,7 +10,7 @@ total_brute += O.brute_dam total_burn += O.burn_dam health = 100 - getOxyLoss() - getToxLoss() - getCloneLoss() - total_burn - total_brute - //TODO: fix this husking crap + //TODO: fix husking if( ((100 - total_burn) < config.health_threshold_dead) && stat == DEAD) //100 only being used as the magic human max health number, feel free to change it if you add a var for it -- Urist ChangeToHusk() return diff --git a/html/changelog.html b/html/changelog.html index c0af4529984..2666ce2be06 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -46,12 +46,18 @@ Stuff which is in development and not yet visible to players or just code relate should be listed in the changelog upon commit tho. Thanks. --> +
This part of the mob code cleanup mainly focuses on damage variables and procs. So if you suspect something related to taking, dealing or examining damage is not working as intended please fill out an issue report here and be as detailed as possible. This includes what you were doing, steps to reproduce the problem, who you were doing it to, what you were using ect... Thank you.