Fixes multiple embryos in single host

Added checks so you can’t have multiple embryos in a single host.
Checks are included in both facehugger.dm and alien_embryo.dm, because
there might be ways to implant embryos without facehuggers in the
future, but we also want to avoid creating and instantly deleting
objects.
Also changes chest augmentation surgery to remove any embryos. Before
you could remove the whole chest without finding the embryo inside.
This commit is contained in:
Perakp
2013-12-01 08:52:34 +02:00
parent 42a0530292
commit 4e05048524
4 changed files with 18 additions and 8 deletions
@@ -14,8 +14,10 @@ var/const/ALIEN_AFK_BRACKET = 450 // 45 seconds
if(istype(loc, /mob/living))
affected_mob = loc
if(affected_mob.getlimb(/obj/item/organ/limb/robot/chest)) //If our Victim is augmented in the chest, No Babby - RR
if(affected_mob.getlimb(/obj/item/organ/limb/robot/chest) | affected_mob.status_flags & XENO_HOST) //If our Victim is augmented in the chest, No Babby - RR
Del(src)
return
affected_mob.status_flags |= XENO_HOST
processing_objects.Add(src)
spawn(0)
AddInfectionImages(affected_mob)
@@ -161,14 +161,15 @@ var/const/MAX_ACTIVE_TIME = 400
if(!sterile)
//target.contract_disease(new /datum/disease/alien_embryo(0)) //so infection chance is same as virus infection chance
new /obj/item/alien_embryo(target)
target.status_flags |= XENO_HOST
target.visible_message("\red \b [src] falls limp after violating [target]'s face!")
Die()
icon_state = "[initial(icon_state)]_impregnated"
if(!target.getlimb(/obj/item/organ/limb/robot/chest) && !(target.status_flags & XENO_HOST))
new /obj/item/alien_embryo(target)
if(iscorgi(target))
var/mob/living/simple_animal/corgi/C = target
src.loc = get_turf(C)