diff --git a/code/game/machinery/announcement_system.dm b/code/game/machinery/announcement_system.dm index 738d69b14cf..8566d6c45a1 100644 --- a/code/game/machinery/announcement_system.dm +++ b/code/game/machinery/announcement_system.dm @@ -65,6 +65,7 @@ var/list/announcement_systems = list() /obj/machinery/announcement_system/Destroy() announcement_systems -= src //"OH GOD WHY ARE THERE 100,000 LISTED ANNOUNCEMENT SYSTEMS?!!" + ..() /obj/machinery/announcement_system/power_change() ..() diff --git a/code/modules/mob/living/simple_animal/bot_swarm/swarmer.dm b/code/modules/mob/living/simple_animal/bot_swarm/swarmer.dm index bbed56a6962..24af1978011 100644 --- a/code/modules/mob/living/simple_animal/bot_swarm/swarmer.dm +++ b/code/modules/mob/living/simple_animal/bot_swarm/swarmer.dm @@ -5,9 +5,22 @@ icon = 'icons/mob/swarmer.dmi' icon_state = "swarmer_unactivated" +/obj/item/unactivated_swarmer/New() + notify_ghosts("An unactivated swarmer has been created in [get_area(src)]! (Click to enter)") + ..() + +/obj/item/unactivated_swarmer/Topic(href, href_list) + if(href_list["ghostjoin"]) + var/mob/dead/observer/ghost = usr + if(istype(ghost)) + attack_ghost(ghost) + /obj/item/unactivated_swarmer/attack_ghost(mob/user) var/be_swarmer = alert("Become a swarmer? (Warning, You can no longer be cloned!)",,"Yes","No") - if(be_swarmer == "No" || qdeleted()) + if(be_swarmer == "No") + return + if(qdeleted(src)) + user << "Swarmer has been occupied by someone else." return var/mob/living/simple_animal/hostile/swarmer/S = new /mob/living/simple_animal/hostile/swarmer(get_turf(loc)) S.key = user.key @@ -156,6 +169,9 @@ /obj/machinery/nuclearbomb/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) S << "This device's destruction would result in the extermination of everything in the area. Aborting." +/obj/machinery/dominator/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + S << "This device is attempting to corrupt our entire network; attempting to interact with it is too risky. Aborting." + /obj/structure/reagent_dispensers/fueltank/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) S << "Destroying this object would cause a chain reaction. Aborting." @@ -410,7 +426,7 @@ if(message) for(var/mob/M in mob_list) if(isswarmer(M) || (M in dead_mob_list)) - M << "Swarm communication - [M] states: [message]" + M << "Swarm communication - [src] states: [message]"