From 010fa7d60f17c4bd7c45cdac542865e5bbb07531 Mon Sep 17 00:00:00 2001 From: Markolie Date: Fri, 21 Oct 2016 17:51:55 +0200 Subject: [PATCH] Alien attack and organ fixes --- code/modules/mob/living/carbon/alien/alien.dm | 8 ++-- .../mob/living/carbon/alien/alien_defenses.dm | 9 ++--- .../carbon/alien/humanoid/caste/drone.dm | 6 +-- .../carbon/alien/humanoid/caste/hunter.dm | 2 +- .../carbon/alien/humanoid/caste/sentinel.dm | 6 +-- .../living/carbon/alien/humanoid/empress.dm | 10 ++--- .../mob/living/carbon/alien/humanoid/queen.dm | 10 ++--- .../mob/living/carbon/alien/larva/larva.dm | 37 +------------------ 8 files changed, 26 insertions(+), 62 deletions(-) diff --git a/code/modules/mob/living/carbon/alien/alien.dm b/code/modules/mob/living/carbon/alien/alien.dm index 6797744fbf6..9e91abdd3e4 100644 --- a/code/modules/mob/living/carbon/alien/alien.dm +++ b/code/modules/mob/living/carbon/alien/alien.dm @@ -27,13 +27,15 @@ var/heat_protection = 0.5 var/leaping = 0 ventcrawler = 2 + + var/list/alien_organs = list() /mob/living/carbon/alien/New() verbs += /mob/living/verb/mob_sleep verbs += /mob/living/verb/lay_down - internal_organs += new /obj/item/organ/internal/brain/xeno - internal_organs += new /obj/item/organ/internal/xenos/hivenode - for(var/obj/item/organ/internal/I in internal_organs) + alien_organs += new /obj/item/organ/internal/brain/xeno + alien_organs += new /obj/item/organ/internal/xenos/hivenode + for(var/obj/item/organ/internal/I in alien_organs) I.insert(src) ..() diff --git a/code/modules/mob/living/carbon/alien/alien_defenses.dm b/code/modules/mob/living/carbon/alien/alien_defenses.dm index 220b61e28d8..3949948b0f3 100644 --- a/code/modules/mob/living/carbon/alien/alien_defenses.dm +++ b/code/modules/mob/living/carbon/alien/alien_defenses.dm @@ -15,7 +15,6 @@ In all, this is a lot like the monkey code. /N return switch(M.a_intent) - if(I_HELP) sleeping = max(0,sleeping-5) resting = 0 @@ -25,11 +24,12 @@ In all, this is a lot like the monkey code. /N visible_message("[M.name] nuzzles [src] trying to wake it up!") if(I_GRAB) - src.grabbedby(M) + grabbedby(M) return 1 else if(health > 0) + M.do_attack_animation(src) playsound(loc, 'sound/weapons/bite.ogg', 50, 1, -1) var/damage = 1 visible_message("[M.name] bites [src]!", \ @@ -39,13 +39,10 @@ In all, this is a lot like the monkey code. /N updatehealth() else to_chat(M, "[name] is too injured for that.") - return - /mob/living/carbon/alien/attack_larva(mob/living/carbon/alien/larva/L as mob) return attack_alien(L) - /mob/living/carbon/alien/attack_hand(mob/living/carbon/human/M as mob) if(..()) //to allow surgery to return properly. return 0 @@ -56,7 +53,7 @@ In all, this is a lot like the monkey code. /N if(I_HELP) help_shake_act(M) if(I_GRAB) - src.grabbedby(M) + grabbedby(M) if(I_HARM, I_DISARM) return 1 return 0 diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm index e45fa198006..958742b3e61 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm @@ -12,9 +12,9 @@ if(src.name == "alien drone") src.name = text("alien drone ([rand(1, 1000)])") src.real_name = src.name - internal_organs += new /obj/item/organ/internal/xenos/plasmavessel/drone - internal_organs += new /obj/item/organ/internal/xenos/acidgland - internal_organs += new /obj/item/organ/internal/xenos/resinspinner + alien_organs += new /obj/item/organ/internal/xenos/plasmavessel/drone + alien_organs += new /obj/item/organ/internal/xenos/acidgland + alien_organs += new /obj/item/organ/internal/xenos/resinspinner ..() //Drones use the same base as generic humanoids. 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 60a1e5daa5f..60a7e4e2f1a 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm @@ -12,7 +12,7 @@ if(name == "alien hunter") name = text("alien hunter ([rand(1, 1000)])") real_name = name - internal_organs += new /obj/item/organ/internal/xenos/plasmavessel/hunter + alien_organs += new /obj/item/organ/internal/xenos/plasmavessel/hunter ..() /mob/living/carbon/alien/humanoid/hunter/handle_regular_hud_updates() 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 d93fb0a835c..186577a1908 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm @@ -41,9 +41,9 @@ if(name == "alien sentinel") name = text("alien sentinel ([rand(1, 1000)])") real_name = name - internal_organs += new /obj/item/organ/internal/xenos/plasmavessel - internal_organs += new /obj/item/organ/internal/xenos/acidgland - internal_organs += new /obj/item/organ/internal/xenos/neurotoxin + alien_organs += new /obj/item/organ/internal/xenos/plasmavessel + alien_organs += new /obj/item/organ/internal/xenos/acidgland + alien_organs += new /obj/item/organ/internal/xenos/neurotoxin ..() /mob/living/carbon/alien/humanoid/sentinel/handle_regular_hud_updates() diff --git a/code/modules/mob/living/carbon/alien/humanoid/empress.dm b/code/modules/mob/living/carbon/alien/humanoid/empress.dm index b49bc8c1ad1..346247c8e10 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/empress.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/empress.dm @@ -44,11 +44,11 @@ break real_name = src.name - internal_organs += new /obj/item/organ/internal/xenos/plasmavessel/queen - internal_organs += new /obj/item/organ/internal/xenos/acidgland - internal_organs += new /obj/item/organ/internal/xenos/eggsac - internal_organs += new /obj/item/organ/internal/xenos/resinspinner - internal_organs += new /obj/item/organ/internal/xenos/neurotoxin + alien_organs += new /obj/item/organ/internal/xenos/plasmavessel/queen + alien_organs += new /obj/item/organ/internal/xenos/acidgland + alien_organs += new /obj/item/organ/internal/xenos/eggsac + alien_organs += new /obj/item/organ/internal/xenos/resinspinner + alien_organs += new /obj/item/organ/internal/xenos/neurotoxin ..() /mob/living/carbon/alien/humanoid/empress diff --git a/code/modules/mob/living/carbon/alien/humanoid/queen.dm b/code/modules/mob/living/carbon/alien/humanoid/queen.dm index daba3852764..0fcec18e8ad 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/queen.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/queen.dm @@ -23,11 +23,11 @@ break real_name = src.name - internal_organs += new /obj/item/organ/internal/xenos/plasmavessel/queen - internal_organs += new /obj/item/organ/internal/xenos/acidgland - internal_organs += new /obj/item/organ/internal/xenos/eggsac - internal_organs += new /obj/item/organ/internal/xenos/resinspinner - internal_organs += new /obj/item/organ/internal/xenos/neurotoxin + alien_organs += new /obj/item/organ/internal/xenos/plasmavessel/queen + alien_organs += new /obj/item/organ/internal/xenos/acidgland + alien_organs += new /obj/item/organ/internal/xenos/eggsac + alien_organs += new /obj/item/organ/internal/xenos/resinspinner + alien_organs += new /obj/item/organ/internal/xenos/neurotoxin ..() diff --git a/code/modules/mob/living/carbon/alien/larva/larva.dm b/code/modules/mob/living/carbon/alien/larva/larva.dm index eb5522cafac..8e9e0dea576 100644 --- a/code/modules/mob/living/carbon/alien/larva/larva.dm +++ b/code/modules/mob/living/carbon/alien/larva/larva.dm @@ -24,7 +24,7 @@ regenerate_icons() add_language("Xenomorph") add_language("Hivemind") - internal_organs += new /obj/item/organ/internal/xenos/plasmavessel/larva + alien_organs += new /obj/item/organ/internal/xenos/plasmavessel/larva ..() @@ -190,41 +190,6 @@ playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1) visible_message("[M] has attempted to kick [src]!", \ "[M] has attempted to kick [src]!") - return - -/mob/living/carbon/alien/larva/attack_alien(mob/living/carbon/alien/humanoid/M as mob) - if(!ticker) - to_chat(M, "You cannot attack people before the game has started.") - return - - if(istype(loc, /turf) && istype(loc.loc, /area/start)) - to_chat(M, "No attacking people at spawn, you jackass.") - return - - ..() - - switch(M.a_intent) - - if(I_HELP) - sleeping = max(0,sleeping-5) - resting = 0 - AdjustParalysis(-3) - AdjustStunned(-3) - AdjustWeakened(-3) - visible_message("[M.name] nuzzles [src] trying to wake it up!") - - else - if(health > 0) - M.do_attack_animation(src) - playsound(loc, 'sound/weapons/bite.ogg', 50, 1, -1) - var/damage = 1 - visible_message("[M.name] bites [src]!", \ - "[M.name] bites [src]!") - adjustBruteLoss(damage) - updatehealth() - else - to_chat(M, "[name] is too injured for that.") - return /mob/living/carbon/alien/larva/restrained() return 0