changeset 1439:4014856de443

Add support for animist soul companions in the PSS mangler.
author Matti Hamalainen <ccr@tnsp.org>
date Tue, 23 Aug 2011 23:08:17 +0300
parents 267cee0ac805
children 4c57ecb136f2
files gm-pssmangle.tf
diffstat 1 files changed, 64 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/gm-pssmangle.tf	Fri Aug 12 13:29:10 2011 +0300
+++ b/gm-pssmangle.tf	Tue Aug 23 23:08:17 2011 +0300
@@ -77,7 +77,31 @@
 	/eval /set _gp_oep=$$[gparty_%{1}_%{2}_oep]%;\
 	/return " ------- @{Cblue}:@{n}$[gparty_dval(_gp_hp,_gp_ohp)]@{BCblue}:@{n}$[gparty_dval(_gp_sp,_gp_osp)]@{Cblue}:@{n}$[gparty_dval(_gp_ep,_gp_oep)]"
 
-
+/def -i gparty_show_souls =\
+	/let _tmps=%;\
+	/let _souls=0%;\
+	/while ({#})\
+		/eval /set _gp_pl=$$[gparty_%{1}_sl_pl]%;\
+		/eval /set _gp_hp=$$[gparty_%{1}_sl_hp]%;\
+		/let _tmpc=$[gparty_get_color(_gp_pl)]%;\
+		/let _tmps=%{_tmps}$[prsubpad({1},9)]@{Cblue}:@{n}%{_tmpc}%{_gp_pl}@{n}@{Cblue}:@{n}$[gparty_val(_gp_hp,100)]@{Cblue}:@{n}    |%;\
+		/shift%;\
+		/if (mod(++_souls,3) == 0)\
+			/msw |%{_tmps}%;\
+			/let _tmps=%;\
+		/endif%;\
+	/done%;\
+	/while (mod(_souls,3) != 0)\
+		/let _tmps=%{_tmps}                        |%;\
+		/let _souls=$[_souls+1]%;\
+	/done%;\
+	/if (_tmps!~"")\
+		/msw |%{_tmps}%;\
+	/endif%;\
+	/if (_souls > 0)\
+		/echo `--------------------------------------------------------------------------'%;\
+	/endif
+	
 /def -i gparty_show =\
 	/echo ,--------------------------------------------------------------------------.%;\
 	/msw |$[gparty_sc(1,1)]|$[gparty_sc(1,2)]|$[gparty_sc(1,3)]|%;\
@@ -92,6 +116,7 @@
 	/endif%;\
 	/echo `--------------------------------------------------------------------------'
 
+
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; TF5 status line PSS
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -114,6 +139,7 @@
 	/eval /status_add -c -s1 -r3 "[" $[gparty_pc(2,1)] "|" $[gparty_pc(2,2)] "|" $[gparty_pc(2,3)] "]"%;\
 	/eval /status_add -c -s1 -r4 "[" $[gparty_pc(3,1)] "|" $[gparty_pc(3,2)] "|" $[gparty_pc(3,3)] "]"
 
+
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; Utility and grabbing triggers
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -146,6 +172,25 @@
 	/set gparty_%{_gps}_ep=%{8}%;\
 	/set gparty_%{_gps}_epm=%{9}
 
+/def -i gparty_set_soul =\
+	/if (regmatch("^ *([A-Za-z][A-Za-z ]+[A-Za-z]) *$",{3}))\
+		/let _tmps=%{P1}%;\
+	/else \
+		/let _tmps=%{3}%;\
+	/endif%;\
+	/if     (_tmps=~"VERY low")   /let _ghp=15%;\
+	/elseif (_tmps=~"very low")   /let _ghp=30%;\
+	/elseif (_tmps=~"low")        /let _ghp=45%;\
+	/elseif (_tmps=~"medium")     /let _ghp=60%;\
+	/elseif (_tmps=~"high")       /let _ghp=75%;\
+	/elseif (_tmps=~"VERY high")  /let _ghp=90%;\
+	/elseif (_tmps=~"full")       /let _ghp=100%;\
+	/else /let _ghp=??%;/endif%;\
+	/set gparty_grab=-2%;\
+	/set gparty_souls=%{gparty_souls} %{1}%;\
+	/set gparty_%{1}_sl_pl=%{2}%;\
+	/set gparty_%{1}_sl_hp=%{_ghp}%;\
+
 /def -i gparty_cset =\
 	/eval /set gparty_%{1}_is=$$[gparty_%{1}_i]%;\
 	/eval /set gparty_%{1}_os=$$[gparty_%{1}_s]%;\
@@ -166,32 +211,41 @@
 	/set gparty_%{1}_ep=%;\
 	/set gparty_%{1}_epm=
 
+
 /def -i gparty_clear =\
 	/set gparty_mtmp=%;\
+	/set gparty_souls=%;\
 	/for _crow 1 3  /set gparty_row%%{_crow}=0%;\
 	/for _ccol 1 3 \
 	/for _crow 1 3 \
 		/gparty_cset %%%{_crow}_%%%{_ccol}
 
 
-/def -i -F -Egparty_grab -p9999 -msimple -t',-----------------------------------------------------------------------------.' gpss_getbegin =\
+/def -i -F -Egparty_grab>0 -p9999 -msimple -t',-----------------------------------------------------------------------------.' gpss_getbegin =\
 	/if (opt_prettypss=~"on") /substitute -ag%;/endif%;\
 	/gparty_clear
 
 
-/def -i -F -Egparty_grab -p999 -mregexp -t"^\|(.)([1-3?]\.[1-3?])   ([A-Z][A-Za-z ][A-Za-z ]?[A-Za-z ]?[A-Za-z ]?[A-Za-z ]?[A-Za-z ]?[A-Za-z ]?[A-Za-z ]?[A-Za-z ]?[A-Za-z ]?[A-Za-z]?) +(ld|ldr|fol|mbr|form|unc|dead|rest|stun) +([0-9-]+)\( *([0-9-]+)\) +([0-9-]+)\( *([0-9-]+)\) +([0-9-]+)\( *([0-9-]+)\)" gpss_getps =\
+/def -i -F -Egparty_grab>0 -p999 -mregexp -t"^\|(.)([1-3?]\.[1-3?])   ([A-Z][A-Za-z ][A-Za-z ]?[A-Za-z ]?[A-Za-z ]?[A-Za-z ]?[A-Za-z ]?[A-Za-z ]?[A-Za-z ]?[A-Za-z ]?[A-Za-z ]?[A-Za-z]?) +(ld|ldr|fol|mbr|form|unc|dead|rest|stun) +([0-9-]+)\( *([0-9-]+)\) +([0-9-]+)\( *([0-9-]+)\) +([0-9-]+)\( *([0-9-]+)\)" gpss_getps =\
 	/if (opt_prettypss=~"on") /substitute -ag%;/endif%;\
 	/test gparty_set({P2},{P3},{P4},{P5},{P6},{P7},{P8},{P9},{P10},{P1})
 
+/def -i -F -Egparty_grab<0 -p999 -mregexp -t"^\| ([A-Z][a-z]+)'s soul\ {1,8}( fol|form|    ) (.........)" gpss_getps2 =\
+	/if (opt_prettypss=~"on") /substitute -ag%;/endif%;\
+	/test gparty_set_soul({P1},{P2},{P3})
 
 /def -i -F -Egparty_grab -p99 -msimple -t'`-----------------------------------------------------------------------------\'' gpss_getend =\
-	/set gparty_grab=0%;\
-	/set gparty_members=%{gparty_mtmp}%;\
-	/if (opt_prettypss=~"on") /substitute -ag%;/gparty_show%;/endif%;\
-	/if (opt_statuspss=~"on") /gparty_status%;/endif%;\
-	/prexecfuncs %{event_pss_once}%;\
-	/set event_pss_once=
-
+	/if (gparty_grab > 0)\
+		/set gparty_grab=-1%;\
+		/set gparty_members=%{gparty_mtmp}%;\
+		/if (opt_statuspss=~"on") /gparty_status%;/endif%;\
+		/if (opt_prettypss=~"on") /substitute -ag%;/gparty_show%;/endif%;\
+		/prexecfuncs %{event_pss_once}%;\
+		/set event_pss_once=%;\
+	/elseif (gparty_grab < -1)\
+		/set gparty_grab=0%;\
+		/if (opt_prettypss=~"on") /substitute -ag%;/gparty_show_souls %{gparty_souls}%;/endif%;\
+	/endif
 
 /def -i -F -p9999 -msimple -t"You are not in a party." gpss_noparty =\
 	/set gparty_grab=0%;\