diff --git a/code/defines/mob/living/carbon/alien.dm b/code/defines/mob/living/carbon/alien.dm index 9f2f3f40695..7ed371f5d9f 100644 --- a/code/defines/mob/living/carbon/alien.dm +++ b/code/defines/mob/living/carbon/alien.dm @@ -6,7 +6,7 @@ icon = 'alien.dmi' gender = NEUTER - toxloss = 250 + var/storedPlasma = 250 var/alien_invis = 0.0 var/max_plasma = 500 diff --git a/code/defines/mob/living/carbon/alien_humanoid.dm b/code/defines/mob/living/carbon/alien_humanoid.dm index c48c0fee3bc..6a880121b4d 100644 --- a/code/defines/mob/living/carbon/alien_humanoid.dm +++ b/code/defines/mob/living/carbon/alien_humanoid.dm @@ -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" diff --git a/code/game/gamemodes/changeling/changeling_powers.dm b/code/game/gamemodes/changeling/changeling_powers.dm index 548b6aecfe4..73bd99df989 100644 --- a/code/game/gamemodes/changeling/changeling_powers.dm +++ b/code/game/gamemodes/changeling/changeling_powers.dm @@ -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 diff --git a/code/game/objects/alien/facehugger.dm b/code/game/objects/alien/facehugger.dm index b68f9aed116..dfb45df9575 100644 --- a/code/game/objects/alien/facehugger.dm +++ b/code/game/objects/alien/facehugger.dm @@ -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 diff --git a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm index 81fa6ab7b39..f45a231b458 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm @@ -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 diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm index e3ee84fe53a..7ba7d8222c1 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm @@ -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 diff --git a/code/modules/mob/living/carbon/alien/larva/larva.dm b/code/modules/mob/living/carbon/alien/larva/larva.dm index abbc1fade1f..68dca06b1f7 100644 --- a/code/modules/mob/living/carbon/alien/larva/larva.dm +++ b/code/modules/mob/living/carbon/alien/larva/larva.dm @@ -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 diff --git a/code/modules/mob/living/carbon/alien/say.dm b/code/modules/mob/living/carbon/alien/say.dm index 277c0d2a017..63cad044428 100644 --- a/code/modules/mob/living/carbon/alien/say.dm +++ b/code/modules/mob/living/carbon/alien/say.dm @@ -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 diff --git a/code/setup.dm b/code/setup.dm index f44b75b5212..3b276602e75 100644 --- a/code/setup.dm +++ b/code/setup.dm @@ -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)))) diff --git a/icons/mob/alien.dmi b/icons/mob/alien.dmi index 83d07fdcdc8..d3de781e6c7 100644 Binary files a/icons/mob/alien.dmi and b/icons/mob/alien.dmi differ diff --git a/tgstation.dme b/tgstation.dme index 4a8b69e321b..ff30fd90e25 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -788,6 +788,7 @@ #include "code\modules\mob\living\say.dm" #include "code\modules\mob\living\blob\blob.dm" #include "code\modules\mob\living\carbon\carbon.dm" +#include "code\modules\mob\living\carbon\alien\alien.dm" #include "code\modules\mob\living\carbon\alien\say.dm" #include "code\modules\mob\living\carbon\alien\humanoid\alien_powers.dm" #include "code\modules\mob\living\carbon\alien\humanoid\death.dm"