diff --git a/code/game/objects/effects/aliens.dm b/code/game/objects/effects/aliens.dm index a47ef811ac1..8d33898f600 100644 --- a/code/game/objects/effects/aliens.dm +++ b/code/game/objects/effects/aliens.dm @@ -426,6 +426,8 @@ Alien plants should do something if theres a lot of poison healthcheck() /obj/effect/alien/egg/HasProximity(atom/movable/AM as mob|obj) + if(!CanHug(AM)) + return if(status == GROWN && iscarbon(AM) && !isalien(AM)) var/mob/living/carbon/C = AM @@ -439,6 +441,8 @@ Alien plants should do something if theres a lot of poison Burst(0) var/obj/item/clothing/mask/facehugger/child = GetFacehugger() child.loc = pos + if(!CanHug(AM)) + return if(AM && in_range(AM, pos)) child.Attach(AM) diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 239b1c9bf23..ca91d5e1167 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -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) diff --git a/code/modules/mob/living/carbon/alien/alien.dm b/code/modules/mob/living/carbon/alien/alien.dm index 34d7bc12a35..58e3527d74f 100644 --- a/code/modules/mob/living/carbon/alien/alien.dm +++ b/code/modules/mob/living/carbon/alien/alien.dm @@ -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) diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm index 7fc966be630..96aba8fbc2b 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm @@ -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) diff --git a/code/modules/mob/living/carbon/alien/larva/larva.dm b/code/modules/mob/living/carbon/alien/larva/larva.dm index de9b1ab4c89..30923ab288e 100644 --- a/code/modules/mob/living/carbon/alien/larva/larva.dm +++ b/code/modules/mob/living/carbon/alien/larva/larva.dm @@ -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) diff --git a/code/modules/mob/living/carbon/alien/special/facehugger.dm b/code/modules/mob/living/carbon/alien/special/facehugger.dm index 830784170cd..ca7a50414c0 100644 --- a/code/modules/mob/living/carbon/alien/special/facehugger.dm +++ b/code/modules/mob/living/carbon/alien/special/facehugger.dm @@ -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 \ No newline at end of file diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm index 259fee1af1d..f2450ebfd3a 100644 --- a/code/modules/reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents.dm @@ -2709,9 +2709,8 @@ datum return reaction_turf(var/turf/simulated/T, var/volume) - if(volume >= 3) - if(!istype(T)) return - T.Bless() + if(!istype(T)) return + T.Bless() tequilla name = "Tequila" diff --git a/html/changelog.html b/html/changelog.html index 68ae98d9f54..416a2cbd05c 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -48,6 +48,14 @@ Stuff which is in development and not yet visible to players or just code relate should be listed in the changelog upon commit tho. Thanks. --> +
+

10 October 2012

+

Giacom updated:

+ +
+

8 October 2012

Giacom updated: