changeset 1502:0a1e87ee7052

Refactor spider demon helper module.
author Matti Hamalainen <ccr@tnsp.org>
date Sat, 16 Jun 2012 01:23:39 +0300
parents 6eba70947636
children 03574f0c416c
files gm-spider.tf
diffstat 1 files changed, 52 insertions(+), 41 deletions(-) [+]
line wrap: on
line diff
--- a/gm-spider.tf	Tue Jun 12 20:52:46 2012 +0300
+++ b/gm-spider.tf	Sat Jun 16 01:23:39 2012 +0300
@@ -25,10 +25,12 @@
 /loaded GgrTF::Spider
 /test prdefmodule("Spider")
 
+
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; Initialization and options
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 /set spider_pid=0
+/set spider_timer_t=35
 /set spider_warn_t=15
 /set spider_avgn_min=60
 /set spider_avgq_min=80
@@ -71,67 +73,85 @@
 
 /def -i gspider_inform =\
 	/msq @{Cgreen}Upcoming spider demon drain in %{spider_warn_t}s.@{n}
-	
+
+
+/def -i gspider_stop_timer =\
+	/if (spider_pid > 0)\
+		/kill %{spider_pid}%;\
+		/set spider_pid=0%;\
+	/endif
 
 /def -i gspider_setup_timer =\
-	/if ({1} >= 15)\
+	/if ({1} > spider_warn_t)\
+		/gspider_stop_timer%;\
 		/set spider_next_drain=$[time() + {1}]%;\
-		/if (spider_pid > 0)\
-			/kill %{spider_pid}%;\
-		/endif%;\
 		/set spider_pid=$(/grepeat -$[{1} - spider_warn_t] 1 /gspider_inform)%;\
 	/endif
 
-/def -i gspider_tick_normal =\
-	/if (spider_ctrl_t > 0)\
-		/let _ddelta=$[time() - spider_ctrl_t]%;\
-		/set spider_avgn_val=$(/prnth %{spider_avgn_val} %{_ddelta})%;\
-		/let _dtime=$(/praverage %{spider_avgn_val})%;\
-		/test gspider_setup_timer(_dtime)%;\
-	/endif
 
-/def -i gspider_tick_queen =\
+/def -i gspider_control =\
+	/msq @{BCgreen}Demon controlled.@{n}%;\
+	/set spider_ctrl_t=$[time()]%;\
+	/set spider_type=0%;\
+	/set spider_drains=0%;\
+	/let _dtime=$(/praverage %{spider_avgn_val})%;\
+	/test gspider_setup_timer(_dtime)
+
+
+/def -i gspider_drain_queen =\
+	/mss @{BCgreen}The Spider Queen is smiling, demon battlechannelled.@{n}%;\
 	/if (spider_ctrl_t > 0)\
 		/let _ddelta=$[time() - spider_ctrl_t]%;\
 		/set spider_avgq_val=$(/prnth %{spider_avgq_val} %{_ddelta})%;\
 		/let _dtime=$(/praverage %{spider_avgq_val})%;\
 		/test gspider_setup_timer(_dtime)%;\
-	/endif
+	/endif%;\
+	/gspider_drain%;\
+	/set spider_ctrl_t=$[time()]%;\
+	/set spider_type=1
+
+
+/def -i gspider_drain_normal =\
+	/if (spider_easy)\
+		/mss @{BCgreen}Demon channelled with points.@{n}%;\
+	/else \
+		/mss @{BCred}Demon channelled without points!!@{n}%;\
+	/endif%;\
+	/if (spider_ctrl_t > 0)\
+		/let _ddelta=$[time() - spider_ctrl_t]%;\
+		/set spider_avgn_val=$(/prnth %{spider_avgn_val} %{_ddelta})%;\
+	/endif%;\
+	/gspider_drain
 
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; Spider demon control
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 /eval /def -i -F -p9999 -ag -msimple -t"You feed %{set_plrname}'s spider demon's hunger with your ritual." gspider_ctrl =\
-	/msq @{BCgreen}Demon controlled.@{n}%%;\
-	/set spider_ctrl_t=$$[time()]%%;\
-	/set spider_type=0%%;\
-	/set spider_drains=0
+	/gspider_control
 
-
-;; Point used or not?
+;; Point(s) used or not?
 /eval /def -i -F -p9999 -ag -msimple -t"%{set_plrname}'s demon feels easier to control than usual." gspider_easydrain =\
 	/set spider_easy=1
 
 ;; Spider demon channelling message
 /eval /def -i -F -p9999 -msimple -t"%{set_plrname}'s spider demon draws power from you." gspider_normaldrain =\
-	/if (spider_easy)\
-		/mss @{BCgreen}Demon channelled with points.@{n}%%;\
-	/else \
-		/mss @{BCred}Demon channelled without points!!!@{n}%%;\
-	/endif%%;\
-	/gspider_drain%%;\
-	/gspider_tick_normal
+	/gspider_drain_normal
 
 ;; Channelling with help from queen
 /def -i -F -p9999 -msimple -t"Spider Queen smiles upon you and helps you control the demon." gspider_queendrain =\
-	/mss @{BCgreen}The Spider Queen is smiling, demon battlechannelled.@{n}%;\
-	/gspider_drain%;\
-	/gspider_tick_queen%;\
-	/set spider_ctrl_t=$[time()]%;\
-	/set spider_type=1
+	/gspider_drain_queen
+
+;; Demon banished
+/def -i -F -p9999 -msimple -t"You feel your mind returning back to normal." gspider_banished =\
+	/gspider_reset
+
+;; Banish failure
+/def -i -F -p9999 -msimple -t"Alien thoughts invade your mind! Your body no longer is yours alone!" gspider_banishfail =\
+	/msr HAAALP demon is doing mean things!! Need banish or channel!!
 
 
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;@command /spidstatus
 ;;@desc Prints time elapsed since last demon control, demon drains
 ;;@desc (and possibly other demon status information in future).
@@ -156,12 +176,3 @@
 	/else \
 		/msq @{BCgreen}No drains happened yet!@{n}%;\
 	/endif
-	
-
-;; Demon banished
-/def -i -F -p9999 -msimple -t"You feel your mind returning back to normal." gspider_banished =\
-	/gspider_reset
-
-;; Banish failure
-/def -i -F -p9999 -msimple -t"Alien thoughts invade your mind! Your body no longer is yours alone!" gspider_banishfail =\
-	/msr HAAALP demon is doing mean things!! Need banish or channel!!