Made Metroids get hungrier a lot slower, but they still will tend to eat more. Also, when they eat, they gain a lot more nutrition from it.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2113 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
vageyenaman@gmail.com
2011-09-04 20:24:51 +00:00
parent 5b26d70a5c
commit 3dcb7db442
2 changed files with 69 additions and 62 deletions
@@ -87,13 +87,13 @@
var/starving = 0 // determines if the metroid is starving-hungry
if(istype(src, /mob/living/carbon/metroid/adult))
switch(nutrition)
if(400 to 900) hungry = 1
if(400 to 1100) hungry = 1
if(0 to 399)
starving = 1
else
switch(nutrition)
if(150 to 500) hungry = 1
if(150 to 800) hungry = 1
if(0 to 149) starving = 1
@@ -282,11 +282,11 @@
step_to(src, Target)
else
if(!Atkcool)
if(!Atkcool && get_obstacle_ok(Target))
Feedon(Target)
else
if(!Atkcool)
if(!Atkcool && get_obstacle_ok(Target))
Feedon(Target)
else
@@ -477,9 +477,9 @@
handle_nutrition()
if(prob(40))
if(istype(src, /mob/living/carbon/metroid/adult)) nutrition-=rand(6,10)
else nutrition-=rand(4,9)
if(prob(20))
if(istype(src, /mob/living/carbon/metroid/adult)) nutrition-=rand(4,6)
else nutrition-=rand(2,3)
if(nutrition <= 0)
nutrition = 0
@@ -489,11 +489,11 @@
else
if(istype(src, /mob/living/carbon/metroid/adult))
if(nutrition >= 1100)
if(nutrition >= 1000)
if(prob(40)) amount_grown++
else
if(nutrition >= 900)
if(nutrition >= 800)
if(prob(40)) amount_grown++
if(amount_grown >= 10 && !Victim && !Target)
@@ -57,73 +57,80 @@
while(Victim && M.health > -70 && stat != 2)
// M.canmove = 0
canmove = 0
if(prob(15) && M.client && istype(M, /mob/living/carbon))
M << "\red [pick("You can feel your body becoming weak!", \
"You feel like you're about to die!", \
"You feel every part of your body screaming in agony!", \
"A low, rolling pain passes through your body!", \
"Your body feels as if it's falling apart!", \
"You feel extremely weak!", \
"A sharp, deep pain bathes every inch of your body!")]"
if(istype(M, /mob/living/carbon))
Victim.cloneloss += rand(1,10)
Victim.toxloss += rand(1,2)
if(Victim.health <= 0)
Victim.toxloss += rand(2,4)
if(M in view(1, src))
loc = M.loc
if(toxloss > 0)
toxloss = max(0, toxloss-10)
if(prob(15) && M.client && istype(M, /mob/living/carbon))
M << "\red [pick("You can feel your body becoming weak!", \
"You feel like you're about to die!", \
"You feel every part of your body screaming in agony!", \
"A low, rolling pain passes through your body!", \
"Your body feels as if it's falling apart!", \
"You feel extremely weak!", \
"A sharp, deep pain bathes every inch of your body!")]"
if(oxyloss > 0)
oxyloss = max(0, oxyloss-10)
if(istype(M, /mob/living/carbon))
Victim.cloneloss += rand(1,10)
Victim.toxloss += rand(1,2)
if(Victim.health <= 0)
Victim.toxloss += rand(2,4)
if(bruteloss > 0)
bruteloss = max(0, bruteloss-10)
if(toxloss > 0)
toxloss = max(0, toxloss-10)
if(fireloss > 0)
fireloss = max(0, fireloss-10)
if(oxyloss > 0)
oxyloss = max(0, oxyloss-10)
if(cloneloss > 0)
cloneloss = max(0, cloneloss-10)
if(bruteloss > 0)
bruteloss = max(0, bruteloss-10)
if(Victim)
for(var/mob/living/carbon/metroid/Metroid in view(1,M))
if(Metroid.Victim == M && Metroid != src)
Metroid.Feedstop()
if(fireloss > 0)
fireloss = max(0, fireloss-10)
if(toxloss<0) toxloss = 0
if(oxyloss<0) oxyloss = 0
if(bruteloss<0) bruteloss = 0
if(fireloss<0) fireloss = 0
if(cloneloss<0) cloneloss = 0
if(cloneloss > 0)
cloneloss = max(0, cloneloss-10)
nutrition += rand(5,20)
if(nutrition >= lastnut + 100)
if(prob(20))
lastnut = nutrition
powerlevel++
if(powerlevel > 10)
powerlevel = 10
if(Victim)
for(var/mob/living/carbon/metroid/Metroid in view(1,M))
if(Metroid.Victim == M && Metroid != src)
Metroid.Feedstop()
if(toxloss<0) toxloss = 0
if(oxyloss<0) oxyloss = 0
if(bruteloss<0) bruteloss = 0
if(fireloss<0) fireloss = 0
if(cloneloss<0) cloneloss = 0
nutrition += rand(10,25)
if(nutrition >= lastnut + 100)
if(prob(60))
lastnut = nutrition
powerlevel++
if(powerlevel > 10)
powerlevel = 10
if(istype(src, /mob/living/carbon/metroid/adult))
if(nutrition > 1200)
nutrition = 1200
else
if(nutrition > 1000)
nutrition = 1000
Victim.updatehealth()
updatehealth()
if(istype(src, /mob/living/carbon/metroid/adult))
if(nutrition > 1200)
nutrition = 1200
else
if(nutrition > 1000)
nutrition = 1000
if(prob(25))
src << "\red <i>[pick("This subject is incompatable", \
"This subject does not have a life energy", "This subject is empty", \
"I am not satisified", "I can not feed from this subject", \
"I do not feel nurished", "This subject is not food")]...</i>"
Victim.updatehealth()
updatehealth()
sleep(rand(15,45))
else
if(prob(25))
src << "\red <i>[pick("This subject is incompatable", \
"This subject does not have a life energy", "This subject is empty", \
"I am not satisified", "I can not feed from this subject", \
"I do not feel nurished", "This subject is not food")]...</i>"
sleep(rand(15,45))
break
if(stat == 2)
if(!istype(src, /mob/living/carbon/metroid/adult))