From ed80751534242ff1c3dca400f93a94934646dfee Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Sun, 26 Apr 2026 06:25:29 -0400 Subject: [PATCH] Fix Antag Skills (#22337) Fixes antags not correctly wiping their skill components upon being promoted to antagonist. --- code/game/antagonist/antagonist_create.dm | 4 ++++ code/game/antagonist/outsider/actor.dm | 3 --- code/game/antagonist/outsider/burglar.dm | 3 --- code/game/antagonist/outsider/jockey.dm | 3 --- code/game/antagonist/outsider/loner.dm | 3 --- code/game/antagonist/outsider/mercenary.dm | 3 --- code/game/antagonist/outsider/ninja.dm | 3 --- code/game/antagonist/outsider/raider.dm | 3 --- code/game/antagonist/outsider/raider_techno.dm | 3 --- code/game/antagonist/outsider/technomancer.dm | 3 --- code/game/antagonist/station/traitor.dm | 3 --- html/changelogs/hellfirejag - fix antag skills.yml | 4 ++++ 12 files changed, 8 insertions(+), 30 deletions(-) create mode 100644 html/changelogs/hellfirejag - fix antag skills.yml diff --git a/code/game/antagonist/antagonist_create.dm b/code/game/antagonist/antagonist_create.dm index a219139220f..be9c74af5bf 100644 --- a/code/game/antagonist/antagonist_create.dm +++ b/code/game/antagonist/antagonist_create.dm @@ -19,6 +19,10 @@ announce_antagonist_spawn() LAZYDISTINCTADD(SSticker.mode.antag_templates, src) + // Antags wipe skill components so that they can bypass skill restrictions entirely. + for(var/skill in target.current.GetComponents(/datum/component/skill)) + qdel(skill) + /datum/antagonist/proc/create_default(var/mob/source) var/mob/living/M if(mob_path) diff --git a/code/game/antagonist/outsider/actor.dm b/code/game/antagonist/outsider/actor.dm index 93df4220a7c..490e3365168 100644 --- a/code/game/antagonist/outsider/actor.dm +++ b/code/game/antagonist/outsider/actor.dm @@ -43,9 +43,6 @@ GLOBAL_DATUM(actors, /datum/antagonist/actor) player.update_eyes() player.regenerate_icons() - // Offship antags wipe skill components so that they can bypass skill restrictions entirely. - for(var/datum/component/skill/skill in player._datum_components) - qdel(skill) return TRUE diff --git a/code/game/antagonist/outsider/burglar.dm b/code/game/antagonist/outsider/burglar.dm index c70eadf9eba..e67b6ed539d 100644 --- a/code/game/antagonist/outsider/burglar.dm +++ b/code/game/antagonist/outsider/burglar.dm @@ -52,9 +52,6 @@ GLOBAL_DATUM(burglars, /datum/antagonist/burglar) player.update_eyes() player.regenerate_icons() - // Offship antags wipe skill components so that they can bypass skill restrictions entirely. - for(var/datum/component/skill/skill in player._datum_components) - qdel(skill) return TRUE diff --git a/code/game/antagonist/outsider/jockey.dm b/code/game/antagonist/outsider/jockey.dm index 848eb21cca3..276c1df6356 100644 --- a/code/game/antagonist/outsider/jockey.dm +++ b/code/game/antagonist/outsider/jockey.dm @@ -51,9 +51,6 @@ GLOBAL_DATUM(jockeys, /datum/antagonist/jockey) player.update_eyes() player.regenerate_icons() - // Offship antags wipe skill components so that they can bypass skill restrictions entirely. - for(var/datum/component/skill/skill in player._datum_components) - qdel(skill) return TRUE diff --git a/code/game/antagonist/outsider/loner.dm b/code/game/antagonist/outsider/loner.dm index a49fa487137..8828de63755 100644 --- a/code/game/antagonist/outsider/loner.dm +++ b/code/game/antagonist/outsider/loner.dm @@ -54,8 +54,5 @@ GLOBAL_DATUM(loners, /datum/antagonist/loner) player.update_eyes() player.regenerate_icons() - // Offship antags wipe skill components so that they can bypass skill restrictions entirely. - for(var/datum/component/skill/skill in player._datum_components) - qdel(skill) return TRUE diff --git a/code/game/antagonist/outsider/mercenary.dm b/code/game/antagonist/outsider/mercenary.dm index b1cffc1b04b..d6ed4ba95e9 100644 --- a/code/game/antagonist/outsider/mercenary.dm +++ b/code/game/antagonist/outsider/mercenary.dm @@ -54,9 +54,6 @@ GLOBAL_DATUM(mercs, /datum/antagonist/mercenary) give_codewords(player) - // Offship antags wipe skill components so that they can bypass skill restrictions entirely. - for(var/datum/component/skill/skill in player._datum_components) - qdel(skill) return TRUE diff --git a/code/game/antagonist/outsider/ninja.dm b/code/game/antagonist/outsider/ninja.dm index b09fc740ee8..e4715fd8aa8 100644 --- a/code/game/antagonist/outsider/ninja.dm +++ b/code/game/antagonist/outsider/ninja.dm @@ -117,9 +117,6 @@ GLOBAL_DATUM(ninjas, /datum/antagonist/ninja) player.update_eyes() player.regenerate_icons() - // Offship antags wipe skill components so that they can bypass skill restrictions entirely. - for(var/datum/component/skill/skill in player._datum_components) - qdel(skill) return TRUE diff --git a/code/game/antagonist/outsider/raider.dm b/code/game/antagonist/outsider/raider.dm index f1aec952d09..a37cb48fed3 100644 --- a/code/game/antagonist/outsider/raider.dm +++ b/code/game/antagonist/outsider/raider.dm @@ -138,9 +138,6 @@ GLOBAL_DATUM(raiders, /datum/antagonist/raider) give_codewords(player) - // Offship antags wipe skill components so that they can bypass skill restrictions entirely. - for(var/datum/component/skill/skill in player._datum_components) - qdel(skill) return 1 diff --git a/code/game/antagonist/outsider/raider_techno.dm b/code/game/antagonist/outsider/raider_techno.dm index 77a190cc6b5..6f190e32462 100644 --- a/code/game/antagonist/outsider/raider_techno.dm +++ b/code/game/antagonist/outsider/raider_techno.dm @@ -60,9 +60,6 @@ GLOBAL_DATUM(raider_techno, /datum/antagonist/raider_techno) player.update_eyes() player.regenerate_icons() - // Offship antags wipe skill components so that they can bypass skill restrictions entirely. - for(var/datum/component/skill/skill in player._datum_components) - qdel(skill) return TRUE diff --git a/code/game/antagonist/outsider/technomancer.dm b/code/game/antagonist/outsider/technomancer.dm index 0cd483004c7..02d4e898429 100644 --- a/code/game/antagonist/outsider/technomancer.dm +++ b/code/game/antagonist/outsider/technomancer.dm @@ -40,9 +40,6 @@ GLOBAL_DATUM(technomancers, /datum/antagonist/technomancer) technomancer_mob.preEquipOutfit(/obj/outfit/admin/techomancer, FALSE) technomancer_mob.equipOutfit(/obj/outfit/admin/techomancer, FALSE) - // Offship antags wipe skill components so that they can bypass skill restrictions entirely. - for(var/datum/component/skill/skill in technomancer_mob._datum_components) - qdel(skill) return TRUE diff --git a/code/game/antagonist/station/traitor.dm b/code/game/antagonist/station/traitor.dm index b391e79da43..4fe1b49df81 100644 --- a/code/game/antagonist/station/traitor.dm +++ b/code/game/antagonist/station/traitor.dm @@ -113,9 +113,6 @@ GLOBAL_DATUM(traitors, /datum/antagonist/traitor) //Begin code phrase. give_codewords(traitor_mob) - // Offship antags wipe skill components so that they can bypass skill restrictions entirely. - for(var/datum/component/skill/skill in traitor_mob._datum_components) - qdel(skill) /datum/antagonist/traitor/proc/spawn_uplink(var/mob/living/carbon/human/traitor_mob) if(!istype(traitor_mob)) diff --git a/html/changelogs/hellfirejag - fix antag skills.yml b/html/changelogs/hellfirejag - fix antag skills.yml new file mode 100644 index 00000000000..e0033dd4309 --- /dev/null +++ b/html/changelogs/hellfirejag - fix antag skills.yml @@ -0,0 +1,4 @@ +author: Hellfirejag +delete-after: True +changes: + - bugfix: "Fixed antags not correctly wiping their skills upon spawning in."