Reworked the code to use a new "plasma" var instead of toxloss for their powers.
Facehuggers are now active for 30 to 60 instead of 3 to 5 seconds.
Aliens can see whether facehuggers are active without needing to examine them.
Changelings:
Ranged sting is now 2 squares-ranged instead of 3 squares.
Space:
Reverted the randomly accessible z-levels back to how they were (derelict and ai sat).

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2627 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
uporotiy
2011-12-06 08:30:03 +00:00
parent 07dac128c1
commit 4764cdc990
11 changed files with 39 additions and 22 deletions
+1 -1
View File
@@ -6,7 +6,7 @@
icon = 'alien.dmi'
gender = NEUTER
toxloss = 250
var/storedPlasma = 250
var/alien_invis = 0.0
var/max_plasma = 500
@@ -22,7 +22,7 @@
name = "alien hunter"
health = 150
toxloss = 100
storedPlasma = 100
max_plasma = 150
icon_state = "alien_s"
@@ -30,7 +30,7 @@
name = "alien sentinel"
health = 125
toxloss = 100
storedPlasma = 100
max_plasma = 250
icon_state = "alien_s"
@@ -400,7 +400,7 @@
/client/proc/changeling_boost_range()
set category = "Changeling"
set name = "Ranged Sting (10)"
set desc="Your next sting ability can be used against targets 3 squares away."
set desc="Your next sting ability can be used against targets 2 squares away."
if(!usr.changeling)
usr << "\red You're not a changeling, something's wrong!"
@@ -417,7 +417,7 @@
usr.changeling.chem_charges -= 10
usr << "\blue Your throat adjusts to launch the sting."
usr.changeling.sting_range = 3
usr.changeling.sting_range = 2
usr.verbs -= /client/proc/changeling_boost_range
@@ -439,7 +439,7 @@
for(var/mob/living/carbon/C in oview(usr.changeling.sting_range))
victims += C
var/mob/T = input(usr, "Who do you wish to sting?") as null | anything in victims
if(T)
if(T && T in view(usr.changeling.sting_range))
if(usr.stat)
usr << "\red Not when we are incapacitated."
@@ -480,7 +480,7 @@
for(var/mob/living/carbon/C in oview(usr.changeling.sting_range))
victims += C
var/mob/T = input(usr, "Who do you wish to sting?") as null | anything in victims
if(T)
if(T && T in view(usr.changeling.sting_range))
if(usr.stat)
usr << "\red Not when we are incapacitated."
return
@@ -535,7 +535,7 @@
victims += C
var/mob/T = input(usr, "Who do you wish to sting?") as null | anything in victims
if(T)
if(T && T in view(usr.changeling.sting_range))
if(usr.stat)
usr << "\red Not when we are incapacitated."
return
@@ -575,7 +575,7 @@
victims += C
var/mob/T = input(usr, "Who do you wish to sting?") as null | anything in victims
if(T)
if(T && T in view(usr.changeling.sting_range))
if(usr.stat)
usr << "\red Not when we are incapacitated."
@@ -619,7 +619,7 @@
victims += C
var/mob/T = input(usr, "Who do you wish to sting?") as null | anything in victims
if(T)
if(T && T in view(usr.changeling.sting_range))
if(usr.stat)
usr << "\red Not when we are incapacitated."
return
@@ -671,7 +671,7 @@
victims += C
var/mob/T = input(usr, "Who do you wish to sting?") as null | anything in victims
if(T)
if(T && T in view(usr.changeling.sting_range))
if(usr.stat)
usr << "\red Not when we are incapacitated."
return
+18 -3
View File
@@ -2,8 +2,8 @@ var/const
MIN_IMPREGNATION_TIME = 100 //time it takes to impregnate someone
MAX_IMPREGNATION_TIME = 150
MIN_ACTIVE_TIME = 30 //time between being dropped and going idle
MAX_ACTIVE_TIME = 50
MIN_ACTIVE_TIME = 300 //time between being dropped and going idle
MAX_ACTIVE_TIME = 600
/obj/item/clothing/mask/facehugger
name = "alien"
@@ -13,7 +13,7 @@ var/const
w_class = 1 //note: can be picked up by aliens unlike most other items of w_class below 4
flags = FPRINT|TABLEPASS|MASKCOVERSMOUTH|MASKCOVERSEYES
var/stat = CONSCIOUS //UNCONSCIOUS is the idle state in this case
var/stat = UNCONSCIOUS //UNCONSCIOUS is the idle state in this case
var/sterile = 0
@@ -177,6 +177,11 @@ var/const
stat = CONSCIOUS
for(var/mob/living/carbon/alien/alien in world)
var/image/activeIndicator = image('alien.dmi', loc = src, icon_state = "facehugger_active")
activeIndicator.override = 1
alien.client.images += activeIndicator
spawn(rand(MIN_ACTIVE_TIME,MAX_ACTIVE_TIME))
GoIdle()
@@ -186,6 +191,8 @@ var/const
if(stat == DEAD || stat == UNCONSCIOUS)
return
RemoveActiveIndicators()
stat = UNCONSCIOUS
return
@@ -194,6 +201,8 @@ var/const
if(stat == DEAD)
return
RemoveActiveIndicators()
icon_state = "facehugger_dead"
stat = DEAD
@@ -202,7 +211,13 @@ var/const
return
proc/RemoveActiveIndicators() //removes the "active" facehugger indicator from all aliens in the world for this hugger
for(var/mob/living/carbon/alien/alien in world)
for(var/image/image in alien.client.images)
if(image.icon_state == "facehugger_active" && image.loc == src)
del(image)
return
/* NOPE.png -- Urist
@@ -10,10 +10,10 @@ Doesn't work on other aliens/AI.*/
if(stat)
src << "\green You must be conscious to do this."
return 0
else if(X&&getToxLoss() < X)
else if(X && getPlasma() < X)
src << "\green Not enough plasma stored."
return 0
else if(Y&&(!isturf(src.loc) || istype(src.loc, /turf/space)))
else if(Y && (!isturf(src.loc) || istype(src.loc, /turf/space)))
src << "\green Bad place for a garden!"
return 0
else return 1
@@ -72,7 +72,7 @@
stat(null, "Move Mode: [m_intent]")
if (client.statpanel == "Status")
stat(null, "Plasma Stored: [getToxLoss()]")
stat(null, "Plasma Stored: [getPlasma()]")
///mob/living/carbon/alien/humanoid/bullet_act(var/obj/item/projectile/Proj) taken care of in living
@@ -63,7 +63,7 @@
if (client.statpanel == "Status")
stat(null, "Progress: [amount_grown]/200")
stat(null, "Plasma Stored: [getToxLoss()]")
stat(null, "Plasma Stored: [getPlasma()]")
///mob/living/carbon/alien/larva/bullet_act(var/obj/item/projectile/Proj) taken care of in living
@@ -1,6 +1,3 @@
/mob/living/carbon/alien/eyecheck()
return 2
/mob/living/carbon/alien/say_understands(var/other)
if (istype(other, /mob/living/carbon/alien))
return 1
+5 -1
View File
@@ -195,7 +195,11 @@ var/const
GAS_N2O = 1 << 4
var/list/accessable_z_levels = list("1" = 10, "3" = 15, "4" = 60, "5" = 15) //This list contains the z-level numbers which can be accessed via space travel and the percentile chances to get there. (Exceptions: extended, sandbox and nuke) -Errorage
var/list/accessable_z_levels = list("3" = 30, "4" = 70)
//This list contains the z-level numbers which can be accessed via space travel and the percentile chances to get there.
//(Exceptions: extended, sandbox and nuke) -Errorage
//Was list("1" = 10, "3" = 15, "4" = 60, "5" = 15); changed it to list("3" = 30, "4" = 70).
//Spacing should be a reliable method of getting rid of a body -- Urist.
#define IS_MODE_COMPILED(MODE) (ispath(text2path("/datum/game_mode/"+(MODE))))