Alien attack and organ fixes

This commit is contained in:
Markolie
2016-10-21 17:51:55 +02:00
parent 1a307cd8c9
commit 010fa7d60f
8 changed files with 26 additions and 62 deletions
@@ -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)
..()
@@ -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("<span class='notice'>[M.name] nuzzles [src] trying to wake it up!</span>")
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("<span class='danger'>[M.name] bites [src]!</span>", \
@@ -39,13 +39,10 @@ In all, this is a lot like the monkey code. /N
updatehealth()
else
to_chat(M, "<span class='warning'>[name] is too injured for that.</span>")
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
@@ -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.
@@ -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()
@@ -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()
@@ -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
@@ -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
..()
@@ -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("<span class='danger'>[M] has attempted to kick [src]!</span>", \
"<span class='userdanger'>[M] has attempted to kick [src]!</span>")
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("<span class='notice'>[M.name] nuzzles [src] trying to wake it up!</span>")
else
if(health > 0)
M.do_attack_animation(src)
playsound(loc, 'sound/weapons/bite.ogg', 50, 1, -1)
var/damage = 1
visible_message("<span class='danger'>[M.name] bites [src]!</span>", \
"<span class='userdanger'>[M.name] bites [src]!</span>")
adjustBruteLoss(damage)
updatehealth()
else
to_chat(M, "<span class='warning'>[name] is too injured for that.</span>")
return
/mob/living/carbon/alien/larva/restrained()
return 0