git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7710 c06c8d41-db1a-0410-9941-cceddc491573
MIEL6624D3DFQIB54Q57IT7XTTCSC4R4V4HTJYHBQMUA3Y55D7EQC 6ZC7ZP7NRSPWKSHMZYTLRVUDMOQ4HQMCM7GDQXNCZZMRSLN7O53QC HXIETRYLTZYNJR4QHS5ZN4ZZR76SLRIXTEJQQJGI33XMXHO6MNBAC SVY2PTCLXR3KNPQAWXVXTTGCC5DR334HOAKHYO3VDDRWM2BWMALAC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC FLVIXF5HNN2EV5S2BVDR5YV3TRPQAZDAMQRVRIT2KWWUYOIFYJ3AC RISMOCQM6BKK4XSIRKYLOBB2UPDYJNDAL6OGIIR5GGNZQAK5YSZAC H3552BCIAVBLKAYKE4DHFLBLFW5RGRMYBMRRYHYEB5IPIJRUVU5QC NKONHW4JNY6HP2M63MNPM3H64ZWSUNUT5FX2STW4KTS4AMXJXXVQC 7Y5HSDFKA5TPLS2TWTRFMQVX6UXUDHXU5MUMXQSDFAIY4THQ3BIQC GQL5SIGBHLU3FMCE54XVGLRY5AZHRM6DUEB722REA2DPLGJSN6EQC return string.gsub(msg, "$F%{(%w+)%}",function (desc)return crawl.grammar(entity, desc)
local msg_a = string.gsub(msg, "$F%{(%w+)%}",function (desc)return crawl.grammar(entity, desc)end)return string.gsub(msg_a, "$F",function ()return crawl.grammar(entity, 'a')
if not self.ranges and not self.visible thenself.ranges = { { 5000, 'stately ' }, { 4000, '' },{ 2500, 'brisk ' }, { 1500, 'urgent ' },{ 0, 'frantic ' } }
if not self.range_adjectives thenlocal function sqr(x)return x * xendself.range_adjectives = {{ sqr(30), '$F, a long way away' },{ sqr(15), 'distant' },{ sqr(7), '$F nearby' },{ 0, '$F' }}
endendendfunction TimedMessaging:player_distance2(cm)local cx, cy = cm:pos()local x, y = you.pos()local dx, dy = cx - x, cy - yreturn dx * dx + dy * dyendfunction TimedMessaging:choose_range_adjective(distance)for _, dadj in ipairs(self.range_adjectives) doif distance >= dadj[1] thenreturn dadj[2]
endendfunction TimedMessaging:range_adjective(cm, thing)local adj = self:choose_range_adjective(self:player_distance2(cm))if string.find(adj, '$F') thenreturn util.expand_entity(self.noisemaker, adj)elsereturn crawl.article_a(#adj == 0 and self.noisemakeror adj .. ' ' .. self.noisemaker)