changeset 650:7a420127f257

Refactored hitstats; Also at least bludgeon hit messages should be in correct order now; Comment cleanups.
author Matti Hamalainen <ccr@tnsp.org>
date Tue, 24 Jul 2007 01:23:24 +0000
parents fcaf1254d25f
children 8f121335d490
files ggrtf-misc.tf
diffstat 1 files changed, 92 insertions(+), 76 deletions(-) [+]
line wrap: on
line diff
--- a/ggrtf-misc.tf	Tue Jul 24 01:21:54 2007 +0000
+++ b/ggrtf-misc.tf	Tue Jul 24 01:23:24 2007 +0000
@@ -422,87 +422,103 @@
 /set hst_crithit=0
 /set lst_hits=
 /set lst_crits=
+/set hst_special=0
 
-/def -i -mregexp -t"^You score a \*?CRITICAL\*? hit!" ghitstats_crit =\
+/def -i prdefhitspec =\
+	/if (!getopts("n:t:r", "")) /gerror Invalid prdefhitspec definition!%;/break%;/endif%;\
+	/if (opt_n=~""|opt_t=~"") /gerror Required arguments not specified!%;/break%;/endif%;\
+	/if (opt_r) /let _ttype=regexp%;/else /let _ttype=simple%;/endif%;\
+	/set hst_%{opt_n}=0%;\
+	/def -i -aCblue -m%{_ttype} -t"%{opt_t}" ghitstats_%{opt_n} =\
+		/set hst_special=$$[hst_special+1]%%;\
+		/set hst_%{opt_n}=$$[hst_%{opt_n}+1]
+
+/def -i -aCblue -mregexp -t"^You score a \*?CRITICAL\*? hit!$" ghitstats_crit =\
 	/set hst_crithit=1
 
-/def -i -mregexp -t"^You miss" ghitstats_miss =\
-	/set hst_misses=$[hst_misses+1]
-
 /def -i prdefhit =\
-	/set lst_hits=%{lst_hits} %{1}%;\
-	/set lst_crits=%{lst_crits} %{1}%;\
-	/set hst_%{1}=0%;\
-	/set hst_c%{1}=0%;\
-	/set name_%{1}=%{-1}%;\
-	/set name_c%{1}=%{-1}%;\
-	/def -i -F -mregexp -t"^(You|(Cackling|Smiling|Grinning) (demonically|devilishly|diabolically) you) %{-1} " ghitstats_%{1} =\
+	/let _hname=%{1}_%{2}%;\
+	/set lst_hits=%{lst_hits} %{_hname}%;\
+	/set lst_crits=%{lst_crits} %{_hname}%;\
+	/set hst_%{_hname}=0%;\
+	/set hst_c%{_hname}=0%;\
+	/set hst_name_%{_hname}=%{3}%;\
+	/set hst_name_c%{_hname}=%{3}%;\
+	/def -i -aCblue -mregexp -t"^(You|(Cackling|Smiling|Grinning) (demonically|devilishly|diabolically) you) %{3} " ghitstats_%{_hname} =\
 		/set hst_total=$$[hst_total+1]%%;\
 		/if (hst_crithit==1) \
 			/set hst_crithit=0%%;\
 			/set hst_crits=$$[hst_crits+1]%%;\
-			/set hst_c%{1}=$$[hst_c%{1}+1]%%;\
+			/set hst_c%{_hname}=$$[hst_c%{_hname}+1]%%;\
 		/else \
-			/set hst_%{1}=$$[hst_%{1}+1]%%;\
+			/set hst_%{_hname}=$$[hst_%{_hname}+1]%%;\
 		/endif
 
+;; Specials
+/prdefhitspec -n"misses" -t"You miss."
+/prdefhitspec -n"dodges" -t"You dodge."
+/prdefhitspec -n"parries" -t"You parry."
+/prdefhitspec -n"ripostes" -t"...AND riposte."
+/prdefhitspec -n"tumbles" -t"^You tumble .*'s dodge\.$" -r
+/prdefhitspec -n"stuns" -t"^You STUN " -r
+
+
 ;; Non-weapon
-/prdefhit spank spank
+/test prdefhit("brawl", 01, "spank")
 
 
 ;; Slashing weapons (axes and long blades)
-/prdefhit sslash solidly slash
-/prdefhit gash gash
-/prdefhit lcut lightly cut
-/prdefhit cut cut
-/prdefhit tear tear
-/prdefhit incise incise
-/prdefhit shred shred
-/prdefhit hshred horribly shred
-/prdefhit slash slash
-/prdefhit inccut incisively cut
-/prdefhit pierce pierce
-/prdefhit slit slit
-/prdefhit ctatter cruelly tatter
-/prdefhit rive rive
-/prdefhit sshave savagely shave
-/prdefhit cslash cruelly slash
-/prdefhit uslash uncontrollably slash
-/prdefhit qcut quickly cut
-/prdefhit srip savagely rip
-/prdefhit cbtear BRUTALLY TEAR
-/prdefhit csshred SAVAGELY SHRED
-/prdefhit ccrend CRUELLY REND
-/prdefhit cdismember DISMEMBER
+/test prdefhit("axes", 01, "solidly slash")
+/test prdefhit("axes", 02, "gash")
+/test prdefhit("axes", 03, "lightly cut")
+/test prdefhit("axes", 04, "cut")
+/test prdefhit("axes", 05, "tear")
+/test prdefhit("axes", 06, "incise")
+/test prdefhit("axes", 07, "shred")
+/test prdefhit("axes", 08, "horribly shred")
+/test prdefhit("axes", 09, "slash")
+/test prdefhit("axes", 10, "incisively cut")
+/test prdefhit("axes", 11, "pierce")
+/test prdefhit("axes", 12, "slit")
+/test prdefhit("axes", 13, "cruelly tatter")
+/test prdefhit("axes", 14, "rive")
+/test prdefhit("axes", 15, "savagely shave")
+/test prdefhit("axes", 16, "cruelly slash")
+/test prdefhit("axes", 17, "uncontrollably slash")
+/test prdefhit("axes", 18, "quickly cut")
+/test prdefhit("axes", 19, "savagely rip")
+/test prdefhit("axes", 20, "BRUTALLY TEAR")
+/test prdefhit("axes", 21, "SAVAGELY SHRED")
+/test prdefhit("axes", 22, "CRUELLY REND")
+/test prdefhit("axes", 23, "DISMEMBER")
 
 
 ;; Bludgeons
-/prdefhit jostle jostle
-/prdefhit butt butt
-/prdefhit bump bump
-/prdefhit thump thump
-/prdefhit thrust thrust
-/prdefhit stroke stroke
-/prdefhit jab jab
-/prdefhit bash bash
-/prdefhit strike strike
-/prdefhit sock sock
-/prdefhit cuff cuff
-/prdefhit knock knock
-/prdefhit flail flail
-/prdefhit beat beat
-/prdefhit whack whack
-/prdefhit smash smash
-/prdefhit cbeat cruelly beat
-/prdefhit bsmash badly smash
-/prdefhit hthrust horribly thrust
-/prdefhit sstrike savagely strike
-/prdefhit ssock savagely sock
-/prdefhit cccuff CRUELLY CUFF
-/prdefhit cbbash BARBARICALLY BASH
-/prdefhit crwhack REALLY WHACK
-/prdefhit cbbeat BRUTALLY BEAT
-/prdefhit ccdism CRUELLY DISMEMBER
+/test prdefhit("blud", 01, "jostle")
+/test prdefhit("blud", 02, "butt")
+/test prdefhit("blud", 03, "bump")
+/test prdefhit("blud", 04, "thump")
+/test prdefhit("blud", 05, "stroke")
+/test prdefhit("blud", 06, "thrust")
+/test prdefhit("blud", 07, "jab")
+/test prdefhit("blud", 08, "bash")
+/test prdefhit("blud", 09, "strike")
+/test prdefhit("blud", 10, "sock")
+/test prdefhit("blud", 11, "cuff")
+/test prdefhit("blud", 12, "knock")
+/test prdefhit("blud", 13, "flail")
+/test prdefhit("blud", 14, "whack")
+/test prdefhit("blud", 15, "beat")
+/test prdefhit("blud", 16, "smash")
+/test prdefhit("blud", 17, "cruelly beat")
+/test prdefhit("blud", 18, "badly smash")
+/test prdefhit("blud", 19, "horribly thrust")
+/test prdefhit("blud", 20, "savagely sock")
+/test prdefhit("blud", 21, "savagely strike")
+/test prdefhit("blud", 22, "REALLY WHACK")
+/test prdefhit("blud", 23, "BRUTALLY BEAT")
+/test prdefhit("blud", 24, "CRUELLY CUFF")
+/test prdefhit("blud", 25, "BARBARICALLY BASH")
 
 
 ;; Output
@@ -515,7 +531,7 @@
 		/else \
 			/set cnttmp=0%;\
 		/endif%;\
-		/eval /msw | $$[pad(name_%{1},-30)] - $$[pad(hst_%{1},4)] / $$[pad(cnttmp,4)]%%% |%;\
+		/eval /msw | $$[pad(hst_name_%{1},-30)] - $$[pad(hst_%{1},8)] / $$[pad(cnttmp,4)]%%% |%;\
 	/endif
 
 /def -i ghitstats_dolist1 = /while ({#}) /ghitstats_print %{1}%;/shift%;/done
@@ -525,11 +541,11 @@
 /set hst_count=0%;\
 /msw ,-----------------.%;\
 /msw | @{BCgreen}GgrTF@{n} @{Cyellow}Hit Stats@{n} |%;\
-/msw +-| @{BCgreen}Normal@{n} |------+-----------------------------.%;\
+/msw +-| @{BCgreen}Normal@{n} |------+---------------------------------.%;\
 /ghitstats_dolist1 %{lst_hits}%;\
-/msw +-| @{BCred}Critical@{n} |----------------------------------+%;\
+/msw +-| @{BCred}Critical@{n} |--------------------------------------+%;\
 /ghitstats_dolist2 %{lst_crits}%;\
-/msw +-----------------------------------------------'%;\
+/msw +---------------------------------------------------+%;\
 /let _qtmp=$[hst_total + hst_misses]%;\
 /if (_qtmp != 0) \
 	/let _qtmp1=$[trunc((100 * hst_total) / _qtmp)]%;\
@@ -540,19 +556,19 @@
 	/let _qtmp2=0%;\
 	/let _qtmp3=0%;\
 /endif%;\
-/msw | Hits..: @{Cgreen}$[pad(hst_total,-6)]@{n} (@{BCgreen}$[pad(_qtmp1,3)]\%@{n}) | Crits: @{Cred}$[pad(hst_crits,-6)]@{n} (@{BCred}$[pad(_qtmp3,3)]\%@{n}) |%;\
-/msw | Misses: @{Cyellow}$[pad(hst_misses,-6)]@{n} (@{BCyellow}$[pad(_qtmp2,3)]\%@{n}) | Total Hit Types: @{BCwhite}$[pad(hst_count,-3)]@{n} |%;\
-/msw `----------------------------------------------'
+/msw | Hits..: @{Cgreen}$[pad(hst_total,-8)]@{n} (@{BCgreen}$[pad(_qtmp1,3)]\%@{n}) | Crits.: @{Cred}$[pad(hst_crits,-8)]@{n} (@{BCred}$[pad(_qtmp3,3)]\%@{n}) |%;\
+/msw | Misses: @{Cyellow}$[pad(hst_misses,-8)]@{n} (@{BCyellow}$[pad(_qtmp2,3)]\%@{n}) | Total Hit Types: @{BCwhite}$[pad(hst_count,-6)]@{n} |%;\
+/msw +---------------------------------------+-----------'%;\
+/msw | Dodges.: @{BCmagenta}$[pad(hst_dodges,-8)]@{n} | Parries: @{BCyellow}$[pad(hst_parries,-8)]@{n} |%;\
+/msw | Tumbles: @{BCgreen}$[pad(hst_tumbles,-8)]@{n} | Stuns..: @{BCred}$[pad(hst_parries,-8)]@{n} |%;\
+/msw `---------------------------------------'
 
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; Special highlights and  maglings for misc. commands
+;; Slots mangler
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
-;; Mangle 'slots' command's messages to more nicer layout.
-;; FIXME:
-;; What if torso is not the last slot listed? How to elegantly print
-;; the bottom of the table.
+;; FIXME: What if torso is not the last slot listed? How to elegantly print
+;; the bottom of the table?
 
 /def -i -ag -p9999 -msimple -t"Your current armour status is:" gslots_mangle1 =\
 	/set slots_st=1%;\