mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-23 20:16:55 +01:00
Aliens:
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:
@@ -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
|
||||
|
||||
@@ -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
@@ -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))))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user