diff --git a/code/controllers/master.dm b/code/controllers/master.dm index 7db377082bd..f5f59fe940c 100644 --- a/code/controllers/master.dm +++ b/code/controllers/master.dm @@ -220,12 +220,17 @@ var/global/datum/controller/master/Master = new CRASH("Attempted to set invalid runlevel: [new_runlevel]") // Starts the mc, and sticks around to restart it if the loop ever ends. +var/global/_announced_start = FALSE /datum/controller/master/proc/StartProcessing(delay) set waitfor = 0 if(delay) sleep(delay) report_progress("Master starting processing") - SSwebhooks.send(WEBHOOK_ROUNDPREP, list("map" = station_name(), "url" = get_world_url())) + + if(!global._announced_start) // Only announce roundstart once. + SSwebhooks.send(WEBHOOK_ROUNDPREP, list("map" = station_name(), "url" = get_world_url())) + global._announced_start = TRUE + var/rtn = Loop() if (rtn > 0 || processing < 0) return //this was suppose to happen. diff --git a/code/modules/crafting/handmade_items.dm b/code/modules/crafting/handmade_items.dm index 0435e4adc63..93ae530b113 100644 --- a/code/modules/crafting/handmade_items.dm +++ b/code/modules/crafting/handmade_items.dm @@ -12,6 +12,9 @@ if((. = ..())) update_icon() +/obj/item/chems/glass/handmade/get_mould_difficulty() + return SKILL_NONE + /obj/item/chems/glass/handmade/teapot name = "teapot" desc = "A handmade, slightly lumpy teapot." diff --git a/code/modules/detectivework/evidence/_evidence_type.dm b/code/modules/detectivework/evidence/_evidence_type.dm index 631f8e4c148..3606e7c553f 100644 --- a/code/modules/detectivework/evidence/_evidence_type.dm +++ b/code/modules/detectivework/evidence/_evidence_type.dm @@ -4,17 +4,18 @@ var/max_entries = 10 //will hold that many entries, removing oldest when overflown var/list/data var/remove_on_transfer //if it should be removed when picked up by forensic samplers - var/spot_skill = SKILL_EXPERT // at what Forensics skill level someone can see it on examine. Set to null, can never see it + var/spot_skill = SKILL_EXPERT // at what Forensics skill level someone can see it on examine. Set to null, can never see it //subtypes can implement any merging if needed before calling parent /datum/forensics/proc/add_data(newdata) if(!newdata) return - if(unique && (newdata in data)) - return - LAZYADD(data, newdata) + if(unique) + LAZYDISTINCTADD(data, newdata) + else + LAZYADD(data, newdata) if(length(data) > max_entries) - data.Cut(1,2) + data.len = max_entries /datum/forensics/proc/add_from_atom(atom/A) @@ -28,7 +29,7 @@ for(var/D in data) . += "
  • [D]" return jointext(., "
    ") - + /datum/forensics/proc/can_spot(mob/detective, atom/location) . = FALSE if(spot_skill && detective.skill_check(SKILL_FORENSICS,spot_skill)) diff --git a/code/modules/detectivework/evidence/fingerprints.dm b/code/modules/detectivework/evidence/fingerprints.dm index 290bccd19c4..0fad8bbb784 100644 --- a/code/modules/detectivework/evidence/fingerprints.dm +++ b/code/modules/detectivework/evidence/fingerprints.dm @@ -17,6 +17,7 @@ continue for(var/datum/fingerprint/F in data) if(F.merge(newprint)) + newdata -= newprint continue ..()