diff --git a/code/controllers/emergency_shuttle_controller.dm b/code/controllers/emergency_shuttle_controller.dm index 7e0d1e2d25c..aa13f07510a 100644 --- a/code/controllers/emergency_shuttle_controller.dm +++ b/code/controllers/emergency_shuttle_controller.dm @@ -24,7 +24,7 @@ var/global/datum/emergency_shuttle_controller/emergency_shuttle /datum/emergency_shuttle_controller/proc/process() if (wait_for_launch) - if (auto_recall && world.time >= auto_recall_time) + if (evac && auto_recall && world.time >= auto_recall_time) recall() if (world.time >= launch_time) //time to launch the shuttle stop_launch_countdown() diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 65349875535..8b721d9277d 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -436,6 +436,8 @@ var/global/list/additional_antag_types = list() for(var/mob/player in player_list) if(!player.client) continue + if(istype(player, /mob/new_player)) + continue if(!role || (player.client.prefs.be_special & role)) log_debug("[player.key] had [antag_id] enabled, so we are drafting them.") candidates |= player.mind diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm index 6f3041dd6d4..ac5ae8d8c79 100644 --- a/code/game/machinery/rechargestation.dm +++ b/code/game/machinery/rechargestation.dm @@ -197,8 +197,7 @@ build_overlays() /obj/machinery/recharge_station/Bumped(var/mob/living/silicon/robot/R) - if(istype(R)) - go_in(R) + go_in(R) /obj/machinery/recharge_station/proc/go_in(var/mob/living/silicon/robot/R) if(!istype(R)) @@ -206,10 +205,17 @@ if(occupant) return + if(R.incapacitated()) + return + if(!R.cell) + return + + add_fingerprint(R) R.reset_view(src) R.forceMove(src) occupant = R update_icon() + return 1 /obj/machinery/recharge_station/proc/go_out() if(!occupant) @@ -225,8 +231,7 @@ set name = "Eject Recharger" set src in oview(1) - // TODO : Change to incapacitated() on merge. - if(usr.stat || usr.lying || usr.resting || usr.buckled) + if(usr.incapacitated()) return go_out() @@ -238,9 +243,4 @@ set name = "Enter Recharger" set src in oview(1) - // TODO : Change to incapacitated() on merge. - if(usr.stat || usr.lying || usr.resting || usr.buckled) - return - go_in(usr) - add_fingerprint(usr) diff --git a/code/game/objects/items/devices/uplink_items.dm b/code/game/objects/items/devices/uplink_items.dm index 4046b6a261a..c5d317bc519 100644 --- a/code/game/objects/items/devices/uplink_items.dm +++ b/code/game/objects/items/devices/uplink_items.dm @@ -83,6 +83,7 @@ var/datum/uplink/uplink = new() /datum/uplink_item/proc/purchase_log(obj/item/device/uplink/U) feedback_add_details("traitor_uplink_items_bought", "[src]") + log_and_message_admins("used \the [U.loc] to buy \a [src]") U.purchase_log[src] = U.purchase_log[src] + 1 datum/uplink_item/dd_SortValue() @@ -481,6 +482,7 @@ datum/uplink_item/dd_SortValue() /datum/uplink_item/item/badassery/random_many/purchase_log(obj/item/device/uplink/U) feedback_add_details("traitor_uplink_items_bought", "[src]") + log_and_message_admins("used \the [U.loc] to buy \a [src]") /**************** * Surplus Crate * diff --git a/code/game/objects/items/weapons/implants/implanter.dm b/code/game/objects/items/weapons/implants/implanter.dm index 783177d5e6f..4f168556d28 100644 --- a/code/game/objects/items/weapons/implants/implanter.dm +++ b/code/game/objects/items/weapons/implants/implanter.dm @@ -8,17 +8,24 @@ w_class = 2.0 var/obj/item/weapon/implant/imp = null +/obj/item/weapon/implanter/attack_self(var/mob/user) + if(!imp) + return ..() + imp.loc = get_turf(src) + user.put_in_hands(imp) + user << "You remove \the [imp] from \the [src]." + name = "implanter" + imp = null + update() + return + /obj/item/weapon/implanter/proc/update() - - -/obj/item/weapon/implanter/update() if (src.imp) src.icon_state = "implanter1" else src.icon_state = "implanter0" return - /obj/item/weapon/implanter/attack(mob/M as mob, mob/user as mob) if (!istype(M, /mob/living/carbon)) return @@ -52,8 +59,6 @@ return - - /obj/item/weapon/implanter/loyalty name = "implanter-loyalty" diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index 55349977310..a66c619b08d 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -778,7 +778,7 @@ Traitors and the like can also be revived with the previous role mostly intact. if(confirm != "Yes") return var/choice - if(ticker.mode.name == "revolution" || ticker.mode.name == "confliction") + if(ticker.mode.auto_recall_shuttle) choice = input("The shuttle will just return if you call it. Call anyway?") in list("Confirm", "Cancel") if(choice == "Confirm") emergency_shuttle.auto_recall = 1 //enable auto-recall diff --git a/code/modules/nano/modules/human_appearance.dm b/code/modules/nano/modules/human_appearance.dm index 4486a0fb82f..df377a20547 100644 --- a/code/modules/nano/modules/human_appearance.dm +++ b/code/modules/nano/modules/human_appearance.dm @@ -91,6 +91,10 @@ return 0 /datum/nano_module/appearance_changer/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1, var/datum/topic_state/state = default_state) + + if(!owner || !owner.species) + return + generate_data(check_whitelist, whitelist, blacklist) var/data[0]