/datum/game_test/room_test/anti_drop_implant/Run() var/datum/test_puppeteer/player = new(src) var/obj/item/organ/internal/cyberimp/brain/anti_drop/anti_drop = new/obj/item/organ/internal/cyberimp/brain/anti_drop var/obj/item/autosurgeon/organ/syndicate/autosurg = player.spawn_obj_in_hand(/obj/item/autosurgeon/organ/syndicate) autosurg.insert_organ(anti_drop) TEST_ASSERT(autosurg.storedorgan == anti_drop, "failed to insert antidrop in autosurgeon") player.use_item_in_hand() TEST_ASSERT(anti_drop in player.puppet.internal_organs, "failed to insert anti_drop in player") qdel(autosurg) var/obj/item/screwdriver = player.spawn_obj_in_hand(/obj/item/screwdriver) anti_drop.ui_action_click() TEST_ASSERT((screwdriver.flags & NODROP), "nodrop failed to apply") anti_drop.ui_action_click() TEST_ASSERT(!(screwdriver.flags & NODROP), "nodrop failed to get removed") anti_drop.ui_action_click() anti_drop.emp_act() TEST_ASSERT(!(screwdriver in get_both_hands(player.puppet)), "player failed to throw items") TEST_ASSERT(!(screwdriver.flags & NODROP), "emp throw failed to remove NODROP") player.rejuvenate() var/obj/item/belt = player.spawn_obj_in_hand(/obj/item/storage/belt) anti_drop.ui_action_click() player.puppet.equip_to_appropriate_slot(belt) player.puppet.drop_item_to_ground(belt) TEST_ASSERT(player.puppet.get_item_by_slot(ITEM_SLOT_BELT), "belt removed with NODROP") anti_drop.ui_action_click() player.puppet.drop_item_to_ground(belt) TEST_ASSERT(!player.puppet.get_item_by_slot(ITEM_SLOT_BELT), "failed to remove belt after disabling NODROP") var/obj/item/chainsaw/syndie/saw = player.spawn_obj_in_hand(/obj/item/chainsaw/syndie) player.use_item_in_hand() anti_drop.ui_action_click() anti_drop.ui_action_click() TEST_ASSERT(saw.flags & NODROP, "anti_drop removed unique item NODROP") player.use_item_in_hand() anti_drop.ui_action_click() player.puppet.put_in_r_hand(saw) TEST_ASSERT(player.puppet.r_hand = saw, "player failed to put saw in right hand") var/obj/item/organ/external/right_hand = player.puppet.get_organ(BODY_ZONE_R_ARM) right_hand.droplimb() TEST_ASSERT(!(saw.flags & NODROP), "limb dismemberment failed to remove NODROP") player.puppet.put_in_hands(saw) anti_drop.ui_action_click() TEST_ASSERT(!(saw.flags & NODROP), "picking item up with antidrop active applied NODROP")