git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7608 c06c8d41-db1a-0410-9941-cceddc491573
BEJPFLSQYOLJETSLYRTROTRPJZEJDROGDX7MLBCWJLMIRZQBLEYQC O5246XJ6P3R726D64X4F2BUNIVP7ZLWA5VMP6FYE72P3GIBTKZQQC L2PY64KUK7XYXNWKTC6YUN5DZYDNHNQFQHICUVNRGRHBHZAXWH3AC CM2YC5KBTUB4JFT3CL3NRS7V5X76M7RI7SNT4XK6IOVBZA2URRKAC NKONHW4JNY6HP2M63MNPM3H64ZWSUNUT5FX2STW4KTS4AMXJXXVQC X7MFMKQTNZ2IWBFVGS6WQV7NRNKJ3DWQAW2X7IQMFQQXW24AHPZQC CI2RMLJLIAZMEGNN6LJN6PSHXHLPG7PXFIDYRGFPVMDPJ2R4S4NQC 7Y5HSDFKA5TPLS2TWTRFMQVX6UXUDHXU5MUMXQSDFAIY4THQ3BIQC TLO257LZSB6ZO36STDUEWJBO2LETXFKTFGXELA6Y4BZBVAEIIINAC ED62QWGKBPORWVKDFOQRKJXEIWZVNGR3O4KWQBDSRNPT36AYOQYAC ZLQAAP55CJ77XIJN3DZVPT4GTTVLIBFJLIJJKI6L5UBSHX7VUK6AC KTF2SZLDR2NGPWSFAWDYV2X3UP4V5VDNTIGDGQ6G24HUNABFYR2QC RS24ZF3Y47QA2534EHQWZ35O2CI4JUOIVHUPRANCCNLVINSCYFXQC XE5ZZQKTGUPWZE6F4YDYDUDWF4OHUY7DAUGLR7DAHUI5OZBMH7TAC dofile('clua/lm_pdesc.lua')dofile('clua/lm_1way.lua')dofile('clua/lm_timed.lua')dofile('clua/lm_flags.lua')dofile('clua/lm_fog.lua')dofile('clua/lm_props.lua')
require('clua/lm_pdesc.lua')require('clua/lm_1way.lua')require('clua/lm_timed.lua')require('clua/lm_flags.lua')require('clua/lm_fog.lua')require('clua/lm_props.lua')
function TimedMarker:_new()local marker = { }setmetatable(marker, self)self.__index = selfreturn markerend
function TimedMarker:new(props)props = props or { }local tmarker = self.super.new(self, props)
pars.high = pars.high or pars.low or pars.turns or 1pars.low = pars.low or pars.high or pars.turns or 1local dur = crawl.random_range(pars.low, pars.high, pars.navg or 1)local feat = pars.floor or 'floor'local fnum = dgn.feature_number(feat)
props.high = props.high or props.low or props.turns or 1props.low = props.low or props.high or props.turns or 1local dur = crawl.random_range(props.low, props.high, props.navg or 1)
dgn.register_listener(dgn.dgn_event_type('turn'), marker)dgn.register_listener(dgn.dgn_event_type('player_climb'),marker, marker:pos())
function TimedMarker:disappear(marker, affect_player, x, y)dgn.remove_listener(marker)self.super.disappear(self, marker, affect_player, x, y)
dgn.terrain_changed(x, y, self.fnum, affect_player, false)dgn.remove_listener(marker)dgn.remove_listener(marker, marker:pos())dgn.remove_marker(marker)
self:disappear(marker, affect_player, x, y)
self.ticktype = self.ticktype or dgn.dgn_event_type('turn')self.stairtype = self.stairtype or dgn.dgn_event_type('player_climb')if ev:type() == self.stairtype thenlocal mx, my = marker:pos()local ex, ey = ev:pos()if mx == ex and my == ey thenself:timeout(marker, false, false)endreturn
if self.super.event(self, marker, ev) thenreturn true
OneWayStair = PortalDescriptor:new()OneWayStair.__index = OneWayStairfunction OneWayStair:new(props)local ows = PortalDescriptor.new(self, props)setmetatable(ows, self)return owsend
OneWayStair = util.subclass(PortalDescriptor)
dgn.terrain_changed(x, y, self.props.floor or 'floor', false, false)dgn.remove_listener(marker, ev:pos())dgn.remove_marker(marker)
self:disappear(marker, false, x, y)return true