diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 65e78b34dbc..f7cf43e325e 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -1401,6 +1401,10 @@ ticker.mode.abductors |= src + var/datum/objective/experiment/O = new + O.owner = src + objectives += O + var/mob/living/carbon/human/H = current hardset_dna(H,null,null,null,null,/datum/species/abductor,null) diff --git a/code/game/gamemodes/abduction/abduction.dm b/code/game/gamemodes/abduction/abduction.dm index 9623e545f3d..724603f3411 100644 --- a/code/game/gamemodes/abduction/abduction.dm +++ b/code/game/gamemodes/abduction/abduction.dm @@ -342,6 +342,19 @@ datum/objective/experiment/New() explanation_text = "Experiment on [target_amount] humans" datum/objective/experiment/check_completion() + if(!owner.current || !ishuman(owner.current)) + return 0 + var/mob/living/carbon/human/H = owner.current + if(!H.dna || !H.dna.species || !(H.dna.species.id == "abductor")) + return 0 + var/datum/species/abductor/S = H.dna.species + var/ab_team = S.team + for(var/obj/machinery/abductor/experiment/E in machines) + if(E.team == ab_team) + if(E.points >= target_amount) + return 1 + else + return 0 return 0 datum/objective/abductee diff --git a/code/game/gamemodes/abduction/machinery/console.dm b/code/game/gamemodes/abduction/machinery/console.dm index a2bc9030c90..89f37c05ccf 100644 --- a/code/game/gamemodes/abduction/machinery/console.dm +++ b/code/game/gamemodes/abduction/machinery/console.dm @@ -109,7 +109,7 @@ else if(href_list["dispense"]) switch(href_list["dispense"]) if("baton") - Dispense(/obj/item/weapon/abductor_baton) + Dispense(/obj/item/weapon/abductor_baton,cost=2) if("helmet") Dispense(/obj/item/clothing/head/helmet/abductor) if("silencer") @@ -198,9 +198,9 @@ else ..() -/obj/machinery/abductor/console/proc/Dispense(var/item) - if(experiment && experiment.points > 0) - experiment.points-- +/obj/machinery/abductor/console/proc/Dispense(var/item,var/cost=1) + if(experiment && experiment.points >= cost) + experiment.points-=cost say("Incoming supply!") if(pad) flick("alien-pad", pad) diff --git a/icons/turf/floors.dmi b/icons/turf/floors.dmi index dc66c1ec6dd..1d42d7752c2 100644 Binary files a/icons/turf/floors.dmi and b/icons/turf/floors.dmi differ