diff --git a/code/game/machinery/camera.dm b/code/game/machinery/camera.dm index e6f458cbeee..10d4862a515 100644 --- a/code/game/machinery/camera.dm +++ b/code/game/machinery/camera.dm @@ -44,28 +44,25 @@ var/list/names = list() var/list/namecounts = list() var/list/creatures = list() - for (var/mob/M in world) - if (istype(M, /mob/new_player)) - continue //cameras can't follow people who haven't started yet DUH OR DIDN'T YOU KNOW THAT + for(var/mob/living/M in world) //Cameras can't track people wearing an agent card or a ninja hood. - if (istype(M, /mob/living/carbon/human)) + if(istype(M, /mob/living/carbon/human)) if(istype(M:wear_id, /obj/item/weapon/card/id/syndicate)) continue if(istype(M:head, /obj/item/clothing/head/helmet/space/space_ninja)&&!M:head:canremove) continue if(!istype(M.loc, /turf)) //in a closet or something, AI can't see him anyways continue - var/area/wizard_station/A = locate()//So that wizards are not tracked by the AI until they leave their sanctuary. Unless they talk on radio/N - if(M in A.contents) + if(istype(M.loc.loc, /area/wizard_station)) continue if(M.invisibility)//cloaked continue - if(istype(M.loc,/obj/effect/dummy)) - continue - else if (M == usr) + if(M == usr) continue if(M.digitalcamo) continue + if(M.loc.z == 2) // Don't detect mobs on Centcom + continue var/name = M.name if (name in names) @@ -76,20 +73,18 @@ namecounts[name] = 1 creatures[name] = M - - creatures = sortList(creatures) - - var/target_name = input(usr, "Which creature should you track?") as null|anything in creatures + //I blame : usage! + var/target_name = input(usr, "Which creature should you track?") as null|anything in sortList(creatures) if (!target_name) usr:cameraFollow = null return var/mob/target = creatures[target_name] - ai_actual_track(target) -/mob/living/silicon/ai/proc/ai_actual_track(mob/target as mob) +/mob/living/silicon/ai/proc/ai_actual_track(mob/living/target as mob) + if(!istype(target)) return usr:cameraFollow = target usr << text("Now tracking [] on camera.", target.name) diff --git a/code/game/magic/cultist/runes.dm b/code/game/magic/cultist/runes.dm index a817ecfba39..717117e038c 100644 --- a/code/game/magic/cultist/runes.dm +++ b/code/game/magic/cultist/runes.dm @@ -282,6 +282,7 @@ var/list/sacrificed = list() corpse_to_raise.buckled = null if (corpse_to_raise.handcuffed) del(corpse_to_raise.handcuffed) + corpse_to_raise.update_inv_handcuffed(0) corpse_to_raise.stat=0 corpse_to_raise.updatehealth() corpse_to_raise.UpdateDamageIcon() @@ -1002,15 +1003,9 @@ var/list/sacrificed = list() user.equip_if_possible(new /obj/item/clothing/suit/cultrobes/alt(user), user.slot_wear_suit) user.equip_if_possible(new /obj/item/clothing/shoes/cult(user), user.slot_shoes) user.equip_if_possible(new /obj/item/weapon/storage/backpack/cultpack(user), user.slot_back) - if(!user.equip_if_possible(new /obj/item/weapon/melee/cultblade(user), user.slot_r_hand)) - user.equip_if_possible(new /obj/item/weapon/melee/cultblade(user), user.slot_l_hand) - - user.update_inv_head(0) - user.update_inv_wear_suit(0) - user.update_inv_shoes(0) - user.update_inv_back(0) - user.update_inv_l_hand(0) - user.update_inv_r_hand() + //the above update their overlay icons cache but do not call update_icons() + //the below calls update_icons() at the end, which will update overlay icons by using the (now updated) cache + user.put_in_hands(new /obj/item/weapon/melee/cultblade(user)) //put in hands or on floor del(src) return diff --git a/code/modules/admin/NewBan.dm b/code/modules/admin/NewBan.dm index 273529eaa37..966fdd7667b 100644 --- a/code/modules/admin/NewBan.dm +++ b/code/modules/admin/NewBan.dm @@ -170,7 +170,19 @@ var/savefile/Banlist for (var/A in Banlist.dir) count++ Banlist.cd = "/base/[A]" - dat += text("