Mercurial > hg > batmud > ggrtf
changeset 1495:34d742910e20
Implement spider demon drain timer. Might be working wrong, dunno lol. :P
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Tue, 12 Jun 2012 20:11:52 +0300 |
parents | bd219dde5c1c |
children | 75f99ae1cdb3 |
files | gm-spider.tf |
diffstat | 1 files changed, 76 insertions(+), 23 deletions(-) [+] |
line wrap: on
line diff
--- a/gm-spider.tf Tue Jun 12 20:11:22 2012 +0300 +++ b/gm-spider.tf Tue Jun 12 20:11:52 2012 +0300 @@ -13,11 +13,31 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Initialization and options ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -/set spider_drain_t=0 -/set spider_ctrl_t=0 -/set spider_drains=0 -/set spider_easy=0 -/set spider_easy_n=0 +/set spider_warn_t=15 +/set spider_avgn_min=60 +/set spider_avgq_min=80 + +/def -i prrepval_do =\ + /for _i 1 %{1} /echo %{2} + +/def -i prrepval =\ + /return "$(/prrepval_do %{1} %{2})" + +/def -i gspider_reset =\ + /set spider_drain_t=0%;\ + /set spider_ctrl_t=0%;\ + /set spider_drains=0%;\ + /set spider_easy=0%;\ + /set spider_easy_n=0%;\ + /set spider_type=0 + +/def -i gspider_reset_extra =\ + /set spider_avgn_val=$[prrepval(5, spider_avgn_min)]%;\ + /set spider_avgq_val=$[prrepval(5, spider_avgq_min)] + +/gspider_reset +/gspider_reset_extra + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Spider related lites @@ -28,18 +48,8 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; Spider demon control +;; Helper functions ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -/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_drains=0 - -;; Point 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 /def -i gspider_drain =\ /if (spider_easy)\ /set spider_easy_n=$[spider_easy_n+1]%;\ @@ -48,21 +58,65 @@ /set spider_drains=$[spider_drains+1]%;\ /set spider_easy=0 + +/def -i gspider_inform =\ + /msq @{Cgreen}Upcoming spider demon drain in %{spider_warn_t}s.@{n} + + +/def -i gspider_setup_timer =\ + /if ({1} >= 15)\ + /set spider_next_drain=$[time() + {1}]%;\ + /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 =\ + /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 + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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 + + +;; Point 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%%;\ - /set spider_last=0%%;\ - /gspider_drain + /gspider_drain%%;\ + /gspider_tick_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_last=1%;\ - /gspider_drain + /set spider_type=1 ;;@command /spidstatus @@ -70,7 +124,7 @@ ;;@desc (and possibly other demon status information in future). /def -i spidstatus =\ /if (spider_ctrl_t > 0)\ - /if (spider_last)\ + /if (spider_type)\ /let _extra=@{Cred}battle/queen@{n}%;\ /else \ /let _extra=normal%;\ @@ -93,8 +147,7 @@ ;; Demon banished /def -i -F -p9999 -msimple -t"You feel your mind returning back to normal." gspider_banished =\ - /set spider_drains=0%;\ - /set spider_drain_t=0 + /gspider_reset ;; Banish failure /def -i -F -p9999 -msimple -t"Alien thoughts invade your mind! Your body no longer is yours alone!" gspider_banishfail =\