diff --git a/code/controllers/subsystem/dynamic/dynamic_rulesets_roundstart.dm b/code/controllers/subsystem/dynamic/dynamic_rulesets_roundstart.dm index 290b7116162..b74483a2cb6 100644 --- a/code/controllers/subsystem/dynamic/dynamic_rulesets_roundstart.dm +++ b/code/controllers/subsystem/dynamic/dynamic_rulesets_roundstart.dm @@ -416,6 +416,8 @@ GLOBAL_VAR_INIT(revolutionary_win, FALSE) ruleset_lazy_templates = list(LAZY_TEMPLATE_KEY_NUKIEBASE) var/required_role = ROLE_NUCLEAR_OPERATIVE var/datum/team/nuclear/nuke_team + ///The job type to dress up our nuclear operative as. + var/datum/job/job_type = /datum/job/nuclear_operative /datum/dynamic_ruleset/roundstart/nuclear/ready(population, forced = FALSE) required_candidates = get_antag_cap(population) @@ -430,8 +432,8 @@ GLOBAL_VAR_INIT(revolutionary_win, FALSE) break var/mob/M = pick_n_take(candidates) assigned += M.mind - M.mind.set_assigned_role(SSjob.GetJobType(/datum/job/nuclear_operative)) - M.mind.special_role = ROLE_NUCLEAR_OPERATIVE + M.mind.set_assigned_role(SSjob.GetJobType(job_type)) + M.mind.special_role = required_role return TRUE /datum/dynamic_ruleset/roundstart/nuclear/execute() @@ -624,6 +626,7 @@ GLOBAL_VAR_INIT(revolutionary_win, FALSE) antag_leader_datum = /datum/antagonist/nukeop/leader/clownop requirements = list(101,101,101,101,101,101,101,101,101,101) required_role = ROLE_CLOWN_OPERATIVE + job_type = /datum/job/clown_operative /datum/dynamic_ruleset/roundstart/nuclear/clown_ops/pre_execute() . = ..() @@ -635,10 +638,6 @@ GLOBAL_VAR_INIT(revolutionary_win, FALSE) new /obj/machinery/nuclearbomb/syndicate/bananium(nuke.loc) qdel(nuke) - for(var/datum/mind/clowns in assigned) - clowns.set_assigned_role(SSjob.GetJobType(/datum/job/clown_operative)) - clowns.special_role = ROLE_CLOWN_OPERATIVE - ////////////////////////////////////////////// // // // METEOR // diff --git a/code/datums/ai/monkey/monkey_controller.dm b/code/datums/ai/monkey/monkey_controller.dm index 8be754f8d4b..ecfedb86daf 100644 --- a/code/datums/ai/monkey/monkey_controller.dm +++ b/code/datums/ai/monkey/monkey_controller.dm @@ -5,6 +5,7 @@ have ways of interacting with a specific mob and control it. ///OOK OOK OOK /datum/ai_controller/monkey + ai_movement = /datum/ai_movement/basic_avoidance movement_delay = 0.4 SECONDS planning_subtrees = list( /datum/ai_planning_subtree/generic_resist, diff --git a/code/modules/antagonists/nukeop/nukeop.dm b/code/modules/antagonists/nukeop/nukeop.dm index f2a43718067..3ed178e2413 100644 --- a/code/modules/antagonists/nukeop/nukeop.dm +++ b/code/modules/antagonists/nukeop/nukeop.dm @@ -92,20 +92,21 @@ add_team_hud(mob_override || owner.current, /datum/antagonist/nukeop) /datum/antagonist/nukeop/proc/assign_nuke() - if(nuke_team && !nuke_team.tracked_nuke) - nuke_team.memorized_code = random_nukecode() - var/obj/machinery/nuclearbomb/syndicate/nuke = locate() in SSmachines.get_machines_by_type(/obj/machinery/nuclearbomb/syndicate) - if(nuke) - nuke_team.tracked_nuke = nuke - if(nuke.r_code == NUKE_CODE_UNSET) - nuke.r_code = nuke_team.memorized_code - else //Already set by admins/something else? - nuke_team.memorized_code = nuke.r_code - for(var/obj/machinery/nuclearbomb/beer/beernuke as anything in SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/nuclearbomb/beer)) - beernuke.r_code = nuke_team.memorized_code - else - stack_trace("Syndicate nuke not found during nuke team creation.") - nuke_team.memorized_code = null + if(!nuke_team || nuke_team.tracked_nuke) + return + nuke_team.memorized_code = random_nukecode() + var/obj/machinery/nuclearbomb/syndicate/nuke = locate() in SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/nuclearbomb/syndicate) + if(!nuke) + stack_trace("Syndicate nuke not found during nuke team creation.") + nuke_team.memorized_code = null + return + nuke_team.tracked_nuke = nuke + if(nuke.r_code == NUKE_CODE_UNSET) + nuke.r_code = nuke_team.memorized_code + else //Already set by admins/something else? + nuke_team.memorized_code = nuke.r_code + for(var/obj/machinery/nuclearbomb/beer/beernuke as anything in SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/nuclearbomb/beer)) + beernuke.r_code = nuke_team.memorized_code /datum/antagonist/nukeop/proc/give_alias() if(nuke_team?.syndicate_name) diff --git a/html/changelogs/archive/2024-01.yml b/html/changelogs/archive/2024-01.yml index e8f899330b3..db359dd3cc0 100644 --- a/html/changelogs/archive/2024-01.yml +++ b/html/changelogs/archive/2024-01.yml @@ -628,6 +628,17 @@ circuit in while it's unanchored. - bugfix: Immobile shells properly propagate their on/off state after wrenching to inner modules. + - image: Resprited several fishes, and the aquarium. + - bugfix: Bystanders will no longer think they've pulled out a victim's eyes after + seeing someone else do it. + - qol: They will also be able to tell when someone starts pulling out a victim's + eyes. + - refactor: Refactored Ore Silo Ui. + - bugfix: Autolathes no longer allow you to duplicate materials at higher levels + of stock parts + - qol: Autolathes now show name instead of typepath when selecting a custom material + - qol: Autolathe now print out items one by one instead of waiting for all of them + to print at once - bugfix: Signers no longer use the wrong verb when speaking directly into a radio for the first message after toggling sign language. - refactor: Moved the updating of verb variables into a new method which is called