From 6a2947d51186de011e3ed71a3033105cd4b5a3a0 Mon Sep 17 00:00:00 2001 From: "giacomand@gmail.com" Date: Mon, 29 Oct 2012 01:01:56 +0000 Subject: [PATCH] -Alien embryos will revert to stage 2 if it finds no candidates and the host has no client, meaning no more brain dead larva. -Alien embryos take longer to burst. -Alien embryos have more of a chance of curing, also added another fun cure. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4978 316c924e-a436-60f5-8080-3fe189b3f50e --- code/datums/diseases/alien_embryo.dm | 26 +++++++++++++++++++------- maps/tgstation.2.0.9.dmm | 2 +- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/code/datums/diseases/alien_embryo.dm b/code/datums/diseases/alien_embryo.dm index 16fa9754ffa..a6c2c50fd2e 100644 --- a/code/datums/diseases/alien_embryo.dm +++ b/code/datums/diseases/alien_embryo.dm @@ -33,11 +33,12 @@ spread = "None" spread_type = SPECIAL cure = "Unknown" - cure_id = list("lexorin","toxin","gargleblaster") - cure_chance = 20 + cure_id = list("lexorin","toxin","gargleblaster", "cyanide") + cure_chance = 50 affected_species = list("Human", "Monkey") permeability_mod = 15//likely to infect can_carry = 0 + stage_prob = 3 var/gibbed = 0 /datum/disease/alien_embryo/stage_act() @@ -73,12 +74,23 @@ if(prob(50)) if(gibbed != 0) return 0 var/list/candidates = get_alien_candidates() - var/mob/living/carbon/alien/larva/new_xeno = new(affected_mob.loc) - if(candidates.len) - new_xeno.key = pick(candidates) - else - new_xeno.key = affected_mob.key + var/picked = null + // To stop clientless larva, we will check that our host has a client + // if we find no ghosts to become the alien. If the host has a client + // he will become the alien but if he doesn't then we will set the stage + // to 2, so we don't do a process heavy check everytime. + + if(candidates.len) + picked = pick(candidates) + else if(affected_mob.client) + picked = affected_mob.key + else + stage = 2 // Let's try again later. + return + + var/mob/living/carbon/alien/larva/new_xeno = new(affected_mob.loc) + new_xeno.key = picked new_xeno << sound('sound/voice/hiss5.ogg',0,0,0,100) //To get the player's attention affected_mob.gib() src.cure(0) diff --git a/maps/tgstation.2.0.9.dmm b/maps/tgstation.2.0.9.dmm index b41cdafb2b0..a6c3a8978f2 100644 --- a/maps/tgstation.2.0.9.dmm +++ b/maps/tgstation.2.0.9.dmm @@ -4624,7 +4624,7 @@ "bKV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "bKW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "warnwhitecorner"; tag = "icon-warnwhitecorner (EAST)"},/area/toxins/xenobiology) "bKX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/binary/pump{dir = 1},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/toxins/xenobiology) -"bKY" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/space,/area/toxins/xenobiology) +"bKY" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/toxins/xenobiology) "bKZ" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/mob/living/carbon/monkey,/turf/simulated/floor,/area/toxins/xenobiology) "bLa" = (/turf/simulated/floor,/area/toxins/xenobiology) "bLb" = (/obj/item/weapon/wrench,/turf/simulated/floor/plating,/area/maintenance/asmaint2)