From 2e6a58ac6931a8386334a96a0c9a926d0deef037 Mon Sep 17 00:00:00 2001 From: ROdenFL <144662735+ROdenFL@users.noreply.github.com> Date: Fri, 24 Nov 2023 23:41:32 +0300 Subject: [PATCH] add: combo counter (#3881) --- code/_onclick/hud/_defines.dm | 1 + code/_onclick/hud/hud.dm | 1 + code/_onclick/hud/human.dm | 4 ++ code/modules/martial_arts/martial.dm | 57 +++++++++++++++++++++++++-- icons/mob/screen_gen.dmi | Bin 143148 -> 144851 bytes 5 files changed, 60 insertions(+), 3 deletions(-) diff --git a/code/_onclick/hud/_defines.dm b/code/_onclick/hud/_defines.dm index cbe745051c0..f976fd77744 100644 --- a/code/_onclick/hud/_defines.dm +++ b/code/_onclick/hud/_defines.dm @@ -37,6 +37,7 @@ #define ui_storage1 "CENTER+1:18,SOUTH:5" #define ui_storage2 "CENTER+2:20,SOUTH:5" #define ui_pda "CENTER+3:22,SOUTH:5" +#define ui_combo "CENTER+4:24,SOUTH+1:7" //combo meter for martial arts #define ui_alien_head "4:12,1:5" //aliens #define ui_alien_oclothing "5:14,1:5" //aliens diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm index e4561e5b0d6..dcc9100060d 100644 --- a/code/_onclick/hud/hud.dm +++ b/code/_onclick/hud/hud.dm @@ -29,6 +29,7 @@ var/obj/screen/zone_select var/obj/screen/move_intent var/obj/screen/module_store_icon + var/obj/screen/combo/combo_display var/obj/screen/devil/soul_counter/devilsouldisplay diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm index 74bd9db4f16..3377fab1db0 100644 --- a/code/_onclick/hud/human.dm +++ b/code/_onclick/hud/human.dm @@ -401,6 +401,10 @@ inventory_shown = FALSE + combo_display = new() + infodisplay += combo_display + + for(var/obj/screen/inventory/inv in (static_inventory + toggleable_inventory)) if(inv.slot_id) inv.hud = src diff --git a/code/modules/martial_arts/martial.dm b/code/modules/martial_arts/martial.dm index a828fcdea2c..afd17d18a5b 100644 --- a/code/modules/martial_arts/martial.dm +++ b/code/modules/martial_arts/martial.dm @@ -4,8 +4,9 @@ /datum/martial_art var/name = "Martial Art" var/streak = "" - var/max_streak_length = 6 + // var/max_streak_length = 6 var/temporary = FALSE + var/owner_UID /// The permanent style. var/datum/martial_art/base = null /// Chance to deflect projectiles while on throw mode. @@ -33,7 +34,9 @@ /// What combos are currently (possibly) being performed. var/list/datum/martial_art/current_combos = list() /// When the last hit happened. - var/last_hit = 0 + // var/last_hit = 0 + /// Stores the timer_id for the combo timeout timer + var/combo_timer /// If the user is preparing a martial arts stance. var/in_stance = FALSE @@ -59,16 +62,26 @@ /datum/martial_art/proc/act(step, mob/living/carbon/human/user, mob/living/carbon/human/target) if(!can_use(user)) return MARTIAL_ARTS_CANNOT_USE + if(combo_timer) + deltimer(combo_timer) +/* if(last_hit + COMBO_ALIVE_TIME < world.time) reset_combos() last_hit = world.time - +*/ + combo_timer = addtimer(CALLBACK(src, PROC_REF(reset_combos)), COMBO_ALIVE_TIME, TIMER_UNIQUE | TIMER_STOPPABLE) + streak += intent_to_streak(step) + var/mob/living/carbon/human/owner = locateUID(owner_UID) + owner?.hud_used.combo_display.update_icon(ALL, streak) if(HAS_COMBOS) return check_combos(step, user, target) return FALSE /datum/martial_art/proc/reset_combos() current_combos.Cut() + streak = "" + var/mob/living/carbon/human/owner = locateUID(owner_UID) + owner?.hud_used.combo_display.update_icon(ALL, streak) for(var/combo_type in combos) current_combos.Add(new combo_type()) @@ -174,6 +187,7 @@ base = H.mind.martial_art.base else base = src + owner_UID = H.UID() H.mind.martial_art = src /datum/martial_art/proc/remove(var/mob/living/carbon/human/H) @@ -234,6 +248,17 @@ /datum/martial_art/proc/try_deflect(mob/user) return prob(deflection_chance) +/datum/martial_art/proc/intent_to_streak(intent) + switch(intent) + if(MARTIAL_COMBO_STEP_HARM) + return "E" // these hands are rated E for everyone + if(MARTIAL_COMBO_STEP_DISARM) + return "D" + if(MARTIAL_COMBO_STEP_GRAB) + return "G" + if(MARTIAL_COMBO_STEP_HELP) + return "H" + //ITEMS /obj/item/clothing/gloves/boxing @@ -507,5 +532,31 @@ return ..() return 0 +/obj/screen/combo + icon_state = "" + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + screen_loc = ui_combo + layer = ABOVE_HUD_LAYER + var/streak + +/obj/screen/combo/proc/clear_streak() + cut_overlays() + streak = "" + icon_state = "" + +/obj/screen/combo/update_icon(updates, _streak) + streak = _streak + icon_state = "" + if(!streak) + clear_streak() + return + icon_state = "combo" + for(var/i in 1 to length(streak)) + var/intent_text = copytext(streak, i, i + 1) + var/image/intent_icon = image(icon, src, "combo_[intent_text]") + intent_icon.pixel_x = 16 * (i - 1) - 8 * length(streak) + overlays += intent_icon + return ..() + #undef HAS_COMBOS #undef COMBO_ALIVE_TIME diff --git a/icons/mob/screen_gen.dmi b/icons/mob/screen_gen.dmi index 9fedb927b9fd9c3b6806836e488d14d82b8e4c2f..79ec236c898e84b127ac1444fa5a08163ed1b287 100644 GIT binary patch delta 17721 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 delta 15988 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