From 249cabd90c6cdd6dca5628f92f0746522b379487 Mon Sep 17 00:00:00 2001
From: EgorDinamit <egorayn2003@gmail.com>
Date: Wed, 6 Mar 2024 18:40:03 +0300
Subject: [PATCH] Minor fixes

---
 .../simple_animal/hostile/infestation/larva.dm      | 13 ++++++++++++-
 .../hostile/random_monster/_random_monster.dm       |  1 +
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/code/modules/mob/living/simple_animal/hostile/infestation/larva.dm b/code/modules/mob/living/simple_animal/hostile/infestation/larva.dm
index e8af248884e..620bdf7e22f 100644
--- a/code/modules/mob/living/simple_animal/hostile/infestation/larva.dm
+++ b/code/modules/mob/living/simple_animal/hostile/infestation/larva.dm
@@ -71,6 +71,7 @@
 	color = "#c87d44"
 	transformation_types = list(
 		/mob/living/simple_animal/hostile/infestation/broodling = 60 SECONDS,
+		/mob/living/simple_animal/hostile/infestation/floatfly = 75 SECONDS,
 		/mob/living/simple_animal/hostile/infestation/eviscerator = 90 SECONDS,
 		/mob/living/simple_animal/hostile/infestation/assembler = 120 SECONDS,
 		)
@@ -95,10 +96,17 @@
 	retaliate = TRUE
 	can_flee = FALSE
 
+/datum/ai_holder/simple_animal/infestation/larva/implanter/can_attack(atom/movable/the_target, vision_required = TRUE)
+	var/mob/living/simple_animal/hostile/infestation/larva/implant/implanter/L = holder
+	if(L.transformation_time != null)
+		return FALSE
+
+	return ..()
+
 /datum/ai_holder/simple_animal/infestation/larva/implanter/list_targets()
 	var/mob/living/simple_animal/hostile/infestation/larva/implant/implanter/L = holder
 	if(L.transformation_time != null) // Already implanted once
-		return
+		return list()
 
 	var/list/humans = list()
 	for(var/mob/living/carbon/human/H in view(vision_range, holder))
@@ -115,6 +123,9 @@
 		return
 	if(on_fire)
 		return
+	if(transformation_time != null)
+		return
+
 	var/mob/living/carbon/human/H = A
 	var/list/valid_organs = list()
 	for(var/obj/item/organ/external/O in H.organs)
diff --git a/code/modules/mob/living/simple_animal/hostile/random_monster/_random_monster.dm b/code/modules/mob/living/simple_animal/hostile/random_monster/_random_monster.dm
index d23756e31ea..352a8477ad1 100644
--- a/code/modules/mob/living/simple_animal/hostile/random_monster/_random_monster.dm
+++ b/code/modules/mob/living/simple_animal/hostile/random_monster/_random_monster.dm
@@ -108,6 +108,7 @@
 /mob/living/simple_animal/hostile/random_monster/Destroy()
 	for(var/datum/D in abilities)
 		qdel(D)
+	abilities = null
 	return ..()