diff --git a/code/datums/martial/rising_bass.dm b/code/datums/martial/rising_bass.dm index 9e00c90a92..779428669c 100644 --- a/code/datums/martial/rising_bass.dm +++ b/code/datums/martial/rising_bass.dm @@ -1,8 +1,6 @@ #define SIDE_KICK_COMBO "DH" #define SHOULDER_FLIP_COMBO "GHDGHH" -#define REPULSE_PUNCH_COMBO "GHGH" #define FOOT_SMASH_COMBO "HH" -#define DEFT_SWITCH_COMBO "GDD" /datum/martial_art/the_rising_bass name = "The Rising Bass" @@ -10,6 +8,9 @@ dodge_chance = 100 allow_temp_override = FALSE help_verb = /mob/living/carbon/human/proc/rising_bass_help + var/datum/action/risingbassmove/repulsepunch = new/datum/action/risingbassmove/repulsepunch() + var/datum/action/risingbassmove/deftswitch = new/datum/action/risingbassmove/deftswitch() + var/repulsecool = 0 /datum/martial_art/the_rising_bass/proc/check_streak(mob/living/carbon/human/A, mob/living/carbon/human/D) if(findtext(streak,SIDE_KICK_COMBO)) @@ -20,7 +21,7 @@ streak = "" shoulderFlip(A,D) return 1 - if(findtext(streak,REPULSE_PUNCH_COMBO)) + if(findtext(streak,"rplse")) streak = "" repulsePunch(A,D) return 1 @@ -28,13 +29,46 @@ streak = "" footSmash(A,D) return 1 - if(findtext(streak,DEFT_SWITCH_COMBO)) + if(findtext(streak,"deft")) streak = "" deftSwitch(A,D) return 1 return 0 +//Repulse Punch - Slams the opponent far away from you. +/datum/action/risingbassmove + name = "" + icon_icon = 'icons/mob/actions/actions_items.dmi' + button_icon_state = "" + var/movestreak = "" + +/datum/action/risingbassmove/Trigger() + if(owner.incapacitated()) + to_chat(owner, "You can't use [name] while you're incapacitated.") + return + var/mob/living/carbon/human/H = owner + if (H.mind.martial_art.streak == "[movestreak]") + H.mind.martial_art.streak = "" + to_chat(H,"You relax your muscles and return to a neutral position.") + else + if(HAS_TRAIT(H, TRAIT_PACIFISM)) + to_chat(H, "You don't want to harm other people!") + return + to_chat(H,"You get ready to use the [name] maneuver!") + H.mind.martial_art.streak = "[movestreak]" + +/datum/action/risingbassmove/repulsepunch + name = "Repulse Punch" + button_icon_state = "repulsepunch" + movestreak = "rplse" + +/datum/action/risingbassmove/deftswitch + name = "Deft Switch" + button_icon_state = "deftswitch" + movestreak = "deft" + + /datum/martial_art/the_rising_bass/proc/sideKick(mob/living/carbon/human/A, mob/living/carbon/human/D) if(!D.IsKnockdown() || D.lying == 0) var/turf/H = get_step(D, A.dir & (NORTH | SOUTH) ? pick(EAST, WEST) : pick(NORTH, SOUTH)) @@ -75,7 +109,7 @@ return basic_hit(A,D) /datum/martial_art/the_rising_bass/proc/repulsePunch(mob/living/carbon/human/A, mob/living/carbon/human/D) - if(!D.IsKnockdown() || !D.lying) + if(!D.IsKnockdown() || !D.lying || repulsecool > world.time) A.do_attack_animation(D, ATTACK_EFFECT_PUNCH) D.visible_message("[A] smashes [D] in the chest, throwing them away!", \ "[A] smashes you in the chest, repelling you away!") @@ -85,6 +119,7 @@ D.apply_damage(10, BRUTE, BODY_ZONE_CHEST) D.Knockdown(90) log_combat(A, D, "repulse punched (Rising Bass)") + repulsecool = world.time + 3 SECONDS return 1 return basic_hit(A,D) @@ -132,6 +167,11 @@ return 1 return ..() +/datum/martial_art/the_rising_bass/add_to_streak(element,mob/living/carbon/human/D) + if (streak == "deft" || streak == "rplse") + return + . = ..() + /mob/living/carbon/human/proc/rising_bass_help() set name = "Recall Teachings" set desc = "Remember the martial techniques of the Rising Bass clan." @@ -149,10 +189,14 @@ . = ..() if(!.) return + deftswitch.Grant(H) + repulsepunch.Grant(H) ADD_TRAIT(H, TRAIT_NOGUNS, RISING_BASS_TRAIT) ADD_TRAIT(H, TRAIT_AUTO_CATCH_ITEM, RISING_BASS_TRAIT) /datum/martial_art/the_rising_bass/on_remove(mob/living/carbon/human/H) . = ..() + deftswitch.Remove(H) + repulsepunch.Remove(H) REMOVE_TRAIT(H, TRAIT_NOGUNS, RISING_BASS_TRAIT) REMOVE_TRAIT(H, TRAIT_AUTO_CATCH_ITEM, RISING_BASS_TRAIT) \ No newline at end of file diff --git a/icons/mob/actions/actions_items.dmi b/icons/mob/actions/actions_items.dmi index 43c9d20a93..f5ba86c0fa 100644 Binary files a/icons/mob/actions/actions_items.dmi and b/icons/mob/actions/actions_items.dmi differ