-Larva grow a little faster (an extra growth per life) when on weeds or when breathing in plasma.

-Observer following is cancelled when there's no client.
-Made facehuggers/eggs a little smarter. They won't try to go after people with masks covering their mouths (as that kills them), however when they're thrown they will still try to attach to the person.
-Improved alien stats(). You'll be able to see the max plasma and larva will see the escape shuttle.
-Blessing with a fire extinguisher wasn't working because of the volume check. Removed the check.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4842 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
giacomand@gmail.com
2012-10-10 19:56:51 +00:00
parent 4d74a9f252
commit 5a93673762
8 changed files with 53 additions and 48 deletions
+3 -1
View File
@@ -177,7 +177,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
if(istype(usr, /mob/dead/observer))
var/list/mobs = getmobs()
var/input = input("Please, select a mob!", "Follow Mob", null, null) as null|anything in mobs
var/input = input("Please, select a mob!", "Haunt", null, null) as null|anything in mobs
var/mob/target = mobs[input]
if(target && target != usr)
spawn(0)
@@ -186,6 +186,8 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
var/turf/T = get_turf(target)
if(!T)
break
if(!client)
break
src.loc = T
pos = src.loc
sleep(15)
+15 -3
View File
@@ -48,9 +48,6 @@
/mob/living/carbon/alien/eyecheck()
return 2
/mob/living/carbon/alien/New()
..()
/mob/living/carbon/alien/proc/handle_environment(var/datum/gas_mixture/environment)
//If there are alien weeds on the ground then heal if needed or give some toxins
@@ -146,6 +143,21 @@
/mob/living/carbon/alien/Process_Spaceslipping()
return 0 // Don't slip in space.
/mob/living/carbon/alien/Stat()
stat(null, "Intent: [a_intent]")
stat(null, "Move Mode: [m_intent]")
..()
if (client.statpanel == "Status")
stat(null, "Plasma Stored: [getPlasma()]/[max_plasma]")
if(emergency_shuttle)
if(emergency_shuttle.online && emergency_shuttle.location < 2)
var/timeleft = emergency_shuttle.timeleft()
if (timeleft)
stat(null, "ETA-[(timeleft / 60) % 60]:[add_zero(num2text(timeleft % 60), 2)]")
/mob/living/carbon/alien/Stun(amount)
if(status_flags & CANSTUN)
@@ -60,26 +60,6 @@
tally = -1 // hunters go supersuperfast
return (tally + move_delay_add + config.alien_delay)
//This needs to be fixed
/mob/living/carbon/alien/humanoid/Stat()
..()
statpanel("Status")
if (client && client.holder)
stat(null, "([x], [y], [z])")
stat(null, "Intent: [a_intent]")
stat(null, "Move Mode: [m_intent]")
if (client.statpanel == "Status")
stat(null, "Plasma Stored: [getPlasma()]")
if(emergency_shuttle)
if(emergency_shuttle.online && emergency_shuttle.location < 2)
var/timeleft = emergency_shuttle.timeleft()
if (timeleft)
stat(null, "ETA-[(timeleft / 60) % 60]:[add_zero(num2text(timeleft % 60), 2)]")
///mob/living/carbon/alien/humanoid/bullet_act(var/obj/item/projectile/Proj) taken care of in living
/mob/living/carbon/alien/humanoid/emp_act(severity)
@@ -6,6 +6,8 @@
maxHealth = 25
health = 25
storedPlasma = 50
max_plasma = 50
var/amount_grown = 0
var/max_grown = 200
@@ -56,24 +58,12 @@
//This needs to be fixed
/mob/living/carbon/alien/larva/Stat()
..()
stat(null, "Progress: [amount_grown]/[max_grown]")
statpanel("Status")
if (client && client.holder)
stat(null, "([x], [y], [z])")
stat(null, "Intent: [a_intent]")
stat(null, "Move Mode: [m_intent]")
if (client.statpanel == "Status")
stat(null, "Progress: [amount_grown]/[max_grown]")
stat(null, "Plasma Stored: [getPlasma()]")
///mob/living/carbon/alien/larva/bullet_act(var/obj/item/projectile/Proj) taken care of in living
/mob/living/carbon/alien/larva/emp_act(severity)
..()
/mob/living/carbon/alien/larva/adjustToxLoss(amount)
if(stat != DEAD)
amount_grown = min(amount_grown + 1, max_grown)
..(amount)
/mob/living/carbon/alien/larva/ex_act(severity)
@@ -5,8 +5,8 @@
var/const/MIN_IMPREGNATION_TIME = 100 //time it takes to impregnate someone
var/const/MAX_IMPREGNATION_TIME = 150
var/const/MIN_ACTIVE_TIME = 300 //time between being dropped and going idle
var/const/MAX_ACTIVE_TIME = 600
var/const/MIN_ACTIVE_TIME = 200 //time between being dropped and going idle
var/const/MAX_ACTIVE_TIME = 400
/obj/item/clothing/mask/facehugger
name = "alien"
@@ -79,7 +79,7 @@ var/const/MAX_ACTIVE_TIME = 600
Attach(M)
/obj/item/clothing/mask/facehugger/HasEntered(atom/target)
Attach(target)
HasProximity(target)
return
/obj/item/clothing/mask/facehugger/dropped()
@@ -203,5 +203,15 @@ var/const/MAX_ACTIVE_TIME = 600
return
/obj/item/clothing/mask/facehugger/HasProximity(atom/movable/AM as mob|obj)
if(istype(AM , /mob/living/))
if(CanHug(AM))
Attach(AM)
/proc/CanHug(var/mob/M)
if(!iscarbon(M) || isalien(M))
return 0
var/mob/living/carbon/C = M
if(ishuman(C))
var/mob/living/carbon/human/H = C
if(H.head && H.head.flags & HEADCOVERSMOUTH)
return 0
return 1