Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 15 additions & 16 deletions code/modules/mob/living/carbon/xenomorph/castes/Carrier.dm
Original file line number Diff line number Diff line change
Expand Up @@ -247,7 +247,6 @@
else
to_chat(src, SPAN_WARNING("We can't carry more facehuggers on you."))


/mob/living/carbon/xenomorph/carrier/proc/throw_hugger(atom/object)
if(!object)
return
Expand Down Expand Up @@ -318,18 +317,18 @@
SPAN_XENOWARNING("We throw a facehugger towards \the [object]!"))
addtimer(CALLBACK(src, PROC_REF(update_action_buttons)), caste.hugger_throw_delay) // no idea why hugger_throw_delay is a parent since its only really used by this file but whatever

/mob/living/carbon/xenomorph/carrier/proc/store_egg(obj/item/xeno_egg/E)
if(E.hivenumber != hivenumber)
/mob/living/carbon/xenomorph/carrier/proc/store_egg(obj/item/xeno_egg/target_egg)
if(target_egg.hivenumber != hivenumber)
to_chat(src, SPAN_WARNING("That egg is tainted!"))
return
if(eggs_cur < eggs_max)
if(stat == CONSCIOUS)
eggs_cur++
behavior_delegate?.on_update_icons()
to_chat(src, SPAN_NOTICE("We store the egg and carry it for safekeeping. Now sheltering: [eggs_cur] / [eggs_max]."))
qdel(E)
qdel(target_egg)
else
to_chat(src, SPAN_WARNING("This [E.name] looks too unhealthy."))
to_chat(src, SPAN_WARNING("This [target_egg.name] looks too unhealthy."))
else
to_chat(src, SPAN_WARNING("We can't carry more eggs on ourselves."))

Expand All @@ -342,35 +341,35 @@

//target a hugger on the ground to store it directly
if(istype(object, /obj/item/xeno_egg))
var/obj/item/xeno_egg/E = object
if(isturf(E.loc) && Adjacent(E))
var/turf/egg_turf = E.loc
store_egg(E)
var/obj/item/xeno_egg/target_egg = object
if(isturf(target_egg.loc) && Adjacent(target_egg))
var/turf/egg_turf = target_egg.loc
store_egg(target_egg)
//Grab all the eggs from the turf
if(eggs_cur < eggs_max)
for(E in egg_turf)
for(target_egg in egg_turf)
if(eggs_cur < eggs_max)
store_egg(E)
store_egg(target_egg)
return

if(istype(object, /obj/effect/alien/resin/special/eggmorph))
store_eggs_into_egg_morpher(object)
return

var/obj/item/xeno_egg/E = get_active_hand()
if(!E) //empty active hand
var/obj/item/xeno_egg/target_egg = get_active_hand()
if(!target_egg) //empty active hand
//if no hugger in active hand, we take one from our storage
if(eggs_cur <= 0)
to_chat(src, SPAN_WARNING("We don't have any eggs to use!"))
return
E = new(src, hivenumber)
target_egg = new(src, hivenumber)
eggs_cur--
behavior_delegate?.on_update_icons()
put_in_active_hand(E)
put_in_active_hand(target_egg)
to_chat(src, SPAN_XENONOTICE("We grab one of the eggs in our storage. Now sheltering: [eggs_cur] / [eggs_max]."))
return

if(!istype(E)) //something else in our hand
if(!istype(target_egg)) //something else in our hand
to_chat(src, SPAN_WARNING("We need an empty hand to grab one of our stored eggs!"))
return

Expand Down