mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-19 19:13:30 +01:00
Bugfixes:
- Wizards and Changeling stings can no longer select ghosts.
- AIs can no longer change their icon if they're out of power or dead.
- PC Metroids can latch onto cyborgs, but they won't actually do anything. NPC Metroids simply won't ever latch onto cyborgs (but they will attack them if provoked!)
Changes:
- Gave Metroids a slightly longer attack delay.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1988 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
@@ -259,13 +259,23 @@
|
||||
|
||||
if(Target in view(1,src))
|
||||
|
||||
if(istype(Target, /mob/living/silicon))
|
||||
if(!Atkcool)
|
||||
spawn()
|
||||
Atkcool = 1
|
||||
sleep(15)
|
||||
Atkcool = 0
|
||||
|
||||
if(get_obstacle_ok(Target))
|
||||
Target.attack_metroid(src)
|
||||
return
|
||||
if(prob(80) && !Target.lying)
|
||||
|
||||
if(Target.client && Target.health >= rand(10,30))
|
||||
if(!Atkcool)
|
||||
spawn()
|
||||
Atkcool = 1
|
||||
sleep(10)
|
||||
sleep(25)
|
||||
Atkcool = 0
|
||||
|
||||
if(get_obstacle_ok(Target))
|
||||
@@ -276,11 +286,12 @@
|
||||
step_to(src, Target)
|
||||
|
||||
else
|
||||
|
||||
Feedon(Target)
|
||||
if(!Atkcool)
|
||||
Feedon(Target)
|
||||
|
||||
else
|
||||
Feedon(Target)
|
||||
if(!Atkcool)
|
||||
Feedon(Target)
|
||||
|
||||
else
|
||||
if(Target in view(30, src))
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
return
|
||||
|
||||
var/list/choices = list()
|
||||
for(var/mob/living/carbon/C in view(1,src))
|
||||
for(var/mob/living/C in view(1,src))
|
||||
if(C!=src && !istype(C,/mob/living/carbon/metroid))
|
||||
choices += C
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
if(!M) return
|
||||
if(M in view(1, src))
|
||||
|
||||
if(istype(M, /mob/living/carbon) && !istype(src, /mob/living/carbon/brain))
|
||||
if(!istype(src, /mob/living/carbon/brain))
|
||||
if(!istype(M, /mob/living/carbon/metroid))
|
||||
if(stat != 2)
|
||||
if(health > -70)
|
||||
@@ -57,7 +57,7 @@
|
||||
while(Victim && M.health > -70 && stat != 2)
|
||||
// M.canmove = 0
|
||||
canmove = 0
|
||||
if(prob(15) && M.client)
|
||||
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!", \
|
||||
@@ -66,54 +66,62 @@
|
||||
"You feel extremely weak!", \
|
||||
"A sharp, deep pain bathes every inch of your body!")]"
|
||||
|
||||
Victim.cloneloss += rand(1,10)
|
||||
Victim.toxloss += rand(1,2)
|
||||
if(Victim.health <= 0)
|
||||
Victim.toxloss += rand(2,4)
|
||||
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(toxloss > 0)
|
||||
toxloss = max(0, toxloss-10)
|
||||
if(toxloss > 0)
|
||||
toxloss = max(0, toxloss-10)
|
||||
|
||||
if(oxyloss > 0)
|
||||
oxyloss = max(0, oxyloss-10)
|
||||
if(oxyloss > 0)
|
||||
oxyloss = max(0, oxyloss-10)
|
||||
|
||||
if(bruteloss > 0)
|
||||
bruteloss = max(0, bruteloss-10)
|
||||
if(bruteloss > 0)
|
||||
bruteloss = max(0, bruteloss-10)
|
||||
|
||||
if(fireloss > 0)
|
||||
fireloss = max(0, fireloss-10)
|
||||
if(fireloss > 0)
|
||||
fireloss = max(0, fireloss-10)
|
||||
|
||||
if(cloneloss > 0)
|
||||
cloneloss = max(0, cloneloss-10)
|
||||
if(cloneloss > 0)
|
||||
cloneloss = max(0, cloneloss-10)
|
||||
|
||||
if(Victim)
|
||||
for(var/mob/living/carbon/metroid/Metroid in view(1,M))
|
||||
if(Metroid.Victim == M && Metroid != src)
|
||||
Metroid.Feedstop()
|
||||
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
|
||||
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(5,20)
|
||||
if(nutrition >= lastnut + 100)
|
||||
if(prob(20))
|
||||
lastnut = nutrition
|
||||
powerlevel++
|
||||
if(powerlevel > 10)
|
||||
powerlevel = 10
|
||||
nutrition += rand(5,20)
|
||||
if(nutrition >= lastnut + 100)
|
||||
if(prob(20))
|
||||
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
|
||||
|
||||
Victim.updatehealth()
|
||||
updatehealth()
|
||||
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))
|
||||
|
||||
|
||||
@@ -63,6 +63,9 @@
|
||||
/mob/living/silicon/ai/verb/pick_icon()
|
||||
set category = "AI Commands"
|
||||
set name = "Change AI Core Display"
|
||||
if(stat || aiRestorePowerRoutine)
|
||||
return
|
||||
|
||||
|
||||
//if(icon_state == initial(icon_state))
|
||||
var/icontype = input("Please, select a display!", "AI", null/*, null*/) in list("Clown", "HAL9000", "Monochrome", "Blue", "HAL9000 Mark2", "Inverted", "Firewall", "Green")
|
||||
|
||||
Reference in New Issue
Block a user