view tf/mapship.tf @ 2833:d0e186348cb2 default tip

Add mention of soft level limitation to 'Eightleg woods'.
author Matti Hamalainen <ccr@tnsp.org>
date Sun, 26 May 2024 20:33:53 +0300
parents ad03d8930d4e
children
line wrap: on
line source

;;
;; Mapping helper for a ship
;;

;; Report location
/def -i prreportloc =\
	/send @party report !!PLR: %{plr_x},%{plr_y};map

;;-----------------------------------------------------------------------------
;; Update coordinates
/def -i prmyupdate =\
	/set plr_moving=0%;\
	/if	({1}=~"nw"|{1}=~"northwest")	/test plr_y-={2}%;/test plr_x-={2}%;\
	/elseif	({1}=~"n"|{1}=~"north")		/test plr_y-={2}%;\
	/elseif	({1}=~"ne"|{1}=~"northeast")	/test plr_y-={2}%;/test plr_x+={2}%;\
	/elseif	({1}=~"w"|{1}=~"west")		/test plr_x-={2}%;\
	/elseif	({1}=~"e"|{1}=~"east")		/test plr_x+={2}%;\
	/elseif	({1}=~"sw"|{1}=~"southwest")	/test plr_y+={2}%;/test plr_x-={2}%;\
	/elseif	({1}=~"s"|{1}=~"south")		/test plr_y+={2}%;\
	/elseif	({1}=~"se"|{1}=~"southeast")	/test plr_y+={2}%;/test plr_x+={2}%;\
	/endif

;; Update coordinates, move, report location+map
/def -i prmymove =\
	/test prmyupdate({1},{2})%;/send @%{2} %{1}%;/prreportloc

;; Report location when ship moves
/def -i -F -mregexp -t"^The ship sails (.+)\.$" ship_move =\
	/test prmyupdate({P1},1)%;/prreportloc

/def -i -F -mregexp -t"^[A-Z][a-z]+ tells you 'We've gon' as far towards ([a-z]+) as ask" cruise_done =\
	/test prmyupdate({P1},plr_cruise)%;/prreportloc


;; Reset position to 0,0, start a new logfile
/def -i preset =\
	/echo -p @{BCgreen}Position reset!@{n}%;\
	/eval /log mapping.log%;\
	/set plr_moving=0%;\
	/if ({#} == 2)\
		/set plr_x=%{1}%;/set plr_y=%{2}%;\
	/else \
		/set plr_x=0%;/set plr_y=0%;\
	/endif%;\
	/prreportloc

;; Report position
/def -i pos =\
	/echo -p @{BCgreen}Position@{n}: @{BCwhite}%{plr_x},%{plr_y}@{n}

/def -i prdocruise =\
	/if (plr_moving)\
		/echo -p @{BCred}No can do! Movement in progress!@{n}%;\
	/else \
		/set plr_moving=1%;\
		/set plr_cruise=%{1}%;\
		/send @cruise %{1} %{2}%;\
	/endif

/def -i cr = /test prdocruise(7,{1})
/def -i cruise =\
	/if ({#} == 2)\
		/test prdocruise({1},{2})%;\
	/else \
		/echo -p @{BCred}Error! /cruise requires 2 arguments!@{n}%;\
	/endif

;; Initialize
;/preset