diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 2cccda719c1..635634fddba 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -153,6 +153,7 @@ transfer_actions(new_character) if(martial_art) for(var/datum/martial_art/MA in known_martial_arts) + MA.reset_combos(old_current) // Clear combos on old body if(MA.temporary) MA.remove(current) else diff --git a/code/modules/martial_arts/martial.dm b/code/modules/martial_arts/martial.dm index 5816ee052e3..70676bfc4eb 100644 --- a/code/modules/martial_arts/martial.dm +++ b/code/modules/martial_arts/martial.dm @@ -76,10 +76,14 @@ return check_combos(step, user, target, could_start_new_combo) return FALSE -/datum/martial_art/proc/reset_combos() +/datum/martial_art/proc/reset_combos(mob/living/carbon/human/H) current_combos.Cut() streak = "" - var/mob/living/carbon/human/owner = locateUID(owner_UID) + var/mob/living/carbon/human/owner + if(H) + owner = H + else + owner = locateUID(owner_UID) if(istype(owner) && !QDELETED(owner)) owner.hud_used.combo_display.update_icon(ALL, streak) for(var/combo_type in combos) @@ -168,6 +172,8 @@ var/datum/martial_art/MA = src if(!H.mind) return + if(H.hud_used) + reset_combos() deltimer(combo_timer) H.mind.known_martial_arts.Remove(MA) H.mind.martial_art = get_highest_weight(H)